From fcdd77ca513dc74c5dcbfdf39f7c3fefabf50478 Mon Sep 17 00:00:00 2001 From: Marc Cromme Date: Fri, 4 Apr 2008 22:01:40 +0200 Subject: [PATCH 1/1] Initial commit --- .DS_Store | Bin 0 -> 6148 bytes .classpath | 11 + .project | 17 + bin/.DS_Store | Bin 0 -> 6148 bytes bin/org/yaz4j/Bib1Diagnostic.class | Bin 0 -> 7217 bytes bin/org/yaz4j/Bib1Exception.class | Bin 0 -> 503 bytes bin/org/yaz4j/CQLQuery.class | Bin 0 -> 566 bytes bin/org/yaz4j/Connection$QueryType.class | Bin 0 -> 1096 bytes bin/org/yaz4j/Connection.class | Bin 0 -> 7625 bytes bin/org/yaz4j/ConnectionExtended.class | Bin 0 -> 1245 bytes bin/org/yaz4j/ConnectionOptionsCollection.class | Bin 0 -> 1560 bytes bin/org/yaz4j/ConnectionTimeoutException.class | Bin 0 -> 542 bytes bin/org/yaz4j/ConnectionUnavailableException.class | Bin 0 -> 554 bytes bin/org/yaz4j/InitRejectedException.class | Bin 0 -> 527 bytes bin/org/yaz4j/InvalidQueryException.class | Bin 0 -> 527 bytes bin/org/yaz4j/Package.class | Bin 0 -> 1273 bytes bin/org/yaz4j/PackageOptionsCollection.class | Bin 0 -> 1101 bytes bin/org/yaz4j/PrefixQuery.class | Bin 0 -> 575 bytes bin/org/yaz4j/Record.class | Bin 0 -> 1546 bytes bin/org/yaz4j/ResultSet.class | Bin 0 -> 1914 bytes bin/org/yaz4j/ResultSetOptionsCollection.class | Bin 0 -> 1125 bytes bin/org/yaz4j/ScanSet.class | Bin 0 -> 1729 bytes bin/org/yaz4j/ScanTerm.class | Bin 0 -> 594 bytes bin/org/yaz4j/Yaz4jMain.class | Bin 0 -> 1777 bytes bin/org/yaz4j/ZoomImplementationException.class | Bin 0 -> 545 bytes bin/org/yaz4j/jni/CharStarByteArray.class | Bin 0 -> 1745 bytes .../yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.class | Bin 0 -> 643 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options.class | Bin 0 -> 624 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.class | Bin 0 -> 631 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.class | Bin 0 -> 631 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.class | Bin 0 -> 623 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record.class | Bin 0 -> 619 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record_p.class | Bin 0 -> 627 bytes .../yaz4j/jni/SWIGTYPE_p_ZOOM_resultset_p.class | Bin 0 -> 639 bytes bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_scanset_p.class | Bin 0 -> 631 bytes ...IGTYPE_p_f_p_void_p_q_const__char__p_char.class | Bin 0 -> 703 bytes bin/org/yaz4j/jni/SWIGTYPE_p_int.class | Bin 0 -> 587 bytes .../yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.class | Bin 0 -> 651 bytes bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.class | Bin 0 -> 635 bytes bin/org/yaz4j/jni/SWIGTYPE_p_p_char.class | Bin 0 -> 599 bytes bin/org/yaz4j/jni/SWIGTYPE_p_void.class | Bin 0 -> 591 bytes bin/org/yaz4j/jni/yaz4jlib.class | Bin 0 -> 16469 bytes bin/org/yaz4j/jni/yaz4jlibConstants.class | Bin 0 -> 1329 bytes bin/org/yaz4j/jni/yaz4jlibJNI.class | Bin 0 -> 3529 bytes build-windows.xml | 48 + build.xml | 44 + dependencies/JUnit-4.3.1/junit-4.3.1.jar | Bin 0 -> 106547 bytes dependencies/yaz-2.1.28/ChangeLog |16052 ++++ dependencies/yaz-2.1.28/Doxyfile.in | 1153 + dependencies/yaz-2.1.28/LICENSE | 26 + dependencies/yaz-2.1.28/Makefile.am | 31 + dependencies/yaz-2.1.28/Makefile.in | 654 + dependencies/yaz-2.1.28/NEWS | 1857 + dependencies/yaz-2.1.28/README | 46 + dependencies/yaz-2.1.28/TODO | 10 + dependencies/yaz-2.1.28/aclocal.m4 | 7279 ++ dependencies/yaz-2.1.28/buildconf.sh | 104 + dependencies/yaz-2.1.28/client/Makefile.am | 23 + dependencies/yaz-2.1.28/client/Makefile.in | 489 + dependencies/yaz-2.1.28/client/admin.c | 313 + dependencies/yaz-2.1.28/client/admin.h | 26 + dependencies/yaz-2.1.28/client/bertorture.c | 231 + dependencies/yaz-2.1.28/client/client.c | 4813 + dependencies/yaz-2.1.28/client/default.bib | 45 + dependencies/yaz-2.1.28/client/tabcomplete.c | 150 + dependencies/yaz-2.1.28/client/tabcomplete.h | 25 + dependencies/yaz-2.1.28/config/config.guess | 1500 + dependencies/yaz-2.1.28/config/config.sub | 1608 + dependencies/yaz-2.1.28/config/depcomp | 526 + dependencies/yaz-2.1.28/config/install-sh | 325 + dependencies/yaz-2.1.28/config/ltmain.sh | 6871 ++ dependencies/yaz-2.1.28/config/missing | 360 + dependencies/yaz-2.1.28/configure |24869 +++++ dependencies/yaz-2.1.28/configure.ac | 416 + dependencies/yaz-2.1.28/debian/changelog | 617 + dependencies/yaz-2.1.28/debian/control | 51 + dependencies/yaz-2.1.28/debian/libyaz-dev.install | 8 + dependencies/yaz-2.1.28/debian/libyaz-dev.manpages | 3 + dependencies/yaz-2.1.28/debian/libyaz.install | 1 + dependencies/yaz-2.1.28/debian/libyaz.postinst | 45 + dependencies/yaz-2.1.28/debian/rules | 109 + dependencies/yaz-2.1.28/debian/yaz-doc.install | 2 + dependencies/yaz-2.1.28/debian/yaz.install | 5 + dependencies/yaz-2.1.28/debian/yaz.manpages | 6 + dependencies/yaz-2.1.28/doc/Makefile.am | 106 + dependencies/yaz-2.1.28/doc/Makefile.in | 745 + dependencies/yaz-2.1.28/doc/apilayer.obj | 149 + dependencies/yaz-2.1.28/doc/apilayer.png | Bin 0 -> 1021 bytes dependencies/yaz-2.1.28/doc/asn.external.html | 119 + dependencies/yaz-2.1.28/doc/asn.html | 16 + dependencies/yaz-2.1.28/doc/asn.oid.html | 43 + dependencies/yaz-2.1.28/doc/asn.pdu.html | 288 + dependencies/yaz-2.1.28/doc/asn.preparing.html | 89 + dependencies/yaz-2.1.28/doc/asn.xml | 1073 + dependencies/yaz-2.1.28/doc/bookinfo.xml | 45 + dependencies/yaz-2.1.28/doc/client.commands.html | 426 + dependencies/yaz-2.1.28/doc/client.html | 10 + dependencies/yaz-2.1.28/doc/client.invoking.html | 90 + dependencies/yaz-2.1.28/doc/client.searching.html | 32 + dependencies/yaz-2.1.28/doc/client.xml | 220 + dependencies/yaz-2.1.28/doc/common/Makefile.am | 18 + dependencies/yaz-2.1.28/doc/common/Makefile.in | 369 + dependencies/yaz-2.1.28/doc/common/README | 2 + dependencies/yaz-2.1.28/doc/common/common.ent | 116 + dependencies/yaz-2.1.28/doc/common/id.eps | 587 + dependencies/yaz-2.1.28/doc/common/id.htmlhelp.xsl | 18 + dependencies/yaz-2.1.28/doc/common/id.man.xsl | 7 + dependencies/yaz-2.1.28/doc/common/id.png | Bin 0 -> 1638 bytes dependencies/yaz-2.1.28/doc/common/id.tkl.xsl | 47 + dependencies/yaz-2.1.28/doc/common/print.dsl.in | 26 + dependencies/yaz-2.1.28/doc/common/ref2dbinc.xsl | 38 + dependencies/yaz-2.1.28/doc/common/style1.css | 63 + dependencies/yaz-2.1.28/doc/common/xml.dcl | 179 + .../yaz-2.1.28/doc/comstack.addresses.html | 50 + dependencies/yaz-2.1.28/doc/comstack.client.html | 17 + dependencies/yaz-2.1.28/doc/comstack.common.html | 135 + .../yaz-2.1.28/doc/comstack.diagnostics.html | 28 + dependencies/yaz-2.1.28/doc/comstack.html | 50 + .../yaz-2.1.28/doc/comstack.introduction.html | 32 + dependencies/yaz-2.1.28/doc/comstack.server.html | 43 + dependencies/yaz-2.1.28/doc/comstack.ssl.html | 30 + dependencies/yaz-2.1.28/doc/comstack.summary.html | 46 + dependencies/yaz-2.1.28/doc/comstack.xml | 645 + dependencies/yaz-2.1.28/doc/credits.html | 64 + dependencies/yaz-2.1.28/doc/credits.xml | 114 + dependencies/yaz-2.1.28/doc/entities.ent | 28 + dependencies/yaz-2.1.28/doc/frontend.xml | 848 + dependencies/yaz-2.1.28/doc/future.html | 27 + dependencies/yaz-2.1.28/doc/future.xml | 55 + dependencies/yaz-2.1.28/doc/gfs-options.xml | 198 + dependencies/yaz-2.1.28/doc/gfs-synopsis.xml | 41 + dependencies/yaz-2.1.28/doc/gfs-virtual.xml | 243 + dependencies/yaz-2.1.28/doc/index.html | 21 + dependencies/yaz-2.1.28/doc/indexdata.html | 41 + dependencies/yaz-2.1.28/doc/indexdata.xml | 62 + dependencies/yaz-2.1.28/doc/installation.html | 43 + dependencies/yaz-2.1.28/doc/installation.unix.html | 237 + .../yaz-2.1.28/doc/installation.win32.html | 144 + dependencies/yaz-2.1.28/doc/installation.xml | 684 + dependencies/yaz-2.1.28/doc/introduction.api.html | 98 + dependencies/yaz-2.1.28/doc/introduction.html | 97 + dependencies/yaz-2.1.28/doc/introduction.xml | 316 + dependencies/yaz-2.1.28/doc/license.html | 25 + dependencies/yaz-2.1.28/doc/license.other.html | 44 + dependencies/yaz-2.1.28/doc/license.xml | 118 + dependencies/yaz-2.1.28/doc/local.ent.in | 3 + dependencies/yaz-2.1.28/doc/odr.debugging.html | 11 + dependencies/yaz-2.1.28/doc/odr.html | 26 + dependencies/yaz-2.1.28/doc/odr.programming.html | 494 + dependencies/yaz-2.1.28/doc/odr.use.html | 330 + dependencies/yaz-2.1.28/doc/odr.xml | 1305 + dependencies/yaz-2.1.28/doc/server.backend.html | 11 + .../yaz-2.1.28/doc/server.backendfunctions.html | 334 + dependencies/yaz-2.1.28/doc/server.frontend.html | 36 + dependencies/yaz-2.1.28/doc/server.html | 35 + dependencies/yaz-2.1.28/doc/server.invocation.html | 163 + dependencies/yaz-2.1.28/doc/server.main.html | 117 + dependencies/yaz-2.1.28/doc/server.vhosts.html | 140 + dependencies/yaz-2.1.28/doc/soap.html | 12 + dependencies/yaz-2.1.28/doc/soap.http.html | 27 + dependencies/yaz-2.1.28/doc/soap.srw.html | 97 + dependencies/yaz-2.1.28/doc/soap.xml | 265 + dependencies/yaz-2.1.28/doc/soap.xml.html | 97 + dependencies/yaz-2.1.28/doc/tools.html | 1013 + dependencies/yaz-2.1.28/doc/tools.log.html | 117 + dependencies/yaz-2.1.28/doc/tools.marc.html | 78 + dependencies/yaz-2.1.28/doc/tools.nmem.html | 46 + dependencies/yaz-2.1.28/doc/tools.oid.html | 220 + dependencies/yaz-2.1.28/doc/tools.xml | 2079 + dependencies/yaz-2.1.28/doc/yaz-asncomp-man.xml | 266 + dependencies/yaz-2.1.28/doc/yaz-asncomp.1 | 139 + .../yaz-2.1.28/doc/yaz-client-commands.xml | 736 + dependencies/yaz-2.1.28/doc/yaz-client-man.xml | 204 + dependencies/yaz-2.1.28/doc/yaz-client.1 | 509 + dependencies/yaz-2.1.28/doc/yaz-config-man.xml | 145 + dependencies/yaz-2.1.28/doc/yaz-config.8 | 61 + dependencies/yaz-2.1.28/doc/yaz-iconv-man.xml | 124 + dependencies/yaz-2.1.28/doc/yaz-iconv.1 | 74 + dependencies/yaz-2.1.28/doc/yaz-log-man.xml | 253 + dependencies/yaz-2.1.28/doc/yaz-log.7 | 186 + dependencies/yaz-2.1.28/doc/yaz-man.xml | 122 + dependencies/yaz-2.1.28/doc/yaz-marcdump-man.xml | 197 + dependencies/yaz-2.1.28/doc/yaz-marcdump.1 | 111 + dependencies/yaz-2.1.28/doc/yaz-ztest-man.xml | 100 + dependencies/yaz-2.1.28/doc/yaz-ztest.8 | 296 + dependencies/yaz-2.1.28/doc/yaz.7 | 54 + dependencies/yaz-2.1.28/doc/yaz.xml | 44 + dependencies/yaz-2.1.28/doc/zoom.events.html | 28 + dependencies/yaz-2.1.28/doc/zoom.ext.html | 92 + dependencies/yaz-2.1.28/doc/zoom.html | 237 + dependencies/yaz-2.1.28/doc/zoom.options.html | 24 + dependencies/yaz-2.1.28/doc/zoom.query.html | 31 + dependencies/yaz-2.1.28/doc/zoom.records.html | 128 + dependencies/yaz-2.1.28/doc/zoom.resultsets.html | 161 + dependencies/yaz-2.1.28/doc/zoom.scan.html | 74 + dependencies/yaz-2.1.28/doc/zoom.xml | 1341 + dependencies/yaz-2.1.28/doc/zoomsh-man.xml | 173 + dependencies/yaz-2.1.28/doc/zoomsh.1 | 112 + dependencies/yaz-2.1.28/etc/MARC21slim2DC.xsl | 198 + dependencies/yaz-2.1.28/etc/MARC21slim2MODS.xsl | 1873 + dependencies/yaz-2.1.28/etc/MARC21slim2RDFDC.xsl | 197 + dependencies/yaz-2.1.28/etc/MARC21slimUtils.xsl | 65 + dependencies/yaz-2.1.28/etc/Makefile.am | 14 + dependencies/yaz-2.1.28/etc/Makefile.in | 366 + dependencies/yaz-2.1.28/etc/debian.init.d | 50 + dependencies/yaz-2.1.28/etc/maps.xml | 35 + dependencies/yaz-2.1.28/etc/pqf.properties | 151 + dependencies/yaz-2.1.28/etc/yazgfs.xml | 50 + dependencies/yaz-2.1.28/include/Makefile.am | 6 + dependencies/yaz-2.1.28/include/Makefile.in | 474 + dependencies/yaz-2.1.28/include/yaz/Makefile.am | 19 + dependencies/yaz-2.1.28/include/yaz/Makefile.in | 418 + dependencies/yaz-2.1.28/include/yaz/backend.h | 343 + dependencies/yaz-2.1.28/include/yaz/ccl.h | 447 + dependencies/yaz-2.1.28/include/yaz/charneg.h | 112 + dependencies/yaz-2.1.28/include/yaz/comstack.h | 164 + dependencies/yaz-2.1.28/include/yaz/cql.h | 309 + dependencies/yaz-2.1.28/include/yaz/diagbib1.h | 188 + dependencies/yaz-2.1.28/include/yaz/diagsrw.h | 106 + dependencies/yaz-2.1.28/include/yaz/ill-core.h | 1332 + dependencies/yaz-2.1.28/include/yaz/ill.h | 49 + dependencies/yaz-2.1.28/include/yaz/item-req.h | 61 + .../yaz-2.1.28/include/yaz/libxml2_error.h | 61 + dependencies/yaz-2.1.28/include/yaz/log.h | 254 + dependencies/yaz-2.1.28/include/yaz/logrpn.h | 45 + dependencies/yaz-2.1.28/include/yaz/marcdisp.h | 221 + dependencies/yaz-2.1.28/include/yaz/nfa.h | 548 + dependencies/yaz-2.1.28/include/yaz/nfaxml.h | 120 + dependencies/yaz-2.1.28/include/yaz/nmem.h | 175 + dependencies/yaz-2.1.28/include/yaz/odr.h | 358 + dependencies/yaz-2.1.28/include/yaz/oid.h | 283 + dependencies/yaz-2.1.28/include/yaz/options.h | 53 + dependencies/yaz-2.1.28/include/yaz/otherinfo.h | 47 + dependencies/yaz-2.1.28/include/yaz/pquery.h | 97 + dependencies/yaz-2.1.28/include/yaz/proto.h | 175 + dependencies/yaz-2.1.28/include/yaz/prt-ext.h | 157 + dependencies/yaz-2.1.28/include/yaz/querytowrbuf.h | 37 + dependencies/yaz-2.1.28/include/yaz/readconf.h | 58 + dependencies/yaz-2.1.28/include/yaz/record_conv.h | 123 + dependencies/yaz-2.1.28/include/yaz/retrieval.h | 135 + dependencies/yaz-2.1.28/include/yaz/soap.h | 78 + dependencies/yaz-2.1.28/include/yaz/sortspec.h | 53 + dependencies/yaz-2.1.28/include/yaz/srw.h | 244 + dependencies/yaz-2.1.28/include/yaz/statserv.h | 48 + dependencies/yaz-2.1.28/include/yaz/tcpip.h | 55 + dependencies/yaz-2.1.28/include/yaz/test.h | 102 + dependencies/yaz-2.1.28/include/yaz/tpath.h | 104 + dependencies/yaz-2.1.28/include/yaz/unix.h | 60 + dependencies/yaz-2.1.28/include/yaz/wrbuf.h | 91 + dependencies/yaz-2.1.28/include/yaz/xmalloc.h | 67 + dependencies/yaz-2.1.28/include/yaz/xmlquery.h | 41 + dependencies/yaz-2.1.28/include/yaz/yaz-ccl.h | 55 + dependencies/yaz-2.1.28/include/yaz/yaz-iconv.h | 107 + dependencies/yaz-2.1.28/include/yaz/yaz-util.h | 58 + dependencies/yaz-2.1.28/include/yaz/yaz-version.h | 44 + dependencies/yaz-2.1.28/include/yaz/yconfig.h | 66 + dependencies/yaz-2.1.28/include/yaz/z-accdes1.h | 45 + dependencies/yaz-2.1.28/include/yaz/z-accform1.h | 137 + dependencies/yaz-2.1.28/include/yaz/z-acckrb1.h | 54 + dependencies/yaz-2.1.28/include/yaz/z-charneg.h | 189 + dependencies/yaz-2.1.28/include/yaz/z-core.h | 1341 + dependencies/yaz-2.1.28/include/yaz/z-date.h | 137 + dependencies/yaz-2.1.28/include/yaz/z-diag1.h | 357 + dependencies/yaz-2.1.28/include/yaz/z-espec1.h | 145 + dependencies/yaz-2.1.28/include/yaz/z-estask.h | 46 + dependencies/yaz-2.1.28/include/yaz/z-exp.h | 1015 + dependencies/yaz-2.1.28/include/yaz/z-grs.h | 181 + dependencies/yaz-2.1.28/include/yaz/z-mterm2.h | 40 + dependencies/yaz-2.1.28/include/yaz/z-oclcui.h | 40 + dependencies/yaz-2.1.28/include/yaz/z-opac.h | 98 + dependencies/yaz-2.1.28/include/yaz/z-rrf1.h | 62 + dependencies/yaz-2.1.28/include/yaz/z-rrf2.h | 41 + dependencies/yaz-2.1.28/include/yaz/z-sum.h | 54 + dependencies/yaz-2.1.28/include/yaz/z-sutrs.h | 39 + dependencies/yaz-2.1.28/include/yaz/z-uifr1.h | 98 + dependencies/yaz-2.1.28/include/yaz/z-univ.h | 53 + dependencies/yaz-2.1.28/include/yaz/zes-admin.h | 113 + dependencies/yaz-2.1.28/include/yaz/zes-expi.h | 108 + dependencies/yaz-2.1.28/include/yaz/zes-exps.h | 96 + dependencies/yaz-2.1.28/include/yaz/zes-order.h | 135 + dependencies/yaz-2.1.28/include/yaz/zes-pquery.h | 80 + dependencies/yaz-2.1.28/include/yaz/zes-psched.h | 121 + dependencies/yaz-2.1.28/include/yaz/zes-pset.h | 71 + dependencies/yaz-2.1.28/include/yaz/zes-update.h | 166 + dependencies/yaz-2.1.28/include/yaz/zes-update0.h | 154 + dependencies/yaz-2.1.28/include/yaz/zgdu.h | 83 + dependencies/yaz-2.1.28/include/yaz/zoom.h | 332 + dependencies/yaz-2.1.28/m4/yaz.m4 | 149 + dependencies/yaz-2.1.28/m4/yaz_libxml2.m4 | 146 + dependencies/yaz-2.1.28/src/Makefile.am | 163 + dependencies/yaz-2.1.28/src/Makefile.in | 913 + dependencies/yaz-2.1.28/src/atoin.c | 44 + dependencies/yaz-2.1.28/src/ber_any.c | 143 + dependencies/yaz-2.1.28/src/ber_bit.c | 92 + dependencies/yaz-2.1.28/src/ber_bool.c | 62 + dependencies/yaz-2.1.28/src/ber_int.c | 120 + dependencies/yaz-2.1.28/src/ber_len.c | 136 + dependencies/yaz-2.1.28/src/ber_null.c | 58 + dependencies/yaz-2.1.28/src/ber_oct.c | 94 + dependencies/yaz-2.1.28/src/ber_oid.c | 145 + dependencies/yaz-2.1.28/src/ber_tag.c | 197 + dependencies/yaz-2.1.28/src/bib1.csv | 176 + dependencies/yaz-2.1.28/src/cclerrms.c | 118 + dependencies/yaz-2.1.28/src/cclfind.c | 1207 + dependencies/yaz-2.1.28/src/cclptree.c | 282 + dependencies/yaz-2.1.28/src/cclqfile.c | 303 + dependencies/yaz-2.1.28/src/cclqual.c | 383 + dependencies/yaz-2.1.28/src/cclstr.c | 122 + dependencies/yaz-2.1.28/src/ccltoken.c | 394 + dependencies/yaz-2.1.28/src/charconv.tcl | 407 + dependencies/yaz-2.1.28/src/charneg-3.asn | 212 + dependencies/yaz-2.1.28/src/charneg.c | 453 + dependencies/yaz-2.1.28/src/codetables.xml |98946 +++++++++++++++++++ dependencies/yaz-2.1.28/src/comstack.c | 307 + dependencies/yaz-2.1.28/src/cql.c | 1785 + dependencies/yaz-2.1.28/src/cql.y | 356 + dependencies/yaz-2.1.28/src/cqlstdio.c | 49 + dependencies/yaz-2.1.28/src/cqlstrer.c | 74 + dependencies/yaz-2.1.28/src/cqlstring.c | 54 + dependencies/yaz-2.1.28/src/cqltransform.c | 643 + dependencies/yaz-2.1.28/src/cqlutil.c | 193 + dependencies/yaz-2.1.28/src/csvtobib1.tcl | 18 + dependencies/yaz-2.1.28/src/csvtodiag.tcl | 93 + dependencies/yaz-2.1.28/src/csvtosrw.tcl | 18 + dependencies/yaz-2.1.28/src/datetime.asn | 81 + dependencies/yaz-2.1.28/src/diag-entry.c | 34 + dependencies/yaz-2.1.28/src/diag-entry.h | 26 + dependencies/yaz-2.1.28/src/diagbib1.c | 190 + dependencies/yaz-2.1.28/src/diagsrw.c | 105 + dependencies/yaz-2.1.28/src/dumpber.c | 137 + dependencies/yaz-2.1.28/src/esadmin.asn | 49 + dependencies/yaz-2.1.28/src/esupdate.asn | 103 + dependencies/yaz-2.1.28/src/eventl.c | 224 + dependencies/yaz-2.1.28/src/eventl.h | 72 + dependencies/yaz-2.1.28/src/grs1disp.c | 130 + dependencies/yaz-2.1.28/src/ill-core.c | 1790 + dependencies/yaz-2.1.28/src/ill-get.c | 675 + dependencies/yaz-2.1.28/src/ill.tcl | 63 + dependencies/yaz-2.1.28/src/ill9702.asn | 1165 + dependencies/yaz-2.1.28/src/initopt.c | 102 + dependencies/yaz-2.1.28/src/item-req.asn | 58 + dependencies/yaz-2.1.28/src/item-req.c | 69 + dependencies/yaz-2.1.28/src/libxml2_error.c | 65 + dependencies/yaz-2.1.28/src/log.c | 600 + dependencies/yaz-2.1.28/src/logrpn.c | 445 + dependencies/yaz-2.1.28/src/marc8.c |41623 ++++++++ dependencies/yaz-2.1.28/src/marc8r.c |31323 +++++++ dependencies/yaz-2.1.28/src/marcdisp.c | 1288 + dependencies/yaz-2.1.28/src/matchstr.c | 91 + dependencies/yaz-2.1.28/src/mime.c | 90 + dependencies/yaz-2.1.28/src/mime.h | 25 + dependencies/yaz-2.1.28/src/mterm2.asn | 10 + dependencies/yaz-2.1.28/src/nfa.c | 797 + dependencies/yaz-2.1.28/src/nfaxml.c | 325 + dependencies/yaz-2.1.28/src/nmem.c | 607 + dependencies/yaz-2.1.28/src/nmemsdup.c | 118 + dependencies/yaz-2.1.28/src/oclcui.asn | 33 + dependencies/yaz-2.1.28/src/odr-priv.h | 154 + dependencies/yaz-2.1.28/src/odr.c | 317 + dependencies/yaz-2.1.28/src/odr_any.c | 49 + dependencies/yaz-2.1.28/src/odr_bit.c | 67 + dependencies/yaz-2.1.28/src/odr_bool.c | 57 + dependencies/yaz-2.1.28/src/odr_choice.c | 109 + dependencies/yaz-2.1.28/src/odr_cons.c | 221 + dependencies/yaz-2.1.28/src/odr_enum.c | 58 + dependencies/yaz-2.1.28/src/odr_int.c | 58 + dependencies/yaz-2.1.28/src/odr_mem.c | 132 + dependencies/yaz-2.1.28/src/odr_null.c | 62 + dependencies/yaz-2.1.28/src/odr_oct.c | 209 + dependencies/yaz-2.1.28/src/odr_oid.c | 64 + dependencies/yaz-2.1.28/src/odr_seq.c | 154 + dependencies/yaz-2.1.28/src/odr_tag.c | 68 + dependencies/yaz-2.1.28/src/odr_use.c | 77 + dependencies/yaz-2.1.28/src/odr_util.c | 136 + dependencies/yaz-2.1.28/src/oid.c | 649 + dependencies/yaz-2.1.28/src/opacdisp.c | 179 + dependencies/yaz-2.1.28/src/options.c | 97 + dependencies/yaz-2.1.28/src/otherinfo.c | 222 + dependencies/yaz-2.1.28/src/pquery.c | 864 + dependencies/yaz-2.1.28/src/prt-ext.c | 322 + dependencies/yaz-2.1.28/src/querytowrbuf.c | 251 + dependencies/yaz-2.1.28/src/readconf.c | 99 + dependencies/yaz-2.1.28/src/record_conv.c | 501 + dependencies/yaz-2.1.28/src/requestq.c | 106 + dependencies/yaz-2.1.28/src/retrieval.c | 339 + dependencies/yaz-2.1.28/src/service.c | 474 + dependencies/yaz-2.1.28/src/service.h | 56 + dependencies/yaz-2.1.28/src/seshigh.c | 3513 + dependencies/yaz-2.1.28/src/session.h | 144 + dependencies/yaz-2.1.28/src/siconv.c | 1158 + dependencies/yaz-2.1.28/src/soap.c | 358 + dependencies/yaz-2.1.28/src/sortspec.c | 140 + dependencies/yaz-2.1.28/src/srw.c | 1145 + dependencies/yaz-2.1.28/src/srw.csv | 94 + dependencies/yaz-2.1.28/src/srwutil.c | 1263 + dependencies/yaz-2.1.28/src/statserv.c | 1546 + dependencies/yaz-2.1.28/src/tcpdchk.c | 108 + dependencies/yaz-2.1.28/src/tcpip.c | 1348 + dependencies/yaz-2.1.28/src/test.c | 219 + dependencies/yaz-2.1.28/src/tpath.c | 120 + dependencies/yaz-2.1.28/src/univres.asn | 23 + dependencies/yaz-2.1.28/src/unix.c | 745 + dependencies/yaz-2.1.28/src/version.c | 39 + dependencies/yaz-2.1.28/src/waislen.c | 41 + dependencies/yaz-2.1.28/src/wrbuf.c | 237 + dependencies/yaz-2.1.28/src/xcqlutil.c | 243 + dependencies/yaz-2.1.28/src/xmalloc.c | 348 + dependencies/yaz-2.1.28/src/xmlquery.c | 788 + dependencies/yaz-2.1.28/src/yaz-ccl.c | 58 + dependencies/yaz-2.1.28/src/z-accdes1.c | 39 + dependencies/yaz-2.1.28/src/z-accform1.c | 154 + dependencies/yaz-2.1.28/src/z-acckrb1.c | 51 + dependencies/yaz-2.1.28/src/z-charneg.c | 234 + dependencies/yaz-2.1.28/src/z-core.c | 1625 + dependencies/yaz-2.1.28/src/z-date.c | 163 + dependencies/yaz-2.1.28/src/z-diag1.c | 396 + dependencies/yaz-2.1.28/src/z-espec1.c | 181 + dependencies/yaz-2.1.28/src/z-estask.c | 38 + dependencies/yaz-2.1.28/src/z-exp.c | 1455 + dependencies/yaz-2.1.28/src/z-grs.c | 225 + dependencies/yaz-2.1.28/src/z-mterm2.c | 31 + dependencies/yaz-2.1.28/src/z-oclcui.c | 30 + dependencies/yaz-2.1.28/src/z-opac.c | 128 + dependencies/yaz-2.1.28/src/z-rrf1.c | 39 + dependencies/yaz-2.1.28/src/z-rrf2.c | 32 + dependencies/yaz-2.1.28/src/z-sum.c | 57 + dependencies/yaz-2.1.28/src/z-sutrs.c | 19 + dependencies/yaz-2.1.28/src/z-uifr1.c | 119 + dependencies/yaz-2.1.28/src/z-univ.c | 43 + dependencies/yaz-2.1.28/src/z.tcl | 351 + dependencies/yaz-2.1.28/src/z3950oid.c | 84 + dependencies/yaz-2.1.28/src/z3950v3.asn | 2667 + dependencies/yaz-2.1.28/src/zes-admin.c | 124 + dependencies/yaz-2.1.28/src/zes-expi.c | 129 + dependencies/yaz-2.1.28/src/zes-exps.c | 105 + dependencies/yaz-2.1.28/src/zes-order.c | 161 + dependencies/yaz-2.1.28/src/zes-pquery.c | 85 + dependencies/yaz-2.1.28/src/zes-psched.c | 144 + dependencies/yaz-2.1.28/src/zes-pset.c | 73 + dependencies/yaz-2.1.28/src/zes-update.c | 195 + dependencies/yaz-2.1.28/src/zes-update0.c | 178 + dependencies/yaz-2.1.28/src/zgdu.c | 496 + dependencies/yaz-2.1.28/src/zget.c | 673 + dependencies/yaz-2.1.28/src/zoom-c.c | 4188 + dependencies/yaz-2.1.28/src/zoom-opt.c | 207 + dependencies/yaz-2.1.28/src/zoom-p.h | 198 + dependencies/yaz-2.1.28/test/Makefile.am | 64 + dependencies/yaz-2.1.28/test/Makefile.in | 747 + dependencies/yaz-2.1.28/test/cql/1.1.out | 7 + dependencies/yaz-2.1.28/test/cql/1.10.out | 7 + dependencies/yaz-2.1.28/test/cql/1.11.out | 7 + dependencies/yaz-2.1.28/test/cql/1.2.out | 7 + dependencies/yaz-2.1.28/test/cql/1.3.out | 7 + dependencies/yaz-2.1.28/test/cql/1.4.out | 7 + dependencies/yaz-2.1.28/test/cql/1.5.out | 7 + dependencies/yaz-2.1.28/test/cql/1.6.out | 7 + dependencies/yaz-2.1.28/test/cql/1.7.out | 7 + dependencies/yaz-2.1.28/test/cql/1.8.out | 7 + dependencies/yaz-2.1.28/test/cql/1.9.out | 7 + dependencies/yaz-2.1.28/test/cql/10.1.err | 1 + dependencies/yaz-2.1.28/test/cql/10.10.err | 1 + dependencies/yaz-2.1.28/test/cql/10.2.err | 1 + dependencies/yaz-2.1.28/test/cql/10.3.err | 1 + dependencies/yaz-2.1.28/test/cql/10.4.err | 1 + dependencies/yaz-2.1.28/test/cql/10.5.err | 1 + dependencies/yaz-2.1.28/test/cql/10.6.err | 1 + dependencies/yaz-2.1.28/test/cql/10.7.err | 1 + dependencies/yaz-2.1.28/test/cql/10.8.err | 1 + dependencies/yaz-2.1.28/test/cql/10.9.out | 7 + dependencies/yaz-2.1.28/test/cql/2.1.out | 7 + dependencies/yaz-2.1.28/test/cql/2.10.out | 7 + dependencies/yaz-2.1.28/test/cql/2.11.out | 13 + dependencies/yaz-2.1.28/test/cql/2.12.out | 7 + dependencies/yaz-2.1.28/test/cql/2.13.out | 14 + dependencies/yaz-2.1.28/test/cql/2.14.out | 18 + dependencies/yaz-2.1.28/test/cql/2.2.out | 7 + dependencies/yaz-2.1.28/test/cql/2.3.out | 7 + dependencies/yaz-2.1.28/test/cql/2.4.out | 7 + dependencies/yaz-2.1.28/test/cql/2.5.out | 7 + dependencies/yaz-2.1.28/test/cql/2.6.out | 7 + dependencies/yaz-2.1.28/test/cql/2.7.out | 7 + dependencies/yaz-2.1.28/test/cql/2.8.out | 13 + dependencies/yaz-2.1.28/test/cql/2.9.out | 17 + dependencies/yaz-2.1.28/test/cql/3.1.out | 23 + dependencies/yaz-2.1.28/test/cql/3.2.out | 23 + dependencies/yaz-2.1.28/test/cql/3.3.out | 23 + dependencies/yaz-2.1.28/test/cql/3.4.out | 23 + dependencies/yaz-2.1.28/test/cql/3.5.out | 23 + dependencies/yaz-2.1.28/test/cql/3.6.out | 23 + dependencies/yaz-2.1.28/test/cql/3.7.out | 23 + dependencies/yaz-2.1.28/test/cql/3.8.out | 23 + dependencies/yaz-2.1.28/test/cql/3.9.out | 55 + dependencies/yaz-2.1.28/test/cql/4.1.out | 23 + dependencies/yaz-2.1.28/test/cql/4.2.out | 29 + dependencies/yaz-2.1.28/test/cql/5.1.out | 23 + dependencies/yaz-2.1.28/test/cql/5.2.out | 39 + dependencies/yaz-2.1.28/test/cql/5.3.out | 30 + dependencies/yaz-2.1.28/test/cql/5.4.out | 30 + dependencies/yaz-2.1.28/test/cql/5.5.out | 30 + dependencies/yaz-2.1.28/test/cql/5.6.out | 35 + dependencies/yaz-2.1.28/test/cql/5.7.out | 29 + dependencies/yaz-2.1.28/test/cql/5.8.out | 30 + dependencies/yaz-2.1.28/test/cql/6.1.out | 7 + dependencies/yaz-2.1.28/test/cql/6.2.out | 7 + dependencies/yaz-2.1.28/test/cql/6.3.out | 7 + dependencies/yaz-2.1.28/test/cql/6.4.out | 7 + dependencies/yaz-2.1.28/test/cql/6.5.out | 7 + dependencies/yaz-2.1.28/test/cql/6.6.out | 7 + dependencies/yaz-2.1.28/test/cql/7.1.out | 55 + dependencies/yaz-2.1.28/test/cql/7.2.out | 55 + dependencies/yaz-2.1.28/test/cql/7.3.out | 55 + dependencies/yaz-2.1.28/test/cql/8.1.out | 7 + dependencies/yaz-2.1.28/test/cql/8.2.out | 12 + dependencies/yaz-2.1.28/test/cql/8.3.out | 33 + dependencies/yaz-2.1.28/test/cql/9.1.out | 55 + dependencies/yaz-2.1.28/test/cql/9.2.out | 7 + dependencies/yaz-2.1.28/test/cql/9.3.out | 7 + dependencies/yaz-2.1.28/test/cql/9.4.out | 12 + dependencies/yaz-2.1.28/test/cql2pqf-order.txt | 28 + dependencies/yaz-2.1.28/test/cqlsample | 104 + dependencies/yaz-2.1.28/test/marc1.chr | 1 + dependencies/yaz-2.1.28/test/marc1.marc | 1 + dependencies/yaz-2.1.28/test/marc1.xml | 93 + dependencies/yaz-2.1.28/test/marc1.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc2.chr | 1 + dependencies/yaz-2.1.28/test/marc2.marc | 1 + dependencies/yaz-2.1.28/test/marc2.xml | 100 + dependencies/yaz-2.1.28/test/marc2.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc3.chr | 1 + dependencies/yaz-2.1.28/test/marc3.marc | 1 + dependencies/yaz-2.1.28/test/marc3.xml | 120 + dependencies/yaz-2.1.28/test/marc3.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc4.chr | 1 + dependencies/yaz-2.1.28/test/marc4.marc | 1 + dependencies/yaz-2.1.28/test/marc4.xml | 9 + dependencies/yaz-2.1.28/test/marc4.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc5.chr | 1 + dependencies/yaz-2.1.28/test/marc5.marc | 1 + dependencies/yaz-2.1.28/test/marc5.xml | 31 + dependencies/yaz-2.1.28/test/marc5.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc6.chr | 1 + dependencies/yaz-2.1.28/test/marc6.marc | 1 + dependencies/yaz-2.1.28/test/marc6.xml | 32 + dependencies/yaz-2.1.28/test/marc6.xml.marc | 1 + dependencies/yaz-2.1.28/test/marc7.chr | 1 + dependencies/yaz-2.1.28/test/marc7.marc | 1 + dependencies/yaz-2.1.28/test/marc7.xml | 86 + dependencies/yaz-2.1.28/test/marc7.xml.marc | 1 + dependencies/yaz-2.1.28/test/marccol1.u8.1.lst | 458 + dependencies/yaz-2.1.28/test/marccol1.u8.2.lst | 458 + dependencies/yaz-2.1.28/test/marccol1.u8.marc | 1 + dependencies/yaz-2.1.28/test/nfatest1.c | 440 + dependencies/yaz-2.1.28/test/nfaxmltest1.c | 333 + dependencies/yaz-2.1.28/test/tst_filepath.c | 43 + dependencies/yaz-2.1.28/test/tst_record_conv.c | 346 + dependencies/yaz-2.1.28/test/tst_record_conv.xsl | 16 + dependencies/yaz-2.1.28/test/tst_retrieval.c | 249 + dependencies/yaz-2.1.28/test/tst_tpath.c | 51 + dependencies/yaz-2.1.28/test/tstccl.c | 184 + dependencies/yaz-2.1.28/test/tstcql.sh | 55 + dependencies/yaz-2.1.28/test/tsticonv.c | 557 + dependencies/yaz-2.1.28/test/tstlog.c | 88 + dependencies/yaz-2.1.28/test/tstlogthread.c | 90 + dependencies/yaz-2.1.28/test/tstmarccol.sh | 66 + dependencies/yaz-2.1.28/test/tstmarciso.sh | 48 + dependencies/yaz-2.1.28/test/tstmarcxml.sh | 40 + dependencies/yaz-2.1.28/test/tstmatchstr.c | 44 + dependencies/yaz-2.1.28/test/tstnmem.c | 66 + dependencies/yaz-2.1.28/test/tstodr.asn | 17 + dependencies/yaz-2.1.28/test/tstodr.c | 157 + dependencies/yaz-2.1.28/test/tstodrcodec.c | 27 + dependencies/yaz-2.1.28/test/tstodrcodec.h | 37 + dependencies/yaz-2.1.28/test/tstodrstack.c | 77 + dependencies/yaz-2.1.28/test/tstpquery.c | 86 + dependencies/yaz-2.1.28/test/tstsoap1.c | 63 + dependencies/yaz-2.1.28/test/tstsoap2.c | 68 + dependencies/yaz-2.1.28/test/tstwrbuf.c | 70 + dependencies/yaz-2.1.28/test/tstxmlquery.c | 249 + dependencies/yaz-2.1.28/util/Makefile.am | 40 + dependencies/yaz-2.1.28/util/Makefile.in | 587 + dependencies/yaz-2.1.28/util/benchmark.c | 146 + dependencies/yaz-2.1.28/util/cclsh.c | 236 + dependencies/yaz-2.1.28/util/cql2pqf.c | 99 + dependencies/yaz-2.1.28/util/cql2xcql.c | 61 + dependencies/yaz-2.1.28/util/marcdump.c | 358 + dependencies/yaz-2.1.28/util/srwtst.c | 116 + dependencies/yaz-2.1.28/util/yaz-asncomp | 1407 + dependencies/yaz-2.1.28/util/yaz-xmlquery.c | 198 + dependencies/yaz-2.1.28/util/yaziconv.c | 190 + dependencies/yaz-2.1.28/win/LICENSE.txt | 13 + dependencies/yaz-2.1.28/win/makefile | 866 + dependencies/yaz-2.1.28/win/yaz.nsi | 195 + dependencies/yaz-2.1.28/win/yaz.rc | 38 + dependencies/yaz-2.1.28/windows.txt | 49 + dependencies/yaz-2.1.28/yaz-config.in | 124 + dependencies/yaz-2.1.28/yaz.spec | 83 + dependencies/yaz-2.1.28/yaz.spec.in | 83 + dependencies/yaz-2.1.28/zoom/Makefile.am | 24 + dependencies/yaz-2.1.28/zoom/Makefile.in | 599 + dependencies/yaz-2.1.28/zoom/zoom-benchmark.c | 425 + dependencies/yaz-2.1.28/zoom/zoomsh.c | 648 + dependencies/yaz-2.1.28/zoom/zoomtst1.c | 49 + dependencies/yaz-2.1.28/zoom/zoomtst10.c | 66 + dependencies/yaz-2.1.28/zoom/zoomtst2.c | 66 + dependencies/yaz-2.1.28/zoom/zoomtst3.c | 124 + dependencies/yaz-2.1.28/zoom/zoomtst4.c | 103 + dependencies/yaz-2.1.28/zoom/zoomtst5.c | 134 + dependencies/yaz-2.1.28/zoom/zoomtst6.c | 132 + dependencies/yaz-2.1.28/zoom/zoomtst7.c | 189 + dependencies/yaz-2.1.28/zoom/zoomtst8.c | 96 + dependencies/yaz-2.1.28/zoom/zoomtst9.c | 114 + dependencies/yaz-2.1.28/ztest/Makefile.am | 13 + dependencies/yaz-2.1.28/ztest/Makefile.in | 477 + dependencies/yaz-2.1.28/ztest/config1.xml | 28 + dependencies/yaz-2.1.28/ztest/dummy-grs | 98 + dependencies/yaz-2.1.28/ztest/dummy-records | 1 + dependencies/yaz-2.1.28/ztest/dummy-words | 990 + dependencies/yaz-2.1.28/ztest/read-grs.c | 125 + dependencies/yaz-2.1.28/ztest/read-marc.c | 1627 + dependencies/yaz-2.1.28/ztest/ztest.c | 714 + dependencies/yaz-2.1.28/ztest/ztest.pem | 36 + dependencies/yaz_3.0.14/LICENSE.txt | 14 + dependencies/yaz_3.0.14/NEWS | 2272 + dependencies/yaz_3.0.14/README | 46 + dependencies/yaz_3.0.14/bin/.yazclient.history | 6 + dependencies/yaz_3.0.14/bin/LICENSE.txt | 14 + dependencies/yaz_3.0.14/bin/cql2pqf.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/cql2xcql.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/iconv.dll | Bin 0 -> 888832 bytes dependencies/yaz_3.0.14/bin/libxml2.dll | Bin 0 -> 964608 bytes dependencies/yaz_3.0.14/bin/libxslt.dll | Bin 0 -> 161792 bytes dependencies/yaz_3.0.14/bin/makefile | 874 + dependencies/yaz_3.0.14/bin/tst_timing.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/tstlog.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/yaz-client.exe | Bin 0 -> 69632 bytes dependencies/yaz_3.0.14/bin/yaz-marcdump.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/yaz-ztest.exe | Bin 0 -> 45056 bytes dependencies/yaz_3.0.14/bin/yaz.nsi | 201 + dependencies/yaz_3.0.14/bin/yaz.rc | 38 + dependencies/yaz_3.0.14/bin/yaz3.dll | Bin 0 -> 1105920 bytes dependencies/yaz_3.0.14/bin/zlib1.dll | Bin 0 -> 73728 bytes dependencies/yaz_3.0.14/bin/zoomsh.exe | Bin 0 -> 20480 bytes dependencies/yaz_3.0.14/bin/zoomtst1.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst10.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst2.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst3.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst4.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst5.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst6.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst7.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst8.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/bin/zoomtst9.exe | Bin 0 -> 16384 bytes dependencies/yaz_3.0.14/client/admin.c | 308 + dependencies/yaz_3.0.14/client/admin.h | 26 + dependencies/yaz_3.0.14/client/bertorture.c | 231 + dependencies/yaz_3.0.14/client/client.c | 5023 + dependencies/yaz_3.0.14/client/fhistory.c | 132 + dependencies/yaz_3.0.14/client/fhistory.h | 39 + dependencies/yaz_3.0.14/client/tabcomplete.c | 154 + dependencies/yaz_3.0.14/client/tabcomplete.h | 26 + dependencies/yaz_3.0.14/doc/apilayer.png | Bin 0 -> 1021 bytes dependencies/yaz_3.0.14/doc/asn.external.html | 119 + dependencies/yaz_3.0.14/doc/asn.html | 16 + dependencies/yaz_3.0.14/doc/asn.oid.html | 47 + dependencies/yaz_3.0.14/doc/asn.pdu.html | 278 + dependencies/yaz_3.0.14/doc/asn.preparing.html | 89 + dependencies/yaz_3.0.14/doc/asn.xml | 1094 + dependencies/yaz_3.0.14/doc/bookinfo.xml | 48 + dependencies/yaz_3.0.14/doc/client.commands.html | 441 + dependencies/yaz_3.0.14/doc/client.html | 10 + dependencies/yaz_3.0.14/doc/client.invoking.html | 90 + dependencies/yaz_3.0.14/doc/client.searching.html | 32 + dependencies/yaz_3.0.14/doc/client.xml | 220 + dependencies/yaz_3.0.14/doc/common/common.ent | 202 + dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl | 18 + dependencies/yaz_3.0.14/doc/common/id.man.xsl | 7 + dependencies/yaz_3.0.14/doc/common/id.png | Bin 0 -> 1638 bytes dependencies/yaz_3.0.14/doc/common/id.tkl.xsl | 47 + dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl | 39 + dependencies/yaz_3.0.14/doc/common/stripref.xsl | 15 + dependencies/yaz_3.0.14/doc/common/style1.css | 63 + .../yaz_3.0.14/doc/comstack.addresses.html | 50 + dependencies/yaz_3.0.14/doc/comstack.client.html | 17 + dependencies/yaz_3.0.14/doc/comstack.common.html | 135 + .../yaz_3.0.14/doc/comstack.diagnostics.html | 28 + dependencies/yaz_3.0.14/doc/comstack.html | 50 + .../yaz_3.0.14/doc/comstack.introduction.html | 32 + dependencies/yaz_3.0.14/doc/comstack.server.html | 43 + dependencies/yaz_3.0.14/doc/comstack.ssl.html | 30 + dependencies/yaz_3.0.14/doc/comstack.summary.html | 46 + dependencies/yaz_3.0.14/doc/comstack.xml | 645 + dependencies/yaz_3.0.14/doc/credits.html | 66 + dependencies/yaz_3.0.14/doc/credits.xml | 117 + dependencies/yaz_3.0.14/doc/entities.ent | 31 + dependencies/yaz_3.0.14/doc/frontend.xml | 892 + dependencies/yaz_3.0.14/doc/future.html | 27 + dependencies/yaz_3.0.14/doc/future.xml | 55 + dependencies/yaz_3.0.14/doc/gfs-options.xml | 206 + dependencies/yaz_3.0.14/doc/gfs-synopsis.xml | 42 + dependencies/yaz_3.0.14/doc/gfs-virtual.xml | 276 + dependencies/yaz_3.0.14/doc/index.html | 16 + dependencies/yaz_3.0.14/doc/indexdata.html | 41 + dependencies/yaz_3.0.14/doc/indexdata.xml | 62 + dependencies/yaz_3.0.14/doc/installation.html | 43 + dependencies/yaz_3.0.14/doc/installation.unix.html | 252 + .../yaz_3.0.14/doc/installation.win32.html | 144 + dependencies/yaz_3.0.14/doc/installation.xml | 711 + dependencies/yaz_3.0.14/doc/introduction.api.html | 98 + dependencies/yaz_3.0.14/doc/introduction.html | 97 + dependencies/yaz_3.0.14/doc/introduction.xml | 316 + dependencies/yaz_3.0.14/doc/license.html | 31 + dependencies/yaz_3.0.14/doc/license.other.html | 48 + dependencies/yaz_3.0.14/doc/license.xml | 143 + dependencies/yaz_3.0.14/doc/list-oids.html | 1123 + dependencies/yaz_3.0.14/doc/marc.html | 78 + dependencies/yaz_3.0.14/doc/odr.debugging.html | 11 + dependencies/yaz_3.0.14/doc/odr.html | 26 + dependencies/yaz_3.0.14/doc/odr.programming.html | 494 + dependencies/yaz_3.0.14/doc/odr.use.html | 330 + dependencies/yaz_3.0.14/doc/odr.xml | 1312 + dependencies/yaz_3.0.14/doc/server.backend.html | 11 + .../yaz_3.0.14/doc/server.backendfunctions.html | 377 + dependencies/yaz_3.0.14/doc/server.frontend.html | 36 + dependencies/yaz_3.0.14/doc/server.html | 35 + dependencies/yaz_3.0.14/doc/server.invocation.html | 167 + dependencies/yaz_3.0.14/doc/server.main.html | 117 + dependencies/yaz_3.0.14/doc/server.vhosts.html | 154 + dependencies/yaz_3.0.14/doc/soap.html | 12 + dependencies/yaz_3.0.14/doc/soap.http.html | 27 + dependencies/yaz_3.0.14/doc/soap.srw.html | 97 + dependencies/yaz_3.0.14/doc/soap.xml | 265 + dependencies/yaz_3.0.14/doc/soap.xml.html | 97 + dependencies/yaz_3.0.14/doc/std-oid-table.xml | 2257 + dependencies/yaz_3.0.14/doc/tools.html | 1061 + dependencies/yaz_3.0.14/doc/tools.log.html | 117 + dependencies/yaz_3.0.14/doc/tools.nmem.html | 46 + dependencies/yaz_3.0.14/doc/tools.oid.html | 326 + dependencies/yaz_3.0.14/doc/tools.retrieval.html | 145 + dependencies/yaz_3.0.14/doc/tools.xml | 2570 + dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml | 266 + .../yaz_3.0.14/doc/yaz-client-commands.xml | 762 + dependencies/yaz_3.0.14/doc/yaz-client-man.xml | 225 + dependencies/yaz_3.0.14/doc/yaz-config-man.xml | 145 + dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml | 124 + dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml | 137 + dependencies/yaz_3.0.14/doc/yaz-log-man.xml | 294 + dependencies/yaz_3.0.14/doc/yaz-man.xml | 141 + dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml | 176 + dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml | 110 + dependencies/yaz_3.0.14/doc/yaz.xml | 53 + dependencies/yaz_3.0.14/doc/ziffy.html | 15 + dependencies/yaz_3.0.14/doc/ziffy.using.html | 11 + dependencies/yaz_3.0.14/doc/ziffy.xml | 56 + dependencies/yaz_3.0.14/doc/zoom.events.html | 28 + .../yaz_3.0.14/doc/zoom.extendedservices.html | 105 + dependencies/yaz_3.0.14/doc/zoom.html | 257 + dependencies/yaz_3.0.14/doc/zoom.options.html | 24 + dependencies/yaz_3.0.14/doc/zoom.query.html | 31 + dependencies/yaz_3.0.14/doc/zoom.records.html | 139 + dependencies/yaz_3.0.14/doc/zoom.resultsets.html | 167 + dependencies/yaz_3.0.14/doc/zoom.scan.html | 86 + dependencies/yaz_3.0.14/doc/zoom.xml | 1453 + dependencies/yaz_3.0.14/doc/zoomsh-man.xml | 173 + dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl | 198 + dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl | 1873 + dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl | 197 + dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl | 65 + dependencies/yaz_3.0.14/etc/maps.xml | 35 + dependencies/yaz_3.0.14/etc/pqf.properties | 157 + dependencies/yaz_3.0.14/etc/yazgfs.xml | 40 + dependencies/yaz_3.0.14/include/yaz/backend.h | 395 + dependencies/yaz_3.0.14/include/yaz/ccl.h | 383 + dependencies/yaz_3.0.14/include/yaz/ccl_xml.h | 79 + dependencies/yaz_3.0.14/include/yaz/charneg.h | 113 + dependencies/yaz_3.0.14/include/yaz/comstack.h | 168 + dependencies/yaz_3.0.14/include/yaz/copy_types.h | 57 + dependencies/yaz_3.0.14/include/yaz/cql.h | 328 + dependencies/yaz_3.0.14/include/yaz/diagbib1.h | 188 + .../yaz_3.0.14/include/yaz/diagsru_update.h | 63 + dependencies/yaz_3.0.14/include/yaz/diagsrw.h | 107 + dependencies/yaz_3.0.14/include/yaz/ill-core.h | 1332 + dependencies/yaz_3.0.14/include/yaz/ill.h | 70 + dependencies/yaz_3.0.14/include/yaz/item-req.h | 61 + .../yaz_3.0.14/include/yaz/libxml2_error.h | 61 + dependencies/yaz_3.0.14/include/yaz/log.h | 259 + dependencies/yaz_3.0.14/include/yaz/logrpn.h | 62 + dependencies/yaz_3.0.14/include/yaz/marcdisp.h | 372 + dependencies/yaz_3.0.14/include/yaz/mutex.h | 62 + dependencies/yaz_3.0.14/include/yaz/nmem.h | 108 + dependencies/yaz_3.0.14/include/yaz/nmem_xml.h | 55 + .../yaz_3.0.14/include/yaz/oclc-ill-req-ext.h | 69 + dependencies/yaz_3.0.14/include/yaz/odr.h | 351 + dependencies/yaz_3.0.14/include/yaz/oid_db.h | 207 + dependencies/yaz_3.0.14/include/yaz/oid_std.h | 153 + dependencies/yaz_3.0.14/include/yaz/oid_util.h | 72 + dependencies/yaz_3.0.14/include/yaz/options.h | 53 + dependencies/yaz_3.0.14/include/yaz/otherinfo.h | 69 + dependencies/yaz_3.0.14/include/yaz/pquery.h | 96 + dependencies/yaz_3.0.14/include/yaz/proto.h | 205 + dependencies/yaz_3.0.14/include/yaz/prt-ext.h | 165 + .../yaz_3.0.14/include/yaz/query-charset.h | 57 + dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h | 58 + dependencies/yaz_3.0.14/include/yaz/readconf.h | 59 + dependencies/yaz_3.0.14/include/yaz/record_conv.h | 123 + dependencies/yaz_3.0.14/include/yaz/retrieval.h | 140 + dependencies/yaz_3.0.14/include/yaz/snprintf.h | 57 + dependencies/yaz_3.0.14/include/yaz/soap.h | 100 + dependencies/yaz_3.0.14/include/yaz/sortspec.h | 54 + dependencies/yaz_3.0.14/include/yaz/srw.h | 297 + dependencies/yaz_3.0.14/include/yaz/statserv.h | 48 + dependencies/yaz_3.0.14/include/yaz/tcpip.h | 55 + dependencies/yaz_3.0.14/include/yaz/test.h | 123 + dependencies/yaz_3.0.14/include/yaz/timing.h | 68 + dependencies/yaz_3.0.14/include/yaz/tokenizer.h | 85 + dependencies/yaz_3.0.14/include/yaz/tpath.h | 119 + dependencies/yaz_3.0.14/include/yaz/unix.h | 59 + dependencies/yaz_3.0.14/include/yaz/wrbuf.h | 110 + dependencies/yaz_3.0.14/include/yaz/xmalloc.h | 68 + dependencies/yaz_3.0.14/include/yaz/xmlquery.h | 59 + dependencies/yaz_3.0.14/include/yaz/xmltypes.h | 59 + dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h | 56 + dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h | 114 + dependencies/yaz_3.0.14/include/yaz/yaz-util.h | 155 + dependencies/yaz_3.0.14/include/yaz/yaz-version.h | 64 + dependencies/yaz_3.0.14/include/yaz/yconfig.h | 69 + dependencies/yaz_3.0.14/include/yaz/z-accdes1.h | 45 + dependencies/yaz_3.0.14/include/yaz/z-accform1.h | 137 + dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h | 54 + dependencies/yaz_3.0.14/include/yaz/z-charneg.h | 189 + dependencies/yaz_3.0.14/include/yaz/z-core.h | 1342 + dependencies/yaz_3.0.14/include/yaz/z-date.h | 137 + dependencies/yaz_3.0.14/include/yaz/z-diag1.h | 357 + dependencies/yaz_3.0.14/include/yaz/z-espec1.h | 145 + dependencies/yaz_3.0.14/include/yaz/z-estask.h | 46 + dependencies/yaz_3.0.14/include/yaz/z-exp.h | 1015 + dependencies/yaz_3.0.14/include/yaz/z-grs.h | 181 + dependencies/yaz_3.0.14/include/yaz/z-mterm2.h | 40 + dependencies/yaz_3.0.14/include/yaz/z-oclcui.h | 40 + dependencies/yaz_3.0.14/include/yaz/z-opac.h | 98 + dependencies/yaz_3.0.14/include/yaz/z-rrf1.h | 62 + dependencies/yaz_3.0.14/include/yaz/z-rrf2.h | 41 + dependencies/yaz_3.0.14/include/yaz/z-sum.h | 54 + dependencies/yaz_3.0.14/include/yaz/z-sutrs.h | 39 + dependencies/yaz_3.0.14/include/yaz/z-uifr1.h | 98 + dependencies/yaz_3.0.14/include/yaz/z-univ.h | 53 + dependencies/yaz_3.0.14/include/yaz/zes-admin.h | 113 + dependencies/yaz_3.0.14/include/yaz/zes-expi.h | 108 + dependencies/yaz_3.0.14/include/yaz/zes-exps.h | 96 + dependencies/yaz_3.0.14/include/yaz/zes-order.h | 135 + dependencies/yaz_3.0.14/include/yaz/zes-pquery.h | 80 + dependencies/yaz_3.0.14/include/yaz/zes-psched.h | 121 + dependencies/yaz_3.0.14/include/yaz/zes-pset.h | 71 + dependencies/yaz_3.0.14/include/yaz/zes-update.h | 166 + dependencies/yaz_3.0.14/include/yaz/zes-update0.h | 154 + dependencies/yaz_3.0.14/include/yaz/zgdu.h | 112 + dependencies/yaz_3.0.14/include/yaz/zoom.h | 491 + dependencies/yaz_3.0.14/lib/yaz3.lib | Bin 0 -> 238422 bytes dependencies/yaz_3.0.14/src/atoin.c | 44 + dependencies/yaz_3.0.14/src/ber_any.c | 143 + dependencies/yaz_3.0.14/src/ber_bit.c | 92 + dependencies/yaz_3.0.14/src/ber_bool.c | 62 + dependencies/yaz_3.0.14/src/ber_int.c | 120 + dependencies/yaz_3.0.14/src/ber_len.c | 136 + dependencies/yaz_3.0.14/src/ber_null.c | 58 + dependencies/yaz_3.0.14/src/ber_oct.c | 94 + dependencies/yaz_3.0.14/src/ber_oid.c | 145 + dependencies/yaz_3.0.14/src/ber_tag.c | 197 + dependencies/yaz_3.0.14/src/bib1.csv | 176 + dependencies/yaz_3.0.14/src/ccl_stop_words.c | 242 + dependencies/yaz_3.0.14/src/cclerrms.c | 118 + dependencies/yaz_3.0.14/src/cclfind.c | 1210 + dependencies/yaz_3.0.14/src/cclp.h | 109 + dependencies/yaz_3.0.14/src/cclptree.c | 232 + dependencies/yaz_3.0.14/src/cclqfile.c | 373 + dependencies/yaz_3.0.14/src/cclqual.c | 431 + dependencies/yaz_3.0.14/src/cclstr.c | 122 + dependencies/yaz_3.0.14/src/ccltoken.c | 364 + dependencies/yaz_3.0.14/src/cclxmlconfig.c | 210 + dependencies/yaz_3.0.14/src/charconv.tcl | 412 + dependencies/yaz_3.0.14/src/charneg-3.asn | 212 + dependencies/yaz_3.0.14/src/charneg.c | 434 + dependencies/yaz_3.0.14/src/codetables.xml |98947 ++++++++++++++++++++ dependencies/yaz_3.0.14/src/comstack.c | 339 + dependencies/yaz_3.0.14/src/copy_types.c | 68 + dependencies/yaz_3.0.14/src/cql.c | 1957 + dependencies/yaz_3.0.14/src/cql.y | 366 + dependencies/yaz_3.0.14/src/cqlstdio.c | 49 + dependencies/yaz_3.0.14/src/cqlstrer.c | 74 + dependencies/yaz_3.0.14/src/cqlstring.c | 54 + dependencies/yaz_3.0.14/src/cqltransform.c | 692 + dependencies/yaz_3.0.14/src/cqlutil.c | 193 + dependencies/yaz_3.0.14/src/csvtobib1.tcl | 18 + dependencies/yaz_3.0.14/src/csvtodiag.tcl | 93 + dependencies/yaz_3.0.14/src/csvtosru_update.tcl | 18 + dependencies/yaz_3.0.14/src/csvtosrw.tcl | 18 + dependencies/yaz_3.0.14/src/datetime.asn | 81 + dependencies/yaz_3.0.14/src/diag-entry.c | 34 + dependencies/yaz_3.0.14/src/diag-entry.h | 26 + dependencies/yaz_3.0.14/src/diagbib1.c | 190 + dependencies/yaz_3.0.14/src/diagsru_update.c | 62 + dependencies/yaz_3.0.14/src/diagsrw.c | 106 + dependencies/yaz_3.0.14/src/dumpber.c | 137 + dependencies/yaz_3.0.14/src/elementset.c | 56 + dependencies/yaz_3.0.14/src/esadmin.asn | 49 + dependencies/yaz_3.0.14/src/esupdate.asn | 103 + dependencies/yaz_3.0.14/src/eventl.c | 249 + dependencies/yaz_3.0.14/src/eventl.h | 72 + dependencies/yaz_3.0.14/src/grs1disp.c | 136 + dependencies/yaz_3.0.14/src/http.c | 552 + dependencies/yaz_3.0.14/src/ill-core.c | 1790 + dependencies/yaz_3.0.14/src/ill-get.c | 675 + dependencies/yaz_3.0.14/src/ill.tcl | 68 + dependencies/yaz_3.0.14/src/ill9702.asn | 1165 + dependencies/yaz_3.0.14/src/initopt.c | 102 + dependencies/yaz_3.0.14/src/item-req.asn | 58 + dependencies/yaz_3.0.14/src/item-req.c | 69 + dependencies/yaz_3.0.14/src/libxml2_error.c | 62 + dependencies/yaz_3.0.14/src/log.c | 597 + dependencies/yaz_3.0.14/src/logrpn.c | 406 + dependencies/yaz_3.0.14/src/marc8.c |42250 +++++++++ dependencies/yaz_3.0.14/src/marc8r.c |31974 +++++++ dependencies/yaz_3.0.14/src/marc_read_iso2709.c | 200 + dependencies/yaz_3.0.14/src/marc_read_line.c | 262 + dependencies/yaz_3.0.14/src/marc_read_xml.c | 263 + dependencies/yaz_3.0.14/src/marcdisp.c | 1067 + dependencies/yaz_3.0.14/src/matchstr.c | 85 + dependencies/yaz_3.0.14/src/mime.c | 90 + dependencies/yaz_3.0.14/src/mime.h | 25 + dependencies/yaz_3.0.14/src/mterm2.asn | 10 + dependencies/yaz_3.0.14/src/mutex.c | 115 + dependencies/yaz_3.0.14/src/nmem.c | 251 + dependencies/yaz_3.0.14/src/nmemsdup.c | 115 + dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn | 45 + dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c | 63 + dependencies/yaz_3.0.14/src/oclcui.asn | 33 + dependencies/yaz_3.0.14/src/odr-priv.h | 135 + dependencies/yaz_3.0.14/src/odr.c | 310 + dependencies/yaz_3.0.14/src/odr_any.c | 49 + dependencies/yaz_3.0.14/src/odr_bit.c | 68 + dependencies/yaz_3.0.14/src/odr_bool.c | 58 + dependencies/yaz_3.0.14/src/odr_choice.c | 109 + dependencies/yaz_3.0.14/src/odr_cons.c | 222 + dependencies/yaz_3.0.14/src/odr_enum.c | 59 + dependencies/yaz_3.0.14/src/odr_int.c | 59 + dependencies/yaz_3.0.14/src/odr_mem.c | 131 + dependencies/yaz_3.0.14/src/odr_null.c | 63 + dependencies/yaz_3.0.14/src/odr_oct.c | 227 + dependencies/yaz_3.0.14/src/odr_oid.c | 65 + dependencies/yaz_3.0.14/src/odr_seq.c | 154 + dependencies/yaz_3.0.14/src/odr_tag.c | 68 + dependencies/yaz_3.0.14/src/odr_use.c | 77 + dependencies/yaz_3.0.14/src/odr_util.c | 126 + dependencies/yaz_3.0.14/src/oid.csv | 141 + dependencies/yaz_3.0.14/src/oid_db.c | 211 + dependencies/yaz_3.0.14/src/oid_std.c | 288 + dependencies/yaz_3.0.14/src/oid_util.c | 107 + dependencies/yaz_3.0.14/src/oidtoc.tcl | 162 + dependencies/yaz_3.0.14/src/opacdisp.c | 179 + dependencies/yaz_3.0.14/src/options.c | 97 + dependencies/yaz_3.0.14/src/otherinfo.c | 189 + dependencies/yaz_3.0.14/src/pquery.c | 852 + dependencies/yaz_3.0.14/src/prt-ext.c | 345 + dependencies/yaz_3.0.14/src/query-charset.c | 106 + dependencies/yaz_3.0.14/src/querytowrbuf.c | 262 + dependencies/yaz_3.0.14/src/readconf.c | 99 + dependencies/yaz_3.0.14/src/record_conv.c | 507 + dependencies/yaz_3.0.14/src/requestq.c | 106 + dependencies/yaz_3.0.14/src/retrieval.c | 380 + dependencies/yaz_3.0.14/src/service.c | 474 + dependencies/yaz_3.0.14/src/service.h | 56 + dependencies/yaz_3.0.14/src/seshigh.c | 3569 + dependencies/yaz_3.0.14/src/session.h | 147 + dependencies/yaz_3.0.14/src/siconv.c | 1981 + dependencies/yaz_3.0.14/src/snprintf.c | 44 + dependencies/yaz_3.0.14/src/soap.c | 358 + dependencies/yaz_3.0.14/src/sortspec.c | 139 + dependencies/yaz_3.0.14/src/sru_update.csv | 51 + dependencies/yaz_3.0.14/src/srw.c | 1295 + dependencies/yaz_3.0.14/src/srw.csv | 95 + dependencies/yaz_3.0.14/src/srwutil.c | 1410 + dependencies/yaz_3.0.14/src/statserv.c | 1570 + dependencies/yaz_3.0.14/src/tcpdchk.c | 108 + dependencies/yaz_3.0.14/src/tcpip.c | 1385 + dependencies/yaz_3.0.14/src/test.c | 219 + dependencies/yaz_3.0.14/src/timing.c | 161 + dependencies/yaz_3.0.14/src/tokenizer.c | 187 + dependencies/yaz_3.0.14/src/tpath.c | 137 + dependencies/yaz_3.0.14/src/univres.asn | 23 + dependencies/yaz_3.0.14/src/unix.c | 748 + dependencies/yaz_3.0.14/src/version.c | 35 + dependencies/yaz_3.0.14/src/waislen.c | 41 + dependencies/yaz_3.0.14/src/wrbuf.c | 260 + dependencies/yaz_3.0.14/src/xcqlutil.c | 243 + dependencies/yaz_3.0.14/src/xmalloc.c | 353 + dependencies/yaz_3.0.14/src/xmlquery.c | 798 + dependencies/yaz_3.0.14/src/yaz-ccl.c | 58 + dependencies/yaz_3.0.14/src/z-accdes1.c | 39 + dependencies/yaz_3.0.14/src/z-accform1.c | 154 + dependencies/yaz_3.0.14/src/z-acckrb1.c | 51 + dependencies/yaz_3.0.14/src/z-charneg.c | 234 + dependencies/yaz_3.0.14/src/z-core.c | 1625 + dependencies/yaz_3.0.14/src/z-date.c | 163 + dependencies/yaz_3.0.14/src/z-diag1.c | 396 + dependencies/yaz_3.0.14/src/z-espec1.c | 181 + dependencies/yaz_3.0.14/src/z-estask.c | 38 + dependencies/yaz_3.0.14/src/z-exp.c | 1455 + dependencies/yaz_3.0.14/src/z-grs.c | 225 + dependencies/yaz_3.0.14/src/z-mterm2.c | 31 + dependencies/yaz_3.0.14/src/z-oclcui.c | 30 + dependencies/yaz_3.0.14/src/z-opac.c | 128 + dependencies/yaz_3.0.14/src/z-rrf1.c | 39 + dependencies/yaz_3.0.14/src/z-rrf2.c | 32 + dependencies/yaz_3.0.14/src/z-sum.c | 57 + dependencies/yaz_3.0.14/src/z-sutrs.c | 19 + dependencies/yaz_3.0.14/src/z-uifr1.c | 119 + dependencies/yaz_3.0.14/src/z-univ.c | 43 + dependencies/yaz_3.0.14/src/z.tcl | 351 + dependencies/yaz_3.0.14/src/z3950v3.asn | 2669 + dependencies/yaz_3.0.14/src/zes-admin.c | 124 + dependencies/yaz_3.0.14/src/zes-expi.c | 129 + dependencies/yaz_3.0.14/src/zes-exps.c | 105 + dependencies/yaz_3.0.14/src/zes-order.c | 161 + dependencies/yaz_3.0.14/src/zes-pquery.c | 85 + dependencies/yaz_3.0.14/src/zes-psched.c | 144 + dependencies/yaz_3.0.14/src/zes-pset.c | 73 + dependencies/yaz_3.0.14/src/zes-update.c | 195 + dependencies/yaz_3.0.14/src/zes-update0.c | 178 + dependencies/yaz_3.0.14/src/zgdu.c | 64 + dependencies/yaz_3.0.14/src/zget.c | 661 + dependencies/yaz_3.0.14/src/zoom-c.c | 4516 + dependencies/yaz_3.0.14/src/zoom-opt.c | 237 + dependencies/yaz_3.0.14/src/zoom-p.h | 222 + dependencies/yaz_3.0.14/src/zoom-socket.c | 240 + dependencies/yaz_3.0.14/test/marc1.chr | 1 + dependencies/yaz_3.0.14/test/marc1.marc | 1 + dependencies/yaz_3.0.14/test/marc1.xml | 93 + dependencies/yaz_3.0.14/test/marc1.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc2.chr | 1 + dependencies/yaz_3.0.14/test/marc2.marc | 1 + dependencies/yaz_3.0.14/test/marc2.xml | 100 + dependencies/yaz_3.0.14/test/marc2.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc3.chr | 1 + dependencies/yaz_3.0.14/test/marc3.marc | 1 + dependencies/yaz_3.0.14/test/marc3.xml | 120 + dependencies/yaz_3.0.14/test/marc3.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc4.chr | 1 + dependencies/yaz_3.0.14/test/marc4.marc | 1 + dependencies/yaz_3.0.14/test/marc4.xml | 9 + dependencies/yaz_3.0.14/test/marc4.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc5.chr | 1 + dependencies/yaz_3.0.14/test/marc5.marc | 1 + dependencies/yaz_3.0.14/test/marc5.xml | 31 + dependencies/yaz_3.0.14/test/marc5.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc6.chr | 1 + dependencies/yaz_3.0.14/test/marc6.marc | 1 + dependencies/yaz_3.0.14/test/marc6.xml | 32 + dependencies/yaz_3.0.14/test/marc6.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc7.chr | 1 + dependencies/yaz_3.0.14/test/marc7.marc | 1 + dependencies/yaz_3.0.14/test/marc7.xml | 86 + dependencies/yaz_3.0.14/test/marc7.xml.marc | 1 + dependencies/yaz_3.0.14/test/marc8.chr | 1 + dependencies/yaz_3.0.14/test/marc8.marc | 1 + dependencies/yaz_3.0.14/test/marc8.xml | 139 + dependencies/yaz_3.0.14/test/marc8.xml.marc | 1 + dependencies/yaz_3.0.14/test/marccol1.u8.1.lst | 477 + dependencies/yaz_3.0.14/test/marccol1.u8.2.lst | 477 + dependencies/yaz_3.0.14/test/marccol1.u8.marc | 1 + dependencies/yaz_3.0.14/test/marccol2.u8.1.lst | 28 + dependencies/yaz_3.0.14/test/marccol2.u8.2.lst | 28 + dependencies/yaz_3.0.14/test/marccol2.u8.marc | 1 + dependencies/yaz_3.0.14/test/tst_comstack.c | 207 + dependencies/yaz_3.0.14/test/tst_filepath.c | 43 + dependencies/yaz_3.0.14/test/tst_oid.c | 84 + dependencies/yaz_3.0.14/test/tst_query_charset.c | 96 + dependencies/yaz_3.0.14/test/tst_record_conv.c | 340 + dependencies/yaz_3.0.14/test/tst_retrieval.c | 337 + dependencies/yaz_3.0.14/test/tst_timing.c | 71 + dependencies/yaz_3.0.14/test/tst_tpath.c | 54 + dependencies/yaz_3.0.14/test/tstccl.c | 222 + dependencies/yaz_3.0.14/test/tstcql.sh | 55 + dependencies/yaz_3.0.14/test/tsticonv.c | 664 + dependencies/yaz_3.0.14/test/tstlog.c | 90 + dependencies/yaz_3.0.14/test/tstlogthread.c | 90 + dependencies/yaz_3.0.14/test/tstmarccol.sh | 66 + dependencies/yaz_3.0.14/test/tstmarciso.sh | 48 + dependencies/yaz_3.0.14/test/tstmarcxml.sh | 40 + dependencies/yaz_3.0.14/test/tstmatchstr.c | 44 + dependencies/yaz_3.0.14/test/tstnmem.c | 64 + dependencies/yaz_3.0.14/test/tstodr.asn | 17 + dependencies/yaz_3.0.14/test/tstodr.c | 156 + dependencies/yaz_3.0.14/test/tstodrcodec.c | 27 + dependencies/yaz_3.0.14/test/tstodrcodec.h | 37 + dependencies/yaz_3.0.14/test/tstodrstack.c | 77 + dependencies/yaz_3.0.14/test/tstpquery.c | 86 + dependencies/yaz_3.0.14/test/tstsoap1.c | 63 + dependencies/yaz_3.0.14/test/tstsoap2.c | 68 + dependencies/yaz_3.0.14/test/tstwrbuf.c | 70 + dependencies/yaz_3.0.14/test/tstxmlquery.c | 249 + dependencies/yaz_3.0.14/uninst.exe | Bin 0 -> 50518 bytes dependencies/yaz_3.0.14/util/benchmark.c | 146 + dependencies/yaz_3.0.14/util/cclsh.c | 286 + dependencies/yaz_3.0.14/util/cql2pqf.c | 99 + dependencies/yaz_3.0.14/util/cql2xcql.c | 61 + dependencies/yaz_3.0.14/util/marcdump.c | 459 + dependencies/yaz_3.0.14/util/srwtst.c | 114 + dependencies/yaz_3.0.14/util/yaz-asncomp | 1407 + dependencies/yaz_3.0.14/util/yaz-illclient.c | 695 + dependencies/yaz_3.0.14/util/yaz-xmlquery.c | 198 + dependencies/yaz_3.0.14/util/yaziconv.c | 195 + dependencies/yaz_3.0.14/win/makefile | 874 + dependencies/yaz_3.0.14/win/yaz.nsi | 201 + dependencies/yaz_3.0.14/win/yaz.rc | 38 + dependencies/yaz_3.0.14/ziffy/apdu.c | 180 + dependencies/yaz_3.0.14/ziffy/apdu.h | 70 + dependencies/yaz_3.0.14/ziffy/fmemdmp.c | 106 + dependencies/yaz_3.0.14/ziffy/hooks.c | 321 + dependencies/yaz_3.0.14/ziffy/yaz.c | 145 + dependencies/yaz_3.0.14/ziffy/ziffy.c | 501 + dependencies/yaz_3.0.14/zoom/zoom-benchmark.c | 436 + dependencies/yaz_3.0.14/zoom/zoom-bug-641.c | 90 + dependencies/yaz_3.0.14/zoom/zoom-ka.c | 64 + dependencies/yaz_3.0.14/zoom/zoomsh.c | 682 + dependencies/yaz_3.0.14/zoom/zoomtst1.c | 49 + dependencies/yaz_3.0.14/zoom/zoomtst10.c | 66 + dependencies/yaz_3.0.14/zoom/zoomtst11.c | 113 + dependencies/yaz_3.0.14/zoom/zoomtst2.c | 66 + dependencies/yaz_3.0.14/zoom/zoomtst3.c | 126 + dependencies/yaz_3.0.14/zoom/zoomtst4.c | 103 + dependencies/yaz_3.0.14/zoom/zoomtst5.c | 134 + dependencies/yaz_3.0.14/zoom/zoomtst6.c | 132 + dependencies/yaz_3.0.14/zoom/zoomtst7.c | 188 + dependencies/yaz_3.0.14/zoom/zoomtst8.c | 96 + dependencies/yaz_3.0.14/zoom/zoomtst9.c | 114 + dependencies/yaz_3.0.14/ztest/dummy-grs | 98 + dependencies/yaz_3.0.14/ztest/dummy-records | 1 + dependencies/yaz_3.0.14/ztest/dummy-words | 990 + dependencies/yaz_3.0.14/ztest/read-grs.c | 125 + dependencies/yaz_3.0.14/ztest/read-marc.c | 1631 + dependencies/yaz_3.0.14/ztest/ztest.c | 795 + distributions/.DS_Store | Bin 0 -> 6148 bytes libyaz4j/build-osx.sh | 13 + libyaz4j/build-windows.bat | 64 + libyaz4j/build.sh | 15 + libyaz4j/include/zoom-extra.h | 11 + libyaz4j/lib/libyaz4j.so | Bin 0 -> 59728 bytes libyaz4j/libyaz4j.i | 21 + libyaz4j/libyaz4j.i.orig | 22 + libyaz4j/obj/libyaz4j.o | Bin 0 -> 54772 bytes libyaz4j/obj/zoom-extra.o | Bin 0 -> 1140 bytes libyaz4j/src/libyaz4j.cpp | 2190 + libyaz4j/src/zoom-extra.cpp | 13 + libyaz4j/typemaps.txt |18240 ++++ src/.DS_Store | Bin 0 -> 6148 bytes src/org/yaz4j/Bib1Diagnostic.java | 134 + src/org/yaz4j/Bib1Exception.java | 16 + src/org/yaz4j/CQLQuery.java | 21 + src/org/yaz4j/Connection.java | 235 + src/org/yaz4j/ConnectionExtended.java | 25 + src/org/yaz4j/ConnectionOptionsCollection.java | 42 + src/org/yaz4j/ConnectionTimeoutException.java | 16 + src/org/yaz4j/ConnectionUnavailableException.java | 16 + src/org/yaz4j/InitRejectedException.java | 16 + src/org/yaz4j/InvalidQueryException.java | 16 + src/org/yaz4j/Package.java | 43 + src/org/yaz4j/PackageOptionsCollection.java | 29 + src/org/yaz4j/PrefixQuery.java | 21 + src/org/yaz4j/Record.java | 71 + src/org/yaz4j/ResultSet.java | 66 + src/org/yaz4j/ResultSetOptionsCollection.java | 29 + src/org/yaz4j/ScanSet.java | 50 + src/org/yaz4j/ScanTerm.java | 23 + src/org/yaz4j/Yaz4jMain.java | 31 + src/org/yaz4j/ZoomImplementationException.java | 16 + src/org/yaz4j/jni/CharStarByteArray.java | 56 + .../yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_resultset_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_scanset_p.java | 26 + ...WIGTYPE_p_f_p_void_p_q_const__char__p_char.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_int.java | 26 + .../yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_p_char.java | 26 + src/org/yaz4j/jni/SWIGTYPE_p_void.java | 26 + src/org/yaz4j/jni/yaz4jlib.java | 307 + src/org/yaz4j/jni/yaz4jlibConstants.java | 39 + src/org/yaz4j/jni/yaz4jlibJNI.java | 88 + 1192 files changed, 674469 insertions(+) create mode 100644 .DS_Store create mode 100644 .classpath create mode 100644 .project create mode 100644 bin/.DS_Store create mode 100644 bin/org/yaz4j/Bib1Diagnostic.class create mode 100644 bin/org/yaz4j/Bib1Exception.class create mode 100644 bin/org/yaz4j/CQLQuery.class create mode 100644 bin/org/yaz4j/Connection$QueryType.class create mode 100644 bin/org/yaz4j/Connection.class create mode 100644 bin/org/yaz4j/ConnectionExtended.class create mode 100644 bin/org/yaz4j/ConnectionOptionsCollection.class create mode 100644 bin/org/yaz4j/ConnectionTimeoutException.class create mode 100644 bin/org/yaz4j/ConnectionUnavailableException.class create mode 100644 bin/org/yaz4j/InitRejectedException.class create mode 100644 bin/org/yaz4j/InvalidQueryException.class create mode 100644 bin/org/yaz4j/Package.class create mode 100644 bin/org/yaz4j/PackageOptionsCollection.class create mode 100644 bin/org/yaz4j/PrefixQuery.class create mode 100644 bin/org/yaz4j/Record.class create mode 100644 bin/org/yaz4j/ResultSet.class create mode 100644 bin/org/yaz4j/ResultSetOptionsCollection.class create mode 100644 bin/org/yaz4j/ScanSet.class create mode 100644 bin/org/yaz4j/ScanTerm.class create mode 100644 bin/org/yaz4j/Yaz4jMain.class create mode 100644 bin/org/yaz4j/ZoomImplementationException.class create mode 100644 bin/org/yaz4j/jni/CharStarByteArray.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_resultset_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_scanset_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_f_p_void_p_q_const__char__p_char.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_int.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_p_char.class create mode 100644 bin/org/yaz4j/jni/SWIGTYPE_p_void.class create mode 100644 bin/org/yaz4j/jni/yaz4jlib.class create mode 100644 bin/org/yaz4j/jni/yaz4jlibConstants.class create mode 100644 bin/org/yaz4j/jni/yaz4jlibJNI.class create mode 100644 build-windows.xml create mode 100644 build.xml create mode 100644 dependencies/JUnit-4.3.1/junit-4.3.1.jar create mode 100644 dependencies/yaz-2.1.28/ChangeLog create mode 100644 dependencies/yaz-2.1.28/Doxyfile.in create mode 100644 dependencies/yaz-2.1.28/LICENSE create mode 100644 dependencies/yaz-2.1.28/Makefile.am create mode 100644 dependencies/yaz-2.1.28/Makefile.in create mode 100644 dependencies/yaz-2.1.28/NEWS create mode 100644 dependencies/yaz-2.1.28/README create mode 100644 dependencies/yaz-2.1.28/TODO create mode 100644 dependencies/yaz-2.1.28/aclocal.m4 create mode 100755 dependencies/yaz-2.1.28/buildconf.sh create mode 100644 dependencies/yaz-2.1.28/client/Makefile.am create mode 100644 dependencies/yaz-2.1.28/client/Makefile.in create mode 100644 dependencies/yaz-2.1.28/client/admin.c create mode 100644 dependencies/yaz-2.1.28/client/admin.h create mode 100644 dependencies/yaz-2.1.28/client/bertorture.c create mode 100644 dependencies/yaz-2.1.28/client/client.c create mode 100644 dependencies/yaz-2.1.28/client/default.bib create mode 100644 dependencies/yaz-2.1.28/client/tabcomplete.c create mode 100644 dependencies/yaz-2.1.28/client/tabcomplete.h create mode 100755 dependencies/yaz-2.1.28/config/config.guess create mode 100755 dependencies/yaz-2.1.28/config/config.sub create mode 100755 dependencies/yaz-2.1.28/config/depcomp create mode 100755 dependencies/yaz-2.1.28/config/install-sh create mode 100644 dependencies/yaz-2.1.28/config/ltmain.sh create mode 100755 dependencies/yaz-2.1.28/config/missing create mode 100755 dependencies/yaz-2.1.28/configure create mode 100644 dependencies/yaz-2.1.28/configure.ac create mode 100644 dependencies/yaz-2.1.28/debian/changelog create mode 100644 dependencies/yaz-2.1.28/debian/control create mode 100644 dependencies/yaz-2.1.28/debian/libyaz-dev.install create mode 100644 dependencies/yaz-2.1.28/debian/libyaz-dev.manpages create mode 100644 dependencies/yaz-2.1.28/debian/libyaz.install create mode 100755 dependencies/yaz-2.1.28/debian/libyaz.postinst create mode 100755 dependencies/yaz-2.1.28/debian/rules create mode 100644 dependencies/yaz-2.1.28/debian/yaz-doc.install create mode 100644 dependencies/yaz-2.1.28/debian/yaz.install create mode 100644 dependencies/yaz-2.1.28/debian/yaz.manpages create mode 100644 dependencies/yaz-2.1.28/doc/Makefile.am create mode 100644 dependencies/yaz-2.1.28/doc/Makefile.in create mode 100644 dependencies/yaz-2.1.28/doc/apilayer.obj create mode 100644 dependencies/yaz-2.1.28/doc/apilayer.png create mode 100644 dependencies/yaz-2.1.28/doc/asn.external.html create mode 100644 dependencies/yaz-2.1.28/doc/asn.html create mode 100644 dependencies/yaz-2.1.28/doc/asn.oid.html create mode 100644 dependencies/yaz-2.1.28/doc/asn.pdu.html create mode 100644 dependencies/yaz-2.1.28/doc/asn.preparing.html create mode 100644 dependencies/yaz-2.1.28/doc/asn.xml create mode 100644 dependencies/yaz-2.1.28/doc/bookinfo.xml create mode 100644 dependencies/yaz-2.1.28/doc/client.commands.html create mode 100644 dependencies/yaz-2.1.28/doc/client.html create mode 100644 dependencies/yaz-2.1.28/doc/client.invoking.html create mode 100644 dependencies/yaz-2.1.28/doc/client.searching.html create mode 100644 dependencies/yaz-2.1.28/doc/client.xml create mode 100644 dependencies/yaz-2.1.28/doc/common/Makefile.am create mode 100644 dependencies/yaz-2.1.28/doc/common/Makefile.in create mode 100644 dependencies/yaz-2.1.28/doc/common/README create mode 100644 dependencies/yaz-2.1.28/doc/common/common.ent create mode 100644 dependencies/yaz-2.1.28/doc/common/id.eps create mode 100644 dependencies/yaz-2.1.28/doc/common/id.htmlhelp.xsl create mode 100644 dependencies/yaz-2.1.28/doc/common/id.man.xsl create mode 100644 dependencies/yaz-2.1.28/doc/common/id.png create mode 100644 dependencies/yaz-2.1.28/doc/common/id.tkl.xsl create mode 100644 dependencies/yaz-2.1.28/doc/common/print.dsl.in create mode 100644 dependencies/yaz-2.1.28/doc/common/ref2dbinc.xsl create mode 100644 dependencies/yaz-2.1.28/doc/common/style1.css create mode 100644 dependencies/yaz-2.1.28/doc/common/xml.dcl create mode 100644 dependencies/yaz-2.1.28/doc/comstack.addresses.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.client.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.common.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.diagnostics.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.introduction.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.server.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.ssl.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.summary.html create mode 100644 dependencies/yaz-2.1.28/doc/comstack.xml create mode 100644 dependencies/yaz-2.1.28/doc/credits.html create mode 100644 dependencies/yaz-2.1.28/doc/credits.xml create mode 100644 dependencies/yaz-2.1.28/doc/entities.ent create mode 100644 dependencies/yaz-2.1.28/doc/frontend.xml create mode 100644 dependencies/yaz-2.1.28/doc/future.html create mode 100644 dependencies/yaz-2.1.28/doc/future.xml create mode 100644 dependencies/yaz-2.1.28/doc/gfs-options.xml create mode 100644 dependencies/yaz-2.1.28/doc/gfs-synopsis.xml create mode 100644 dependencies/yaz-2.1.28/doc/gfs-virtual.xml create mode 100644 dependencies/yaz-2.1.28/doc/index.html create mode 100644 dependencies/yaz-2.1.28/doc/indexdata.html create mode 100644 dependencies/yaz-2.1.28/doc/indexdata.xml create mode 100644 dependencies/yaz-2.1.28/doc/installation.html create mode 100644 dependencies/yaz-2.1.28/doc/installation.unix.html create mode 100644 dependencies/yaz-2.1.28/doc/installation.win32.html create mode 100644 dependencies/yaz-2.1.28/doc/installation.xml create mode 100644 dependencies/yaz-2.1.28/doc/introduction.api.html create mode 100644 dependencies/yaz-2.1.28/doc/introduction.html create mode 100644 dependencies/yaz-2.1.28/doc/introduction.xml create mode 100644 dependencies/yaz-2.1.28/doc/license.html create mode 100644 dependencies/yaz-2.1.28/doc/license.other.html create mode 100644 dependencies/yaz-2.1.28/doc/license.xml create mode 100644 dependencies/yaz-2.1.28/doc/local.ent.in create mode 100644 dependencies/yaz-2.1.28/doc/odr.debugging.html create mode 100644 dependencies/yaz-2.1.28/doc/odr.html create mode 100644 dependencies/yaz-2.1.28/doc/odr.programming.html create mode 100644 dependencies/yaz-2.1.28/doc/odr.use.html create mode 100644 dependencies/yaz-2.1.28/doc/odr.xml create mode 100644 dependencies/yaz-2.1.28/doc/server.backend.html create mode 100644 dependencies/yaz-2.1.28/doc/server.backendfunctions.html create mode 100644 dependencies/yaz-2.1.28/doc/server.frontend.html create mode 100644 dependencies/yaz-2.1.28/doc/server.html create mode 100644 dependencies/yaz-2.1.28/doc/server.invocation.html create mode 100644 dependencies/yaz-2.1.28/doc/server.main.html create mode 100644 dependencies/yaz-2.1.28/doc/server.vhosts.html create mode 100644 dependencies/yaz-2.1.28/doc/soap.html create mode 100644 dependencies/yaz-2.1.28/doc/soap.http.html create mode 100644 dependencies/yaz-2.1.28/doc/soap.srw.html create mode 100644 dependencies/yaz-2.1.28/doc/soap.xml create mode 100644 dependencies/yaz-2.1.28/doc/soap.xml.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.log.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.marc.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.nmem.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.oid.html create mode 100644 dependencies/yaz-2.1.28/doc/tools.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-asncomp-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-asncomp.1 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-client-commands.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-client-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-client.1 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-config-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-config.8 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-iconv-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-iconv.1 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-log-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-log.7 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-marcdump-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-marcdump.1 create mode 100644 dependencies/yaz-2.1.28/doc/yaz-ztest-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/yaz-ztest.8 create mode 100644 dependencies/yaz-2.1.28/doc/yaz.7 create mode 100644 dependencies/yaz-2.1.28/doc/yaz.xml create mode 100644 dependencies/yaz-2.1.28/doc/zoom.events.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.ext.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.options.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.query.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.records.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.resultsets.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.scan.html create mode 100644 dependencies/yaz-2.1.28/doc/zoom.xml create mode 100644 dependencies/yaz-2.1.28/doc/zoomsh-man.xml create mode 100644 dependencies/yaz-2.1.28/doc/zoomsh.1 create mode 100644 dependencies/yaz-2.1.28/etc/MARC21slim2DC.xsl create mode 100644 dependencies/yaz-2.1.28/etc/MARC21slim2MODS.xsl create mode 100644 dependencies/yaz-2.1.28/etc/MARC21slim2RDFDC.xsl create mode 100644 dependencies/yaz-2.1.28/etc/MARC21slimUtils.xsl create mode 100644 dependencies/yaz-2.1.28/etc/Makefile.am create mode 100644 dependencies/yaz-2.1.28/etc/Makefile.in create mode 100755 dependencies/yaz-2.1.28/etc/debian.init.d create mode 100644 dependencies/yaz-2.1.28/etc/maps.xml create mode 100644 dependencies/yaz-2.1.28/etc/pqf.properties create mode 100644 dependencies/yaz-2.1.28/etc/yazgfs.xml create mode 100644 dependencies/yaz-2.1.28/include/Makefile.am create mode 100644 dependencies/yaz-2.1.28/include/Makefile.in create mode 100644 dependencies/yaz-2.1.28/include/yaz/Makefile.am create mode 100644 dependencies/yaz-2.1.28/include/yaz/Makefile.in create mode 100644 dependencies/yaz-2.1.28/include/yaz/backend.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/ccl.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/charneg.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/comstack.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/cql.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/diagbib1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/diagsrw.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/ill-core.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/ill.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/item-req.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/libxml2_error.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/log.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/logrpn.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/marcdisp.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/nfa.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/nfaxml.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/nmem.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/odr.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/oid.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/options.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/otherinfo.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/pquery.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/proto.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/prt-ext.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/querytowrbuf.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/readconf.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/record_conv.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/retrieval.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/soap.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/sortspec.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/srw.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/statserv.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/tcpip.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/test.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/tpath.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/unix.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/wrbuf.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/xmalloc.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/xmlquery.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/yaz-ccl.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/yaz-iconv.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/yaz-util.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/yaz-version.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/yconfig.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-accdes1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-accform1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-acckrb1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-charneg.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-core.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-date.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-diag1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-espec1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-estask.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-exp.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-grs.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-mterm2.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-oclcui.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-opac.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-rrf1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-rrf2.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-sum.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-sutrs.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-uifr1.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/z-univ.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-admin.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-expi.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-exps.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-order.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-pquery.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-psched.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-pset.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-update.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zes-update0.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zgdu.h create mode 100644 dependencies/yaz-2.1.28/include/yaz/zoom.h create mode 100644 dependencies/yaz-2.1.28/m4/yaz.m4 create mode 100644 dependencies/yaz-2.1.28/m4/yaz_libxml2.m4 create mode 100644 dependencies/yaz-2.1.28/src/Makefile.am create mode 100644 dependencies/yaz-2.1.28/src/Makefile.in create mode 100644 dependencies/yaz-2.1.28/src/atoin.c create mode 100644 dependencies/yaz-2.1.28/src/ber_any.c create mode 100644 dependencies/yaz-2.1.28/src/ber_bit.c create mode 100644 dependencies/yaz-2.1.28/src/ber_bool.c create mode 100644 dependencies/yaz-2.1.28/src/ber_int.c create mode 100644 dependencies/yaz-2.1.28/src/ber_len.c create mode 100644 dependencies/yaz-2.1.28/src/ber_null.c create mode 100644 dependencies/yaz-2.1.28/src/ber_oct.c create mode 100644 dependencies/yaz-2.1.28/src/ber_oid.c create mode 100644 dependencies/yaz-2.1.28/src/ber_tag.c create mode 100644 dependencies/yaz-2.1.28/src/bib1.csv create mode 100644 dependencies/yaz-2.1.28/src/cclerrms.c create mode 100644 dependencies/yaz-2.1.28/src/cclfind.c create mode 100644 dependencies/yaz-2.1.28/src/cclptree.c create mode 100644 dependencies/yaz-2.1.28/src/cclqfile.c create mode 100644 dependencies/yaz-2.1.28/src/cclqual.c create mode 100644 dependencies/yaz-2.1.28/src/cclstr.c create mode 100644 dependencies/yaz-2.1.28/src/ccltoken.c create mode 100755 dependencies/yaz-2.1.28/src/charconv.tcl create mode 100644 dependencies/yaz-2.1.28/src/charneg-3.asn create mode 100644 dependencies/yaz-2.1.28/src/charneg.c create mode 100644 dependencies/yaz-2.1.28/src/codetables.xml create mode 100644 dependencies/yaz-2.1.28/src/comstack.c create mode 100644 dependencies/yaz-2.1.28/src/cql.c create mode 100644 dependencies/yaz-2.1.28/src/cql.y create mode 100644 dependencies/yaz-2.1.28/src/cqlstdio.c create mode 100644 dependencies/yaz-2.1.28/src/cqlstrer.c create mode 100644 dependencies/yaz-2.1.28/src/cqlstring.c create mode 100644 dependencies/yaz-2.1.28/src/cqltransform.c create mode 100644 dependencies/yaz-2.1.28/src/cqlutil.c create mode 100755 dependencies/yaz-2.1.28/src/csvtobib1.tcl create mode 100644 dependencies/yaz-2.1.28/src/csvtodiag.tcl create mode 100755 dependencies/yaz-2.1.28/src/csvtosrw.tcl create mode 100644 dependencies/yaz-2.1.28/src/datetime.asn create mode 100644 dependencies/yaz-2.1.28/src/diag-entry.c create mode 100644 dependencies/yaz-2.1.28/src/diag-entry.h create mode 100644 dependencies/yaz-2.1.28/src/diagbib1.c create mode 100644 dependencies/yaz-2.1.28/src/diagsrw.c create mode 100644 dependencies/yaz-2.1.28/src/dumpber.c create mode 100644 dependencies/yaz-2.1.28/src/esadmin.asn create mode 100644 dependencies/yaz-2.1.28/src/esupdate.asn create mode 100644 dependencies/yaz-2.1.28/src/eventl.c create mode 100644 dependencies/yaz-2.1.28/src/eventl.h create mode 100644 dependencies/yaz-2.1.28/src/grs1disp.c create mode 100644 dependencies/yaz-2.1.28/src/ill-core.c create mode 100644 dependencies/yaz-2.1.28/src/ill-get.c create mode 100644 dependencies/yaz-2.1.28/src/ill.tcl create mode 100644 dependencies/yaz-2.1.28/src/ill9702.asn create mode 100644 dependencies/yaz-2.1.28/src/initopt.c create mode 100644 dependencies/yaz-2.1.28/src/item-req.asn create mode 100644 dependencies/yaz-2.1.28/src/item-req.c create mode 100644 dependencies/yaz-2.1.28/src/libxml2_error.c create mode 100644 dependencies/yaz-2.1.28/src/log.c create mode 100644 dependencies/yaz-2.1.28/src/logrpn.c create mode 100644 dependencies/yaz-2.1.28/src/marc8.c create mode 100644 dependencies/yaz-2.1.28/src/marc8r.c create mode 100644 dependencies/yaz-2.1.28/src/marcdisp.c create mode 100644 dependencies/yaz-2.1.28/src/matchstr.c create mode 100644 dependencies/yaz-2.1.28/src/mime.c create mode 100644 dependencies/yaz-2.1.28/src/mime.h create mode 100644 dependencies/yaz-2.1.28/src/mterm2.asn create mode 100644 dependencies/yaz-2.1.28/src/nfa.c create mode 100644 dependencies/yaz-2.1.28/src/nfaxml.c create mode 100644 dependencies/yaz-2.1.28/src/nmem.c create mode 100644 dependencies/yaz-2.1.28/src/nmemsdup.c create mode 100644 dependencies/yaz-2.1.28/src/oclcui.asn create mode 100644 dependencies/yaz-2.1.28/src/odr-priv.h create mode 100644 dependencies/yaz-2.1.28/src/odr.c create mode 100644 dependencies/yaz-2.1.28/src/odr_any.c create mode 100644 dependencies/yaz-2.1.28/src/odr_bit.c create mode 100644 dependencies/yaz-2.1.28/src/odr_bool.c create mode 100644 dependencies/yaz-2.1.28/src/odr_choice.c create mode 100644 dependencies/yaz-2.1.28/src/odr_cons.c create mode 100644 dependencies/yaz-2.1.28/src/odr_enum.c create mode 100644 dependencies/yaz-2.1.28/src/odr_int.c create mode 100644 dependencies/yaz-2.1.28/src/odr_mem.c create mode 100644 dependencies/yaz-2.1.28/src/odr_null.c create mode 100644 dependencies/yaz-2.1.28/src/odr_oct.c create mode 100644 dependencies/yaz-2.1.28/src/odr_oid.c create mode 100644 dependencies/yaz-2.1.28/src/odr_seq.c create mode 100644 dependencies/yaz-2.1.28/src/odr_tag.c create mode 100644 dependencies/yaz-2.1.28/src/odr_use.c create mode 100644 dependencies/yaz-2.1.28/src/odr_util.c create mode 100644 dependencies/yaz-2.1.28/src/oid.c create mode 100644 dependencies/yaz-2.1.28/src/opacdisp.c create mode 100644 dependencies/yaz-2.1.28/src/options.c create mode 100644 dependencies/yaz-2.1.28/src/otherinfo.c create mode 100644 dependencies/yaz-2.1.28/src/pquery.c create mode 100644 dependencies/yaz-2.1.28/src/prt-ext.c create mode 100644 dependencies/yaz-2.1.28/src/querytowrbuf.c create mode 100644 dependencies/yaz-2.1.28/src/readconf.c create mode 100644 dependencies/yaz-2.1.28/src/record_conv.c create mode 100644 dependencies/yaz-2.1.28/src/requestq.c create mode 100644 dependencies/yaz-2.1.28/src/retrieval.c create mode 100644 dependencies/yaz-2.1.28/src/service.c create mode 100644 dependencies/yaz-2.1.28/src/service.h create mode 100644 dependencies/yaz-2.1.28/src/seshigh.c create mode 100644 dependencies/yaz-2.1.28/src/session.h create mode 100644 dependencies/yaz-2.1.28/src/siconv.c create mode 100644 dependencies/yaz-2.1.28/src/soap.c create mode 100644 dependencies/yaz-2.1.28/src/sortspec.c create mode 100644 dependencies/yaz-2.1.28/src/srw.c create mode 100644 dependencies/yaz-2.1.28/src/srw.csv create mode 100644 dependencies/yaz-2.1.28/src/srwutil.c create mode 100644 dependencies/yaz-2.1.28/src/statserv.c create mode 100644 dependencies/yaz-2.1.28/src/tcpdchk.c create mode 100644 dependencies/yaz-2.1.28/src/tcpip.c create mode 100644 dependencies/yaz-2.1.28/src/test.c create mode 100644 dependencies/yaz-2.1.28/src/tpath.c create mode 100644 dependencies/yaz-2.1.28/src/univres.asn create mode 100644 dependencies/yaz-2.1.28/src/unix.c create mode 100644 dependencies/yaz-2.1.28/src/version.c create mode 100644 dependencies/yaz-2.1.28/src/waislen.c create mode 100644 dependencies/yaz-2.1.28/src/wrbuf.c create mode 100644 dependencies/yaz-2.1.28/src/xcqlutil.c create mode 100644 dependencies/yaz-2.1.28/src/xmalloc.c create mode 100644 dependencies/yaz-2.1.28/src/xmlquery.c create mode 100644 dependencies/yaz-2.1.28/src/yaz-ccl.c create mode 100644 dependencies/yaz-2.1.28/src/z-accdes1.c create mode 100644 dependencies/yaz-2.1.28/src/z-accform1.c create mode 100644 dependencies/yaz-2.1.28/src/z-acckrb1.c create mode 100644 dependencies/yaz-2.1.28/src/z-charneg.c create mode 100644 dependencies/yaz-2.1.28/src/z-core.c create mode 100644 dependencies/yaz-2.1.28/src/z-date.c create mode 100644 dependencies/yaz-2.1.28/src/z-diag1.c create mode 100644 dependencies/yaz-2.1.28/src/z-espec1.c create mode 100644 dependencies/yaz-2.1.28/src/z-estask.c create mode 100644 dependencies/yaz-2.1.28/src/z-exp.c create mode 100644 dependencies/yaz-2.1.28/src/z-grs.c create mode 100644 dependencies/yaz-2.1.28/src/z-mterm2.c create mode 100644 dependencies/yaz-2.1.28/src/z-oclcui.c create mode 100644 dependencies/yaz-2.1.28/src/z-opac.c create mode 100644 dependencies/yaz-2.1.28/src/z-rrf1.c create mode 100644 dependencies/yaz-2.1.28/src/z-rrf2.c create mode 100644 dependencies/yaz-2.1.28/src/z-sum.c create mode 100644 dependencies/yaz-2.1.28/src/z-sutrs.c create mode 100644 dependencies/yaz-2.1.28/src/z-uifr1.c create mode 100644 dependencies/yaz-2.1.28/src/z-univ.c create mode 100644 dependencies/yaz-2.1.28/src/z.tcl create mode 100644 dependencies/yaz-2.1.28/src/z3950oid.c create mode 100644 dependencies/yaz-2.1.28/src/z3950v3.asn create mode 100644 dependencies/yaz-2.1.28/src/zes-admin.c create mode 100644 dependencies/yaz-2.1.28/src/zes-expi.c create mode 100644 dependencies/yaz-2.1.28/src/zes-exps.c create mode 100644 dependencies/yaz-2.1.28/src/zes-order.c create mode 100644 dependencies/yaz-2.1.28/src/zes-pquery.c create mode 100644 dependencies/yaz-2.1.28/src/zes-psched.c create mode 100644 dependencies/yaz-2.1.28/src/zes-pset.c create mode 100644 dependencies/yaz-2.1.28/src/zes-update.c create mode 100644 dependencies/yaz-2.1.28/src/zes-update0.c create mode 100644 dependencies/yaz-2.1.28/src/zgdu.c create mode 100644 dependencies/yaz-2.1.28/src/zget.c create mode 100644 dependencies/yaz-2.1.28/src/zoom-c.c create mode 100644 dependencies/yaz-2.1.28/src/zoom-opt.c create mode 100644 dependencies/yaz-2.1.28/src/zoom-p.h create mode 100644 dependencies/yaz-2.1.28/test/Makefile.am create mode 100644 dependencies/yaz-2.1.28/test/Makefile.in create mode 100644 dependencies/yaz-2.1.28/test/cql/1.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.10.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.10.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.11.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.11.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.7.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.7.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.8.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.8.out create mode 100644 dependencies/yaz-2.1.28/test/cql/1.9.err create mode 100644 dependencies/yaz-2.1.28/test/cql/1.9.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.10.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.10.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.7.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.7.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.8.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.8.out create mode 100644 dependencies/yaz-2.1.28/test/cql/10.9.err create mode 100644 dependencies/yaz-2.1.28/test/cql/10.9.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.10.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.10.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.11.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.11.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.12.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.12.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.13.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.13.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.14.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.14.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.7.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.7.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.8.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.8.out create mode 100644 dependencies/yaz-2.1.28/test/cql/2.9.err create mode 100644 dependencies/yaz-2.1.28/test/cql/2.9.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.7.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.7.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.8.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.8.out create mode 100644 dependencies/yaz-2.1.28/test/cql/3.9.err create mode 100644 dependencies/yaz-2.1.28/test/cql/3.9.out create mode 100644 dependencies/yaz-2.1.28/test/cql/4.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/4.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/4.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/4.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.7.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.7.out create mode 100644 dependencies/yaz-2.1.28/test/cql/5.8.err create mode 100644 dependencies/yaz-2.1.28/test/cql/5.8.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.5.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.5.out create mode 100644 dependencies/yaz-2.1.28/test/cql/6.6.err create mode 100644 dependencies/yaz-2.1.28/test/cql/6.6.out create mode 100644 dependencies/yaz-2.1.28/test/cql/7.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/7.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/7.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/7.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/7.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/7.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/8.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/8.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/8.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/8.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/8.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/8.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/9.1.err create mode 100644 dependencies/yaz-2.1.28/test/cql/9.1.out create mode 100644 dependencies/yaz-2.1.28/test/cql/9.2.err create mode 100644 dependencies/yaz-2.1.28/test/cql/9.2.out create mode 100644 dependencies/yaz-2.1.28/test/cql/9.3.err create mode 100644 dependencies/yaz-2.1.28/test/cql/9.3.out create mode 100644 dependencies/yaz-2.1.28/test/cql/9.4.err create mode 100644 dependencies/yaz-2.1.28/test/cql/9.4.out create mode 100644 dependencies/yaz-2.1.28/test/cql2pqf-order.txt create mode 100644 dependencies/yaz-2.1.28/test/cqlsample create mode 100644 dependencies/yaz-2.1.28/test/marc1.chr create mode 100644 dependencies/yaz-2.1.28/test/marc1.marc create mode 100644 dependencies/yaz-2.1.28/test/marc1.xml create mode 100644 dependencies/yaz-2.1.28/test/marc1.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc2.chr create mode 100644 dependencies/yaz-2.1.28/test/marc2.marc create mode 100644 dependencies/yaz-2.1.28/test/marc2.xml create mode 100644 dependencies/yaz-2.1.28/test/marc2.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc3.chr create mode 100644 dependencies/yaz-2.1.28/test/marc3.marc create mode 100644 dependencies/yaz-2.1.28/test/marc3.xml create mode 100644 dependencies/yaz-2.1.28/test/marc3.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc4.chr create mode 100644 dependencies/yaz-2.1.28/test/marc4.marc create mode 100644 dependencies/yaz-2.1.28/test/marc4.xml create mode 100644 dependencies/yaz-2.1.28/test/marc4.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc5.chr create mode 100644 dependencies/yaz-2.1.28/test/marc5.marc create mode 100644 dependencies/yaz-2.1.28/test/marc5.xml create mode 100644 dependencies/yaz-2.1.28/test/marc5.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc6.chr create mode 100644 dependencies/yaz-2.1.28/test/marc6.marc create mode 100644 dependencies/yaz-2.1.28/test/marc6.xml create mode 100644 dependencies/yaz-2.1.28/test/marc6.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marc7.chr create mode 100644 dependencies/yaz-2.1.28/test/marc7.marc create mode 100644 dependencies/yaz-2.1.28/test/marc7.xml create mode 100644 dependencies/yaz-2.1.28/test/marc7.xml.marc create mode 100644 dependencies/yaz-2.1.28/test/marccol1.u8.1.lst create mode 100644 dependencies/yaz-2.1.28/test/marccol1.u8.2.lst create mode 100644 dependencies/yaz-2.1.28/test/marccol1.u8.marc create mode 100644 dependencies/yaz-2.1.28/test/nfatest1.c create mode 100644 dependencies/yaz-2.1.28/test/nfaxmltest1.c create mode 100644 dependencies/yaz-2.1.28/test/tst_filepath.c create mode 100644 dependencies/yaz-2.1.28/test/tst_record_conv.c create mode 100644 dependencies/yaz-2.1.28/test/tst_record_conv.xsl create mode 100644 dependencies/yaz-2.1.28/test/tst_retrieval.c create mode 100644 dependencies/yaz-2.1.28/test/tst_tpath.c create mode 100644 dependencies/yaz-2.1.28/test/tstccl.c create mode 100755 dependencies/yaz-2.1.28/test/tstcql.sh create mode 100644 dependencies/yaz-2.1.28/test/tsticonv.c create mode 100644 dependencies/yaz-2.1.28/test/tstlog.c create mode 100644 dependencies/yaz-2.1.28/test/tstlogthread.c create mode 100755 dependencies/yaz-2.1.28/test/tstmarccol.sh create mode 100755 dependencies/yaz-2.1.28/test/tstmarciso.sh create mode 100755 dependencies/yaz-2.1.28/test/tstmarcxml.sh create mode 100644 dependencies/yaz-2.1.28/test/tstmatchstr.c create mode 100644 dependencies/yaz-2.1.28/test/tstnmem.c create mode 100644 dependencies/yaz-2.1.28/test/tstodr.asn create mode 100644 dependencies/yaz-2.1.28/test/tstodr.c create mode 100644 dependencies/yaz-2.1.28/test/tstodrcodec.c create mode 100644 dependencies/yaz-2.1.28/test/tstodrcodec.h create mode 100644 dependencies/yaz-2.1.28/test/tstodrstack.c create mode 100644 dependencies/yaz-2.1.28/test/tstpquery.c create mode 100644 dependencies/yaz-2.1.28/test/tstsoap1.c create mode 100644 dependencies/yaz-2.1.28/test/tstsoap2.c create mode 100644 dependencies/yaz-2.1.28/test/tstwrbuf.c create mode 100644 dependencies/yaz-2.1.28/test/tstxmlquery.c create mode 100644 dependencies/yaz-2.1.28/util/Makefile.am create mode 100644 dependencies/yaz-2.1.28/util/Makefile.in create mode 100644 dependencies/yaz-2.1.28/util/benchmark.c create mode 100644 dependencies/yaz-2.1.28/util/cclsh.c create mode 100644 dependencies/yaz-2.1.28/util/cql2pqf.c create mode 100644 dependencies/yaz-2.1.28/util/cql2xcql.c create mode 100644 dependencies/yaz-2.1.28/util/marcdump.c create mode 100644 dependencies/yaz-2.1.28/util/srwtst.c create mode 100755 dependencies/yaz-2.1.28/util/yaz-asncomp create mode 100644 dependencies/yaz-2.1.28/util/yaz-xmlquery.c create mode 100644 dependencies/yaz-2.1.28/util/yaziconv.c create mode 100644 dependencies/yaz-2.1.28/win/LICENSE.txt create mode 100644 dependencies/yaz-2.1.28/win/makefile create mode 100644 dependencies/yaz-2.1.28/win/yaz.nsi create mode 100644 dependencies/yaz-2.1.28/win/yaz.rc create mode 100644 dependencies/yaz-2.1.28/windows.txt create mode 100644 dependencies/yaz-2.1.28/yaz-config.in create mode 100644 dependencies/yaz-2.1.28/yaz.spec create mode 100644 dependencies/yaz-2.1.28/yaz.spec.in create mode 100644 dependencies/yaz-2.1.28/zoom/Makefile.am create mode 100644 dependencies/yaz-2.1.28/zoom/Makefile.in create mode 100644 dependencies/yaz-2.1.28/zoom/zoom-benchmark.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomsh.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst1.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst10.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst2.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst3.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst4.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst5.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst6.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst7.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst8.c create mode 100644 dependencies/yaz-2.1.28/zoom/zoomtst9.c create mode 100644 dependencies/yaz-2.1.28/ztest/Makefile.am create mode 100644 dependencies/yaz-2.1.28/ztest/Makefile.in create mode 100644 dependencies/yaz-2.1.28/ztest/config1.xml create mode 100644 dependencies/yaz-2.1.28/ztest/dummy-grs create mode 100644 dependencies/yaz-2.1.28/ztest/dummy-records create mode 100644 dependencies/yaz-2.1.28/ztest/dummy-words create mode 100644 dependencies/yaz-2.1.28/ztest/read-grs.c create mode 100644 dependencies/yaz-2.1.28/ztest/read-marc.c create mode 100644 dependencies/yaz-2.1.28/ztest/ztest.c create mode 100644 dependencies/yaz-2.1.28/ztest/ztest.pem create mode 100644 dependencies/yaz_3.0.14/LICENSE.txt create mode 100644 dependencies/yaz_3.0.14/NEWS create mode 100644 dependencies/yaz_3.0.14/README create mode 100644 dependencies/yaz_3.0.14/bin/.yazclient.history create mode 100644 dependencies/yaz_3.0.14/bin/LICENSE.txt create mode 100644 dependencies/yaz_3.0.14/bin/cql2pqf.exe create mode 100644 dependencies/yaz_3.0.14/bin/cql2xcql.exe create mode 100644 dependencies/yaz_3.0.14/bin/iconv.dll create mode 100644 dependencies/yaz_3.0.14/bin/libxml2.dll create mode 100644 dependencies/yaz_3.0.14/bin/libxslt.dll create mode 100644 dependencies/yaz_3.0.14/bin/makefile create mode 100644 dependencies/yaz_3.0.14/bin/tst_timing.exe create mode 100644 dependencies/yaz_3.0.14/bin/tstlog.exe create mode 100644 dependencies/yaz_3.0.14/bin/yaz-client.exe create mode 100644 dependencies/yaz_3.0.14/bin/yaz-marcdump.exe create mode 100644 dependencies/yaz_3.0.14/bin/yaz-ztest.exe create mode 100644 dependencies/yaz_3.0.14/bin/yaz.nsi create mode 100644 dependencies/yaz_3.0.14/bin/yaz.rc create mode 100644 dependencies/yaz_3.0.14/bin/yaz3.dll create mode 100644 dependencies/yaz_3.0.14/bin/zlib1.dll create mode 100644 dependencies/yaz_3.0.14/bin/zoomsh.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst1.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst10.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst2.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst3.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst4.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst5.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst6.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst7.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst8.exe create mode 100644 dependencies/yaz_3.0.14/bin/zoomtst9.exe create mode 100644 dependencies/yaz_3.0.14/client/admin.c create mode 100644 dependencies/yaz_3.0.14/client/admin.h create mode 100644 dependencies/yaz_3.0.14/client/bertorture.c create mode 100644 dependencies/yaz_3.0.14/client/client.c create mode 100644 dependencies/yaz_3.0.14/client/fhistory.c create mode 100644 dependencies/yaz_3.0.14/client/fhistory.h create mode 100644 dependencies/yaz_3.0.14/client/tabcomplete.c create mode 100644 dependencies/yaz_3.0.14/client/tabcomplete.h create mode 100644 dependencies/yaz_3.0.14/doc/apilayer.png create mode 100644 dependencies/yaz_3.0.14/doc/asn.external.html create mode 100644 dependencies/yaz_3.0.14/doc/asn.html create mode 100644 dependencies/yaz_3.0.14/doc/asn.oid.html create mode 100644 dependencies/yaz_3.0.14/doc/asn.pdu.html create mode 100644 dependencies/yaz_3.0.14/doc/asn.preparing.html create mode 100644 dependencies/yaz_3.0.14/doc/asn.xml create mode 100644 dependencies/yaz_3.0.14/doc/bookinfo.xml create mode 100644 dependencies/yaz_3.0.14/doc/client.commands.html create mode 100644 dependencies/yaz_3.0.14/doc/client.html create mode 100644 dependencies/yaz_3.0.14/doc/client.invoking.html create mode 100644 dependencies/yaz_3.0.14/doc/client.searching.html create mode 100644 dependencies/yaz_3.0.14/doc/client.xml create mode 100644 dependencies/yaz_3.0.14/doc/common/common.ent create mode 100644 dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl create mode 100644 dependencies/yaz_3.0.14/doc/common/id.man.xsl create mode 100644 dependencies/yaz_3.0.14/doc/common/id.png create mode 100644 dependencies/yaz_3.0.14/doc/common/id.tkl.xsl create mode 100644 dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl create mode 100644 dependencies/yaz_3.0.14/doc/common/stripref.xsl create mode 100644 dependencies/yaz_3.0.14/doc/common/style1.css create mode 100644 dependencies/yaz_3.0.14/doc/comstack.addresses.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.client.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.common.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.diagnostics.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.introduction.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.server.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.ssl.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.summary.html create mode 100644 dependencies/yaz_3.0.14/doc/comstack.xml create mode 100644 dependencies/yaz_3.0.14/doc/credits.html create mode 100644 dependencies/yaz_3.0.14/doc/credits.xml create mode 100644 dependencies/yaz_3.0.14/doc/entities.ent create mode 100644 dependencies/yaz_3.0.14/doc/frontend.xml create mode 100644 dependencies/yaz_3.0.14/doc/future.html create mode 100644 dependencies/yaz_3.0.14/doc/future.xml create mode 100644 dependencies/yaz_3.0.14/doc/gfs-options.xml create mode 100644 dependencies/yaz_3.0.14/doc/gfs-synopsis.xml create mode 100644 dependencies/yaz_3.0.14/doc/gfs-virtual.xml create mode 100644 dependencies/yaz_3.0.14/doc/index.html create mode 100644 dependencies/yaz_3.0.14/doc/indexdata.html create mode 100644 dependencies/yaz_3.0.14/doc/indexdata.xml create mode 100644 dependencies/yaz_3.0.14/doc/installation.html create mode 100644 dependencies/yaz_3.0.14/doc/installation.unix.html create mode 100644 dependencies/yaz_3.0.14/doc/installation.win32.html create mode 100644 dependencies/yaz_3.0.14/doc/installation.xml create mode 100644 dependencies/yaz_3.0.14/doc/introduction.api.html create mode 100644 dependencies/yaz_3.0.14/doc/introduction.html create mode 100644 dependencies/yaz_3.0.14/doc/introduction.xml create mode 100644 dependencies/yaz_3.0.14/doc/license.html create mode 100644 dependencies/yaz_3.0.14/doc/license.other.html create mode 100644 dependencies/yaz_3.0.14/doc/license.xml create mode 100644 dependencies/yaz_3.0.14/doc/list-oids.html create mode 100644 dependencies/yaz_3.0.14/doc/marc.html create mode 100644 dependencies/yaz_3.0.14/doc/odr.debugging.html create mode 100644 dependencies/yaz_3.0.14/doc/odr.html create mode 100644 dependencies/yaz_3.0.14/doc/odr.programming.html create mode 100644 dependencies/yaz_3.0.14/doc/odr.use.html create mode 100644 dependencies/yaz_3.0.14/doc/odr.xml create mode 100644 dependencies/yaz_3.0.14/doc/server.backend.html create mode 100644 dependencies/yaz_3.0.14/doc/server.backendfunctions.html create mode 100644 dependencies/yaz_3.0.14/doc/server.frontend.html create mode 100644 dependencies/yaz_3.0.14/doc/server.html create mode 100644 dependencies/yaz_3.0.14/doc/server.invocation.html create mode 100644 dependencies/yaz_3.0.14/doc/server.main.html create mode 100644 dependencies/yaz_3.0.14/doc/server.vhosts.html create mode 100644 dependencies/yaz_3.0.14/doc/soap.html create mode 100644 dependencies/yaz_3.0.14/doc/soap.http.html create mode 100644 dependencies/yaz_3.0.14/doc/soap.srw.html create mode 100644 dependencies/yaz_3.0.14/doc/soap.xml create mode 100644 dependencies/yaz_3.0.14/doc/soap.xml.html create mode 100644 dependencies/yaz_3.0.14/doc/std-oid-table.xml create mode 100644 dependencies/yaz_3.0.14/doc/tools.html create mode 100644 dependencies/yaz_3.0.14/doc/tools.log.html create mode 100644 dependencies/yaz_3.0.14/doc/tools.nmem.html create mode 100644 dependencies/yaz_3.0.14/doc/tools.oid.html create mode 100644 dependencies/yaz_3.0.14/doc/tools.retrieval.html create mode 100644 dependencies/yaz_3.0.14/doc/tools.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-client-commands.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-client-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-config-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-log-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml create mode 100644 dependencies/yaz_3.0.14/doc/yaz.xml create mode 100644 dependencies/yaz_3.0.14/doc/ziffy.html create mode 100644 dependencies/yaz_3.0.14/doc/ziffy.using.html create mode 100644 dependencies/yaz_3.0.14/doc/ziffy.xml create mode 100644 dependencies/yaz_3.0.14/doc/zoom.events.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.extendedservices.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.options.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.query.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.records.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.resultsets.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.scan.html create mode 100644 dependencies/yaz_3.0.14/doc/zoom.xml create mode 100644 dependencies/yaz_3.0.14/doc/zoomsh-man.xml create mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl create mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl create mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl create mode 100644 dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl create mode 100644 dependencies/yaz_3.0.14/etc/maps.xml create mode 100644 dependencies/yaz_3.0.14/etc/pqf.properties create mode 100644 dependencies/yaz_3.0.14/etc/yazgfs.xml create mode 100644 dependencies/yaz_3.0.14/include/yaz/backend.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/ccl.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/ccl_xml.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/charneg.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/comstack.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/copy_types.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/cql.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/diagbib1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/diagsru_update.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/diagsrw.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/ill-core.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/ill.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/item-req.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/libxml2_error.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/log.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/logrpn.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/marcdisp.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/mutex.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/nmem.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/nmem_xml.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/oclc-ill-req-ext.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/odr.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_db.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_std.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_util.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/options.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/otherinfo.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/pquery.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/proto.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/prt-ext.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/query-charset.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/readconf.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/record_conv.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/retrieval.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/snprintf.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/soap.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/sortspec.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/srw.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/statserv.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/tcpip.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/test.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/timing.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/tokenizer.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/tpath.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/unix.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/wrbuf.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/xmalloc.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/xmlquery.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/xmltypes.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-util.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-version.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/yconfig.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-accdes1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-accform1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-charneg.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-core.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-date.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-diag1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-espec1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-estask.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-exp.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-grs.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-mterm2.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-oclcui.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-opac.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-rrf1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-rrf2.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-sum.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-sutrs.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-uifr1.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/z-univ.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-admin.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-expi.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-exps.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-order.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-pquery.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-psched.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-pset.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-update.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-update0.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zgdu.h create mode 100644 dependencies/yaz_3.0.14/include/yaz/zoom.h create mode 100644 dependencies/yaz_3.0.14/lib/yaz3.lib create mode 100644 dependencies/yaz_3.0.14/src/atoin.c create mode 100644 dependencies/yaz_3.0.14/src/ber_any.c create mode 100644 dependencies/yaz_3.0.14/src/ber_bit.c create mode 100644 dependencies/yaz_3.0.14/src/ber_bool.c create mode 100644 dependencies/yaz_3.0.14/src/ber_int.c create mode 100644 dependencies/yaz_3.0.14/src/ber_len.c create mode 100644 dependencies/yaz_3.0.14/src/ber_null.c create mode 100644 dependencies/yaz_3.0.14/src/ber_oct.c create mode 100644 dependencies/yaz_3.0.14/src/ber_oid.c create mode 100644 dependencies/yaz_3.0.14/src/ber_tag.c create mode 100644 dependencies/yaz_3.0.14/src/bib1.csv create mode 100644 dependencies/yaz_3.0.14/src/ccl_stop_words.c create mode 100644 dependencies/yaz_3.0.14/src/cclerrms.c create mode 100644 dependencies/yaz_3.0.14/src/cclfind.c create mode 100644 dependencies/yaz_3.0.14/src/cclp.h create mode 100644 dependencies/yaz_3.0.14/src/cclptree.c create mode 100644 dependencies/yaz_3.0.14/src/cclqfile.c create mode 100644 dependencies/yaz_3.0.14/src/cclqual.c create mode 100644 dependencies/yaz_3.0.14/src/cclstr.c create mode 100644 dependencies/yaz_3.0.14/src/ccltoken.c create mode 100644 dependencies/yaz_3.0.14/src/cclxmlconfig.c create mode 100644 dependencies/yaz_3.0.14/src/charconv.tcl create mode 100644 dependencies/yaz_3.0.14/src/charneg-3.asn create mode 100644 dependencies/yaz_3.0.14/src/charneg.c create mode 100644 dependencies/yaz_3.0.14/src/codetables.xml create mode 100644 dependencies/yaz_3.0.14/src/comstack.c create mode 100644 dependencies/yaz_3.0.14/src/copy_types.c create mode 100644 dependencies/yaz_3.0.14/src/cql.c create mode 100644 dependencies/yaz_3.0.14/src/cql.y create mode 100644 dependencies/yaz_3.0.14/src/cqlstdio.c create mode 100644 dependencies/yaz_3.0.14/src/cqlstrer.c create mode 100644 dependencies/yaz_3.0.14/src/cqlstring.c create mode 100644 dependencies/yaz_3.0.14/src/cqltransform.c create mode 100644 dependencies/yaz_3.0.14/src/cqlutil.c create mode 100644 dependencies/yaz_3.0.14/src/csvtobib1.tcl create mode 100644 dependencies/yaz_3.0.14/src/csvtodiag.tcl create mode 100644 dependencies/yaz_3.0.14/src/csvtosru_update.tcl create mode 100644 dependencies/yaz_3.0.14/src/csvtosrw.tcl create mode 100644 dependencies/yaz_3.0.14/src/datetime.asn create mode 100644 dependencies/yaz_3.0.14/src/diag-entry.c create mode 100644 dependencies/yaz_3.0.14/src/diag-entry.h create mode 100644 dependencies/yaz_3.0.14/src/diagbib1.c create mode 100644 dependencies/yaz_3.0.14/src/diagsru_update.c create mode 100644 dependencies/yaz_3.0.14/src/diagsrw.c create mode 100644 dependencies/yaz_3.0.14/src/dumpber.c create mode 100644 dependencies/yaz_3.0.14/src/elementset.c create mode 100644 dependencies/yaz_3.0.14/src/esadmin.asn create mode 100644 dependencies/yaz_3.0.14/src/esupdate.asn create mode 100644 dependencies/yaz_3.0.14/src/eventl.c create mode 100644 dependencies/yaz_3.0.14/src/eventl.h create mode 100644 dependencies/yaz_3.0.14/src/grs1disp.c create mode 100644 dependencies/yaz_3.0.14/src/http.c create mode 100644 dependencies/yaz_3.0.14/src/ill-core.c create mode 100644 dependencies/yaz_3.0.14/src/ill-get.c create mode 100644 dependencies/yaz_3.0.14/src/ill.tcl create mode 100644 dependencies/yaz_3.0.14/src/ill9702.asn create mode 100644 dependencies/yaz_3.0.14/src/initopt.c create mode 100644 dependencies/yaz_3.0.14/src/item-req.asn create mode 100644 dependencies/yaz_3.0.14/src/item-req.c create mode 100644 dependencies/yaz_3.0.14/src/libxml2_error.c create mode 100644 dependencies/yaz_3.0.14/src/log.c create mode 100644 dependencies/yaz_3.0.14/src/logrpn.c create mode 100644 dependencies/yaz_3.0.14/src/marc8.c create mode 100644 dependencies/yaz_3.0.14/src/marc8r.c create mode 100644 dependencies/yaz_3.0.14/src/marc_read_iso2709.c create mode 100644 dependencies/yaz_3.0.14/src/marc_read_line.c create mode 100644 dependencies/yaz_3.0.14/src/marc_read_xml.c create mode 100644 dependencies/yaz_3.0.14/src/marcdisp.c create mode 100644 dependencies/yaz_3.0.14/src/matchstr.c create mode 100644 dependencies/yaz_3.0.14/src/mime.c create mode 100644 dependencies/yaz_3.0.14/src/mime.h create mode 100644 dependencies/yaz_3.0.14/src/mterm2.asn create mode 100644 dependencies/yaz_3.0.14/src/mutex.c create mode 100644 dependencies/yaz_3.0.14/src/nmem.c create mode 100644 dependencies/yaz_3.0.14/src/nmemsdup.c create mode 100644 dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn create mode 100644 dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c create mode 100644 dependencies/yaz_3.0.14/src/oclcui.asn create mode 100644 dependencies/yaz_3.0.14/src/odr-priv.h create mode 100644 dependencies/yaz_3.0.14/src/odr.c create mode 100644 dependencies/yaz_3.0.14/src/odr_any.c create mode 100644 dependencies/yaz_3.0.14/src/odr_bit.c create mode 100644 dependencies/yaz_3.0.14/src/odr_bool.c create mode 100644 dependencies/yaz_3.0.14/src/odr_choice.c create mode 100644 dependencies/yaz_3.0.14/src/odr_cons.c create mode 100644 dependencies/yaz_3.0.14/src/odr_enum.c create mode 100644 dependencies/yaz_3.0.14/src/odr_int.c create mode 100644 dependencies/yaz_3.0.14/src/odr_mem.c create mode 100644 dependencies/yaz_3.0.14/src/odr_null.c create mode 100644 dependencies/yaz_3.0.14/src/odr_oct.c create mode 100644 dependencies/yaz_3.0.14/src/odr_oid.c create mode 100644 dependencies/yaz_3.0.14/src/odr_seq.c create mode 100644 dependencies/yaz_3.0.14/src/odr_tag.c create mode 100644 dependencies/yaz_3.0.14/src/odr_use.c create mode 100644 dependencies/yaz_3.0.14/src/odr_util.c create mode 100644 dependencies/yaz_3.0.14/src/oid.csv create mode 100644 dependencies/yaz_3.0.14/src/oid_db.c create mode 100644 dependencies/yaz_3.0.14/src/oid_std.c create mode 100644 dependencies/yaz_3.0.14/src/oid_util.c create mode 100644 dependencies/yaz_3.0.14/src/oidtoc.tcl create mode 100644 dependencies/yaz_3.0.14/src/opacdisp.c create mode 100644 dependencies/yaz_3.0.14/src/options.c create mode 100644 dependencies/yaz_3.0.14/src/otherinfo.c create mode 100644 dependencies/yaz_3.0.14/src/pquery.c create mode 100644 dependencies/yaz_3.0.14/src/prt-ext.c create mode 100644 dependencies/yaz_3.0.14/src/query-charset.c create mode 100644 dependencies/yaz_3.0.14/src/querytowrbuf.c create mode 100644 dependencies/yaz_3.0.14/src/readconf.c create mode 100644 dependencies/yaz_3.0.14/src/record_conv.c create mode 100644 dependencies/yaz_3.0.14/src/requestq.c create mode 100644 dependencies/yaz_3.0.14/src/retrieval.c create mode 100644 dependencies/yaz_3.0.14/src/service.c create mode 100644 dependencies/yaz_3.0.14/src/service.h create mode 100644 dependencies/yaz_3.0.14/src/seshigh.c create mode 100644 dependencies/yaz_3.0.14/src/session.h create mode 100644 dependencies/yaz_3.0.14/src/siconv.c create mode 100644 dependencies/yaz_3.0.14/src/snprintf.c create mode 100644 dependencies/yaz_3.0.14/src/soap.c create mode 100644 dependencies/yaz_3.0.14/src/sortspec.c create mode 100644 dependencies/yaz_3.0.14/src/sru_update.csv create mode 100644 dependencies/yaz_3.0.14/src/srw.c create mode 100644 dependencies/yaz_3.0.14/src/srw.csv create mode 100644 dependencies/yaz_3.0.14/src/srwutil.c create mode 100644 dependencies/yaz_3.0.14/src/statserv.c create mode 100644 dependencies/yaz_3.0.14/src/tcpdchk.c create mode 100644 dependencies/yaz_3.0.14/src/tcpip.c create mode 100644 dependencies/yaz_3.0.14/src/test.c create mode 100644 dependencies/yaz_3.0.14/src/timing.c create mode 100644 dependencies/yaz_3.0.14/src/tokenizer.c create mode 100644 dependencies/yaz_3.0.14/src/tpath.c create mode 100644 dependencies/yaz_3.0.14/src/univres.asn create mode 100644 dependencies/yaz_3.0.14/src/unix.c create mode 100644 dependencies/yaz_3.0.14/src/version.c create mode 100644 dependencies/yaz_3.0.14/src/waislen.c create mode 100644 dependencies/yaz_3.0.14/src/wrbuf.c create mode 100644 dependencies/yaz_3.0.14/src/xcqlutil.c create mode 100644 dependencies/yaz_3.0.14/src/xmalloc.c create mode 100644 dependencies/yaz_3.0.14/src/xmlquery.c create mode 100644 dependencies/yaz_3.0.14/src/yaz-ccl.c create mode 100644 dependencies/yaz_3.0.14/src/z-accdes1.c create mode 100644 dependencies/yaz_3.0.14/src/z-accform1.c create mode 100644 dependencies/yaz_3.0.14/src/z-acckrb1.c create mode 100644 dependencies/yaz_3.0.14/src/z-charneg.c create mode 100644 dependencies/yaz_3.0.14/src/z-core.c create mode 100644 dependencies/yaz_3.0.14/src/z-date.c create mode 100644 dependencies/yaz_3.0.14/src/z-diag1.c create mode 100644 dependencies/yaz_3.0.14/src/z-espec1.c create mode 100644 dependencies/yaz_3.0.14/src/z-estask.c create mode 100644 dependencies/yaz_3.0.14/src/z-exp.c create mode 100644 dependencies/yaz_3.0.14/src/z-grs.c create mode 100644 dependencies/yaz_3.0.14/src/z-mterm2.c create mode 100644 dependencies/yaz_3.0.14/src/z-oclcui.c create mode 100644 dependencies/yaz_3.0.14/src/z-opac.c create mode 100644 dependencies/yaz_3.0.14/src/z-rrf1.c create mode 100644 dependencies/yaz_3.0.14/src/z-rrf2.c create mode 100644 dependencies/yaz_3.0.14/src/z-sum.c create mode 100644 dependencies/yaz_3.0.14/src/z-sutrs.c create mode 100644 dependencies/yaz_3.0.14/src/z-uifr1.c create mode 100644 dependencies/yaz_3.0.14/src/z-univ.c create mode 100644 dependencies/yaz_3.0.14/src/z.tcl create mode 100644 dependencies/yaz_3.0.14/src/z3950v3.asn create mode 100644 dependencies/yaz_3.0.14/src/zes-admin.c create mode 100644 dependencies/yaz_3.0.14/src/zes-expi.c create mode 100644 dependencies/yaz_3.0.14/src/zes-exps.c create mode 100644 dependencies/yaz_3.0.14/src/zes-order.c create mode 100644 dependencies/yaz_3.0.14/src/zes-pquery.c create mode 100644 dependencies/yaz_3.0.14/src/zes-psched.c create mode 100644 dependencies/yaz_3.0.14/src/zes-pset.c create mode 100644 dependencies/yaz_3.0.14/src/zes-update.c create mode 100644 dependencies/yaz_3.0.14/src/zes-update0.c create mode 100644 dependencies/yaz_3.0.14/src/zgdu.c create mode 100644 dependencies/yaz_3.0.14/src/zget.c create mode 100644 dependencies/yaz_3.0.14/src/zoom-c.c create mode 100644 dependencies/yaz_3.0.14/src/zoom-opt.c create mode 100644 dependencies/yaz_3.0.14/src/zoom-p.h create mode 100644 dependencies/yaz_3.0.14/src/zoom-socket.c create mode 100644 dependencies/yaz_3.0.14/test/marc1.chr create mode 100644 dependencies/yaz_3.0.14/test/marc1.marc create mode 100644 dependencies/yaz_3.0.14/test/marc1.xml create mode 100644 dependencies/yaz_3.0.14/test/marc1.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc2.chr create mode 100644 dependencies/yaz_3.0.14/test/marc2.marc create mode 100644 dependencies/yaz_3.0.14/test/marc2.xml create mode 100644 dependencies/yaz_3.0.14/test/marc2.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc3.chr create mode 100644 dependencies/yaz_3.0.14/test/marc3.marc create mode 100644 dependencies/yaz_3.0.14/test/marc3.xml create mode 100644 dependencies/yaz_3.0.14/test/marc3.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc4.chr create mode 100644 dependencies/yaz_3.0.14/test/marc4.marc create mode 100644 dependencies/yaz_3.0.14/test/marc4.xml create mode 100644 dependencies/yaz_3.0.14/test/marc4.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc5.chr create mode 100644 dependencies/yaz_3.0.14/test/marc5.marc create mode 100644 dependencies/yaz_3.0.14/test/marc5.xml create mode 100644 dependencies/yaz_3.0.14/test/marc5.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc6.chr create mode 100644 dependencies/yaz_3.0.14/test/marc6.marc create mode 100644 dependencies/yaz_3.0.14/test/marc6.xml create mode 100644 dependencies/yaz_3.0.14/test/marc6.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc7.chr create mode 100644 dependencies/yaz_3.0.14/test/marc7.marc create mode 100644 dependencies/yaz_3.0.14/test/marc7.xml create mode 100644 dependencies/yaz_3.0.14/test/marc7.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marc8.chr create mode 100644 dependencies/yaz_3.0.14/test/marc8.marc create mode 100644 dependencies/yaz_3.0.14/test/marc8.xml create mode 100644 dependencies/yaz_3.0.14/test/marc8.xml.marc create mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.1.lst create mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.2.lst create mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.marc create mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.1.lst create mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.2.lst create mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.marc create mode 100644 dependencies/yaz_3.0.14/test/tst_comstack.c create mode 100644 dependencies/yaz_3.0.14/test/tst_filepath.c create mode 100644 dependencies/yaz_3.0.14/test/tst_oid.c create mode 100644 dependencies/yaz_3.0.14/test/tst_query_charset.c create mode 100644 dependencies/yaz_3.0.14/test/tst_record_conv.c create mode 100644 dependencies/yaz_3.0.14/test/tst_retrieval.c create mode 100644 dependencies/yaz_3.0.14/test/tst_timing.c create mode 100644 dependencies/yaz_3.0.14/test/tst_tpath.c create mode 100644 dependencies/yaz_3.0.14/test/tstccl.c create mode 100644 dependencies/yaz_3.0.14/test/tstcql.sh create mode 100644 dependencies/yaz_3.0.14/test/tsticonv.c create mode 100644 dependencies/yaz_3.0.14/test/tstlog.c create mode 100644 dependencies/yaz_3.0.14/test/tstlogthread.c create mode 100644 dependencies/yaz_3.0.14/test/tstmarccol.sh create mode 100644 dependencies/yaz_3.0.14/test/tstmarciso.sh create mode 100644 dependencies/yaz_3.0.14/test/tstmarcxml.sh create mode 100644 dependencies/yaz_3.0.14/test/tstmatchstr.c create mode 100644 dependencies/yaz_3.0.14/test/tstnmem.c create mode 100644 dependencies/yaz_3.0.14/test/tstodr.asn create mode 100644 dependencies/yaz_3.0.14/test/tstodr.c create mode 100644 dependencies/yaz_3.0.14/test/tstodrcodec.c create mode 100644 dependencies/yaz_3.0.14/test/tstodrcodec.h create mode 100644 dependencies/yaz_3.0.14/test/tstodrstack.c create mode 100644 dependencies/yaz_3.0.14/test/tstpquery.c create mode 100644 dependencies/yaz_3.0.14/test/tstsoap1.c create mode 100644 dependencies/yaz_3.0.14/test/tstsoap2.c create mode 100644 dependencies/yaz_3.0.14/test/tstwrbuf.c create mode 100644 dependencies/yaz_3.0.14/test/tstxmlquery.c create mode 100644 dependencies/yaz_3.0.14/uninst.exe create mode 100644 dependencies/yaz_3.0.14/util/benchmark.c create mode 100644 dependencies/yaz_3.0.14/util/cclsh.c create mode 100644 dependencies/yaz_3.0.14/util/cql2pqf.c create mode 100644 dependencies/yaz_3.0.14/util/cql2xcql.c create mode 100644 dependencies/yaz_3.0.14/util/marcdump.c create mode 100644 dependencies/yaz_3.0.14/util/srwtst.c create mode 100644 dependencies/yaz_3.0.14/util/yaz-asncomp create mode 100644 dependencies/yaz_3.0.14/util/yaz-illclient.c create mode 100644 dependencies/yaz_3.0.14/util/yaz-xmlquery.c create mode 100644 dependencies/yaz_3.0.14/util/yaziconv.c create mode 100644 dependencies/yaz_3.0.14/win/makefile create mode 100644 dependencies/yaz_3.0.14/win/yaz.nsi create mode 100644 dependencies/yaz_3.0.14/win/yaz.rc create mode 100644 dependencies/yaz_3.0.14/ziffy/apdu.c create mode 100644 dependencies/yaz_3.0.14/ziffy/apdu.h create mode 100644 dependencies/yaz_3.0.14/ziffy/fmemdmp.c create mode 100644 dependencies/yaz_3.0.14/ziffy/hooks.c create mode 100644 dependencies/yaz_3.0.14/ziffy/yaz.c create mode 100644 dependencies/yaz_3.0.14/ziffy/ziffy.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoom-benchmark.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoom-bug-641.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoom-ka.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomsh.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst1.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst10.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst11.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst2.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst3.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst4.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst5.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst6.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst7.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst8.c create mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst9.c create mode 100644 dependencies/yaz_3.0.14/ztest/dummy-grs create mode 100644 dependencies/yaz_3.0.14/ztest/dummy-records create mode 100644 dependencies/yaz_3.0.14/ztest/dummy-words create mode 100644 dependencies/yaz_3.0.14/ztest/read-grs.c create mode 100644 dependencies/yaz_3.0.14/ztest/read-marc.c create mode 100644 dependencies/yaz_3.0.14/ztest/ztest.c create mode 100644 distributions/.DS_Store create mode 100755 libyaz4j/build-osx.sh create mode 100644 libyaz4j/build-windows.bat create mode 100644 libyaz4j/build.sh create mode 100644 libyaz4j/include/zoom-extra.h create mode 100755 libyaz4j/lib/libyaz4j.so create mode 100644 libyaz4j/libyaz4j.i create mode 100644 libyaz4j/libyaz4j.i.orig create mode 100644 libyaz4j/obj/libyaz4j.o create mode 100644 libyaz4j/obj/zoom-extra.o create mode 100644 libyaz4j/src/libyaz4j.cpp create mode 100644 libyaz4j/src/zoom-extra.cpp create mode 100644 libyaz4j/typemaps.txt create mode 100644 src/.DS_Store create mode 100644 src/org/yaz4j/Bib1Diagnostic.java create mode 100644 src/org/yaz4j/Bib1Exception.java create mode 100644 src/org/yaz4j/CQLQuery.java create mode 100644 src/org/yaz4j/Connection.java create mode 100644 src/org/yaz4j/ConnectionExtended.java create mode 100644 src/org/yaz4j/ConnectionOptionsCollection.java create mode 100644 src/org/yaz4j/ConnectionTimeoutException.java create mode 100644 src/org/yaz4j/ConnectionUnavailableException.java create mode 100644 src/org/yaz4j/InitRejectedException.java create mode 100644 src/org/yaz4j/InvalidQueryException.java create mode 100644 src/org/yaz4j/Package.java create mode 100644 src/org/yaz4j/PackageOptionsCollection.java create mode 100644 src/org/yaz4j/PrefixQuery.java create mode 100644 src/org/yaz4j/Record.java create mode 100644 src/org/yaz4j/ResultSet.java create mode 100644 src/org/yaz4j/ResultSetOptionsCollection.java create mode 100644 src/org/yaz4j/ScanSet.java create mode 100644 src/org/yaz4j/ScanTerm.java create mode 100644 src/org/yaz4j/Yaz4jMain.java create mode 100644 src/org/yaz4j/ZoomImplementationException.java create mode 100644 src/org/yaz4j/jni/CharStarByteArray.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_record_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_resultset_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_ZOOM_scanset_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_f_p_void_p_q_const__char__p_char.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_int.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_p_char.java create mode 100644 src/org/yaz4j/jni/SWIGTYPE_p_void.java create mode 100644 src/org/yaz4j/jni/yaz4jlib.java create mode 100644 src/org/yaz4j/jni/yaz4jlibConstants.java create mode 100644 src/org/yaz4j/jni/yaz4jlibJNI.java diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..dc562fba9cc8a3eec49e7734a42a643b298e55f6 GIT binary patch literal 6148 zcmeHKO-lnY5PfNvQoo=_k9!k66e}KjTuQ|s;2+R!tE|+m^aIq>{x|=UcYTwjrJLR2 zO;lze^O8wsGI_9>4FEG(je9@`K$}f4+NY`!nU_|PhPTM1kr?;0bUI5pIzF0Q*iTJ>zL8qS(L*BqlA=UC4MIrmR@ z?opTXX0dkuGy|;JBJBf*s+9p{KpEIDAooMeCYX3E9NMdc%02;zQY5XgFK-F)i9IGB z3x}Mc80SiKuEswxjB}?w_UjUlg+u2K;~yW!?`(XzHgp9@Bgxsj+6mq;9oIdqT$VOz$5wES~;B5+L-N@O+?le4y_B7FUPhcrTCc53g=?! V5EGAuLs}^MBVcJzr40Ni17E$P_&ERo literal 0 HcmV?d00001 diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..c1e85ad --- /dev/null +++ b/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..0bf3351 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + yaz4j + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/bin/.DS_Store b/bin/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9520a6f2d61375c6908ef915bfd2c57bbbff0bd1 GIT binary patch literal 6148 zcmeHKu}(uV47A%0l~_75W@V!rV^pwS!RgNJr2YEb=V{NvAp9mLGIiJd$+^OW5-`i zR^Oh_yWg69uJ3M051V~W3>lwf z6KmqwkSXT*d?)gu9)@}RC4hwqU`-qwA_MbA1vaYZpTQd)`I2=tactP==5aFi$&)?5 z93H15U!vT+Hq$Ue#Ia$}kqd4L>66~wlAT>b!e#GF?QAE#-J9;7 z%}xM0MZ9ki?+X+aMNxvFcpt3F<%D{HoroA#;tb8a%=6Sp>3)X z3Yw~X-}5`YstN?n>xl&Fq3yJvZUrNuHRPx@f~J)1nrnr1UkO^fFPWq<8oB6(s;2xk zv0T(t4t?9LtvLll$+Z>7cJ1&KLD^-?&lHs7xm#(vpt<{)d@8lk%r=@uQw6oGjTEPl zpgC=nrIi__tqGu++Z#=#cV@ZoEa_ zoTSx)4oPO}9I5-LB?BIOWk;_XN}c5)~2U_rlvQ>k%Pm2^D(ext7fNcO88brpoA zdRQ9nho37+CkQ$?W$~h$h{7Y2p(LFo=w-i!m{>+ zLQqIsssnaqUnpbUj_Oy5Mj@CKGOCig66u0lg?wqa@L$vp|0@mn@1^NUXV@7P2#7Ji*o@ONUG?F$ZMp&<0<=Yi@$I@`~04bC83tBz7 zGq1;k_xQ0f23^~MEBcn>G`bXDhH6J+!18Mft~r3XYV?Y5-oXIJkH~gN$wlND7*TsI zEhq*(US&J`?pf@e+FWLsE-x}dG`pm&f(}EMSNAI%14gVmf>gE7i^YS&xP|2*QcF5V z(D8dq4!UFTPP-C?^Np4t+U$btKxy6c1hwz28<`hZKTv$5_ELH!Hjn6~HxLC*NkfQ8 zg$foMbb4;+d(Jwn5ZOagRnW1x=#HacUB0X~R@Uj&9c(A;P{kmqt7;si;4>T}*nQYg z2;r;$r>42XNyLQSh@d4#kJq8#*ikt0aId4d3aM>^7EI1o2ur?Qv)v?`NOA-n(dQM0 zf{;U0x#5P^gbE5ZANPO2gJTVh*oa6xtRxqKbyHpWje*9PYWDRpK{I+SXBeKSs*#K& zADK`4?4XMTtq&6!XReOdsSF`$oEIAhe61K5ACfeIaF}$*2Zn1Ebowf`<1X~3Mk|B} zqeJyj@nR)ih&Y?-g)18YNv{%gXsVO#1^1{c?7vy?5;%XlMIUrWT}L{qyDIQG<(R|r~^l0YF*uW%ib61lQ@kd0nozi5!FaK}=EB$=yuqSrNV+>8&~NqPf( zC^Z10T9gr8IJgm%^d>=zQ&OfU6$B-{rFpen{8Y6O*`Si%hGREAG8x<@y#uO6+?<-_ zq)l(;k#scz1unbg2OJJK-bLwm(Cy>@I-Js?xg@;{H#8Z`_y~tyN$*B_+vs}}_NW~; z;^|An>_N?*{9cH?cmPhVO^TA<-@IMZua8>N2VX)0F*juENcym#lZ;||6`SpFgfE`4 zK+4jlP0~l3&!r3L&2lSj9y6+>>*3oazp4<9);U&FPHPtYIDCQg@K)t}Xs4TkdEF6BmN*Bul&_e~a^lD;qK$bE~(n~oP%^5arO(hpItW0+Co6dOm> zJ)tW2g!9}u+e!M7priNIpI#vRk*`v+d`b5p-Tq%XD7#Toz?vaSWJy0pCEe#mUZ68s zQRh*edE@*k>8EfkzAlr|4j}1g{5=CZ?VUb<0S{+SN?f$);DfQ2HCGswQ|$ zdpSZ9pQrO%E^dEZXxLrxLUNEINamOG$qev?_f=d##BCIY#2l%E&_DrOtLgyi3Fr0hnkqFM|4MX?hFr>L%S`Qn+_E$JWlbeWWnv;2ffB;#D_ zG%NfInQ2nNNCqk_@Y+!^n>KtkaOg_wywTU)?7n>|TfNPHLEB3wW|BM_#)Qr92W$^E21c{18M-2y4Tu7-adK2!C5a8Iov~GzG2LE0H`o zlA@L^w^Q4e-8AE7n*BMNox7Fh&RK8^9kdycXIPv-3&YX`S{V*aKr$Sjz^q8_2u+dT za!rxs3Qbd3?TkhooQ5)!{liiW!j<1 zWePNTOm$6TOglC0U}|XcnJ&;2FkPf6WV%>Wo#|3d<4l)p+R5~4O%qJ7(bQmit)^W} zuh(<|(;GEi$n<7S7csq6)2o=?uIXZ?cP2EOE@8aJ;H8Y$8oZ40Jq9mle4oK97(Za} zPR0)z+{5@0gWqGk&fpIiKW6ZUj5ip(i}8~Nf5dpB!MhnhWAGlv&l#Z{DZ-#7#}tGG~?q2pJ9B`;IoWR8~h{Vvj(4Ie9qvX82@bW&y0UH z_!q{%8~iKdKN&w8rJa8x6YU`%|8GU=nTB5`+UPKvPOE4JokBBd1AgDwLbItxbEr;p z>2mz8@m88gAE5bkBcyMq1L#g#K=;vs^e`Pn&(T7GVpq(>PZNu1u~>nh7fz(5Vm*FL z7^Fi*1-~Bbpu@$*_-WvcbcA>hEfY7;a&Y=v6)SDT;_Z_J~K+M$Xq}tWL`@rX0D-=GS|_X%+0hm^EEm-a~GYG zxt~tWJWi)&{!WE#D|KY&QD^p0>dLO7?(C_wF564%vuD%k*=b#Gie}qFb(F8qBC=AX>)D^ot4{4TXHsS%}vnR zx!2G+xvS~i+;wzb?(=kh?i=*V+&yIF9;Bh%GgQgFK-K&VQu#$RoL@<`{2Cg`pFwth z3vJ7f(DwXJa`IQwX#Sn#=08ea{$?7>f1P&Z?aK6U}8gbhhZUVqG?=+c0b^x4k@kak5S*s6^RQUz=ty4 z7NSw(By;cFnQzXyGw&a-ZvY19=*SRSe&Co-;`wlH9;@l#^l>KdBjtNKG(u-C9)#%% z&oQrJFH#Hnbxx>;GEl;`We_rdbACdg3qon^dtoHJ$QEuab8M9iBIJ*hr=k%d+wIu| zZS3Dl16h=dFi;>=Eal0|crlg1wV1k+P_z6Q8wj@HdcCPdcPb>bt$!LH5*l6WyYWdB zD9;)8?8K{)c-0B|LWZGmQjb3?b&O!OuvZg${DabJn@aV1p-L zM}cFJcMdoc=Ujh@(o2d|I2w!ro6vYwgAV zlUk)sV0QM+n>TNFzrH^{0i5E{f<|bhSsW~*r?XkmABMw)$d(oiLVXrJM!`Hv;$SeD ziD^!#+^Z_LgnzYBp2;LWCzuy9k$I1>-`OsA#{{FF-Uu5yb{$x72zsYGu7cn?sK6w6 zp-jZp;%*|c>u53;YEU|j=Hn=nYQF-F{8l~?TH&^Fw&BJiFAh-}V_v7b?T2{}8$5fI zF0!e(lxlG8_bN`*NpZw3b-pu#rmS+Nb8caWW0iLU#x-6&{~fkZZ>agl99|gG;Bjog z;K=vN?N$C=*r+qoF59rj4E1@1Jh5yOt(ADdD{-yjzoPccNhxU-pj*f|C1EAQPq22@ cW43Z;ZWyu)w8`UI|BRSxBj(yjyO?v6#niC6iOY48*^;V&7lIDFqY{HWWf+j7CYv`MnZflSg-`zrL>FqtCT%# z(YW~Rk20RyROrK$KJ?ym@Ag%B^$KJ4^FhB*H4Q`S*t%(? zPaVw~pN%gx5dnt9zIv$^2CC63)C_0H5U!poZVJPu@_&L7L-d`cb@fjkAX=-RAE%qI zmGfGIVe9>Te7M{h=!R||G6M1=V6p^PvhM5XA4R(FPN%{o)t1C1e}m>qS{R4tvy?x6$$F_K_^ z)JIhHQXM!NZMHMnxlSZ(;)#eYhPY4Rcw}os8QVxRL{!UC#~t%x%#ic@IBEB(Go>S+ zwZBK?jX`vEoOBru{4mdccHSFvQyCdgk!5)4C#Vk8(WvCBI%S+W;3Gj@mKvsGb+k7+ zf4JCemhwE4tTptWq1ui`xBEUqjxNvBcS!v55lyG%3erX*_86A#nmnpB9p1_wbyuKa z7b>f~^8l^XbReGMEvK6RtrDV?CsS0Xn1A{2V6DVG;TnrqNVvgLzzvpzKj=!BAkk)t-W^cnTefK$A8=7L#s1ZztV^I$Z1jcXGx9bfNJ=)u_ zwr48`1Pc0M30_KDouQ7T8IJZY;#fRpa!j-ccw%v>B_S}UHJAFe)^JlS60z)Y`qIZG@YYiK7)Nm6C#{fj*C3rrr);PQcRBxIOg%o3<- z){}a~ztS{gW~0AZ4@ZoUKN<5&5dMgT!av7{8K~4yCGm|}tQ?e%%+XMd8WP&C$8E%I zdcPqsI~VGc9g%8lHPoS=YV~;Bh?2tk)0%7hu*i!BE`kC$U&Gm0z%@w5tVm(RRoCRQ zdM?iMV4=VS#Y{G58r~(n^u#5Nk*E)iSnL5;-4a$Y+SzBucIZ73L&Fl32#iz09Z5ZS zS*NK7Nx-<)aMWlU=C}OW+wh3A;%fU!X%|;*c zu~IHdNf88AX()nE-nD2bh9>VW(r^aG%DXih##wi3H56iue78=62VM_47zL-5IzFt& z$|C-3)UXK`GgM_F*%>BKGfEcOnaULMp&OTaa0y*=49mn*DMC&(ya(^)=XGnnLt=_)h|BQztgz~z7o?}kG3O7)1|lJUG?w)D82)}eWXQ@= zm1wLA`H;kR4+aEEoa)pPO&Yz1sbL3pQtNg-GGMHgKGQW<8rx!wqTSfz!R6VdRP_iA z@5dFaDO+M@zs^o^evS;f#HG?|I*Z&^>}KP^RRYyclsevRh_YveBQl#;?hG2L&-id9 zD!uri!2HfW!@q67Fn9S)gI5;#kUyMIWYDp2$R9J+Lt-EU4kZOE=k6R`o)FY9yKss|q#rZt>gZwtG$UN5zNOrSPPYckxg zR3`m>dNjnw)~oc}4ta2sK&1oNp{A4bVgpH+{u@y#bL&>VXn z&h`3aRypftg=*=KM~r?Wn$+c1A%n_`+eys@{w=Blsv!5rg24gPluH%$cj>zu{jx>v zlP&5_foa)sXhn$Ai0)!9_SbX9ZIa9blwTh1nV&J&Xf;{COeFsjzZds18~xQjd{#{U3+#n89z4LNpRFu|!iW1& z$>i!c5(&MR8SSIvYZATEA`_;=(9K|cJ5rbB0~hGz`klJhsR>WuPGlkr~7FQ z_eqZRVJ*QWZ?*34X?Pwla5-Hg!EF(N#csb(rNvcx?bwxFt{Xql@I$HDjWMpG&x4l) zmL>+G4SbYa`G#I2YM9|*BK;z~-LT4dqMf3OSSii?M8nH?B}W-b*x`TG zXpRIkJ(b&;)1+=RicOVH2_tFmkbbJ+XLyZqmSZClRNc7Y9l^9H{<(%<;FoFN9h)Jx zC^N>e&Px4Ui|EXWFRIz-!JFJ0JHeAF3O>AnU(4<3Zv?tW1M1c}3Y}Th%Uy6cey8F0 z_yaS@6_6Q!0;AcsQbGE{y^ea2HHQhu-Kfgk>~G6ll%!Qqf#nH{qTJ8tpoQf@qv8xr ztQIb@T*}?taD&$o)T2a{qoBD1OiEdmxf^e5_!s`ovN1f65=vEgG=j1i&yl*L;FngM zsQ#~p|FKKiVA5lm)v6l}OnQcjJ(0&+;gH;6Iqefd6fp8cp}_Lf*XMG>E}YygsHpI9 z!ED{5f95y<*=FT~iiHU-?Y1gLf{zW+`F_eO!VZL!k1*KT#2K0xt2W=ZAoD-CCdc?Tcaog!lg#@<^|8V4cIsTg z{a}xtFyx21S5z@yL#{WJp>DSfHzu65Az_$NHG|L!2KdDHluW<3q}ugFVh6qP3LbfQ z(-oA<<8^N7go^?xOgf0!t%p%@ z3^Te)XAa>kzMDOWKOk~S32-i_EmS5oic!cmnJ142 zEXKrJd|LpBs)~Imc(|fu&iDhEQ@XA2apZU9lZCd9E=fjv3W<&scC9&vE4%83@PXqL zoq7OerB~-u)Ec=)j(kXtOp;2jJB5<#rRWV(bg~rv=qW^Rl%h9F(USeB=cRN%X7e&( zKW6YUaX+T;Qnnu@yiC~-A1~zxP$!o#gNY55|c>DQDYIl$Qk*ZeF!oIWdbkb zvkVt4z{EU!7(+vN{7}ZzF_Z!$Fr9*wOC#akllU^nrM9o+()QG0d@YBz*ofMmp_V-P z8D?n{jbvDsq&QnfwXe;*|w{Hp#5lb<1 zRc5QT`WrEc_eo;gPINmsdO4Zgg9;uc&0;~U#Z_2Qhfn|UI33lhBF!TVjfRk5;~c}{;b9Pc5=)*9@=9~moow3x)7@Mo@CF}C3^_$zTN zq0P7OH^yQ!5y<$EbN-HhSUlox$`n%XJjtV^gXH~ljm^u_>36_Wm%@Jn(1$iGCxRW_>7c1U=TD*s~?p}re9Lr7y|2!N288}Of5&XX$ z&a6-f^EoG9ctsI)3gHvQHr57SRkbiSNMTK8e1vLz;1ZH%T` zhnsqo&OF8*^f)`k6YN1xx|}MvO$jlX@n~iHxwe5~YHpq&rVNUy!#RH1rJ^{aVmdpt zrD8>WvlO%V>}6B`4;`|QmjD0& literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ConnectionExtended.class b/bin/org/yaz4j/ConnectionExtended.class new file mode 100644 index 0000000000000000000000000000000000000000..a7a989ef9406d5e5410d3c182b5b9aa382c07600 GIT binary patch literal 1245 zcmb7EU2oD*7=8|P)YZDVjg2vJAE+B&Tm9flj5iA!64;ioU}j86DGe*Ko~9JzcIBl% zM-$@~P5c4=DC65wXbmL9o0FdNzVGuq?^l2S`SA67*gEsD3|J0v8x<%)6_M` z;AZ)wqnmBLEka<3PxD}iy)aC}dC9Prsdm*5s?t-;sWq z(->B=XS8IbaGzo2?eTG~$t}02{ibH?szW;RnJ}vxR)14@eR_6MZd%QMBCOIpY1xvo zjU9%CE6y*1E-@5B;-|rA$tB3OAmi$;t8N*15E(OM;6+Eet{UT4?q}KQ)F~ znFTdqkZ93-jM;%f5)@eH16$Ky8Sc^~CNnv3R{%RSD^c2QAVOcXa&(GxtI(_aF6Q#7 zYux(kIY@L$o|ZyO5>#NG5yE{((}|~c=i{0CP4B4 literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ConnectionOptionsCollection.class b/bin/org/yaz4j/ConnectionOptionsCollection.class new file mode 100644 index 0000000000000000000000000000000000000000..770895176a2937fa04438b900d0d050aae1715df GIT binary patch literal 1560 zcmbu9Yi|-k6o%g^w7_<0DXp|st5|Kh6v1B95B2f^Yh!}agoZ}HkcF-|xZNcSG--d8 zCSHgi`~m(b%P`7-Lwm>}KIaJKbs(ik4~W zjV`y$a$Ag@qGcFPAcP=8tfd`m1w%8Ng>t<`6AY85mUZN=X2_I0v6jgTm4jEi`)~Jl zYVF#)a`|=5a%5}mZH9>_+~nP741si}$`CAChq{6QCRKzGj({PmVjL3+rZE#jj3F^B zE}0EpR}sf7!|c!w4O`c`I>TD}DooQQZt8D(M|Iua*Xjo4$4gd2Gpd@+#k(5}c0ceA zL(1p&g3^)K@Oy4*20tZ(4A)iMK$s!)f_K_hhho!MQgI8n8Rmve9O|8}ZJjXW(!Q-O zF080!tSH@kObq!;>(Ce+J{^x>x~t+IR;cWf$v6GCwg*?Bx`f}SE_x%-)Ty^t(j2~-8kJ?(PSUtO;zvQCFlU}2Y-21#Z0o1ij1L6pZc&<`dhSw1vtOY0aZ`eMLQ~SxJlR+vibbDT)D;7g z(z+1aaB0Gh*zzZeInE{|<&rNyJb+n6%7uAKs|9#OZHhjTIwa8l>AY~(sO?nhMrs+G{9AJC7A z&Zra=K?8HnoSA3dch04F?I-bkJZblQt)&|&Uk}t&`f+sj=*oLj zXJ8TP6Y(J0p3vj=b*v*szRn4yPzFkPLm7n3-&~v$=#r3U%`g%=8VWC#DfTsk2iM_QMiPY_Y-9;VM`?K#Pe(Esh><4=Wyg2fK(Gzh%S|h~Qz2o``A-)e zLbc(1chQdmrN^D-&=^;ZafOhX$}kk;x#2IAVE6qvaOJr&Pul+b#}3S0?0_3I4Wo_} z(ws9~C9uMiwUFhQC literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ConnectionUnavailableException.class b/bin/org/yaz4j/ConnectionUnavailableException.class new file mode 100644 index 0000000000000000000000000000000000000000..cb389ae6ec346ef8d01fd43ab6997ae43bde67b6 GIT binary patch literal 554 zcma)&&q~8U5XQf0(?-+3wzg_-;-#%%5WQ7;sR~N)V72#cT;i5=BS|XiTX`yY@Bw@% zakdo-3SwYqc4oi*eLMO1e0v9Qh?b2Ep&iA6`z&6LC+;B9TKcJq^sN?;LWN=+%Cje5 zKA4^ji_n_zfg1`PxYskCs_E*SP)%g4L^zUhVi*^v1iB=Yn46?Rry~*0WRAVfM}+)| z(kkr}vhB`@U=5->=^%@85e^E3il?-^noY+tzA;ZB)V#=N1Hm?2e>bi4UL}OC_uol+ zghtz2O)^YlrGs8)WXv1JyiTyEGD$?RF#RPZIKyZb`|@0wXYKv{=MKz$?1Be1gQJBU z@|8lPu+6tK*!cpg40iee literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/InitRejectedException.class b/bin/org/yaz4j/InitRejectedException.class new file mode 100644 index 0000000000000000000000000000000000000000..df7a326f8d0b36c96ec8697d4e14520380bd6567 GIT binary patch literal 527 zcmaiw%}xR_6ot>_ZE+D918V!gpm9Gk@DZC(sq4&|uJXr=gj(OfW;Y^&%C8`7p~96BsB$y{T_z2iX&)}I c{ZpaH=B1@VZAGmWm`4q}tU=i0+X?J{0)>KWu>b%7 literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/InvalidQueryException.class b/bin/org/yaz4j/InvalidQueryException.class new file mode 100644 index 0000000000000000000000000000000000000000..506def9fdbe4196642332e9c972cfe9e9384b614 GIT binary patch literal 527 zcmaiwO-n*S6o%j9XI($jv~m;f)Sye$&TwM|#w94r{iuVDT<6C9km_Hx5?b^F`ccst zm4XTym~-aLJoCPD=KbUK4ZsmE+C9hd zA;cTa0U^=##?nF@`7A7C2n9!Jc@@ou(!Ui$R}xB&H(~?9He9ba6XCrI2zBS52HJ#5 z!})HYANop9+RcIStQgNSAw82pASO$%Uns%qdyzkq7s|Y*_UAtxnro;h5!}W6s1m*;*j?vP23TEyjRNBzRTiRdxko3ni|MK$)Wv=rC#6RO?`Y c?Vk#HHZLp{sw--(z&xthVGY7A-;QDL6AadD8UO$Q literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/Package.class b/bin/org/yaz4j/Package.class new file mode 100644 index 0000000000000000000000000000000000000000..df08efa7cef88cf0bd9677472ac94c7fe3acfc88 GIT binary patch literal 1273 zcma)5T~8BH5Iwgo6v_(J0t!m`5TRW@Dr$TX!waG@K}%AC!I(7LcCELryG^?o;lbae zi3FmFk3RULjAynhT@(%3Y-je~nKNh3On?0R@(sW$ZYL2_NPDe%;lMh)+bC>X)i+k% zP9mW&+_2tR1;=vhg<_>)SAB&8(p(608^6<+2dF#oR~ z2|TCX-&OLv=fb{GBAK)g?KK%+Yhob(1Tv_Mhqm;C*GKWexwwJwzO+M+kacJ zTRT?833~9Vma}WMw0wt$3IDZjD`XH4O^(#2H{R4Z|YDdb=#k*6-* zVlts%yBu9Hu!tqLa%N51%v4yvc)j!HCZ$&l6omT78Tgvr_FLWoSFz;nx2pCdE#oml z4OV2+*fz(^zeF4{nK8YXOgONdFKrLs0T_(CMDGLd6SP_L7=xxdLRx+@=JF9n%_Z>` zdG?7BF*k+B`>9SRc>4C54I z{*=UhMhm_n`FuxDu<$3BDGE4!4o*xqJ>*gfamEGbJ4VEuV7a5N=-dSz3uZD$W#_5p U0`<%h+>8_$4~Z(=3ffuy1)zKeG5`Po literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/PackageOptionsCollection.class b/bin/org/yaz4j/PackageOptionsCollection.class new file mode 100644 index 0000000000000000000000000000000000000000..e77e4a5c96f01dabd0b4511de98695394abd5f14 GIT binary patch literal 1101 zcmbtS?@!ZE6g_VnE3F-asY3-65Mdp}#)NOEU+_mvs$DWNqhFf0+0-{`+q4@A{#BZ2 zB!2J@@Q*Uy_tr3QTS8)!zP{dj&$;K^_kRER`3t}!>}V)3Y{qF|pYqT9eY?eb$2{=e zWFX=wJB-87@5!x(62oGjpKv?mQDD2>J|!4R2>}=^XH3zLgx!Ao>gCb9)^jiM-n;H= zPgW7FmmDyZAB#u~o-*t;u8gue)ao$);2S97nh6aiL$P6XbTBNKm_wPN>WIjHGyK%` z(<9yueTJG7_juUhsgVD9ur&B6GKQ@S&1bnLwc0b0C2>Y%#lR=S+YM(th4vs7QE*^Q zh72s@wuV~_^~;k{V-7{v#2u_KEMFQ=tj6xCM()+8GueKMA~JC7pURm`=%-XBz3oi# zHd$?Tq`3_fo47y2fMRR?kAZ1z8RkxSIHaR6+VL>$`7eY#pTHWETDo#iq}UlEK!Ag zs*0Ww?RBaek?&Itqg+`Lk2wv6T_QwHamjkB%DEVB;AYP7ges*xz4;B5-80m`(9cL% zS%K;o#OUW@bgW{H@(g!zFQ;;74ssHPqS`yd`oDr!$l$8tTOU=P^BFlGp|M5G($)i| GWcx2jRQO>4 literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/PrefixQuery.class b/bin/org/yaz4j/PrefixQuery.class new file mode 100644 index 0000000000000000000000000000000000000000..58d47c25fe5b2139984748149423a0dd592e22cb GIT binary patch literal 575 zcmZvZ!A`MK3?Dx;-7l0$|SCKA_8 z*XrzkJWEF6T&mucm4O_p`(mG2bsio;Q^4%$>|5AkTjX7j;~KB7_W|3Zca*#XHm@Ag z;Igg4V9V3x<3;|*IIk+J^lIX`wsxqxEFv=ptojMGEHrNuA14@OEtS3 zfWp(N_EyW7npMec6svm45$LwvYk_30T~f7-O#b=fM_VtRJS@};I~yBog;rjno)rk$ zdSlOY@;dALJIXfy95W|aHX8L>LoW-69n#!4EW>#quy|&k6M<9P0?Kl&tcT%8R7C{6 z0{&!bI|PBaiY|1^=)8&mf-)LV5kgoXnlmhYeeX?Cx3{#SsWUrQD{1DoW*hR|J5-!q zqv75i@lUq&+ORa!*eAEZh>C>d4y?5L6bM&zXSrrMx`uruiYjg)Ni#d0CS0M|bacvjb#~L*6V5xfVO6pnHXa$PVL4ffd{{ZFQH$H0P^B3{Eyk&eu$n8h4NbEInl^Z)gGT$VtD z%2zZ;D{2irhP6wEqD8>2Vp2@$3^bd>E8@L<6Ewh!G-64^jFM!w}*a zVKl_sD=kD^z(u~v8mUCMk<{X2d}Q0U03=GhTBA8rh$|SAtk63%p?y~;4*1i zEj%NgY#|yS&55=2XT-+Fzv0?P9EjT4yk zD0J2;#EZo<9Td~+6K#^Xn~-7R6hWqG(Tq!!ZWSI9^&AqZ9#NEJQzZA3?Dh$icTT6A zXW;@V?~*e650vvBCI2wIE}yzx({y^+{{ivVCb&DHa2?vS86X|7$W>UPamyV43I?#+ OF{i=9IW4$jxceJG{w(eQ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ResultSet.class b/bin/org/yaz4j/ResultSet.class new file mode 100644 index 0000000000000000000000000000000000000000..6887b4c2019482ce85d799bc079f0254f3094ee8 GIT binary patch literal 1914 zcmb7ETTc^f6kT6isI8+YSVSw{4q!VV^@4b5y>ReyiYUes4ER7wJK~T!)3n8?&zkt| zlfL=niw~MuH5z^NB>oTohUcvP&Da(s64IpK{$}=N?X}mQ?>|3%1#lFTVFVPq+{$9= zVgAv`QtGBvT`tvfRxON>!nURS{d}sFcNSAq3rkj^rVy$8@=zF@Yz8hlb}Dx(du4j| z#-;i4{M^*kwRz9AYSre;X@zLPbsXlfT}NSPozSMQjty1qN0x$`PzYD7f?Fw83Hx?S zlAHP|%WNvz)v{Z)igce-XwTS=T|1{RmuT@`5A8axE6^op6hh-}(TXC7E(0Cdp%6?Y zXChGOHV{EntR4fKVTiTcz!q#3Ymb38w2QUZKp2~%*pGu@9AMl^X7zAN_JV=G(8tbK z(d)4@ypax*6JZQ+!p%A!g9;s!wqspizPDgirt=FW(%w1g7V@Q;e8rZ#|1ea$YjX&( z7OEQJkult{oqUN?i?X}J28M-|@I`Mn>|oKVHQcAlA_^u;B$8{T^WTrVrIM$gbQs4J z`dYF3vi;39N|leuP);apj3ACRqEU+6*k~fV5}Z6v%fwC_I0LpETQwC=s0uS1naf0L zk+o$ig}D_`^y92_MsZ(Qzl0yP7QbncaGUKEtp{A1ELYWoK5gAAb0{q#e+0z&lCPZJ zRO&w~01pd6R}B0k{CBS+sAyGd755=)+N_y#mn#M9vMq|++R(&>6!8+pRP#wLd z`3~`q*e9=P#-4sbKfT^EFn~k+AK)^BNkc3ZktOD@3!UiUe=l|*ffz>6%@b@}7eo>! zZ!E2WD{Tq%0HF;s#sheqr@U)3-(#p*FiJOIHw(sfQp0my0)1pbxUI!T(<|n2N$7kv$|b{3Ej-q{{g35sAT{E literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ResultSetOptionsCollection.class b/bin/org/yaz4j/ResultSetOptionsCollection.class new file mode 100644 index 0000000000000000000000000000000000000000..b7d98f80a4759352b7c50fc8158705d343ba92d2 GIT binary patch literal 1125 zcmbtTU2hUW6g?LxuA zKaznz*bh8UbksJ36k(y~9=UbT^}BVu-Qxp-5&mr<)EZ-^o-gao*Uz3FzIplB={s+2 z`?(WC2O@I%dxZ1@>C5O5VW)hFzDkRb+7I3d6G>dLkby-=mMbj-gn0{dNE7l6>5CV` zPi+w%x@}Jo3XP!SdM!7U>UmU5MIYpVP&#-0>;PDC_Pz97Po6MevMbnpsoWSR(u_js zclRojB@;KWl)+6x@!x=S=$>p_xP@iH(uI@)Jp@Nz_3APqO-h)eicNeJ$10i$4}8Q^ zB5Y6bH;Jyal)-fi8`zv_Lh~K`pNVN#6XuRwZ^$Dto53*bh$m9bdv*38ca&YM^Xro2 zKLH`3-WlGd_?tnND+cdut|$06U;PfVO5c#H)_D2Cr3CW47IcHjYnB@<%p->dt{3Ar zEHXlU@|vEQ_9~-d@?FLdpQSbNnA6m~i`-GrTnf*q5f|Yau8$ZVGE&Jis$Y?-ouc@e zA7Wu?-Bdg$#yAsWU;fjV)$Y Jw(e>rr9X_-1m*w$ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ScanSet.class b/bin/org/yaz4j/ScanSet.class new file mode 100644 index 0000000000000000000000000000000000000000..9aafe504cbe1c1d2cc6872e579c762cf1c92729d GIT binary patch literal 1729 zcmb7E>rN9v6#k|c3S|`#L91B6Yr6u~;uRDXyiu!|lwdR_&C-r_vFkCO&`bI$oL=gfZl{`o6_leis2NMOLNS28cHjZZ8RbWGU z#oDYuyyQ9#^KI7=7!D*ZwB9qSyKFaVZbOy@!~=n@3$|l>a{}|JKt^Y%KwzMBdPN|z z;Fe_^Ve}d3MZZ8em0szAz%Bz(bg9*D13ieV)v$pWx&`|3wj=MXKV6meWoxx68J%}a zR&~Xy+v1-SaaX5xUq_o{_-K?s;YTyWt62y_ui?-v{1jbUqO262}5M486APtj^-_|ORkOCY3 zZg(!A_zy^(chmXycon?5?Nl_i2?LXu;>;*H#b;J^owkp6;G{IA7nM^d3{G@bptmfm z(vwX?{+hcI!zp&QZSYU~6S_Y$cLh7{X zC(j?BQC__;7`KC~C)`)@3G)+nnqm_JW_S~W=ENq3%;Ws~o|_@;;eDSjw*wI#4C{Uod??5gqD!^$Dln zG0T^f)D`v-Z9gTA5c2@*~v$^QT~dv!$s literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/ScanTerm.class b/bin/org/yaz4j/ScanTerm.class new file mode 100644 index 0000000000000000000000000000000000000000..75a19376791ee6d919cbbd0540c48e16c00d2cbf GIT binary patch literal 594 zcmZutOG^S#7(G|V*El{?dqeHipdn~ivjVQCO*1eA%46rwu_sR8*}c(N zy0L%}v&f0=PpKbAe&C%5n4#;=A{n^yRzP$F(x-ml$7ceK=4yYZH6+}5cr8sNQLvCh zQ6SlD4Rav1g%r}tt6In)D^TkCfxMheM=}~Xqlr`^Lf4rLoyb@5GHJv&KIv=S)tx9Y z5%fl8>O!H58wMrcnFB}lN2 xjU|mut7@tC3rbIP7T{@}ENeh((Xa#**u)kyN~5j87Q>atKg0EZhqrat&KK(OWBmXC literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/Yaz4jMain.class b/bin/org/yaz4j/Yaz4jMain.class new file mode 100644 index 0000000000000000000000000000000000000000..31fb34e3e46a3671a554403b7a5e1d78317b7a5a GIT binary patch literal 1777 zcmZ`(T~`}b6x|mRCWL8ALqkhjTEJG5Mu=2EZCb2+wW;Bwq@WbPhU5|klbLkprhKUN z#XsVc&-yT|C2RQueDp{7Gt_+(N>ad;l{<6ioU`vaXYYId{O9*S0F2_5fi{62*DIy> zto^a=^qOAhE!!~=66oHxURvq0<&@Hk8{4v=1Ul~9j;$sI+7roDfzY&Dlu@*!(?l2@ z0vB?&BNu9w4e33zHp)^UmU9bMdDZf4y+8UGQd_n!5YL@)bcV1MrXbLpSkE<6$Scow zN*R4@bauBOtIBpA-#|>@R^7{X(<_c&t5#i4$>OY2aElB$b~SK`wZ8VuF18qY1uiu+ znRXqA#S%S&D-2Oq+4eUqUyjt@Mhb2via4(7lCSA3PbZm8u13%=5UDwYsoWja0XIzy zV30lXrJAvnr6Cur3VRek141Lb#a3*3vZ$kPn|NDCcQJa!m!8AO2oeHet6D9SggEY) zNWFGhvV4EX^@dD;POdvP1WpjQF;+PVJUNN%_$B<@dy)onK!Y3MSf?yrBf8Rp2#Lo zF@J=RiQp;OAMj*>9QZmuuj8Ky44=jI|KjM#RTH1#bHXXNaR;c@#Ob5i#OL_JzMoQW-SMwYd;^PGU}Kl-nQAGrs-_qkp9x)nG{CC6PufguqQomn3|<^1 z9riqwNUl%mbZisb_?8;o@oYun!in{%K-NpkeSFlKDO>iV>WEU(0w&~wI}r?J3G z$-CB)TJxH6VuW94y^_)vhgR9~Ag`{r6I16{W5nn>@@QyGWCesxz8f6Y2iftQJZcNe z&bu|QAm?m7>dqgJ&k?OG41yx$pat6a#`(zA;4aOl;4^&Z0Fhto<|tQf)@v76v*Ez! zIqo`f9v2AGUAMR4B6>8C=trmy_~RksYq850@z(+Ra;ez$05?*xp#Zm1v3CL_Q?Yjg zj2vQgE%yEa#^+Pqey}hcATtsA4WAt1(ON8ffKTJ00J+#wfaL%y0oK|l!oQ$zI35o0 z)x8dS_H_i<2(a~2Sj5Be(9i$=oeEHHmN3aQb@J!<>tWJ;+}~u{w-IC2Js2nR8T3-m zS18A;khq2_-}ljvSGZ9x{c)otxU_&c9$xS-7{3G`iftIj6V&jMz0F_-JJ@9#o^!VD U@hwcuF5-PxZ|CPLzSs38uJojiM5KIu_BfOi zQ&>n4YGd&rY**-!eKpmQ^5oY!p%}_Q3AZnUkolYLDS<8sxsI>HNa(09+^I~mvH6IQ zI#F6hZ9=@>=o1nh|4yb6M?Q-*GK7Mow7i^p0~uV4fh!3m#~-qRU>ok2n~CUNg@irl zUt_cgmAdmiMlTAK9<>^M<6JS$WrF3&FchP?<1dtu?)lSTD9@F7)Ak?#?7&>c4tPW} zGHOU7#o6L6h812ch789n?;LR^&dKHsxtBRo;Fx9%SVe-XB3Ic3gf*17GXiCfMxf24 hVN=ch8P52z)x7_#1EV=^io7+|?^UQSwL{8w8*L`Zf zUfQ-9SrurTv24qo6=>CRtEm-%aHhI$MiD}X3I&}4AuY9{fa)qDXqTr@LdE1rzFIUYD~4mqeh>`18`h>kGJi}C(=;!7sL>)3tIm!`87Y~rpTQ;V zScw#q3{?wdX8y{ujf(Y_xd;rZNXT5;*3F9PGL*!{2!;jDA7%0?T(Jtd#jJ`;7!f$< zuUKoSIAOJ%ELddIbRQb7A<(Pk|L(xD>sWSaI<+FrQYv&@5$J1>SzG7QHA)CfX}M$b zYi7W`dt+3#yz)2rlaKZD`FgZe<9dlVuHptJ{*6Zkfyoo#HPIJPm|fnqOYVlOS=O(} zl#1K9BhcSik%~9hugT~MOsUAToTU*t{}}PqW@T!#D(>UK|9rgUMo!@43(l*^;2}5L zHn*Fd3L59+kz0`0Cn^wKu5LL+bHS4LBi@khnA|aP^4RjaxA5WBVk;~!8@~!$)ZzFk z_FiySnBSPb4^?Khzp)@82z;LStt0FBCYyY4E!aG zQUvr0(@m230<8gAQr^=*;3elsfnn*cyxT>bjo2=84#~tBtYJu3j^rO_`G5gtKS;#{ zaguz74>=77P6DI295~I>Nm50nsD7met)6#;)g1Ly;{MEoN=9)N*Qg^fhIF7e!Foz^ z#nY?d`X_b{*DiGkNI3wyiCcldQJ@PoOx6QkBhc7Cf$maAU>Y-lUOmvg4|PD}O@a9T d4+N%yy-@TT=ED1URL^sZhiI~?$Yamy$#1pDO?ChP literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_connection_p.class new file mode 100644 index 0000000000000000000000000000000000000000..26ec1372a61814dc4e86a5809d1d5d6e52f0b464 GIT binary patch literal 643 zcmb7=OH0F05QWb)ZPV2BVXg0lx@(IV1i^*krl=^@7FsKIQ_>jg4K*ogs^}kbq+OnJ;JN*W zHVM(PcWx)4U_yrqouCwoO$~&!ju_&EOhvf%@$jl+`wg?xvkAG1XPLdG>5DKPi_zdx z3<#^0zgynozgyCob}<|{6C&Z*{8A9*g(O(fII77QNS0psTY5(7k<|z?e5Yk+n(H%Mo8<#6OD%~> zPRO~|tz~vBuWgoX*J*`>WbaP2_bXvQpc6u3S9l`aBa9VJ8pS#x zzVBZ-8WfD{P@xl)Lb09#A){jq2|~6cJm;)`V>?03vO5kTU-Da4r)~uz(nB*IUW*=K zy);tV9sY4khSKcAe%KG3^B$9_K~URHILK=hMuZi4FvYiBf>!nWLCZN5QO>1*R<#jr z39CG#!fPhPqCxqjAkHgDvXf#}ks8p9H-492k$z@3hAe+GvNOZ=S+33T1FT3-!vylI zxDS&|C3%{{^pLI(>AS4uousG!py!!B$@D2nkNP6!fUaW(vqRE0XNvC9#wXO&BUIxB X=_fV@Q3nxbe?iiilMxB?vTET6izabD literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_options_p.class new file mode 100644 index 0000000000000000000000000000000000000000..e53e2869109521899840ced69e642cd6262185f5 GIT binary patch literal 631 zcma)&%}WAN6vfYV)M;$|$m|>XSfvsTLC_*;6BUW2pc%Q5(I$I?&B!x>Eux%T*BaG_#@loxfa?tEG z8|Csz)9v}fb^6VoiZCH%o42OXHJy%8ZrN7bCrtG3L}$O^dju*Hq6Ogye~%E!78|)b zA-wNiS}`b?)S*HrDA`+uPcuCu=|Nw>9MW~nVs1p*;Y`6@JpTz*dxV;Q YLHvo0Vbo!SxnGbt=4C{}f~;En0r>oMKmY&$ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_package_p.class new file mode 100644 index 0000000000000000000000000000000000000000..5c426710ecaab3f11e2989ea29780dc822cde8d6 GIT binary patch literal 631 zcma)&OH0F05QWb))tH*L+SWJtSlJda2!ad6ji@Nq7SxK}l-qcXiM1(ds^}kbyMZlt+$ieopZi*l zR)qx~RO4+EV$rmG(h%o846$RdswfR4im&|6y&(C-ZVYMurc`H&>(g92!VfU7yaYy( zVa0vOGL_URhp|50?9(?`t2;$EexYZWo@IJY(WAbI*`u2n$3&mB#+jnKWbp&K@c_N} YjN~I5y{Nqi6F(qHOsa^4DOEN74QkbMKmY&$ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_ZOOM_query_p.class new file mode 100644 index 0000000000000000000000000000000000000000..eb1884fa285f03bea8e00d58cef0d3e97423b6a4 GIT binary patch literal 623 zcma)&OH0F05QWb)wJ|k)SlCmK@eP6+=z-&ZK1VdHzBRpnot`}6Q%wkS1tra zaN$<)M~Rc$E?g*-kZ{krGhfck*Z2DefDJ6Dh!9p?uVwVChfT+DI<`?cJ3OeKm-oyY zvtBA4o40}RdghIaC?V}wcb3t%IxVBra75E5jCSws)^6GN2y{e<73_}f?+`|^NA+Bd z5Z!ezL>vmnbg0k?N;X&1KuGEsL5z?p+8uEcTsMSQwHj?f$Q0eC)vj5d9qNG@^{?zM zVXZh++HL-EQ-;zm13&P@X_vuNC#Wsq_v7ZXL$Y!_m*O@YLcHPzUQ_JbVa&yUHnkou z2`fCJ!doUp!a4b*Aj%sUWk+LGmKuoX-}qg6MdF#=2vYn_%FZO$r?@uF53nq~IL47- z#eJAyD#_C%rUrC)gmZ@ z7Hxz6sOZkqMT-_P%<#^6_x|SG`~CCr31Ay5Dnf(}*XtP%=HrfII0M_LUmPDbE^7zv z+jgs3J#Bl!a=osKFd^lbcc#%d2R)~)fUu>-IO%F)`Z%WG*R>qxpE;W zf(y5TKT4e3cHu%nLc%@g&U`sDpI>k90M;?DAx2p7{I+>#-EX+2+jY#7^TUJFi|SsZ z*Qi%2M-5-tp5JQpG^m7(Yu#98$LhAtO4Ai~K#2Emo%U`u@Cj5RjBYz!C)gp3IAJVf-tY=me!$YHA>4bR>`@WUF>x9EDdM;Wf-oPZ07|*D`xe)3YNzGULIe z?Gsk2e@?u?KeuEs?IH|9Pn`G+rxro&ieMPIQv3(6#Pca`$04MS-O#hdt{ufK{Ia!5 zv@k65xC(Eb5Q}E!lY%&JV~ib*Rb6TzRes@j=^5!qc4Nr$HzPYUT%YCI96vxodMQjG z&x-pn$yAc3DNK*(`iQ>CTHZ;z_5(f7^hu^qNqW>5F^6;=GngHb);UvjmoC3U)$XB| ZpOAiFV;FT9VfGs&jX4>SFfXeXz5t0>cfk90M;?DB1Ty8{H}3l-fuXD%8^zBFw&3Jfe z2ZUnvpLw_V*OrW>UG&4gFHQnRQ;VQ>MK}n&TKG4u$g?S4#~~yeUf;LGt{p{P_;X)t z(W-?Z#ZbA5(u$N2%4q?g15 zvaGldlT0Of%3*3q*N5~nYk4Q>+As7h(_0OFo6pZOmp%ausv7v#G)-i%nLZ&7>XTNvZbb=$R*>MQDnr~a3 zh82h?9*Xg>ExLqq?av*Q*^DiXY8Sn*7dXdV{urGR)Rq$tTBsEM!7p!bW k*;90vD!oJ1?xB{Rka}QYV0B<&`WqyL8EKI)E3@Xl0CwV%Q~&?~ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_int.class b/bin/org/yaz4j/jni/SWIGTYPE_p_int.class new file mode 100644 index 0000000000000000000000000000000000000000..9443cf9dffa5475ec7983ec8b756eb9f23587ed7 GIT binary patch literal 587 zcmaKo%}WAN6vfYV)NyS5NGK|&=A}E3u zZG--(=+4tcLC7$}JLlc|n{)5i_xlHcO)RSj5msEUZ`_*?Tee|4!f2iz9<u7Y{wY-+u9aw}+-R+r!w&{sLPt34?C5D96`m~Tc{J);e zqFs*sk!PI@nMWOh+PD01%0h8EqQp}uZr3Kno9@W#S^FXgmHoSpjbIZf@Ei(nkPr%n z;gfZr3sy#w2zaa6%#yILYLjD&d Nfdv_nuqdmRegMt6V?+P| literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_connection_p.class new file mode 100644 index 0000000000000000000000000000000000000000..74b95ed5a0f9ef1b6c265a7f5d42a5e8ee6d8eac GIT binary patch literal 651 zcmb7>OH0F05QWb))tH(-Y^(LLP;t{1F%$$BiW^a}R9jFhc2klV>kTz2X{zWSa^*r$ z1Q%`vf0Q`6?ZSl!a!I&zX6DP8$>-PGJAeunRKy6Ye$X-Q%=>lMa6MrhpB?OPOyLxoOIilwFoLQ2ON#tG?~@SLN;wdDjSrqy)_*_v;g-KH6cC?1LN z@JjRvYqkHF-sJDw(wlZU2nT_4+Gjqs2x`X(hpsEd{~=2}rQ%yIA#v;v0^8XWk?EDc z*S8jJ4$C~Z!he7ei-zZ$f;g{bf)$OUhKzwk`IVo=7bKrpjUmnNl$vf5q*nenUi$w7kZZIIi}|&J?e{?L%NO`6h@>C_7vrk}l8-D5tqv^|en66#l@k! literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.class b/bin/org/yaz4j/jni/SWIGTYPE_p_p_ZOOM_record_p.class new file mode 100644 index 0000000000000000000000000000000000000000..0039c38a1ae171015c5c99d227721c6d920cf565 GIT binary patch literal 635 zcma)&&r1S96vw~Mwbr#&OD+3xsBXGYOAvHOx=2N0DO5&YWZfp)#avl;i~5H;bqI=} zL)V}`DtbG5=ui;D4D)^S-eY1K7ZliWs5j`CaqQy5Dq7x9^z8X9xQy=Z)R= zfLE(tKWzKL_WXMKE%_R{TG%#N8=g$0a0>z0kMCo)ei}{(EHW z(X_D2y(&C$LM&>SZwlf(iUdbARt>3vr18po`30#bj>eGTGc7CAoS)&`Xl9k(&0gFrkIIXb6H9NgJt1qy){#O^nl|GuTXwV^M#oRg0hq zTC@%NQPG*Ji=aR*_j2EJ&w1{9&e!+*2Y@ZC$p{gOt~b!`^@nX+vmHxopB)``&RhEz zH@u9Y?#T!f(zbr9Ya`tmXeWK!G<-sAd}j^nE#D(hgAlD*j^*zWBIQP}(j|oJ?xh)r zgas8cRDx8lbQKViDk6vyQccS-k0;lC)9dK{kx9rjT|*yrb&-xx;}RxP1{c=e5U@fC?@j)supGbt*QoS)*{G%sLX#Nt>)h85Q#%TyA# z9F}Hubw;nT7H@*C{6o($J#-8 QgG3sP*Fek>*sDG$ci=YTv zv<>>BqB~C)5m5{?ymQ{Yzd84Qe7?Q`*u=7m0Aa;(d&aGKw`CjlKp6GY!-K|IZSVa0 zeC&v>iXb6rn`6`Hn}eQl+_tTbM~Dn>M6X=)Tmn@H;gT2#ZLfz; P8zhDW8IiCktCqe17`SBQ literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/yaz4jlib.class b/bin/org/yaz4j/jni/yaz4jlib.class new file mode 100644 index 0000000000000000000000000000000000000000..db763aa14a52156356293b872a818a55eff230b8 GIT binary patch literal 16469 zcmb_j3!Ge4dH=p-Hwj2%v02UO?DQNCHVV|}S6-I>YE zB(PDQN>osJDhMbjf*=nG3QRyA0tSV))~eN3TWzaWtF~CR+E#7<-?``BIdkXUc@X&h zvU_*#J^%0hegAXr@YZG`hW`m#JZWx<3)2(bQy7 zh{iIF-;_)xHXj=9OJujl`i2rr6E~&fv7z2rHYtDW4;%7>NuafC@)y{}G&YsEESgN^ zGfZvm9iHd5?d;yLeb?6WqZxUmD?-h5T8JhwP4&m?+1zc>1e&bW?g>!~(~Qz5OA#Y9 zg{Fx`)0rCEdv+^R<6HAtChlPh$J3b+t=#PP?i#e4ZP6^61ApOZ05l$s4IP4SxSOe| zKQWZZCtSG7rgrp-ZtWIzP$yGpAdz3M)SBI1WnGUrX`w~)XpyMVqfE*rhW0Vds=O2` zN*toGTrN3~VwzJ$RJZ8ZOlMfMlvXJJ;S;8a0?~$7RkvFp-fq#E^bT8HcTee&j z%_idMY=0D%NBc(d31rdU3JRG^GF_XBS-&lxO{NCADx2Q1XI+F=(drN(`H_sOz%sJ|Hk3dto0aPEbSi}w zkW8nds5+*#?d2*|%5pDAMpfh{i@NC|v>{(KRN)q;&dNSD6w5?tGfjg{gXvrznV(5# z^Ql9_fcHv|XA`kJ%-&heQ|XMDoQr0GaClyZDk4yO|YiYlJi)Q#E~E$!MfgycTGuGOeqokLiA&+EInRnfk;$B<7O3;OwkVSQI6+ zpecS?ui6F!d0}vsdX3BYS=^t<<+JILx>ZztY{;Ud^vr2qQMQw%5iwm-m+j@%)lvSD zG{B5S!*mdd=I0)tH7M%?3D`M3Sl1z@%tXDLp=mkoIU% z82>?z&xzx=ovbZotJF&@%gB={46g z&8?uKgQ{BShb?+PeFVIQBZ7RKb*u0~iwriLbjkDoJ-*bh|LLvLOuA z;oJbznz}sX(+0$zPg!&q-2(y$+FG8=J^|99leM3*=w4Y{X1Df;JafNA_sKKkRLtZ? z6az!#f%TL%2wCxvMGw&DKyG!(l=Y~gSS}w;98RS2^7x|`JuGe-6$f1{^HnYp%f<(p zuCB{h!MUKUICvjXzhK>Kj=*p8284uXLksAh!GC;c`O z)hL-^gJQ=oS@Z(EEbQ2a@5>(1PLtv?m&7ctrfG2vm@PQWae7rE^);sYma1sIX3;A` ze;DiVFLM*+&<}62EQH zH-#_Q8>%8kE_np!BhB<(i@qaN-WyeWH;b;YyDpCe)=MU;y{OPT{c@H;PkEF|gtXu_ahpE!d7)<*`<5k1dPC zJT7RGfbx!3WX3cCf|qAAIR6=Z^TLA@O<7nnE^S38T0EYc12+4LrZ&i`Qh&$eTGfY7 zLe(-37p%NgN$_30I|zP26`4?DZn5|@o+<}{J_EiymYS%C?P#lrje$4zB|)OYa6(iw zO-ub2ev0Eu+_L{vy~(aOoi5qLzU1Yi$83vRB|Xf$IUJt#jmX`(7SEBpW8>LmK7liO zrb*uT<>D~}C0Wh?B@r(-uv$Hf6o-a3bBD$A>E#eFsCvrgu8VM|6l++`4%jm6%nd^^ zd3YJqmG#*YI5mx0u6~HAg-xfM`2vgAOE0(gl+Im~-)^Zrg5_TF zah%xLWAO%Ix4u#px7~U&QhoGLgKM+J8->}HZJ;x;_<`5}X8K#YZ!I2OS8EtrzS_4o z^CcELS+SS<6TlVyK5*LW1(!Zc(291l1_}1 zsoITplHEbeB~txN=T=Jr=W)NyjXL_|K8vGr>h8ZY1*5k!!2zl(?VUxw(#tbYyfa{N ze=+SH04=q)w09QyNi7#@d*Oh^gT5O&j80K2W$}>Q56di#+ArGd>s&@CsGU_s@-L5J z^3=e8olQ=S+A6YICTo)8~lddHjAPs;hdl`E>M9+-=KC0`xl ztC(g6Y9i)}v}-EAT(`ZVTE_bFtvs^D9+;Qgsk|a z6!a|?-zX$uj3cQ{u{-CXa$S})UGY}bNr{+xwZ7fr+k{4jY^~8@^cA$5P=c&Z7OL_R z$6UYW6TnM8Y4M%Xpc_)LVdRZX!5kb&#U6LK4nNhoR|`<;GZxaurXU$yu-J|XW{y6rcfDZIm6T%YE!d|UcZHlDa3DYIal`W7L+JGfY?lV%fU z4gNLa%Z3~98{hoH&oKU4g5NkeqsGpsDRK-KqsYR~G3vu68i#Aket=G)@%Sr@ujQSJ zPh{~0033ziEd`pmdRF+hJ1NAUBkNh3vTN4pr)lcrxM$-<)N|vg0Vob;15KhCG*e;D zqE?N0F)&Btv#HYx)V8Lz1hmx;bRrfsE6~YG$W(e8%>_WCh8I=m(R>Ym7M>A%$95Lz z^a3p?nry2$1-@x|jrIY)uCDc6pp^XPmCA$)d$ z$_Kf+5O$7&V%^lEf%gKq0Z&cqgpnK9wi&V5ysHhd*jkigdv6{RXTBk68eI&0`EMFs zq6{CSqau>F(RM9qyEb74OxRJN-6e6~yi4L_tTHkxwxB@iqGRpwooyHzb`=X#R)sH&Z|dYVl$i}NoehV)a9xI- z<6O9L8cwp|a-9t$bi~(#NVE5NEnN-2tTB*H588@~2d{+6;=!xvYK^>8=UJ1A&BB=l zy2cB=9t+P?(48tJn_Q)vT&0^dG*J_hc`jTU##c$M(?T{QH6;NiC?N$p3JZ=F=mu}K zZ7>X&;7XZ5AEg_Cg!Ob2uEc7fC0DGReeVr0{R`;%_vpnB?M5a`7i=e4x?C zAxW&bo$k<*%wB+g;$Oos=(i=)QkM*6&(0%3fQBfxo&c%2tF){mvfRP~4P)rZHm@IIZVZ92@y z3iMP-S3It|;_Dfo>UH@dbKO%ZqAxGqt?0)FNyM z`7&$>o9X7*ObC9(jr@uhXhw%pguQZ0)#!jG( zeWU0JyNw-E0Cv9)lMNscP8<6s{f&k)`}GNFW8d;BG=gUc_w)#cuN*`kF>I zO9+Pk?V~Wl9Jg2a8u>l?JH37nihT^$j7L<&$iHu!+)$t&deyrIOy^n!Wp}Lcu6pC? zpXpx!1_=5w_>WMD@$?g1HNd2w(!Xj!5`H0U68;md1^U^#*~SE3wQDw};=dI=Z0Fi_ zfH-P+WhVVXg$Xe9OZ+Q_UmDA=0)_p1EyAt`#0@nIdm|{~V`UScd>X*YD(HLe6IJTg`P2MK^kYQq20|>+^c5lK9 z=Ls6hjPNmO0kHy~>V59|H)eP_^p&2ba6T@3bK?~2qXN}OHHPB0K zUXf2$@zR_?sJD5cjt4-^(+;1{r)$4><_)*6H7GxK%5dX_-o$zisq?%M1Y_RtB3ndp z-tc0U2`zGrj6_pA%@Wqey}Z-Mv6mKjkJpYL!?8apaqK%;_N`&O#B+A5#t8#o3dhF0AU{Jk z|GdPxHV9z!mOjk=obZX0!0jvAYNz}!1E4f7<3UdP#OYFr(|)gNZ$O1#8-9zhqnclw zh5{KM4||b+3*_IK$S$Rda9a1`2xn9;4&(J&R_lBr`mnS27cR*;Z;$*#&8Ua@GL4$S zJdlPm7gJ;hoO(HcuPE@fCUN2sVQG9_(cgA%{Sn*9KPj1Zo0-c;)!7BmXn;Qe3Ao}9 z@`o_FCg}DFzQ)({4O)8f=#4*IGXHzk{Qsy&B6vdsk5Uq)C7AR7M!rd7nydv?a&rl5 z=@r((Ww>MT{}6{1u4XNKtM?R!Z{v??31%(AXE^KOkDIkfy{Z<=q%@JmmJy>izC-(~ zjX!~_(ptQe@6z&&2Bl(jchM~>@xe9ZG}38MP7uQUDLowT;d?cd$wqbv8^P%CZhyfw z1WvONH>Tq>9N36+uEO{6XEm_V`Jf|`=zdS$a|#OQ~LmK{LEPGq#uLEQhzxMy)7jJn0 literal 0 HcmV?d00001 diff --git a/bin/org/yaz4j/jni/yaz4jlibConstants.class b/bin/org/yaz4j/jni/yaz4jlibConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..a5d7a14c09173d584a1668e8c9d5b44069e24bbe GIT binary patch literal 1329 zcmZ|OS#Q%o5C`ztmNspmZSLmi!ClUVLb(sgvNvFn?51lw2wp6=imF6WBDE?U!>2;TDZe`jXB8~^(K<0k+dz`GPIFxVZPoz}la-w*rs{;)UsHRv7Nqv82D z8jjCXaEU>tAAODLgJ^hKm&g6?$(X^$7b#mIS4yf-NWmE}m%-Yst`iL|x{Ejm805%O zTMEH#ACtWdgDgo}yd~9V9b}UM7q)b`4syxB;jXSS#}ig$*Wcv zl*t-bbgZW9gmGSFP$0Q|)C}8}^2}+}lC?VXl_k7}R4x4iTMUY{)^3J)Fb(&;4!8em zjA7h(CqAnV7yk5irB{yXowvB~^cv zpE$=4{s4cJ$2)iK=506U^z<}0bLZY?p1E(CfB*aY9{^Z}KgVH2z(S;JrM5i2w_n;1 zefur&E6!GV97Y99@5@733S?L-ZCCb{mk2oh&=39Ok$_W$;;w+v^{A>Q;1rxa2V-zr zz|@8xs;yR|qV!W)36y}DjmVS1uGGF+vvM@4`>}wC|_auHRNRTZd2b(D@_HEEn&8OMGt6fjnB%0@du+Cv$%kkx3xDV7CXU9U^MlSsYR zPSj(qW!tUFM7puUyFMs51N<`9s~g=A?IhX{Ypdp{VX!p=d;bKm#VoFXYnkKSK!vrW zZt31U0WJk%I1cfx5&7Y$ARLN@u{jf(NP=o zJct%Gi6h1FRvut(Vi$+Q1Of_qI8H9mFg{eyxj5M{n))3^2yu{5F^^Cdh+=0m-jhD1 zb)<2Q6dZ>-FcVxda9;`-Hzq@EJRCe&2ZNDA??zn1;>7;WQp(A{tXBPSFUr}e`m#oW zJ5Pt0rHgqt*yUX8O!Na8C$2hFA$EO+X{@C7>NK7lGs!aE*1&BZ?3sGcX%OROVYP}| zL4su6PH8R>>F!2vWe(Y+%i4bH`o;cnC(d21ZDH(OP7>Bk+S@4;Ya-zK01@tfztK<_ zQq!9D=3Q`4dUb_Ug7{3adpa`GiNG+O`(Es|^MWWuV5>W5DcyF{IWR+ZR@ZU9(4+JY zu*CD@jYF^39W7UM6MtcHM+a4IpSj28ck+^%Emki6-b*yK+VinBdUbK6lM2qF%XEjH zPK!N>+%gSl)XOP^S(vg(ly1-%Hiu@Z;7ftfQ}e1HHv{~wv~HG7x@QZac`j*;@3}ILl~YC%;E91u2_u8Joml zpieq>vAArIEr;0rsJr-b3MzQrbYNn~+XhXI(z3Q))~|Jse0&=;rKSP2L>U}zv4Zct zJ`?&8v$0IQP=(FWZ$=U6H$xSg+3cjQof5DGnX2g#5JhO7+eBsa(C7y;9{7?QRGVm# zdV(&&Q+KRTraqk5iCWrIPki$tou(JBedpda&kk4ud}89e7+@3s@ga-rar{<7DU9a! zD>(BPei?xY{50DDllTX4&KjUR4oXa zjpXZao#YbZyuto&!ds+&8*Y%i3AacVph)sI+ueb8X#FnSC0T;^NG`()$@k$N$q(Q@ z$p_5mL->f+AG2I#`4B!K{Uf&f6h5Q%V^|}(&gXv4=YGNGJz;)d!dGNhWbW4jvL)mi$mPx~(*AlYEvA)ga5UX%R~_`aI`W6n#$=e6LFaE@5M + + + + + + Build the java side of Yaz4J + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..bd572bd --- /dev/null +++ b/build.xml @@ -0,0 +1,44 @@ + + + Build the java side of Yaz4J + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/JUnit-4.3.1/junit-4.3.1.jar b/dependencies/JUnit-4.3.1/junit-4.3.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..ff5d1888fc7a8b1501711594c70dc80fe07dce29 GIT binary patch literal 106547 zcma%j19T?awsq`uY^P(}wr$(C(@Dp+ZQJVDwmY`%{5khrynEh#clwg{yUsr$H7`r(c+c=ur z+Bp6fbNGLnn>grO8@t*%SpFAl*ne6(INR75JN$o{I(=2d+5CT){kUw5^2F#R7E ze;u(u#_|mpB^Oydf9se3 zR`8Dj`d3^2S3mysIk^AH+*;qp+|Job-|1^~|3~ZoK<}6NKac-d*2dP!+{E1QuVw%G zT*R-t{I#0@YSy1KrPqYX>lqLLU=tVsfb7fuf8mbb(8=7zSm~=P6`jqUjEU%J46XDX z9WxcBZRhyly|IGXoUsul=9%QgFkuR0G?Cy*<%pH!A<6A>jjmiq8UM4APu`mD)3WbtFVs3D{lddpa>;I-< zb#>zpauPOpy|LAgA^rVW283hm0rH4zfGj<9sPpsG!%$u;r;}}?FcL)p&yH-TG$W_4 zhuSf%(L=itD941AVd8^MVM|po^U*nS5qC-WBxoaBaCyxU`7D#2=@mNc5W^#}PKarG z$XSB19?L6TuDL5pCF_)XhQf2HOD_r9OxL~;0CR^?B3lmUz~pntJ*eCSBW-;8t#Q+Nd7 z&Er{#Hv4#g5`XqdOVc=g(Lb=A17hMP(x#LLrVe@lLS%IJl5yTV#)19TlBY>2dwgrgZzIy-=bLwy%x^Th7@$ z3q)j+4PsAbu4|PyH|yL*CnZ$*4CI3GIS=DaY4#36<8jr+gg$9<&zqU4$1=UrBC+uCJbz-`Jr$ zlv@8BIM8h;{TLd3VFKjTebfO+*<9jU1^Dd7!N4%|lH%{zQOgQDp1!vABF3?dOFNzW zL>PZF-I4SCWaidtHg_1Dyc3t0&Y1}RG_C8q=?Le@{R%KgJ4i#1)akJVohnZBo|2zf zPu)Gi=({1hOxsI`AoyDqFI_NF;Kn7nT}@Y!Kg&#>P%Tjxak%Dx#2+4RZ*iU{{t8ji z>rge{ZO4N``<41xU7LE51$h@Z3cEbTzj6Bn-4{K2LVkE($*sOCEb*A!<)i4%S)GIl zD|LOF=vTGvt?i`&+^~XKrOx9$o=GgCdkwMkLj;Juip7-lw;-vr}y?lG#MmHlEZ1=Y^7CtfW%40|QdYI?Y2i zb&`+3eauZpa)&pA0bT|DxOU}?R`&p<<~>T7G$y@g!)DYJ6v@S;AZe$NW|>gmY}8^d z)L*#avS{(u>SiX>x?BMZlLiUSU<9ua7K(>-fU7G7nn1H;daFi?{ZcR=3Gy5qx13;E zDG^{xHaNXD`Ecn>Mf3sggzGHB1G_1x4q&YIV?=TE*pMEN`l!T%2lwrm^&@PFR@bT~ z4k5YO+jfpV&#%=dJ%E`(V)S9n1}BhkXf!O<}8ET~Ka ztz5ZUc_8{_j{zB_#nrIacCJ1sN7=V@Nt_4w1rCs228-@q`m5ug`6HO0|Ku!xPHfO3 zBd$6i0DzS*&;I>CO>6~YJ7aw(W1~Mj!=JO-TTxpUi65DJE~#n0un<&31DYyi6*U+C zNu3XYnZVo&K)~Ntk~3l8+@_wh{0-nUAXK*NYUd}31d{mO2Hwt;+@)1=^i`tt#ir-s zWb5I2>ht^KkSqYB8>S#F6asQS*#LaE5G!KK_xN~vsa&egV+a$2qd{$qaS2RttrnGu3CahMBYW7Y78dBy2=yqD2r(| z&h)8ito@r7Z_Y5S|p9}3AD@x{c_BNm|EZo_mgb&dmcZi0+SXF+Rw zMQ*jKyVU%*dgyWOfi%Di@g*$Uq9vMI+FEkO#IxT)#S4&O^x6D}peRyQ>3|Xm9FtZV zRasBgliE>{BX*1Yg}Dg2K-Uh{3ZhiAAp5Rbol|`$Et4uC$4rKG9Ax)0z@ZKgiEmrS zNM-IaaK@NVEPE~74_{X68z?IpHP$N_rF1|%Y4*pe^%6EkXt}XO-~vrVbwb{F?&5KB zO8oG>`I?w!z{Y%qrU-!2OZBjFbqn8IoxBSN0A`KmjtH?x({o(sCGo{!5RHQBEWiVH zsJ7hMwTe+^#}uW1cyTcQI?g}?u2sO=o@I49_u{!gd{CLiEt@U9kx%8a!0RcpSdoXN z*(2^Ig^|I=zX9C#?k`L@dIebfd^`;Bj*8*WFz6>0*Ln$+PBI8}FTm$}mXEHCh;ArB z?}I%V+he|YrG18C2tL}h@)W4T;S;})Vdr}r!(iVn-ZP5YU%x4{`2_!WU$*>KYXkQM zd6+NA6a6R1{{eL&V?$d9eJ5Lozhgdb!{&vtdF%&}l~F~y4l@4E;@;%-^?e7sLXNgp zTh{&=+Rj|Dodxq~E%9i@)h&p`jpU6)BY1xnKuX@XXqG0df07CLnc*8Y04}@uh!KHC zumFd?+POget{5~*=QD({D5~H8+vw1cM&|80f+A8L`>9@0H-KSjK;nf*3cW3Dh_{$a zqL)nq`3eQjV7s_>IXP1zgZUwzj%}1MD06`#$}MiffjUUeGH6mc6XqU&GEXTf$fs9a zwspx@T7KBNf{8~)7+o4Yt@Fd|#P_Z<6;HaOLt^(Jpt#kUdZlKS>y>R%s2fgjf55lc zlQ8ugHVpQ1342SRG&pqw4pXi9PVCRMBRVTxYsB}~{Z3sHNVJ0TR*3`-lGX-#-r2S5 z1aNYfV-GbwC&gh`@=%*NeoOErvPE)Ep-|jz7hnI@pLk^6`4s`qVa^HUHq(2~giL0j zR{I-D=3n&nXGsJuN3O{?=K2F4QFFUc2S~?~N}k4}4IO|*D7{DuR+Jd8x$Z-XWI{-{ zP^i9Sf723LoB@X$nhAqhA8EGfI2czuzmvK&nlhsWtw{M2dMM_*U8d7i6+>}mG`cPt z^A*i$0~C!5JQ09&Yx3(rU}%dO2Yhfm*g@KmP;uqnwa4??-bKUel?~vJq)@#b zaNi%iqimkUOfzbi42+(PQ{!BW&Ah(epMZKuSaVl3d-H~P%v{$qgNnr*GSr@K2ivW| zG(UYO=b}(aWU2cEY-1?RcV*MEL&K$fqu>H+J%ydZb1h^GkF6r?cV?lCjf$iI*U?z; zIMyk}XO>_zH^jTeCsd-)Db`kM^~~-H5b3xuk+X`#6m$Ctn#Lc!a3+VMYoJ}%^lrgAn+OZMlDXo*`SOlA6K+Z@75SvM^K2bv z9G#aCO++Y>UIubcL~#oNs??(5cW(gjT!55(hq>x4bw&$8nEggtYhc!PVn4bd{#MIN zwmkmXTD^fVHS<=#8?fe%-s|g{d+j6>GjQ?g)1QFw5OdYY!^*JYD9%jT;uEh;Mm0lR zKC@UXZ^5$B0-&CjNn;RN5CyhElBp9%9d9jEuBtb)iXt(?n(zy`8)H_P0(f08+(|A2 zD`mjD4o-|>&s~fm_^N1&Mm-oRzglmpgiTPPZE${A5ogIpo~I;9v{6IJG-}g6`>LA9 zcpR-2+D++cRgK6b2k_WG$IS=$-!Wo$T^0dp%C$nuE~^GTCOp>Rg`s=LFB z+;ORDX8ab<6E#HC7kdibLsL-&ys-QL?r?9EP$PUNtINVU=Iot_X|m_Nz*uwCawbX$ zxPp;j?(iLGePah@0pUaP?M)+PTjM0s@77r~XJZ~nu^^a;iyuEbW=4mH)wUy2#|qqs zS|sKez^7;l*_l*Yqk{w7zXxur9#T=V$+br9g)cv7;xymyDS06fc#YR*9Bh7L2Nu2hKfq!DPCA)Ulr4TMOx?AGt?^_3C~;}!!o&T3x%AXD_Iq)A&eFB(XII@m{uVb`2Xuxr z($b0sMlSr0NY760sJxG7)RIKi~v6dHmD>c*HIr;_iA0~nKbe38k2C_ z8Us#z3X$H^e`*4M@-YRl_j@Wx000g&0DwOfk3Zw|e+fSPj*i9-evU23n)XM zNVMN0jY;hdhWa6wYeR`wdLT6=4X~{!q3UqbmCO;_r`@cgt=a1a#l8mvP!lJhw(%zy z#DJ{|KnKzU(9}w(tqR1)(M-d3HDs^KYV$PyZp+wwJuoMd79nN7XZJbv{(NkIq`r09 z{zcmfrH8e-FdhENv>p*{=fF!kq{Nkz3x&7e1>U-EnBk?>C+H?O(1&Sp1!?nK5TyK+ z5G1?HNP)XOn!o<04h#E)&FZT&fY#!WkuF>Elov$8HJCWWoY9}$;v_MEgvqiaUgf1e zpvu&+Rj%bOF))X@dc|Djr9Hri$+D|n<@GcEkj*_S-qzuUTBd7a#MR4#`57#ceRy7|+4#T@X*_X1gLRS-B%Gr;RjLLah^u!aw&NiUNGxT(DX6C$N{f0edrr5*<`l0#)==b;;(*Y(lb+Rkj)Y9XCL^?&N z1p71=GLePlReA1I{Ui+TSf%MLdT=aot6gnZlM$^RXiqcI!G!&pUIm`rDq#w& zxx$uNe}OVtb*6CtsI7eo9iU<>=;-s7idw6cJ$;N&p%%$dvXV5GxFnf3{*@zRyhxEi z?}T$B!akyIF187EtwcQP7id|xT>j7F(6Xe1v^){4s`xba$Ut3xbSRN^Yte!Tu@3je@h z?99XNgIO{`()p~_)h`>$NB(fhxJhQ6zi|@cm(LEA6u0h!OfM< z;&$YN%Qq5zjf7GSeg)=Jrl;)3ZD4XdXfWnz-0t5d z@Vh28ZNCb7-C1m43it`sXC!e1vHc@IDdk9YU6`_=XquU>xcJzCE}+@g{?lsY?wXyE zy2v;E^#G-U=59bCiQY2$jroxVq$WfP0F_jf-9TL?$__cXMitP^vmLFPH(gAoe%SU( zb9I**@a@~LV)GkT4aw044F&_sN~hJ9uFl}04#BaFH3y-onvDlsg(KK4+;vG!LfeT- zBgWLm) z7Q)<+%uvZ-nrd{_{M?ev>qlC$i?Y0y$8?j~>Ep3{n&XiQdXB!|wbwh21k^59M?RWH z-IF^mBs8%W-u5$MGd{~Z_knFC;#J6@FI0?|C#yM!?&~`!6?I`|g{pkCPu0MQUIymH zck<^PqvmTl6df@8!W0#JyoH$iIbRYV5PFV6H;VvBJK5tce=<-znW?7lt$4{cwhFS) zi5&kiCZaktUT2J2$qdV2We6lDFBrWLA{9FoaWyGcR+WZ&wqPJuSt=b1GQTo3sLJXt zpYTYW^=Yq^@-r0$C07DVZjz1;Xc@ADhfed`>{#ST3A*|YH3CjMx z%jEb=BFjOAL_5=OKCT@ub4Jam13D-M@P*z2Ndpg@SxTWJnzT1UhO(1+CJ`O#B02Cg zBA7rLJa_|BvXaw$4w1-d{-l*rq?JtWQf{*n@k0fq;9T6L&YliGxY&`2S&Q1H&))+9^ZHw3YrZ~-an8Zzv z9%|qVXtjH$Vs=eK>@MJaf*=mRxuXu1DiPT6klBNoWADBuNW(Nto*!@{2YZIE-$81J z%<{1Rls#Ha-;J5yUoc$-b0{@GD>K&Wai`qJP5(e|z2Tc7f{nt0W!eZxDex;wkGX2A z2R>IT8%?BUuW%jX5rTnhci9T42PP%DEs}-X_Fx5DVT@PjxY{%=U;nAFMqv)*5*R8|4m>mAA?! z!_w>vtt1FFJ{mu(M$4PK7vugC4DmRcWWM`-qd=N0XrN+!;73^^pS?~Qkh z*L(maTD6OLDB3-31lF5gxh-7X~8}40@pQc zV|i_pJFsVWB!{6=!#5f4HYi`S+=HX`+Ko3E&7Y+kJ4$ur(`!*`m*+g5Y2N@k%|kAc*KIRL%)3S>=%dG4Yqp$=NI)EL-(MCAprP4NND6PO zs30y-aoIDR-VN(Hp8c7t#Sf?^3usmZU`6K8H3fL;*!_Zi=vjCR#Y1$*^Tzw{ zY`i+eQdQ=QjnjO|02Kcx%lg`}5z#ldGBy%+aQKH15GkiE3G^j?sj5awPf$splZVj# zB=TSis0lDA1s{8qC&kiq)pu$3QI!>dd;j61;paY~z=M!G#Tnx4#5+OH z$up9;nqvZKb>6es2^PIWtD?&r{TLMLq33KvuO|xpLxy@k;W;Pu!Oh4L-1*!O!vO3Y z+5}3{Lygxq!4js-R5xU6RkyhZ{Q1#zmk3K6nxA}9hUvN>{@hpJxs$w&xlVn}@zP4U ztST_g;9WlBL*!l^UWtfgf7j_mn>b)QsGQ+X{GQMa24fg@n7F16MATKqPijfMWhc~s5U?7K{#z(v~8jZ4qf0wfxL^6FQ;9H2Pu+m)r*i37>b@}=61lNT=X=%^cb&AfJT8wf6iTlNGNz5HN}9^I#Au%hSA z9^eH53c6it#lo09wujtbS3bySSYf3kX~;g*R90vY3O?6pu|Z!pnI~_P0>xn~V~nN{ zU2I}Y!M1hN8aUqx3K~n;%5l&Z&si@$E^L|E zs+CXHvK64*m~je)7&`8Q|H>>F4h3|q;Ya6eTv^7xRzj8j;9sl7(wd;LNk)s=G*G7m zmVr`UwPoef$e%hG)+A4#y>v!uc&uR@sdd^|wsj*jaWHyYxgRi*Dd8WaDz@2~v!#^> z+wTGkt32+pL6%DB*K(FdX3@D=b87^#YSJlRlrxj3ObuToQF+2Vp1sxkZqhhy@X&^S z&F29%5qJ_B%x2n0ule(VXjQ=4`9Z)5qv^P9zBnt42EGU!YChu!ueE)3bi?s6S@ASo zKslz&ZbVQ$TkbY?ym)~i9W%20>=g#56kThCB-G0TVY-#tzQ6gLKlgkMkYt~G2Bf}n zA5sD{5t|dJavkriTpuiKHlz5q2!thOR_~%5c;gZ;2S*tICT4|4&>@tJZ?}!yZhFi? zlB#r;@8xEAsmDgc2t3u|Ss4F#CJR>F23ARA(Ycxb;A+~kUo6}z=Stl*>Jg`>Y7&-= z;~uG|E!9$CDQoOV!vvm-#pb=(9G77T9ZGoG?;cfhExKO@%j9LeF~cy0D;8IltnSW7 z%(yZQrB8q|GfSuF-XwiTL-rXz{Nst9?E>}`+xO5%ezqG$`j|I^$et2UI^J;6-b304 z9Z$kL<@FIIisR+fi~2$fN89!mld^6viLxNLQQHuQKIHv0Lvt6I3AGU-`y_b5AgH|9 z93mS8=ulf=YeoGHHHT>mBs?Q$2DW}MPRQU}WeBq~XX9?4Ct!6UPciSn18h zX!`h(e*?BKEf{1phi;9jF8M9EkbZ@#439sr7@{A)ha+-r{x^GCo%p^zKdH7FCupLb zFfx-=pce(y&2_VI(sd>o^zhM#v`|Yv%?kj|1C zO*;A*eBiBqbkZ&6fmQsBPw)r;h%m@_T5CZ4Zoop=3bG~&8X4}qUF8YyOAw+ps~t)s zml6X29B2s~u}6H@;`yykR?8pz3f_X&YmGMHJo4Pv8RNUovQPu0bIc~7*&an?b1>=_ z4D1WkyB0Bz^hO$K)yi5sVpW)C3(3~Qw0kDo1+}*^v0c2x;RN0z*oTPI@*`t!?RTuB z5S)DiB>Z2dds?uO@22g-a}ff)0Wb>Ac>glgV{wSsXCDcqpwoDXgS$)SWQGChoF=Qk1!@7_&iuxh+8l5Xpegi6kIJaz^?ReMTg zZ7SE1*4f(5XSFN-w`X-T75~V!>zsV1_{>%f6*zdg< zKf4`gtgrvlFJA%mz}qnu++uoxSbFz!!{Wd|_vx$xRD=hL!l;AJ`0tNe9@_VE~`e=$xxn#1wPC>p>_{~Jq7qs2Wn)coZ z2Q#qBJcHXjw9YZYd7E=~lEPRtTRa0^G7@F4MxFB-x@o0>>JTf~Fp@Dhe@CB%T|=1A zvm-PL&%P5TyUTo4Q`Q^t;*ugIio3>9 zr?wc|$B_7bS@wPGMjIne3g@w=Y!|@=eeq+BqVI*N=wv3v+Y@Xm~1Bk?p5~ z`DfX#LZy5z4AyPjL{N=LHLI|#WRJ9&8pux>9T>?yT|ti>(<50`l$BO9)g!8Cpvt9@ zQ#q|%ZbPLYy}<)egTY169bLjfSdID_cR&Yq3j}yHUm#>1TDL4FXD3 zb=Q$F#RMCl3blMG0*iglgyz%?dzrAq5V%;nATgi77k9$Uh#v!DGI+6r4ouzR0`U)5 zR0u_>B&r{Tq$GQx!CX8IEh#A>ZWgT&C42-G6CR|oHbl4qJ&dLBscOwB-Uhba zxt>zgHy&>f8;i~73j8Ubi^tIw>!wbCo!#?ty_Io_i_!IBg7@>|p7jSMoueBbC3}Vd zaWEIpu!2V7w#hfVog^5%5eMqvwI{WR%aFTJH!q4YXLW_P@Tu97B753MSXfdlti@gG z^7HD(aTiU&t~T2bgCxzOIV#G9upp}m8;&A8x1^wvp7*d?iFhYNMmy}WIXZ3UP7`-t zJF8!3yN->*n%|^3JCwmTPxb>Y}3szf2j&ZfT>ZrrYLJ(*$_8 zs=-Bb6a~i%$ONhw#-CeK!#&GzlTJ;neyH+embd%umK%*X4HzK~%yNik#RNI_4G|=z zt8kh1+DC?6!quH>`ZS_nIU4xQviR%K72sD$3J(MfWVd zzR%Y0-Z6(wYGJ#4E(q0$p|UmG^rfW~7y9}#HeRwz!iddg~@!1Z@_>E{Yz z5N#xht56^0j&)1dMvZateealkgey@{O#bv~QA4I2TbM}L*nlcsGUDNQlTdtn!L~z$ zt8Ms@*2uM=#w~U7TPhst(^4#WH3QMemp@_y-(cvuxW>opuiN_qKkfqQ>2>0J)KIr+ZYlG8pa|6kBiY}lO zp=(Fw!^jN^!T2L^W0dfQl~10k2A0gN;7!?^WR~o|5ArVbJmq{YsC~L7E_nWR`)uvC z6=Lek3+;X7Ow#-ZFZ92b1VMd6vwtS2MJib;&ha60uO)#AG@u~w<@%$VK_kKo<#Gk0 zI#Eml+<2QOv7jT8i1+;3hndIV{lgJOxy}KhK%EDl?H*(~ex)I}e!jimV|6n%apVvZ z2RDStM3kp=TcQ}IBv5J(AQ$aliF{*(GC}DumXmEwv+1gtBdA1|p|c-Z@FwYZadks>;-)1S?{#4NBs4JreK^Uxy2-K?hLbLQsdvzD zn;}Gy+GfLm%kvXoi|1Q6p`_|2xt(Qpd(rw*1Of&VFnU9DlQbskBNu;?Q}{Je(J^`^ zkGkV}!zhh?QM~&Q^@(zaW>Q1j`O`tJ`c~KRvd07?gerSSKxAV`UYXG^wEj>g52ypO zJH9N2nHy_>{mu~Is_AX>O*UUOicy>h-yBvERlISP$ zVg{pg|9!V2?Ki5oI72eG;%)8&W-cMApF!Z5J8E(*Q&St>aAG7GPF=n)F`L~M zjTWRe00#P$iUdNE8Z(P(oL~n9BcF(PZwJT0?tRdDCwMY&1+|)3FI;W)=fqlQ8+eM} za_o8%FR{nF#$vx-PGSpkvPM*#awP1I46;u$6~NM@)4TmUArMo6hc4E@c0_K=B^)9;5ZxNGe*v74xLz34>H<(-rpHU z_6qrC;8>8?T|A9e2r;jf)msMSP;VDSh{7zNT*J>nx){uc@us_QG8DJnXrx+dyOwQMJ(sKo0OAJ<%2V^O%o5oKz>#mY{2i{98G(w{knq3V>0 z$Yiyvpe{p)<5(tCr|PB4_ylP>tGWE8>5W`Pt6Iq2DI7{kAN4o0Bg>Sne> zl*PP?VYUNigF{1zZOd+=M2jr^-)oMXzz8Hm$zwR$cd#Xtv2z zqsdeLCg{W=F@xbeb@^yML&|MKf-+&`Mm&?oK||=5oDjH`l90~0H~l>Ws1Eat&O$8Ch{`6s`s>-vT{)}C{wgD9 z4@V)hb$gMV#H6XTtI(zahyGgjBJjBBgh(pPtPR!Xh8TD%@W7eqjYFSV; zYOaUj0Pp<6L^c{mH}SC-d{OJ^4@b5 zwUxWWQ89BFqA6K^QIo_0Hu;33>>VY8Uokk!`Q4)=S$iJps&@kILGHYuHv==GE0PPH z5zd1Fo`$#Cz26)*Q=Dv|QZLY7#@Z+@X6iTyx1z+}=mdO4NRD}4b3st^F%Izev zQnb@XAC2Fd*+HJj7LUbLK(r7Rr1c}>$pzQb<1j@Hi3yZKMeL3RHeo{_n>79*q@W*X zPfhXjzI#|Xo%6%4`Gw&8X+I;|uHfa=*M}eNNJRGA3k-JvJ8MObj{^qmcWugLMhxPY zL1HH7N`cZmP3PqOjx>&rt>9>|qGteDH&jz^8_X;0tYTw!mmTaz!GwprXhf7dS}+V<4QyRm;s}fy5ps`;ejbipW z`Xgu!0PLgs+z;B^R{$M@N3^@Ou;STeH3!!1cxtz?9p76uU>m?nn2(T{`h{o@pg(@t z!YWneM7p27q7b{XCfL9Vf)?3xsNO=Du%B{mAbE9u!u`9ZY1~l$!u&;U)W1UP|D-hk zi`)q6I~t4V8|oYVGs@Qfin5Wp>%IDtnjn-ZW`!+5HCD`|yr%C8CGrSZ%wzk9^fBxZ zTt?2S@IFVtr5mJ~W?X#}t}p5o3Q#7DYz{VCAJ-kH#-p=!y8v5&xg(J&$cgN^r4K|f z*IH7$We}TZLvqvjsQo;E+F>j{W9?wfWwhp+&_}5?zuo1UrdH8#k0B~#xBGU(`~CRty}2TRU9_UX-gn{&W$R+5|O-qgAo zj;X%P9q#?MgdXDFiZXNf`3NFEa(9qQs{Oj0Sj4P1tZG?F;5%`T&Fiv@#}+>@HyKo!3V6Yv^bggNsZTy|`@79V7m*7a>5 z{J{DNxKyntD-1>nWl2tEt0@eK1)XJTkUI}!qSozg5nliE)p}Oh5mLrctGXOR!A|v# zX$`Y;?xks7D*P|8G**&fUlDncX15C!cp zi^Y+(6ceOXVtls!a({U&OyvJt>Ox(J@J;n{@O-hjDJ$>dde$WDd6hz7?5;cD+l2?GeDjzR{E zgqr+G577S(K8Eq=jg&9i@ayX&_z(0!&cW8n*w9J;Yxn<8&cJzZyTk(q1||rG>jEa@ z0!AYO_TZoQ7B|0#C<0~zJ3%J`Mza*QH}4-e{?=jO0%n8H%l4~*jD3Ncku))uA0Hr( zjh>uTnU=DaDmIp%qnwGhUWm7njGncT>lc|Oo;ai&uvn~*jDb#Dm#+fqGNyijoS2Bb z54#uv)_36Vz(~LlbaepQz1={2^+4|UX|N$HepV!4-~N)byu_ozp7_9Q|R zVf8}o!>EL1Qsz4qANmKY3iSoik@pwtUBc*ST`CnLQP8L_-_Gu(0}lKmPtVG@kZuew zohH(Y3mk=w4Zgqy#BAN~;WX8@1K~_(I^}2R_i~x12-zIRluU(BJ>k7@#Z^ zX3nq3hyCk?tv_A@`fI|^AC38AY4``JQ+GsGM*gs2h|gl0Kz;B=B$i@;{8>>K!Uu$z z0Ycu~)x)3fdK?eXvxAgjk2h1^NS5TgzGOj$luCNbRG;V5bB-NA+L8~DDRSkE>{ z)bO!93iNfDzpC=lk$jBeba@_FCM5dJMl#vB{jArJ{>>mr9LPf#ai?z zY%S2NFpXBVAOWBuVyfSy$QepkZT_qvJKi`i^ny7goF#Zmj7eFSQ%)XHsh7XWG20MwR+_{M5oXBo|868Eu`AqwdjVk~a;X2VG>EAC9BQmvZS2U{k8P-_G>>@Kbq$ zePos=<%-7aI#D;6kMvY5Iy8SPZo*keOw#Oi(t9sO=S%aAu?JmXc)~R6xdVkO!Ww&n zyxu7sBj0dEAf3>9bv(q)?>-niL0vZ;e*@0g!)SwPTj1e`s}K7&$Go*nYDCBa_Tp{< zsf0!9I9Ox4IgUpjRpa>`+MfmOm`xha&em<<#aZ~pI?4F%ba7E@(r&|`&>{$-i@96N_SPJBPtHa;+;I;G&AowtS8#kWN9 zLpKD;`l*JBCa>b+!=N^7ZqXL@=)Kk!?M1rHxVngi8|Wl|KHzMq6}YF;%yITL;Gumj z>pZQiN|sGOGi2V}9TruTVY`gpYML52dZ&EM*IIu{>gfY;PvYN*=E@-rKUGi=6xv{B z^$BqZX65nBU2<>;M^-EbhdBM1)vyd$o-OnGZA8?RyNFbgrG-Nf;@_znv@o(L?cox^ zFYsN;`+Z7=c@Q#9yp28$+%PNck*}=`J&=`;HHih-B+554mhOi3sm%qKY1+|{VK-7c6W9oIrln$f}} z${=Zdx7>s!Sbn@UytN|E-Ie|mX+CLA^GdF|_6Cg#dmzu|W@eKqjCcb(4sNfZsy$Rn ziGe5e^q5YsZ(FKM_O_a7`0m>U0Nyo&x737e=_{x+PamS!B;s>i@p~Am?%V-O!u*)t1N`NR!211@>(MwJV{#!XX(R0u~DI^YlN5oKaSo8q`G zu*dR$>+K~X!dY^**t&*aq(k%!;_K|Bcr*0B4+%g#Z@^WrTwL8O1vABr6cYi8d-I8zTRv3|%X-gax(FYo){qYn*A@=?qF@Yt-`$W;j^N-E4~F6B{@w6w>i>;y z5l8pI`r+*_$^zZEJ%jw04$lVupQ*tgZs*@OeUvp7=j7l&WHi%QL`EC)eh{LagO=pv z0TJqSYqpRngZ&m@AJDT-VL~x|ljJ#yNWe(7A5`^C*tJ3Yo;3XAFnN5@{QIK0JphmQ zmk%(VpEC+~io_0#&6T}k4>bzC6nTmY!VoeZBjosvx8?x$#g%0iz3X#|s-3KG81O~8 z*${A|8Y+6r@If#XF1cI9R%mzWO`g8Wo{Ib;wqHY+Vs)BKt`(N;ewOhs@)~cEoJuV( zYfaCEz(?ZN(-alu9L?YKn;3y%@*6ZQGKTepkeJ!bp$0N~Tu76sn91Jc@a?wN;(iG> zD*F!a=S2=P6o3@g6oJbhJi zp^!rwj#l+;)YJE9!}ShGET{W*4WXYYk6EV#QsIVJ#E5wdTCZ)^9N4iBgi>Qeo-POL zw+I`628jSN0A}&OoT*1NCYDJq3e;~k3E(G;bme&$E84WB^*WjEL_=qNR37jq27@foNeHw=|DKH(4X-UqYtyuYN+Pt*plq51qr;4n=Ngt8XBpj~z{< zr0&i=I8QNczbmsr{>G@&X3DWX2D!z0mzD4>+5d*`@a!$* zkpCLu<01%tbe6-H6FzA}6e~iBpi4CN11*Rj2Jpf%WftO*Ss;|~4tJ24SK80!p>eMZ z|Arhtx_yu*S?(5qCwHq53NnfX94-iKj^(vSxr|ZZagV?N3*2nxHaKKXa9aXX%!vp~ zF15u^@y>$Ja_i2c%Wsi4RYSW{ohYUc{l;dnVd%uvNH&T~>&PtT6?nk@G3Z-tUV`-t z!7A$w_>tNu^ECS^AKL!04(=~KfF(9r`?Q^inB%rCq*?(r?Idek z%xYZWUpIRD!q&^rc~EDHuCC zTRHvXwHj}QH5n{=cy5_lE43yovIglsoLNLvp;2f=pzG-niNs!E`0ER*Agi|8SXZx zT;-+~DvZpSfR!l(W`C}ATh*fS;#n!~mMLnGPJq|^v*adK|3$dk5P?|V>dghHZNqrE z?3*KYhQ)pYfvT#he~&eY0yfb`(zNs@6r}r{91omq>$mY|gmDaW7(Kf#adIc_J$WLC zRGhq=I(~!mPQ0#`2w>vx(Anq}l9dMAinMjg`F%X{p$`K~-39iqJ*PN61CT56J|%g4 zI%nZ6m6KFdoFxVWev$Ivpb>0#a&=qmYQmu&tWt1-Gt-L#G_)4Ml`>_9C+_|7vij9G zp+0=|l?%>r)NqpmfyY7&;~j5ovT$;kPLkY&{KLIb-aqA$tr@tPV!QHv@C6E;#jI-$;{nZs_ZGfTX^r^3^&0p(Vt<+{qQv4D;Vt?^wPoDcNVC=cW38z z=<2c#IsWy!d!~~1SFD|4mM3OKIRll?b$?WG`6ci0Y6?5RLE0WSaq`@YZt+e`pRoj$f3~-H3oNfck?w)tGo69H00ebacT#ZKe$d$IYk#` zys5I6?7*Y3Sk2NEuwM(!9A4N{Y}k@=M{Z7~odRtd%2*A`S=O%{-Nky8Vl$J&@FvEd z^MRe`xC=X7{w94-hYx{5C8s)2NnPfugv#(0;yxFzmQeCd6=+hbaw`N5`4}vbk(iMl z96)OwyVzAIQwn1BeP?48eo6fqa^0OLanQRxmCY|Y`igC7&%zr)xiR@N1qFHx85hx}j&&Tf&WQp8 zFIXE6yH!dq(aD>5DjAkehe#oxxnU|-GeD{e^sfvQ(UL0OWLO@b_32F15fhI>ErvUt zhq;mRFV?jgnxSx6$w^}5x($%F%Hu}^(qty9HaP}2j~cBShryA&0zuP;{vqMapgvbQ z0T&juxuinfc&TYSAPQJaL_;Dt1Fb$nPlcXMYXg#yc*@QBYqZTp`e;S0%^q0PD~o1G zn=cGL{i_w)FJ>t{g+9oP`D?`=FPNKi*KQdz*Stwe?^=Cy*OIVc8RmcY)!7* zLUWjkCes=MH>;Sr!L$d`f^@?lh`CB^SktGUtvIVXAxfSjgSHHQ_aPIZ)%5pUP9|LC zQVts)(bBW2eLk>^P1m)>h&puMoCg#Lw;w;rIR9-uEj=mG)>KtLp=#~W(@KP)Y>CdA zIBTF>7bX4(1-VUOm9Am}^<^@i+ZQOY%|)&YpTbC&v1ISoux2Y|nOd@9$|-`~kG)p7 z+tOKc@ufM@RE%;OBDEFe3&<7MOmbfnu4fpx4JYXe(Ljig(;qD42-i!vlj`#KP4B`Y3xU^z$QxXE@A<)IE)SipSi+Zc0JoYnm){h-%TOPt4J}W$DRmI(&wi>)*FUYn_#NRuv5f%t&#J! zA>&8+*u7)QLn_o=h-;>l<{VyM>1IIN6TzyR%Kd}8DTozpG*TiyT8d@ZGVWh?f&LL| z#H)DG2_Av*mk^Kl{WMwVdvN!Vj89)|dGyvk7Edhuv^8nPvTF~|XLe`(9_iz6!w|0xwgXDl{+kg36M*PP%0r~hpcSDI@slt{wU6q=ee*aYNi<{0p%yI#n{X+1 z`7d0CV{pl5QjoiN@9LmJp*L!{JBl4i@m1R#)t)O5o{G!KleFI7pn-Q_84tLw!(t)O zz1h=G0(~EKEKhr%UQ_td$VZ`aWHoYRx{$`TIHM$Jy(C?*@fcbC=w4(Zll^@jiYI^8 zy&yiuO75*;G9(JcmO2K!7WD308(d>&jh5WfPW0;T*egptcv1*}JTQIf1KZ9CX!u1V|rZ*cIrZDvga| zYd5qB^WMd51a@(~t$ZY1;Ej8b`)<_~>k0J2k@k8h;|e}8i*w3^>QfC;Cp4G?-BDAq zrWHMN>2QnnXtL#_YsW*ri?H(V9tPq6;ST;^hCyEPlCr=I2%k{Hy|t9QawuDI#b&~^ zI?V0_X(>7AA*RqO)U+D~ZB(B$$dQBoeBJoQ8I{8DIq6nhncmT|TP%{#{E|w&x?{K#B*4XBu+#mQ{8K9= zgM=5_$XagFly-^ESp#jZi?A_WX)bjfXeL^+r9hizO@aI!ixQ@llixaX#tkZv7B@>G7EXmxvu@8o2Rj-jJ#il*Iz=BAk8dJI(tz% zZux1`VF@h>msGP$068WARR*_MJu3G+lt##R-Z<)2oADMe-tgG0vOgh*#W+@xd!dls zqOZqvh)t_qKJ5`TOooZu<*mG?HRN zAc@mQK{CX!55PrsAPB8h#6VCJNmfSjuWnovNyp>0trb|W_Fgt_+}o{wx3rmp!^?O0;{_dw{P0j?@LUvn23N7D07WVD+hj*M*$6HFmmnaO)Fr z4YBf)&s}`xGdkik68)95_Z2(zwYY7rwJVehJ|PjPoOl~6{BmIGOH!(VC(z<7p!8;@ z7HF3%N+YMATNWFPr~utUOx>njf$%Pfm;FQgQpt(X&)5JI^Mft@=AgAJ9) zBZ}-&+^G;bl~`LSP>a&hC|&SjN1sV|m}00Hq!5xbH)q-qs=MYJGMvV8>`m237Q~vb=a0x1KDsf462*I(s=G)w7k1Tlh@% zSipFwXa63PiY1cF2}&Zs)sgMo8J~iJ`pNNnT}Wq zR*|+w-h{&`QRmvY+OU#6f{v6bNJ;p#4#TM}%yDOzruy3xLK*4rj__rOy4_qdgEU}* zIP^ZsXmw$mI~M^oXln2TIua#fBZ zpZpRtuv2(*UjHIhbJ26jHvLCHi>(&81d&ry=ZW(~QEInk_L8PPIYETrD zoIiFkpF@5VEUCynjypBRShs7r&g?(0uA7&N^HW)R&vz(t{ou9YP zrdu5^kkt)HS0H#%hg;?j2RV#K8BbQKM7wh_(|w%MxCJg5FLrC+ry4uu@4+%olVG)c zIv+(D8W2zk-e6x_!ReDK-kzTgbS@}w&7EFj^^h;2M$0Q*=QzB<%+)j$YV})i4P909nhLx&y4$>x9E2TzN1e70d8=>?U>R#E8%GKt7tag zWU^b^6)`vGA{5J_#)6(cH2C=DSd9pO!YChk)wkFZEi9?rs?JrU(5gvn1L6W)W{(iW zWm`>-hGAY|VYpU@0|cw|H%lGa#GwetRSyW%%*&u~AgWiW6q#m7QHCQE<*!Jxks_{9 z6J%>9JMt`9l6tCsI>REPCCA16D`#Ogp2fVRM9X6iM@DrkSmf6nt(E~Dxb0s$eoc(< z8kKDG4h?^KTo#i$o%4Z1Nn&Y(pm zm#{E;et^8$r~9#OM+RvGH-Rp=3pJFo60xNrv7=gXC+?e(aXGZ~XT~{$`y(?cY5l=q z_pb{&Rlv7y$(0Wc@O>h^KQAA|K9y*YFV?XvmOiBv(ym~ISU?lf z&aY&dS6Q&$p2*u{6?(9Pxaw_#ZO6T$pZ`<3B)4{>CZ~_jO)I=t2SeuSHX?O~1U*MnR=P9w`~wI80sZoX6$;q{8Ch zf#YNwjyU8>2c-RvKGJMFw~hGrpn$XpxAD>Z0`--L3){NKRL#d@-BfJJvDYk*hze5u z)G$>yX~sKmvU+#+Q4jWFTgO8^575Onyj6wC2{bWq$X!QH;Km5EM57D>wqkejK=Y5f$5)sDXCo{Q%&VSdB z;pLmQ;$?@W()Ub6gHi@pG9*Bgr$E~WS9Qe;_WfDL-$zhy-xLFD)J>j1ROD<}pa--> z8EgCH6fee#e)aHi*SesW{e5XSAj%w~bn4SzJRQE;`Lj7MyX8c&x7NO7WKR#W#yc7lzcC7HHSyypmQ-W2zW<$kWA zaK9~~HI%8N6@B3f?tCr7*K$9T%{5|-t}~h*y(=oUL*|LiMl3)(wR-`k7Ahnj_ogCD z4;5c#nxE+rTrwv))3bnBS#-advUo?Nzz%i1aFNholgd4Z0eEcMxw4|g%%aPB!0 zI;s9x{e{>PV#^?LoNi?-g4?%(_y_9!&Jj=`6MJe`ycbnmr=I^F61xGQFWM_TE`L2Vnn~J;RSz$nzooydA14WOeN1~ z&gLWnzb`IchB}$PE?*wNY{ZisedJn1EAthz-!~+WUjT5{4?_^ zzR)?MSlmH_VZnIpn0+!LVmpQlNZOv{IrBUCiQxL%Buo?o7J?_t4f~zr7l{Uh!6j(q zl=w7-6L;^%B-64T(iu-^+h{1nErn ztn_!-h4fbcnj$^&4UdP71&iC+Xz>;|z1!Kq<$S%GWd|gAv3-^~B0%BHDOtH*E@kc+ zkRg!!^6i{9w->|I73si+n)H`i=mX>W-(=*`DuM+*1jQ<&jLW@|4_Ab$Uan`}K-E2l z_8`SAkY@y)F%s9zc<-_rQR0TMdBV+BbOEwy4YJL#Ur*j-M`I%#-D_jbUr@l&vDNt` zR6UJ(^UR-FWt5|Mg=kgvb5p&OF3g*fN>3b0Pj~ZzpJh({y4E6Emc&mM22O_!zzY?? zcrK$Iev}=tK%Vi?c`Q*HER7nqaj$X*5}jC@n3C6)_1h3u*O!11g&#@og4Soue=D@y z%5YPg7-ZsQF7I0NhZWkmH%J|8tvAq1T3zkmU zJE!)mSGtDVKf95Q+V(jN!xwcXu$`998jy2{&TX^#aysvQ-3RIaM6OH;#7)&VxRc(` zzosk1+6OYsg%ev3>#L_g8v_(CgQ1TF!i@z=RpvL6(;OI^Vg&;GcvG*8cExZZg*I0W zQQ~%h;F{KG&rC>bX;l@w-swpmsh`Wa+Dz>ihSR{S65PeVKTuE)0alp#@|DBveK@Q; zgBxFpuO-0WD>NpWD@;($w?q*_4&q&hRf;6POwI}@Z$>}wlvPjQ*bCF~-5!m5l8Wb) z&BdHn;Y5#ukc+bd5YP5oZEt7U0EP=zOX+By$%&^P0ozX{S0Yy3@Hk}}%hohyf@)W4 z3kU37&{zF^t5Dv5SHm`}K$uVfL|kQZp;7pCP@nyQ!!dm{M)^W2y{fHS9vQ&1mV1?) zXr{WQ`>&RqCv3F7N?clH7o52%wb9G%l}&D#yWCOuZTBfEc)oni&6sd(AXg20&sA{6 ztSj~~D;vizZ4_Fz)z>l#ejUXK1f@ z$h9t9x-Ggsj4xETaP|QL<%&i7nxl-|g9w5mauuiY05sw}tm*P3y#@`5Z_C5+iDOk7 z427}!PE}1#4noYqw`Gk)o!=hivs5PvyqtD&!CO~pYQcXzsO60_Mctx&u7>s+nVyyr z%nTrKm&>qlvibNAD&WlbWSZ@piti!*cPijt zuE>Jl5~crY$o!Y7^1sAN8ql6v#)*97spB0jE#`CP>8#d5ah zT)8Pkv*r%*GF+*cCYSeq?Mev3h^S!Sb1O3h&MemYSS19lZPiq7-48vLXSA1nOJUK* z>H{MBUq@|h@u?#fdOlt2Lrn*>Jz#LS2(Jk7=k4*fN=ubSO2E$=BMg<}@VW4i1{HG4?V0g2W zPur#TV%q7J*vsvOk5v3=w^{x3rLdZ?>!GM$fOU3sU7k4Od~O>Rj-W-Vl!-2gGU?DP z>1JLO+`7t>xLg}1Enzw{xc=x+C7e0w&^^IAto+(f-#4$D)D&)_V&0^DqSddKKDq#R zb+TN~cdQcNYLVT;1=ps?y1iQqFavN8FkiAgOV}r8x4~`>sG7e!M?%1~Ch07>HVN2w zYDBm}s61o&Z=JXvYqXrtu-i=YZkFBT2)wz8(|KnwS`_e@ zm?D?NE=WCK&y{50%C5BSjF`|U4 z(HTC{#J~eu!qkRLQO3sCx-|MY^h8D@&&q=#dl_bme0xdzdhP}JYhk^E51#B|#go$5 zc#W;!QKc)f&ZSiKSOwa@wvn2FB~WX3$I5e_Ghq_XEID#PqPapGtAirNWS_ci9J_aX z47azOR#Ae(uweK2efqYp#leKudzzBC5>IBYwVNYGys0l&MR#*@-@1PyEP6Ml=H)sk zu?9H=&r_%9*Ie!Ny_~ErVnrFenplbj9B0o``FzYCD-SPoJx98XhL6YMn!+ns)YBXwxhOhXqF%g}mez7DXO$Zq#oLHKFOr zKEB>cm10&vP{3e}X)vUsNAa1g)88OaJ1xvdBHkEI(H8Nm(33A}(pJpmgoiRP*l2F!Odp8$*bGFO!m>5Riqq;^l9MyDj*44n?oI)LP2RFUHbLJ> zuDC(LkEEpF_SiwHALAMBt(4GR#^E$LN&OOw0!MuN3Q{YrAfS&ZJ)7^>)d=I+WG4Qr zh~2fgU}qAZAqyFE?`00bb|b^2N4cXil6jQ0TU?}IZE!A@#m!feWc`^YHoC7dX;jXG zJ#!c;GN&pYSt+!2Vq`Y{;;RLnCiEvV_@dOAQ*atGhvT%_1bMwf1y6ICWE%oa>7Ft0 zsrO*+^94`S9;t_}5B5O6Yt<%-Imh<x`o04tyv!&nTs(WO04xo6}vFhK_z_?7L(S@H)H1kjd*K0!BqjUc;ekSTbHYq1U$qpI1Ey6DQz)Ar*nhgMz{qF^;zw;v@kk%M zVtR4zRNv#0^5*Lko3LQ2=VmW`6|!T_uJiY(Ab2+;2dBDju)XrGk6R%7cEfkCG#AkgWewUBG+KDDST2(M-6O;O6 z-?E&oyH^D=piU+oc{_Gi5?;&sy;X3;+&Q%`do3SOMIJl0VZnQ<2egw(hXtA@i&#_Me&{sl+ofA#B+RK_RgPdL!xP9&eRt$^UE18jycVTHHP)2 z?!Edq-K-;!PmUuiWwpiakx>t|vfZ5hR=3l*nEBDX2m!& z%Amd{#{BtrB$|<(#v55UvwRAwooYu5*dfkKm-&S~zqGSochPmd0Ds1j>?5g@Ei%?$ zG>^e^<2X{e_c~yN9E?E+b%;#~ZKEJRUqnod95)hj#L^OwI3^ivcDowE@rSL-VJg)> zU&OpcC?-=@7@#L(C8v2K*d1)?n0SSmTFht z>EWnKN^*0GAh*nDgnNn2J2pLE$gA}DUAoI?X9Y0_wYIY{H+O#wh8`Kbbofs`4Y=XC z9XyN_gIg`|Mh$NV2T^ooxkl~9CD-w=%C(Yqa2RV6Q$8@>Siwy|RA%rDOl3L;E{sR) z@jJ=7oYTf?a$=QjLFF8QyYT94|KJ~hY?<)@NI|+xqjt7>ma`LAB-!omTjpXPiyE|s zS`>%c6lq?++YpuJ-HpWLqD-|q{rNNWp5sl@A+&++kCsneiQm0e$liAgV)4vuzx>3m zoGItY`^&N!nT80TCb#X{h%@1yuoe3W?UmlE|DYBxK~NJr3Z=O9J4u0zu((Ex!QAPm zHregHeCzj!)s)MMc1T-DDP(qDnuJQlG@wE_8>>}yrA*W)xd%v@>d>0J*2Vb=E!dzDc)bIYq3YU`G>U9*_uZ&@&ts(OYhf3r)?=A z{|aP_9u{X$od_ff(cGuj4LZq?woxI>RroL$(cB|=EgCn$QcB9*SJTaEk?P+u}c8x!fWliFR~YgK13fSl;qTeu@Xvc?O{oy`X`mK|9IB z!zXteXhES+%Rxs!p*>9vP)22`){b;k_}!Id7kvA$FLH_gu=B5HLcucQksccoz|G1T z{!l`PtLKE^^t7gi$Re{6%`S3QjV0T9#;`surjXDiT%AWTGxnpUjy)Ezmmg^ifuNdS zmr4uwv{HDY8CDEuOz8XIWj{rc5WCzG8Br>eTZh&nYDLRk_UDdL_}W@;$HmW|4(Nw2I9%snxz4coI5bSNdJKgj`#}il)nm}ifKAmL z30Yqu7NdnSa(q{?n|q9NAHTGld-kjtsDT9cNT|{%lUYfpG_n|9G^;Nto*%SNGcgkE z_?h-ptGTbGg4^ULB?cP{#ljWYIpOGA9Kp1|(T{6y3{>8f2R9WJTpmPj9`0G(vEF!J zIlcOfpP1TT>}2g^|Cl=Nmjs*17PuMbhEm@*t!B6qr-1mAGDU`YN34hd-`l^A)SkP8m z{GcZXtv3gobppa;1tNHrn^(;(aLF&O5_sRu!54rG3)L_DB>3QPPjw}gXJ!@f5%7T| zF5`cLX{Xicf2y-|288Q;UJFKNf!B+11GJ9m93JL$iNy*&wl&ud7OsfS-o^D4{aEn} zgTzUy3;9)_A5qNCT#ZI|F(rl|fwon)Qra6}1{Be9F*o9>r%{D{Z-Eb%I&M zwk|%%Ya9J-HC2@LbEmpHe?dY%4I`UxG3Q+gNjt`$Z?WCG;2M}A%8NnvA*W2~l*_|! zlkzH_x@v)7YhfDs>&q+PHJcY3$kZDxzaT&BX}Dj;tJ8DyMv8;pj05{}Gk(y#_;6L; z9R=yW_Q+K4NPrWPS@cQak=g&OO7B@SJPt4U^}9h_$h*Wbl?V7Kv`v)}L;K|ZLwn75 zkpGBBI)!YLmZq5>#BhEZ*E@)rTNk#$L*`d-6VRbE2*Mgre4F-(yg1P-eEY{w<#$7j z8|3K^qy#>&10Vg{XO3eZKV&+6vKQr=?27J>>=Ou!Yo;IKd~#s+KR%$TV|m{V7zR{Y zWfpKZHsvu-k|ni@+x-19zH&W2ZPvlg)21C>-O-#Ic_mpUhBV2Kv2sMDgR5THf1XnK zQu+YKTp=+KKfs5)q4#}I$v)vws{9V&b6$BS@|O~)m2*;p-@0bHsEREpCrPF4Myw^S zaaeMd{A7JU74-#Zv>psqTiUK^M`^f(mh!Y7ow9SE`S+PGE+F$6;PP1De`_`tV9QKj zCtO&}?qSWY$kwUli!PcIF6Av@iY#=iOyKS&4}^@#5;~z-?3#v1qKdL0*SJAK)%z~d zDIp^+kbQhIIvaJLW#`1^r3Ydi4KeMR@|M)d~ZYjCPuk6JJg$Wugo5PEYs7TYbiUyNpuQ~4@7 z;>p)U8e4`~~tyaX`x>j`NDH#5hYrSOv!L0eJFv{Z?PqnL+NuJDnRjAuqakDUNeutRqt77UgnR)1A$>1LjR>{txg=S zE>(?>o&R*lNKe)Og#H#_41B-;BMkl*>+&zg<$nuq^q`uH(2tPS%{s#aA%@dGfOJ?Fy zJ(Yayc_BPcq`w6wqE}Huafh(>2OjQ7Wqw6nv1=t+S9Q_Zg5Fgkr} zS^j5k@Ly1>7(4tUfbE~mm9_ks%=g?NkD>(hAC&zAkgX~dbY@U=GAuT-%8)d@I~{*_*= zMQN*)Wg~i-#InCkK>^z4497=0s*FZhqlw8o)ifX2Gk6Gbmae!AW{|ofFQD`OTr38^ zSY8Q3*}acjXI(UA@hPTw^rw}QbM;iQylx0G{Omkrn64Ao^3!-xMhkV`9(`DxiQe(d zk4zIV%Zt!oaouu>&^;Neu@E^F#FQOik*t;v9n+6Njrt|Eh>HDNOhhc<_- z2e?YbAzE}0+`xUHj&$wSGWc*#3gQK-)nPD6{+ml@t<4`6J`2RSfp4)2?f>7_|9{uZ zLf=`R*2&n~?mJ@5*f^@DvX>r4p0)^FE z2P(qqrY6vP0STb?`Fz*M0L#}q_6LE0dxuc?!u<3v`O-r}`1NU|Z=|%V{u!sP3rz+-B^^IdcAe`*&~)MkMumeT zoXcBT(nPOyOe%8OTvi5(Dl4Oa=Is~RsG467*1vtxKf(dG^{DyzzSGupzSI2({(Ig3 z70~!k)w`U-f5j&L^T>)+dGSFx!2FV_9g$&0CV<|7sSQn|#nx*8UImS%iq&IJqn0}! zFk&J^X5+GVUetr1Mr&B@+eGyU={VLl*B7v^u)Z+9T7BdF3jS1j^V&@1`B^vY&3kw5 z!F~1AlKteh<0H!ly)F9A6|`n&3(dO6OK2M&+pazQoA3$Rjeppmp&bPN#8vHc3v-~& zfZnbu%4O`!BVZ2^vx6<@Y3D?FQ1dQXm5{`cP4De zUSk+p-cupUQ(_np=qWm6YIxj>$#Ktt_~Dl7O&CPCEBW`u7*}`ZMj4a0WUoA`>g2gK z%8_&O?AJ+i&Yl5`?9Ry{O|+HYyU}Arl|Jw46AtxV#uS{LOe!o_2N8pa_@s7c#kmIXU+ zl@`ka8){^y*UJK^P#@}G%B+FP@~QMmKAt%*{f)|%@SROI;5nF8M7v5`S^#UcR{JB88PFwt1E1zxDSp6=VbR%_R$Yq+uml01 z@o**M4Wk2SmhP>{xA^v}j>g|-n0c&^qAA%YiXIK4>L%=6-G68HIcY3Xgv}9c@-R`t zCFh!}d79e|V}P0&vY!{pX@bnXvLV+P&-13S@yM{iEY+MJ$em(rYV5JWYVUZ{<-?R1 zU2hcVAE3Ii)GzTT=Xd0o(CnqDm)U$K+LubeaYjk32dYeFP^j(2nQKCK(v))^%BwMJ zL}}=>Fea0zE|o}c;NYu{0Q9w+c|TaTQ-3d|CZ@b9pW18o;<-n(94Nc@X3Sw3Bw(wR z?liW>9hKYApiry+r4^(3jxv;(TBu=Ms(5!5E$JwalJm2qa4kA}@vM;t9Gg@KXg*|1 zwvKYvOmqV=f;Sol`&BHP=<&f}u!k&Ru#*^R48vT8?Q(&4hDQX6q>F+xzKK0r$+*f8 zo$d2*>DC)vxrtiXkTjuQWQ^vRKziu*c0XNvfw-}Qf8Xk&H^d-x+e6^qf3s_)XlmxV z_1hP_r;J{XYH>1uwQ(k;)@xBQSfZiK(qR;WcJUr+R1*se3FXp->0&*j>M&nhzKiyS zQIVASLE^B`lkUsxyLz(h_=InTMr>g(M;^hx3)Fw)`|<5efq(u*A8B}kixZyh)=j*H zx^_!`zq?M0-3j|HK##gq|j2BOM%Nf_?czQF_B?{}peCGPp z-_CwU&jo*mz10NhyM1W>HP-m^wOK>4fW_H&j@JmCm8dF$si5lAOu4S5Gs@Kd#hlK> zG(KQ4)ETf-TSx#~V88>=dJT`uP3&s_L=|jNv0I>~!iPI~WEiO5uzhK7|5g(sFHn(V zfWKvqjyDR4TFX|O5Yn2LCF-CK2kZATn9Ae zNM>MXbjH<6XKkhX8<`d{44+t=^eFHuDVjiPQoa3P3Zi_5aId5cOPC&<#ilW-Q^}>5 zH!3_%KxB8QF-Y#0dW+5y7|LXAnUQc4a(gUj57E$Z9x=|i9Zmf?=|tiZFnmO8$An*r z)tKWK&G|_6&}?`|WPS7s1peFh$cm05z|{K`xL#?`jk&;mD*uK$8LK*;IqK($;H-1K z9^zpxh>({0Ies7QdT#fTVTyt4Rt@YqWOtpJ5`aq~6p5&06Dci#89G!&gjy8&1Zq}> zmtPg>6bnkDu%G0ofNxj|oJD)|HKRL=XaZ9HFeq@7Bdy0p3DP~1#y%Y$Rc-^NRTl8M zD9Vz-k4i;Bm@hd35~2K{0uF)q<^r@L;7E3hiFOa=Y+q|gwnzO z=m^a@(*;jpgL?wKC)N0+&o%RcL1fBB45+DGto{nBJ zM7CNFGkoWp3`5vkjNkjobpEFt{P!d>DwAx?7c3>J%y#6uwOl?iJ%xUG99eJTftgmz z)NV+V!S)HFgT!{E5*x7R1+AK(IRR4P1+Eg6?>-fK7kyLbrDM7v2BG(kjT|A#d zxMP8*zrZ2g(tJAr)lH2WO9&mTT#K(s706U`Jt-qaL$>VxMbD9Ov{mIJ<(Um?Z1yE+ zmR_)n;6ClbgV-N8f>B->Km``YVa|Uau#7{FYIdmg$5w`D8Aexmq}pn!o5WHvqM7_k zb=b9UdQT+4ZhoV?>RV20uF~!vD#O$D(#Sx1$*KsmmZeC|cQ+_+ul`-k9f@c1l`P{} zHkit_ryW<4&bEZoV{ZNh8XP=A)7qb~^(sWf-FNAuDh)h9IoiLSTO4E9j9pg>hTq4N zJDe^UV;bstP8qXR5VIB01Uih30(ZgAHMG3P!aGN)rvX&7Q-K;%LV&335xqrO;&P0G z1t%7DO{5j$*(>Yuo4f_{Xj6^6E# zvXNdA``sWvTSLR523xsye=A*0qXvIwj(y3hils~2nsVD!S%tL^-`d@V8xv+P@w3=v z+nCFg%VpCBm)qrn7#>75+E>XSOEasl`tniVpC8TDvf%iTIjBpjbx-p6ylB4o_{k@- z&vyQvRmmn@%xtgMBS42JrZ#b#6F-PH8KIkYS^e6y(Jo^)GxJU>fi4G|;h%=@0m7d; zv0wG&USz%^&2+wRH|l(F&-V1bLayD>5F(F+d{B&8F^AR6@NYLE@bN!{?K<$IN1tkd z@P?4RJ!QaUUvCl!cxl%7=qAwLpYzJOiTzCvlyq-*IAA|>X;y?+8SAjnT&_j|$SQTl zmo>MchZQEY+4biOtg!C3K4M~~wpVVMM@|ps)2+C} zZ%xjW9I126^G;cFGcAQxmX5M+jS~J(_n;3AmUe+EaAtNcM!Q8p92=qaEAg@y%ynLa zlO(36txOEW9C}8`jE&?Qi{eCp+#B&(FO$jDG+6-ZUSRH}_F$l>Bhg%W)QqLEH1Psi zYrEk}0H;$&en=3q5RUur=m-jA%e8^$#@PWT+mgwV z+&3f#GHYc2HL0O+V*C!3b2rgQPZ>tKdhPO@RI$|>N7-?l2Bg$_dT~rhyd1*%zLmdN zA1AD}eNIE%5QvaJc8KlI1L*J6wLlL;G455+GpmD7ks9YnR?QO<%p;ACGx$@PLdSOm zJRq}~^B*08{lB8KII`GELp7l^bw|e!BJ>@8?n`}VUx9R_da|0>h>LGdr9!@XUZ!O(`wDVVS^+!g9+kdO9cEvco zBeIX5OK@IIzazDho!-C4+p5rI-z9{U6{Uu%Zm>@Zo!-&9=59RR1=9FN z*8?58&3QGmWl8o7T(63}@u-UTWS{HceP(V{+l%#o+Z}Cgub8YtRk9hj`HOPmosW|l z5ckwYD2-0vupyqFp^G(w1I|&`zY~tIsYTKfLX>-I5Sc8&=guLJTXI+oo|uG6bxV7C zQc%q8$Eu^oZU}LGhWMDNuZH*IZ}d0~!NLQDYxIRFNClLCX`+55|9MCLn!SPgtk?<2 zYYR(ka^tz7qB6G*i9wdSuC7|J!V>0pP&?CMwFUB zmDSbk!6ao1J;ouWL?2DEB4ZhqR#tE>y1cKvH}gJ~$v&c= z;Ov*xs!2khNQph07&4HW%k@;4s10kK;8Bp<$fcb*Wvq*<>nlQ~F~0MpI1y8=af7oB zpY0<|<();efG3`9C$J@PoTJU2;BrZ2NDJ1oNG(z)R`FCoq02>;c}hUeRzFBh-V5GpPkvp4k`cH6X!h`KGEp1x0GUk+VTfrIA~gc!GqLgjx)PgcmJNbM7& zLI)u~FYkVtnAtaK$6TH#VG`9s6@4pgd}kk`=-32STxtty%-8j;N@YsA(cT<&slirO zXkW4HPoJ3#a|vosx}1CNx7X<}5B?t%bdY zE)Rg$cd7xPA5=q{mO*e=VPfYi*8DIDCf~t|km~07G3AuQ0;*Q#ixt+(8grj_OqjrL z(@4lBCt3i!1L^vGo@}T0mib8{erqdB?KQwmaw0Ih(XfK$$GA+WmOz>dPvd!BrnA)0YL{ z3J5Z+{qYQ0jzF++Gh9X>PX_itax`mP1(}OMiW11AY^$AMZKK1npIM)40#JrLj|zK^ z(x(AStno+3sqh0Q<1K}BA`g0uC46IKYQqcB0@aCk|paZru!EadHTN_4>Uh41Mx z=?LP&*~t+nh{g)l#JR)CwW3;t8_Y18xF^ozjb0MPHC=nXo8i&mYqt^5(59QMaW0Pq zUeu%A>PLyv?}!Y3TopEkH#)d1nkar^gcc3Dq?Jt38|#iyYYTr53cDS=(3*|f!C)nm8B*)-if%rHH2(PbPY@tqdhuD9nXT# z$5Wk6Qk6HsFRV04>;Om9l1$f8l?lW;T=X#Wr>tB|z^vLip;aJ6p)|$V0u03EcZ_>^ zzbuJv)S7M7;;DwOE$o&&3FCF)vWcDYkS}#q`YvtxTDXLJ;3Su%#?MP>vpbZC?KS%z z%-El+NK(x!^y`>Eu)15SqF)E0>EYhfJH5 zou)yld0|Xgoh?>V=+R6t!*zv-LGpa^87gluHbf>m%;;^5AiM4%OIuj*-Cvg$xi4lb z!UdS`C~ETTh(bp|)-LvXgG}Xau_8_^CkL_wxBfBuU4w)Z&uzS$0rQ7jc_JOXE z+apZvAT)6MqF)oR@bv2ffgKDIwszo$-|(7rC5zu-gk4CXWU~BvRsCs+VV+ z%YUWT_QmnoHx=}h!R&xeZ4da^V|vhDdWwKmVB;$VCh`R@-^SW(@u|v-&gu)WD|DMz zT#7!G_PNH_ZX>nzHdCIykc9G#rg%un+tS(491Q^%>L_-Mp&*`wx}!fWlxmJmY;`fDN6(^^ji~|gKx@tW$o7Rfw zs&03^o?%{iH2n@}4Baj)weoL_rWXFaM4kWU$No+NR1UvO(?8$j@IQD_TL)9Re|qN$ znEZEaK%gv-B!~cl7qYa~=+p3y%)XlPC9aVA%|7Tj@_arLm zWFh^89|+T3(9@5*kGmJJZ74CQU?`A4!rU*MQ_3UFGqtE2kNwkHW=SD-8B6?&4Bd;~ zNu1~o_!(jB_rG?Z(`NNdozsWW(-dNlu&rcH$%6}V9Is-pC>ax~26883hR%Gye*!L& z#+AUtQVhlgvMWF)N0+IQs^~=Np)RP@(?;jF6SS zqvJm*!$4VS$!`Z4FGXwBGchVxM8pB1Xxc2E#59E-jnJ8JfHg*6&_yLly5LvZKk|nq z)?Mk7eZS$^_Ue9n{d@+sizN0F^7HGCnf7r|j=fdFCW9HY%?b~dH+D-bYaq(#PkeA6 zplh9%>@&2?RMp|qM54X4jAR})QTRY)G?{7?Wed2}NTmdg{*2}2%%78{4|#qeY)Kaj zsB@Og3ybiQ(`mem-BBKvV!grL*=l>eC?uBmyMKHY0W1$auiEC`-UEBVTZ#>cPRFpAWI^B=IsPyVUk) zdE%DZc4gME8WoL5R@SIxzY$Q2QP$auOy zc2-rFZQHhOb{So^ZQC}xj9Y8(bH2UTzW1E({>U*hpOJqu-pGiU5%Y=3bJW2`$7Hi< z+IjeDzo|XRbJTV8r3=<^H{XW92fhuekgp48tyF`pqi4^Rz(wq-GMELu-W>6&lW^?> z`X~Mz|;PK!+k45`pEc^{JTn$n|zP(BYG4w zfuTy54L`XyBm_V1hWwFWPsD@dT*;RE!QrTF-96I@U;dg0S6Mzn2s*nv0Xchja&G(& zY(k%Ow$Uwa!cm%M&Ip3xoBUvm;ajTHyYL_kqxUEZpVIb0hwDv#WQzL77~{{lo3hB9 zu_v&)H^ts+;x|C|9AcE%Tof>gU%E4pno_n&&SwUlX!Rq;JZA|fwi696Zlgl_0ROPg%v*0UY^QBPI zKP8e-`jfJ#+^i*!BxjL^o$)j>I5S`uNwXHtIe#}gHDXm*ah9(*8CqRhvZ`k|sn$tV zHe^{ug*Aw%ro)Pf?3vMEsTsI^AbwSRnGW$rWpgd*$RGiZ^@?Fn=HUm@ibOC|BMN$% zl#DlJhKzBA5=ccpg2yLw^VT#J^5!oEA`y?pug9R8_~X&yGl^AW&WiRws%G`n;=}{l zNPYlcTGJ$}N|qdHbAddjCR3gY7=vj!Au8g$~8rVWty!$8xD4kM{ z8IGx40fJ8V1g|+1bj>+3V@ql;DF)n2_(U3Wb=l+5?YJrwRFoY_%*4s_O!?vX(pCrC`HmJ zqA>7Yuy&zN6r%*k1usvXd4QtJn3K@u(KIOb8{lhuEct!{+u8+#8hM^(3F}Du*+L9` zcUCZfo+K`t#z>W^NHPWbC7uO!HZ7?`N2aROP5HuD?Q-cX-eV`7hNu{foPQ@i>^ZES z3zKd{zemKbDYhqqGf9Xp^_Fmn=?G@Lli|L{dj;jwiAMG&BUL}X-a zuV0EkoZ(p97pG)Xs4c8mIy_<8N7TdC+UGYT38*If>d%nAdVx+3=nEAxdxlPj!1rQ6 z#|YscPI|kB)RI^DL}z?kY=w{%voa-U*Lxx8o9__#xtFp0`a=;!k*FX6aFhp(Gm@N9 z6B}-ZH#vlL{6oj_tPKh|kaPU|WZj=;bps6#xXN|YOAnNW;%U(m%#7_0g-1V4Q zy>Wz-oR%Ihay$`@;ivUXr@M}xY4YL?i-?||FAqqorqNA(t*XbBGOgaMY3AlUS&IxQ z#Qu49(oJn#GSQ>^kO|a!@g$MZJQKAw#>j*8#2emB=e@LKdS4t1?|_Nlk;090j$`7- zd5fs4P{a8Cn^P6JQ%F`V+C2@0x|;X^bQq}$KUPkT`ZbB=N|BidP19GHY42X73k7E| zF7cjFIIFIp#w}r-4BS-+iDe;?8F+P52*s%0_ghqdXyPNeI@M)JIp19{X? zFLHyNYrb88MVnHcL;oZOqg$DV2bg~CHy`=>MpR(OPgJW>!3;|N3}<1kv8rt=#p`Ie zzfKrujB$e|8lg}!TY_YkV@WKBQJr@R8)-+ym+SL234S;7CN?<*>3j8cW+kWGu&=QYuA5nIO@a4@?;Oe zpvGCx{eDjsa!!*HxiI~G$)Nr{TBL#f>t-JTRX=wo)uBOwx-V@l;`^?v7F`(wHE^@i z{5C#PzctdJcP%J{Fb#b806X>Rbvrv0U1*W3LS|&j0L6V^Suxo}Y3mU<0~*8#1jZh+ z{ri|BRx@Ub;+bqKz8!0dEdm<-6g zEzSwW4HjT0pRxunMPV!p1M1$Baj$Wv-G2fWzaRG2V}jhjZ^b^iJ;F~t*?}R|Y!R1M zQ!Vv(BVvy5mafwTyWko{O__!J5K@)nmOYm-#A9w_fjex(v!>8iyFPCOqF^SJMtwKc zVxC}qzGy{LINRL$WI&-udGrr)^wqK)zwf+KG)>V*4y4&kP;hJGROn!o+IuB+1jLM0 z%ZU!L?X9}UH0YM==o&QI(E`oOiOMW0&$e2OX{lJ0;7saK$Uu|o zYzCZ&kKGmRK|FT{aYGUT+me+QfKoRZ1CmLM;)HYdlg01W@4hf|tS~nk{e7coqT|)! z30Bq6wE^4F^6D4ker4+NXj&$MD%2%w;ru)U@J<*4Uf&T;omfktKX-MZaTv9|^;>=g z!C#-Rzje$H57Hc}hYs-?8kxS1ctDcqC-O(>(Q2Q`A+|ZtXPR1923Ae8$wx4(o2H$y z?(W=SQ9Rb8_e`f}yvdOW>dI18{}N5b84J&M50vMTEWsyI_Lw1lIM@#eHM$N(!$F$c zCQ;8Lq9H6~(-7Ajmsh_3ZaF+>qW)=Tf9m%`mS^fvInAevff$DG569d&v*k8IvJwxV zb7KW_|6$NwEw!|5R7J$e_L)B2LB_FF@5ktXiLDD*93@7RDmLj@hONWc*EZ1>#qAOT-~`HQNJ3fNM~6cX@(moTmms7no=mcCbS1i?m48;m!56f~L{Z z9eCC*n?vuq0gp8IVPBzqYc2+)RLdWqf01kc0s`S>5At_Cw$E?-Lirns+m`%93o zKMdlGaJze)+m+z@zYL_Nr}YLIlf9W$-e$C2Q{$`|qX%+w1 z7G>gpo&4k7ztoG9RMs3&j8H$V;z>__7ZTFYAX=*iGIxZL{{&34qCyrHkuEO+5E|#D=wI? zd_G^ed=s9e2MDz+hXe}KwDj#YNa7V3!YB@_=+lfDQF>L-C~1S^4jhs@_*5A}EXK7> zE=4ifR-7Z~){X7O2FRMn8lUO!>Cx3EYcmn@5Cs(kTz@1;$eGM(fYpx2cjhB#wrb-} zwnm#_h@qa#CS8P=uU%$ZtH6O>9Fa2C8Mu%YPf{!&+^nqBme)c50JC?BQeiV#7I9JV zizj{T?LYk;=MdHIFRw>^r0NvWVm3scT0U-64%P!ECbQ-^MJY}^%jI`Ie?LJ1Svcy} zJ0HhjWl#nH&}V9R^)NOk+RHW_Iu03XP=Z|MYbZ>oQKlr1C{nEXkF^+y`6V}6^+{;B z7wN~&jYzLhz|*Nf&D!>Twp#;KhS(Q>05?%CY56Rdq~On6BptQGKu41S=I70U^Wqgs zk41!t5mR_jL@E=@WusvQhDwxaps{IEowMnaMx87BK0sYYZI+)&9V##4u!qwH?{XLW zWhXV9q7HMl!;z0s`#d45Sq?5%ThTL{$2q@exn+@(97EYeviDZs-HWpo2e;@~2U;A*-pWvD#s0 zL}M8M{2|Icf-4j!{aWU=h%+bn2nr+2cJBQ}}OY0{~n zNO~*EiR0LtUXxZEzF8`n6H>9^D)j0TWf06Ex|2!dDFX4V7e(XgnyffZr?BexD1Qv+qtsy%Tg|q` z5We*JZg1vuhi}Uw0q1OQl1|F4y4V7YKeE51jU{J{bA%R!r^4F6?bDs8;VJP>% z=I44-?t>`A#^ik07+lJy{+@MTP1K9`XBy(zHSAI$7}qBph{Jan+zKfBB4(a$6*s>`_%l{(Je=^kR<_3g<@IxH2r4TEO zHkKgi8^|*g1l9-&@!saj7_S}Ftu9>N!*bKJ`ij=t8x@5?|J_+AYwp9W%Qtrp6=gFn zHOO8NK!D2W5;RS}(CQyCO?NJ$ow8zdEZVpU4pHiD_RN|gsuwPR&MJ*&_L+o030WWNcwsHymMWzi`9w0Y4 zjY)3{$?*;DBS&BzzHB1KL7NgFee(a#q5mt*XJ(i8NPUsMy}m@42>jsG%j3fdom0tPelnRH+TWq&zC_25>+6_UEP!JHzfWnq-B4(X_? zu_gc*PA?&g!(sAy(#6{6^Zf-x7mm(x|C%_2n)0;7Sod_grf_~t5-_660ur$!yTQl1 zGYjQOmwY~*0xLRq7g*884Jq6$zg%*0xzNPA7Pay4v%L1X^WD#n1#9rE6C-dP#-$l2 zjMxqX>((z8-o+&l7I*7)-cziTKzjp9F&X7ZI6Kpl58lFvl=_S3X(Qq6>5u(Qnqr3`(qN| zX&^6tj7G<~q9F9RQZHh$WlvPG1UE(m@fsfJx4yhg`s3Xq*N=5}7jo6Ig0k_rDYq;G zVuXx*o7cGdf!2cCwD#W4GJmYpUL_EbL|EzkeqHT^tKLw;@^2R4_}h7YCa#n8E;8SO zPxQc80MJ;orZ|daMikna6N?{6DoBqVie{UR!dPu7=zY7P0x_lp2U$hh;FY)3u#o{f z=pD$Zxi0uk5LdwO^M&f!kv375N~y&T!9O7imyRbhq_pWBo?)RJ4q!(J81$1T1ueTG zP)DcjVlWRG#IWl^h@?0+&$(A5QB@@Fh)MKMcqJre6?0xAox%&-jlG3lGwITQ^}B`} zVo=mY+{+nuB9zS48n6^Ix##lY^%V&4M_3z4mC~p5SYULQ0=eoDv)f_4*@LqC4c)Ya zGPFAVHe-gyd-;!ovkthm2<@w)>ivHeoDwG1|0+1;|Jj&dD~@XPt_L9C_wVK%4{Wa_ zOoxJ5NMVEB)WaDp*KCOYtE7VRzd^jNX|s9of@R9lxgz*hWxK!IJ&+gS$8SO7Bmf+6 z7x5}wRrISUtRrY5F{~Qwg>A4<6_Aw9&@n2g2?XhgZWbrvSkA23matrirJd~Tx0g$= zT6rvSU|w2!dj#CaN3&1217X195jU<>nGXlEv3*0BDedK#;4Vd8mr6}Fb?T-w z7tYi-fm2(;^QW(EMZFs;=LmOIs%}{dx}f5b3ExMBq0UGUsd~4bwI$t+*i{3LSLSEC zEju1f)v6YYL$kCMgQYGGo_9!Ot29?2-no8tAe|}V!wgmR$A45_;n+WKvA&EL`Srs3 z+h6)GdJ?g$jrD&iCRxeX9JbuA|w+*$ena*H7Hso~|CcK3?v6%(Zds>lO=TGJ5M8`$_T0$^@5b zO{=ix;K**Un4kH5+V!k?5fiISC1;55tC}Lw(?Zw(QSLh|jNI6M+0yeXOrrk3?D=2w zA_Xfc;4j^G)&?bysm=3=P(+dA<2oc^ERte9HJz9G6+^P4?DY$cj|Sd*kQarS3So38 z8fq@4DW<9O@phl~P9S#v$==`~85m9UMzCEcow)A%AVt(nS4LP0RPkA<7(hBcC}WU* zCDH5bL!tSakf?_4jyi>o)WyqbBEHeSncqP=LH&hnp_UaF>M0M=#QJ>0nyR80&=SSF z3K#WzD7&2BC-oH%C4pUW(FW}^lEo18fH|;^*mtiBF@cCltr!-i;^od6#9>w9$ zX``eWx|Y%`0;hd8T{ejXMsy76`yz~5!w-Vfq^p)nzh}L>;!7Ujdj86q;Y^%#ulUhT6vYSB&GMkLrVty4X0IGx@|K7hMUBV{78 z?B4eO8US_^qa#G)~rgv{*Rz3FxjhL z4U@*pw6xp#5o4}n1E8eZ?Ex;@+&viZi`t%H)u5A^@{tkMgkZGd0ceqG^#p-?M%tz1 zI!QxD>{aIB%0YXytn&8q&Ux~73SeQ!e7_B7nH$CLPy$}z5Y7szhPEGV=LW3SQN`b{ zB%ool>Lr1*5{%6!mF@;BR6)Tx1`V8l=009W^oUPxy%5;yY%D7l(VKiPus0ENyKlB1 zweG-CH7ZyHA#}9Mu)!fw5A;wd=1N-6645Go7vPLRrju^?a~B3K`oq zj=a_c6@KE5a6n|2s{}E4bFe7sGW#PXo({IlVdgw6YO5};WL)AEBD?v`-~FKLcVs{R#qIlpb~uD*#>6O_vW>DxrN)XcVHH1+IN5y5Q_>Fa5-Yn+!1 z@kzt@UzKd7n7ZRQqR%@yd`u$(9uwE5C?@AEVR;0P=AA$(_P`9R+27BE3QZ!DCT3gv zX`w5;qyAt>%yOR0M7qlCQkQyd%_i<{(0J;;{#kt=lox=XYusA%csH(um#qrhd1uUj zxJ?dn)`Yjh^!ws-zy8|-=)a>w+n3BB+Sd~3zeLvm#R~X8(Zk-z&gm<6I?(;2 zwWIjYPydYkNvaxZC?=TR!JwqDAmY8G);(ZCz@p`qP88utl<5AXp(KqB3G}f&df+Cc zxz1aUs~3Yh(>PxnPt0rn)DO+U(7jl^z_`D7GbMl_>vyEuxOKVs)r*FsVAa~YN&kjledj9F?bJRZv>Rt!2pi)@U@LQwcANZ^V=V1n1La?@nXSvCPFYTc|2JFhc0* ziLzFvQl^oHL_}8@Vd7 zp%+MTDB`IwOR+LbL}A}f;DYIMuA)pvx7erzrj$C@c@*TWQHdCIsL*eQ^i8ENCkC1s5L@;$Uf0!!7hioX_~6(8vqDYZhn z!dqqxOVDn3yuXLwm4XGlOr=||+b)wNO!^pR2Y%SBRbhGDgjNk!IMf*&_}jC8#rsEd zoLhfM(1(rTIIE2CiAnI1S++$S6Q-T31qlE-+oiDo8d^)rUe#xzm6 zLw{>(Dbz1Hg@%5m@sxY#g;*mEi`uQg!1jC`!yPRrvC{A3hHzd{JV7j6mM30DanY)d zV+Mb?EL&0Iq~_G3frc-X!7F`e1=ycCk34n7TKor+-9G+7uM6~c`ZEc@U*yY zzQNa%5Z7<|<=m151V6F4Oz-FTbbLQxx$Gjz1;k*d_Q1M-;x$dwE<_lX0Fjx}v?lKD z^UowDG=lunf}l;v20v6~-_;IjvQ)1b;V~7gwyIgvqr%$P4lrVR184eWCPEV{YJA9U zX2e~&WBa7Wj5@8(ue51wIGBFkm(@rprcrJYYH$^CcE)FzA9wiGYJqs-ko)HO`x}8( z`VqG@%|+ml>4=;N^p}jF;96!^#|$r??4(;r0z$179v)doq)Xc);Tss}t&%0%zV-R{ zM|o!vkL-L)u9Ib%Mu7u(eY&XElH=ErYM@>AP`}f57 zJ4~VtyIBwXy~ZSEiX@8mc8a7(`@FWaB56rE*Wv3N6$o zcCK@OdgW2x1%CMXjwO?j{kr+u=!vrdIx`^M6cvP&ABFq}b|a=vxzd58=H(tXhph|M(Fb9N2HF==M!W-xIJ} zM4e1y-9*Zp{v_pjqk@7|02Raggc8{$!o&0qSvU|Yb2#~)%5;?7c6T?`r1b4hJ&G{c z5>;V;KR!m6796e^b}MPD-4WwQGe%E7|JJ7HLfO(qEB~9wO}D#Mn#$N$GH9hl+;FC> zI$-10{Jx@6V~nbfvbt6epB9rNVe^{3rXXVa?&Thl~MDkN>_D*$ZVTujP@ZQey$En)v0 z@!l8b2%eJSAd@@B?DfKXpLT-XrDSP)Yq&j+kA_fRWbl)~L#VX};=j^^j&!nEk_DTy zryRj2O1!Bl$_2eWxg@9^66W-go2EksMbsw3cv{Drzne7it!im9EJwo^%z=n#iqJ9?!GtNywc`n?12-I<0~(h;!ZzLaXuR-o017$oXFfM{ zB_^y;I#9Jg&sUg^#>d^JJd7vbp1-gf2lK zbHTO&8bhHb1KDSexSd*fWVlCaio+$2d!Nbh66*4h))(zDN%U zSUD`s857vp9VRDJ#$vP)IyIRMc(FwAa(Z??(ay?KTGxi8QxFb7(J|}5h3 zJ)SwMv@d5GnnH7eoAT}r;CJ)`ROrWXaRgIEB`>9w6&2f>{An@1RNbmfH8rmDkZG>- z*W}g7KaW{4NpGA03H+R4?iJ41Kg3*qwa9R!9rlp1>HL@{#b~tW80jh9kdZa7`~%U- zG-U34pB8!s=Po>ycMy!YXds6^TAp|n-wDW(+`w<jhdZyI)v6V<#&nCs$cfk4&MV8IZ&BKlb*+ zW=FYPA=E&if2%<2yZXA^;1?~#v^57m#>mUxc<}?o8~46;{$60^cj>+PW&fIv7scx6 z@1~7<&CZ{24eDfkaUtr;b0D##?(FWi?#`9YOVRaZ4)S$I4CDp2i+1hAee$$zRL&5K)uI z-l&7pNxJ^np$O1gVclY$2p*yb*t)53nQ|uox+&gE)q;7jhgCc%GV&lbNo~PZox>~N ztaqBS$E!pWqo_5C&{xH}EiI?gsaAJSA&hrFCs*~j6R;O<^#zgB;CtY?A5`dcE z2S&Y-gd%kg_#kfCyMXpv)fH<_9(wduz_5`}i8PJCCFH`KVqlKr9osme38^c_@ppv- z!Im`#6o#AR&If&(jnF$~QRyFJY_Mp$lmRqv_mea3g;xv*tT;VJ(l4=Ila*v-6GGZp zu(8~ylys61r2CX=Bhk>x)#GZ4cR3cnP!^h7yRNv-t1MPm#6j&PL4h zSgLNPw9K~tmP`B7ni>2gjPS_@4(ErKSK0PBEiya^Ils=-pD!f7h)`jL!gYc230HcK zXlx_!b7jJ3^ie!%C^ga#ka^?hNWD34-AH^ig3hVukh_>7Y=gtVBdXYygFrsc5v%k* z&KcNYtcB~j6Jjq-g3MJWyhM(X;(mj+512FOdU*u1YQsgs+%IsF6x7bqGb+>~fLik# zR5saZuW)=x?t9I9qzd(KwvYE z=5pTs$BhY6RTzuX?Zcw^8 zSAj;Gj|u`0e6y3jl{XV?11*last*zc=XMc^8e0sD5d}X_5`GRR5UK_AxBR4k(&ms~ zHw4hne@5B#XCx}F#!9Bkgo`nKo6rv4Rc)19XoyzU=kn+xyNBPxi9d2DySUk*U7B5O zsWXKq{&QQAa4KM*ie&#I2?=ncmp>2^xr#?(15UZ1zh&1xk%+w7X#NpB%MSB?a*XP2 zS1iUAXf-#Nrf({y)W0e~M#=J<&SQO8nMAnh!g9CX2rWqywo)pQQ5mAQ9l0PoS&VhG z2ARbKsF<;Y^td?fGHhu!im@%IF^fhxbcm4hT4=rZf-xUarr)Sukh@1I{l>nWq&Tfn zmguLU%ku4A9E`OvTY_jNR7H+MJVxCNonn3$ zcN;fX|tdJH-hh(-3F${6Q6OQ`&OL#AX2EO^ds)RpdMB(#(i>RtWW|UiR z&>T9hd)9sI{xTEWPMZJ#B;p>>n8J~<6)v}(mFs#QZ(cPHj$X3zf*Qw1cv~Bo0or%Y zvTr+;1*g1ANA5Y4G=)+he@DkrXs4Nk8`kMR*82KyLhFAu-f+v?1Yy6NOZ>~Z{%@#9 z>Hn(^RNDGNJ%}F=A0DQRD$G;|7o?D(R?;m?(Y~NyP_qqp@qmVDn9png_BATyqeIZu4 zsq+DaSj1-6y`8wB(Qu%m8A)wT_qtJwC*mnq;bBY-6 zt8bN!T@3kl&5A+$=1N68mK3tX^yEf}lkDo-*@w+OZ^?X6CTz}MM%+(pF;=jpD}9fgi!Za&ct;SCC7V>1<4#GpbFx3e zlbId(!HofbsNLMWqmPFJyS79M?@F9Ny`Nq-BTK%qYCkhb1b($uWUQW5gdoutu-j!w>FcuZus^m5mb%0l zaL_On`zl;h22Q6~ADEH2g4>{n#nLTI1v(^MFX@YZirUu2i0vw@7iCY( zsv)zDHc>mg)G<{v8HdoBf1SR&4t5AQB5&kPFD@g@BTO;t!}hDh#BNZyOBD?p-srW$ zp0FLdxB3A6JJ2{)6uhbY3Rh5HW4r$eX#68WIne!+vL|3|_>a4BivKwMZ_(_eC>iKp ze%K(Lw{lg1rc146=VK&gRISilGR!q~&0yH^di=>Ch->*>gsE2GGy;)CrQK>5UqxiY-+z(I#^cot^ay;xFr)jvh zfS=O>sqE|Wd!+CGF$A_0V-&C5!pU^)XWrG zKg8U6eJV`^TxbZvpuoTqN&z4!Wjo!Ijrw9tFbEE)QyV+M-M`esLsJSN;I*KW&ufR6 z4ER?5F@47_;TX<4{T@>mrGjG-s7M}#?5&nA5BBo#7RZkgc;cMfCw^Q)^`?#<%kl#? zL$bU?WO$*eHPDmmSgO}j%*+joZ$rX?=+e`8G%I(g*1yk<=f~Yl05sHPntbOu!Psjz z{aLmJjm#Q`9=Ti70@Qf7N8~f6+=)0gjptN<80kIZRNN)O#@(dKsP#uASADIlr_%Y- z(4-kIDTzj(cJC&^IOq{)sEk~8Y2ot0mLXTnu1K>jy^%q{^qX91pk(~vvmiqIoSq!7 z*jr%W;IbN-tAV@xUQVK1CukXY?y%|IXfLP>RcQ=X3RXr~7*MC9VIbXNujqkyrj35>e5l~k!WmP4db_CZbW2|Q&axs2z345HVr zMwczWYSD7o|D;s@Yf$mOJkx*9D~eRL)lk$>H&DRAdm)i#Fv~>}DM@2Pf2bCz3l}W= zs>+u?SO|h+MxtP zdra|o^S1js9v! z6Ht)8SeI>@7!3)o3jc0xn9@8xkgO2mJ;$6g*DXhOAX)1 z%4Tu&&?+pK-sIp)J)6i~cm7=@q#fZMqpT8lA61|!QAPX_N?Jtl_BV^$X}$Ao>1%kH z*Mc3l=4Nxex#P}o2dg!~4(X$nT%Cu#CR>sesU)D#=%zq*jh{9_{OV7(I+;%Uv z57#bl8?S1T#zyc}Heab$Qnl})P(FA(cxKBgDK&Pf58qV9 z&Z!-G4Y=HvN(37vQ7#QzKZh$@4zr7tuJ>^MB-|IXKDes1Tp8X|kTj z26t}8_j0ILgxUEm7rY?a9xgUIQML-X1`S)>XNtdCREG`!r)#CwcIj4p1pKz$u()P- zV#Q1>oKcm|NaDt5mt9o4Jpvy^Y`TDOrhDvr2tgWqI4{c8PHLFKjgxF}Ipz%g3#*7> zuSie#@387^Eb{d0TK!#y>>BS);efESr_k@%!{uSWT#a|RX(2PKS!b@@4Ejk~1k{FM_b4#d%At%qwaK4(iv=Pf|JgidLHhP}Km zs8|@y(EtX_UQ4TgCcb(yX%{)#aFl*{J4!S!aLgc9u4=AW61~H9$p{r)lCvZPJG?jO zahKfjFQ(uB{D2aEuFkt_^5yBX`P4HfyjSE?ED9;4NgSWtwzR!qe<{t$eL&%1cDRhP z5sW~nAVMY35>t93x%UW@VXiJ9!Jk{wtFTi-*~LZ34cha@kIah#Ky2=~#$wQm4hS$avPG5_)FJ!9H-bx&Sz=G~Z4a`X%87ABa#0$5 zSpuCXv5i8EgJA!S)(y4$)s?pQnR-)A?=dm=thJrr+*pq4$}<^w^V4`3c}n_?1Is&l z8hl)O7tGl#72DMh9*$3+E=U%xi;xkIV7>oxVacZ|pAJRNQg;fxRVV*FyD_YzI?+f| zTPc!c#3Ch~3{#iFK?3ZZ7zpaiUN$S3xR0{`?{6?Pd5O9uJl#=2AmH7)onzlxbnMN*k8~ zbsKj$Ii}Uo%P{d&m8`)&Vvdp7It%)%DtsHzJ#O0#%K*B3z{QMZTR-5h9vBqs`Q2Y% z{H{IoOdPR!<{l;=XW7T4QY%)k!5y#7Rlj_@xouq!Z8*(Zk|7E;Bp?r z_gTqvh6l4Joxc|)@6%b*#$V-b+E)l?{NGdZUqlrf2Qx>b|ENb2|G~W+`mC$eZnZuM z7w*R?L0h%DXr!bRq%Y>5RcELjeXX|~WnSAbrt3#IhzQf&4Y*lBFygMWl%9+53rXYf zpzY!?nH>N4xZ5N1YCOaQKZ6YD9+YSltH+KT;+ub$JzK9=Yl&+UEfaY0^dTn?~*S) z#)#RS%SO_;bN#(WLa9U8IfxUj*jZx4OWzumtS(DK^lRlW7Haim4fmV~r+nLDL?tiZ zPIBKy_MgtVrna5MLefL8s*y4>%UMA#qqY2_Tl#nkHe-eYd3L*&^`pEao2hZ@kQ%^R z#9LJd-Tnw|G@hc$Z3&%+^%7yjnukfq&}LltFV1W|Au;$n&MLvBxFH8Tx@*OO;^++5 zff{B5O|zfHT&`(988G(-6dUKtjOgj$i`$3^kc7-6Urn?Zl@%uMc(~RZ0;=eOXZ`dV z)YArvxgpdi=J0gq)^Z05Q^@mt(vPCvd525_xJRg9|U#aM+{>aw~-$;5mz(K+!;+_ znEW}e!Sg7?uGkv1R=d%S7mvCJS9?Wz-UP*ElI%mMlxGL-gxk&qJoyfCWQ#ym%Olo^ z7B0T$jr;r!VXwhgtiHH5*lGQ{1kqIsJGu|h-@SGLEyqUl%VYK7{%4T(Uq#1%cj}5e+xm~_= z-qQ}}##1*>D^nj}Q#Wd%R~<}H31FdQN9*gan=Wpfe#Gy@nLAx`>i_L3H8F5XvbVpY;HEzJRjkY+*9bTpuDjtRiEMy1j~_`v9gw9 z^9+;*Uxy{>iT8<9VP!1pz~<&HL-M?gl{OTWz|`0jnOgT`8JVX}&WcabEu#n(?08rV zR?bQ%{7c&?G>^sI%1G(r4Gn1u4#g=?C9uj`veO-`Hne_?4N_zk(lR;@lvRgdVD*|= zBn7S+J1UK#+EbfPOnEE?+4&e;UqIUL8H45p!W7 zAd*M})&;Snj~p!PV4zXcnX4-+*CchJA(|wnLNqsb4#>0F`c5Bs4-`DfKVJ-$a0+;< z8o5upXfW1+VEhpJBZ2sU&EjC|dSK!5JAF8ts3+f55xC>y zjGDBp9i%VXsLjchLCjKQ39puK9YH5penJC`t2|BzS6l=l+Flv@CGJ=L^4(*&RrwmX z4s>>p0@&1UU?2kO^7pAw_3mVU1iO$tlN?`iOi``gM*o=WTERLe=^nDLF$|bz@isDV z%5{)G-A$5zwVg%}8*Y#Idx60=GYDp)nYTDj*`6u<mr(pneMKX3jV;z&A~`%?6%haKDS4>xUR9dbydr6I#D}v!CeeK!(L|o`UGwxx9X~T z2139XKcRD5SVA*cAa-EGet_$%{dofNhd4P~!=#TAv%Kz&gcB9IG^*sey>rT6Y+qr+eBz4!QcH}^%n!Gt$NPkn=jit{fu3Jv8_gatP%S=~*Ncei~aObvNPH);o8Mt<$aZOnUKI03 z%rv7?RFMmU)Q{(HqafT3b+0bFN8y;6!YF3A#G@2|h*a>f7yoWll0p$_1KwiNU5Ow_o+J_XQ!*4<61xllq2>vp2G!1XD#MW~cu3HhSMl8x*K1Bwe;g&QPV4*{+Xy{Z{DRH!vh>6TF!1`!aUZJuCs z&&NKubBsGh1w66QJ7tdCUI;W_1AhS~ZD;!P^N)t3GduD6>>^-1viqYF#3`k4(qm?c zn{?$WibC2%7(fKhHK_ZgdN-^MN?VJbk8uYGCvVw5 z3Ko$Qp}2K6wWgJREUfiiF=)(9_NdfA4Krh`SwX5WH6$M?y(7NA)B$Xo$uFCc>-4>I zS-|TlCAT3tA|!`?Mg;r7RM0qDD=L>=%z&LcNrkifS5h5PCd0*4ta&`S!{!z=)JIEgOz8)j_lN$ zeU;PCr)Q@pslwH8e1sB&rW0|MlT2{4HvUnIHg)mf90j{L=DRI9VX?N^H|V8vUAzH6M68_9CaBn_O@P1~kpB;-tfTK!f0?3grzeazN7?)OuYeN60TNS`6)$%6NC)a^-*H2mum7<< z{U4}nPqssz!FL-v@V|ld|9PQ{+n76<>sy(7=sSJqKm1qK{Ig6H|7ikB)^0=AlqBDQ zu@!4yq;YfikBJF`D3}cSsD&ooHxM82j^9)p}z-Hf<;?(m2SAEa4ziJ68bXdAb>g zvBo;6)MFESVX?g6Kz0@o+Q#| z$-S}bv%bzQ*UQA!e<(jTMk82;(?QUsCHT5${%)dMf}J@gX9h}r zmZA6+@HVC7gjd>nD3Y_br7ty*^+1^GwRNj>@m4UuPC#p(gzF}h7KyVNbOJ@0dBn~0 zI(`}T=$b{c`RMg>xKa|8I24R-GWG?U78~cYPNbGw+jzui5Af6!a>fbvPoqtsG@UMV z7;^tKXPd-Rp}rNe7<4ogQJzm#mog*{$GT&=GQIr)*H|oO$`4jW+6!KBlSv+W8n=QUVQXr^(EJE!V@_K&U!+u=G2JP0{SyvZv?;; z=&vIBoYxChFhUY)G#zscRtcej-3)c4(v4>?Ko*MlK|3RXFqT5}NM!<%=+RCe?0%ns zRaU%88=qO&cuWp`rrj&b4d`oI6Y16%s`L@A3ttFbRbnvbi0KENg@G~#4`dMXj5Kq) zhw^R%x2i8cDe}SVOn!&8tX>P;yf83Ga9<0-VLuQ;)5C;I7|xw1f6{(*@*d7#-%o9|)1L-UcineQzj19J`c!BG9_H`pC0`<2D^o-d)ou&ibgYXmmf|hSc#$)y+QF}j;Id2b;jNf z(L=kS>mr}F9sOwTf0jYtPP~5ty?GOO_cN1^J;WNms~a_^JXfv5oy{p0 z<(mFm2VjZRWl)_knrdbowdXv)ud^Q0v6JFGRtI=kRz-s!N1Rd-6{B%K)v+hnMq%YE z5m9>tF`6WmV53-t2?bSYtjz|DG~zUx|E1p=J`Z>`VG0P^bO+4w*l;cx*_cn=6$uvy zowTGgFftaIj<@nbzl5{=y>8XzBBAn~&CI4}eC)so$e*N5?`j1+o;e_RNM?HP{Z45y zChn;l%BZmAAg7$+t2t`fa7DW=_L^^2EL^`7_V8mk^B}EkNF9GRO)Pz&-%`!a?&8?v zG&Kg9Y~a#mAIFN+5?3GZy5v~sYAo@d!@ffe62I@%l9K^!URL!`g(B3}laZX#w9aW~ zciiuJK!NO)8zoj3driBb{z9pnSjY?dNqNOZnW-O(>L8Rw;;CBdl+bNBVS;asFmJB~ zQF?CnYkd{3gXxQl(yP>L&9ANDud3V_{Ali+N}$cOx4)KQQ4MYxZS+%~s4zLh;Za8d zvxQ`)^WwsB&Tn+|A)-IJEaoHk6XgcUe)-Qie*5TiGhe~2J9K7Vp6WJa((E9( zy;Q-1sa|~&?F{fNN#ejG6U%qVuO;Q+3b8O;k>Vi5#;H98QUA4Xe~Hcww|`iy5hK!) z!on{YE&7j8qth^xt@TCw8ro%d60uuL_LP1hN? z5qB6ItmgDZ~x6=(ica^3cp?pJzvc?&xlNSZffe29S zXR|2R<;_xm_}fV~+&Qhwz358}rOf{@P~X7Q@{qtbrj3s$2}b_}fR@@J^hox={AahvWIu6DrJJ&WL zKSfa5cFsIpq{jYum#Pg4WG5nNTxh8}dft8DJc?KJ^0T zc*-c+h>mfdZ7*mFtd@EA&O7;bxP0sr#oZ?1s9~DB;|sp@doJ#Ki~Q zMgLn$(Mv9@tmg)7_xn>qaasOAX%W}J&vrl^fAru2fM+6eDP|&#fN=0nWc;tn zeq4|NW%UL_<#G-x{zwt!^i6+07wd?cDQ8xBbcjT1h}H`Q&*3MVienMB1i2}e$i>^i z7GmDud*k3RJ?sdoVzsQqAu@~8Us=b4o_`M%J3Y8QRp84q#v#^hhgh9^2XDJy@wy^u ziV6>Nwn~k(F~0J=+UX_9XfON$lXz1U#;_v0#;*WJrx#6c6rDV#hXiE^ew?sz<&Q6Y zR|U&ub(Y&P6{1tnX6K7@osQM=#~J_|>~V4<2&l5muk%#f=hS=KP0C8*GH9+fT$f~P zyyWPc6}8DDZo9X$oZWD~Fu1*n>f(*o(T}>vxQrJpzevg4;yRhl>LJv}7%{wIiDRv) zMm4ep3c!jEd-w?u8%{XcdONcvYQAQ^@IBN%fMtsDyx98d8q1+Z=zM?a)oL3}FTG=D zw(oXwXpS4)Z~v)nV#zh_S0ho?oYM70r~EY-zh)C*`6p$DW~bp1`dkO`4OG!31A;di z>V3LSbv-(I&rr%Jn8nZ3PJT?gUG2i>il?eg*M;OL<(b7AoczpI1&Lo8YLHpBYG-Os zdj{To4t2ri*7sk5AB)!0m9lS`66AZP_z&}htd-F}tfl`$`SHIP)QDcl@6@TFuaobn z&8wruKdRK8;PN+kAb-KmRE|W9(^#)MDvM$JT zy!>0k;iKQS$@<+OqkXT!l>6Ufwf_$<|34q`8|mBqL&5s5L3EWW){X#WWFMMbDy!s} zBBlr8A*J{PK17MiR0~T>DSwi=0uuAazlAn>evwY68`>4VgGfttzjXtx(An0CM;6BlYoLX$<7b{#c&%+#_GyQ7?|6)oX; zl;LPZJ_}Tl>2k(|%qBbdHp;KfdI&dNJ#uzX+s{xwyGE4;Py_e%+NLwwN9tD7E7fnq zfi7jrB56^B`<4c@2g*81%0?CH6VW%F>T2bpaqrlwS3F{84)Iip-*`)3e=;~p3|&nKF^n#TTbL<$*AS!MDkBQK zrI+E3rWYxlW0E234c0a$U9GKLb$em1Ud}IvzYg7oMmYNt;A31HdZ}wOHuvmB`-8JtTH;g_|LTc1x1=!+YDL)?;imOJLBS%s^&@g z>c6u*&VKnRy{bmMOV$6Vnq><^0Fc5H=>)LFTNKT>LCyd6XqRb!sP=Qcv5|Dlbc+Zp z^63?$@D9)eIbN%4Tk8P-1G*k3ugegIF+nlfsz@xj8D|@R@bE*tZHIc4VGyOjbPvu< zHu0bjp-LY}x{$1ei6#bhJ(~mt(LNuiO~|q@n1M2@0z*FJ7Hlx0Y9tBKh}#$3 zQf~2qGXz^=PMK;R$#D1ICwT_q{#EC1Xnx{b55V~U_mKMU!6;MJQW41% z*=GyBZnTcVLEc8Vv>_5AZ7;CNKpAo|4@gsHGk-rjj3CF34>Z&a(#v?(aJY!dJWj$ zqFKgxyZb#in%cQt$F2w)C7Dqbea}#&y*G*?PR4L6=V=PuNbGzcqY)feDcWlVV^eXZ zJVHNak@4aIxV8Iu75-$DM^RNF#a{%wM%aSqh;^%CXZ97R^T-(SeRaS8>4O1K1TDgu5)ixCVoDVO`a!v3YH~nf|6pp5ws8OV%T`g`76- z*wJQ!^IQ_mwz`Mjqa?D`E;FHunHr@nzyX}=0Hz}(`M^cah83n^AMD8Ua)@yzG9TP# zw<(Ad9CqJ3a6X;m`0{*`;&!jfZ=Wr97X;+n#|VPEpA{qv?G-i+y)k?Y-qn)~-qi;J zqPve7*aQ=AyW?!v)>xJ82(rD$nft7xzg=Wt;4SfLd@F9?xO#eU>u#b}i!!kx=fkAD z(vX}wYYc88tTZH-m?}dX9n^F;YtH@pLU)4u)}}n24C^!QL8_hGMP~vPStqcisS&8~05hy*#QiI5^V$mM@u;w4}Y_IOwI zMnNj~2WOyVO`eV)3;TEXTJT4Jw4L>hE&m;ZYNpmtyPjgMk#@PP0-=k)D_jD#&(kwm z&l-IVi4lCb{%%MJ7Buyzl2#nB^zdEOY-H_WDX7i^buZ+7{r4fzP6KE;)43FnNDWcC zdZ0B@3W9DsOuXdNIRJ4c{T|Xa?cZty7DJS7iJc62Ve-H>a12YUm{jdn2F-zc% z`10$aI@{|eq?@4+w$NEele@FE^Kh^iV3tCsL6 z>AnyG0Do$uUT3ge=CawDHsDG{zdkq7kxPcut?-rd`Itj<+)>xb&2U2G=LmoX#JheU zCxKuXUH#T?b5Hft;s>d!!xdc#UsmfnpE!nLNgS1kQ0PCP8Po;D-?>N8cgYOfqan5Y z#Dt5vMPeAT0=)m-fvJ1Q1?%hx4sp-0CcJb`xpafHtqNRBu< z=ZXB1`~Xq_sLW{Op9$*Vc9`+zZZ;S029AI+vx1sQ`1>*F`Fuko&`A4S*52ShB*IGI z+!8nEaTmTn;(rxNT!jRU_lv1?GD|Q*1{x|WJ90g|N6sEv$5nOh3;S&P5FUtTVSIL? z76MD3HEOzc@U=w3mg%qdFjk<8?FRXs(?J*9ZuC&-n5i+w3~~s%D0zf#=L&iR-qIVr zrkkb!mbe99=3bpv4l)hN4rqPShVL9Q&B$}9IZNL1s14DVrrC7@dqKIi0J2vEV00Z= z3g*=_FJ}6fjt|G;bBA*X<34}!Sjr2C;r1v> zKT#zFBM@Cgv zLlJ%c4b@c~%6JFCxen{FW?0fKdHpkHC?dD%%xmD2XMo~Ypkhn3dSLOdbYc-KIOKbL zoKo)K;fCSUr_SG+MyJT!RV~l|Ch9h#c?^I4hH4eRSLOT%>Fxh>IsbQK(x_^#iMfp8 z^HU@O9o#BFI)WZ{XkiIBDN?%_pQRG2NiZyNNp6|wiXjAOD9Pl;?11?D{}O-l9)B&M zG@l=AsI3vqEI7?->dx7IE&R&6Vs{lWh%o|n2W0)6%=Dc0p7vbwJf8gOx}*3F@?0GD z(XtXkgayW)m{k?#ae$(=cWkWFIu}sx7O>1ywS%P3Rh9=4UFwFFeUK>2ygUC4{pF?7 zd#rW=@#(HGczg?n;~guit1#b*SN=v33<|L!6@u_M zi(!M^lY>FNkuP(XL}4&j+!NYwt5O}_PQ)*goSS0130;c7BF*ODyh+AIhA6*$!tw2UZ${@`Ec75RFQ+H z|CX6anLBks-6|Vkm_RkBoz5OijVmi)05V40FafvcYPlP9~|opH7L8%ODiV*+P0E;rDu zqD3THCE58tOyO+k$q^Z>>4I4&BzS0&I0ai#&=YuQg534GucC+um!%@#PCSZvh?DJx zniZaW4cBQ9BOLUG4o-B|Tx#|=D}$_^75*)I0B9iB`nR;^)T~sURGpA)`)MLA1R}6_)sNJ#CS51y@3tFc;P|s+ttDuP0wl}Fx zd3-2iH{Z*w;Zc&uWiEPd^K6ys!_!){{JhRnQ6N+mpg}bgT!kL8~&&VBRyUZO``WcPH zEHkJ~?>M$*&vZO_`k=H+j}|q+t5>{c&tyDByWg;{Kd6(qE-oUh6?y{f9OUO<;)zGtB4^~&LKUuT z4bNEM@?Nt1sn(kIVV}G^v4uLf;BaaxXI7?bHRMKc$zM@QO}z8)%68VbpGURiRc;*P zu&U;yy*}tOtn|k#$*U5%3|6n!lrwN+w9v6*>UHKa(}fX~MwwQj!%>aD;J-JDMjngr zmIeA*OqDEd_P;(n++?KU&$}+tb)t{xxBYC9;h|o^jo|Sr7ON^-=pmU~Yb^RPIKV&? zJ=bniNFMxHHMfg9p=?W`UsQbTxYvbV4xofk-KsL|YIWFm$4zl&le%{5N!q#&6fxxBF!u^Dp%ExTuygf-P~fu1 zcD^-UkR5`GNrtx&6a*S`4nPwxz!5!V6~N@%j$vrZN638GZ2=Kvn!oDZ*>r=$6B!Oz zdzwp8_F#NU3W1(C106n1Hs=bD>A?=|j<}I#l5m66L>v&%7MV8^(iCt6qTbpgfhc~p zF<=~Tn9ot}I}a(?`v?VIL$&!bmEXZd$q;y0mwt844d*fYS)2aw2-#&n#~K2j(IZ}G zMXPSlD-sApNQ^0R^J7aCnz&2wSxT3{T%!*m&$`8aQbdtvqu4x$Hoz_pSO&MWZdqRkx$Fp z0-`|cr?cukQ4S@7KqV}=XMcdB(y%_}m`6$ff_K(pg8youZ2X}y5c39kLZi2w7or?ea)mq%EAYrRFlwK(5=6G$mvBO1z9vG6Jx~_Ea)Hm|Ija7X z3@zmtzE-6c!jxXziX-$%or|c>J|_VJgaA1X-Ckw^!GjlPh#fL)0*z)nt6pwkYI6J} zRqEmIaH#bgqD!*pi4gfu@umXfdcK5#kiUze2PK@`Bb|?_%qx7AJGjO0|^h*A) zFW@6ygn#v;5U3=X9fej$uUq`M5A8~SXgNYutp>-(3^ioqHG@j-6sQ(?f*7yWD-?yg zb(aL4%$pUgrUV48e?cmF&ok`BONwBqkK<7%@QM314Z0Rb$}Fic2pT#6g(bBunt#A9VrCpRev%$Rnl$4J z@}|-jK><1?U-0m|T0@dT(;f#c;QX|H@JV@&b_l+ADY4y)Lyl+gmxuIxp08%a(XGE6 zwfr!=@7KRM9)8g+wO@Sq#zfx@#ea~@{;y`@Uz_4erE`UOIrvW*O+aWY>VZmij_`T| z{Me)<5OwoxDkNjb#4}?gsb@mc^iA9D z&5yd#Y29s~A0zsem=r^U^tpQ+5jIA2r3!fEdJ=`f<|y(LB`Jd${-lsu3}!!zGM%)x z%hWauN07CvEiM+Z$5}ht_U)$4KqZT8Tcc{#U6(-YvhdHYH5w0y1e=H_9lWmCi?9!t zBdB%mldbDj))Qc3S#1#~ zgvWQ!|H5%@tTVV;-94ae#+louXAx(Cmv48){Ty_OCmb^De4=&lmf;!@SI4|1iLwPDw(a%;DT+TNRgy#7wLnt|8(QYWHr z{Q>;(LmE8$K+{=*RkI2EBJ0Ms^EhOdxm#365Y7OTSxYW{lsgQRn$nHG{>7d2FOr!X zM6lS_0zLJ9NEP$%blX(uA>tci9eZvayRkq>VE{Yy>mpRl334usq;tz^wZhk-XB=(a z+)P&Tw1-3k>-_s`FwL)7o>`WP8;#L=e{Xd0!u3!M_yLxuS(Cl zbj!*w$*UjYg>=BToZtetEoy?luNvYHz8zblv>&vuBd-xOWKOsXjKg{!1RfDFS=h2d zh}y-!d=sD3okSqu&`*jTgB-{}K+wSp5__lv3Y^m`Y8tL$P-2&~H}WIijG{qnLDfy4 zXGwe#ZVIXuoTeQZ!{9J@IMt%Pw*VaiA`Z?Mqb zzd69B2~5sBzA22FZwll8&0YCVozK60JO9*7sDvx5tH5)k@dls_GU-VPLii;p5Mm(?|&BMm#JY<`++KvuWKY1XhEwQoW90<&Z@Wg2{}fWdIZN}H}DOpwy?OI({2#Vv7s zPVy<&JQ!W`Fub<2gb{ZFt98CyIS%?&m5*Mm5!*Ggv!$%7^d}Bv{%5Xu?ZKKqi}kjh z^(JKgQ-jHbG)^rVP~by*Om!4y&E2c5@cs%b_Ii8{V}$eI*yxSjal3j(I$ss8Yd;s9 zGR)Tu`Q>Sn`keQ0=kI}~_BEls$5i^iPCU;HHKairM+{pn_5rXMs0^DpR>Q30Ci2HG zdsmQqoxAg}+vs)4bjE5IC_5ne7cE0!+8X5Z;`aveDE+#O9eI{vpf&=o^0QH)AW4~&?2r`SV-KVA{NdHkR&@)~*4@DFpB!p|C^zW0Uyi8LsecFG-xc9s@|vH!D>_!B z|6Fxsa+bNjy7k29&HqD~f09kl>^a4B85bW)5fg>m9wj>kJvJf5%PQTi_b<0!m1?cY}FBP_#@%a&tUcl{4O;7;GB^*(}r!bl2 ze`zX9XXig+87E{Ho>j*ty-T6*E7tCm6N%vk8nRiz_m%PpS?OmK=Yp{&YMu$jUEXKQ z^6>VvQeLBY5lLwA0&`$t19LzY{}vq_>dXrp;&rT2?tA2d57A0EAr8@sJBfsFKoU9* z`Xvj)m%b|{+$`9LpY`t-{)A#Y??vChaVC~)iQ*L6?ME9;&!^w;7*6x0hEFyqLeUdX7}E3vu# z8;S;du@K7-^i!fQnAFOKSXm|zN%)D6rUjbWC(78d`rnF~J(i#yKCm~-2T4AjFEw!c z3j$g60^!baUMnIDsC}Tz9TMBjwVK0CcG8zr89V>RL*IB{jc|P5|8L*gFZ%zCkBQqj zIoLYd8UJ4)65kw$>Nk|I`3IB`#xR1v4;4MaGVYhSP}4peISG?bY~1e*r3IHgmQlPR zI-!Z3*^%gubGB=qxuei{9u*bME;jWm4eEtU4V{+*xR1E*nC=)}IoIvfSutS0c$%c6 zE%v7j$EVff4aeZG_a|Lepo@N7fTRL-_&$haX22{cBxRHh*-_N9kvtg!m*8py2Ls?`cy$c`impmLR0dls&`ajy|gmlBy}#qh!|&FBeM_jW`e(+IVt8mCVq=rr%v^|QFXg)X^SCS!zG89vvSQ<`q zHtA2{lt~7W?z0z8?x#sp-jVa5NL2kz1s}GTEVM=GfV_}m;b@ouiuNsVcy}*wxg~_b z`zGq_H~O1Npl|A>_Db8+?>))bCu>9V<1_*jB)&kTefKqgiSw+p0cZZY&!-7v1AkdM zG$#yX+L>agdcvPlj>@;C9M@ls5QIA4?6^}x1{Z* zcH_@*4U+qV0l?cW>iT%3P!LDgsG^#Ip?83QaCF`Vmz%8NWZ0XHFY9Xfm+#M6e|@f= z?w|Pk_*L&Q^}iZ%i{A0lT9*mggnacKUYS%ywVG&uPJG`ZdMy6O^kKNM{Jr+Pja=hE z8Xg*OKQ)3&4{v<}>hjr!ibw9~dB-nLWg6luHDmh6e+5^yw)qF5vbsJk9JFxr&0UEM z*>cZHf3&$TJ*`MbudB@1qiC|7A6S(Rxt0vMwhg(u?r7d<>+){Wh$gjC)-jLac~JzlHAepe+Mc{e|z% z&j?Jd<>nV*09t~s_v#r;DIE;~h?QN)wv>>1KXw=3#+KJkK(?t>Xj88EpiJgkdTrY? zQsej{SLe>^sNS(})VlhvdAD6SyhwxuzDu{H)wio#>jgH})~$s$Cnq+BC&m)oAuJ7& z9S?^n4kQ!!Zwe*nSA|$mg;+q7zLyN$u$dB6%PPrGeNM>hU6*I9IN6+_HW>%0#IOyD zy4t)vHZvEOMsN5fqU}yWo)<>y7)}`YdtDgeP^tx(fbnN<3ldDskoojs4|d0rl0ktn zUz@{#YP|4S{w~KkSM>TsCiPx2B|~_Ls-^K%yVuP%jWe!S?2Fyh1;z52F= z|3Pl>kAdR9IjVo1#uF8+Es^QredcW1uiBRCX}cCJDvPhQXFL7Xdgo||A;wDeq8}Y; zU|iXoLXGP8rWNFndH=BtXpe|mSp(h%zkZbQo{KSlqI#Rx2Y5w*l0Tpk*|8p<@Q?mhr1Ihg9oHEqCk08PN|oH2c)7d!iiV|mxd9&KlSW%DyBAu_vCxJ*a@+XK zXt6=lBSu~odjfRwo5VQl-&wgeAl#$?s>jHkL!RcbY}uZX6%JTLTAMN4qIok&p&k%w4%eB`$LhxQ@gM8W3Dq9+QRIk@mCcIC$+6hL$=)e=oL7X zQTxo~H7Oe@+Y)-0I~}uX&K)mO*C1a6UZzy0P+wLYPYgUX5{eW&oGv0}C+u+H7zSEm z@O%5A*%dq*N@;%Q+BcB|HGaAD);uITcyL3fD-xNg;Vt_)?E7)V6%`f8e~wM}T3uO> z1;(Jj=okNS1}w09oVwSD^t(#la|%-OOPmO=ap%^H&OIKf);zLKc)`+Rs2jw3he;aM z*T~lXro5@I4nivFyWligEmrhn60=p@GyMu7A|)7aAP`U)(SgaZY{B_t zwPSo%v4@Jx5#%QD^8GjE9F0he)WY|E$Aa(Bxc?9B+W)MQ|5K|Eq4urS_xYKWX^epa zkJ1RK5-+RINf^ETh4&kL@LUv0XGau8r({o%E@6ZQ%AEl0+xZixWYc5)Kcafn(q{$Vkn6b{g61TelT)Cq+8nUAn z)V43(m`yjLd8e|@BOTh7wwLop2IX4e)&`fR#4Q^4dhqStjrZ!-5Q7KrorkPH*r-J{ zD4gO-@m8M~xaFWfWFp^z=V;hiEB5lkr(#GM1^3pF8wY;n4-eNtzo_?firq&`nC$bd zxR=CWzmHXKvGC4x$a^*lPISq0M%XkZ+1YoVAq3bV_V8aM54t?fkKT{Y;Yc}ybl^tY z>{#@WKoqJ`pmh=5fEztXk%qmlDYd=}Mi@6G69O|*>hYRCNg&Xt5R4{Z za3qyX4CLb(>+2N(*x_(-rV&_Yj%+C^eKpkFdv#$yN%P`^mzvi@f~_3oo+;IM)PG~K z-F8Nj=u1Nefy6s!X-ul0Fn5Al!cyK`gayKY-E&BdpGb*#!nA8%N22cqsfk5nEmkU=+(vge9ageSDOx#wmp1sbP8h0omPBE+Fr`kb>7+Lg10BVU&6I{R?A=nK_ zz}x17v-sNeUfeww8Xf}pyT;@{$&b#y+hPbtMCic^xw$47N(3i!%^*RMH83cLi44!G zA(*!S41((OyL$@^76I|LPRc-0MBGUf@zhcZ-borXel1(fTcZFAs`2QxG$|r$el4~w z7}B5fRV#EK*pcysWuX^L)YQ6|p)f49aeG{dAx=Qy+ zX)vNVH^bJ^OKydRdyawSw7;F2E*o+|u;46C~| z6UGgA%#-d{{RfRXe?x{df8&hNnMetc)5Ynbnq;BLb=4 zh}>kyd|U2Juk*Le&Uqn1XrhHbNq=d1F4Vnbj}`E3H7I@V4C391Cb-XL8i<{_F|}XF zffmou!!tHdFU_JxYhG#UFbyXmIhiWJfGF-5UMcwwi>~EBvePVQeh2eiqzlkT@twbM zeHZNKH8vaWKG{_#st)qq=LKX1n%47~2=aQauAM!o6B;&@wk3lD=Jq$pq#d?>ht-+m z2`N5{ckSP^yHY>(og{(P>4A}j$#XO$a*Ny&@=^_%S;LS)i+g1b#p+R97zm~1GZQERBpxHqQt9@+Sg*(o;Q<`Sx(pWEKCL==P)mC z*wrvRq&Dpmxu(5^^-O4s1(i|euFG&g%%i6^`)B~2PR=p8Q(~4q|DK`Eeq1aHMN=P= zLv#EcefHb>WS2>dA5VMO)aTx^3M{%>k82f^xl~M1FK9|HES>T4H!V+$RDhu%bh5Fc zN}gcSM&YI9`H9)N#cE@>qw8`4w>TiXL-H^Frj%3rM*>nDCCDXXjJQ`qLEu>gOf4L` zX%{RbO-Hg!KB}%Zhi30kD((1_IUTF#5<>m!YFx$)p}3)McE{>vD-rM(OI2IZ7#{XO zLgZP3zNDT5nxkaaz}WIR)rcTvZzcVS?Uaj@jGR z2axF?c!qN^Jo&qxgU=ns)Hwzbjjfz!OzWhgjl44WMv(1d?3L^ZXR3KoC+}BsPL#ov z`o#X&a5qa>D_Z@zyL!PKw(_9ql%pzhP#x5Q8MFjy?K|)ohhx)UIPC(eaW_|J9nP#9wZ>(#e&o39Xqa(izjqa_%O)Ev2MZ<;}$=19h5UNOPHnCHR!rD(Yc+_f`V8TyhGzSpZc&OL@T3F zP1sb+6_v_-Nx5eg!3<*%^C4ID{>%4o9GSzM4S#Vg!MNHj*T|Yp(LXG41Xng%4%>aG zGZl`qMiA0&kNBMfyLt+S85i#ldBoW`v>>~R)p6K>Y}#@EkvdX@?)ArN#?CqTnR=xi zuqjbtleQ1fqS$=Nbcd7X&MSBg%W*{0Cp(K#e45g3KIhc7)oa&{jliML$S!=E0er_M zFoAyQn1(*=M$*I?UyI#M8A3d?EyLlLD2{q}O>Kl8WpE!G8ucqTp=+EYZ^HNy`m=MO zrZh*CM_a4fg-r*Xg2=MkKr-5hCVXj0-YR{>^T#~~-03@^G|3!=)-Kcm<;bB|J|?Z> z04bc{U#;K8H(Ah<)gTcEAsnRf1Mge*f42tI^)#A*nYTFohV@|KCJ*iBdfiFB-uLXm z*2c9Zlp&Rlg@zQTr14b^Aepb>nI*m5V6U87!5PhaCEVubZ?#lAkJLKQ?Sa4dAjLu9-aWGmouzLDgR90FSqFqetoObG<%`UyR`ik&A zd3HB?PffJ93)bz5`gC_RvmdiJA9q}T-gjSj!R^?1%>=ryU~K#egnrbo4KFW*#?p$Z zpB|A*)Mp1l%c@W@`m2uZ15Sbp1IiG5S4dJ`d~jce$7Q{P!TyrrH;wu1??*d!nq23G zsynqu`CJCAJ8v)VL_7L@m1Z&Cc!4+XV={E$nQbF?qQQ8L_cR;7#Q9yLKUeu(W4NvM z7=vuHe)AtbA-K*s9;fgJvM#Dl9eMl1fQP{PE~K@tpx#rcB}J9dTZv-tVHi`v?WUyb zFsaPIpbg>xTU`Qp@pUYu_mj-9vGkwQ{vZ#-!^J9qgihV$vBp zmdls$LMUe7#1QMZDrM>y=H;Oh)*RU!u z$;XbMT!B8J2(7f*KN`#t%pYcz`s+akfI5E;Obs8hkbZ0U=r#U9R~3O_N5Yj0uXDbB zY*tk{@FJ>Wjr-Je15A)AG!7`4LBzngxCp9KD451}8+pl8O4_z8+FK{;HU0c0O(;W5 zCC+w&_5CJhT8GoV&=I!F3HEWOs?3=g>`*dBDx0+?3Q2&%R3-r2U`69ZNzyp2PC(Y8 zjQyR~k}kdsFl5UNVtkvIzqhEBM3)R|?$*Zc&UUPc(vC2ma4by!w61JPTysnu(+>pV zvLRfTg)qdUO6^*Uj61(SQK5QI`ItaRwUtqDq7%Dxi-g2G2!!;sXUMQ&YQPJ7@|+r) zy|0W^d|MLAjzxby7KDcuLwZfkSiOcW>e3eh!WXt~ef*X6^)TD|(dQEv;Icw=@=ZIW@k?(kj1y zilAQJA@Yd4gyg_2ilSX&9-#AQ5+tz62*)aTBtoPg4(!N zzsbTwoLtz$hMNE>wlk*Lio+j)y`+&!USpl4iXEbIz{?|>Ehg*Q2Ks5~J=#Us%4Lyd zU%^nL-Uv?@3`ZWQVt_THX1US@o?40WzL}bE;%{mMGcnA6(fJe=) zuJjZ*aA0*0n@F6PVC`hMgJIQn?=1*B!8ZdTjio^g@zt-jrZWsi-bZ9Q;b7vRVEfwibj2 z{}IhAM`LFE3HBRVQ5sDjrCt8H!94XR;s|dz$=uNW?3iXs^T{p?u{(+WJ&B+H_)D6i zmymh!y|2YAgh<6jU4KbYCy|yrjoGBu|6h5XibDF%gE7G z(>~QTsMRyh)iX7&8Kq|@?x}W9OvSgLx*ez_?cDAQbNj*I-`UN@*U?&sj%>dv+itt) zfc2_%K>hhIrL#W)lR5hR5nr?bRp6L_ejcK~+>4HXd#I-uF>x|-v;edd+5wugtqq)< za#Xed4Dd#z;~O#4^zq)t%y2H|8(BXW^-x@BVC&*my>dhazh?l9vq?i7xguSxovdU-0 zzVt_%s!1|5v-_5gfdX(N*Anhe*iwfWuvQ+**HJnsUQ+k^=4pOf4YN!BS(LZeLHr^j zRNQujRif;s(M&IGq-Z)ghgvlaQzXi-rJ8ij{>!rUREtf0U@1FNkPI1-*C1e65b*j`RBQbnC!^5m$7kk+ec4+QaCQ4*J% zsHUMRyGcpOG1z$l*DaJnQsXYQu}UEvX}8)aO|@u3Q7l~>mP{fuj+EG_FzH@#UW=l< zNzcb;G#>`JP;OuO4lPUlyqL%Hf{L&GFOOGkA&C zJ?RJKNwcjm@`!!5+*WBFbNDQ@#1H@Gbl=!i{K4OPSlUB<2KRI2?rHH~5hd@9{B0R~ zk@uQG;28wONgl8ZqY^&e3|YEEG(OClU(yqROtthcZ_e#O$blOSouM)+`T4j-o6!3$ z1ifb;xld5kzc}2Y?H$SZcM5$wCs%G$7Uq|xB*{qPE%Fm$ZaOPW9{fokui+hgz&v{L zVJ5*_Q(7*3@Zp0MHY?|OIrvM!T(_Nos;|mT#9VmqOgC?bVG3D#y-qaLlY>W?EDtSu#XbDcRa30^7@Hy(=Di>?&g$1S?28tEpF&Id znNYh=-pxZMIHm~M!9sZ=O$5uM$zJ*uQUeq(i#ftw1c~pLDB3GN)UQw5J)Ks$4@vaB z1T|?CQDjQ> z*o2CS*%H|H4YCzC=Ue$ceY+eAoFGnk}pKQ%DovrZ|+)?r*zK&j{2GtP2RkHe$iQM z=t%TZ60NiNQ|OEQu7$-9iqjsIFf$gODEg>#b>n+gOdr{yV1S;eJH#$>-p;a}oN~nC z4YQr9>?1C=oieAX$w6LpRLn^{#fdgU4T@2pjxKGN}i9Gwo6p7e7$f-78-=M<`wOW7n7uNUm+j0&BKv6LdJvMzCt8(j88^z z!kXPms<&5C-$s3kYQ1CYFz)NqTvCHe)4Z@QDCfEqf{lYS z)&rtq>I=k=hx<%;fsRtu7$!qm$7LdAU*`SDRx*>Tt8 z)n77p7CFKhndw`r9A3n6nwRB9Mn9)5Gf6jbJ0r0BL6;QPMt|9i>#(nXMauk%BX{nM zvvG2^!`Uj9Xv$`wZ6pK(raqOr!PZ2V2@Xg7E8XLQ2ldPa?7Miu{pmPyf^T<*H^q8P6)T}pK@T>Z!)eOoCd;| z!G3u5ZOr##OsiI_t2*BpyK?wWD~Ht`g@ZAe*RidgSeR|6Wz0b{x^fu2Xur?H4Y4d! z63#mir%P(1XZyKW3$hz2@cNvtMEP*J?(lN`2)m=wn^go%sTo+Q*axAbYOhYjZ9Aw@ znP=Pzu)uSxSg76?m8o!-9GSqFbATeI(wn>S=^8)a9$2brwZTaOJ#&ZSSGW59`e+r8AeN*hpn7<)^ z(-d>o8NtbPD@p7(77vl;VSJ>I7Dl^0eWLy-C604I^IN_l`zYAYdrB*RX^U+mX%rv& z7-D|7;$kr*bB{QU!&nXQCNeN>3VKdfF1n&Z!Ql`?kCuAiu~g(+Y1E~_89jKOJ1B*t z{@IdMJ(_@B%1FgNhJnreQTV=dyBsVEiDS~IqF`NYUz_U=D;qL*^TH~kB_k!Ms$G#I)ez%jBzw4r6n#?L}Rz@H0 z=n}Xs%BbntMZu6#Nv>SS2g+o^)Q#!u)Fe>iu|X8Zbq!dU7M0?osR-PzvX$JW6MczUX{%fdRn*jxtJ8FjOw*WQgd6 zfy~|4fwMJT7l68^SBeKXE?{XtmvnlycZR(Wtb}UwcI9lS4)~6tT0)^kqUArd=nCkP z>T?TnLC&23(Ydh~pkKM}SUF&~q9`Rb9t%c|)mDH7&j`TD5MXox*??<0DJ;!R{x&g% zPEB7uN+;K7Ye-}D8J--~^o795j&EAh4J2eWMt|KjVQy>M-Z#hZg{s)AEnx-bqV9kG z7~-`{|ntg6Yeryz^$wH3yV~Hxz-@+81>#RWiSw2&>yw5TVK5MFgeJ zSdRKoP=k5Bf0fZiK-!!)QkCVCn1(F*pcOaW9v0Y*0*f<}cR*g>B9m5;g1)Fu%+l9- zwo1>#u6NVs2O5O#m{`o-U%9WY`3W`%pL})$tj1#4106AR+p=kJ45+UZ2?iP?nDG!8 zi9dDxk}rJ{k!NNrj!qWXDW1RTQW3fb0^^d4KJ3E>e7be@j%a2OyE_Uywgs*C zY*x+U$UGv^UQsgr&f>^93{x51l6rGvf01;iTJ+%71)9*Fw4;HnXf%ZD9ngiF=& z1?Y2BuCdM9oC`3WW&E@B!HyM=FBX?CAhmW$4#3#OMZLoqDYlscycu*w=GQ3?OjWXQ`Xd=e>lQDr?x8F`15$2H4j zwTp&3gA9Gf1dsPx8cs%1XkljfO3vEK-T#mmBd`6%N~VZ2Ng~bxS?w~KH9k41pU$QBu--p{i#1l4N9-F+53V0 z4WY#>0vfzt=_CVid-=$@UHQJ=oWS_oZd3?^=&oh6G+>v>q>oxSX=T}>n9VB3HF1

G*(=j&lp{rGr@ctT~55JGB)w)eFVs1Xdb>nM8Tp6GF z9$+KQ-nQ%QPk5P@lEyVPs}_@;I0JI>jKx|$%0I{uzlGQ8R5`5~x>B#42pi*JG9gsY zLB5H}XqHe$d4(FnO083pM?IZhIt&EPS33Zw-G4{o0dGA)xF~CU*42ojQBvW5kG~ao zMW*&h8HYN=BrH;bk@yUDqjLcAP4m0Mw~l@{9cayOYZ?n{zsorH(q-Igx9fv>^Rgav zO=eKGvRy&iC`OW(`lt`&EC?#_TL4w;NcKW6CS}GuOe1JIza$DnilC-&YA_Bl`Y1*) zY8`Y&+5@n0*b~?p`V?o$liEc~RwQvp2%Qypm+qW#isnf_5_7V(<3;oK*7cb~!BS^e9g9<`hU?urF;vpZ2oGy-D|X&L&!*&1FlEmIBB|}jU}fSK z#yD_cqKsRM?>?d7v~~IE-*+1urD}`$E}u8M>NnMO)Vn6D7(DO3+Mae+%6#dz&#JXe zPcF5j4^sT9C-@^Dk&#=6ElxIsKp1omTX8FqRPXCx;l@Jk?^U80d0aO|h3Fs7zYlm< zgj`vnaqnqYW%CLohzgG2@>4?NcobjS3=z7WyeyW(B#td6jn(^@bgRORw}@ZVz76p; zI)H$PHYfbr{ekp42md}lf3Di!MdTd4^l^@5II)xA7Czf*8Y1HjH!QL&zQ9CN6vO5M z`_14h6Zx`2Pju$W_*vd|5w#yvtD@WvA1n_65<LrB##YI3^4t|htU3pL0og&G^#)%b=o*BZII)Jhk8SP3?wbtkVe1)X zac8ZyN~VrA)>xU!I>FxHVeDVl&Kagtugi7UA0a9B-OxmFhd_TW?$fqOfWTc|u5rV* zHT~kfV6V})RO?n?YEi4gU{cW?sXrak;jav~wVcUg&W=W8EdMbXx)k3h7LGYBR&jNk zdWj*sTu%!!>0J8cb!U^Qyy-ddjMiUPDYiMUGebCBN^HQ}k>@?yHj8Xo6gLQ51PY^+Sga?u!~g^%eU`!vXT9RO^rF4{1<7{! zu-1qlr5l&QuIK4O;y81;u)5SsiJ=iyp4Po^<;FOyE`+#=nfSV9JEV&4dKCL zZEuDR3ibR;i=|iWbj2G>#EJh-CL~3S#U#ZOWlWwReOiL-K3OVeqmAxBVX0=OroHz_ zDt{SpjQ)!0D8k@feb{vU%8XHs55b8<7!Kuk9e#1YK_U3$n+-+QuJ%!&%26K!*g#Z1 zc~K-j+;|mMWNlp?b0D+0d82f5{BwwPujU7g>3eKoEu4-4*0d;F*A?l{yQG!p&CJuA zmVEi=U%L-ngiZr=6Pd8jqZW9Ma7fZO8Z@}tAzgO&cbDC4qgDW?<$WDm-&|iTS;4mo z7BS~UKpXHDv~$^*5K#}p13PcDerm0xMfOmqv+OI-G&Ru}$vZhMDA2??m#Fo6#Y8{U|6D&`&-BU{8?= zk4GW;tpd|( zJ> zn^b1yPn(OsK2Ga3=s^S=orcnwuO`=J}%5@7nmnGeZIxc{fcp5()&jp zyFV5wsL?3Y^P(8}V!>jhf=+TAmo@hdYVgpOgpH3?W)d`lml*{l^%>Td=uhy=LdNkM z!lnu+g5(jsb&K8Z+u%yOJuN^}yIoFVK>eGtze{8s!z2fAgh_gFo#%~;h&`KJJ)Z*6jDX~I`T)NhDrU|J=#g@uKX zsP!5Glpy<0q{ZZ+P!&n&;(n>jT!r{=zV)+NDWYz4mS4xJkp=1dPCV{p0IJ^>fN%izks@u8Rq1V0R#h?b|OP z+HBnT#)!}9MhWQcE5k{is7=W69Mh&p}?v3 zo!a_#>ZnY}h>3lZuO8!N%OFt(ds}H1c$>L~rY-5)?l!kdw_ZWS6+U&yl-BlU8n|c= zd`79`PmEH#Wz3h<2$jgNAQmvBTr{j@y~fhf$l1zL=5I)ne!?SWjYP-9n8f({U(F;f z18NKLk1*ka+6DBY6$Hfn^GkXN9K(+Zx!ixCzgm0DNwuirCGwyZd>`^8_oLCVj5zzHLrNQ|SdvI)D(aN48u;$D6%Bl>5g%JRQ>4E#BM+2KWzQGnx@1kgfp|KE?_KMHwOt(4cr zPS!NO`7-;#}}9uj~5;5O}PqD0XV2 z@zF-xvj)EUDp9;QMMnnWw3=)rDW*8&0mE7jwaS_`0Vd3yFu|(RE;CaO#8=q0daoPl zqfu3WS;ud0y>kg^uHFW`VjS|mP96~7`*USxlS=?vVLd$k)_ z3eiO?&@G@JrsPw_i-@iR*Pl(V^c&9SITAhl=};;J&BzgduGzc2X-zqAc5I_^1DsbT;7oJn4I4lb2>G2}6Y-Z@@EIuAiCaaVz zJQ3*;Ox{&W?RTqpsn-t1l{`Thr;^(}ydMQuVgWzcge4qM%v1MT!xOR#W=1#}^NR7G zi4TswtPkXiz@j%Gw#bWKl<*tvMER`K3l&wiKP+@&JXzw~?|hJs>t0#`MNRZ9srR7~ zA@s5f+3USRjN8SRY!i~|=v)wviIZ?eCPXRi%s@H5VsVFJZBN`4M->g+=e43TB}?jL zifLwfEDbAcj0F1UmEff4YeMccp>=phhu4aVxCs%du9w}VGltVTP<2~d4wi~pFNaXy z4B!$}8eKTHmu0o11=fYtLQ7sxG6%7`zfl&G*({kiY{|j#WkEtKg3Cj`YqipnO~KUVwbc&8Nd)JB|&~ zF+X~quNYo$o*&?MV7c*Hc@}uBVUkO!q$Klwoj2eXRmLPT1oT9yB(*?(1;9r;R+tEV zkWI^XG{70BV_g)>#t>4!-Ysg#D9p=TumuP5U|7;fF=IVMESQD z{lBlUkAkdxzW|~SXoygSKLydaAU!z8?6K-Tn316ngW^E<0$SQa4W+hU3Oaqd`!&Q< zQFK!XXu>hx;r_3wEcVym?>A687_<V&7NM~fcCHb*~%S=r3C+4x3Fea0KfpA_l4THZ@HK}#U zTB-Akw=_~Q6{J;2^Ot+UbnDWS&?(y$gt@%E845mBG?8!bihDVd=6KPGY2Wd)oo2o> zclP-Dy~F1R@uGmAa$%Vq)R!2o2Zwq>ak;wiEX)~?^1JAU>as_QPXnCa7b2P%P#c(c z3;3r%a$gjWyRL&&1_9>s0rKepxqZzC{DJ`sIyCYuY>y%fR>Zp>0@$U}_TVOe#^~G9 zU1@6WGn6nTXH=v9%7jp;*qz-kGol+qKdO+<2klUhJh`Aa*evOKUbK$+D33~+>0&Kv zT9O9G3d}%*{X7tsk7o#Z3grm+tUe5?EKuYsRvWj;Z71@b-BC_CBYqsD0gmgyXPb-> z#jjq0Do}d45m(ZYAxt!(hn2Rp&9kMCT3|gt4S<4vD}lg+=8_OKCwBze-Vd&nRco%mcAf@?Ox_+~ob+Z(xRY#RAs}CFq=@aAMoL24tmQLYHr$riOU`MG8?>Ty^+_g5{yGbf9 zujU#>-MgkWrrxTl{nJ7TlpXMO%n-aqw}x1;8pWuCS?6zqK-gH_VgD6jB!Z4jk$~mx0Q~;v3rE?`(fPme6%zdiU#KES%PW-x z?$8a`K~|5oU(mrGdq|Um(?{8F?CE&?!;rI3IHC-8cn|M*v8i1>QJycdN|F@|dg$&c_z5pJc1H26V&piC+n@s-cwWP9c3lLj) zt;$@IIM9V8v?)kwNvC2uC=~=MA{CJKkOhd!_n^k0$T%FWCmN96Q9lCGq;yp95W8*_ z!&hao*2v&?`*JrknvNzXW8cpn+pd79+R+3tN*GKP)a+TIF|8Cu@+mdq;+qNqDmE+F zGG?KjYj$jvSI3n*Y=)M$Uzt^aoz~hnzZ60pcJ0@i`cjH10R3C}L(p5L29azB#+{mpm- zLcSR9IvBuNCrVPhEl9lu2b_s+_2^~rxl+^l_m(7w+{EQ^raXLF?xO^pXrV(l9I2JkYl_YF-M=|bV_a@bru`!9(hIGlp6awRLJcG zM9?XrW{nS3D}%CVY4t*B+;SO4jj+^7(ImpR#tpD1ii=F69ydPMeFhXVOss}W^&)xR z7z?nTN?pc{j4$#M;lv_mUlN=7gmcr3NgEUP)awmTn2UYZ#+;#pQ%-UUP?`qW!kP@p zXC?M=2-Gn9_@u3Dy>g!f>|)jKIOOeWA0m0OnRQh6yYfJz+nVh=rVJTb`hlD!lzEG4Ua=eiAJ& z0@KfY#K&0CMYT(fPsAs>J;UC6;6Hj8iH`er$jqQqkVou`hZ}+JVbl_k?=dD$M=U+A zC5sEL?ERZwQIRRVpbLm3lmT)f^?xEjTRUe9QwyVign|YZ)-I0!Bz}N;foy>4tA~ib zq>5_iKE}X|q%hx=oSE51bE6c0ID&?*GoWj#*;vZ2${fMW`4iz-oHfTy6Ulhw?e?cY#3nxHeNKM8@brN$e=sDxNoaRUq26kVTv1=`TSLu3>gww> zRlKI*I91>?A}vmRVG*D@PW>c^AG?QbAgy0WFp4KLl_an&w^UqW3=IRF>f2B`FdEW7hKy4y$z*|3oj{g_30Y)e6mj^pC=yAhD!Ifu zJSFp#?WPfV=bUe51o3}s~`)1N)@EC8Jc|IEpy~5Vn%8h z2Qn$;FOj_tFaa`)P?b3qC9bh9@7hn?oN$0oz6M%Hewn2&fanHsB{???PR?m6sXW8A zjOC);g%Tq<-^C5Gq9fVq4yLq?NSTtv3Q=Z+y?{r%?ovV~3YU8F_kn_V8fEaVBQ5ah z8FP3%R*}qty=2&)`sgIHrVr5?Jvyl4zQsgh9e?gB#AS{SIZG?|tvgqn{I;ypi2>W- z)wtp{hgS=`oJ(ETmv>|%mFf7B)XmaYzmI&akFV;?`&}>WTVPFy;LGfn6XC^_&>TT7uN~sTuZ5T-(&exN z#IV3i7mOYmF4$y*=$jS+))|tXj(P02D3{1sKh&SFX*jY1T|=^(+Ag%i;2H5? zgM1a9GAqfY%WcGJsH*~AFOocAUgVdFS3TRTPCF-&QA@NY{!2by13Sh8c_!Szf0hS{ zU9${lSiD2!_=3!qGuCb`GV}T0UMn;R1%avoAxbFVrIh}EJf(n%691;|D^19)3!w6% z2yKL3)9uP;*+LR58U|<-kC!4sQTl%ge;>r`7rAW5ibLuds#HRM2jYWvFk_H}0XT~s z@y&3$)%tv1AJO~kdea)gV&n07J@qTR(50}*hBmw`kqY04FQCExw5b@Bylo=B2fGSR z&ae^(Mxg(m$|jd2>O^Z4n&VpR<;zb<^o?8!>Y{3Nlp52XnD|#7X(g=@arvx%Iuj9F zG8elJ_MA!i;@;m0k-ozw328+Ls%Lh4tnC)K=K zmp2|M7b2}i&-^6+>*vxDdsiUQFlMWxAM0K{2me9kQJ(7yQU25r!Z~brQ~Ctaop}7z{!f_3kn^zzCwa9gGOI%}?LnoltGkemCe>X8+Ecmb9FN9U z@ZUcm|2uH{qmrO7H;=ypHogV0@qe8a@sEawztA&a{rh~NwznqcIA+6%IiwcqfGuXayu(xUS zpIc@Ot%Ra6~7{3nG$@-)oaf%da`s5Cl99me! zeAXx=x0*+(Wx;wW1j0I5Vi5w^rp2ULv_??9_g0_b27Rv@DR0Mn4Llv`ZHWp`d9*B&b@!sGjCkdK@-6vW+R4#QaoGni8la@NYoAsD?{& zD0*nI^({@zP0ZWVRy{tSw`c;`+NzT~tz=eTsoITp=`J(O)7xkCb8hpIA~@iXLx0&~ zz;z|5j15L9m53Z%n2E2$rWjM~4}T4MElYq#Sxw`UH!kmbSGh203~ydXkqni`)T@@? zbu+-3A_gx)dH5n+L!GiBy^Rxf9FGrCta%*DhY;&d(!!&J#bpc5utLwOM84xdBhjSE zlRHd2KDg#_6xH@Z!FCgGK-c8Eo#H?=no*!iFyM5?gVgtKP!JfqNf8~y5aZoI?c(@5 zFVH&YT3OCyRnZr5SP4!q!WiR0rh47Hzd}?0U+>%)#eq#!p22u<6r;a zKreski3Irj(C=98#GH-K(nQNa`d~%~Bas(xmJmjT6^_)uq>)9NjRcQezkGt<^gFL> z%75nc8S7h)UCqhQMX@a%i>e=oq@B8Ks`-M)G9Wbx`CRJU24xcB-K%t=KK33r2 z+)%RR2>iL>LW8pNr9C=j@)cZ-c~f?yAH;#$nJMV4D*horF)%BN|6kga|FF~DOfd5w zOdbE9F~$5(O#M9*%4%nGkjZLQ$QQ7%fR5Q5j)@1venKS@5~T=Jye9veVXJ7Y%>E2!^dZ1zcfL4aVCpP296%jP(><;`J?egpPUeg z?{tP}4C%HVcRk?lP}7Pw62UW(ro2ylUNJV`}?LAX;S!)!~GFz~fVNtYLa z7-N$n%I8L?at{k#pf&Cps;u=q%omZA3Fim$3B@V)O7m=>O#%4NzyRv6rz=eLHU)55 zv3Z4XuyGS!ZqEYQlnd_@r-edi;5;}TM?NOzDbsQx@WwQrM3SA9amsUM8n078bl>nm z=?1bsJ7fK-+maA|ZHT@VK|x7_)I}2n0(^wJ-x8DogqupcbH9&i^lp z%pXiq!&rF$0WkIXf5sHc-!WCA^4~m_&Sp~};E{rCZq(*LOh_jxQEo|6JS(j2xjSFe zDcQr$mZEFO`CvP}VQbLQ16SxGYeM%Z6&zC zi`e@qly@!LCJ!s7i~Ts3fUD(8Fg^?X=14X1<2HyPwenMrBF)8DW^!T&n!RFXEE_W| z&|zicexs*rdv+6;z_hb&8 z6hC2TxGvGsn_NN?_Z#sk{HA1%ENW&+fjPdKw=nx60hp&-G*2*dy%}J*$#8&O_!3`v z<}G}}9qm9tz0OhMeQQtseU~Bo@Ny3i3jp*N z)KJe~ue}0zwUsabzbK0JpA_{EBX?cb3)c{k$jHci)e}1Blb|1e0w^IR55)c``2p88 zcumtOz3>kjl(|6&KY#vlchfe7@HU%`sqFP^r$g?eN$<~_-`M`}Y?kT$yt1h_=^70V z_y{yCv^>V?oVx~1 zJn5Ra=uq$(AaFDBvUO;WM99YKG>AoSpC@f(&L)Y_(5B{T6nB%I z6e8F98kJQ?249Tm$M*!f5b{TlV;EA)sW7wzUCtrUlx&X6IV54M}*x-N}DY_aHChR{uh zv5&FJ4%(^wUm=Ay{XHBU0IAdeGefcc6H@5EYGH2Lo;>$`{rE-g&&Fnz-j6G* zW}U9l;(-20!$PxRmd^W2v50t{A)$^LlRESlft=@uWUcWb`FACvn>_f(Hq6Ot`k%vO zL622sk<61@7Z_}Kt-oWcp7qBg@KvN!NC$r{Fm$(F(w0|=-m)@S_|Nc`kR=wJ zy)?-+u@qnZ>EF}68^4)VbmDx(ehcq%2`>~c19y$kD3-+^DU5*JQ2zlHX-BwKP_q2r zL4}ke&k$O1Zn%%TOZk&FH8#jut0NXW**?8JvV`b`%oeS6U1OL>Qo5Nr7?Ko0^cFRl=HKM)~}Z8(AU zSA78_#jhcVBv^ro;p;)HgW#di%nOrWc9q{iavPGv)in8Dcfy{K_AUqm6pDk>RW?u7 z-AcJ?cpxbc$bM2jN zV-;80#bT3SK?9if0;ORu!*61l7e-if$Q!XIHe@O$FxPHIVwy8Gm1Jd)pJm(pM+nFl z(exyQEoHJ%#>!KN#<)BkAa#c#%44B#$uSW}F>;o1zNxpVkQSX*NjY;*v5SK2mYFia z%8D;l*O(-yPsuK_i6o}}9Cc%ZIWCiWipxV_tJP#9A6OwFt#hj84(X0!^vxDr_{B>% zn22ZsG?3-ErG!k22x_4wOZ})&g z$uF-wF;YYtUg3|XPT2WOOVX#-3z=i94mf9V3n~&yL-7qsvTcUeatE!M-n?D4wS{bU zsVAj5?3@d+sEKp27^CAzJQjLfC@4 z(J3#b_RgHzYk-S*#teC8u9|K8Anfdyws`P zJND5!zQR`eunwPvE4+_2CneXyF!)M)f(;S0F}bx1GJy7n;CZqg2jmkalrFXsuq^k{ z-P|Eajc$1&y(HKG;z)wgUd%EEMHja1dJOF+ z?>QyUxiJ~`D_~}eW-8i#SBy1dPs>6SN|G^X^m2R5KH@Zcj+NDz1g;wes8s>{y;7PNvAR40;jXS5yHh0i6-P+|HUX=|YwgUzBd zee|6%Pgyo83s#D)AmeKpB~~!9*J%J2y_OaoU8xzyTGE=FUP~mnS-W}@Pu6Tq&XXQv zou)$(h5o+BSdtp8?99k=riHkewRw(JSm_!kjGlOjj;p zZf$Vt5%thJD*Mu+O020TvZvORO=T$A@I&#)+9JiV#y*8y6FOsg#-xP;tPwG7F#(bF z1m_RgYpz<@9PsUB1ow~*@+wU4oUE^_q_m6m?x6uB&wzmu?4rKYLSlK)1rXEF1m!~i@XjEz~$${YZNA-SJp)Mh$$tC$1Kt4+ZSPol$|_PT7nL#eG$-$m&gm(=}4ls}6O`j=Y2lo9H- zi*a<$XHegf%ZRtIa@RLvp8RGmSDLZ;`u@Y@kEB$!R5pW6&)0nAh~Ha%05d`IXE$iS zmDH*@oo4@*`wfXQk3xD*>a$!oC6BDMqC<+z?YX6^tXKiP<`o%doSi5eHt^Wy1JPDi z`aDwJQF-Sr<&>W?+$3_jah-{VRa0n+Z&~#cV?;II>Q&4Twv3?QroGVauv|hB>7vj5 z&qt3w-C--lh_6S{sa)Vu7&fsq{^GZ-gX^0r9iq>7`jfD{zbt{85Zz1;S`P_FlK{9#E zOR}LR7S@qHSY>L@w_Wo`Yf_jNH>JqWYjLM6P@iADEkutg1rAHZg2NJ{Br~B;jl@3b z_)wI^XYps(`T*+Cw%n+BB~~T%7vSJOX2zVZwE&&$dqxI$(L*?+Fyvhw`KPj|Qr(5@w-+PIYS2w6 z$MA;FYLJf~&N3j!yo#2ZFkHca@Cyh7NCRg;=*A&oZ~x;s%E6%T-erA#^2-E<5lBpl zD%sft=vv56DiNN(x5F~iXC_X@buhc9MIAnkixN&+TUq)|`}@h-dBsoGVvoCPcf7tE zSTn`+C{cAtbqVei)_m3TTS@u8yRs65SP??)ZqS59sj)?K4H=7iUT%t>l6nfCl7H<{ zxIWp1{#a?vL>sIV^28(k*JR4h`p<-Ija(h9oVmi*m0*Zu7 z9d{grmiqD?z6A>ItJ2iWmuJ25ZgQRW^e#PH6JB|xpIgl(IcK+Llg(q9tiP^y2E*V< zg;BLTF1Kqd2BoZT;9Rr=e-`zYWk|0Sq0z*;xJ<~S4bvc@3s|Dt+}@SNk}m>RnsY?3 z*@o75?a?h3v_`nD^<=hh1~bfLY8s-+S&q5go_|Q#l8^aiEMEM=L!^5;O=;Ftt+_>B zI_h)@+MIi4)T4L(%I#6I&&{GCGhe{!ztTPtMHRrlwfoiz|HYK>*-46 zrK!Z!R>rSVw@l*WRAfJR2A!XJcaQo^=j3WgCEudTE7io&_%iF*8gbV9*16XBtAti0TBFkU~R zR`2EAFmBF2Blbek?eUGsJR&CbM`AI{CZ+0&CX1w{54iRz5>sbemQ%zz+?^kuG@qn< zDdataG{q5lmFm7w#dl(+{FgMu8;jt*g^oJmNYa@2a9H4*7MD{5^IBb-Dt9wVCnrn z%pp2+s|yT{pk=%XRtDhLS7}FcdnY$bi-Y>=q1F!0i{Vmym9RmLlVnkCTe!-6kIaRA z@@ix#fs5@R#+kc%O^gEf?$S&=sR(ZTvFN?9iifn=(6!tZ?N!6^HX{TTevnE)GE>g`>H6ejIi$*cqj_Z z8zfFAV}9O0^YBzjs}Y@fpM8*ZR%Do#$W}&*s^+@*dzXGs?FH5TQ~UFAz7#hE!sxh1 zY}0nv^o8GMTiSM>D38s}PHy-_#3fxTZS=rCy0B)*PBd7Q&g+s9RXN4zWkZ2zAwAFi`I8gE@{CwCE$94cgR6@HqpwZB;dO zHFdBAC$?;TEiHZ>eLgse22MKK@akbi606o7yabprfo3K=5SJu*r)t&a$5}KDgG$#6 z=Nqi|UJUK5A;r+0#zo|!y)byI)4Sj-lhWFYDf!`R3(Yf5i%*{6QrHq1f7y<_O7uiYl-87i+BcaJ+vBt@}H#PrLlP@h-stB)OV zuiosz5SA3{F#RN8k>_!@?#RIbNH4Nb!J|n6ymAhFps%<)*gtmTfX?af-`ozoG%Ti0 z;UpJs_*e;DyDJa6IS}p-;}lb-Q<`Yg__v|+X9zpUrH^T=WKXxw;rLc3yr1M?QFd59?`hr2tQ7Nspf5z9I*|OW>iwfpowTtU`HCFK%=d{YFDFj-6bLdxEXV%9Xtv8~q zG4`1{Rc?%v+?#E*z0zC3pVHHULBSEwKKVRBr&kmYH*d8l!{Bn^nyv(vM=g#Zx{m%C z9$d3bOk-M9WqY%T5M0Y`B0aUKBQr#Zm2Z!|B3%K;0G+@~?C=(EV66=H=|SiH+tvp+ zJp8nHs`k%-g`rBQnKY3k?2I~%xS^VMkLcdf4e}AjBHG3335T9QX;4Z@M74Wd-nX-B za+5gJW_g5FMOU zIXN6j&uAlV9DF-7dpLAY{YB`BHIg_khAD3ZMsHna>~?{<=Ic?~q3e$jj0mw+rpgcq zC{91gk5c=<&u;V@v4@l03O_p`l-*oGhAx;)X~*<>FF~Mh6C2A^A*SM0r|-^^We#ZM zzPST#c03Qs@O!DAmTF73re6RPv9>-2dp-7*$i>{qCyM;;)?zas5KnbBGkW`VaOvIu zJRkn%eiGGSA*}~b-MvVo^F>V21@Y|fiHU2H$Q}@s6c%J=YUquAP?7dEXNru=Jd?pC z`%JUBlzBtwu8`ZXNDOxs{*Ayv^;}+s+csTUf-)g^=P^57GyArxs)tIMGBj9ZsLIqO zEo9Hjd_#69bg`5jeYB-S#x6h0@%r3GzrX_n1x9CQz9L4-F`hib%LvipmnNQ>O1g26 z4A)dG$qnNCP?kYuUFjl5O-9GK1|% zax&35@W@njA|@1GE1n`v z%3zJQzwN3@g*N`piXzs8h7nAf>VOi38}QSdyz7AvRgWJXSOt7TcclSCPuGq)aI_$ zTE(iphpUTmWAw$zN{-8KD^MsE`I)e@HX9SHZhU`vw>YyKlTjlRO_ZucTDMWEHOj^2 z9iwog(iCD-%+)JfMs+v|u{~@1(N0FJRT3c&nYgKZJLa-%7oy{tlq8wS1ENfn^KLAA z8$4SwNJ78KW0hhqi#tg>I4R%J%dY?CBtwhlC-bO`fR9w&JbHzjZO$L^ZO8)yo^C%q zIm3G`B}YfCqK)#*oPNl3d#p>Xr8Pp<-ZQIhwYpvJMia+)YG5u_46&>k?)X}uwctPD#od$W7 zJ_MHT0dvC&pFx>iR7*D{>Y=fXi*4RBnomrM^XSnVsNB2p9$_^jH7v|!3O`@t`{?v7 zFURm@IJ&6yP*YR0QM|UaqVegdB>(LJ3-$9YDhmpXhQ+1BEH=wt9gIZeZwjdc$9Y!U z&3>``11;Z@{ zzEu2_7CfOEi52QqW2t~?Dur-;aCgz_M$nQ$?8Ti|hzd@0{y1&UO;wZQ#eu{4+oV+A zs3^Yl*}fHNJGElcfXEv7a(nf)gX5A!Xg5>f(g~*Ta%PlW8JI*v4y6qe)Er#o=l#1f z!t|<1T#>jI#m~M#og{dNn@yb)a%PobqRX?=_Wm0FDvLYk=iJJCXU20^ChhrWjiTG= z1pKz9b}LYob1?{2+3Vv)IxMNksZILNX=^twy3G)eCG@4W6MrR6+bvzGuZ{Y;`+ZGl z^6vX=lx2#EZ`nK|_iE04{p#~&XwXPDNYSub+=nW8C4HVusL5T?+NHRnpLla@B}SBT zPa!DVpYmb)lfLoyx_E4rH)-0j2l*#3e4RSCvy*Z5lQvd;^f_H{cpEVC9_J-Do5%VL zxFyKSsm91NV(nXMen4ONs2sjUzX&%O-dDFAZ(I9mqP2*-aZTbf%b)R<-Q|XyRM%0R=1$SV_;ZzV^ZB!Jb$(duJ zdrQ|xTzQJ*!TrI2s34`d)p0IgjP#_b#2h@Cz$mt@ePrlK-vsW%AX%`~sDqAxAo)KG zOd#_=DM*-G(4#n7y2?1Y{_a$Mb|=|dyV@fb1c80=OcpM2*r%IgZiSpZ*H`z^ohVTs z`SH}1vr;EK!tcZv-zniqO&0q`>@eHXyhic$)Ryeh)(d$#F=qGKEvaQcw{gD*Uju7f zU#{#0Vwj*uM;diJx^7;ZJnD7TpTk11Za00BmWY6@O-KD{6d~d5RUHYVCe}36GG0Ql z$uoot!!c{mqKp{~n2SD@*IEmN8{Tuabu-ltdYIc@byH#C<%QY>iF{ojUk@={EV<_}`IRjp{)10-zSBLH8yuSGzCOy&mBCGp^j*=dJx>bB zE;ly?7(8QZNP9ATE3wyA^3yW8f2v{LaQ3F-t=en{?UzZ|1D#?~OT8NtB-%sgpPqU6 zRZ|mhU^o04qlRSAv+*ZiF8QxqDf@CKUg+LgTCuZ+c6EI2&A8b3TwL#qkOwO7Bb$$N z=~9utRESZuNBTBw7vp8$&)O^Qf;wxf#Pp89x7XQ|btJL8yjRpqqkiTYmabA&vHd+` zUXO_~CZ~5_)3x$ma@T3|3+oxIq)%D~l=i=sRDP|27PGp#`>xVFS=sU;niPi?9jG!qmz;ck3y^yZ3Z0PGsy4FEvDb8d?=xw%I~G$(>gmhL~&P zR@k<{@P_Palmiw@B)0;Y=PRq|=*wY6QHEHyqXVm$mZW}UY?>B}SG=+HQ83PL1j#7X zYmSYUGM8++2IK4aj!mCj%_*p+<`GHGH>YbNNy*P;?&zt+s#_T14(whte2(6+f9qm0 zm5uQ28V}v*x_hA;>lif#=i_g_;J~YtIcrScuSw3zT8wikY`_0wy@b&c35 zytyfS(Y7&;Ru#5#DvmGGh)y%|wDWb&$(g;_$a+1WUDciZ&dMNZncJ=Vif<*WtG`eV zpIV7$17%xu!S}4!+osreUHMv?n!GE{MqJa_iA` zw8~K|v(Q+YC)<9RBse1YBrHl>fny(7-Akv9udky~O9n2@qZwx`zsLV-kE6KJy%%*U z^p3o`3Xfn2pW>4+En|Zl->)ry<~&W`{K7ffO7M2k1@WTa&mhhZ1HQyRR*j{B1bndh9XX}MLKPM-Bu|Bk!h!E!AdoZf--D`X@Qh+ zQ*_$t2*@Mu{Wbz0vM|xjwh)ciL+{4<-Kmyndl`wwQTyfOh)F_5qXIWCmpjs&vLb=o zGU;>CR2uZK*3Sx$C(?}VkjE>siADoNXdF>>iI?=FD$bFbRXa|Sk+U=qa?OZAH&fD$ z!(ldHZR#@EtYrLmGxc+UO4CpqEKrT{CvsYl(VkN-R%p`7qm>s{CoIc49cj|5T9t(% z{eZpIkW-+e*ow*UjkU3V@2Sr?TayK!CE`8bQct{Gy{-8*RlMbX`m;Bqx516F)(`x; zYl1H9?6L&wj`FX?BZoX!e&L4woYN`8j5ch9sOzEK2Sc_`R=tgs_=-&L@o9vf&HJ$G zxLT6rtJ3VN_3OKj?QqBJu&UQ3MSAYa*qG^>OopImlE~wxYJE??MQR`cJO=Me_AzBr0pCCiCCX1RzE3$2A6eikp+#Y#c1vsf7!VX7qD5SLm>`dVqdDwO zA6-I8c10zxW_^r~ijo2&ak)+l1?lk}nwk%b-rRO5o4Q*oX=sO#PM9LVS4I``@qQNIZpewIb$_hQ5-;>Ac1HF%DIOgZY z7tBw*;NX0JMslh&`a?vY2N}278_$PQQB!KcXU59&wVE8tdjfHVZ!de1Be(5GTovN~ zZUy3@s~E@{-Wcz>s!M++xt0WJJ@!I9rcsljmc+{IWS!25lm5({UayN(uxeG3D$*x}b+!Qe!~QQ0kDph$HaAtBZf$u)ol4feGh90#7P~n= zZ-cCzPOZDkxW>y)7lE{%vRnVv>-sMFC7N>V*gV3awo3)Ag7nq~d#CTtq_}KoQ+^h7MX9#juv zgzEycbbPN4XwBhDMQ~C-C)8V;=a2g4P{=wiX^zt5tu3QUw=Z8BKO-c|FTgiEBI{y2 zWgq|chQKnnUuPWqZlvknTr-!A2$NjNZuII3%U(ou@to%{kCAm-(q!kbQ?!xEI}~Xh zaZiEwC2Er;i`^S9Uj;4deLHfl05UaojL4lh4<`RKU|9;@TWW3`8XmUpmJC1s|6?d& z`D^MQ+YYAw1mXKO3&VP4c4d**>9X@MP7OuUs6U*@F3qGd%%0)Q$|6maM-Sj7hD`m_ z5~a^_Ptvt+yVa)XUwHXm48g!;s39l90Y@0I>Bc}blHHly-JRGJIb%iqZ_o9ZTC>F; zzm?9B-GT%PQD7R6Z>=Helb*ZEvEc^9#G#z^pWZ7*Bkg=A9K zO?Q0oYP}r)&YoS?Q`1)4Q)G0)@j`fZDGaLyWSwdcvHn|1|lLFmu zDA28BQLkp>b1<00#DE{+;HT+-wvJj3+T>uDI9{AjH(t``Tt)?YXiQHd>t$QqhjQo8 zOYySQ{q^tAvW+d~RFks>u6u2r%}P5tKxJI(6D`&@mHPIDwZyKt)yJ;X9g(kz!d}}8 zE5?B*oiWa!JDP;;`x9h87<3$MXy#s)EoPd+M}A;tSck$#=>Fk^mtWq*dHb~og;&+= zH%>liAO28un{F$EJYe|pDv96sSw&J~7LwOP+_kZ5kCAxw`9#Xi=8M`5^on$e-0T!9 zvxGa=ZQfJ|W>GK9l~^atv2AeUW$0#_%o)8k#mhQz(H z_Zgve-UW(QRYd#>?yB=Ho8ShZwaq`HIO`Mcp!O=Z9H|1on>K%T z11HQLkLhF|rU@SVz*I-=kL?gz0MDn>~x&+!mun4WPBwN|RvjqG#2uUYs5ly+-_ij$6^?J-B_^kCkUs zeT~)Vu0(vmG(%R=D}DL`37c^YG;PX=^9F5e(`9okUV1n0+Yj-6>BR3WUJq|@P4nT- zoUw23$7&zM?6&+El2e^jG$@@zmw$HKWdFKKYfFKNK#ZEI3+gp|QFRx57ScO&VQ(>n}%h&`*Wlw@Wu*t4{OGqkhJu62<(+PC6{2B+8s{+*H2lJX>$(6aMU- zDnGefH|{>X6|3mobMl4cTZfOnh~A1M44XW>qE*Vi+nbSOioN$)&u=8m=VTK+s_v6| zJ8<*GR3rJg_Zv6Nf*9Mr(dTLf0>!BrDkd9iU-11-v`Dx_Aa<=wzUa+Y^t~y1P6I@< z)edM;+($HUaJ%0$`2btt1?!}aNXuo+X`g2`R}AJm&!Y+#+ECxk5dF-=Ak;cKm|9^Z zH}{QYZ#P{B8lcuy)ccZk#aV zyCoo<{IF6X(@DOEO@2d#teQ3NS*g_R>Z?9Ty57xc^l{!HUD)5RKfV9y-4c%19=Z>I zoPZRAU&trHxN&^3!7YQ#(*&~Fa(Cr0R4zD1X}OSDC$XWC=_kIBK5G|A$RySi*-UXs zb$v|!YHCfeZ+M!U0ljN0@u#I%nf*j4D<%kTS#u6`;v4h>nxs$i>aCsbIz^bwT;VtB zZ5~gi*FXDmB#QuSi;3x`C^Dk-c!e(nr8|jkTT2)2c|N_q8XQ_>wo5?nO+A(%%dw2> zoAZH5<0^{{n4W!1cI0MEC|~f3&?04v3ER-mj+KqP<9=sOUj1C`4mVxJ2m<+I zdBUbsI$5}<{pHdEThKm8Wf_@yf2E)oqjzVWPdJ5z;fUs{OC;{a#grfYj&gA4?9)$R zTzCSJ;3Sx>f(O#w{P^ML|IiRXE9{954gX7fh5NS zo$f($E67%Ymy_$2V^f2}ML!=%YN6k$57z1bLsHA%N!@|s9=1?PVa@cbgdo~4NyLDp zPOjEaDPT+WpsXRPLQ<6cO!232Vbg(oA$~rPbnl?j**b!q7DrS2V+B+EO8-MJ1{lvk zR6P*<8{lf`;sFWKa4d-&iX{CP(vKCD<3Z340|^Fjs1lrVgEa{xvedx?G09_i$)N)A z9Orz{tT}irsN)$&S+IKH{Zi|Pr5V9Q4>nsz&2mtC>#cbFw?U!42Y=1{J3YAMI^;6= zmp|%}gt@z|rzK?h>R|ZEbubD#)arn0(p(UB52Pms(exm}EPp*&A#q^4)zsbTXFv$pY&Uz0>r4YWXXgcxuac+LUsu+5Wj1LuGKV!0>RuV||Pz1V^E zSfTVX2VnRl&@ zpUnSSED3LTyCAA+0y9Fkjek8^A$Gu#{*Hy{`#Wj^Y}ue;-}34L<*W%T3Jo0tODnL@ zAGhf6KwL<|!qgeGn(&KgWTz6f8)!NWxe4e`H(eTT#yn=cg0vV81V$cKAK9`KGD+Inr3q`x72%mOrr{$Dd_UaU9r)>ZW5?cD#lNF+=d<+i0ZVSP4J^Ub- zb)bcT)-6H*7wqRyLlSrg#M=(`g5cwl6HWIpKvtW;2fARf9bj-jQO6f7LT-13H($!7|x5(Crib$`bg_3NgD5#rex%0>X&Qmp?HJ(s%(~pcz-0gS_00z{8+(BdDCf)5zSWQg0$hEo%Cl8-@A@j_*&ApR)m zaP0B3J!Uxkmt#gF5M5K!3hER=wF>~fB`uT)^^{{pz%PPlh*jByAlvnSm~S-gC{Etm z@vr8KBr{qk1?i)}hZIUB#`L2Mh-WgWI61=U%pf^)8*E*31_*zUJLr`FkB6`r_?ZdA zej>XD>g`3)M?m7`{CcuNh%=88e$N{vTwP6l4o&~p&Jm)XH&@1muDTDhDoLICfY;e;4d;+aLI?#X%7q2`voU1W*)IOJV{EazFxf33OE*F98zb z?_b85SC?D^1&M$L+#9+Cm}}tEe=b8Dv^Wxu7C&0!gDxK42p!^}_Og6(?mz$`r~#5t zMq;h~??NDT0ldd?OshGv(l%@lO1l8e2%sCgJuu{kS18A13cly=_M|FVfl^5XV!&MB z_mdS;({!u|NS$_a13O&Dn{1Hqfs;O9n_3`nV?N%|L$1&CHo&sGe_$6->OBRY1J4%Fb^>p zXsG`7AV}+HJMv#e9F_WGCJrk8-$%-j401Czy!8Mc)&VNXc_``F6aP^VrEc4Ua`|9fdCgk``bkkYQ`vO-e2Ce|z$g^$!7e0LLSA8j3gn;Hdpr&v^mBi-OKk4$0 z?ygR5&R_)s-s%>_lhSOLtRSsP7-&tPJt+X;#Bt3nq@WMV_;~BE%Ty>0fFVK_7)C?u zpNaUN1i&{>%DymbCm26Pg7MQiDD%7qnn@$3;swb649VL7ZU+1Lt9Gwf=?73h@Tx+(T7=@?h?`hNZ#YC3#3wrGrEJ zIS~3=a|U~J-XX1+@$a-hiv(gf*xRrUS8<7kOO>;`*@#UbkvICS%;TE}$Yuy-;Xq8NGM zprAH}pl@h6sw5=Cuong#k|+88H!^%f!iJ4M^Ev#$`WbbAYYUKMV_H zjpL%U!^(jTOnxXQUie>fpu?2Il3~MxACm1v{ulD!miA!-HXm|1#o%zEHvRrOt%dk9 zY>e4M@Egg0fkA(AeEo%uV|obhzW6`De?`=Q*A_x_hYfCdh$of(FZiFKE{~Qa1P>eM z@DT4H|6lOu|Ex$5JZ#9jLwud$f5HC@fCsBRYzVYNJTBOL`=c&Fc?>An-?sl55DgX& z8xHFbZ?5`Z@IQlN!Qx>9BOT%^)c*_q&oD`_l3?S!97@sv`yl_bo#2--Z199bxW4|s z;KzkhIGPDaV-FiP;80Gh!Jl$qg9yOVU|(uJr1_Y@qd~vo3`>K3?e>tyXaL2ne3wzjP+BSndNRP6+=833b#6 literal 0 HcmV?d00001 diff --git a/dependencies/yaz-2.1.28/ChangeLog b/dependencies/yaz-2.1.28/ChangeLog new file mode 100644 index 0000000..927b430 --- /dev/null +++ b/dependencies/yaz-2.1.28/ChangeLog @@ -0,0 +1,16052 @@ +2006-08-31 17:40 adam + + * debian/changelog: Debian package 2.1.27-3. + +2006-08-30 22:43 adam + + * src/codetables.xml: Ideographic space gets converted to MARC-8 + 212321 instead of 212320 + +2006-08-30 22:40 adam + + * src/charconv.tcl: For duplicates in char conv trie, first + conversion takes precedence + +2006-08-30 22:14 adam + + * src/siconv.c, test/tsticonv.c: In character conversion to MARC-8, + use ESC$1 instead ESC(1 to switch to CJK character(s). + +2006-08-30 21:26 adam + + * src/tcpip.c: Use getaddrinfo on Windows too + +2006-08-30 20:58 adam + + * configure.ac, include/yaz/tcpip.h, src/tcpip.c: TCP/IP COMSTACK + uses getaddrinfo as resolver on systems that have it - instead of + gethostbyname_r which is not portable. + +2006-08-30 14:55 adam + + * src/tcpip.c: Define INADDR_NONE to -1 if undefined + +2006-08-30 14:47 adam + + * src/tcpip.c: Windows compile fix. + +2006-08-30 14:04 adam + + * NEWS, configure.ac, src/tcpip.c: Fixed bug #644: Using Non + Reentrant gethostbyname causes SIGSEGV. Function gethostbyname_r + is used instead of gethostbyname - when available. + +2006-08-28 21:18 adam + + * doc/: yaz-asncomp-man.xml, yaz-client-man.xml, + yaz-config-man.xml, yaz-iconv-man.xml, yaz-log-man.xml, + yaz-man.xml, yaz-marcdump-man.xml, yaz-ztest-man.xml, + zoomsh-man.xml: Added refentryinfo with productname + + productnumber + +2006-08-28 20:35 adam + + * doc/yaz-marcdump-man.xml: Add -l to cmdsynopsis list + +2006-08-28 18:54 adam + + * debian/changelog: Debian package 2.1.27-2 + +2006-08-28 16:18 adam + + * NEWS, doc/yaz-marcdump-man.xml, include/yaz/marcdisp.h, + src/marcdisp.c, util/marcdump.c: New option for yaz-marcdump + -lpos=value which allows setting a portion of MARC header to a + certain value. Added function yaz_mac_leader_spec. + +2006-08-28 14:34 adam + + * include/yaz/wrbuf.h, src/marcdisp.c, src/siconv.c, src/wrbuf.c, + test/Makefile.am, test/marc1, test/marc1.marc, test/marc2, + test/marc2.marc, test/marc3, test/marc3.marc, test/marc4, + test/marc4.marc, test/marc5, test/marc5.marc, test/marc6, + test/marc6.marc, test/marc7.chr, test/marc7.marc, test/marc7.xml, + test/marc7.xml.marc, test/marccol1.u8.1.lst, + test/marccol1.u8.2.lst, test/marccol1.u8.marc, + test/tstmarccol.sh, test/tstmarciso.sh, test/tstmarcxml.sh: Fixed + bug #643: Bad sequence for MARC conversions from UTF-8 to MARC-8. + Added test tstmarccol.sh for testing this. All sample ISO2709 + marc records renamed to have suffix .marc. + +2006-08-28 14:31 adam + + * util/marcdump.c: Reformat + +2006-08-27 21:04 adam + + * src/siconv.c, test/tsticonv.c: Fixed bug #642: Problem with sub + script symbols in conversion to MARC-8. + +2006-08-25 16:57 adam + + * src/zoom-c.c: Fixed bug #641: Sending a too-big packet sometimes + make ZOOM-C no-op subsequent operations. + +2006-08-24 16:29 heikki + + * buildconf.sh: Took away that -Werror from -d until all tests pass + cleanly + +2006-08-24 15:41 heikki + + * buildconf.sh: Added -Werror to the -d option, so that the + compilation ends at the first warning. + +2006-08-24 15:25 adam + + * include/yaz/comstack.h, src/comstack.c, src/seshigh.c, + src/tcpip.c: Make a facility for COMSTACK to reject too large + packages. The maximum size can be set with cs_ste_max_recv_bytes. + By default, maximum is 5000000 (approx 5 MB). If max size is + received error comstack error CSBUFSIZE is returned. The generic + frontend server checks for this error and sends a close + logs if + this condition occur. + +2006-08-24 15:19 adam + + * zoom/zoomtst9.c: Allow this update test to read record data from + standard input. + +2006-08-24 15:11 adam + + * include/yaz/odr.h: Doxygen comment. + +2006-08-24 15:10 adam + + * src/ber_any.c: completeBER, completeBER_n no longer checks for a + maximum size of 5 MB. Too large packages to be rejected are + dealt with in comstack instead. + +2006-08-24 14:51 adam + + * src/zoom-c.c: Fixed bug #640: ZOOM_connection_connect() does not + clear error indicators. + +2006-08-24 12:01 adam + + * include/yaz/yaz-iconv.h, src/siconv.c: Make a public function, + yaz_write_UTF8_char, to encode a UTF-8 sequence. + +2006-08-18 08:30 adam + + * src/: srw.c, srwutil.c: Move yaz_srw_get_core_v_1_1 to other + source. Define it always regardless of Libxml2 being available or + not. + +2006-08-17 00:50 adam + + * configure.ac, debian/changelog, debian/rules, + include/yaz/yaz-version.h: Towards 2.1.27. + +2006-08-17 00:47 adam + + * NEWS, include/yaz/srw.h, src/srw.c, src/srwutil.c, src/zoom-c.c: + Implemented bug #635: YAZ/ZOOM layer should include non SRU + options in the HTTP/GET URL. ZOOM-C reads option extraArgs. If + set the value of extraArgs is appended to SRU URI (POST/GET). + Value is _raw_ URI part, such as x-id-a=v1&x-id-b=v2 . + +2006-08-16 16:18 adam + + * src/zoom-c.c: Fixed bug #636: Bad rpn causes seg faults. Error + occurs for ZOOM C when a Scan is sent. Bug has been present in + YAZ since version 2.1.12. + +2006-08-16 15:32 adam + + * m4/idzebra-2.0.m4: Fix call to idzebra-config. + +2006-08-16 15:11 adam + + * m4/idzebra-2.0.m4: Fix require version + +2006-08-15 15:34 adam + + * NEWS, configure.ac, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.26. + +2006-08-15 15:31 adam + + * src/zoom-c.c: Fix ZOOM-C so that SOAP mode sends SOAP requests + +2006-08-15 15:30 adam + + * client/client.c: Fix interpretation of sru command + +2006-08-14 14:18 adam + + * m4/: idzebra-2.0.m4, idzebra.m4: Using suffix 2.0 for development + tools idzebra-config and idzebra.m4. This means that Zebra 2.0 + is completely separate from potential newer releases. + +2006-08-13 19:30 adam + + * include/yaz/nmem.h: Only declare nmem_text_node_cdata if Libxml2 + is available + +2006-08-11 15:10 adam + + * src/nmem.c: Fixes for nemm_memory statistics + +2006-08-11 14:57 adam + + * client/Makefile.am, zoom/Makefile.am: Include XML2_CFLAGS in + AM_CPPFLAGS + +2006-08-11 14:50 adam + + * include/yaz/nmem.h, src/nmem.c, src/nmemsdup.c: Changed prototype + for nmem_text_node_cdata so that ptr is using Libxml2 type rather + than void pointer. Added functions nmem_get_memory_in_use and + nmem_get_memory_free which returns size of block memory in use + and in free lists respectively. Added doxygen friendly comments + for nmem.h. + +2006-08-11 14:43 adam + + * include/yaz/nfa.h: Cosmetic for doxygen + +2006-08-09 16:03 adam + + * NEWS: Mention bug #626 + +2006-08-09 16:00 adam + + * src/nmem.c: Allow a flag nmem_release_in_heap to be set (1) in + which case NMEMs are reassigned to the memory heap rather than + re-used.. This should make it easier for valgrind etc to find + problems. + +2006-08-08 22:58 adam + + * src/: zoom-c.c, zoom-p.h: Attempted to fix bug #626. + +2006-08-08 22:35 adam + + * configure.ac, include/yaz/yaz-version.h: Version 2.1.25. + +2006-08-08 10:41 adam + + * NEWS, configure.ac, debian/changelog, debian/rules, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.1.24. + +2006-08-04 16:35 adam + + * include/yaz/yaz-iconv.h, src/nfaxml.c, src/siconv.c: Use + yaz_read_UTF8_char instead of xmlGetUTF8Char + +2006-08-03 11:27 adam + + * win/makefile: Updated to use iconv-1.9.2, libxml2 2.6.26, libxslt + 1.1.17. Added missing dependences for generated files. + +2006-08-01 14:03 adam + + * test/Makefile.am: Removed nfaxml..xml files from dist list. Not + in CVS yet + +2006-08-01 11:48 adam + + * NEWS: Copy news from ChangeLog + +2006-08-01 11:28 adam + + * src/marcdisp.c, test/tst_record_conv.c: Fixed + yaz_marc_write_iso2709 to honor character set conversion. + +2006-07-31 14:15 adam + + * src/seshigh.c: Fixed bug #627: addInfo not propagated by + srw_bend_fetch() when rr.surrogate_flag==0. + +2006-07-31 13:47 adam + + * doc/frontend.xml: Omit description of loglevel in + statserv_options_block. Bug #612 + +2006-07-31 13:42 adam + + * test/tstccl.c: CCL proximity tests + +2006-07-31 12:05 adam + + * src/log.c: Get rid of redundant parameter to yaz_log_to_file. + Reformat a bit + +2006-07-19 18:36 mike + + * test/.cvsignore: Ignore nfaxmltest1 and nfaxmltest1.log + +2006-07-14 15:06 heikki + + * include/yaz/nfa.h, include/yaz/nfaxml.h, src/nfa.c, src/nfaxml.c, + test/Makefile.am, test/nfaxmltest1.c: Loading of the nfa now + possible from an xml file. Had to disable two tests, because + make distcheck could not find the files I wanted to load. After + that distcheck passes all right. + +2006-07-07 15:39 heikki + + * include/yaz/test.h, src/test.c, test/Makefile.am, + test/nfaxmltest1.c: Added YAZ_CHECK_TODO macro, used it in + nfaxmltest1. Added rm *.log in tests make distclean. + +2006-07-07 15:02 marc + + * src/: seshigh.c, statserv.c: moved superflous session logging + from log_session to log_sessiondetails + +2006-07-07 14:40 marc + + * src/seshigh.c: added number of terms returned to client from Scan + or SRWScan to request log line + +2006-07-07 14:09 marc + + * src/querytowrbuf.c, test/tstxmlquery.c: replaced RPN: with RPN , + CQL: with CQL, ans so forth in log messages + +2006-07-07 12:31 marc + + * include/yaz/wrbuf.h, src/seshigh.c, src/wrbuf.c: further cleaning + of log messages, related to bug #405 + +2006-07-07 10:41 adam + + * win/makefile: Added nfaxml + +2006-07-07 10:36 adam + + * win/makefile: Added nfa + +2006-07-07 10:36 adam + + * src/nfa.c: Changed two vars to be of type size_t rather than int + +2006-07-07 10:32 adam + + * win/makefile: Split YAZ DLL objs into only 3 groups + +2006-07-07 09:14 adam + + * test/nfaxmltest1.c: Avoid decl after stmt + +2006-07-07 09:11 adam + + * test/nfaxmltest1.c: Make test pass + +2006-07-07 08:59 adam + + * include/yaz/test.h, src/test.c: Fix compilation on Windows. + Reformat a bit + +2006-07-06 17:06 marc + + * src/seshigh.c: downgraded superflous log comment from YAZ_LOG to + log_requestdetail + +2006-07-06 16:54 marc + + * src/seshigh.c: added database name in scan response, both Z39.50 + and SRU still missing to fix Z39.50 scan response with respect to + missing RPN: or CQL: identifier on APT display + +2006-07-06 16:16 marc + + * src/seshigh.c: partiallay fix bug #405 database name now part of + request log like Z39.50 log: + + 16:09:55-06/07 lt-zebrasrv(2) [request] Search Default OK 0 1 1+0 + RPN: @bla@bla + + or SRW log: + + 16:09:19-06/07 lt-zebrasrv(1) [request] SRWSearch Default OK 60 - + 1+0 CQL: bla + + needs still fixing in scan request + +2006-07-06 16:06 heikki + + * src/nfaxml.c: Fixed order of declarations + +2006-07-06 15:10 heikki + + * include/yaz/log.h, include/yaz/nfaxml.h, include/yaz/test.h, + src/log.c, src/nfaxml.c, src/test.c, test/nfaxmltest1.c: Added + yaz_log_trunc() to truncate the log file Added YAZ_CHECK_LOG + macro for enabling logging in the test files Changed test.c to + write to the log, if logging enabled Small changes to the + interface of nfaxml's interface + +2006-07-06 12:17 adam + + * buildconf.sh, configure.ac, yaz-config.in, client/client.c, + include/yaz/xmlquery.h, m4/yaz_libxml2.m4, src/libxml2_error.c, + src/marcdisp.c, src/nfaxml.c, src/nmemsdup.c, src/record_conv.c, + src/retrieval.c, src/seshigh.c, src/soap.c, src/srw.c, + src/srwutil.c, src/statserv.c, src/xmlquery.c, src/zoom-c.c, + test/nfaxmltest1.c, test/tst_record_conv.c, test/tst_retrieval.c, + test/tstsoap1.c, test/tstsoap2.c, test/tstxmlquery.c, + util/marcdump.c, util/srwtst.c, util/yaz-xmlquery.c, + win/makefile: For Libxml2 and friends, YAZ defines + YAZ_HAVE_{XML2,XSLT,EXSLT) in the compitation phase, but also for + yaz-config --cflags output. This allows us to have public headers + with Libxml2 stuff in them . It should also, eventually, make + Libxml2 checks redundant in packages using YAZ, such as yazproxy. + +2006-07-06 10:28 adam + + * src/nfaxml.c: Dont use xmlDocPtr local + +2006-07-06 10:26 adam + + * src/nfaxml.c: Yet another fix + +2006-07-06 09:45 adam + + * include/yaz/nfaxml.h, src/nfaxml.c: Fix compilation on systems + where Libxml2 does not exist + +2006-07-06 09:43 adam + + * m4/yaz_libxml2.m4: Reformat. Add local variables + +2006-07-06 08:09 adam + + * src/nfaxml.c: Disabled log_xml_error because it doesn't work on + older Libxml2 and also because YAZ already has a "catch lixml2 + error" handler. + +2006-07-06 08:08 adam + + * include/yaz/nfaxml.h: Removed HAVE_XML2, because public headers + never should rely on configure's definitions. + +2006-07-05 16:50 adam + + * src/cqltransform.c: Changed cql2pqf transformation to use a + different evaluation order. The new order is: always, relation, + structure, position, truncation, index and relationModifier. Old + order was: always, relation, relationModifier, structure, index, + position, truncation. Note that the the latter ones override + former ones for identical attributes.. The new scheme means that + it is possible to override any existing attribute with a + relationModifier. And also that it is possible to override + everything for the index rule (except the ones listed in + relationModifier). No order is perfect but this one, we believe, + covers more real cases.. The "always" should have been called + "default", since the attributes there can be overridden with all + the rest. + +2006-07-05 16:45 adam + + * test/: Makefile.am, cql2pqf-order.txt: Added cql2pqf which shows + evalutation order + +2006-07-05 15:05 adam + + * win/makefile: Simplify YAZ windows makefile + +2006-07-05 10:12 heikki + + * test/nfaxmltest1.c: Added the (empty) test file + +2006-07-05 10:10 heikki + + * test/Makefile.am: Removed duplicate nfatest1 + +2006-07-04 14:59 heikki + + * include/yaz/Makefile.am, include/yaz/nfa.h, include/yaz/nfaxml.h, + src/Makefile.am, src/nfa.c, src/nfaxml.c, test/Makefile.am: + Started the error handling in nfaxml. Not at all ready, but I + want it in CVS. + +2006-06-30 13:09 adam + + * src/log.c: Log format '%!' prints thread ID + +2006-06-28 23:41 adam + + * doc/Makefile.am: Fix dist-hook so that make distcheck works + +2006-06-28 15:26 adam + + * doc/common/Makefile.am: Build shared libraries by default. + Installing various man pages and programs with suffix -2.0 + (PACKAGE_SUFFIX), to enable multiple versions installed at the + same time. + +2006-06-27 14:23 adam + + * buildconf.sh, configure.ac, doc/installation.xml: Configure build + shared libraries by default. + +2006-06-20 23:20 adam + + * src/seshigh.c: Fixed option negotation for Frontend server . + Option triggerResourceCtrl was always set in response options. + Should only be set if option is also set in client options. + +2006-06-16 14:34 adam + + * debian/changelog, src/zoom-c.c: More work on a fix for bug #612. + We could have "dup" receive record events before. And ZOOM_event + could also miss events fired in case of task "completed". + +2006-06-16 12:20 adam + + * src/zoom-c.c: Fire ZOOM_EVENT_RECV_RECORD for cached records. Bug + #612. + +2006-06-16 12:19 adam + + * configure.ac, debian/changelog, debian/rules, + include/yaz/yaz-version.h: Internal version 2.1.23. + +2006-06-15 16:15 adam + + * .cvsignore, Makefile.am: Make ChangeLog in make dist rule + +2006-06-15 15:38 adam + + * NEWS, configure.ac, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.22 + +2006-06-15 14:53 adam + + * NEWS, include/yaz/backend.h, src/seshigh.c: hanged bend_update_rr + so that diagnostics are stored in uri, message and details.. + Previously diagnostics were stored in errcode, errstring. Patch + by Ko van der Sloot. Breaks binary compatibility.. but he's + probably the only one affected. + +2006-06-15 12:43 adam + + * zoom/.cvsignore: Ignore zoomst10 + +2006-06-15 12:38 adam + + * zoom/Makefile.am: Make the zoom programs by default. Problem is + that if we don't, we won't test whehter they even compile. + +2006-06-15 12:34 adam + + * NEWS, include/yaz/zoom.h, src/zoom-c.c, zoom/Makefile.am, + zoom/zoomtst10.c: Changed ZOOM_query_ccl2rpn function so that it + takes a CCL config as input and return error information + directly. + +2006-06-14 11:15 mike + + * src/zoom-c.c: Fix leak of temporary connections created by + ZOOM_query_c[cq]l2rpn() Thanks to Adam for spotting this. + +2006-06-14 07:47 adam + + * src/srwutil.c: Fix complication for YAZ, when libxml2 is not + present. + +2006-06-13 22:47 adam + + * win/: resource.h, yaz.rc: Use simpler version resource. + +2006-06-13 19:02 mike + + * NEWS: Describe ZOOM CCL support. + +2006-06-13 18:27 mike + + * src/zoom-c.c: I think this now supports CCL in scan, but I've not + tested it. + +2006-06-13 18:21 mike + + * src/zoom-c.c: Add ZOOM_query_ccl2rpn() and two new error-codes + that it generates: ZOOM_ERROR_CCL_CONFIG and ZOOM_ERROR_CCL_PARSE + Also, new static utility function ccl2pqf() which may be useful + elsewhere. Note that CCL is _not_ supported in scanning. + +2006-06-13 18:20 mike + + * include/yaz/zoom.h: Add ZOOM_query_ccl2rpn() and two new + error-codes that it generates: ZOOM_ERROR_CCL_CONFIG and + ZOOM_ERROR_CCL_PARSE + +2006-06-13 18:01 adam + + * doc/: client.xml, frontend.xml, introduction.xml, soap.xml, + tools.xml, yaz-client-commands.xml, yaz-client-man.xml, + yaz-man.xml, zoom.xml: Mention SRU rather than SRW (where + appropriate). + +2006-06-13 17:36 adam + + * configure.ac, yaz-config.in: Emacs shell-script for these. + +2006-06-13 15:45 marc + + * doc/common/common.ent: added a lot of info about attribute sets, + PQF query structure, and string use attributes + +2006-06-12 18:12 mike + + * util/marcdump.c: Avoid pointer-sign clash in + yaz_marc_decode_buf() call. + +2006-06-09 15:29 adam + + * NEWS: News about SSL + +2006-06-09 15:29 adam + + * configure.ac: YAZ' configure searches for OpenSSL by default. + +2006-06-09 14:40 adam + + * NEWS, src/tcpip.c: SSL comstack uses + SL_CTX_use_certificate_chain_file rather than + SL_CTX_use_certificate_file. See + http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html + +2006-06-08 22:55 adam + + * src/tpath.c: Fix other bug in yaz_filepath_resolve + +2006-06-08 12:26 adam + + * src/tpath.c, test/.cvsignore, test/Makefile.am, test/tst_tpath.c: + Fixed bug #606: Empty path in yaz_filepath_resolve reads from / . + Added a test for it : tst_tpath. + +2006-06-07 20:25 adam + + * win/yaz.nsi: Use same case for VS_RUNTIME_MANIFEST var + +2006-06-07 20:23 adam + + * win/yaz.nsi: Include manifest for msvcr80.dll + +2006-06-07 16:25 adam + + * win/: makefile, yaz.nsi: Remove debug DLLs part of dist. Add + .manifest files + +2006-06-07 13:18 adam + + * win/yaz.nsi: Bundle with Visual Studio 8 by default + +2006-06-07 13:17 adam + + * rfc1006/: makensap.c, rfct.c: Removed + +2006-06-07 13:13 adam + + * win/yaz.rc: Version 1.2.21 + +2006-06-07 12:51 adam + + * util/marcdump.c: Changed a few types from int to size_t + +2006-06-07 12:48 adam + + * configure.ac, include/yaz/yaz-version.h: Version 1.2.21 + +2006-06-07 11:25 adam + + * win/makefile: For VS, define _CRT_NONSTDC_NO_DEPRECATE, so we + don't warnings about good functions such as getpid, chdir, etc. + +2006-06-06 10:55 adam + + * doc/common/common.ent: Added some information about "classic" + Explain. + +2006-06-05 20:13 adam + + * src/srwutil.c: Use defined names for SRW diagnostics + +2006-06-05 20:08 adam + + * src/srwutil.c: Fixed bug #601: SRU decode does not issue + diagnostic for bad parameter values. + +2006-06-02 16:01 adam + + * debian/control: Add pkg-config to Builld-Depends + +2006-06-02 15:31 adam + + * win/yaz.nsi: .dsl,.dsl not part of windows dist + +2006-06-02 15:17 adam + + * NEWS, debian/changelog, include/yaz/yaz-version.h, win/yaz.nsi, + win/yaz.rc, configure.ac: Towards 2.1.20 + +2006-06-02 15:12 adam + + * NEWS, client/client.c, doc/yaz-client-commands.xml: Bug #600: SRU + GET, POST support for yaz-client. Introduced command 'sru' which + selects method SOAP/GET/POST. + +2006-06-02 15:08 adam + + * include/yaz/srw.h, include/yaz/zgdu.h, src/srwutil.c, src/zgdu.c, + src/zoom-c.c: Implemented yaz_sru_post_encode which builds a SRU + POST requeste. Implemented z_get_HTTP_Request_host_path which + builds a HTTP request using host, path. Updated ZOOM C to use + these. + +2006-06-02 13:04 adam + + * doc/common/: .cvsignore, Makefile.am, html.dsl.in, html.xsl.in, + man.xsl.in, tkl.xsl.in: Removed .in files no longer in use + (presumably). + +2006-06-02 12:50 adam + + * configure.ac, doc/common/Makefile.am, doc/common/id.htmlhelp.xsl, + doc/common/id.man.xsl, doc/common/id.tkl.xsl, m4/yaz.m4: Move + .xsl.in's to id.xsl's .. so that we reduce .in files further. + +2006-05-31 18:20 quinn + + * src/seshigh.c: Set present->comp to NULL when no ESN is present + in srw_bend_search + +2006-05-31 17:32 adam + + * src/zoom-c.c: Fixed bug #599: ODR error on incoming PDU. Error + was in the ODR buffer handling for ZOOM packages (extended + services). + +2006-05-31 00:00 adam + + * src/sortspec.c: Added one type cast from char to unsigned char + +2006-05-30 23:39 adam + + * NEWS, src/sortspec.c: Fixed bug #598: Allow missingValueAction to + be specified for sortSpec string. By default, the missing value + action is null. Use ! to specify "abort". Use = followed by + stringvalue to specify default value. + +2006-05-30 16:56 quinn + + * NEWS: Added entry about present handler + +2006-05-30 06:50 quinn + + * src/seshigh.c: Simplified comp for present called from + srw_bend_search + +2006-05-30 06:01 quinn + + * src/seshigh.c: Arranged to call bend_present if records are + displayed in SR* search + +2006-05-28 21:56 adam + + * configure.ac, doc/.cvsignore, doc/Makefile.am, doc/local.ent.in, + doc/yaz-client-man.xml, doc/yaz-man.xml, doc/yaz.xml, + doc/yaz.xml.in: Using man COMPILE_HTML, COMPILE_MAN.. yaz.xml no + longer generated by configure - only local.ent is. + +2006-05-28 21:12 adam + + * m4/yaz.m4: Setting XSLTPROC_COMPILE, MAN_COMPILE, HTML_COMPILE, + TKL_COMPILE for doc Makefile(s) to use. + +2006-05-28 20:52 adam + + * doc/common/: html.xsl.in, man.xsl.in, tkl.xsl.in: Use public URI + for XSL files + +2006-05-26 17:46 adam + + * win/makefile: Define HAVE_XSLTSAVERESULTTOSTRING for Windows + +2006-05-26 17:09 adam + + * buildconf.sh: Revert + +2006-05-26 17:07 adam + + * buildconf.sh, m4/yaz_libxml2.m4, src/record_conv.c: Check for + xsltSaveResultToString presence. + +2006-05-26 16:50 adam + + * m4/yaz_libxml2.m4: Check for pkg-config in YAZ_LIBXML2 macro + +2006-05-25 15:03 mike + + * buildconf.sh: Note two further Debain packages required for CVS + build. + +2006-05-25 09:43 adam + + * src/record_conv.c: Use xsltSaveResultToString instead of + xmlDocDumpFormatMemory in record conversion utility. See also bug + #594. + +2006-05-24 18:21 adam + + * buildconf.sh, configure.ac: Update info about depending packages + +2006-05-24 18:19 adam + + * m4/yaz.m4: Look for docbook xsl in other place for FreeBSD + +2006-05-24 16:44 adam + + * doc/: Makefile.am, yaz.xml.in: ../configure + make dist works + from CVS + +2006-05-24 16:19 adam + + * doc/yaz.xml.in: Align yaz main doc to use same header as man + pages xml docs + +2006-05-24 14:49 adam + + * doc/: yaz-config-man.xml, yaz-ztest-man.xml: Added URI in XMl + header + +2006-05-24 14:46 adam + + * doc/common/Makefile.am, doc/common/docbook-to-man.sh, + doc/common/docbook2man.sh, m4/yaz.m4: Goodbye docbook-to-man + wrappers. I won't miss you. + +2006-05-24 14:41 adam + + * doc/common/.cvsignore: Ignore this + +2006-05-24 14:33 adam + + * NEWS, configure.ac, debian/control, doc/Makefile.am, + doc/yaz-asncomp-man.xml, doc/yaz-client-man.xml, + doc/yaz-iconv-man.xml, doc/yaz-log-man.xml, doc/yaz-man.xml, + doc/yaz-marcdump-man.xml, doc/zoomsh-man.xml, + doc/common/Makefile.am, doc/common/man.xsl.in, win/yaz.nsi: + Documentation for YAZ is now based on the Docbook XML/XSLT using + xsltproc + N Walsh's stylesheets. It means that the CVS version + of YAZ is no longer depending on jade/openjade or docbook-to-man + scripts. PDF is no longer part of the distribution - but can + optionally be made using DSSSL/jadetex or FOP. + +2006-05-24 11:40 adam + + * win/makefile: Pass SRCDIR to csvto tcl script + +2006-05-23 22:43 adam + + * src/: csvtobib1.tcl, csvtosrw.tcl: Fix output dir for diagnostics + headers + +2006-05-23 22:39 adam + + * src/Makefile.am: Fix output dir for ASN.1 headers + +2006-05-23 21:13 adam + + * buildconf.sh: Mention docbook-to-man again + +2006-05-23 21:09 adam + + * doc/Makefile.am: Use docbook to man script wrapper + +2006-05-23 21:08 adam + + * doc/common/Makefile.am, m4/yaz.m4, doc/common/docbook-to-man.sh, + doc/common/docbook2man.sh: Docbook to man script wrapper. + +2006-05-23 16:07 adam + + * buildconf.sh: No longer require GNU make. Update list of + dependency ports + +2006-05-23 15:46 adam + + * m4/yaz.m4: Search more widely for docbookx.dtd + +2006-05-23 15:43 adam + + * src/: Makefile.am, csvtobib1.tcl, csvtosrw.tcl: Fixed bug #592: + CVS version of YAZ require gnu make. + +2006-05-23 15:17 adam + + * src/marcdisp.c: Fixed bug #593: Buffers too small for MARC string + buffers. + +2006-05-23 12:05 marc + + * configure.ac: added YAZ to config output + +2006-05-23 11:54 adam + + * buildconf.sh: CVS build on FreeBSD fixes: libtool, show info + about packages needed to build from + +2006-05-23 11:43 mike + + * src/charconv.tcl: Comment typo + +2006-05-23 11:40 marc + + * configure.ac: added configuration display and instructions + +2006-05-23 11:13 adam + + * configure.ac, src/Makefile.am: Added check for tclsh programs + +2006-05-23 10:01 adam + + * m4/yaz_libxml2.m4: Spell fix + +2006-05-22 21:08 adam + + * src/charconv.tcl, util/yaz-asncomp: Fix execution of tclsh. + +2006-05-22 17:52 mike + + * util/yaz-asncomp: Typo in comment + +2006-05-22 17:16 mike + + * src/charconv.tcl: Use FreeBSD's tclsh8.4 if it exists + +2006-05-22 17:16 mike + + * m4/yaz.m4: Probe additional paths for docbookx.dtd and + docbook.dsl (These are the ones used in FreeBSD) + +2006-05-22 17:15 mike + + * buildconf.sh: Remind BSD users to use gmake rather than make. + +2006-05-22 14:11 mike + + * buildconf.sh: Detect FreeBSD, where all the auto* tools are + screwed up, and make appropriate allowances for it. *sigh* + +2006-05-17 16:12 mike + + * etc/pqf.properties: Fix mistake: fuzzy matching is 5=103, not + 5=102 Add truncation.regexp, 5=102 + +2006-05-16 13:29 adam + + * yaz.spec.in: YAZ RPM require libxslt + +2006-05-14 22:03 adam + + * src/seshigh.c: Removed a few yaz_log calls + +2006-05-13 05:56 quinn + + * src/seshigh.c: Call 'present' backend function (when present) + from process_searchResponse when piggybacking is in effect. + Several SimpleServer gateways assume this, and I believe it's a + mistake that it hasn't been called before. + +2006-05-10 15:58 heikki + + * include/yaz/nfa.h, src/nfa.c, test/nfatest1.c: Higher-level + interfaces, fixing the bugs these uncovered. Better defined + return codes, doxygen comments, etc. + +2006-05-10 14:52 heikki + + * include/yaz/test.h, src/test.c: Added a way to get the verbosity + to test programs + +2006-05-10 09:34 adam + + * src/: zoom-c.c, zoom-p.h: Introduce a hash-table for the ZOOM C + record caching system; makes things faster if a large number of + records is fetched. + +2006-05-09 23:37 adam + + * src/siconv.c, test/tsticonv.c: Finish Latin-1 to MARC-8 + conversion handling. + +2006-05-09 18:13 mike + + * src/zoom-c.c: Temporary fix for ZOOM_resultset_record()'s + force_sync. + +2006-05-09 15:39 adam + + * etc/yazgfs.xml, include/yaz/retrieval.h, src/retrieval.c, + src/seshigh.c, test/tst_retrieval.c: Fixes for retrieval handling + in SRU mode.. The "virtual" record syntax was not seen as XML , + and, hence, there could be strange matches. Changed + configuration format: schema and backendschema renamed to name + and backendname respectively. + +2006-05-09 13:35 adam + + * src/retrieval.c: Use OID_STR_MAX for size of oid dot string + +2006-05-09 13:09 mike + + * src/retrieval.c: Render OID as string when used in + error-messages. -- was type-mismatch of printf("%s", oid) + +2006-05-08 21:48 adam + + * include/yaz/retrieval.h, src/retrieval.c, src/seshigh.c: Change + return values for yaz_retrieval_request a bit and improve + diagnostics in the case where retrieval match fails. + +2006-05-08 21:45 adam + + * include/yaz/oid.h, src/oid.c: Define max length of OID dot + string: OID_STR_MAX. + +2006-05-08 21:44 adam + + * etc/yazgfs.xml: Enable any element set and grs-1 in sample + +2006-05-08 20:18 adam + + * m4/yaz_libxml2.m4: If libexslt is not found, tell when pkg-config + is missing + +2006-05-08 18:58 quinn + + * src/record_conv.c: Calling exsltRegisterAll instead of + exsltDynRegister + +2006-05-08 14:20 adam + + * Makefile.am, configure.ac: Using macros YAZ_LIBXML2, YAZ_LIBXSLT, + YAZ_LIBEXSLT + +2006-05-08 14:19 adam + + * m4/yaz_libxml2.m4: Added m4 macros YAZ_LIBXML2, YAZ_LIBXSLT, + YAZ_LIBEXSLT. + +2006-05-08 13:58 adam + + * src/retrieval.c: Changed behavior of yaz_retrieval_request so + that no rules, i.e. no retrieval elements, results in "success" + (return value of 0). + +2006-05-08 13:50 adam + + * configure.ac: Avoid using "pkg-config libxslt" on systems that + don't report cflags which include libxml2. This is the case for + Debian woody. For a system like that revert to xslt-config. + +2006-05-08 12:16 adam + + * configure.ac, src/record_conv.c, src/retrieval.c, src/seshigh.c, + src/statserv.c, test/tst_record_conv.c: LibEXSLT support. New + configure option --with-exslt. + +2006-05-07 22:57 adam + + * client/: client.c, tabcomplete.c, tabcomplete.h: Rename + current_global_list to default_completer_list and localize it + +2006-05-07 22:32 adam + + * src/service.c: use strcmp instead of stricmp for -install,-remove + options + +2006-05-07 21:43 adam + + * client/: client.c, tabcomplete.c: Rename curret_global_list to + current_global_list; reformat. No code changes + +2006-05-07 21:38 adam + + * client/tabcomplete.c: tabcomplete only if readline is in use + (second attempt) + +2006-05-07 21:37 adam + + * client/tabcomplete.c: tabcomplete only if readline is in use + +2006-05-07 21:15 adam + + * client/client.c: Do nothing in command_generator if no readline + is present + +2006-05-07 21:13 adam + + * client/client.c: Do nothing in cmd_register_tab if no readline is + present + +2006-05-07 21:07 adam + + * client/client.c: Replace a few strdup/free with xstrdup/xfree + +2006-05-07 20:35 adam + + * src/srwutil.c: Use strchr instead of index (which was only + standard in 4.3 BSD). + +2006-05-07 20:26 adam + + * include/yaz/log.h, src/log.c: Reformat comments for Doxygen + +2006-05-07 19:45 adam + + * include/yaz/Makefile.am, include/yaz/libxml2_error.h, + src/Makefile.am, src/libxml2_error.c, src/record_conv.c, + src/retrieval.c, test/.cvsignore, test/tst_record_conv.c, + test/tst_retrieval.c: Added more tests for retrieval/record_conv + system. For retrieval, fixed error handling which occurred in the + case where syntax attribute was missing from retrieval element. + Libxml2/libxslt errors may be sent to yaz_log via new utility + libxml2_error_to_yazlog. + +2006-05-07 19:43 adam + + * win/makefile: Added retrieval + libxml2_error + +2006-05-07 16:48 adam + + * NEWS, etc/yazgfs.xml, include/yaz/record_conv.h, + include/yaz/retrieval.h, src/record_conv.c, src/retrieval.c, + src/seshigh.c, src/session.h, src/statserv.c, + test/tst_record_conv.c, test/tst_retrieval.c: Added retrieval + handling support in Generic Frontend Server to support conversion + between MARC/XML as well as XSLTtransforms. See etc/yazgfs.xml + for an example. + +2006-05-07 16:31 adam + + * src/srw.c: Initialize username and password in yaz_srw_codec. + +2006-05-06 02:52 quinn + + * ztest/ztest.c: Removed diagnostic output that shouldn't have been + checked in. + +2006-05-06 02:51 quinn + + * NEWS: Addition of authentication parameters + +2006-05-05 22:02 quinn + + * include/yaz/srw.h, src/seshigh.c, src/srwutil.c, ztest/ztest.c: + Supporting Username/password in SRU server mode, either through + x-username/x-password SRU parameters, or through Basic HTTP + authentication. + +2006-05-05 20:37 adam + + * include/yaz/retrieval.h, src/retrieval.c, test/tst_record_conv.c, + test/tst_retrieval.c: Implement yaz_retrieval_configure. + +2006-05-05 16:04 heikki + + * src/nfa.c: Removed a debug print I had forgotten in + +2006-05-05 16:02 heikki + + * include/yaz/nfa.h, src/nfa.c, test/nfatest1.c: Range converter + for actually converting character ranges Fixed a nasty off-by-one + in the endpoints of backrefs. Added tests for them. + +2006-05-05 11:14 heikki + + * include/yaz/nfa.h, src/nfa.c, test/nfatest1.c: Fixed the + interface to match, merged with Adam's whitespace patch, First + converters work + +2006-05-04 22:00 adam + + * include/yaz/Makefile.am, include/yaz/record_conv.h, + include/yaz/retrieval.h, src/Makefile.am, src/record_conv.c, + src/retrieval.c, test/Makefile.am, test/tst_record_conv.c, + test/tst_retrieval.c: First code bits of record retrieval code + +2006-05-04 21:59 adam + + * Doxyfile.in: Predefine HAVE_XSLT, HAVE_XML2 for Doxygen + +2006-05-04 20:58 adam + + * src/nfa.c, test/nfatest1.c: Reformat with a little more spacing + (no code changes) + +2006-05-04 20:58 adam + + * include/yaz/nfa.h: Fixed one doxygen warning + +2006-05-04 20:22 adam + + * test/tst_record_conv.c: Ensure tst_record_conv.c may include + config.h + +2006-05-04 17:31 adam + + * src/record_conv.c: Make things compile --without-xslt + +2006-05-03 15:47 heikki + + * include/yaz/nfa.h, src/nfa.c, test/nfatest1.c: The NFA seems to + work now (as far as I can see). Still needs to do the output + side of it. + +2006-05-03 15:38 adam + + * doc/installation.xml: Update Windows installation for libxslt + enabling. + +2006-05-03 15:31 adam + + * win/makefile: Fix makefile. Added record_conv.c + +2006-05-03 15:27 adam + + * win/: makefile, yaz.nsi: libxslt part of windows build + +2006-05-03 15:04 adam + + * include/yaz/nmem.h, include/yaz/record_conv.h, src/nmemsdup.c, + src/record_conv.c, test/Makefile.am, test/tst_record_conv.c, + test/tst_record_conv.xsl: Record conversion utility + (yaz_record_conv_t) supports marc and XSLT conversions. + +2006-05-03 15:01 adam + + * test/tsticonv.c: Prepare test for latin-1 -> utf-8 with combo + chars + +2006-05-03 14:09 mike + + * test/.cvsignore: Ignore generated "nfatest1" + +2006-05-03 14:02 adam + + * buildconf.sh, configure.ac, debian/control, debian/rules: YAZ + optionally uses libxslt. Check for xml2 obsoleted because libxslt + includes it. + +2006-05-03 13:36 mike + + * src/nfa.c: Avoid mixed stmt/dcl + +2006-05-03 13:09 heikki + + * include/yaz/Makefile.am, include/yaz/nfa.h, src/nfa.c: Added + nfa.h to makefile.am. Work continues on the nfa + +2006-05-03 11:04 heikki + + * include/yaz/nfa.h, src/Makefile.am, src/nfa.c, test/Makefile.am, + test/nfatest1.c: Added my new NFA character normalizer. Not yet + ready, but want to have it in the cvs already now. + +2006-05-02 22:47 adam + + * include/yaz/Makefile.am, include/yaz/nmem.h, + include/yaz/record_conv.h, src/Makefile.am, src/marcdisp.c, + src/nmemsdup.c, src/record_conv.c, src/xmlquery.c, + test/.cvsignore, test/Makefile.am, test/tst_record_conv.c: Added + nmem_text_node_cdata which takes xmlNode CDATA content and + creates NMEM string. Added first parts of record conversion + utility (yaz_record_conv_t). + +2006-05-02 14:11 adam + + * include/yaz/tpath.h: Fixed Doxygen comments + +2006-04-30 14:53 adam + + * doc/common/common.ent: Added more URLs to YAZ ZOOM doc + +2006-04-30 09:23 adam + + * win/makefile: Dont use /YX + +2006-04-30 08:50 adam + + * doc/installation.xml: Cosmetic fix + +2006-04-27 22:08 marc + + * debian/changelog, win/yaz.nsi, win/yaz.rc: bumped yaz number to + 2.1.19-1 the resting places + +2006-04-27 21:49 adam + + * doc/common/common.ent: Fix ubuntu entity. Added download YAZ + debian link + +2006-04-27 18:01 adam + + * doc/common/print.dsl.in: Enable PDF media objects for print DSSSL + +2006-04-27 15:03 adam + + * doc/common/common.ent: Added URL for cplusplus binding + +2006-04-27 11:46 adam + + * doc/common/common.ent: Added a couple of entities + +2006-04-27 10:39 adam + + * src/tpath.c: Always include sys/stat.h + +2006-04-26 18:58 heikki + + * src/test.c: Simplified outout to keep it on one line, even when + verbose + +2006-04-26 14:16 adam + + * doc/common/common.ent: Added more URLs + +2006-04-26 12:01 adam + + * include/yaz/tpath.h, src/tpath.c: More comments on path.{c,h} + functions + +2006-04-26 11:40 adam + + * configure.ac, debian/rules, include/yaz/tpath.h, + include/yaz/yaz-version.h, src/tpath.c, test/Makefile.am, + test/tst_filepath.c: Bump version to 2.1.19. Added function + yaz_filepath_resolve. + +2006-04-25 13:25 marc + + * doc/: asn.xml, bookinfo.xml, client.xml, comstack.xml, + credits.xml, frontend.xml, future.xml, gfs-options.xml, + gfs-synopsis.xml, gfs-virtual.xml, indexdata.xml, + installation.xml, introduction.xml, license.xml, odr.xml, + tools.xml, yaz-asncomp-man.xml, yaz-client-commands.xml, + yaz-client-man.xml, yaz-config-man.xml, yaz-iconv-man.xml, + yaz-log-man.xml, yaz-man.xml, yaz-marcdump-man.xml, + yaz-ztest-man.xml, yaz.xml.in, zoom.xml, zoomsh-man.xml: + reverting to sgml mode + +2006-04-25 01:21 adam + + * NEWS, src/siconv.c, test/tsticonv.c: Added support for a new + character set MARC8s identical to MARC8 except that it converts + combined characters to single Unicode characters in the Latin-1 + range (when possible). + +2006-04-24 14:54 marc + + * doc/yaz.xml.in: insered Emacs nxml-mode in bottom of XML files + +2006-04-24 14:41 marc + + * doc/: asn.xml, bookinfo.xml, client.xml, comstack.xml, + credits.xml, frontend.xml, future.xml, gfs-options.xml, + gfs-synopsis.xml, gfs-virtual.xml, indexdata.xml, + installation.xml, introduction.xml, license.xml, odr.xml, + tools.xml, yaz-asncomp-man.xml, yaz-client-commands.xml, + yaz-client-man.xml, yaz-config-man.xml, yaz-iconv-man.xml, + yaz-log-man.xml, yaz-man.xml, yaz-marcdump-man.xml, + yaz-ztest-man.xml, zoom.xml, zoomsh-man.xml: corrected DOCTYPE + header and called emacs nxml-mode instead of sgml-mode in bottom + of files + +2006-04-24 14:12 adam + + * doc/: introduction.xml, odr.xml: Fix a couple of URL entities + +2006-04-24 12:30 adam + + * zoom/zoomsh.c: Cast to long + +2006-04-24 11:35 adam + + * yaz.spec.in: /usr/share/yaz in libyaz-devel package + +2006-04-24 11:26 adam + + * .cvsignore: Ignore dox directory + +2006-04-24 11:24 adam + + * NEWS: Update release date + +2006-04-24 11:21 adam + + * doc/: frontend.xml, installation.xml, introduction.xml, odr.xml, + soap.xml, tools.xml, yaz-client-commands.xml, yaz-client-man.xml, + yaz-man.xml, yaz.xml.in, zoom.xml: Use URL entities for most link + references + +2006-04-24 11:13 adam + + * doc/common/common.ent: Added several URLs + +2006-04-24 10:20 adam + + * m4/yaz.m4: Look for in in ../yaz-* , NOT ../yaz* + +2006-04-24 08:33 adam + + * doc/common/common.ent: Added a couple of URLs to Boost + +2006-04-23 21:07 adam + + * doc/common/: Makefile.am, common.ent: Added common URL entities + +2006-04-21 16:24 adam + + * Makefile.am, debian/changelog, debian/libyaz-dev.install, + debian/libyaz-dev.manpages, debian/libyaz.install, + debian/yaz.install, debian/yaz.manpages: Debian package changes: + moved yaz.7 from libyaz to libyaz-dev; moved man page lists to + .manpages files. + +2006-04-21 15:50 adam + + * debian/: control, libyaz.install, libyaz.postinst, + libyaz2.install, libyaz2.postinst, rules: Back to Debian package + libyaz (from libyaz2 experiment) + +2006-04-21 15:02 marc + + * debian/control: removed unnecessary misc:Depends + +2006-04-21 14:54 adam + + * buildconf.sh: buildconf.sh adds GCC option + -Wdeclaration-after-statement + +2006-04-21 14:54 marc + + * Makefile.am, debian/compat, debian/control, + debian/libyaz.install, debian/libyaz2.install, + debian/libyaz2.postinst, debian/postinst, debian/rules, + src/Makefile.am: Debian package upgrade to follow policy 3.6.2 + and renamed libjaz to libyaz2. Virtual package libyaz created + for transition period. Lib API number bumped to 2.1.0 + +2006-04-21 14:40 adam + + * TODO: Added comment about dh_makeshlibs in debian/rules + +2006-04-21 12:30 adam + + * util/pqf2pqf.xsl: Revert last change + +2006-04-21 12:28 adam + + * client/client.c, src/nmem.c, src/seshigh.c, src/xmalloc.c, + src/zoom-c.c, util/marcdump.c, util/pqf2pqf.xsl, util/yaziconv.c, + zoom/zoomsh.c, zoom/zoomtst1.c, zoom/zoomtst2.c, zoom/zoomtst3.c, + zoom/zoomtst4.c, zoom/zoomtst5.c, zoom/zoomtst6.c, + zoom/zoomtst7.c, zoom/zoomtst8.c, zoom/zoomtst9.c, ztest/ztest.c: + Added several type casts due to no portable way of doing printf + of a size_t variable. + +2006-04-21 10:57 adam + + * debian/: changelog, yaz-doc.install: Added common directory to be + part of yaz-doc + +2006-04-21 10:53 adam + + * debian/rules: API version 2.1.17 + +2006-04-20 22:50 adam + + * include/yaz/ill.h, include/yaz/test.h, include/yaz/xmlquery.h, + src/charconv.tcl, src/csvtodiag.tcl, src/mime.c, src/mime.h, + src/test.c, src/xmlquery.c, src/z3950oid.c: More Doxygen stuff; + for auto-generated code too + +2006-04-20 22:45 adam + + * doc/: Doxyfile, Makefile.am: Remove Doxyfile. There is already + another one in root dir of YAZ + +2006-04-20 22:35 adam + + * include/yaz/marcdisp.h, src/marcdisp.c: Exteded + yaz_marc_write_marcxhange new parameters, format and type. More + Doxygen comments. + +2006-04-20 21:47 adam + + * include/yaz/marcdisp.h, src/marcdisp.c, test/marc1.xml, + test/marc1.xml.marc, test/marc2.xml, test/marc2.xml.marc, + test/marc3.xml, test/marc3.xml.marc, test/marc4.xml, + test/marc4.xml.marc, test/marc6.xml, test/marc6.xml.marc, + test/tstmarciso.sh, test/tstmarcxml.sh: Added utility + yaz_marc_modify_leader which modifies a one or more characters in + a MARC leader. Function yaz_write_marcxml and output mode + YAZ_MARC_MARCXML sets leader byte at pos = 'a'. Actually this is + not new (YAZ 2.1.16 did that too, but it was done differently). + +2006-04-20 15:46 adam + + * doc/Makefile.am: Fix path to id.png in copy + +2006-04-20 15:45 adam + + * win/yaz.nsi: Simplify file specs for devel+doc by using File /r. + +2006-04-20 15:11 adam + + * doc/common/Makefile.am: xml.dcl part of dist + +2006-04-20 15:04 adam + + * doc/Makefile.am: Added common to SUBDIRS + +2006-04-20 14:46 adam + + * doc/common/Makefile.am: Remove traling whitespace following + backslash + +2006-04-20 14:45 adam + + * doc/common/Makefile.am: Extra NL at end of file + +2006-04-20 14:10 adam + + * doc/common/: Makefile.am, ref2dbinc.xsl: Added stylesheet which + converts manrefs to docbook book content. + +2006-04-20 13:56 adam + + * configure.ac, doc/Makefile.am, doc/bookinfo.xml, doc/id.eps, + doc/id.png, doc/indexdata.sh, doc/tkl.xsl.in, doc/xml.dcl, + doc/yaz.css, doc/yazhtml.dsl.in, doc/yazhtml.xsl.in, + doc/yazprint.dsl.in: Updated to use doc/common + (id-docbook-common) + +2006-04-20 13:46 adam + + * doc/common/: Makefile.am, id.eps: Added id.eps + +2006-04-20 13:10 adam + + * doc/common/: Makefile.am, id.png: Added indexdata png + +2006-04-20 12:22 adam + + * doc/common/: .cvsignore, Makefile.am: Added + +2006-04-20 12:05 adam + + * doc/common/: html.dsl.in, html.xsl.in: Fix path to style1.css + +2006-04-20 11:43 adam + + * doc/common/: README, html.dsl.in, html.xsl.in, print.dsl.in, + style1.css, tkl.xsl.in, xml.dcl: First set of files for shared + Docbook files. + +2006-04-20 11:43 adam + + * doc/common/: README, html.dsl.in, html.xsl.in, print.dsl.in, + style1.css, tkl.xsl.in, xml.dcl: Initial revision + +2006-04-20 10:43 adam + + * NEWS: Remove 2.1.17 from this + +2006-04-20 10:38 marc + + * NEWS, TODO, configure.ac, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: bumped + version number to 2.1.18 + +2006-04-20 10:25 adam + + * util/yaz-asncomp: ASN.1 compiler 0.4: generates brief Doxygen + file header for generated .h/.c files. + +2006-04-20 10:24 marc + + * NEWS: bumped number to 2.1.17 + +2006-04-20 10:24 adam + + * src/Makefile.am: Let all .asn depend on yaz-asncomp + +2006-04-20 10:04 marc + + * debian/changelog: bumped version to 2.1.17-1 + +2006-04-20 02:01 adam + + * src/srwutil.c: Fixed bug in yaz_srw_get: case Z_SRW_scan_response + missed a break. + +2006-04-20 01:49 adam + + * win/makefile: Updated for MARC-8 conversion + +2006-04-20 01:48 adam + + * src/siconv.c: Added another safe cast to prevent warning + +2006-04-20 01:46 adam + + * src/: .cvsignore, siconv.c: Added safe cast to prevent warning + +2006-04-20 01:15 adam + + * NEWS, include/yaz/yaz-iconv.h, src/Makefile.am, src/charconv.tcl, + src/diag-entry.c, src/diag-entry.h, src/siconv.c, + test/tsticonv.c: Implemented yaz_iconv to support conversion to + MARC-8 + +2006-04-19 13:00 adam + + * test/marc5: Missed this file + +2006-04-19 12:05 adam + + * NEWS, doc/yaz-marcdump-man.xml, include/yaz/marcdisp.h, + include/yaz/wrbuf.h, src/marcdisp.c, src/querytowrbuf.c, + src/wrbuf.c, src/xmlquery.c, src/zoom-c.c, test/Makefile.am, + test/marc1.chr, test/marc1.xml, test/marc1.xml.marc, + test/marc2.chr, test/marc2.xml, test/marc2.xml.marc, + test/marc3.chr, test/marc3.xml, test/marc3.xml.marc, + test/marc4.chr, test/marc4.xml, test/marc4.xml.marc, + test/marc5.chr, test/marc5.xml, test/marc5.xml.marc, test/marc6, + test/marc6.chr, test/marc6.xml, test/marc6.xml.marc, + test/tstmarc.sh, test/tstmarciso.sh, test/tstmarcxml.sh, + util/marcdump.c: New facilities for the MARC module. The reading + - and writing of content are separate methods for the yaz_marc_t + handle. The following read functions are available: + yaz_marc_read_iso2709 (Reads MARC in ISO2709 format), + yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange format). + Write functions have prefix yaz_marc_write_.. The existing + utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still + available. Removed support for OAI-MARC and simplexml (not the + simplexml from PHP5). + +2006-04-19 11:05 adam + + * zoom/zoomtst3.c: Better usage info + +2006-04-17 09:40 adam + + * src/ber_oid.c: For decoding of OIDs, do more sanity checks , so + that we don't end up in a situation where an OID can be decoded + but not encoded. + +2006-04-12 20:25 adam + + * doc/frontend.xml: Spellfix for VirtualHost examle + +2006-04-07 13:27 adam + + * NEWS, include/yaz/zoom.h, src/zoom-c.c: Added a new ZOOM event + type ZOOM_EVENT_END which signals no more events to be returned + for this connection. + +2006-04-05 14:05 mike + + * src/seshigh.c: RPN buffer bumped from 512 chars to 5120. + +2006-04-05 14:04 mike + + * src/cqltransform.c: Report SRU diagnostic 12 (too many chars in + query) when rendering the compiled CQL query out into PQF tries + to overrun the supplied buffer. Fixes a bug that was mystifying + while we put the Alvis demo together. + +2006-04-05 13:55 mike + + * test/.cvsignore: Ignore generated tstpquery + +2006-04-01 13:47 adam + + * test/tstpquery.c: More PQF parser tests + +2006-04-01 13:45 adam + + * include/yaz/pquery.h, src/pquery.c, test/Makefile.am, + test/tstpquery.c: Fixed 523: PQF parser does not properly + diagnose @prox syntax errors. Added a few PQF parser diagnostics + to improve error messages. Catch terms that aren't unsigned + ints.. E.g. the invalid @attr p=q x . + +2006-04-01 09:21 adam + + * src/zoom-c.c: Fixed bug #558: present request out of range with + presentChunk/step + +2006-03-31 14:49 adam + + * configure.ac, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: 2.1.17 + +2006-03-31 11:55 adam + + * configure.ac, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.16 + +2006-03-31 11:54 adam + + * doc/yaz-man.xml: 2006 + +2006-03-31 11:51 adam + + * NEWS, client/client.c, include/yaz/charneg.h, src/charneg.c, + src/zoom-c.c: Allow multiple languages and charsets to be + specified with yaz-client. Each item must be separated by comma + (NO BLANKS). E.g. negcharset iso-8859-1,utf-8 Added + az_set_proposal_charneg_list. + +2006-03-30 20:05 adam + + * m4/idzebra.m4: Mention idzebra in error message + +2006-03-30 20:04 adam + + * m4/yazpp.m4: Mention YAZ++ in error message + +2006-03-30 20:04 adam + + * m4/yaz.m4: Mention YAZ in error message + +2006-03-30 20:00 adam + + * m4/idzebra.m4: idzebra.m4 moved to sub directory m4 + +2006-03-30 19:31 adam + + * m4/usemarcon.m4: usemarcon macros added + +2006-03-30 18:31 adam + + * m4/yazpp.m4: Added yazpp.m4 from yazpp/yaz++ + +2006-03-30 18:30 adam + + * Makefile.am, buildconf.sh, yaz.m4: yaz.m4 moved to sub directory + m4 + +2006-03-30 18:16 adam + + * m4/yaz.m4: Common m4 files . + +2006-03-30 18:16 adam + + * m4/yaz.m4: Initial revision + +2006-03-30 16:15 adam + + * include/yaz/proto.h: Add YAZ_EXPORT yaz_opac_decode_wrbuf + +2006-03-30 09:45 adam + + * buildconf.sh: Depends on libreadline5-dev + +2006-03-30 09:36 adam + + * NEWS: More NEWS + +2006-03-29 17:26 mike + + * NEWS: CQL prox support. + +2006-03-29 16:47 mike + + * etc/pqf.properties: Better rule for "fuzzy" + +2006-03-28 18:53 adam + + * configure.ac: Require autoconf 2.59 or later. Extra m4 quoting + +2006-03-28 18:43 adam + + * configure.ac: Fix maintainer line + +2006-03-28 18:42 adam + + * configure.ac: Using config auxdir config. + +2006-03-28 18:36 adam + + * buildconf.sh, configure.ac, configure.in: Move to automake1.8/1.9 + +2006-03-27 11:57 adam + + * NEWS: More news + +2006-03-26 23:00 marc + + * src/seshigh.c: java script mime type added to the list of allowed + mime types to be served by YAZ http server + +2006-03-25 15:42 adam + + * test/tsticonv.c: More testing for bug #537 + +2006-03-25 15:41 adam + + * src/siconv.c: Fixed bug #537: marc-8 -> iso-8859-1 konvertering + fails for some sequences. + +2006-03-24 14:58 adam + + * src/log.c: For yaz_log, allow special timeformat %! to display + thread ID + +2006-03-22 18:58 mike + + * src/statserv.c: Reinsert initialiser for __UNUSED_loglevel + +2006-03-22 14:55 mike + + * include/yaz/backend.h: Put __UNUSED_loglevel back into structure + to maintain binary compatibility. + +2006-03-22 14:50 mike + + * src/statserv.c: Do not impose STAT_DEFAULT_LOG_LEVEL if the + YAZ_LOG environment variable is set. Cleaner handling of logging + options. + +2006-03-22 14:38 mike + + * include/yaz/backend.h: Removed loglevel from struct + statserv_options_block -- it was only there as a hack from the + days when yaz_log_init() was the only way to change any setting, + and required all three to be set. + +2006-03-22 14:03 adam + + * src/srwutil.c: Accept application/soap+xml as content-type for + SOAP msg + +2006-03-21 14:58 adam + + * include/yaz/log.h, src/log.c: Reestablish log_event_{start,end}. + +2006-03-21 13:54 adam + + * include/yaz/log.h, src/log.c, test/tstlog.c: Remove + log_event_{start,end}. Add function yaz_log_set_handler instead + +2006-03-21 13:32 adam + + * test/tstlog.c: Allow Hook function to be tested (log_event_start) + +2006-03-21 13:31 adam + + * src/log.c: Allow yaz_log logging to be disabled using + yaz_log_init_file with fname == NULL. Output can be still be + captured using log_event_start calls. Useful if YAZ is to be + using foreign log facility.. + +2006-03-20 15:56 mike + + * src/cqltransform.c: Support for translating proximity nodes from + CQL to PQF, including modifiers. + +2006-03-20 10:38 mike + + * buildconf.sh: Fix typo "libtools" (is now "libtool") + +2006-03-16 13:30 adam + + * src/seshigh.c: Ensure Bib-1 diagnostic is mapped to SRW + diagnostic for bend_init + +2006-03-16 09:55 adam + + * src/seshigh.c: For GFS - SRU handling, empty stylesheet means no + stylesheet ref + +2006-03-16 09:36 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Bump to dev version 2.1.15 + +2006-03-15 15:12 marc + + * src/seshigh.c: removed superflous log message + +2006-03-15 14:32 adam + + * doc/gfs-virtual.xml, etc/yazgfs.xml, src/Makefile.am, src/mime.c, + src/mime.h, src/seshigh.c, src/session.h, src/statserv.c, + win/makefile: Added support for file access in GFS to facilitate + static web pages, such XSL/CSS/HTML files. + +2006-03-14 10:04 adam + + * configure.in, debian/changelog, debian/rules, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.1.14 + +2006-03-14 09:58 adam + + * NEWS: Towards 2.1.14 + +2006-03-14 09:50 adam + + * win/: makefile, yaz.nsi: Make bin/yazd.dll + lib/yazd.lib part of + Development component. + +2006-03-13 18:33 mike + + * NEWS, src/log.c: YAZ_LOG environment variable. + +2006-03-13 13:14 adam + + * ztest/ztest.c: Omit unnecessary warnings in ztest sample code. + +2006-03-13 12:59 adam + + * src/: Makefile.am, seshigh.c: More informative GFS WRT Extended + Services + +2006-03-13 11:48 adam + + * src/zoom-c.c: Survive in set_DatabaseNames if connection has not + been connected. + +2006-03-10 18:18 mike + + * src/cqltransform.c, NEWS: Recognise the "always" configuration + element. + +2006-03-10 15:43 mike + + * src/cqltransform.c, NEWS: Map structure and other attributes + before indexes, so that index-specific structures can override + defaults. So: structure.* = 4=1 index.dc.date = + 1=date-modified 4=5 does the right thing. + +2006-03-10 11:43 mike + + * src/cqlstrer.c: Fix URL of SRU diagnostics list. (Yes, Ray has + moved it. Thanks, Ray.) + +2006-03-09 17:14 mike + + * util/.cvsignore: Ignore yaz-xmlquery + +2006-03-06 09:11 adam + + * util/yaz-xmlquery.c: Null terminate a null-terminated string + +2006-03-02 10:38 adam + + * src/cqlstd.y: BNF for nested queries. + +2006-03-02 10:37 adam + + * src/cqlstd.y: Added sort extension + +2006-03-02 10:20 marc + + * util/pqf2pqf.xsl: added complex rewrite rules for multiple + attribute combinations + +2006-03-02 00:24 adam + + * NEWS, include/yaz/srw.h, include/yaz/zgdu.h, src/soap.c, + src/srwutil.c, src/zgdu.c, src/zoom-c.c, src/zoom-p.h, + zoom/zoomtst2.c: Added SRU-GET and SRU-POST support for ZOOM C. + Option "sru" specifies which mode to use; one of "post", "get" or + "soap" (SRW, default). + +2006-03-01 23:33 adam + + * src/srw.c: fix decode of resultSetTTL + +2006-02-27 22:31 adam + + * src/seshigh.c: Fixed bug in GFS: bend_scan handler was not called + when PQF-to-CQL conversion was enabled. + +2006-02-24 15:07 marc + + * util/pqf2pqf.xsl: added some examples of XMLPQF to XMLPQF query + rewrites look in the first comments of the stylesheet to see how + it is run. probably this is the wrong place, but I checked it in + here since I do not know of a better place. + +2006-02-23 14:15 adam + + * src/charconv.tcl: Fixed bug #488: tsticonv fails on Solaris with + Sun C compiler. We no longer use a negative value in + yaz_iconv_trie_dir.ptr member for a "null" pointer. Instead + integer 0 is used and actual ptrs have an offset +1. + +2006-02-23 14:09 adam + + * src/xmlquery.c: Dont return value in void function + +2006-02-23 12:17 adam + + * src/xmlquery.c, test/tstxmlquery.c: For XML query structure, use + 'operator' instead of 'binary'. For top-level of query, use + .. rather than .. due to XML schemas and other unpleasant + things. + +2006-02-23 12:16 adam + + * test/tsticonv.c: Removed redundant check + +2006-02-23 11:40 adam + + * util/: Makefile.am, yaz-xmlquery.c: Added utility program + yaz-xmlquery. + +2006-02-22 20:53 adam + + * NEWS: Update + +2006-02-22 20:48 adam + + * test/tsticonv.c: Added a test case which exposes UTF-8 conversion + bug. + +2006-02-19 19:44 adam + + * include/yaz/xmlquery.h, src/xmlquery.c, test/tstxmlquery.c: + Implement yaz_xml2query. + +2006-02-19 19:37 adam + + * ztest/ztest.c: Make ztest_explain non-static + +2006-02-19 19:36 adam + + * src/zoom-c.c: Using odr_create_Odr_oct + +2006-02-19 19:34 adam + + * src/pquery.c: More proper initialization ot union .. Not that it + makes a difference + +2006-02-19 19:33 adam + + * include/yaz/odr.h, src/odr_mem.c: Implemented utility + odr_create_Odr_oct to create Odr_oct struct with content + +2006-02-10 13:45 adam + + * src/siconv.c: Fixed UTF-8 reading (for 3 byte sequences). + +2006-02-09 13:36 adam + + * win/makefile: For VS, use option /EHsc instead of /GX + (deprecated) + +2006-02-03 11:44 adam + + * src/srw.c: Added a few harmless casts . (famous last words) + +2006-02-02 19:27 mike + + * test/.cvsignore: Ignore generated file "tstxmlquery". + +2006-02-02 16:00 adam + + * src/xmlquery.c, test/tstxmlquery.c: Supply Term type as attribute + in XML RPN representation. + +2006-02-02 14:24 adam + + * zoom/Makefile.am: Program zoom-benchmark is not part of RPM,DEB + package yet, so it is not yet installed in bin. Needs a man page + too. + +2006-02-02 14:14 adam + + * zoom/Makefile.am: Program zoom-benchmark is not part of RPM,DEB + package yet, so it is not yet installed in bin. Needs a man page + too. + +2006-02-02 14:02 adam + + * configure.in, include/yaz/yaz-version.h: 2.1.13 + +2006-02-01 22:07 adam + + * debian/control: Do not depend on docbook tools in Debian build. + Depend on debhelper + +2006-02-01 21:31 adam + + * win/yaz.nsi: Put test stuff as part of Source Windows Package + +2006-02-01 21:29 adam + + * src/nmem.c: Use size_t rather than int + +2006-02-01 21:28 adam + + * src/srwutil.c: Dont return value in void function + +2006-02-01 21:20 adam + + * debian/control: Build-depend on libreadline5-dev rather than + libreadline4-dev + +2006-02-01 21:14 adam + + * win/makefile: Added test.obj+xmlquery.obj + +2006-02-01 21:11 adam + + * LICENSE, NEWS, buildconf.sh, configure.in, debian/changelog, + debian/rules, doc/entities.ent, include/yaz/yaz-version.h, + win/LICENSE.txt, win/yaz.nsi, win/yaz.rc: Towards 2.0.12 + +2006-02-01 21:07 adam + + * README: Update link to mailing list + +2006-02-01 20:59 adam + + * NEWS: Describe two more important changes + +2006-02-01 20:53 adam + + * test/tstsoap2.c: Fix test so that it passes without libxml2-dev + +2006-01-31 12:01 adam + + * test/tstxmlquery.c: Avoid mixed/stmt var declare + +2006-01-30 17:58 adam + + * test/tstsoap1.c: Avoid mixed stmt/var declare + +2006-01-30 15:02 adam + + * include/yaz/test.h, include/yaz/xmlquery.h, src/test.c, + src/xmlquery.c, test/tstxmlquery.c: yaz_query2xml complete and + tested + +2006-01-30 09:08 adam + + * test/tstxmlquery.c: Avoid mixed stmt/var declare + +2006-01-29 22:59 adam + + * include/yaz/test.h, src/test.c, test/tstccl.c, test/tsticonv.c, + test/tstmatchstr.c, test/tstnmem.c, test/tstodr.c, + test/tstodrstack.c, test/tstsoap1.c, test/tstsoap2.c, + test/tstwrbuf.c, test/tstxmlquery.c: Added YAZ_CHECK_TERM which + terminates test program. Using yaz/test.h in most existing tests + now. + +2006-01-27 20:04 adam + + * test/tstxmlquery.c: Make sure this compiles even without Libxml2. + +2006-01-27 20:01 adam + + * src/test.c: Annotate + +2006-01-27 19:58 adam + + * include/yaz/test.h, src/Makefile.am, src/test.c, + test/tstxmlquery.c: A little more flexible test unit + +2006-01-27 18:33 adam + + * test/: Makefile.am, tstxmlquery.c: First use of unit test macros. + +2006-01-27 18:31 adam + + * include/yaz/Makefile.am: Added xmlquery.h,test.h in build + +2006-01-27 18:31 adam + + * src/Makefile.am: Added xmlquery.c in build + +2006-01-27 18:30 adam + + * include/yaz/test.h: Added a few simple test framework macros (to + be used in YAZ tests). + +2006-01-27 18:28 adam + + * include/yaz/xmlquery.h, src/xmlquery.c: Added initial + implementation for XML Query representation. + +2006-01-26 16:37 adam + + * src/marcdisp.c: Avoid mixed stmt/var declare + +2006-01-20 16:30 adam + + * src/marcdisp.c: Try to cope with subfields in multi-byte encoding + - such as UTF-8. + +2006-01-20 15:44 adam + + * src/querytowrbuf.c: Prevent leading blank in output of + yaz_rpnquery_to_wrbuf + +2006-01-20 12:01 adam + + * include/yaz/logrpn.h, src/querytowrbuf.c: Make wrbuf_put_zquery + public + +2006-01-20 11:34 adam + + * buildconf.sh, include/yaz/Makefile.am, include/yaz/logrpn.h, + include/yaz/querytowrbuf.h, src/Makefile.am, src/logrpn.c, + src/querytowrbuf.c, src/seshigh.c, src/srw.c, win/makefile: + Separate the logging utilities for queries in two . The + multi-line logging is defined in logrpn.{c,h} as before. The + one-line - PQF - reparseable output in querytowrbuf.{c,h}. + +2006-01-17 20:04 adam + + * ztest/ztest.c: Have yaz-ztest support pseudo database Slow too + +2006-01-16 16:53 adam + + * src/otherinfo.c: Fixed bug in yaz_oi_get_string_oid. The function + did not give categoryValue to yaz_oi_update. + +2005-12-21 18:13 mike + + * NEWS: Describe new ZOOM CQL facilities. + +2005-12-21 17:45 mike + + * doc/zoom.xml: Note need to document: ZOOM_connection_scan1 + (ZOOM_connection c, ZOOM_query startterm) + ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection + conn) + +2005-12-21 17:41 mike + + * src/zoom-c.c, include/yaz/zoom.h: Add ZOOM_query_cql2rpn() + +2005-12-21 16:09 mike + + * src/cqltransform.c: Yikes! Yesterday's "defensive programming" + introduced a bug (D'oh!) which made it impossible to transform + CQL queries of more than a single term. Now fixed. + +2005-12-21 09:35 mike + + * src/zoom-c.c: Comment + +2005-12-21 01:07 mike + + * src/zoom-c.c: Remove commented-out printf()s in cql2rpn() + +2005-12-21 01:06 mike + + * src/zoom-c.c: cql2rpn() now works. Pernicious stack-whack bug + fixed. + +2005-12-21 01:04 mike + + * src/cqltransform.c: Abort when trying to translate a node of + unknown type. This happens when (for example) the node is + corrupted by its parser being freed before it's passed into the + translation function ... a classic C-style bug that's taken much + of this evening to find and fix. Defensive programming, guys ... + +2005-12-21 00:07 adam + + * client/client.c: Fix double free in set_otherinfo + +2005-12-20 23:24 mike + + * src/zoom-c.c: Support for scanning by CQL query (not yet + debugged). + +2005-12-20 23:23 mike + + * include/yaz/zoom.h: Two new ZOOM_ERROR codes, CQL_PARSE and + CQL_TRANSFORM. + +2005-12-19 21:19 adam + + * src/zoom-c.c: Addinfo is host when ZOOM returns failure for + connections + +2005-12-19 18:04 mike + + * include/yaz/zoom.h, src/zoom-c.c: Add ZOOM_connection_scan1(), + which takes a ZOOM_query rather than a string as its start-term, + thereby opening the way for scanning on CQL terms. + +2005-12-18 16:58 adam + + * util/marcdump.c: Avoid mixed stmt/vardeclare + +2005-12-17 21:22 adam + + * util/marcdump.c: yaz-marcdump may dump raw records separately + using -s splitfname option + +2005-12-17 21:20 adam + + * configure.in: Prevent YAZ from using poll on MacOSX + +2005-12-17 21:03 adam + + * configure.in: No need to check for sys/poll.h twice + +2005-12-16 16:01 adam + + * etc/: Makefile.am, yazgfs.xml: Added sample YAZ GFS config file. + +2005-12-14 15:05 adam + + * include/yaz/srw.h, src/srwutil.c: Added two new utilities for + encoding SRW diagnostics via a URI rather than code. The + yaz_add_srw_diagnostic_uri complements yaz_add_srw_diagnostic in + that it adds a diagnostic to a diagnostics list. And + yaz_mk_srw_diagnostic complements yaz_mk_std_diagnostic. + +2005-12-13 18:10 mike + + * test/.cvsignore: Ignore "tstlogthread", compiled by "make check". + +2005-12-12 13:09 mike + + * doc/zoom.xml: Describe new options-within-host-string syntax: + user=admin,password=halfAm4n,tcp:localhost:8017/db + +2005-12-12 13:02 mike + + * src/zoom-c.c: Throw out the 'user=pass%hoststring' syntax that I + added a few days ago, and replace with the more general and + rigorous 'key=value,...:hoststring' as suggested by Adam. + +2005-12-09 11:43 marc + + * debian/changelog: upcounted debian number + +2005-12-08 16:36 adam + + * src/zoom-c.c: Avoid mixed stmt/var declare + +2005-12-07 17:15 mike + + * src/zoom-c.c: ZOOM_connection_connect() now understands + authentication parameters embedded in the host string, like this: + admin:secretpw%localhost:9999/gils i.e. if there is a "%" + sign, then what comes before is taken as a ":"-separated + user/password pair. This is a bit hacky, but necessary to run + zoomtst9 against secured databases, and it's much more general + than just adding authentication parameters to that one program. + +2005-12-02 17:13 adam + + * client/client.c: Put exit command last in list of commands - so + 'e'='elements' + +2005-11-29 21:40 adam + + * win/makefile: Make zoomtst9 part of windows build + +2005-11-29 21:26 adam + + * NEWS, configure.in, debian/changelog, debian/rules, win/yaz.nsi, + win/yaz.rc: Towards 2.1.10 + +2005-11-29 21:25 adam + + * src/Makefile.am: Build libyazthread.la for backwards + compatibility + +2005-11-29 21:17 adam + + * NEWS, include/yaz/yaz-version.h: Towards 2.1.10 + +2005-11-28 14:21 adam + + * src/srw.c: Another fix in extraRecordData handling + +2005-11-26 17:56 mike + + * zoom/.cvsignore: Ignore zoomtst9 + +2005-11-24 11:04 adam + + * zoom/: Makefile.am, zoomtst9.c: Added ZOOM example program that + illustrates Ext Record Update + +2005-11-16 17:07 mike + + * src/zoom-c.c: Add ZOOM_connection_diagset() + +2005-11-16 17:03 mike + + * include/yaz/zoom.h, doc/zoom.xml: Add ZOOM_connection_diagset() + +2005-11-15 13:23 adam + + * src/cqlstd.y: Added CQL base YACC grammar. + +2005-11-15 13:19 mike + + * NEWS: Describe recent ZOOM changes. + +2005-11-11 23:06 adam + + * src/: srw.c: Fix bug introduced in srw.c revision 1.37 + +2005-11-09 18:48 adam + + * src/: charconv.tcl, srwutil.c: Use int rather than short for bit + field + +2005-11-09 18:47 adam + + * client/client.c: Fixed check for non-empty record syntax list + +2005-11-09 18:47 adam + + * src/: srw.c, seshigh.c: Avoid mixed stmt/var declare + +2005-11-08 22:57 adam + + * doc/Makefile.am: One more html doc part of dist + +2005-11-08 22:53 adam + + * doc/zoom.xml: Clarify start term in ZOOM_connection_scan. + Document ZOOM_package functions (extended service facilities). + +2005-11-08 18:12 mike + + * doc/zoom.xml: Note that sort1() needs documented when I do sort() + +2005-11-08 17:52 mike + + * src/zoom-c.c: Add ZOOM_resultset_sort1() Old + ZOOM_resultset_sort() is now a trivial wrapper for this. (Kept + only for backwards compatibility.) + +2005-11-08 17:51 mike + + * include/yaz/zoom.h: Add ZOOM_resultset_sort1() + +2005-11-08 16:08 adam + + * NEWS, include/yaz/backend.h, include/yaz/srw.h, src/seshigh.c, + src/srw.c, src/srwutil.c: Added ZiNG Update Support. New codecs + are defined in srw.h. Extended the GFS to support this as well. + Backend handler, bend_srw_update, does the update work. Code + contributed by Ko van der Sloot. + +2005-11-06 02:55 adam + + * src/: charconv.tcl, siconv.c: Fix bug #416 in a different way. + Our handlers code in yaz_marc8_?_conv (generated by charconv.tcl) + now returns 0 and no_read=1 when a sequence does not match the + input. The SECOND HALFs in codetables.xml produces a non-existant + entry in the conversion trie.. Hence when met, the input byte is + skipped as it should (in yaz_iconv). + +2005-11-06 02:28 adam + + * src/siconv.c: Remove no longer used MARC-8 conversion code + +2005-11-04 18:15 mike + + * doc/yaz-client-commands.xml: Clarify sort-specification syntax. + +2005-11-04 16:51 mike + + * zoom/zoomtst6.c: Fix incorrect diagnostic. + +2005-11-03 17:49 mike + + * src/zoom-c.c: Fix formatting inconsistency. + +2005-11-02 22:41 adam + + * zoom/zoomsh.c: Avoid mixed decl/stmt + +2005-11-02 15:54 mike + + * doc/zoom.xml: Add a list of the (surprisingly many) functions + that still require documentation. + +2005-11-02 14:32 adam + + * test/Makefile.am: Fix path to yaz-asncomp + +2005-11-02 12:54 adam + + * client/client.c: Change output for SearchResult-1. Display + subqueryId as well + +2005-11-02 11:19 adam + + * doc/zoom.xml, src/zoom-c.c: Rename serachresult options a bit + +2005-11-01 16:08 adam + + * NEWS, doc/zoom.xml, src/zoom-c.c: Allow retrieval of Search + Result-1 information in ZOOM by the use of options that are + attached to a result set. ZOOM documentation updated accordingly. + +2005-11-01 16:07 adam + + * zoom/zoomsh.c: Allow inspection of result set options with rget + command + +2005-10-28 20:36 adam + + * NEWS, src/siconv.c, test/tsticonv.c: Fixed bug #416: First/second + comb characters not handled in the MARC-8 to UTF-8 conversion. + Patch by Raj Patel. + +2005-10-27 22:05 adam + + * doc/tkl.xsl.in: Use xsl:element for document element to prevent + ns + +2005-10-22 15:32 adam + + * src/unix.c: Use xstrdup rather than strdup. Define stat(2) masks + S_IFMT and S_IFSOCK when gcc -ansi is in use. + +2005-10-22 15:28 adam + + * zoom/zoom-benchmark.c: Do not use // comments + +2005-10-22 15:27 adam + + * test/tstlogthread.c: tstlogthread by default prints nothing + +2005-10-22 15:13 adam + + * util/benchmark.c: yaz-benchmark uses yaz options rather than + getopt + +2005-10-20 21:28 quinn + + * NEWS, doc/gfs-options.xml, src/statserv.c: Added option -m to GFS + to control formatting of time stamps. + +2005-10-17 14:29 mike + + * src/zoom-c.c: Add ZOOM_connection_option_getl() -- very thin + layer. + +2005-10-17 14:28 mike + + * src/zoom-opt.c: Add support for int len to struct + ZOOM_options_entry. Factor repeated code out of + ZOOM_options_setl() into new _set_value(). Add + ZOOM_options_getl(). ZOOM_options_get() is now a one-line + wrapper around ZOOM_options_getl(). + +2005-10-17 14:25 mike + + * src/zoom-p.h: Add int len to struct ZOOM_options_entry. + +2005-10-17 14:25 mike + + * include/yaz/zoom.h: Add ZOOM_connection_option_getl() and + ZOOM_options_getl() + +2005-10-15 12:40 adam + + * doc/: Makefile.am, bookinfo.xml, entities.ent, yaz.xml.in: Put + static YAZ entities in separate file entities.ent. Put bookinfo + section in separate file bookinfo.xml. + +2005-10-11 20:24 adam + + * include/yaz/zoom.h, src/zoom-p.h: Move ZOOM_task definition to + private ZOOM header + +2005-09-27 19:52 adam + + * include/yaz/wrbuf.h, src/logrpn.c, src/wrbuf.c: Added + wrbuf_chlp_right + +2005-09-26 11:15 adam + + * client/client.c: Changed behavior of yaz-client's cancel command, + so that it by default does not wait for a response. But if + 'cancel wait' is given it will wait anyway. + +2005-09-21 21:46 adam + + * client/client.c: Allow multiple record syntaxes to be specified + in 'format' command. If two or more are given, the syntax list + in CompSpec is used for present requests. + +2005-09-20 14:07 marc + + * zoom/: zoom-benchmark.c, zoom-benchmark.gpt: added a -g switch + for gnuplot instructions in output. This way, the outpit stream + can be used as input to gnuplot (when saved to a file, that is), + and the gnuplot instruction file is obsolete, hence removed + +2005-09-20 13:29 marc + + * zoom/: zoom-benchmark.c, zoom-benchmark.gpt: counting ewrror + corrected such that multiple repeats do work correctly + +2005-09-20 11:36 marc + + * zoom/zoom-benchmark.c: moving int declaration to top of function + to avoid upsetting old compilers + +2005-09-19 21:18 adam + + * zoom/.cvsignore: Added ignore of zoom-benchmark program + +2005-09-19 16:14 marc + + * zoom/: zoom-benchmark.c, zoom-benchmark.gpt: better 3D graphics + made possible by ordering events into groups of same connections + +2005-09-16 23:46 adam + + * src/log.c: Use localtime_r rather than localtime if available. + Only call time(2) and localtime(3) once per yaz_log call. + +2005-09-16 23:44 adam + + * configure.in: Check for localtime_r + +2005-09-16 23:14 adam + + * test/tstlog.c: New option -w sec for test log utility + +2005-09-16 23:13 adam + + * src/log.c: Filename passed to yaz_log_init_file assumed to be in + strftime format. For each yaz_log call strftime is used to make + an effective filename. If different from last yaz_log call, the + log file opened. To make a log that rotates every midnight + log%Y%m%d.log (year,month,day) could be used. + +2005-09-16 12:51 adam + + * zoom/zoom-benchmark.c: Remove C++ style comments. Remove mixed + stmt/var decl. + +2005-09-16 11:16 adam + + * src/seshigh.c: Implemented logging of authentication info in GFS. + Bug #406. + +2005-09-16 09:05 adam + + * zoom/zoom-benchmark.c: Boolrean and rather than bitwise and + +2005-09-16 08:57 marc + + * zoom/zoom-benchmark.gpt: tickmarks taken out + +2005-09-15 22:51 marc + + * zoom/: zoom-benchmark.c, zoom-benchmark.gpt: changed output such + that process comes first, then time, then progress. added3D plots + +2005-09-15 13:14 marc + + * zoom/zoom-benchmark.gpt: use points, no lines + +2005-09-15 12:38 marc + + * zoom/: zoom-benchmark.c, zoom-benchmark.gpt: made progres + linearly increasing, and added gnuplot file + +2005-09-12 12:25 adam + + * NEWS: Update NEWS with more info about SRU POST + resultSetId + stuff + +2005-09-12 12:23 adam + + * src/srwutil.c: Modified yaz_sru_decode to only perform SRU POST + URL decoding if content-type is + "application/x-www-form-urlencoded". + +2005-09-12 11:21 adam + + * NEWS: Mention SRU POST + +2005-09-12 11:14 adam + + * src/srwutil.c: Changed yaz_uri_array to no assume ? in start of + URI string. This is to fix SRU POST which does not have ? in + start of URI string in HTTP body. + +2005-09-12 11:13 adam + + * src/seshigh.c: Fixed SEGV that could occur in Z39.50 v2 mode + +2005-09-11 22:21 adam + + * zoom/zoom-benchmark.c: Compatibility fixes for older C compilers. + Fixed printf format for print of time_t (changed %i to %ld). + +2005-09-11 20:39 adam + + * NEWS, include/yaz/backend.h, src/seshigh.c: Added support for + specifying SRW resultSetId + resultSetIdleTime in a Generic + Frontend Server's search handler. Patch by Ko van der Sloot. + +2005-09-11 15:32 adam + + * zoom/zoom-benchmark.c: Put declarations before statements to make + code work with older C compilers. + +2005-09-09 15:51 marc + + * zoom/zoom-benchmark.c: pretty formatting with tabs for gnuplot + reading + +2005-09-09 13:29 adam + + * src/log.c: Fixed bug #410: Can not rotate log + +2005-09-09 13:28 adam + + * win/makefile: Add rules to build tstlog + +2005-09-09 12:34 adam + + * NEWS, configure.in, yaz-config.in, yaz.m4, client/Makefile.am, + src/Makefile.am, test/Makefile.am, ztest/Makefile.am: Do not + build the separate Multi-threaded (MT) library libyazthread.la. + Instead make the library libyaz.la multi-threaded. Threading as a + whole can still be disabled by configure option + --disable-threads. Previosly, with older GLIBCs there were + problems with MT libs under Apache. This has now been fixed a + long time ago. + +2005-09-09 12:33 adam + + * src/log.c: Major log system cleanup. Added various locks for the + shared mask_names global structure. Also added mutex around + yaz_log core code. It seems that vsnprintf or similar is not + thread-safe after all (at least on Solaris 9). + +2005-09-09 12:32 adam + + * src/nmem.c: Changed nmem_mutex_create so that it properly handles + concurrent calls. Now, only first thread will initialize the + mutex. Others will do nothing. + +2005-09-09 12:30 adam + + * src/odr-priv.h: Set ODR_MAX_STACK to 2000 instead of 10000. It + seems that 10000 causes a stack overflow in threaded mode on + FreeBSD. + +2005-09-09 12:20 adam + + * test/tstlog.c: Document more tstlog options + +2005-09-08 15:51 adam + + * test/tstlogthread.c: Fix cpp-if check for POSIX threads + +2005-09-08 15:25 adam + + * test/: Makefile.am, tstlogthread.c: Added test tstlogthread which + tests log system in multi threaded mode + +2005-09-08 15:22 adam + + * test/tstlog.c: Added option (-n) for tstlog to make call yaz_log + a number of times + +2005-09-07 15:45 marc + + * zoom/: Makefile.am, zoom-benchmark.c: added simple benchmark + client program written over zoom api + +2005-09-07 13:53 adam + + * doc/zoom.xml: Document ZOOM_connection_last_event and the event + types + +2005-08-30 22:13 adam + + * src/seshigh.c: Call bend_close during init if there is an old + handle to release + +2005-08-25 14:44 adam + + * configure.in, doc/Makefile.am, doc/yazphp.dsl.in: yazphp.dsl no + longer in use + +2005-08-25 13:48 adam + + * win/yaz.nsi: Use proper location for VS C runtime msvcr71.dll + +2005-08-24 13:25 heikki + + * NEWS, client/client.c: Added 'exit' as an alternative for 'quit' + in yaz-client (Per's request) + +2005-08-22 22:34 adam + + * client/client.c, src/ccltoken.c, src/logrpn.c, src/opacdisp.c, + src/seshigh.c, src/soap.c, src/srw.c, src/srwutil.c, + src/statserv.c, test/tsticonv.c, test/tstodr.c, test/tstsoap1.c, + util/marcdump.c: More type casts for char signed/unsigned and + xmlChar. Using xmlStrcmp, xmlStrlen in a few places instead of + strcmp/strlen. + +2005-08-18 20:42 adam + + * win/makefile: Updated to use libxml 2.6.20, zlib 1.2.3 + +2005-08-11 16:21 adam + + * src/: ber_bool.c, ber_int.c, ber_len.c, ber_null.c, ber_tag.c, + odr-priv.h, odr.c, odr_choice.c, odr_cons.c, odr_mem.c, + odr_seq.c, odr_tag.c: Increase the ODR stack size. Use different + stack data structure for ODR constructed stack. + +2005-08-11 16:19 adam + + * test/tstodrstack.c: Make test fail if circular refenced ODR does + not fail + +2005-08-11 16:09 adam + + * test/.cvsignore: Added tstodrstack to this + +2005-08-11 16:08 adam + + * test/tstodrstack.c: Test with 100 level query and another with + circular refernce + +2005-08-11 16:00 adam + + * test/: Makefile.am, tstodrstack.c: Added test for bad ODR nesting + +2005-08-10 11:12 adam + + * NEWS: Added some news items collected frmo CVS + +2005-08-10 11:02 adam + + * debian/: changelog, libyaz-dev.install, libyaz.install: Removed + /usr/share/yaz/etc from libyaz. All /usr/share/yaz content is now + part of libyaz-dev. + +2005-08-09 20:29 adam + + * src/zoom-c.c: Fixed setting of record syntax for Extended Service + update in ZOOM + +2005-08-05 11:36 adam + + * doc/gfs-virtual.xml: Added missing start tag + +2005-07-22 08:23 adam + + * client/client.c: Implemented 'show all' command. Bug #398. Patch + by Rob Styles. + +2005-07-19 14:41 mike + + * NEWS: Note TCP/IP backlog change. + +2005-07-19 14:40 mike + + * src/tcpip.c: Increase TCP/IP listener backlog from 3 (which I am + guessing was copied from the SunOS manual entry way back when) so + SOMAXCONN, so that the socket will queue as many incoming + connections as it's able to handle ongoing connections. In other + words, it will never now refuse a connection that it would be + able to handle merely because it's not got around to accepting() + enough of the pending connections yet. This is the behaviour + anyway under Linux, where the listen() argument is ignored; but + not under BSD and on systems such as MS-Windows that use + BSD-derived TCP/IP stacks. The behaviour of YAZ-based servers + should now be uniform across operating systems in this respect. + +2005-07-18 12:07 marc + + * debian/changelog: started new developmenr version number to make + side-by-side compilation with zebra feasable on debian systems + +2005-07-18 12:06 marc + + * buildconf.sh: added some package names to message + +2005-06-30 10:34 adam + + * client/client.c: Check for open connection and proper protocol + for update and xmles commands. Fixed uinitialized member in + xmles. + +2005-06-30 00:52 adam + + * yaz.m4, doc/license.xml, doc/yaz.xml.in: Pick latest Docbook XML + DTD for 4.X + +2005-06-28 00:03 adam + + * doc/introduction.xml, include/yaz/cql.h, src/cql.y, + src/cqltransform.c, src/cqlutil.c: Case insensitive CQL + relations/indexes/operations. + +2005-06-25 17:46 adam + + * header.c, client/admin.c, client/admin.h, client/bertorture.c, + client/client.c, client/tabcomplete.c, client/tabcomplete.h, + include/yaz/backend.h, include/yaz/ccl.h, include/yaz/charneg.h, + include/yaz/comstack.h, include/yaz/cql.h, include/yaz/ill.h, + include/yaz/log.h, include/yaz/logrpn.h, include/yaz/marcdisp.h, + include/yaz/nmem.h, include/yaz/odr.h, include/yaz/oid.h, + include/yaz/options.h, include/yaz/otherinfo.h, + include/yaz/pquery.h, include/yaz/proto.h, include/yaz/prt-ext.h, + include/yaz/readconf.h, include/yaz/soap.h, + include/yaz/sortspec.h, include/yaz/srw.h, + include/yaz/statserv.h, include/yaz/tcpip.h, include/yaz/tpath.h, + include/yaz/unix.h, include/yaz/wrbuf.h, include/yaz/xmalloc.h, + include/yaz/yaz-ccl.h, include/yaz/yaz-iconv.h, + include/yaz/yaz-util.h, include/yaz/yaz-version.h, + include/yaz/yconfig.h, include/yaz/zgdu.h, include/yaz/zoom.h, + rfc1006/makensap.c, rfc1006/rfct.c, src/atoin.c, src/ber_any.c, + src/ber_bit.c, src/ber_bool.c, src/ber_int.c, src/ber_len.c, + src/ber_null.c, src/ber_oct.c, src/ber_oid.c, src/ber_tag.c, + src/cclerrms.c, src/cclfind.c, src/cclptree.c, src/cclqfile.c, + src/cclqual.c, src/cclstr.c, src/ccltoken.c, src/charneg.c, + src/comstack.c, src/cqlstdio.c, src/cqlstrer.c, src/cqlstring.c, + src/cqltransform.c, src/cqlutil.c, src/diag-entry.c, + src/diag-entry.h, src/dumpber.c, src/eventl.c, src/eventl.h, + src/grs1disp.c, src/ill-get.c, src/initopt.c, src/log.c, + src/logrpn.c, src/marcdisp.c, src/matchstr.c, src/nmem.c, + src/nmemsdup.c, src/odr-priv.h, src/odr.c, src/odr_any.c, + src/odr_bit.c, src/odr_bool.c, src/odr_choice.c, src/odr_cons.c, + src/odr_enum.c, src/odr_int.c, src/odr_mem.c, src/odr_null.c, + src/odr_oct.c, src/odr_oid.c, src/odr_seq.c, src/odr_tag.c, + src/odr_use.c, src/odr_util.c, src/oid.c, src/opacdisp.c, + src/options.c, src/otherinfo.c, src/pquery.c, src/prt-ext.c, + src/readconf.c, src/requestq.c, src/service.c, src/service.h, + src/seshigh.c, src/session.h, src/siconv.c, src/soap.c, + src/sortspec.c, src/srw.c, src/srwutil.c, src/statserv.c, + src/tcpdchk.c, src/tcpip.c, src/tpath.c, src/unix.c, + src/version.c, src/waislen.c, src/wrbuf.c, src/xcqlutil.c, + src/xmalloc.c, src/yaz-ccl.c, src/z3950oid.c, src/zgdu.c, + src/zget.c, src/zoom-c.c, src/zoom-opt.c, src/zoom-p.h, + test/tstccl.c, test/tsticonv.c, test/tstlog.c, + test/tstmatchstr.c, test/tstnmem.c, test/tstodr.c, + test/tstsoap1.c, test/tstsoap2.c, test/tstwrbuf.c, + util/benchmark.c, util/cclsh.c, util/cql2pqf.c, util/cql2xcql.c, + util/marcdump.c, util/srwtst.c, util/yaziconv.c, win/resource.h, + zoom/zoomsh.c, zoom/zoomtst1.c, zoom/zoomtst2.c, zoom/zoomtst3.c, + zoom/zoomtst4.c, zoom/zoomtst5.c, zoom/zoomtst6.c, + zoom/zoomtst7.c, zoom/zoomtst8.c, ztest/read-grs.c, + ztest/read-marc.c, ztest/ztest.c: Expanded tabs in all source + files. Added vim/emacs local variables trailer. + +2005-06-25 17:42 adam + + * zoom/zoomsh.c: Print ext command in help + +2005-06-24 21:56 adam + + * client/admin.c, client/client.c, client/tabcomplete.c, + src/cclptree.c, src/z3950oid.c: WS updates. No code changes + +2005-06-24 14:50 adam + + * client/client.c: Add OID for External XMLES too + +2005-06-23 17:03 adam + + * src/cqltransform.c: Fix relationModifier handling (incorrect + value in check was used). + +2005-06-23 15:09 adam + + * NEWS, configure.in, client/client.c, doc/yaz-client-commands.xml: + Changed xmles command to take OID + doc as parameter (previous + version only took doc). + +2005-06-21 09:34 adam + + * doc/: yaz-client-commands.xml, yaz-client-man.xml: Describe new + comman xmles. Update doc for Item Update. + +2005-06-21 09:33 adam + + * include/yaz/oid.h, src/oid.c, client/client.c, src/zoom-c.c: + Rename VAL_XMLUPDATE to XML_XMLES bacuase this is an XML extended + service type facility rather than Update facility. + +2005-06-16 11:05 adam + + * yaz.spec.in: For RPM spec, use License: rather than Copyright: + (obsolete) + +2005-06-13 12:27 adam + + * src/seshigh.c: For GFS, allow field record in bend_fetch_rr to + hold NULL - meaning that record could not be returned and out of + range. This present response will simply not include the record. + Useful for Zebra 1.4 where approximate hit count is returned. + +2005-06-10 19:56 adam + + * doc/yaz-man.xml: Update year in copyright message + +2005-06-09 20:47 adam + + * util/marcdump.c: LFS mode for yaz-marcdump so that it can read + large ISO2709 files + +2005-06-08 14:34 adam + + * client/client.c: Fix problem with pointer to last init response + being corrupt due to set_auto_wait=off. If we have not yet + received init response we assume option is set. + +2005-06-08 13:22 adam + + * NEWS, doc/yaz-client-commands.xml: Describe new yaz-client + commands wait_response and set_auto_wait. + +2005-06-08 11:11 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.1.9. + +2005-06-08 11:11 adam + + * client/client.c: Fixed wait_response handling so to deal with + proper number of responses. + +2005-06-07 21:51 adam + + * NEWS: More NEWS + +2005-06-07 21:47 adam + + * src/nmem.c: Use size_t for NMEM's get_block. Change space-left + check to avoid signed/unsigned-ness problems. + +2005-06-07 21:31 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.8. + +2005-06-07 21:25 adam + + * NEWS, src/marcdisp.c: Fixed bug in yaz_marc_decode_buf. By + mistake the routine appended MARC output rather than returning + "new" buffer. + +2005-06-06 19:34 adam + + * client/client.c: Avoid mixed stmt, var declare + +2005-06-06 14:32 adam + + * zoom/zoomsh.c: Allow log level to be set for zoomsh + +2005-06-06 14:23 adam + + * src/zoom-c.c: Make a zoom,zoomdetails log level and try to make + logging more consistent in ZOOM C. + +2005-06-06 12:45 adam + + * zoom/zoomsh.c: Re-organize top-level code so main functions does + less work. + +2005-06-06 12:37 adam + + * debian/changelog: Internal package 2.1.7-1 for testing. + +2005-06-06 12:29 adam + + * client/client.c, include/yaz/oid.h, src/oid.c, src/zoom-c.c, + zoom/zoomsh.c: Add support for privately defined extended + service, xml update, with OID 1.2.840.10003.9.1000.105.4. + +2005-06-06 12:27 adam + + * doc/yaz-config-man.xml: Fix man page to include description of + --comp. + +2005-06-06 09:28 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.1.7 + +2005-06-06 09:25 adam + + * client/client.c: Warn about unknown Z39.50 options + +2005-06-06 09:12 ja7 + + * src/initopt.c: Fix for bug 371 "options concurrentOperations + ignores concurrentOperations" + +2005-06-03 22:33 adam + + * src/nmem.c: Use size_t for nmem block sizes internally + +2005-06-03 22:30 adam + + * include/yaz/nmem.h, src/nmem.c: Let nmem.h include stddef.h to + get size_t defined. Hide strutures nmem_control and nmem_block. + +2005-05-26 23:47 adam + + * include/yaz/odr.h, test/tstodr.asn, test/tstodr.c: Add OID test. + Changed prototype for ber_oidc. + +2005-05-26 23:46 adam + + * src/: ber_oid.c, odr_oid.c, oid.c: Allow decoding of zero-length + OIDs, but reject OIDs longer than OID_SIZE. + +2005-05-24 14:16 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.6. + +2005-05-24 14:15 adam + + * debian/rules: Update dependancy libs + +2005-05-20 21:29 adam + + * NEWS, include/yaz/backend.h, src/seshigh.c: Added support for SRW + sort in Generic Frontend Server. Patch by Ko van der Sloot. + Member srw_sortKeys in bend_search_rr holds sortKeys - or NULL if + none is provided. + +2005-05-20 08:22 ja7 + + * client/client.c: added 2 new commands for testing concurrent + operations and cancel set_auto_wait wait_response + +2005-05-18 22:23 adam + + * configure.in: Warn if Libxml2 is not found + +2005-05-18 14:38 adam + + * include/yaz/charneg.h, src/charneg.c: Added functin + yaz_del_charneg_record, which removes character set negotiation + from otherInfo. + +2005-05-18 14:30 adam + + * include/yaz/log.h, src/log.c: Reestablish LOG_APP,APP2,APP3 .. + continued. + +2005-05-18 14:23 adam + + * src/log.c: Keep log level app2,app3. It is still being used + +2005-05-17 13:48 adam + + * src/zoom-c.c: Fixed bug #255: ZOOM does not decode Diagnostics in + init-response. ZOOM C now decodes init diagnostics from + user-information-field when present. If non-present, the pseudo + error code 'Init Rejected' is issued. + +2005-05-16 14:00 mike + + * test/.cvsignore: Ignore generated files "tstsoap1" and "tstsoap2" + +2005-05-11 14:19 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.1.5 + +2005-05-11 14:07 adam + + * src/seshigh.c: Initialize members scanClause,errcode,errstring + for Z39.50 scan handling + +2005-05-09 13:17 mike + + * include/yaz/.cvsignore: Ignore generated header files. + +2005-05-09 13:16 mike + + * src/.cvsignore: Ignore generated C files. + +2005-05-09 13:01 adam + + * client/client.c: In yaz-client when evaluating time elapsed, it + is done just after the incoming package has been decoded - not + after display of result records etc. This to give a more true + picture of target's performance. + +2005-05-09 10:51 adam + + * client/client.c: Fix example + +2005-05-09 00:53 adam + + * client/client.c: Bug fix: did not use outputCharset in the + conversion of search term + +2005-05-08 09:35 adam + + * src/siconv.c, test/tsticonv.c: Fixed bug #320: Improve UTF-8 -> + Latin-1 conversion. The yaz_iconv utility now converts several + composed UNICODE sequences to their single code Latin-1 + equivalents. This improves the MARC-8 to ISO-8859-1 conversion in + that more sequences are correctly converted. + +2005-05-08 09:33 adam + + * test/tstsoap1.c: Comment out debug printf stmt + +2005-05-08 09:13 adam + + * src/statserv.c: Fixed bug #322: yaz server does not log listener + address if given + +2005-05-06 14:18 adam + + * client/client.c: Encode SRW/SRU terms to UTF-8 from terminal + (outputCharset). + +2005-05-06 13:11 adam + + * test/: Makefile.am, tstsoap1.c, tstsoap2.c: Added two SOAP tests + +2005-05-03 23:32 adam + + * NEWS: Collect CVS changes. + +2005-05-03 14:30 adam + + * client/client.c: Added some help on proximity. + +2005-05-02 21:33 adam + + * src/zoom-c.c: Removed a few redundant log messages + +2005-05-02 21:33 adam + + * src/zoom-c.c: Fix bug #307: It's impossible to specify + indefinite/no timeout for ZOOM_event. Special timeout value -1 + now means indefinite timeout (i.e. no timeout). + +2005-05-02 21:17 adam + + * src/zoom-c.c: Added support for multiple languages and charsets + to be specified in ZOOM. Each charset/language is separated by a + blank. If negoation is in effect in init-response, Option + "negotiation-charset-in-effect-for-records" set to 1(true) or + 0(false). Code based on patch by Vasiliy Osadchuk. + +2005-05-02 21:14 adam + + * include/yaz/nmem.h, src/nmemsdup.c: Added utilities nmem_strsplit + and nmem_strsplit_blank which splits a string into arrays and + allocates each stream using NMEM. + +2005-04-29 21:06 adam + + * src/seshigh.c: Fixed bug in scan handling in front end server: if + preferredPositionInResponse was non-present it logged a NULL + value. + +2005-04-29 12:36 heikki + + * src/: log.c, nmem.c: Fixed the infinite recursion when calling + yaz_log_level_init as the first call (before other log level or + nmem_init calls) + +2005-04-26 21:51 adam + + * doc/tools.xml: Modify one of the result set PQF examples + +2005-04-26 20:46 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.4. + +2005-04-26 20:46 adam + + * doc/credits.xml: Added Mads Bondo Dydensborg + +2005-04-22 17:14 adam + + * src/srw.csv: Missing quote + +2005-04-22 17:09 adam + + * src/Makefile.am: Allow srcdir!=dstdir for CVS checkout + +2005-04-22 16:59 adam + + * src/Makefile.am: Fix check for cql.c in dist-hook + +2005-04-22 16:51 adam + + * src/csvtodiag.tcl, win/makefile, win/yaz.nsi: WIN32 updates for + Diagnostics from CSV files. + +2005-04-22 10:27 adam + + * Makefile.am, NEWS, include/yaz/Makefile.am, + include/yaz/diagbib1.h, include/yaz/srw.h, src/Makefile.am, + src/bib1.csv, src/csvtobib1.tcl, src/csvtodiag.tcl, + src/csvtosrw.tcl, src/diag-entry.c, src/diag-entry.h, + src/diagbib1.c, src/diagsrw.c, src/seshigh.c, src/srw.csv: + Changed include/yaz/diagbib1.h and added include/yaz/diagsrw.h + with diagnostic messages+codes for Bib-1 and SRW. Preprocessor + defines are now defined for all those error codes. So instead of + putting 109 in in a program, YAZ_BIB1_DATABASE_UNAVAILABLE can be + used. The messages are now generated from a CSV files. See + src/bib1.csv and srw/srw.csv. + +2005-04-20 15:51 adam + + * configure.in, include/yaz/yaz-version.h: Towards 2.1.3 + +2005-04-20 15:17 adam + + * src/marcdisp.c: Use XML comments for debug/verbose info. + +2005-04-20 15:17 adam + + * util/marcdump.c: Use XML comments for for meta info. + +2005-04-20 15:04 adam + + * util/marcdump.c: yaz-marcdump skips non-digit chars betwen recs + and warns about it + +2005-04-20 14:59 adam + + * client/client.c: Exit if multiple server addresses is given (not + supported) + +2005-04-18 10:04 adam + + * win/makefile: Update to libxml2 2.6.9, zlib 1.2.2 + +2005-04-15 23:47 adam + + * include/yaz/ccl.h, src/ccltoken.c, test/tstccl.c: Fix bug in CCL + parser that could caused uninialized values of token member + ws_prefix_len in some cases. Removed ccl_token_simple function. + +2005-04-14 13:59 adam + + * src/seshigh.c: Allow NULL value for basename in bend_fetch_rr + struct + +2005-04-11 10:41 adam + + * src/Makefile.am: Fixed bug #280: make dist must depend on bison. + The extra rule is necessary for automake 1.4pl6, not 1.9. + +2005-03-16 22:30 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.2. + +2005-03-16 22:28 adam + + * NEWS, src/codetables.xml: Get new codetables.xml from the LoC. + Bug #273. + +2005-03-16 22:26 adam + + * src/charconv.tcl: Change "to" type for MARC-8 -> UTF-8 conversion + from 16-bit unsigned short to 24-bit unsigned int. Put code name + (description of character) in output comments in C code. + +2005-03-15 17:32 adam + + * NEWS, include/yaz/ccl.h, src/cclfind.c, src/ccltoken.c, + test/tstccl.c: Fixed bug #272: Preserve spacing for CCL terms. + The spacing is preserved for phrases by saving the prefix + (leading) white-space for tokens. Added ws_prefix_{buf,len} in + ccl_token to support it. + +2005-03-14 13:47 adam + + * debian/changelog: Try again (to fix version) + +2005-03-14 13:41 adam + + * debian/changelog: Fix bad version - should be 2.1.0-1 (was + 2.0.1-1). + +2005-03-14 12:28 adam + + * NEWS: Notes about MARC decoder changes + +2005-03-14 12:24 adam + + * NEWS: Fix version + +2005-03-14 12:17 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.1.0 + +2005-03-14 12:14 adam + + * src/statserv.c: Support XInclude for XML config + +2005-03-14 12:13 adam + + * ztest/config1.xml: Example as given in doc + +2005-03-14 12:12 adam + + * NEWS: Notes on changes for hosting + +2005-03-14 12:12 adam + + * doc/: frontend.xml, gfs-options.xml, gfs-virtual.xml, tools.xml, + yaz-ztest-man.xml, yaz.xml.in: All elements for YAZ GFS XML + config described + +2005-03-13 22:43 adam + + * doc/: Makefile.am, frontend.xml, gfs-options.xml, + gfs-synopsis.xml, gfs-virtual.xml, yaz-ztest-man.xml, yaz.xml.in, + ztest-options.xml: Renamed ztest-options.xml to gfs-options.xml. + Added GFS common synopsis to gfs-synopsis.xml. Initial work on + GFS virtual hosts. + +2005-03-08 14:59 adam + + * src/statserv.c: Exit GFS if XML parsing fails. + +2005-03-08 12:48 adam + + * src/statserv.c: Call chdir before bend_{start,stop}. + +2005-03-08 12:07 adam + + * src/: session.h, statserv.c: Read directory element of XML config + so that server may chdir to proper location. + +2005-03-07 07:09 adam + + * test/marc4.xml: New test result. + +2005-03-07 07:07 adam + + * src/marcdisp.c: No leading spaces in warning comments + +2005-03-06 22:27 adam + + * src/marcdisp.c, util/marcdump.c: Better diagnostics for bad MARC + records. + +2005-03-06 13:54 adam + + * client/client.c: For record update, open file in binary mode + +2005-03-05 13:14 adam + + * src/: seshigh.c, statserv.c: WIN32 Updates for GFS to use TLS for + control block. + +2005-03-05 10:17 adam + + * src/seshigh.c: Fix compilation in mode without libxml2 (bug + introduced in previous commit). + +2005-03-04 13:00 adam + + * buildconf.sh: buildconf script configures directlry when -d / -c + is given + +2005-03-04 00:16 adam + + * include/yaz/backend.h, src/seshigh.c, src/session.h, + src/statserv.c, ztest/config1.xml, ztest/ztest.c: Added explain + facility for frontend server XML config. Renamed element cql2pqf + to cql2rpn. + +2005-03-03 00:59 adam + + * src/opacdisp.c: Wrap OPACXML in opacRecord as suggested by Larry + Dixson. + +2005-03-01 21:37 adam + + * src/eventl.c, src/eventl.h, src/seshigh.c, src/session.h, + src/statserv.c, ztest/Makefile.am, ztest/config1.xml: + Enhancements and new bugs in Generic Frontend Server.. Reworked + YAZ GFS XML config. Added pqf2cql support. + +2005-02-25 18:05 adam + + * NEWS, include/yaz/proto.h, src/opacdisp.c: Extended OPAC display + utility. OPAC display utility renders bibliographic (MARC) record + as well. Added yaz_opac_decode_wrbuf to supplement + yaz_marc_decode_wrbuf. + +2005-02-25 18:04 adam + + * src/marcdisp.c: yaz_marc_decode_wrbuf no longer Wrewinds WRBUF + +2005-02-25 18:03 adam + + * client/client.c: Bug fix. Dump record content (-m) was duplicated + for XML records + +2005-02-25 10:37 adam + + * src/marcdisp.c, test/Makefile.am, test/marc4, test/marc4.xml: + Fixed bug that caused MARC decode to SEGV for some invalid MARC + records. Adde marc4 + marc4.xml as a test case for it. + +2005-02-25 10:36 adam + + * include/yaz/yaz-version.h: YAZ 2.0.35 + +2005-02-25 10:36 adam + + * win/: yaz.nsi, yaz.rc: YAZ 2.0.35 windows version + +2005-02-21 15:37 adam + + * yaz.m4: Fix M4 quotation (square brackets in strings) + +2005-02-21 15:37 adam + + * configure.in: Quote 3rd arg to AC_CHECK_FUNC. YAZ 2.0.35 + +2005-02-09 13:41 adam + + * ztest/ztest.c: Avoid unnecessary logs + +2005-02-09 13:40 adam + + * debian/changelog: YAZ 2.0.34-2. + +2005-02-09 10:18 adam + + * src/unix.c: Increase listen backlog parameter for UNIX domain + sockets. + +2005-02-09 00:43 adam + + * doc/yaz-marcdump-man.xml: Fix option for MarcXchange + +2005-02-08 23:47 adam + + * test/: marc1.xml, marc2.xml, marc3.xml: New MARCXML test results + - due to new warning issued + +2005-02-08 15:58 adam + + * win/yaz.nsi: Dist zlib1.dll instead of zlib.dll + +2005-02-08 15:19 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.34 + +2005-02-08 14:51 adam + + * doc/tools.xml, doc/yaz-marcdump-man.xml, include/yaz/marcdisp.h, + src/marcdisp.c, util/marcdump.c: Added MarcXchange support. + +2005-02-08 14:47 adam + + * NEWS: Summarize changes + +2005-02-08 14:34 adam + + * configure.in: Added check for usleep(3) + +2005-02-08 14:23 adam + + * src/unix.c: Worked around bug #261 again. Added sleep for EAGAIN + case + +2005-02-08 02:01 adam + + * yaz.m4: Look for docbookx.dtd in more places. + +2005-02-07 12:23 adam + + * src/statserv.c: WIN32 compile fixes. No TLS for control block yet + +2005-02-07 12:23 adam + + * src/siconv.c: Avoid ANSI inline declaration + +2005-02-04 21:27 adam + + * src/srw.c: Fix xmlns for SRW diagnostic in yaz_srw_diagnostics + +2005-02-04 14:28 adam + + * src/unix.c: Fixed problem with connect on Unix domain sockets + that returned errno=EAGAIN. That is now treated as EINPROGRESS + error. + +2005-02-03 10:09 adam + + * zoom/zoomtst7.c: Remove old-style logging + +2005-02-03 00:27 adam + + * test/marc3.xml: Fix MARC test case + +2005-02-03 00:27 adam + + * test/tsticonv.c: Enable test case for bug #260 + +2005-02-03 00:26 adam + + * src/siconv.c: Fix bug #260: Multi combining MARC-8 chars not + converted properly + +2005-02-03 00:25 adam + + * src/marcdisp.c: Never assume non 00X have controlfields + +2005-02-03 00:07 adam + + * src/marcdisp.c: Put two spaces before datafield end tag (includes + subfields) + +2005-02-02 21:50 adam + + * include/yaz/marcdisp.h, src/marcdisp.c: Fixed bug #263: YAZ + MARCXML dump shows extra spaces after control fields. Added + yaz_marc_subfield_str which defines subfield lead string which is + used in YAZ_MARC_LINE format. Default string is blank+$. Added + yaz_marc_endline_str which defines end of fields string used in + YAZ_MARC_LINE format. Default string is newline. + +2005-02-02 21:25 adam + + * src/statserv.c: Fix statserv_getcontrol for non-threaded YAZ + +2005-02-02 18:11 adam + + * NEWS, client/client.c, doc/yaz-client-commands.xml: Added + yaz-client command scansize + +2005-02-02 11:17 adam + + * test/tsticonv.c: Added test case for bug #260 + +2005-02-01 22:07 adam + + * test/tsticonv.c: Better diagnostics for iconv test. Added case + for bug #258 + +2005-02-01 22:06 adam + + * src/siconv.c: Fixed bug #258: marc-8 to utf8 fails for some + composed sequences + +2005-02-01 18:23 adam + + * test/: tstccl.c, tstodr.c, tstwrbuf.c: Added include stdlib.h + +2005-02-01 15:46 adam + + * include/yaz/backend.h, src/eventl.c, src/eventl.h, src/seshigh.c, + src/session.h, src/statserv.c, ztest/ztest.c: Added support for + multi-homed YAZ frontend server. A backend config may be choosed + based on host and/or port. For Z39.50 host is picked from + OtherInfo in InitRequest (VAL_PROXY OID). For HTTP, host is + picked from HTTP header. Configuration is XML based . Libxml2 is + required. + +2005-02-01 15:43 adam + + * src/srwutil.c: Allow text/plain as HTTP Content-Type for SRW HTTP + POST. I can't get ab to send text/xml. + +2005-02-01 15:37 adam + + * include/yaz/comstack.h, src/tcpip.c, src/unix.c: Added member + user for COMSTACK that is an opaque pointer for user-defined + data. + +2005-01-27 10:08 adam + + * include/yaz/prt-ext.h, src/prt-ext.c: Fixed bug #255: EXTERNAL + decoding with ASN.1 types in octet strings. Added a few doxygen + comments as well. + +2005-01-27 10:06 adam + + * include/yaz/proto.h: Added prototype for + zget_init_diagnostics_octet. Added a few doxygen comments + +2005-01-27 10:06 adam + + * src/zget.c: Added zget_init_diagnostics_octet which is similar to + zget_init_diagnostics but encodes the EXTERNAL data in the + octet-aligned arm. + +2005-01-27 10:05 adam + + * client/client.c: Fix printing of some non-zero terminated + strings. WS updates. + +2005-01-27 10:04 adam + + * include/yaz/odr.h: Fix comments for some ODR members + +2005-01-21 10:23 adam + + * src/nmem.c: Do not use acquire locks (NMEM_{ENTER,LEAVE}) in + nmem_mutex_{create,destroy}. WS updates. + +2005-01-19 10:18 adam + + * src/seshigh.c: Make scan logging prettier + +2005-01-19 09:26 adam + + * win/makefile: Do not set HAVE_.. stuff for WIN32 + +2005-01-19 09:26 adam + + * client/client.c: Added include sys/types.h if it exist. Added + include sys/stat.h on Win32 + +2005-01-17 14:09 adam + + * util/: srwtst.c, yaziconv.c: Added include stdlib.h + +2005-01-17 14:08 adam + + * client/client.c: Added include sys/time.h + +2005-01-17 14:03 adam + + * src/nmem.c: Added include stdlib.h + +2005-01-17 13:53 adam + + * src/: eventl.c, srwutil.c: Fix MAC compilation + +2005-01-17 11:29 adam + + * src/: unix.c, tcpdchk.c: Fixed includes for FreeBSD + +2005-01-17 11:19 adam + + * src/srwutil.c: Do not declare several variables in non-XML mode + +2005-01-17 11:10 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.0.33 + +2005-01-17 00:20 adam + + * win/makefile: Define HAVE_SYS_TYPES_H in VS makefile + +2005-01-16 23:12 adam + + * client/client.c, src/ill-get.c: Minor include updates to make + Windows happy + +2005-01-16 23:12 adam + + * win/makefile: Assume sys/stat.h is available on Windows + +2005-01-16 23:01 adam + + * src/zoom-c.c: Added check for various headers, since comstack.h + no longer include them + +2005-01-16 22:56 adam + + * src/zget.c: Do not use exit + +2005-01-16 22:56 adam + + * src/srwutil.c: include stdlib.h + +2005-01-16 22:51 adam + + * configure.in, client/admin.c, client/bertorture.c, + include/yaz/comstack.h, include/yaz/xmalloc.h, src/ber_int.c, + src/seshigh.c, src/session.h, src/statserv.c, src/tcpdchk.c, + src/tcpip.c, src/unix.c: Removed away include of system headers + in comstack.h. Instead include them in the various implementation + C files. Added more headers in AC_CHECK_HEADERS. + +2005-01-16 22:40 adam + + * src/zoom-c.c: WS update + +2005-01-16 01:16 adam + + * win/makefile: Update for Libxml2-2.6.15, zlib-1.2.1 + +2005-01-15 20:47 adam + + * header.c, client/admin.c, client/admin.h, client/bertorture.c, + client/client.c, client/tabcomplete.c, client/tabcomplete.h, + doc/license.xml, doc/yaz.xml.in, include/yaz/backend.h, + include/yaz/charneg.h, include/yaz/comstack.h, include/yaz/cql.h, + include/yaz/diagbib1.h, include/yaz/ill.h, include/yaz/log.h, + include/yaz/logrpn.h, include/yaz/marcdisp.h, include/yaz/nmem.h, + include/yaz/odr.h, include/yaz/oid.h, include/yaz/options.h, + include/yaz/otherinfo.h, include/yaz/pquery.h, + include/yaz/proto.h, include/yaz/prt-ext.h, + include/yaz/readconf.h, include/yaz/soap.h, + include/yaz/sortspec.h, include/yaz/srw.h, + include/yaz/statserv.h, include/yaz/tcpip.h, include/yaz/tpath.h, + include/yaz/unix.h, include/yaz/wrbuf.h, include/yaz/xmalloc.h, + include/yaz/yaz-ccl.h, include/yaz/yaz-iconv.h, + include/yaz/yaz-util.h, include/yaz/yaz-version.h, + include/yaz/yconfig.h, include/yaz/zgdu.h, include/yaz/zoom.h, + src/atoin.c, src/ber_any.c, src/ber_bit.c, src/ber_bool.c, + src/ber_int.c, src/ber_len.c, src/ber_null.c, src/ber_oct.c, + src/ber_oid.c, src/ber_tag.c, src/charneg.c, src/comstack.c, + src/cqlstdio.c, src/cqlstrer.c, src/cqlstring.c, + src/cqltransform.c, src/cqlutil.c, src/diagbib1.c, src/diagsrw.c, + src/dumpber.c, src/eventl.c, src/eventl.h, src/grs1disp.c, + src/ill-get.c, src/initopt.c, src/log.c, src/logrpn.c, + src/marcdisp.c, src/matchstr.c, src/nmem.c, src/nmemsdup.c, + src/odr-priv.h, src/odr.c, src/odr_any.c, src/odr_bit.c, + src/odr_bool.c, src/odr_choice.c, src/odr_cons.c, src/odr_enum.c, + src/odr_int.c, src/odr_mem.c, src/odr_null.c, src/odr_oct.c, + src/odr_oid.c, src/odr_seq.c, src/odr_tag.c, src/odr_use.c, + src/odr_util.c, src/oid.c, src/opacdisp.c, src/options.c, + src/otherinfo.c, src/pquery.c, src/prt-ext.c, src/readconf.c, + src/requestq.c, src/seshigh.c, src/session.h, src/siconv.c, + src/soap.c, src/sortspec.c, src/srw.c, src/srwutil.c, + src/statserv.c, src/tcpdchk.c, src/tcpip.c, src/tpath.c, + src/unix.c, src/version.c, src/waislen.c, src/wrbuf.c, + src/xcqlutil.c, src/xmalloc.c, src/yaz-ccl.c, src/z3950oid.c, + src/zgdu.c, src/zget.c, src/zoom-c.c, src/zoom-opt.c, + src/zoom-p.h, test/tstccl.c, test/tsticonv.c, test/tstlog.c, + test/tstmatchstr.c, test/tstnmem.c, test/tstodr.c, + test/tstwrbuf.c, util/benchmark.c, util/cql2pqf.c, + util/cql2xcql.c, util/marcdump.c, util/srwtst.c, util/yaziconv.c, + zoom/zoomsh.c, ztest/read-grs.c, ztest/read-marc.c, + ztest/ztest.c: Bump year + +2005-01-11 13:13 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/makefile, win/yaz.nsi, win/yaz.rc: Towards 2.0.32 + +2005-01-11 13:07 adam + + * NEWS, client/client.c, include/yaz/backend.h, src/seshigh.c, + ztest/ztest.c: Added SRW Scan support in yaz-client and Generic + Frontend Server. + +2005-01-11 13:05 adam + + * src/srw.c: match_xsd_string returns empty string rather than NULL + for empty CDATA + +2005-01-11 11:50 adam + + * src/srwutil.c: Added SRU decode of maximumTerms, responsePosition + and extraRequestData + +2005-01-11 11:48 adam + + * src/srw.c: Fixes for value and pScanCluase in scan SRW codec + +2005-01-11 11:44 adam + + * ztest/ztest.c: Check for database in ztest_scan + +2005-01-09 22:52 adam + + * NEWS, client/client.c, include/yaz/srw.h, src/srw.c: Added + whereInList member to SRW Scan Term + +2005-01-09 22:50 adam + + * src/srwutil.c: Rename pqf scan parameter from x-ScanClause to + x-pScanClause + +2005-01-08 02:20 adam + + * NEWS, configure.in, client/client.c, include/yaz/srw.h, + src/srw.c, src/srwutil.c: Added support for SRW scan in + yaz-client + +2005-01-07 11:28 heikki + + * src/log.c: Added a warning (always to stderr) when opening the + log file fails + +2005-01-05 11:29 adam + + * test/tstnmem.c: Check that assignments to NMEM memory for some + basic types + +2005-01-05 11:23 adam + + * configure.in, src/nmem.c: Only use type 'long long' when + available. + +2005-01-04 22:31 mike + + * yaz.m4: Recognise yet ANOTHER location where docbookx.dtd may be + found -- this time, it's /usr/share/sgml/docbook/dtd/4.2 which is + what my Debian testing laptop uses. Must be a change in sarge. + +2005-01-04 22:29 mike + + * test/.cvsignore: Ignore generated file tstlog + +2005-01-04 22:28 mike + + * NEWS: nmem alighment. + +2005-01-04 22:27 mike + + * src/nmem.c: Return aligned blocks on the smallest boundaries that + are suitably aligned for all possible types on the particular + architecture YAZ is being built for. + +2005-01-04 10:41 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.0.31 + +2005-01-04 09:34 adam + + * debian/changelog: Fix date + +2005-01-04 02:39 adam + + * NEWS: Mention most important changes + +2005-01-04 02:25 adam + + * src/nmem.c: Align NMEM blocks to 2*sizeof(long) + +2005-01-03 14:36 adam + + * win/yaz.nsi: Towards 2.0.30 + +2005-01-03 14:28 adam + + * LICENSE, NEWS, README, configure.in, debian/changelog, + debian/rules, include/yaz/yaz-version.h: Towards 2.0.30. + +2005-01-03 13:34 adam + + * win/: LICENSE.txt, yaz.rc: Towards 2.0.30 + +2005-01-03 12:56 adam + + * src/statserv.c: Fix threading + +2005-01-03 10:18 adam + + * src/statserv.c: For daemon mode (-D), let parent wait till child + has created PID file + +2005-01-02 21:31 adam + + * client/client.c: Make negotiationCharsetRecords of type int + +2004-12-30 01:25 adam + + * src/: statserv.c, seshigh.c: Cast PIDs to longs so they can be + printfd + +2004-12-30 01:21 adam + + * src/: pquery.c, cclptree.c: Avoid signed char subscript + +2004-12-30 01:20 adam + + * client/client.c: Include unistd.h always + +2004-12-30 01:18 adam + + * ztest/: read-grs.c, read-marc.c, ztest.c: Avoid signed char + subscript + +2004-12-30 01:14 adam + + * src/: matchstr.c, odr_util.c: Avoid signed char subscript + +2004-12-30 01:11 adam + + * src/: log.c, marcdisp.c, oid.c: Avoid signed char subscript + +2004-12-23 00:48 adam + + * src/seshigh.c: Remove extra space in request log output + +2004-12-23 00:47 adam + + * src/statserv.c: Change GFS so that it listen&accept in parent + process rather than child. This avoid the synchronization pipe, + and seem to make the GFS a little faster. + +2004-12-23 00:45 adam + + * include/yaz/oid.h, src/oid.c: Added OID for charneg-4. + +2004-12-21 21:25 adam + + * client/client.c: Command negcharset may take up to three args + charset records version where records is an integer (0=false, + 1=true), version is charset negotatition version (3 or 4). + +2004-12-21 01:34 adam + + * src/zoom-c.c: When receiving no records in present response don't + throw non-surrogate diagnostic "decoding failed. Instead add + surrogate diagnostic record 14: System error in presenting + records. + +2004-12-21 01:31 adam + + * src/seshigh.c: Minor tweaks in logging (mostly for SRW search) + +2004-12-21 00:38 adam + + * src/logrpn.c: Prefix PRN/Type-1 queries with RPN: rather than Z: + +2004-12-21 00:38 adam + + * src/seshigh.c: Fixed bug in pack_records that caused piggyback + searches to crash. Improved logging of diagnostics a bit. + seshigh now using zget_- utilities. + +2004-12-21 00:36 adam + + * configure.in: Define YAZ_USE_NEW_LOG for YAZ itself + +2004-12-21 00:35 adam + + * include/yaz/proto.h, src/zget.c: Added functions to initialize + various structures for diagnostics: zget_DefaultDiagFormat, + zget_surrogateDiagRec, zget_init_diagnostics, zget_DiagRecs, + zget_DiacRec. + +2004-12-20 16:52 heikki + + * include/yaz/log.h: Added YLOG_FLUSH to the default log level, to + avoid problems on Solaris. Maybe this should be conditional on + the OS, as it works fine under Linux? + +2004-12-16 09:59 adam + + * src/atoin.c: Include marcdisp.h so that atoi_n gets public on + WIN32 + +2004-12-16 09:59 adam + + * src/nmem.c: Fix declaration (WIN32 section) + +2004-12-15 10:10 adam + + * doc/Makefile.am: Get rid of tex messages + +2004-12-14 11:52 adam + + * include/yaz/yaz-iconv.h: Include stddef.h because of size_t use + in header. + +2004-12-13 21:17 adam + + * NEWS, doc/tools.xml, doc/yaz-log-man.xml: Change wording WRT + ylog.h/log.h + +2004-12-13 21:16 adam + + * include/yaz/log.h: Change order but not semantics regarding old + LOG_-defs. + +2004-12-13 15:31 heikki + + * include/yaz/log.h: Included xmalloc.h from log.h, if usingthe old + system, as it used to be there... If using new system, you need + to include it yourself + +2004-12-13 15:21 heikki + + * client/client.c, include/yaz/Makefile.am, include/yaz/log.h, + include/yaz/yaz-util.h, include/yaz/ylog.h, src/atoin.c, + src/eventl.c, src/log.c, src/logrpn.c, src/nmem.c, src/odr.c, + src/readconf.c, src/seshigh.c, src/statserv.c, src/tcpdchk.c, + src/tpath.c, src/xmalloc.c, src/zoom-c.c, test/tstlog.c, + zoom/zoomsh.c, ztest/read-grs.c: Moved back to a single log.h, + with the new #define YAZ_USE_NEW_LOG + +2004-12-13 15:15 adam + + * yaz.m4: Define YAZ_USE_NEW_LOG=1 if app require YAZ > 2.0.28 + +2004-12-10 11:42 heikki + + * include/yaz/: log.h, yaz-util.h: Deprecated yaz-util.h with a + warinng in place. Re-enabled the warning in log.h Note: All these + warings can be avoided with CFLAGS="-Wall -g -D + YAZ_USE_OLD_LOG" ./configure + +2004-12-09 10:37 adam + + * include/yaz/log.h: Fixed place for YAZ_END_CDECL + +2004-12-09 10:30 adam + + * doc/yaz-client-commands.xml: Document commands: list_all, + set_auto_reconnect, negcharset, displaycharset, register_tab, + sleep, zversion, options. + +2004-12-09 10:27 adam + + * doc/yaz-client-man.xml: Document .yazclientrc + +2004-12-09 10:25 adam + + * client/client.c: 3rd argument for charset is marccharset + +2004-12-09 08:53 adam + + * client/client.c: Implemented commands negcharset and + displaycharset that specifies character set for negotiation and + display respectively. Command charset works as usual and is + implemented using the two. + +2004-12-08 10:08 adam + + * include/yaz/log.h: Had to remove. We will enable after has been + public available for one or two months. + +2004-12-08 10:06 adam + + * include/yaz/yaz-util.h: Include old yaz/log.h so that old things + still work (for some time) + +2004-12-02 20:12 adam + + * src/seshigh.c: Fix double-free in code that handles encoding + errors (from backend) + +2004-12-02 15:04 adam + + * client/client.c: Return values in cmd_source_ functions + +2004-12-02 14:55 ja7 + + * client/client.c: Fixed bug 227 and bug 228 + +2004-11-26 12:06 heikki + + * include/yaz/log.h: Added a way to get around the old log warning + +2004-11-26 12:01 adam + + * yaz.spec.in, src/marcdisp.c: yaz-log.7 man pages part of RedHat + package yaz + +2004-11-26 12:00 adam + + * debian/yaz.install: yaz-log.7 man pages part of Debian package + yaz + +2004-11-26 11:58 heikki + + * include/yaz/log.h: Reintroduced the bit "defines for those log + bits that are deprecated and not defined in the new ylog.h + +2004-11-25 10:43 adam + + * src/marcdisp.c: Treat field as having subfields even if first + char is blank/other + +2004-11-23 15:11 heikki + + * doc/: Makefile.am, tools.xml, yaz-log-man.xml: Added a man page + for yaz-log (7) + +2004-11-23 15:10 heikki + + * src/log.c: Re-enabled the -v notime option, it was broken. + +2004-11-22 11:54 adam + + * yaz.m4: Fix new bug introduced by previous commit (../yaz* not + used) + +2004-11-21 22:56 adam + + * src/Makefile.am, src/diagsrw.c, src/srwutil.c, win/makefile: + Update SRW/SRU diagnostic message definitions and store them in + separate source: diagsrw.c. + +2004-11-21 22:55 adam + + * NEWS: About log system changes + +2004-11-21 22:55 adam + + * doc/tools.xml: Update log chapter for new log system + +2004-11-19 19:31 adam + + * yaz.m4: Fixed bug #212: make distcheck uses global yaz, not a + local one + +2004-11-19 11:07 heikki + + * include/yaz/: log.h, ylog.h: Moved the #define of logf back into + log.h, so that it won't be available innewer software using + ylog.h. It conflicted with a math function + +2004-11-19 10:59 heikki + + * include/yaz/: log.h, ylog.h: Fixed a CDECL thing that broke yaz++ + +2004-11-18 16:18 heikki + + * client/client.c, include/yaz/Makefile.am, include/yaz/log.h, + include/yaz/yaz-util.h, include/yaz/ylog.h, src/eventl.c, + src/log.c, src/logrpn.c, src/nmem.c, src/odr.c, src/odr_oct.c, + src/readconf.c, src/seshigh.c, src/statserv.c, src/tcpdchk.c, + src/tcpip.c, src/tpath.c, src/unix.c, src/xmalloc.c, + src/zoom-c.c, test/tstlog.c, zoom/zoomsh.c, ztest/read-grs.c, + ztest/ztest.c: Deprecated log.h and created a new ylog.h Renamed + all LOG_ #defines to matching YLOG_, and used them everywhere + Used the new dynamic log system in deveral places + +2004-11-17 14:03 heikki + + * doc/tools.xml, src/log.c: Added an option to specify -word in the + loglevel parsing, to clear a specific bit: -v all,-log + +2004-11-17 01:18 adam + + * src/logrpn.c: Modify wrbuf_put_zquery and wrbuf_scan_term so the + generated PQF code is valid for reparsing. + +2004-11-17 01:17 adam + + * src/pquery.c: For @prox operator, the "which" member being known + or private was not set correctly. Use odr_intdup where + appropriate. + +2004-11-16 23:51 adam + + * test/tsticonv.c: Avoid generating tsticonv.log + +2004-11-16 23:44 adam + + * test/tstcql.sh: Clean up temp CQL test files + +2004-11-16 23:14 adam + + * src/seshigh.c: Avoid new ANSI inline declaration + +2004-11-16 23:10 adam + + * src/logrpn.c: Avoid new ANSI inline declaration + +2004-11-16 18:12 adam + + * test/tstmarc.sh: Make sure test only write to build directory to + make distcheck happier. + +2004-11-16 18:08 heikki + + * doc/Makefile.am, doc/tools.xml, doc/yaz.xml.in, + include/yaz/log.h, include/yaz/logrpn.h, src/log.c, src/logrpn.c, + src/seshigh.c, src/statserv.c, ztest/ztest.c: Improvements in the + log system, especially on the server side. Now logging on levels + 'server', 'session', 'request', and 'requestdetail', and on + 'request', making only one-line log entries for each request. + Documented it too! + +2004-11-10 10:26 adam + + * configure.in, include/yaz/yaz-version.h: Bump version to 2.0.29 + +2004-11-09 21:54 adam + + * src/log.c: Use strchr,strrchr instead of index/rindex. + +2004-11-09 21:42 adam + + * test/: marc1.xml, marc2.xml, marc3.xml: Added marc these + regressions test MARCXML records + +2004-11-09 21:35 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.28 + +2004-11-09 21:33 adam + + * debian/rules: Announce 2.0.27 because of new functions in log.h + +2004-11-09 21:31 adam + + * NEWS: Describe the new log utilities + +2004-11-04 15:19 heikki + + * include/yaz/log.h, src/log.c: Fixed a bug that caused extra + [level] tags in the log + +2004-11-03 23:33 adam + + * include/yaz/log.h, src/log.c, src/nmem.c: Using blanks for + assignments (no code changes) + +2004-11-03 23:30 adam + + * test/: Makefile.am, tstlog.c: Added test program for logging. + +2004-11-03 18:52 heikki + + * src/log.c: Fixed a silly typo that made a numeric -v crash + +2004-11-03 15:25 heikki + + * include/yaz/log.h, src/log.c: Added dynamic log-levels: - + yaz_log_mask_str (and _x) can now be called with a previously + unknown name, which will get a new log bit assigned. This + happens in most programs when parsing the -v command line + option. - yaz_log_module_level can be called with a name, and + if that name has got a bit defined, this bit will be returned, + otherwise zero. This can then be used as the log_level in + yaz_log and logf calls. - the names are cleaned from prefix + paths and suffixes, so ./foo.c becomes foo. Also added a + routine to set the maximum log size, and a few comments in log.h + +2004-11-02 16:47 heikki + + * src/log.c: protecting log rotation with a mutex + +2004-11-02 15:13 adam + + * lib/.cvsignore: Ignore .lib, .map, .exp + +2004-11-02 15:13 heikki + + * src/log.c: Rotating logfile if exceeding a gigabyte (need to add + a semaphore around it, for multithreaded things) + +2004-11-02 14:52 heikki + + * src/log.c: Not buffering the log file, unless LOG_FLUSH is set. + Reopening if necessary + +2004-11-02 13:57 heikki + + * src/log.c: oops, forgot to give a name to LOG_FLUSH. Now added + +2004-11-02 13:55 heikki + + * include/yaz/log.h, src/log.c: Added a new log flag LOG_FLUSH that + forces flushing the log after every write. Yaz used to do this + unconditionally, now it only does if LOG_FLUSH or LOG_DEBUG are + set in the log level. Presumably speeds up stuff that writes many + log entries... + +2004-11-02 12:37 heikki + + * client/client.c, include/yaz/log.h, src/log.c, src/statserv.c: + yaz_log_time_format sets the format of the timestamp. See man 3 + strftime Calling with "old" sets to the old format + "11:55:06-02/11" Calling with NULL or "" sets to the new format + "20041102-115719" If not called at all, the old format is used, + for backward compatibility + +2004-11-01 22:19 adam + + * client/client.c: Use Sleep(mseconds) on Windows + +2004-11-01 21:59 adam + + * configure.in, include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: + Towards 2.0.27 + +2004-11-01 21:16 adam + + * util/yaz-asncomp: Reformat a bit + +2004-11-01 21:13 adam + + * NEWS, include/yaz/cql.h, src/cql.y, src/cqltransform.c, + src/cqlutil.c: Fixed bug #148: CQL parser may leak. CQL nodes now + allocated using NMEM instead of xmalloc. For this reason, few + prototypes were changed in include/yaz/cql.h. + +2004-10-31 20:23 adam + + * src/srw.c: Bug fix: explainRequest decoder did not initialize + some members when explain record was missing. + +2004-10-27 10:18 adam + + * yaz-config.in: Return proper value for --comp (yaz-asncomp) + +2004-10-15 02:18 adam + + * NEWS, include/yaz/backend.h, include/yaz/ccl.h, + include/yaz/charneg.h, include/yaz/comstack.h, + include/yaz/diagbib1.h, include/yaz/log.h, include/yaz/logrpn.h, + include/yaz/marcdisp.h, include/yaz/nmem.h, include/yaz/odr.h, + include/yaz/oid.h, include/yaz/options.h, + include/yaz/otherinfo.h, include/yaz/pquery.h, + include/yaz/proto.h, include/yaz/prt-ext.h, + include/yaz/readconf.h, include/yaz/soap.h, + include/yaz/sortspec.h, include/yaz/srw.h, + include/yaz/statserv.h, include/yaz/tcpip.h, include/yaz/tpath.h, + include/yaz/unix.h, include/yaz/wrbuf.h, include/yaz/xmalloc.h, + include/yaz/xmosi.h, include/yaz/yaz-ccl.h, + include/yaz/yaz-iconv.h, include/yaz/yaz-util.h, + include/yaz/yconfig.h, include/yaz/zgdu.h, include/yaz/zoom.h, + src/atoin.c, src/ber_any.c, src/ber_bit.c, src/ber_bool.c, + src/ber_int.c, src/ber_len.c, src/ber_null.c, src/ber_oct.c, + src/ber_oid.c, src/ber_tag.c, src/cclerrms.c, src/cclfind.c, + src/cclptree.c, src/cclqfile.c, src/cclqual.c, src/cclstr.c, + src/ccltoken.c, src/charneg.c, src/comstack.c, src/cql.y, + src/cqlstring.c, src/diagbib1.c, src/dumpber.c, src/eventl.c, + src/eventl.h, src/grs1disp.c, src/ill-get.c, src/initopt.c, + src/log.c, src/logrpn.c, src/marcdisp.c, src/matchstr.c, + src/nmem.c, src/nmemsdup.c, src/odr-priv.h, src/odr.c, + src/odr_any.c, src/odr_bit.c, src/odr_bool.c, src/odr_choice.c, + src/odr_cons.c, src/odr_enum.c, src/odr_int.c, src/odr_mem.c, + src/odr_null.c, src/odr_oct.c, src/odr_oid.c, src/odr_seq.c, + src/odr_tag.c, src/odr_use.c, src/odr_util.c, src/oid.c, + src/opacdisp.c, src/options.c, src/otherinfo.c, src/pquery.c, + src/prt-ext.c, src/readconf.c, src/requestq.c, src/service.c, + src/service.h, src/seshigh.c, src/session.h, src/siconv.c, + src/soap.c, src/sortspec.c, src/srw.c, src/srwutil.c, + src/statserv.c, src/tcpdchk.c, src/tcpip.c, src/tpath.c, + src/unix.c, src/waislen.c, src/wrbuf.c, src/xmalloc.c, + src/yaz-ccl.c, src/zgdu.c, src/zget.c, src/zoom-c.c, + src/zoom-opt.c, src/zoom-p.h: Doxyfile file description. + Indentation. No change of code. + +2004-10-12 15:23 ja7 + + * client/client.c: Added a sleep command .. + +2004-10-11 00:44 adam + + * client/Makefile.am: Fix setting of AM_CPPFLAGS + +2004-10-11 00:21 adam + + * debian/changelog: Testing Deb + +2004-10-11 00:17 adam + + * Makefile.am: Remove make rpm rule that is never used anymore + +2004-10-11 00:17 adam + + * configure.in: Abort if OpenSSL does not exist and --with-openssl + is given + +2004-10-10 23:48 adam + + * win/makefile: Dont define HAVE_WCHAR_H since wchar_t is a 16-bit + int rather than a 32-bit int. So wchar_t can't represent the + whole UNICODE anyway. + +2004-10-10 23:43 adam + + * src/cclfind.c: Use other type to avoid warning + +2004-10-10 23:12 adam + + * NEWS: Update NEWS with most important changes + +2004-10-09 10:49 adam + + * src/srwutil.c: Fixed bug #176: Dont throw diagnostics on empty + SRU args. + +2004-10-09 10:21 adam + + * src/seshigh.c: Fixed bug #172: surrogate diagnostics in SRW + lacking NS. + +2004-10-09 10:03 adam + + * configure.in, client/Makefile.am, src/Makefile.am: Fixed bug + #172: RPM builds does not enable SSL. + +2004-10-07 09:42 adam + + * src/query.c: Not in use + +2004-10-04 00:34 adam + + * .cvsignore, Doxyfile.in, Makefile.am, configure.in, + include/yaz/ccl.h, include/yaz/cql.h, include/yaz/yaz-version.h, + src/cql.y, src/cqlstdio.c, src/cqlstrer.c, src/cqlstring.c, + src/cqltransform.c, src/cqlutil.c, src/version.c, src/xcqlutil.c: + Initial work for Doxygen based YAZ reference + +2004-10-02 15:41 adam + + * doc/tools.xml: Update documentation about CQL nodes + +2004-10-02 15:41 adam + + * include/yaz/cql.h: Remove unused define CQL_NODE_MOD + +2004-10-02 15:28 adam + + * src/: cclqfile.c, ccltoken.c, cql.y, cqltransform.c, odr.c, + odr_oct.c, soap.c, srw.c, srwutil.c, zoom-c.c: Added several type + casts for C++ compile + +2004-10-02 15:27 adam + + * yaz.spec.in: Add --with-xml2 to RPM spec + +2004-10-02 01:01 adam + + * debian/rules: Add --with-xml2 to configure + +2004-10-02 01:01 adam + + * configure.in: If --with-xml2, --enable-tcpd is given and they + cannot be found, configure stops. + +2004-10-01 21:34 adam + + * doc/tools.xml: Extend CCL chapter. Describe r=r + +2004-10-01 15:16 adam + + * src/Makefile.am: No TESTS here + +2004-10-01 15:16 adam + + * src/odr.c: Added ()s to avoid warning. + +2004-10-01 15:05 adam + + * NEWS, configure.in, yaz.spec.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.0.26 + +2004-10-01 13:45 adam + + * src/marcdisp.c: Fixed MARC utilities to use proper conversion to + XML CDATA for subfields, tags, etc. to ensure validity of + generated MARCXML records and others. + +2004-10-01 13:44 adam + + * src/wrbuf.c: Prevent XML CDATA with ASCII control chars (except + TAB,CR,LF) + +2004-10-01 13:43 adam + + * test/: Makefile.am, marc1, marc2, marc3, tstcql.sh, tstmarc.sh: + Adding test for MARC->MARCXML conversions with 3 weird records + +2004-09-30 23:54 adam + + * ztest/ztest.c: Server returns surrogate diagnostic 14: "System + error in presenting records" when single record cannot be + converted to XML. + +2004-09-30 23:51 adam + + * src/seshigh.c: Convert Z39.50 surrogate diagnostics to SRW + diagnostics. Return SRW diagnostic 61: "First record position out + of range", properly. + +2004-09-30 20:40 adam + + * NEWS: Rephrase + +2004-09-30 20:40 adam + + * NEWS, src/seshigh.c: Bug fix: YAZ GFS did not return schema in + explainResponse. + +2004-09-30 13:23 adam + + * TODO, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.25 + +2004-09-30 13:15 adam + + * src/seshigh.c: Added typecast and removed bad assignment + +2004-09-30 13:13 adam + + * NEWS, src/seshigh.c: The YAZ GFS when converting SRW/SRU requests + to Z39.50 structures now converts recordSchema to elementSetName + as well as schema URI. + +2004-09-30 13:06 adam + + * src/odr_mem.c: Create NMEM automatically for odr_{str,int}dup. + +2004-09-30 12:00 adam + + * src/comstack.c: Fix serious bug regarding HTTP requests + (introduced in YAZ 2.0.24) + +2004-09-29 23:08 adam + + * debian/rules: We added new functions so require 2.0.24 if YAZ is + used. + +2004-09-29 22:44 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards YAZ 2.0.24 + +2004-09-29 22:37 adam + + * NEWS, client/default.bib, include/yaz/ccl.h, src/cclfind.c, + src/cclqfile.c, src/ccltoken.c, test/tstccl.c: Added CCL facility + r=r "range" which is similar to r=o "ordered" but does not + require white-space before and after the dash, e.g. x=-1990 is + equivalent to x <= 1990 iff r=r, but equivalent to x= -1980 iff + r=o. Added CCL tests for ranges. Fixed memory leak in CCL parser + that occurred when proximity was used. + +2004-09-29 22:15 adam + + * test/: tstmatchstr.c, tstnmem.c: Added include stdlib.h + +2004-09-29 22:14 adam + + * test/tstodr.c: Remove unused variables + +2004-09-22 21:22 adam + + * doc/yaz-client-man.xml: Rephrase info about option -m + +2004-09-22 21:22 adam + + * doc/yaz-client-commands.xml: Document scanpos and scanstep + +2004-09-22 21:12 adam + + * NEWS: Notes about changes + +2004-09-22 16:50 adam + + * configure.in: Do not declare static function f in AC_TRY_LINK + test. It is not necessary but more importanly the function f gets + optimized away which resulted in error(s) in test result. + +2004-09-22 15:58 adam + + * debian/changelog: Debian yaz-2.0.23-3 + +2004-09-22 15:21 adam + + * client/client.c: Added commands scanpos and scanstep that sets + preferred position and scan step respectively. Renamed cmd + stepsize to scanstep. + +2004-09-22 15:08 adam + + * client/client.c: Add command stepsize that sets stepSize for Scan + (default 0) + +2004-09-22 14:17 adam + + * include/yaz/ccl.h: Add prototype for ccl_qual_buf. + +2004-09-22 13:22 adam + + * win/yaz.rc: Windows 2.0.23-6 + +2004-09-22 13:21 adam + + * NEWS, src/cclqfile.c, test/tstccl.c: Added CCL utility + ccl_qual_buf which parses one or more CCL spec lines in a buffer. + +2004-09-22 11:30 adam + + * debian/changelog: Prepare for new Debian + +2004-09-21 18:28 adam + + * client/client.c: Fix saving of SRW query for show. Bug introduced + by previous commit so no official YAZ release was affected. + +2004-09-21 16:59 adam + + * src/: comstack.c, tcpip.c, unix.c: Fix problem with decoding of + HTTP responses with no Content Length specified. + +2004-09-17 10:44 adam + + * yaz.m4: Remove Id from header due to inconvenient diffs when + yaz.m4 is copied + +2004-09-16 19:59 adam + + * NEWS: Rephrased comment in NEWS + +2004-09-13 11:24 adam + + * client/client.c: If queryType is prefix, yaz-client sends PQF to + SRW server. + +2004-09-13 11:23 adam + + * src/logrpn.c: Log CCL and Z39.58 queries + +2004-09-11 22:52 adam + + * NEWS, yaz.m4: option --with-yazconfig renamed to --with-yaz + +2004-09-10 13:28 adam + + * src/seshigh.c: For SRW, do not set numberOfRecords when + diagnostic is returned + +2004-09-09 11:54 adam + + * yaz.m4: DTD_DIR assignment + +2004-09-09 11:53 adam + + * configure.in: Align text in configure --help + +2004-09-09 11:51 adam + + * NEWS: Describe with-yazconfig change + +2004-09-09 11:40 adam + + * yaz.m4: Rename Docbook related --with options to + --with-docbook-{dtd,dsssl,xsl}. Rename --with-yazconfig to + --with-yaz-config. + +2004-09-03 20:55 adam + + * client/client.c: Manually test for OCLC UI OID and print + +2004-09-03 20:55 adam + + * src/prt-ext.c: Do not decode OCLC UI by default. + +2004-08-24 10:44 adam + + * src/odr.c: Clear ODR error in odr_setbuf + +2004-08-19 09:47 adam + + * NEWS, doc/installation.xml, win/makefile: yazd.{dll,lib} instead + of yazdebug.{dll,lib}. + +2004-08-19 09:42 adam + + * win/: makefile, yaz.nsi: Distribute msvcr71.dll with dist. Do not + distribute yaz debug DLLs. + +2004-08-19 09:36 adam + + * NEWS: Rephrase comment about windows DLL/lib + +2004-08-18 12:47 adam + + * win/makefile: Make sure dll,client,ztest rules depend on + dirs,generate + +2004-08-18 12:05 adam + + * win/yaz.rc: Bump minor win version + +2004-08-18 12:03 adam + + * NEWS, include/yaz/ccl.h, src/cclqfile.c: Added CCL utility + ccl_qual_line which adds CCL qualifier line consisting of name + and value - ignoring empty lines and comments. + +2004-08-18 12:01 adam + + * debian/rules: Adding to interface so update shlib depds + +2004-08-18 11:43 adam + + * win/makefile: Do not build debug mode exe files for dist (nsis + rule) + +2004-08-18 11:08 adam + + * NEWS, doc/installation.xml: Document the changes WRT WIN32 debug + DLL/lib. + +2004-08-18 11:01 adam + + * win/: makefile, yaz.nsi, yaz.rc: Use yazdebug.{dll,lib} for debug + version of YAZ to allow both debug/release version of YAZ to be + in use. Debug libraries are now part of WIn32 install. + +2004-08-13 14:59 adam + + * win/yaz.rc: YAZ 2.0.23-3 + +2004-08-13 14:54 adam + + * NEWS: Rephrase + +2004-08-13 13:36 adam + + * client/client.c: Cast to unsigned char to prevent assert in MS. + Studio .NET + +2004-08-13 13:35 adam + + * src/atoin.c: Cast to unsigned char to prevent assert in MS Studio + .NET. + +2004-08-13 10:59 adam + + * src/odr_oct.c: Remove unused variable + +2004-08-13 10:58 adam + + * src/odr.c: Move declaration to start of block + +2004-08-13 10:40 adam + + * win/makefile: Make clean removes .pdf too + +2004-08-13 09:30 adam + + * NEWS, doc/odr.xml, include/yaz/odr.h, src/odr-priv.h, src/odr.c, + src/odr_cons.c, src/odr_oct.c, src/odr_oid.c: Reworked + odr_set_stream a bit, so that write handler now takes a buffer + and a length + ODR handle. Also implement odr_get_element_path + that returns current path of elements. + +2004-08-13 09:26 adam + + * doc/credits.xml: Added Larry E. Dixson + +2004-08-11 22:13 adam + + * NEWS, src/cclfind.c: Fixed bug in CCL parser where truncation + char was not removed when truncation=both was in effect. + +2004-08-11 14:47 adam + + * doc/odr.xml: Document odr_setpring and odr_set_stream. + +2004-08-11 14:16 adam + + * NEWS: Mention CQL char bug fix. + +2004-08-11 14:15 adam + + * NEWS, include/yaz/odr.h, src/odr-priv.h, src/odr.c, + src/odr_any.c, src/odr_bit.c, src/odr_bool.c, src/odr_choice.c, + src/odr_cons.c, src/odr_enum.c, src/odr_int.c, src/odr_null.c, + src/odr_oct.c, src/odr_oid.c, src/odr_util.c, src/zgdu.c: Added + odr_set_stream which is is a more generic to odr_setprint. + odr_set_stream takes a stream handle, pointer to puts function + and pointer to close function. The close function - if non-NULL - + will be called during odr_destroy. + +2004-08-11 14:01 adam + + * test/tstccl.c: Add check for proximity + +2004-08-11 13:46 adam + + * win/yaz.rc: Make 2.0.23-2 for Windows with fixes for MS. NET + +2004-08-11 13:44 adam + + * client/client.c, src/ccltoken.c: Use unsigned char pointers to + prevent assert for 8-bit on MS .NET + +2004-08-11 11:05 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.23 + +2004-08-11 11:02 adam + + * src/cclfind.c: Fix buffer overrun in CCL parser for proximity + +2004-08-07 10:18 adam + + * NEWS, src/Makefile.am, src/siconv.c, test/tsticonv.c, + util/Makefile.am, util/marcdump.c, win/makefile, win/yaz.nsi: + Fixes for MARC-8 in yaz_iconv character set utilies. The MARC-8 + to UTF-8/UCS conversion is now only based on codetables.xml. + Thanks to Larry Dixson for reporting this error. + +2004-08-07 10:06 adam + + * src/: Makefile.am, charconv.tcl, marcdisp.c: For MARCXML, set + leader pos 9 to a to signal unicode + +2004-08-06 10:31 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.22 + +2004-08-04 11:30 adam + + * util/marcdump.c: Remove unused code. + +2004-08-02 12:13 adam + + * NEWS: Add support for more "commit changes" in ZOOM (uses + Extended Services). + +2004-08-02 12:06 adam + + * src/: seshigh.c, zoom-c.c: Add ES package of type commit + +2004-07-30 10:37 adam + + * NEWS, client/client.c: For yaz-client, command set_marcdump + and -m dumps SUTRS/XML/.. records as well. + +2004-07-26 14:16 mike + + * doc/tools.xml: Fix typo. + +2004-06-15 12:53 adam + + * src/seshigh.c: Avoid using size_t for length modifier in printf + format + +2004-06-15 11:58 adam + + * configure.in, util/benchmark.c: Use db_printf instead of dprintf + which is a public symbol in many systems + +2004-06-15 11:33 adam + + * doc/frontend.xml: Specify that default is 15 minutes in timeout + for GFS + +2004-06-06 22:56 adam + + * debian/control: libyaz-dev depends on libssl-dev + +2004-05-27 23:24 ja7 + + * client/client.c: added new command for testing cancel + cmd_cancel_find which makes a find command and then cancel's it. + extended the buffer when processing input files + +2004-05-26 13:14 adam + + * NEWS, configure.in: Yet another small fix for configure of SSL. + +2004-05-25 16:06 adam + + * src/cqltransform.c: Do not throw error if truncation.none is not + given + +2004-05-21 14:27 adam + + * yaz.m4: Swap definition order for YAZ_DOC and YAZ_INIT + +2004-05-19 07:32 oleg + + * util/benchmark.c: Fixed use of dprintf(). The define of dprintf() + is a part in some linux based OS. + +2004-05-19 07:28 oleg + + * configure.in: Added check of dprintf(). + +2004-05-14 10:19 adam + + * NEWS, configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.21 + +2004-05-13 15:11 adam + + * NEWS, configure.in: Fix SSL libs for configure when + --with-openssl=DIR is given. + +2004-05-13 12:07 adam + + * configure.in: Fix SSL -L -lssl order + +2004-05-10 20:42 adam + + * doc/yaz-man.xml: Bump year + +2004-05-10 14:32 adam + + * win/yaz.nsi: Upgrade to NSIS 2 + +2004-05-10 13:56 adam + + * win/makefile: Use libxml 2.6.9 + +2004-05-10 13:40 adam + + * src/tcpip.c: Declare cs_set_ssl_certificate_file in non-ssl mode + too + +2004-05-10 13:27 adam + + * debian/rules: Updated Debian version dependency to 2.0.20. + +2004-05-10 13:24 adam + + * NEWS, configure.in, yaz.spec.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.0.20 + +2004-05-10 13:21 adam + + * debian/changelog: Build new Debian package + +2004-05-10 12:47 adam + + * NEWS, include/yaz/comstack.h, src/statserv.c, src/tcpip.c: Rename + cs_set_ssl_certf to cs_set_ssl_certificate_file + +2004-05-10 12:46 adam + + * doc/: Makefile.am, asn.xml, comstack.xml, yaz-ztest-man.xml, + ztest-options.xml: Describe new SSL comstack functions + +2004-05-10 12:45 adam + + * client/client.c, ztest/ztest.c: Do not use obsolete YAZ defines + +2004-05-10 09:52 adam + + * include/yaz/proto.h: Keep old defines for now. Reverts last + commit + +2004-05-10 09:48 adam + + * README, include/yaz/proto.h, src/seshigh.c, src/sortspec.c, + src/zget.c: Do not mention windows.txt anymore. Point to HTML doc + +2004-05-03 11:00 adam + + * src/: comstack.c, tcpip.c: Added a few casts + +2004-05-03 11:00 adam + + * client/client.c: Use better OID utilities. Simplify + +2004-05-02 02:07 adam + + * configure.in: Better check for SSL on non pkg-config systems + +2004-05-02 02:07 adam + + * ztest/Makefile.am: Make sample SSL certificate part of dist + +2004-05-02 01:45 adam + + * doc/installation.xml: Clarify stuff about libxml2 + +2004-05-02 01:32 adam + + * configure.in, yaz-config.in, client/Makefile.am, src/Makefile.am, + util/Makefile.am, zoom/Makefile.am, ztest/Makefile.am: Get rid of + SSL_{CFLAGS,DEFS,LIBS} + +2004-05-02 01:19 adam + + * win/makefile: Link with libxml2 2.6.9 + +2004-04-30 21:34 adam + + * NEWS, buildconf.sh, configure.in, yaz.m4: dd autoconf m4 macro + YAZ_DOC for YAZ documentation setup (docbook). + +2004-04-30 21:10 adam + + * NEWS, include/yaz/backend.h, include/yaz/comstack.h, + src/statserv.c, src/tcpip.c: SSL comstack now uses yaz.pem + certificate file on server side by default. Certificate filename + can be configured by calling comstack function cs_set_ssl_cert + before cs_bind is used. + +2004-04-30 14:43 adam + + * src/zoom-c.c: Handle duplicate connect + +2004-04-29 23:27 adam + + * src/statserv.c: Dont print system error when comstack cannot be + created + +2004-04-29 23:19 adam + + * NEWS, include/yaz/comstack.h, src/comstack.c, src/tcpip.c, + src/unix.c: Implement cs_set_ssl_ctx which sets SSL_CTX for SSL + comstack. Do not create SSL_CTX in cs_create (ssl_type). Create + in tcpip_bind, tcpip_rcvconnect instead. This allows user to set + custom SSL_CTX. + +2004-04-29 23:15 adam + + * util/: cql2pqf.c, cql2xcql.c: Get rid of GCC warnings + +2004-04-29 10:55 adam + + * src/: comstack.c, tcpip.c: Relax http/https URL check a bit + +2004-04-29 10:54 adam + + * zoom/zoomsh.c: Get rid of SSL check code + +2004-04-29 00:44 adam + + * NEWS, configure.in, yaz-config.in, yaz.spec.in, + client/Makefile.am, client/client.c, debian/changelog, + debian/yaz.install, doc/Makefile.am, doc/yaz-client-man.xml, + doc/yaz-config-man.xml, doc/yaz-ztest-man.xml, + include/yaz/comstack.h, include/yaz/zoom.h, src/Makefile.am, + src/comstack.c, src/tcpip.c, src/zoom-c.c, util/Makefile.am, + zoom/Makefile.am, zoom/zoomsh.c, ztest/Makefile.am: ZOOM now + allows inspection of X509 peer certificate for verification. The + X509 buffer is retrived by reading ZOOM option "sslPeerCert". + Removed libyazssl.la. When SSL is enabled, libyaz.la has SSL + support and all programs have too (yaz-ztest, yaz-client, + zoom..). May not be as "modular" but it simplifies things. Added + cs_get_peer_certificate to that returns peer X509 PEM. + +2004-04-28 15:25 adam + + * client/client.c: More SSL details for yaz-client + +2004-04-28 14:10 adam + + * NEWS, client/Makefile.am, client/client.c, + include/yaz/comstack.h, src/tcpip.c: Added cs_get_SSL. + yaz-client-ssl prints peer info + +2004-04-26 23:23 adam + + * src/mterm2.asn: Update ASN.1 for + UserInfoFormat-multipleSearchTerms-2. + +2004-04-22 20:44 adam + + * doc/Makefile.am: Check for HTMLFILES + +2004-04-22 20:25 adam + + * ztest/dummy-grs: Revert + +2004-04-22 20:24 adam + + * NEWS, ztest/dummy-grs: Mention new docs on MARC + +2004-04-22 15:12 adam + + * doc/: Makefile.am, tools.xml: Document MARC API + +2004-04-17 10:24 adam + + * NEWS, configure.in: Fix --disable-tcpd to really disable tcpd. + Patch by Robin H. Johnson. + +2004-04-16 14:34 mike + + * test/.cvsignore: Ignore generated test programs. + +2004-04-14 14:58 adam + + * src/ber_tag.c: Fix code for ODR_DEBUG. Thanks to Ian Ibbotson + +2004-04-11 17:02 adam + + * Makefile.am: Make buildconf.sh part of dist + +2004-04-07 15:51 adam + + * client/client.c: Check class for display of XML/HTML + +2004-04-07 15:47 adam + + * client/client.c: Display records even if OID is unknown + +2004-04-06 19:47 adam + + * src/zoom-c.c: Fixed charset spec parsing for ZOOM_record_get + +2004-03-30 16:15 adam + + * yaz.spec.in: Fix RedHat package due to rename of CHANGELOG to + NEWS + +2004-03-29 22:13 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.19 + +2004-03-29 22:11 adam + + * CHANGELOG, Makefile.am, NEWS, debian/rules, win/yaz.nsi: Rename + CHANGELOG to NEWS + +2004-03-29 17:09 adam + + * CHANGELOG, Makefile.am, src/seshigh.c, ztest/ztest.c: Fix bug + with missing initialization of member in init_diagnostics. This + bug affects threaded version of GFS server. + +2004-03-24 11:14 adam + + * src/srwutil.c: Spell fix + +2004-03-20 13:54 adam + + * doc/installation.xml: Rephrase note + +2004-03-20 08:16 adam + + * src/charconv.tcl: Use "" instead of 0 for last field 'from'. And + test for end of list by checking 'to' instead of 'from'. + +2004-03-20 08:02 adam + + * CHANGELOG, configure.in, debian/changelog, include/yaz/wrbuf.h, + include/yaz/yaz-version.h, src/wrbuf.c, win/yaz.nsi, win/yaz.rc: + Use wrbuf_xmlputs_n instead of wrbuf_write_cdata to avoid clash + with Zebra symbol. Towards 2.0.18. + +2004-03-19 22:13 adam + + * win/yaz.rc: Build 2 + +2004-03-19 22:12 adam + + * doc/: asn.xml, frontend.xml, installation.xml, odr.xml: Fix a few + links. Mention zlib. + +2004-03-19 21:57 adam + + * win/makefile: Make zlib.dll part of YAZ if libxml2 is enabled + +2004-03-17 21:00 adam + + * CHANGELOG: Fix date in top + +2004-03-17 20:07 adam + + * win/makefile: Use libxml2-2.6.7 and iconv-1.9.1 + +2004-03-17 19:47 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/makefile, win/yaz.nsi, win/yaz.rc: + Towards 2.0.17 + +2004-03-17 19:43 adam + + * src/srw.c: Fix encoding of xsd:string to use text instead of + CDATA + +2004-03-17 19:31 adam + + * CHANGELOG, src/cql.y: Fix endless loop in CQL parser with + unbalanced + +2004-03-17 12:00 adam + + * CHANGELOG, src/Makefile.am, src/charconv.tcl: Use more compact + way to store MARC-8 conversion tables + +2004-03-17 11:59 adam + + * client/client.c: Indentation + +2004-03-17 00:07 adam + + * win/makefile: Depend on charconv.tcl + +2004-03-16 14:29 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.0.16 + +2004-03-16 14:22 adam + + * src/cqlutil.c, util/cql2pqf.c, util/cql2xcql.c: Get rid of a few + warnings + +2004-03-16 14:15 adam + + * src/marcdisp.c: Remove unused var + +2004-03-16 14:13 adam + + * src/charconv.tcl: Get rid of table + +2004-03-16 14:12 adam + + * src/Makefile.am, src/charconv.tcl, src/codetables.xml, + src/seshigh.c, src/siconv.c, win/makefile, win/yaz.nsi: All + MARC-8 codetables, but G1 uncertain + +2004-03-16 00:14 adam + + * src/Makefile.am: Allow length 100 for cjk conversion + +2004-03-16 00:14 adam + + * src/charconv.tcl: Use unsigned short rather than int for char + conversion trie + +2004-03-15 23:51 adam + + * src/siconv.c: Skip multiple of ($, in MARC-8 ESC sequence + +2004-03-15 22:39 adam + + * etc/pqf.properties, include/yaz/cql.h, include/yaz/wrbuf.h, + src/Makefile.am, src/cql.y, src/cqltransform.c, src/cqlutil.c, + src/marcdisp.c, src/siconv.c, src/wrbuf.c, src/xcqlutil.c, + test/tsticonv.c, test/cql/8.1.out, test/cql/8.3.out, + test/cql/9.4.out, win/makefile, win/yaz.nsi: Extend MARC-8 to + handle ESC-G0 EACC. Fix conversion order for MARCXML output. Let + CQL parser resolve prefixes to identifiers. Updates tests. + +2004-03-11 21:40 adam + + * CHANGELOG: Mention Olegs fix + +2004-03-11 11:09 oleg + + * src/siconv.c: Fixed error with UTF8 <-> UCS4, UCS4LE encoding + (reverse direction for bit operation). For Latin-1 charcters the + patch has not value, only for characters, which has code greater + then xFF in UTF8. + +2004-03-11 10:34 adam + + * util/: cql2pqf.c, cql2xcql.c: Update cql2xcql, cql2pqf to use + options (same style) + +2004-03-10 22:09 adam + + * src/opacdisp.c: Add shelvingData too for OPAC XML + +2004-03-10 20:42 adam + + * client/client.c: Show OPAC shelvingData + +2004-03-10 19:50 adam + + * test/cqlsample: Mention origin + +2004-03-10 18:29 adam + + * test/tstcql.sh: Make cql test work if srcdir != . + +2004-03-10 18:18 adam + + * util/Makefile.am: Add yaz-config to DISTCLEANFILES + +2004-03-10 17:34 adam + + * CHANGELOG, Makefile.am, include/yaz/cql.h, src/Makefile.am, + src/cql.y, src/cqltransform.c, src/cqlutil.c, src/lexer.h, + src/xcqlutil.c, test/Makefile.am, test/cqlsample, test/tstcql.sh, + test/cql/.cvsignore, test/cql/1.1.err, test/cql/1.1.out, + test/cql/1.10.err, test/cql/1.10.out, test/cql/1.11.err, + test/cql/1.11.out, test/cql/1.2.err, test/cql/1.2.out, + test/cql/1.3.err, test/cql/1.3.out, test/cql/1.4.err, + test/cql/1.4.out, test/cql/1.5.err, test/cql/1.5.out, + test/cql/1.6.err, test/cql/1.6.out, test/cql/1.7.err, + test/cql/1.7.out, test/cql/1.8.err, test/cql/1.8.out, + test/cql/1.9.err, test/cql/1.9.out, test/cql/10.1.err, + test/cql/10.1.out, test/cql/10.10.err, test/cql/10.10.out, + test/cql/10.2.err, test/cql/10.2.out, test/cql/10.3.err, + test/cql/10.3.out, test/cql/10.4.err, test/cql/10.4.out, + test/cql/10.5.err, test/cql/10.5.out, test/cql/10.6.err, + test/cql/10.6.out, test/cql/10.7.err, test/cql/10.7.out, + test/cql/10.8.err, test/cql/10.8.out, test/cql/10.9.err, + test/cql/10.9.out, test/cql/2.1.err, test/cql/2.1.out, + test/cql/2.10.err, test/cql/2.10.out, test/cql/2.11.err, + test/cql/2.11.out, test/cql/2.12.err, test/cql/2.12.out, + test/cql/2.13.err, test/cql/2.13.out, test/cql/2.14.err, + test/cql/2.14.out, test/cql/2.2.err, test/cql/2.2.out, + test/cql/2.3.err, test/cql/2.3.out, test/cql/2.4.err, + test/cql/2.4.out, test/cql/2.5.err, test/cql/2.5.out, + test/cql/2.6.err, test/cql/2.6.out, test/cql/2.7.err, + test/cql/2.7.out, test/cql/2.8.err, test/cql/2.8.out, + test/cql/2.9.err, test/cql/2.9.out, test/cql/3.1.err, + test/cql/3.1.out, test/cql/3.2.err, test/cql/3.2.out, + test/cql/3.3.err, test/cql/3.3.out, test/cql/3.4.err, + test/cql/3.4.out, test/cql/3.5.err, test/cql/3.5.out, + test/cql/3.6.err, test/cql/3.6.out, test/cql/3.7.err, + test/cql/3.7.out, test/cql/3.8.err, test/cql/3.8.out, + test/cql/3.9.err, test/cql/3.9.out, test/cql/4.1.err, + test/cql/4.1.out, test/cql/4.2.err, test/cql/4.2.out, + test/cql/5.1.err, test/cql/5.1.out, test/cql/5.2.err, + test/cql/5.2.out, test/cql/5.3.err, test/cql/5.3.out, + test/cql/5.4.err, test/cql/5.4.out, test/cql/5.5.err, + test/cql/5.5.out, test/cql/5.6.err, test/cql/5.6.out, + test/cql/5.7.err, test/cql/5.7.out, test/cql/5.8.err, + test/cql/5.8.out, test/cql/6.1.err, test/cql/6.1.out, + test/cql/6.2.err, test/cql/6.2.out, test/cql/6.3.err, + test/cql/6.3.out, test/cql/6.4.err, test/cql/6.4.out, + test/cql/6.5.err, test/cql/6.5.out, test/cql/6.6.err, + test/cql/6.6.out, test/cql/7.1.err, test/cql/7.1.out, + test/cql/7.2.err, test/cql/7.2.out, test/cql/7.3.err, + test/cql/7.3.out, test/cql/8.1.err, test/cql/8.1.out, + test/cql/8.2.err, test/cql/8.2.out, test/cql/8.3.err, + test/cql/8.3.out, test/cql/9.1.err, test/cql/9.1.out, + test/cql/9.2.err, test/cql/9.2.out, test/cql/9.3.err, + test/cql/9.3.out, test/cql/9.4.err, test/cql/9.4.out, + util/cql2xcql.c, win/makefile: Update CQL parser to use CQL 1.1 + modifiers for booleans and relations. Add CQL regression cases. + +2004-03-09 21:49 adam + + * src/odr_null.c: Remove fprintf about bad null + +2004-03-01 18:33 adam + + * CHANGELOG, configure.in, client/client.c, debian/changelog, + include/yaz/yaz-version.h, src/srw.c, src/srwutil.c, win/yaz.nsi, + win/yaz.rc: Another fix for decoding of XML packed records. + Version 2.0.15. + +2004-02-26 15:46 adam + + * src/srwutil.c: Map SRW unsupported relation modifier to Bib-1: + 117 + +2004-02-25 14:03 adam + + * CHANGELOG: Update Changes + +2004-02-25 13:59 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, src/comstack.c, src/zgdu.c, + win/yaz.nsi, win/yaz.rc: Skip HTTP chunk extension (if present). + Towards 2.0.14. + +2004-02-25 11:37 adam + + * src/zgdu.c: Initialize content_{len,buf} always + +2004-02-25 09:47 adam + + * debian/changelog: Debian yaz-2.0.13-2 + +2004-02-24 08:48 adam + + * debian/: changelog, rules: Fix Debian package to announce >= + 2.0.13 + +2004-02-23 13:58 adam + + * CHANGELOG: Rewrite changes. + +2004-02-23 13:57 adam + + * src/srw.c: Update NS for SRW diagnostic elements. + +2004-02-23 13:12 adam + + * CHANGELOG, src/srw.c: Use default namespace for SRW diagnostic + elements + +2004-02-23 12:04 adam + + * doc/license.xml: Update year + +2004-02-23 11:14 adam + + * src/zgdu.c: Fix use of strcasecmp for WIN32 + +2004-02-23 10:30 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards + 2.0.13 + +2004-02-23 10:26 adam + + * CHANGELOG, include/yaz/zoom.h, src/zoom-c.c, src/zoom-p.h, + zoom/zoomsh.c: Implement ZOOM_resultset_{sort,cache_reset} which + sorts and resets cache for result set respectively. + +2004-02-20 00:39 adam + + * client/client.c: Use 1.1 by default + +2004-02-20 00:37 adam + + * client/client.c: http_version var + +2004-02-20 00:22 adam + + * CHANGELOG: Implement chunked HTTP transfer + +2004-02-20 00:21 adam + + * src/zgdu.c: Support Transfer-Encoding: chunked + +2004-02-20 00:20 adam + + * src/comstack.c: Define for CHUNK_DEBUG + +2004-02-17 11:29 adam + + * buildconf.sh: Mention tcl + +2004-02-17 10:23 marc + + * buildconf.sh: build-dependencies added + +2004-02-17 00:46 adam + + * CHANGELOG, configure.in: For SSL, use -lssl -lcrypto on systems + that don't have pkg-config. + +2004-02-16 22:40 adam + + * client/client.c: Fix type cast warning issued by GCC 3.3.3 + +2004-02-16 19:28 adam + + * configure.in: Towards 2.0.12 + +2004-02-16 18:57 adam + + * CHANGELOG, debian/changelog, include/yaz/backend.h, + include/yaz/yaz-version.h, src/ber_oid.c, src/seshigh.c, + win/yaz.nsi, win/yaz.rc: Towards 2.0.12 + +2004-02-16 12:30 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: 2.0.11 + +2004-02-16 12:22 adam + + * include/yaz/zoom.h: Include stdlib.h for zoom.h + +2004-02-15 08:19 adam + + * src/zget.c: Set default preferred/maximum record size to 1 MB + +2004-02-14 16:58 adam + + * CHANGELOG, client/client.c, include/yaz/srw.h, src/seshigh.c, + src/srw.c, src/srwutil.c, src/zoom-c.c: SRW/SRU update: use uri + instead of code for diagnostic + +2004-02-14 16:44 adam + + * CHANGELOG, client/client.c: Added init command for yaz-client + which sends extra init request + +2004-02-12 00:49 adam + + * CHANGELOG, src/ber_oid.c: Fixed two bugs in OID codec - ber_oidc. + Throw error when encoding or decoding bad truncated OID. Fix + decoding of OID X.Y when X=2, Y>39. + +2004-02-11 22:39 adam + + * CHANGELOG, util/yaz-asncomp: Fixed a bug in ASN.1 compiler that + caused Type-1 Operator codec to fail + +2004-02-11 14:37 adam + + * include/yaz/zoom.h, src/zoom-c.c: Make separate error code for + invalid query + +2004-02-09 13:38 adam + + * Makefile.am, debian/changelog, debian/compat, debian/control, + debian/libyaz-dev.install, debian/libyaz.install, debian/rules, + debian/yaz-doc.install, debian/yaz.install: New Debian Policy + +2004-02-09 10:54 adam + + * CHANGELOG, configure.in, src/Makefile.am: Fixed compilation for + SSL + +2004-02-09 09:41 adam + + * debian/control: Ensure that YAZ is compiled with libwrap + +2004-02-05 15:15 adam + + * yaz.m4: Remove extra AC_MSG_RESULT entry + +2004-02-05 12:55 adam + + * CHANGELOG, configure.in, doc/introduction.xml, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: 2.0.10 + +2004-02-05 12:54 adam + + * yaz.m4: Allows second argument for YAZ_INIT to hold required + version of YAZ. + +2004-01-27 22:22 adam + + * client/client.c, src/srw.c, src/srwutil.c, src/zoom-c.c, + src/zoom-p.h, ztest/ztest.c: Use prefix for SRW diagset in ZOOM + +2004-01-27 13:15 adam + + * CHANGELOG, client/client.c, include/yaz/srw.h, src/seshigh.c, + src/srw.c, src/srwutil.c, src/zoom-c.c, ztest/ztest.c: SRW + diagnostic code now a URI + +2004-01-26 22:05 mike + + * util/benchmark.c: Rolling tweaks, not yet running + +2004-01-23 19:16 adam + + * src/seshigh.c: Allow any PDU size if preferredMessageSize is 0 + +2004-01-23 12:52 adam + + * util/yaz-asncomp: ASN.1 compiler sets Type pointer to NULL when + DECODING omitted stuff + +2004-01-22 12:20 adam + + * src/zoom-c.c: Allow recordID{Opaque,Number} to be se for ES + upÃdate + +2004-01-18 22:11 adam + + * etc/: Makefile.am, debian.init.d: Debian sample init.d YAZ server + script + +2004-01-18 03:28 adam + + * src/statserv.c: Fixed PID file so it is generated after fork (-r + & -D) + +2004-01-17 02:20 adam + + * CHANGELOG, doc/frontend.xml, doc/yaz-ztest-man.xml, + doc/ztest-options.xml, include/yaz/backend.h, src/statserv.c: + Implement option -D, -p for GFS + +2004-01-16 11:04 adam + + * CHANGELOG, doc/zoom.xml, src/zoom-c.c, zoom/zoomsh.c: Make ZOOM C + recognize option password + +2004-01-16 00:33 adam + + * src/srw.c: Fix sequence of diagnostic element + +2004-01-15 11:16 adam + + * CHANGELOG, client/client.c, include/yaz/nmem.h, + include/yaz/proto.h, src/initopt.c, src/nmem.c, src/seshigh.c: + Change proto of yaz_init_opt_decode. Added new function + nmem_print_list_l (variant of nmem_print_list). Added new + yaz-client command zversion that sets Z39.50 option bits - using + yaz_init_opt_encode. + +2004-01-15 11:05 adam + + * src/statserv.c: Avoid reverse lookup in GFS + +2004-01-15 11:04 adam + + * ztest/ztest.c: Allow frontend server to stop (for debugging + purposes) + +2004-01-14 01:15 adam + + * src/soap.c: Fix SOAP SRU encoding leak + +2004-01-13 12:19 adam + + * client/client.c: Use yaz_init_opt_decode to show options + +2004-01-12 14:21 adam + + * CHANGELOG, debian/changelog: Changes + +2004-01-12 13:11 adam + + * client/client.c, include/yaz/proto.h, src/Makefile.am, + src/initopt.c, win/makefile: Small utility to encode/decode init + options as a string + +2004-01-12 13:10 adam + + * zoom/zoomsh.c: Use displayTerm in zoomsh + +2004-01-12 13:10 adam + + * src/zoom-c.c: Fix displayTerm. Prepare for xpath for record + element fetch. + +2004-01-09 20:54 adam + + * src/srwutil.c: Update SRW messages strings to version 1.1 + +2004-01-09 20:53 adam + + * src/srw.c: Encode SRW/SRU diagnostic message from diagnostic + code. + +2004-01-09 19:10 adam + + * include/yaz/srw.h, src/seshigh.c, src/srw.c, src/srwutil.c: Picky + SRU decode. yaz_srw_get supports scan + +2004-01-07 23:27 adam + + * src/srwutil.c: Read recordXPath for SRU + +2004-01-07 22:43 adam + + * CHANGELOG, debian/changelog: 2.0.9-5 + +2004-01-07 22:02 adam + + * client/client.c, include/yaz/soap.h, include/yaz/srw.h, + src/seshigh.c, src/soap.c, src/zoom-c.c: Add z_soap_codec_enc_xsl + +2004-01-07 21:36 adam + + * CHANGELOG, client/client.c, include/yaz/soap.h, + include/yaz/srw.h, src/seshigh.c, src/soap.c, src/srw.c, + src/srwutil.c, src/zoom-c.c: Stylesheet support. + +2004-01-07 21:33 adam + + * util/benchmark.c: Fix warning + +2004-01-07 15:01 adam + + * etc/pqf.properties: Add isbn to bath + +2004-01-06 21:21 adam + + * src/comstack.c: Use _strnicmp on Windows + +2004-01-06 20:12 adam + + * debian/changelog, src/comstack.c: Fix a bug with decoding of XML + packed records + +2004-01-06 14:38 adam + + * CHANGELOG, configure.in, debian/changelog, win/yaz.rc: + Debian/window 2.0.9-3 + +2004-01-06 14:38 adam + + * client/client.c: Report missin record data + +2004-01-06 12:21 adam + + * src/srw.c: Fix record/literal XML decoding + +2004-01-06 12:20 adam + + * src/srwutil.c: Tweak error mapping + +2004-01-06 10:10 adam + + * src/srwutil.c: SRW/Z39.50 diagnostic mapping: make bad ESN to bad + schema + +2004-01-06 10:09 adam + + * client/client.c: Rename variable + +2004-01-05 15:46 adam + + * CHANGELOG, debian/changelog, src/odr_util.c, src/srw.c: Allow + empty ODR (NMEM=0) for odr_oiddup and odr_getoidbystr. + +2004-01-05 15:06 adam + + * CHANGELOG: Changes + +2004-01-05 15:05 adam + + * src/srw.c: Fix bug in diagnostics decoding + +2004-01-05 10:50 adam + + * win/LICENSE.txt: Year + +2004-01-05 10:45 adam + + * yaz-config.in, debian/rules: Remove yazmalloc references + +2004-01-05 10:41 adam + + * src/Makefile.am: Fix flags for XML2 + +2004-01-05 10:34 adam + + * CHANGELOG, LICENSE, README, configure.in, debian/changelog, + include/yaz/srw.h, include/yaz/yaz-version.h, src/Makefile.am, + src/seshigh.c, src/soap.c, src/srw.c, src/srwutil.c, win/yaz.nsi, + win/yaz.rc, doc/yaz.xml.in: 2.0.9 candidate + +2003-12-31 01:14 adam + + * client/client.c, src/seshigh.c, src/zgdu.c: Fix problem with + print ODR/HTTP/odr_reset + +2003-12-30 16:18 adam + + * src/zgdu.c: Fix ODR pritn of HTTP requests + +2003-12-30 01:29 adam + + * src/: seshigh.c, srw.c, srwutil.c, unix.c, zgdu.c, zoom-c.c: Fix + several compile warnings + +2003-12-30 01:23 adam + + * win/makefile: Remove obsolete /pdb switches + +2003-12-30 01:22 adam + + * client/client.c: Fix return statement + +2003-12-30 01:16 adam + + * src/srw.c: Missing return statements + +2003-12-30 01:13 adam + + * src/seshigh.c: Let GFS accept SRW 1.0 + +2003-12-30 01:12 adam + + * src/srw.c: Init recordXpath + +2003-12-29 15:54 adam + + * include/yaz/backend.h, include/yaz/srw.h, src/seshigh.c, + src/srw.c, ztest/ztest.c: SRW scan + +2003-12-29 14:39 adam + + * CHANGELOG, src/seshigh.c: GFS could drop first record in a result + set exceeding preferred message size. Reported and fixed by Irina + Dijour. + +2003-12-28 12:46 adam + + * CHANGELOG: Updated changes with GFS record fix + +2003-12-25 16:25 adam + + * src/seshigh.c: Fix calculation of length of structured records in + GFS record packer + +2003-12-24 17:59 mike + + * util/benchmark.c: Option parsing. Still no functionality. Time + to stop for Christmas. + +2003-12-24 17:23 mike + + * util/: .cvsignore, Makefile.am, benchmark.c: Empty benchmarking + application + +2003-12-23 09:47 adam + + * CHANGELOG: Note changes. + +2003-12-22 23:47 adam + + * src/srw.c: Fix SRW/SRU NS for diagnostic + +2003-12-22 20:46 adam + + * client/client.c: Handle unexpected HTTP closed sessions better + +2003-12-22 15:52 adam + + * CHANGELOG: Changes. + +2003-12-22 15:46 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards 2.0.8 + +2003-12-22 15:24 adam + + * src/srw.c: Init member database for explain request + +2003-12-21 12:33 adam + + * src/: seshigh.c, zgdu.c: HTTP header lookup case insensitive + +2003-12-20 23:40 adam + + * src/srw.c: Init all SRW explain response members + +2003-12-20 20:11 adam + + * src/zoom-c.c: Fixed ODR usage in SRW decoding + +2003-12-20 01:52 adam + + * src/zoom-c.c: Fix SRW/SRU ns + +2003-12-20 01:51 adam + + * CHANGELOG, client/client.c, include/yaz/srw.h, src/Makefile.am, + src/seshigh.c, src/soap.c, src/srw.c, src/srwutil.c, + src/zoom-c.c, src/zoom-p.h, win/makefile: SRW/SRU 1.1 + +2003-12-19 13:16 mike + + * src/cqltransform.c: Support for CQL transformations involving + wildcard patterns, which were previously passed through + untouched. We now make an effort to emit the most primitive + (i.e. Bath-friendly) truncation attributes we can, based on + what's in the configuration file, falling back on Z59.58-like + wildcarding when necessary. + + The logic turns out to be non-trival (sigh ... so unlike an + OpenURL resolver.) Although the code, once I'd finally arrived + at it, turned out to be gratifying short and clear: + + If a term begins and ends with * and has no other WC + characters in it AND we have a truncation.both element in + the + configuration file, strip the *s and use truncation.both. + + Otherwise, if it begins with * and has no other WC + characters + in it AND truncation.left is configured, use that. + + Otherwise, if it ends with * and has no other WC + characters + in it AND truncation.right is configured, use that. + + Otherwise, if it has any WCs anywhere in the string, + transliterate * to ? and ? to # and use truncation.z3958, + generating error 28 "Masking character not supported" if + it's + not configured. + + Otherwise it must be the case that it has no WCs. Use + truncation.none, generating error 30 "Too many masking + characters in term" if it's not configured. + + This arrangement allows some flexibility in the configuration + file, e.g. you can omit the special-case left-, right- and + both-truncation elements if you always want Z39.58-style + truncation. + + I also fixed a small and harmless bug of Adam's, which I am + pretty sure could _never_ have any effect, but which offended me + anyway. This change is far too trivial to be worth mentioning in + the CVS log, but I'm expecting Adam to read this, and probably go + and see what the bug was :-) + +2003-12-19 13:00 mike + + * etc/pqf.properties: Add truncation attributes. + +2003-12-19 00:04 adam + + * src/soap.c: Fix memory leak in SRW/SRU encoding handler + +2003-12-18 18:30 mike + + * CHANGELOG: Describe recent CQL changes. + +2003-12-18 18:27 mike + + * doc/tools.xml: All changes to the CQL section: Talk about context + sets instead of index sets. Talk about indexes instead of + qualifiers. Document new "index.set.name" specifier. (The old + "qualifier.set.name" specifier is mentioned as DEPRECATED.) + Describe default use of cql.serverChoice instead of + srw.serverChoice. Update the example configuration file + according to the above. + +2003-12-18 18:05 mike + + * src/: cqlstrer.c, srw.c: index set -> context set + +2003-12-18 18:02 mike + + * client/client.c: Comment + +2003-12-18 18:00 mike + + * src/cqltransform.c: Comment. + +2003-12-18 17:59 mike + + * src/cqltransform.c: Look for cql.resultSet as well as + srw.resultSet. Fall back to cql.serverChoice rather than + srw.serverChoice when no index is provided for a term. + (Unfortunately the structure of the code makes it hard to check + both.) + +2003-12-18 17:49 mike + + * etc/pqf.properties, src/cqltransform.c: s/qualifier/index in + comments. + +2003-12-18 17:45 mike + + * util/cql2pqf.c: Typo in Usage: message. + +2003-12-18 17:44 mike + + * etc/pqf.properties: Replace leading "qualifier." with "index." + throughout. + +2003-12-18 17:42 mike + + * src/cqltransform.c: Look up index-names as "index." in the + qualifier configuration file, falling back to the old + "qualifier." only if this fails. + +2003-12-18 15:40 mike + + * etc/pqf.properties: More considered Bath Profile support. May + need changes to the software to generate more Bath-friendly + queries. Add support for "cql" set (replaces "srw" which is + retained but deprecated) Add support for "rec" set (required by + Bath) Add support for the "bath" set. Remove some old qualifiers + that shouldn't be there at all. Remove + qualifier.bath.remoteSystemRecordNumber (use rec.id instead) + +2003-12-18 14:44 mike + + * etc/pqf.properties: Very, very basic support for Bath profile. + +2003-12-18 14:08 adam + + * src/cclptree.c: Fix @attr set for CCL to RPN + +2003-12-17 13:28 adam + + * src/marcdisp.c: Warn for bad base address in MARC parser + +2003-12-16 15:51 adam + + * doc/installation.xml: Mention .NET version + +2003-12-16 15:45 adam + + * CHANGELOG, configure.in, include/yaz/yaz-version.h, win/yaz.nsi, + win/yaz.rc, debian/changelog: Towards 2.0.7 + +2003-12-16 15:36 adam + + * include/yaz/cql.h, CHANGELOG: Add C decl for cql.h + +2003-12-11 01:37 adam + + * CHANGELOG, doc/yaz-marcdump-man.xml, include/yaz/marcdisp.h, + include/yaz/wrbuf.h, src/marcdisp.c, src/wrbuf.c, src/zoom-c.c, + util/marcdump.c: ISO2709 output for yaz_marc utility + +2003-12-09 18:13 adam + + * client/client.c: Fixed bad memory reference - when bad SRW/HTTP + response was received + +2003-12-09 13:51 adam + + * CHANGELOG, include/yaz/soap.h, include/yaz/srw.h: Added missing C + decl macros for soap.h and srw.h. + +2003-12-04 14:20 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards 2.0.6 + +2003-12-04 14:02 adam + + * CHANGELOG: Changes + +2003-12-04 13:57 adam + + * src/zoom-c.c: Remove unused local var + +2003-12-04 12:48 adam + + * src/seshigh.c: Transfer decode memory to stream + +2003-12-04 12:47 adam + + * src/nmem.c: memset freed NMEM block to Y (59 Hex) + +2003-12-04 12:46 adam + + * include/yaz/zgdu.h: Add missing CDECL around this + +2003-11-28 10:02 mike + + * src/statserv.c: Kang-Jin Lee's typo + +2003-11-27 16:39 adam + + * src/zget.c: Remove Index Data/ from implementationName (for + response as well) + +2003-11-27 16:37 adam + + * src/zget.c: Remove Index Data/ from implementationName + +2003-11-26 23:47 mike + + * src/seshigh.c: Use odr_prepend() to assemble "implementation*" + strings. + +2003-11-26 17:56 mike + + * src/zoom-c.c: Omit leading space from ZOOM-C version number + extracted from $Revision$ + +2003-11-26 17:23 mike + + * src/odr_util.c, include/yaz/odr.h: Add odr_prepend() + +2003-11-26 17:22 mike + + * src/zoom-c.c: Use odr_prepend() to generate + implementation{Id,Name,Version} + +2003-11-26 00:19 adam + + * zoom/zoomsh.c: Allow command to send extended service package + +2003-11-26 00:18 adam + + * src/zoom-c.c: More work on extended services, create database, + drop database, update record + +2003-11-25 20:46 adam + + * doc/: frontend.xml, yaz-ztest-man.xml, ztest-options.xml: Mention + -installa + +2003-11-25 11:08 mike + + * CHANGELOG: ZOOM-C options changes. + +2003-11-25 10:55 mike + + * doc/zoom.xml: Describe "presentChunk" option in preference to old + "step" (though that is also still mentioned). Clarify its + meaning. + +2003-11-25 10:50 mike + + * src/zoom-c.c: Use new "presentChunk" options in preference to old + "step" if it's defined. (But still fall back on "step" if it's + not.) + +2003-11-24 12:27 mike + + * doc/zoom.xml: Document the newly-supported standard ZOOM options + "serverImplementationId", "serverImplementationName" and + "serverImplementationVersion" (as specified in the forthcoming + AAPI 1.4), but note continues support for the old + "targetImplementationId", "targetImplementationName" and + "targetImplementationVersion" for the benefit of old + applications.) + +2003-11-24 12:25 mike + + * src/zoom-c.c: Support the standard ZOOM options + "serverImplementationId", "serverImplementationName" and + "serverImplementationVersion" (as specified in the forthcoming + AAPI 1.4), but continue also to support the old + "targetImplementationId", "targetImplementationName" and + "targetImplementationVersion" for the benefit of old + applications.) + +2003-11-19 23:24 adam + + * src/oid.c: Add MARC21 as an alias for USMARC + +2003-11-19 23:06 adam + + * CHANGELOG: Updates OID, display term, etc + +2003-11-19 23:05 adam + + * doc/: installation.xml, introduction.xml, soap.xml: Added a few + URLs + +2003-11-19 23:04 adam + + * doc/yaz.css: Better looking frontpage + +2003-11-19 22:17 adam + + * doc/: asn.xml, installation.xml, introduction.xml, odr.xml, + tools.xml: Mention yaz-iconv, yaz-marcdump in documentation + +2003-11-19 20:07 adam + + * CHANGELOG, doc/frontend.xml, doc/zoom.xml, include/yaz/zoom.h, + src/zoom-c.c: Implement ZOOM_scanset_display_term + +2003-11-19 20:06 adam + + * client/client.c: For Scan, yaz-client shows displayTerm if + present + +2003-11-19 20:04 adam + + * doc/yaz.css: More tweaks for documentation CSS + +2003-11-19 15:49 adam + + * doc/yaz.css: Sans-serif fonts for headlings. Indent examples. + Italic captions + +2003-11-19 15:03 adam + + * CHANGELOG, configure.in: Configure uses pkg-config to get OpenSSL + compile info where available + +2003-11-19 14:47 mike + + * src/oid.c, include/yaz/oid.h: Add OID for the new ExtLite + attribute set. Add OIDs for NACSIS-CATP, FINMARC2000 and + MARC21-fin record-syntaxes, as requested/supplid by Ere + Maijala + +2003-11-18 22:06 adam + + * yaz.spec.in: RedHat package updates for yaz-iconv + +2003-11-18 21:48 adam + + * debian/rules: yaz-iconv man page + +2003-11-18 21:34 adam + + * doc/: Makefile.am, yaz-iconv-man.xml, yaz-marcdump-man.xml: man + page for yaz-iconv + +2003-11-18 19:39 adam + + * yaz.spec.in: Make libyaz-devel depend on libxml2-devel + +2003-11-17 23:36 adam + + * debian/changelog, debian/rules, win/yaz.nsi: Debian package + updates + +2003-11-17 22:32 mike + + * src/seshigh.c: Reverse the order of "toolkit-supplied / + application-supplied" strings sent as implementationId, Name and + Version. Also, remove the spaces around the slash. This brings + the GFS in line with the behaviour of ZOOM-C on the client side. + +2003-11-17 17:52 mike + + * CHANGELOG: Note ZOOM-C enhancements + +2003-11-17 17:01 mike + + * src/zoom-c.c: Add support for implementationId and + implementationVersion options to go along with + implementationName. + +2003-11-17 16:00 mike + + * doc/zoom.xml: Clarify description of piggy-backing, including + moving all the elementSetSmallerThanSomewhatColour options from + the Result Set Options table into the Connection Options table + (since that's where they need to be set: by the time you set them + on a Result Set, it's too late). This emerges from the work to + standardise ZOOM options across bindings and implementations. + +2003-11-17 11:40 mike + + * src/comstack.c: Include system-level error message in cs_errmsg() + output when appropriate + +2003-11-17 11:40 mike + + * include/yaz/comstack.h: Add CSLASTERROR + +2003-11-17 00:02 adam + + * doc/: yaz.css, yazhtml.dsl.in: Customize DSSSL for YAZ to use CSS + +2003-11-16 23:56 adam + + * doc/: Makefile.am, yaz.css, yazhtml.xsl.in: Customize XSL for YAZ + and add CSS for it + +2003-11-03 22:30 mike + + * .cvsignore, util/.cvsignore, test/.cvsignore: Ignore generated + files + +2003-11-03 15:05 adam + + * doc/indexdata.xml: Fix address + +2003-11-03 11:56 adam + + * doc/yaz.xml.in: Ooops + +2003-11-03 11:55 adam + + * doc/yaz.xml.in: Mike author too + +2003-11-03 11:54 adam + + * doc/introduction.xml: minor + +2003-11-03 11:54 adam + + * doc/tools.xml: Fix link to europagate + +2003-11-03 11:47 adam + + * doc/: soap.xml, tools.xml: Use example tag consistently + +2003-11-03 11:47 adam + + * doc/future.xml: Fix spelling + +2003-11-03 11:46 adam + + * doc/frontend.xml: Use example tag. Using Apache as SRW/SRU + frontend + +2003-11-03 11:45 adam + + * doc/odr.xml: Use example element. Pointer to BER/ASN.1 + standards/tutorial + +2003-11-03 10:49 mike + + * doc/tools.xml: Describe encoding of string attribute-values + +2003-11-03 10:34 mike + + * doc/tools.xml: Fix typo in grammar for @term + +2003-11-02 18:59 adam + + * client/client.c: For HTTP requests, specify Host header (required + by HTTP 1.1) + +2003-11-02 18:58 adam + + * src/zoom-c.c: Use 'Host' rather than 'host' for HTTP header + +2003-10-29 14:26 adam + + * CHANGELOG, src/unix.c: Allow user,group,umask to be specified for + Unix file socket + +2003-10-27 14:43 adam + + * win/yaz.nsi: Fix documentation NSIS section + +2003-10-27 14:35 adam + + * win/yaz.nsi: Update Windows Installer for new source layout + +2003-10-27 13:34 adam + + * debian/: changelog, rules: yaz-marcdump man page + +2003-10-27 13:32 adam + + * win/makefile: Restructure of YAZ source + +2003-10-27 13:21 adam + + * CHANGELOG, Makefile.am, README, configure.in, yaz-config.in, + asn/Makefile.am, asn/proto.c, asn/prt-acc.c, asn/prt-acc.h, + asn/prt-add.c, asn/prt-add.h, asn/prt-arc.c, asn/prt-arc.h, + asn/prt-dat.c, asn/prt-dat.h, asn/prt-dia.c, asn/prt-dia.h, + asn/prt-esp.c, asn/prt-esp.h, asn/prt-exd.c, asn/prt-exd.h, + asn/prt-exp.c, asn/prt-exp.h, asn/prt-ext.h, asn/prt-grs.c, + asn/prt-grs.h, asn/prt-proto.h, asn/prt-rsc.c, asn/prt-rsc.h, + asn/prt-univ.c, asn/prt-univ.h, asn/test.c, ccl/.cvsignore, + ccl/LICENSE, ccl/Makefile.am, ccl/README, ccl/bib1, + ccl/cclerrms.c, ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, + ccl/cclqual.c, ccl/cclsh.c, ccl/cclstr.c, ccl/ccltoken.c, + ccl/tstccl.c, client/Makefile.am, comstack/.cvsignore, + comstack/Makefile.am, comstack/comstack.c, comstack/tcpip.c, + comstack/unix.c, comstack/waislen.c, comstack/xmosi.c, + cql/.cvsignore, cql/Makefile.am, cql/cql.y, cql/cql2pqf.c, + cql/cql2xcql.c, cql/cqlstdio.c, cql/cqlstrer.c, cql/cqlstring.c, + cql/cqltransform.c, cql/cqlutil.c, cql/lexer.c, cql/xcqlutil.c, + doc/Makefile.am, doc/yaz-asncomp-man.xml, doc/yaz-asncomp.sgml, + doc/yaz-client-man.xml, doc/yaz-client.sgml, + doc/yaz-config-man.xml, doc/yaz-config.sgml, doc/yaz-man.sgml, + doc/yaz-man.xml, doc/yaz-marcdump-man.xml, doc/yaz-ztest-man.xml, + doc/yaz-ztest.sgml, doc/zoomsh-man.xml, doc/zoomsh.sgml, + ill/.cvsignore, ill/Makefile.am, ill/ill-get.c, ill/ill.tcl, + ill/ill9702.asn, ill/item-req.asn, lib/.cvsignore, + lib/Makefile.am, lib/x.c, odr/.cvsignore, odr/Makefile.am, + odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, odr/ber_int.c, + odr/ber_len.c, odr/ber_null.c, odr/ber_oct.c, odr/ber_oid.c, + odr/ber_tag.c, odr/dumpber.c, odr/odr-priv.h, odr/odr.c, + odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, + odr/odr_cons.c, odr/odr_enum.c, odr/odr_int.c, odr/odr_mem.c, + odr/odr_null.c, odr/odr_oct.c, odr/odr_oid.c, odr/odr_seq.c, + odr/odr_tag.c, odr/odr_use.c, odr/odr_util.c, odr/tstodr.asn, + odr/tstodr.c, retrieval/.cvsignore, server/.cvsignore, + server/Makefile.am, server/eventl.c, server/eventl.h, + server/requestq.c, server/service.c, server/service.h, + server/seshigh.c, server/session.h, server/statserv.c, + server/tcpdchk.c, src/.cvsignore, src/Makefile.am, src/atoin.c, + src/ber_any.c, src/ber_bit.c, src/ber_bool.c, src/ber_int.c, + src/ber_len.c, src/ber_null.c, src/ber_oct.c, src/ber_oid.c, + src/ber_tag.c, src/cclerrms.c, src/cclfind.c, src/cclptree.c, + src/cclqfile.c, src/cclqual.c, src/cclstr.c, src/ccltoken.c, + src/charconv.sgm, src/charconv.tcl, src/charconv_cjk.xml, + src/charneg-3.asn, src/charneg.c, src/comstack.c, src/cql.y, + src/cqlstdio.c, src/cqlstrer.c, src/cqlstring.c, + src/cqltransform.c, src/cqlutil.c, src/datetime.asn, + src/diagbib1.c, src/dumpber.c, src/esadmin.asn, src/esupdate.asn, + src/eventl.c, src/eventl.h, src/grs1disp.c, src/ill-get.c, + src/ill.tcl, src/ill9702.asn, src/item-req.asn, src/lexer.h, + src/log.c, src/logrpn.c, src/marcdisp.c, src/matchstr.c, + src/mterm2.asn, src/nmem.c, src/nmemsdup.c, src/oclcui.asn, + src/odr-priv.h, src/odr.c, src/odr_any.c, src/odr_bit.c, + src/odr_bool.c, src/odr_choice.c, src/odr_cons.c, src/odr_enum.c, + src/odr_int.c, src/odr_mem.c, src/odr_null.c, src/odr_oct.c, + src/odr_oid.c, src/odr_seq.c, src/odr_tag.c, src/odr_use.c, + src/odr_util.c, src/oid.c, src/opacdisp.c, src/options.c, + src/otherinfo.c, src/pquery.c, src/prt-ext.c, src/query.c, + src/readconf.c, src/requestq.c, src/service.c, src/service.h, + src/seshigh.c, src/session.h, src/siconv.c, src/soap.c, + src/sortspec.c, src/srw.c, src/statserv.c, src/tcpdchk.c, + src/tcpip.c, src/tpath.c, src/univres.asn, src/unix.c, + src/version.c, src/waislen.c, src/wrbuf.c, src/xcqlutil.c, + src/xmalloc.c, src/yaz-ccl.c, src/z.tcl, src/z3950oid.c, + src/z3950v3.asn, src/zgdu.c, src/zget.c, src/zoom-c.c, + src/zoom-opt.c, src/zoom-p.h, srw/.cvsignore, srwapps/.cvsignore, + tab/.cvsignore, test/Makefile.am, test/tstccl.c, test/tsticonv.c, + test/tstmatchstr.c, test/tstnmem.c, test/tstodr.asn, + test/tstodr.c, test/tstwrbuf.c, util/Makefile.am, util/atoin.c, + util/cclsh.c, util/charconv.sgm, util/charconv.tcl, + util/charconv_cjk.xml, util/cql2pqf.c, util/cql2xcql.c, + util/cvs-date.tcl, util/log.c, util/marcdisp.c, util/matchstr.c, + util/nmem.c, util/nmemsdup.c, util/oid.c, util/options.c, + util/readconf.c, util/siconv.c, util/srwtst.c, util/tpath.c, + util/tsticonv.c, util/tstmatchstr.c, util/tstnmem.c, + util/tstwrbuf.c, util/version.c, util/wrbuf.c, util/xmalloc.c, + z39.50/.cvsignore, z39.50/Makefile.am, z39.50/charneg-3.asn, + z39.50/comp.sh, z39.50/datetime.asn, z39.50/esadmin.asn, + z39.50/esupdate.asn, z39.50/mterm2.asn, z39.50/oclcui.asn, + z39.50/prt-ext.c, z39.50/univres.asn, z39.50/z.tcl, + z39.50/z3950v3.asn, zoom/Makefile.am, ztest/Makefile.am, + zutil/.cvsignore, zutil/Makefile.am, zutil/charneg.c, + zutil/diagbib1.c, zutil/grs1disp.c, zutil/logrpn.c, + zutil/opacdisp.c, zutil/otherinfo.c, zutil/pquery.c, + zutil/query.c, zutil/soap.c, zutil/sortspec.c, zutil/srw.c, + zutil/srwtst.c, zutil/yaz-ccl.c, zutil/z3950oid.c, zutil/zgdu.c, + zutil/zget.c, zutil/zoom-c.c, zutil/zoom-opt.c, zutil/zoom-p.h: + Source restructure. yaz-marcdump part of installation + +2003-10-23 11:56 adam + + * doc/tools.xml: Fix sample PQF + +2003-10-21 14:44 mike + + * client/client.c: Tweak output format for nicer Init diagnostic + messages + +2003-10-21 14:35 mike + + * client/client.c: Nice rendering for otherInfo in Init Response, + including init diagnostics returned in accordance with + Implementor Agreement 5 + +2003-10-21 11:48 adam + + * server/seshigh.c: Fix another request leak that occured on bad + HTTP requests + +2003-10-21 11:30 adam + + * odr/ber_any.c: Flag zero-zero as error in completeBER + +2003-10-20 22:48 adam + + * server/seshigh.c: Fix release of requests (bug introduced by + previous commit) + +2003-10-20 20:21 adam + + * comstack/comstack.c: Do not allow more than 8K HTTP header + (potential DOS attack) + +2003-10-20 20:20 adam + + * server/: requestq.c, seshigh.c: Fix leak in GFS that occurred + when on ODR decoding error + +2003-10-20 15:44 adam + + * odr/: ber_any.c, ber_len.c: Prevent completeBER from returning 0 + (PDU incomplete) on bad packages: it eats all memory until the + process dies. + +2003-10-17 16:14 adam + + * doc/yaz-client.sgml: Document -x and -k + +2003-10-17 16:13 adam + + * client/: .cvsignore, client.c: Option -d to dump raw PDUs + +2003-10-16 12:37 adam + + * CHANGELOG, include/yaz/odr.h, odr/odr.c: Add const to odr_perror + message string + +2003-10-16 12:18 adam + + * comstack/comstack.c: Fix warning + +2003-10-16 12:18 adam + + * ccl/cclptree.c: Remove extra ; + +2003-10-16 10:29 adam + + * include/yaz/yaz-version.h: Set YAZ_VERSION to 2.0.5 + +2003-10-16 10:27 adam + + * debian/: changelog, rules: Compress man pages + +2003-10-13 23:28 adam + + * CHANGELOG, debian/changelog: Towards 2.0.5. Update CHANGELOG + +2003-10-09 17:51 adam + + * configure.in, yaz.spec.in, include/yaz/log.h, + include/yaz/yaz-version.h, util/log.c, win/yaz.nsi, win/yaz.rc: + Towards 2.0.5 + +2003-10-08 23:48 adam + + * zutil/zget.c: Use new name for present-status-success + +2003-10-08 23:47 adam + + * comstack/: tcpip.c, unix.c: Use bitmask for COMSTACK blocking + parameter. Bit 0 (&1) controls whether socket is blocking or not. + Bit 1 (&2) specifies whether reverse lookup should be performed + in cs_addrstr; 0=full/slow ; 1=IP/fast. + +2003-10-02 21:47 adam + + * doc/Makefile.am: Remove symlinks for docbook2man. Add link for + apilayer.png + +2003-10-02 08:30 adam + + * win/makefile: Quote ICONV_DIR/LIBXML2_DIR as suggested by Michael + Freidgeim + +2003-09-24 10:37 adam + + * CHANGELOG: Changes + +2003-09-16 22:48 adam + + * comstack/unix.c: Fix rare SEGV in unix_addrstr with bad reference + of UNIX socket path. + +2003-09-16 22:15 adam + + * CHANGELOG: Changes + +2003-09-16 21:46 adam + + * util/nmem.c: Only C89 comments + +2003-09-16 21:38 adam + + * include/yaz/oid.h: Remove , + +2003-09-16 12:15 adam + + * z39.50/charneg-3.asn: Fix DOS format , no end of line + +2003-09-15 15:48 adam + + * debian/rules: Fix permission of postinst + +2003-09-15 14:57 adam + + * debian/postinst: Fix permissions + +2003-09-11 14:45 adam + + * debian/changelog: Reinstate THESAURUS since Elvil (better named + 'evil') uses it. + +2003-09-11 14:30 mike + + * util/oid.c: Reinstate VAL_SPAWN_OF_SATAN_THESAURUS since Elvil + (better named 'evil') uses it + +2003-09-09 22:20 mike + + * CHANGELOG: Init diagnostics + +2003-09-09 18:03 mike + + * server/seshigh.c: When the back-end refuses initialisation, + return diagnostics in a UserInfo-1 external in the Init + response's User-information field, in accordance with Z35.90 + Implementor Agreement 5 (Returning diagnostics in an + InitResponse) at + http://lcweb.loc.gov/z3950/agency/agree/initdiag.html + + (It's bothered me for literally about six and a half years that + YAZ didn't do this -- right back to when I made the Index+/Z39.50 + gateway for SSL in 1997.) + +2003-09-04 20:52 adam + + * win/makefile: Minor changes. Use libxml-2.5.10 + +2003-09-04 20:51 adam + + * client/client.c: Fix return of value + +2003-09-04 20:18 adam + + * CHANGELOG, TODO, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards 2.0.4 + +2003-09-04 20:13 adam + + * CHANGELOG, cql/cql.y, cql/lexer.c: Allow any CQL relation + +2003-09-04 19:44 adam + + * CHANGELOG, z39.50/oclcui.asn: Fixes for OCLC UI ASN.1 so that it + works with SilverPlatter targets too + +2003-09-02 14:12 adam + + * CHANGELOG, client/client.c, include/yaz/oid.h, util/oid.c, + ztest/ztest.c, zutil/charneg.c: Implemented command update0 in + YAZ client which is equivalent to update but uses old of Ext + Update ASN.1. Use OID 1.2.840.10003.15.1000.81.1 for privately + defined charsets in charset negotiation. Added VAL_ID_CHARSET in + oid.h. Previously no OID was used for this info. + +2003-08-25 21:53 mike + + * z39.50/oclcui.asn: failReason is no longer OPTIONAL, as advised + by OCLC + +2003-08-19 14:32 adam + + * CHANGELOG, debian/changelog, zutil/zoom-c.c: Use + smallSetUpperBound=1 for ZOOM piggyback + +2003-07-31 00:33 adam + + * client/client.c: Fix ODR charset to use negotiated charset. Patch + by Aaron Lav + +2003-07-30 13:39 adam + + * debian/changelog: Yet one more OPAC fix + +2003-07-30 12:00 adam + + * zutil/opacdisp.c: Fix missing element, duplicate element + +2003-07-30 10:57 adam + + * debian/changelog, zutil/opacdisp.c: OPAC record fixes + +2003-07-29 17:09 adam + + * debian/changelog, zutil/zoom-c.c: More ZOOM logging + +2003-07-29 17:08 adam + + * include/yaz/Makefile.am: Missing z-oclcui.h in _headers + +2003-07-25 13:11 adam + + * win/makefile: Change order of compilation to reflect Unix AM. + +2003-07-24 11:44 mike + + * CHANGELOG, util/oid.c: Fix the OID of "admin" extended service. + Swap the human-readable text corresponding to the CQL and + OCLC-userInfo OIDs, which had somehow got confused. Bring + the CHANGELOG up to date with these and other changes. + +2003-07-23 14:57 mike + + * client/client.c: Note incorrect ID-private OID for + VAL_ADMINSERVICE + +2003-07-23 14:07 mike + + * util/oid.c: Note incorrect ID-private OID for VAL_ADMINSERVICE + +2003-07-19 15:48 adam + + * win/makefile: makefile updated for oclcui.asn + +2003-07-19 00:41 mike + + * client/client.c: Tidy up debugging output + +2003-07-19 00:36 mike + + * z39.50/oclcui.asn: Tweak as dictated by Adam, who is much better + at reading packet dumps than I am :-) OCLC should be ashamed of + themselves, sending ASN.1 that bears so very little resemblance + to what they document! + +2003-07-18 21:54 mike + + * client/client.c, include/yaz/oid.h, include/yaz/proto.h, + include/yaz/prt-ext.h, util/oid.c: Support for the + UserInformation DPU OCLC-UserInformation: - Add + VAL_OCLCUI to oid.h - #include in + include/yaz/proto.h - #define Z_External_OCLCUserInfo in + include/yaz/prt-ext.h - Add Z_OCLC_UserInformation *oclc + branch to Z_External.u - Add "OCLC-userInfo" entry to OID + database in util/oid.c - New file "oclcui.asn" in z39.50 + directory - Mention "oclcui.asn" and "z-oclcui.c" in + z39.50/Makefile.am - Add VAL_OCLCUI registration in + z39.50/prt-ext.c - Add arm to union-database in + Z_External() in z39.50/prt-ext.c - Include + UserInfoFormat-oclcUserInformation in z39.50/z.tcl (This + is a handy checklist next time I need to add something.) More + verbose authentication-setting in command-line client. Temporary + debugging code in client (for OCLC diagnostics). + +2003-07-18 21:53 mike + + * z39.50/: Makefile.am, oclcui.asn, prt-ext.c, z.tcl: Support for + the UserInformation DPU OCLC-UserInformation: - Add + VAL_OCLCUI to oid.h - #include in + include/yaz/proto.h - #define Z_External_OCLCUserInfo in + include/yaz/prt-ext.h - Add Z_OCLC_UserInformation *oclc + branch to Z_External.u - Add "OCLC-userInfo" entry to OID + database in util/oid.c - New file "oclcui.asn" in z39.50 + directory - Mention "oclcui.asn" and "z-oclcui.c" in + z39.50/Makefile.am - Add VAL_OCLCUI registration in + z39.50/prt-ext.c - Add arm to union-database in + Z_External() in z39.50/prt-ext.c - Include + UserInfoFormat-oclcUserInformation in z39.50/z.tcl (This is a + handy checklist next time I need to add something.) More verbose + authentication-setting in command-line client. Temporary + debugging code in client (for OCLC diagnostics). + +2003-07-16 23:02 adam + + * CHANGELOG, server/seshigh.c: Set resultCount to 0 in sort handler + of frontend server + +2003-07-15 10:26 adam + + * win/makefile: opacdisp.obj + +2003-07-14 14:59 adam + + * CHANGELOG, client/client.c, doc/zoom.xml, include/yaz/proto.h, + util/marcdisp.c, zoom/zoomsh.c, zutil/opacdisp.c, zutil/zoom-c.c, + zutil/zoom-p.h: OPAC record support for ZOOM + +2003-07-14 14:58 adam + + * include/yaz/wrbuf.h, util/wrbuf.c: New utility wrbuf_xmlputs + +2003-07-11 11:51 mike + + * doc/tools.xml: Add documentation for oid_name_to_oid(), + oid_to_dotstring() and oid_name_to_dotstring() + +2003-07-11 10:13 mike + + * CHANGELOG: New OID-translation functions + +2003-07-10 22:55 adam + + * CHANGELOG, z39.50/z3950v3.asn: Revert z_IU0Update changes in + z3950v3.asn. + +2003-07-10 13:51 mike + + * include/yaz/oid.h, util/oid.c: Add oid_name_to_oid(), + oid_to_dotstring() and id_name_to_dotstring() + +2003-07-10 13:50 mike + + * zoom/zoomsh.c: Remove the oid_name_to_dotstring() function, which + is now in oid.c (with a somewhat modified interface). Change the + invocation to use the new thread-safe interface. + +2003-07-10 01:00 mike + + * zoom/zoomsh.c: display_records() now displays the record syntax + OID as well as its symbolic name. It does this using a new + utility function, oid_name_to_dotstring(), which is currently + file-static but should probably go into the oid.c module. + +2003-07-10 00:38 mike + + * doc/zoom.xml: Fix description of ZOOM_record_get("syntax") + +2003-06-25 01:03 adam + + * ccl/cclptree.c, ccl/tstccl.c, include/yaz/ccl.h, + include/yaz/yaz-ccl.h, zutil/yaz-ccl.c: Move ccl_pquery to ccl + module (ccl.h). Add proper CCL test. + +2003-06-23 14:42 adam + + * debian/changelog: Another CCL->RPN fix. + +2003-06-23 14:41 adam + + * zutil/yaz-ccl.c: Another CCL->RPN fix + +2003-06-23 14:38 adam + + * debian/changelog, zutil/yaz-ccl.c: Fix CCL->RPN code for + attribute strings. + +2003-06-23 12:24 adam + + * debian/changelog: Debian release + +2003-06-23 12:22 adam + + * CHANGELOG, ccl/Makefile.am, ccl/bib1, ccl/cclfind.c, + ccl/cclptree.c, ccl/cclqfile.c, ccl/cclqual.c, ccl/tstccl.c, + include/yaz/ccl.h, util/tstwrbuf.c, zutil/yaz-ccl.c: String + attributes for CCL parser + +2003-06-22 13:47 adam + + * util/: tsticonv.c, tstmatchstr.c: Fix compile warnings + +2003-06-20 13:14 adam + + * yaz.spec.in, debian/changelog, debian/rules: documentation was + part of libyaz; it must only be part of yaz-doc + +2003-06-20 12:23 adam + + * debian/changelog: Debian date update + +2003-06-20 12:21 adam + + * CHANGELOG: Changes. + +2003-06-20 12:21 adam + + * CHANGELOG: Changes + +2003-06-20 12:18 adam + + * doc/tools.xml: More on CCL profiles + +2003-06-20 01:05 adam + + * doc/tools.xml: More on CCL profiles + +2003-06-19 23:10 adam + + * client/client.c: client does not close socket if decoding of PDU + failed + +2003-06-19 23:09 adam + + * odr/odr.c: More printing for odr_perror + +2003-06-19 21:51 adam + + * CHANGELOG, ccl/cclqual.c: Fix CCL directive @case handling so + that it affects both keywords and qualifiers. + +2003-06-11 20:37 adam + + * win/makefile: Dont use charconv_cjk.xml + +2003-06-11 20:36 adam + + * client/client.c: Option -x shows hex dump of PDUs + +2003-06-11 13:09 adam + + * util/Makefile.am: do not use charconv_cjk as is + +2003-06-10 13:24 adam + + * debian/control: libyaz-dev depends on libxml2-dev + +2003-06-04 15:28 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards 2.0.3 + +2003-06-04 15:25 adam + + * doc/credits.xml: Added pop, pieter + +2003-06-04 11:45 adam + + * cql/cql2pqf.c: Allow number of iterations to be specified for + cql2pqf + +2003-06-04 11:44 adam + + * cql/cql.y: Prevent memory leak if cql_parse is called repeatedly + +2003-06-04 11:15 adam + + * doc/zoom.xml: On the form[; charset=from[,to]] topic. + +2003-06-03 15:59 adam + + * zutil/zoom-c.c: Set smallSetElementSetName always in piggyback + mode + +2003-06-03 11:17 adam + + * util/: Makefile.am, charconv_cjk.xml: MARC-8 Asian, etc. + +2003-06-03 11:11 adam + + * win/: makefile, yaz.nsi: WIN32 updates + +2003-06-03 00:17 adam + + * util/charconv.tcl: charconv takes multiple input files + +2003-06-02 15:44 adam + + * win/makefile: Added cqlstrer to win makefile + +2003-06-02 14:53 adam + + * CHANGELOG, doc/zoom.xml, include/yaz/oid.h, util/oid.c, + z39.50/prt-ext.c, z39.50/z3950v3.asn, zutil/zoom-c.c, + zutil/zoom-p.h: ESFormat-Update updates. Character set conversion + for ZOOM_record_get. + +2003-05-30 12:31 adam + + * CHANGELOG, doc/zoom.xml: Documentation for recordCharset + +2003-05-30 12:24 adam + + * CHANGELOG, zutil/zoom-c.c, zutil/zoom-p.h: Implemented ZOOM + option: recordCharset + +2003-05-27 23:44 adam + + * doc/installation.xml: Change to yaz-asncomp + +2003-05-27 23:42 adam + + * odr/Makefile.am: reordered tstodr_SOURCES + +2003-05-27 23:16 adam + + * doc/: yaz-asncomp.sgml, yaz-comp.sgml: YAZ ASN.1 compiler renamed + from yaz-comp to yaz-asncomp + +2003-05-27 23:12 adam + + * CHANGELOG, yaz.spec.in, debian/changelog, debian/rules, + doc/Makefile.am, ill/Makefile.am, odr/Makefile.am, + util/Makefile.am, util/yaz-asncomp, util/yaz-comp, win/makefile, + z39.50/Makefile.am: YAZ ASN.1 compiler renamed from yaz-comp to + yaz-asncomp + +2003-05-27 14:45 adam + + * doc/: Makefile.am, yaz-comp.sgml: Manual page for yaz-comp + +2003-05-27 11:52 mike + + * doc/tools.xml: Describe cql_strerror() + +2003-05-27 11:48 mike + + * odr/.cvsignore: Ignore tstodrcodec.[ch] + +2003-05-27 11:47 mike + + * cql/: Makefile.am, cqlstrer.c: Add cqlster.c which provides + cql_strerror() + +2003-05-27 11:46 mike + + * include/yaz/cql.h: Add declaration of cql_strerror() Remove + comment listing error-values, since the same information is now + included in the cql/cqlstrer.c source file. + +2003-05-27 11:43 mike + + * CHANGELOG: tweak + +2003-05-27 11:42 mike + + * client/client.c: Better error reporting for CQL-to-RPN conversion + failure + +2003-05-26 22:09 adam + + * CHANGELOG, configure.in: Special socklen_t check for AIX + +2003-05-26 15:47 adam + + * odr/tstodr.c: Use odr_getelement instead of odr_getaddinfo + +2003-05-26 15:36 adam + + * util/oid.c: Make MAC OSX gcc more happy + +2003-05-26 13:35 adam + + * zoom/zoomsh.c: Fix type of len var + +2003-05-24 21:34 adam + + * server/seshigh.c: added type cast to avoid warning + +2003-05-24 21:25 adam + + * CHANGELOG: Spelling. + +2003-05-24 21:20 adam + + * CHANGELOG, include/yaz/odr.h, odr/ber_tag.c, odr/odr-priv.h, + odr/odr.c, odr/odr_util.c, server/seshigh.c: odr_getelement / + odr_setelement + +2003-05-23 12:41 adam + + * client/admin.c, win/makefile: WIN32 updates + +2003-05-23 10:52 adam + + * client/client.c: Compilation now works again + +2003-05-23 02:24 mike + + * doc/: client.xml, yaz-client-commands.xml, yaz-client.sgml: + Document yaz-client's CQL2RPN query-type, the set_cqlfile command + and the -q command-line options + +2003-05-23 01:55 mike + + * client/client.c: Set the default CQL qualifier file to + /usr/local/share/yaz/etc/pqf.properties (How can I set it to look + wherever YAZ is installed?) Refuse to do CQL2RPN queries if no + valid CQL qualifier file has been set. + +2003-05-23 00:44 adam + + * CHANGELOG, util/Makefile.am, util/charconv.tcl, util/tsticonv.c: + Fix MARC8 conversion + +2003-05-23 00:32 mike + + * etc/Makefile.am: Fix to install XSLs and pqf.properties + +2003-05-22 19:01 mike + + * client/client.c: Support for a new queryType, CQL2RPN, which + allows the user to provide queries in CQL and transforms them + into Type-1 queries. This should allow CQL to be used against + any server rather than just the tiny proportion that support + native CQL queries. Also added set_cqlfile command (analogous to + set_cclfile). + +2003-05-22 18:57 mike + + * doc/tools.xml: Add documentation for CQL->RPN transformation's + error-reporting + +2003-05-22 17:41 heikki + + * include/yaz/log.h: Fixed a silly typo + +2003-05-22 15:15 heikki + + * include/yaz/log.h, util/log.c: Defined log level bits app2 and + app3 + +2003-05-22 13:20 marc + + * yaz.spec.in: redhat package version 2 now + +2003-05-20 22:33 adam + + * client/client.c, comstack/tcpip.c: Fix comments + +2003-05-20 22:22 adam + + * server/seshigh.c: Show ODR error addinfo + +2003-05-20 22:21 adam + + * odr/: odr_util.c, tstodr.c: Further ODR tests + +2003-05-20 21:55 adam + + * client/admin.h, client/client.c, doc/odr.xml, include/yaz/odr.h, + odr/Makefile.am, odr/ber_tag.c, odr/odr-priv.h, odr/odr.c, + odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, odr/odr_cons.c, + odr/odr_enum.c, odr/odr_int.c, odr/odr_null.c, odr/odr_oct.c, + odr/odr_oid.c, odr/odr_use.c, odr/odr_util.c, odr/tstodr.c, + util/yaz-comp, z39.50/z.tcl: Better ODR diagnostics for missing + elements which includes additional info with name of element. New + ODR function odr_missing. Removed depricated macros odr_implicit + and odr_explicit. + +2003-05-20 21:50 adam + + * odr/ber_bit.c: Indentation + +2003-05-20 19:22 adam + + * odr/ber_any.c: Indentation + +2003-05-20 10:22 adam + + * CHANGELOG, debian/changelog, doc/zoom.xml, server/seshigh.c, + zutil/zoom-c.c, zutil/zoom-p.h: ZOOM option: step. More verbose + GFS SRW server display + +2003-05-19 22:45 adam + + * CHANGELOG: Changes. SRW support. charset fixes for yaz-client + +2003-05-19 22:45 adam + + * doc/: client.xml, yaz-client-commands.xml, yaz-client.sgml, + zoom.xml: charset/marccharset commands. SRW stuff + +2003-05-19 22:44 adam + + * client/client.c: charset updates. Option -V to show version + +2003-05-19 16:37 adam + + * odr/odr.c: odr_set_charset: allow to==from==0 to disable charset + conversion + +2003-05-19 00:27 adam + + * debian/changelog: Fix comment + +2003-05-16 16:39 adam + + * doc/installation.xml: Mention GNU Bison on Windows installataion + +2003-05-16 15:14 adam + + * CHANGELOG, util/xmalloc.c: xmalloc trace fix for 64-bit systems + such as DEC alpha. + +2003-05-15 00:31 adam + + * debian/changelog: Fix last event setting. + +2003-05-14 23:12 adam + + * doc/yaz-man.sgml: Updated yaz.7 page + +2003-05-14 22:58 adam + + * zutil/zoom-c.c: Fix setting of last event# + +2003-05-14 15:49 adam + + * comstack/unix.c: Set permissions to 0777 for unix file socket + +2003-05-13 16:21 adam + + * comstack/tcpip.c: Use YAZ_SOCKLEN_T instead of socklen_t + +2003-05-13 00:38 adam + + * doc/zoom.xml: Mention http scheme + +2003-05-13 00:37 adam + + * doc/Makefile.am: Minor change of def of EXTRA_DIST + +2003-05-13 00:36 adam + + * zutil/srw.c: Omit print for XML data + +2003-05-13 00:35 adam + + * client/client.c: Fix handling of HTTP error. Dont print details + when omitted + +2003-05-12 15:34 mike + + * doc/zoom.xml: move description of databaseName option to the + Connection section + +2003-05-06 15:09 adam + + * odr/tstodr.c: Fix check + +2003-05-06 14:09 adam + + * buildconf.sh: Call automake twice to avoid missing depcomp + +2003-05-06 14:07 adam + + * Makefile.am: Remove fix for missing depmod in Makefile + +2003-05-06 13:51 adam + + * include/yaz/yaz-iconv.h: Add include of yaz/yconfig.h + +2003-05-06 13:37 adam + + * Makefile.am, buildconf.sh: Fix for missing depcomp + +2003-05-06 12:08 adam + + * odr/: Makefile.am, test.c, tstodr.asn, tstodr.c: New test for + ODR. Demonstrates the use of small ASN.1 spec too. + +2003-05-06 12:07 adam + + * util/: Makefile.am, tsticonv.c, tstmatchstr.c, tstwrbuf.c: New + tests. + +2003-05-06 12:06 adam + + * util/yaz-comp: Include of odr.h does not use -i value. Always set + to . + +2003-05-03 01:25 mike + + * doc/.cvsignore: ignore yazhtml.xsl + +2003-05-02 11:23 mike + + * etc/.cvsignore: new file + +2003-05-02 11:22 mike + + * cql/.cvsignore: ignore cql2pqf and cql2xcql + +2003-05-01 09:49 adam + + * cql/Makefile.am: Removed cql.h from sources + +2003-04-30 16:04 adam + + * client/client.c: SRW fixes + +2003-04-30 00:00 adam + + * debian/: changelog, rules: yaz.7 moved from yaz to libyaz. + +2003-04-29 23:53 adam + + * client/client.c: Database setting for SRW. Minor updates in + messages + +2003-04-29 23:20 adam + + * client/client.c, server/seshigh.c, zutil/zoom-c.c: Fixed a few + warnings on non-libxml2 systems + +2003-04-29 23:13 adam + + * client/client.c: Proper ifdefs for non-libxml2 systems + +2003-04-29 23:04 adam + + * client/client.c: SRW support for YAZ client + +2003-04-29 11:54 adam + + * debian/: changelog, control: Remove shlibs:Depends from yaz + +2003-04-28 23:02 adam + + * CHANGELOG, configure.in, yaz.spec.in, debian/changelog, + debian/control, debian/rules, doc/Makefile.am, doc/apilayer.obj, + doc/frontend.xml, doc/introduction.xml, doc/yaz-config.sgml, + doc/yaz-man.sgml, doc/yaz.xml.in, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 2.0.2 + +2003-04-28 13:04 adam + + * CHANGELOG, debian/changelog, include/yaz/zoom.h, zutil/zoom-c.c: + New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a + record and search result respectively. + +2003-04-25 18:17 adam + + * yaz.spec.in: libyaz does not depend on readline; yaz does + (programs) + +2003-04-24 22:38 adam + + * yaz.spec.in: Release 1 + +2003-04-24 22:36 adam + + * debian/changelog: Debian changelog + +2003-04-24 22:01 adam + + * CHANGELOG: Morten B. + +2003-04-24 22:00 adam + + * CHANGELOG, yaz.spec.in, win/yaz.nsi, win/yaz.rc: version update + +2003-04-24 15:30 adam + + * CHANGELOG, include/yaz/backend.h, server/seshigh.c: For GFS: + schema for bend_fetch; displayTerm for bend_scan. + +2003-04-24 15:29 adam + + * doc/: Doxyfile, Makefile.am: Doxyfile part of make dist + +2003-04-24 15:05 adam + + * zutil/srw.c: Remove unused vars + +2003-04-24 15:04 adam + + * comstack/comstack.c: Work on chunkced encoding + +2003-04-24 14:48 adam + + * odr/: dumpber.c, odr_bit.c: Work on bug 24 + +2003-04-23 22:39 adam + + * zoom/zoomsh.c: Allow for quoted tokens in ZOOM shell + +2003-04-23 22:38 adam + + * zutil/zoom-c.c: For ItemOrder, result set is unset if + itemorder-setname is empty. Set HTTP header "host" in order to + be HTTP/1.1 compliant. + +2003-04-23 22:36 adam + + * zutil/soap.c: Indentation + +2003-04-23 22:34 adam + + * util/: Makefile.am, siconvtst.c, tsticonv.c, tstnmem.c, + yaziconv.c: Test cases for nmem, iconv + +2003-04-23 14:56 marc + + * doc/Doxyfile: Doxyfile added for html-documentation generation + +2003-04-23 14:31 adam + + * zutil/: Makefile.am, opacdisp.c: Prepare for OPAC display + +2003-04-18 19:14 adam + + * TODO: Note about debian version + +2003-04-18 17:11 adam + + * CHANGELOG: Changes + +2003-04-18 17:11 adam + + * server/seshigh.c: default recordPacking is xml for SRU, string + for SRW + +2003-04-18 01:25 adam + + * debian/rules: Delete unused make var YAZ_VERSION + +2003-04-18 01:24 adam + + * lib/Makefile.am: Set LDFLAGS per library to avoid warning for + newer libtools + +2003-04-17 21:43 adam + + * zutil/zoom-c.c: recordPacking for ZOOM + +2003-04-17 21:43 adam + + * zutil/srw.c: recordPacking for SRW + +2003-04-17 08:06 adam + + * yaz.spec.in: .la files part of RPM + +2003-04-14 19:02 adam + + * util/yaz-comp: Use Log instead of Id + +2003-04-14 18:57 adam + + * util/: version.c, yaz-comp: Add include of string.h + +2003-04-14 18:52 adam + + * cql/lexer.c: Fix another bug in lexer + +2003-04-14 17:40 adam + + * cql/lexer.c: Fix bug with unset member of lex token + +2003-04-12 01:29 adam + + * z39.50/z3950v3.asn: EXPORT LanguageCode and Segment + +2003-04-11 17:53 adam + + * CHANGELOG, cql/Makefile.am, cql/cql.y, cql/lexer.c: Fix CQL lex + buffer overflow. + +2003-04-03 23:01 mike + + * util/oid.c: Remove the Satan-spawn attribute VAL_THESAURUS + +2003-03-25 10:58 adam + + * configure.in: AM_MAINTAINER_MODE + +2003-03-25 10:57 adam + + * configure.in, include/yaz/yaz-version.h: 2.0.1 + +2003-03-25 10:55 adam + + * server/seshigh.c, zutil/soap.c: Fix non-XML compile + +2003-03-24 23:26 adam + + * include/yaz/backend.h, include/yaz/soap.h, server/seshigh.c, + ztest/ztest.c, zutil/srw.c: SRU/SRW Explain for Frontend server + +2003-03-23 21:27 adam + + * include/yaz/srw.h, zutil/srw.c: SRW/SRU explain + +2003-03-21 11:48 adam + + * doc/Makefile.am: Only make ln -s when link does not yet exist + +2003-03-20 22:15 adam + + * include/yaz/srw.h, server/seshigh.c, zutil/srw.c, CHANGELOG: + SRW/SRU recordPacking + +2003-03-19 10:45 adam + + * client/client.c: Fix uninitialized var type_and_host + +2003-03-18 14:34 adam + + * CHANGELOG, include/yaz/nmem.h, include/yaz/odr.h, odr/odr_mem.c, + server/seshigh.c, util/nmemsdup.c, zutil/soap.c, zutil/srw.c: SRU + support for frontend server + +2003-03-18 14:30 adam + + * doc/: installation.xml, tools.xml: More on supported platforms + +2003-03-11 22:47 adam + + * yaz.spec.in: Add dependency + +2003-03-11 22:19 adam + + * TODO: Updated TODO + +2003-03-11 22:19 adam + + * yaz.spec.in: Modular RPM Package + +2003-03-11 12:09 adam + + * include/yaz/soap.h, server/seshigh.c, zoom/Makefile.am, + zutil/Makefile.am, zutil/soap.c, zutil/zgdu.c, zutil/zoom-c.c: + SRW character set handling + +2003-03-11 12:07 adam + + * client/: Makefile.am, admin.c, admin.h, client.c: Minor + updates/cleaning. New option -b to dump BER + +2003-03-11 12:06 adam + + * client/bertorture.c: New tool for ODR testing. + +2003-03-11 12:05 adam + + * comstack/comstack.c, comstack/tcpip.c, include/yaz/comstack.h: + New function cs_get_host_args for method/host/path parsing. + +2003-03-11 12:03 adam + + * include/yaz/odr.h, odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, + odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, odr/ber_oct.c, + odr/ber_oid.c, odr/ber_tag.c, odr/dumpber.c, odr/odr-priv.h, + odr/odr.c, odr/odr_any.c, odr/odr_choice.c, odr/odr_cons.c, + odr/odr_enum.c, odr/odr_int.c, odr/odr_mem.c, odr/odr_null.c, + odr/odr_oct.c, odr/odr_oid.c, odr/odr_seq.c, odr/odr_tag.c: Fixes + for random/hostile BER. + +2003-03-10 17:11 adam + + * debian/control: yaz-devel recommends libxml2-dev + +2003-03-07 09:39 adam + + * doc/introduction.xml: Fixed xref + +2003-03-03 20:57 adam + + * comstack/unix.c, cql/cqlutil.c, include/yaz/comstack.h, + include/yaz/diagbib1.h, include/yaz/ill.h, include/yaz/logrpn.h, + include/yaz/options.h, include/yaz/statserv.h, + include/yaz/tcpip.h, include/yaz/yaz-ccl.h, server/statserv.c, + zoom/zoomsh.c, zutil/srw.c, zutil/srwtst.c: Fixed warnings. + Updated headers + +2003-03-02 16:34 adam + + * zutil/Makefile.am: Remove redundant include path + +2003-02-28 16:59 adam + + * ztest/ztest.c: database case insensitive + +2003-02-27 20:56 adam + + * zutil/logrpn.c: truncation=CCL + +2003-02-27 20:55 adam + + * doc/yaz-client-commands.xml: cql available in yaz-client + +2003-02-25 19:35 adam + + * CHANGELOG, client/client.c, util/marcdump.c: Fix compile bug for + systems that have nl_langinfo but CODESET undefined + +2003-02-25 19:08 adam + + * CHANGELOG, cql/cqltransform.c: Added missing PQF transform rules + +2003-02-24 15:15 adam + + * debian/changelog: New Debian package - using older version of + libxml2 + +2003-02-24 14:14 adam + + * zoom/zoomsh.c: Added scan + +2003-02-23 22:39 adam + + * debian/: changelog, control: Fix debian conflict with php4-yaz + +2003-02-23 22:18 adam + + * CHANGELOG, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Version + +2003-02-23 22:10 adam + + * CHANGELOG, debian/changelog, doc/introduction.xml, + z39.50/z3950v3.asn, zutil/zget.c: Dates + +2003-02-23 21:40 adam + + * CHANGELOG, client/client.c: Minor changes + +2003-02-23 21:40 adam + + * doc/frontend.xml: More on SRW for the server + +2003-02-23 21:39 adam + + * server/seshigh.c: Check for status for init handler in SRW + wrapper + +2003-02-23 16:24 adam + + * zoom/zoomsh.c: Reset count/start after running show + +2003-02-23 15:46 adam + + * server/statserv.c: Fix WIN32 compile + +2003-02-23 15:26 adam + + * include/yaz/srw.h, server/seshigh.c, server/statserv.c, + zutil/srw.c, zutil/srwtst.c, zutil/zoom-c.c: Renamed + Z_SRW_searchRetrieve to Z_SRW_PDU + +2003-02-23 15:25 adam + + * doc/: Makefile.am, apilayer.obj, apilayer.png, introduction.xml: + Revised introduction. Added figure with YAZ module layers. + +2003-02-23 15:24 adam + + * doc/zoom.xml: Smallish. + +2003-02-23 15:24 adam + + * doc/soap.xml: More on SRW. + +2003-02-23 15:23 adam + + * doc/tools.xml: Updated PQF example queries. + +2003-02-22 01:08 adam + + * util/nmem.c: work around for bug in strerror_r + +2003-02-21 13:20 adam + + * doc/: Makefile.am, soap.xml: Fix soap.srw.html + +2003-02-21 13:08 adam + + * comstack/comstack.c, comstack/tcpip.c, comstack/unix.c, + include/yaz/Makefile.am, include/yaz/comstack.h, + include/yaz/oid.h, include/yaz/proto.h, include/yaz/zgdu.h, + odr/ber_any.c, server/eventl.c, server/seshigh.c, zutil/zgdu.c, + zutil/zoom-c.c: Z_GDU definitions in zgdu.h. Renamed PROTO_SRW to + PROTO_HTTP. + +2003-02-21 13:06 adam + + * doc/: Makefile.am, comstack.xml, future.xml, introduction.xml, + soap.xml, yaz.xml.in: Separate SOAP/SRW chapter + +2003-02-21 01:24 adam + + * doc/: Makefile.am, introduction.xml, yaz.xml.in, zoom.xml: Stuff + on SRW + +2003-02-20 22:23 adam + + * README, doc/license.xml: Dates + +2003-02-20 22:19 adam + + * CHANGELOG: Date in CHANGELOG + +2003-02-20 22:09 adam + + * Makefile.am: No need to make doc (again) for make dist. + +2003-02-20 21:37 adam + + * yaz.spec.in: Updated RPM package + +2003-02-20 16:15 adam + + * include/yaz/backend.h, server/seshigh.c, server/statserv.c: + Cleanup. + +2003-02-20 16:14 adam + + * ztest/ztest.c: Break long line + +2003-02-20 16:13 adam + + * server/eventl.c: Improve net I/O performance for server. + +2003-02-20 16:12 adam + + * zutil/zgdu.c: ODR print for HTTP packages + +2003-02-20 16:11 adam + + * zutil/: zoom-c.c, zoom-p.h: PQF native support for SRW ;) + +2003-02-20 16:10 adam + + * comstack/tcpip.c: Playing with setsockopt + +2003-02-20 16:05 adam + + * CHANGELOG, lib/Makefile.am: Fix problem with order of C include + paths. + +2003-02-19 16:22 adam + + * include/yaz/srw.h, server/seshigh.c, zutil/srw.c, zutil/zoom-c.c: + Utility to map between Bib-1 and SRW diagnostics. Better + handling of unsupported SRW constructs in server. + +2003-02-18 22:27 adam + + * include/yaz/cql.h, server/statserv.c, win/makefile, win/yaz.nsi: + CQL w/bison on WIN32 + +2003-02-18 21:21 adam + + * configure.in, doc/installation.xml: Installation instruction + updates + +2003-02-18 15:47 adam + + * server/seshigh.c: Oops Still need HAVE_XML2 in seshigh.c. + +2003-02-18 15:28 adam + + * include/yaz/xmalloc.h, include/yaz/yaz-util.h, + include/yaz/yaz-version.h, include/yaz/yconfig.h, + server/seshigh.c, util/Makefile.am, util/log.c, util/version.c, + zutil/soap.c, zutil/srw.c: Function yaz_version. Better handling + of non-SOAP enabled YAZ + +2003-02-18 12:59 adam + + * client/Makefile.am, server/eventl.c, server/seshigh.c, + zutil/zgdu.c, zutil/zoom-c.c: Change a few yaz_log messages + +2003-02-18 12:58 adam + + * debian/: control, rules: New major version for yaz libs + +2003-02-18 11:37 adam + + * configure.in, yaz-config.in, client/Makefile.am, + debian/changelog, debian/control, debian/rules, doc/Makefile.am, + lib/Makefile.am, server/Makefile.am, zoom/Makefile.am, + ztest/Makefile.am, zutil/Makefile.am: Use LIBS instead of + XML2_LIBS for Makefiles + +2003-02-18 10:12 adam + + * zutil/zoom-c.c: Dont return values in void function + +2003-02-18 10:11 adam + + * win/makefile: Prepare for external utilties: iconv, libxml2 on + WIN32 + +2003-02-17 23:35 adam + + * CHANGELOG, configure.in, server/seshigh.c, zoom/Makefile.am, + ztest/Makefile.am, zutil/Makefile.am, zutil/soap.c, zutil/srw.c, + zutil/srwtst.c, zutil/zoom-c.c: Use libxml2 instead of + libxslt(and libxml2) + +2003-02-17 23:34 adam + + * server/seshigh.c, win/makefile, zutil/zgdu.c: WIN32 updates + +2003-02-17 22:23 adam + + * CHANGELOG, client/client.c, server/eventl.c, server/seshigh.c, + server/session.h, server/statserv.c, z39.50/z.tcl, zoom/zoomsh.c, + zutil/srwtst.c, zutil/zgdu.c, zutil/zoom-c.c: HTTP Timeouts. + Memory leak checks and fixes. Changed member names for schema via + ASN.1 compiler directives. + +2003-02-17 15:35 adam + + * include/yaz/srw.h, include/yaz/zoom.h, server/seshigh.c, + zoom/zoomsh.c, zutil/soap.c, zutil/srw.c, zutil/zgdu.c, + zutil/zoom-c.c, zutil/zoom-p.h: SRW record retrieval works for + ZOOM + +2003-02-14 21:32 adam + + * configure.in, doc/tkl.xsl.in, doc/tools.xml, doc/yazhtml.xsl, + doc/yazhtml.xsl.in: Configure option --with-xsl. + +2003-02-14 20:10 adam + + * zutil/zoom-c.c: Fix non-SOAP compile + +2003-02-14 19:49 adam + + * TODO, configure.in, ccl/cclfind.c, ccl/cclptree.c, + ccl/ccltoken.c, client/client.c, comstack/comstack.c, cql/cql.y, + cql/cqlstring.c, cql/cqltransform.c, cql/cqlutil.c, + cql/xcqlutil.c, doc/tools.xml, include/yaz/cql.h, + include/yaz/oid.h, include/yaz/proto.h, include/yaz/soap.h, + include/yaz/srw.h, odr/ber_any.c, server/Makefile.am, + server/seshigh.c, server/statserv.c, zoom/zoomsh.c, zutil/soap.c, + zutil/srw.c, zutil/srwtst.c, zutil/zgdu.c, zutil/zoom-c.c, + zutil/zoom-p.h: More type casts. Modify CQL tree - bool is C++ + reserved name. Using YAZ SOAP instead of gSOAP for ZOOM client + (still incomplete). + +2003-02-12 23:02 adam + + * util/marcdisp.c: add type cast + +2003-02-12 23:02 adam + + * util/marcdump.c: remove unused variable + +2003-02-12 22:34 adam + + * util/matchstr.c: Added include of string.h + +2003-02-12 16:06 adam + + * CHANGELOG, Makefile.am, configure.in, yaz-config.in, + client/client.c, include/yaz/Makefile.am, include/yaz/backend.h, + include/yaz/odr.h, include/yaz/proto.h, include/yaz/soap.h, + include/yaz/srw-util.h, include/yaz/srw.h, + include/yaz/yaz-iconv.h, lib/Makefile.am, odr/ber_any.c, + odr/odr.c, server/Makefile.am, server/eventl.c, server/eventl.h, + server/requestq.c, server/seshigh.c, server/session.h, + server/statserv.c, srw/Makefile.am, srw/srw-diag.c, + srw/srw-namespace.c, srw/srw-server.c, srw/srw-xcql.c, + srw/srw-xslt.c, srw/zing.h, srwapps/Makefile.am, + srwapps/srw-client.c, srwapps/srw-gateway.c, util/matchstr.c, + z39.50/z3950v3.asn, zoom/Makefile.am, ztest/Makefile.am, + zutil/Makefile.am, zutil/logrpn.c, zutil/soap.c, zutil/srw.c, + zutil/yaz-ccl.c, zutil/zgdu.c, zutil/zoom-c.c: SOAP, SRW codecs + and HTTP transport for YAZ using libxml2. Updated ASN.1 for + Z39.50 amendment String Identifiers for Schemas. + +2003-02-12 15:17 heikki + + * include/yaz/log.h, util/log.c: Added a LOG_NOTIME flag to disable + time stamping log entries (useful for regressions, can run a diff + on logs) + +2003-02-11 17:35 heikki + + * util/log.c: Ficed the log level display for level app (used to + display [all][app]) + +2003-02-10 09:58 adam + + * include/yaz/yaz-version.h, configure.in, win/yaz.nsi, win/yaz.rc, + debian/rules: 1.9.3 + +2003-02-07 15:39 heikki + + * util/log.c: Added a way to get log back to stderr + +2003-01-28 23:34 adam + + * doc/tools.xml: CQL to RPN example + +2003-01-27 22:31 adam + + * client/client.c: Don't set syntax to none if bad syntax is + supplied + +2003-01-27 22:30 adam + + * doc/tools.xml: CQL to RPN mappings + +2003-01-24 13:15 adam + + * zutil/zoom-c.c, debian/changelog: Save a few bytes for piggyback + :) + +2003-01-24 12:59 adam + + * debian/changelog: Piggyback fix + +2003-01-24 12:52 adam + + * zutil/zoom-c.c: Fix SmallSetElementSetName for piggyback + +2003-01-23 21:26 adam + + * doc/tools.xml: More CQL information + +2003-01-22 15:39 adam + + * doc/yaz.xml.in: 2003 + +2003-01-22 14:33 adam + + * debian/: control, control.templ: Build-depends on docbook, etc + +2003-01-22 10:43 adam + + * doc/tools.xml: CQL section in tools. Not yet finished + +2003-01-20 14:04 adam + + * include/yaz/srw-util.h, srw/srw-server.c, srwapps/srw-gateway.c: + Changed prototype of yaz_srw_serve to solve threading problem + with srw-gateway. + +2003-01-15 15:26 adam + + * srw/Makefile.am: Fix compile problem in srw (when srw is + disabled) + +2003-01-14 09:21 adam + + * server/statserv.c: Using yaz_log instead of logf + +2003-01-13 23:11 adam + + * zutil/zoom-c.c: Fix missing arg in select code + +2003-01-13 15:33 adam + + * configure.in: Only enable libxml/xslt when SRW is enabled (gSOAP + is found) + +2003-01-13 15:32 adam + + * srwapps/srw-client.c: Add include + +2003-01-13 15:32 adam + + * server/statserv.c: Call bend_stop only for main process (not from + forked child) + +2003-01-11 04:18 adam + + * cql/: cql.y, cqltransform.c: Fixed two memory leaks + +2003-01-06 22:52 adam + + * util/nmem.c: Only use strerror_r in threaded mode + +2003-01-06 09:20 adam + + * CHANGELOG, LICENSE, Makefile.am, README, configure.in, + yaz-config.in, client/admin.c, client/admin.h, client/client.c, + client/tabcomplete.c, comstack/tcpip.c, comstack/unix.c, + cql/.cvsignore, cql/Makefile.am, cql/cql.y, cql/cql2pqf.c, + cql/cql2xcql.c, cql/cqlstdio.c, cql/cqlstring.c, + cql/cqltransform.c, cql/cqlutil.c, cql/lexer.c, cql/xcqlutil.c, + debian/rules, etc/MARC21slim2DC.xsl, etc/MARC21slim2MODS.xsl, + etc/MARC21slim2RDFDC.xsl, etc/MARC21slimUtils.xsl, + etc/Makefile.am, etc/maps.xml, etc/pqf.properties, + include/yaz/Makefile.am, include/yaz/backend.h, + include/yaz/cql.h, include/yaz/log.h, include/yaz/logrpn.h, + include/yaz/marcdisp.h, include/yaz/nmem.h, include/yaz/odr.h, + include/yaz/oid.h, include/yaz/pquery.h, include/yaz/proto.h, + include/yaz/prt-ext.h, include/yaz/srw-util.h, + include/yaz/tpath.h, include/yaz/unix.h, include/yaz/wrbuf.h, + include/yaz/yaz-iconv.h, include/yaz/yaz-util.h, + include/yaz/zoom.h, lib/Makefile.am, odr/ber_any.c, + odr/ber_bit.c, odr/ber_bool.c, odr/ber_int.c, odr/ber_len.c, + odr/ber_null.c, odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, + odr/dumpber.c, odr/odr-priv.h, odr/odr.c, odr/odr_any.c, + odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, odr/odr_cons.c, + odr/odr_enum.c, odr/odr_int.c, odr/odr_mem.c, odr/odr_null.c, + odr/odr_oct.c, odr/odr_oid.c, odr/odr_seq.c, odr/odr_tag.c, + odr/odr_use.c, odr/odr_util.c, server/seshigh.c, + server/session.h, server/statserv.c, srw/.cvsignore, + srw/Makefile.am, srw/srw-diag.c, srw/srw-namespace.c, + srw/srw-server.c, srw/srw-xcql.c, srw/srw-xslt.c, srw/zing.h, + srwapps/.cvsignore, srwapps/Makefile.am, srwapps/srw-client.c, + srwapps/srw-gateway.c, util/Makefile.am, util/atoin.c, + util/log.c, util/marcdisp.c, util/marcdump.c, util/nmem.c, + util/oid.c, util/siconv.c, util/siconvtst.c, util/tpath.c, + util/wrbuf.c, util/xmalloc.c, win/LICENSE.txt, win/yaz.rc, + z39.50/prt-ext.c, z39.50/z3950v3.asn, zoom/Makefile.am, + zoom/zoomsh.c, ztest/read-grs.c, ztest/ztest.c, + zutil/Makefile.am, zutil/diagbib1.c, zutil/logrpn.c, + zutil/otherinfo.c, zutil/pquery.c, zutil/yaz-ccl.c, + zutil/z3950oid.c, zutil/zget.c, zutil/zoom-c.c, zutil/zoom-opt.c, + zutil/zoom-p.h: SRW, CQL, 2003 + +2002-12-28 13:16 adam + + * zutil/yaz-ccl.c: Remove printf stmt + +2002-12-28 13:13 adam + + * CHANGELOG, ccl/cclfind.c, ccl/cclptree.c, ccl/ccltoken.c, + include/yaz/ccl.h, zutil/logrpn.c, zutil/yaz-ccl.c: CCL proximity + support + +2002-12-19 15:04 adam + + * CHANGELOG, comstack/tcpip.c: TCP/IP receive buffer patch + (Solaris). + +2002-12-17 14:32 adam + + * util/: .cvsignore, marcdisp.c: Simplify use of WRBUF in marc + handler + +2002-12-16 15:06 adam + + * win/: makefile, yaz.nsi: WIN32 updates for marc8.c + +2002-12-16 14:30 adam + + * client/client.c: Remove unused variable + +2002-12-16 14:26 adam + + * util/charconv.sgm: MARC8 conversion file + +2002-12-16 14:13 adam + + * CHANGELOG, configure.in, client/client.c, + include/yaz/Makefile.am, include/yaz/marcdisp.h, + include/yaz/yaz-iconv.h, include/yaz/yaz-util.h, + util/Makefile.am, util/charconv.tcl, util/marcdisp.c, + util/marcdump.c, util/siconv.c, util/siconvtst.c, + ztest/read-marc.c, zutil/zoom-c.c: MARC8 decoding for yaz_iconv. + New MARC API. Utility marcdump allows you to specify source and + destination encoding. YAZ client tries to convert MARC + characters to native character encoding for output terminal (some + unices only). + +2002-12-16 14:11 adam + + * comstack/tcpip.c: Make private functions static + +2002-12-15 22:42 adam + + * CHANGELOG: Spelling + +2002-12-15 22:22 adam + + * CHANGELOG, comstack/unix.c: Make private functions static in + unix.c + +2002-12-10 14:14 adam + + * CHANGELOG, zutil/zoom-c.c: ZOOM_record_get: xml returns MARC XML + instead of OAI MARC + +2002-12-10 11:59 adam + + * include/yaz/yaz-util.h, util/siconv.c, util/siconvtst.c: More + debugging tools for yaz_iconv + +2002-12-10 11:23 adam + + * util/siconvtst.c: Fixed buffer handling (incomplete input) in + yaziconv test + +2002-12-10 00:32 adam + + * CHANGELOG, doc/zoom.xml, include/yaz/zoom.h, util/marcdisp.c, + zoom/zoomtst2.c, zutil/zoom-c.c, zutil/zoom-p.h: New ZOOM + connection options: targetImplementation{Id,Name,Version} New + function ZOOM_connection_error_x. + +2002-12-10 00:29 adam + + * yaz-config.in: --tabs option no longer available + +2002-12-05 13:19 adam + + * CHANGELOG, client/client.c, include/yaz/nmem.h, util/log.c, + util/nmem.c: New function yaz_strerror. + +2002-12-05 13:16 adam + + * win/makefile: yaz_strerror. WIN32 updates for mterm2.asn + +2002-12-05 13:07 adam + + * include/yaz/proto.h, include/yaz/prt-ext.h, z39.50/Makefile.am, + z39.50/mterm2.asn, z39.50/prt-ext.c, z39.50/z.tcl, + zutil/pquery.c: Range search. Not fully implemented yet. + +2002-12-03 11:03 adam + + * CHANGELOG, include/yaz/marcdisp.h, include/yaz/wrbuf.h, + util/marcdisp.c, util/marcdump.c, zutil/zoom-c.c: MARC XML + +2002-12-02 17:02 mike + + * doc/.cvsignore: ignore tkl.xsl + +2002-12-02 00:22 mike + + * util/oid.c: Add Zthes tag-set -- where was it?! + +2002-11-30 23:30 mike + + * include/yaz/zoom.h, zutil/zoom-c.c: Add new API function + ZOOM_diag_str(), which maps error code to human-readable message. + It uses code lifted from ZOOM_connection_error() (which now + calls it) to map the ZOOM-specific errors by hand, and fall back + to diagbib1_str() for others. I did this because I need the new + function in ZOOM-C++, for reasons which would be otiose, for the + moment, to rehearse. + +2002-11-29 16:41 adam + + * configure.in: Apply patch (again) + +2002-11-29 12:53 adam + + * CHANGELOG, configure.in, doc/credits.xml: Fix creation of + lib/yaz-config. + +2002-11-27 01:53 adam + + * yaz.m4: Look for YAZ in more places + +2002-11-26 18:25 adam + + * CHANGELOG: Changes + +2002-11-26 17:56 adam + + * util/log.c: include nmem.h to get prototype for yaz_errno + +2002-11-26 17:56 adam + + * server/eventl.c: Remove fprintf statement + +2002-11-26 17:47 adam + + * yaz.spec.in: Fix RPM build + +2002-11-26 17:04 adam + + * server/statserv.c: Win32 fix + +2002-11-26 16:47 adam + + * CHANGELOG: Changes + +2002-11-26 14:42 adam + + * configure.in, debian/changelog, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Increased version number + +2002-11-26 14:15 adam + + * CHANGELOG, server/eventl.c, server/session.h, server/statserv.c: + Fix SIGTERM handling in frontend server + +2002-11-15 11:38 adam + + * zutil/zoom-c.c: Remove C++ comment + +2002-11-08 14:35 adam + + * doc/tkl.xsl.in: Swap order of elements nonews and title + +2002-11-08 13:27 adam + + * doc/tkl.xsl.in: Dont show navig titles for TKL + +2002-11-08 13:27 adam + + * configure.in, doc/.cvsignore, doc/Makefile.am, doc/tkl.xsl.in, + doc/yaz.xml.in: TKL documentation + +2002-11-08 13:23 adam + + * client/client.c: Relax check for zero length OCTET aligned + +2002-10-28 11:53 adam + + * zutil/zoom-c.c: Fix length setting in ZOOM_record_get + +2002-10-24 14:14 heikki + + * win/makefile: Using a default path to find tcl + +2002-10-24 12:28 adam + + * debian/changelog: New debian release + +2002-10-23 12:11 adam + + * doc/: yaz-client.sgml, yaz-ztest.sgml: Fix refernce to yaz(7) + +2002-10-22 16:40 adam + + * util/wrbuf.c: Add include of stdio.h + +2002-10-22 15:49 adam + + * win/: makefile, yaz.nsi: data1 gone + +2002-10-22 14:51 adam + + * CHANGELOG, Makefile.am, configure.in, include/yaz/Makefile.am, + include/yaz/d1_attset.h, include/yaz/d1_map.h, + include/yaz/data1.h, lib/Makefile.am, retrieval/Makefile.am, + retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_doespec.c, retrieval/d1_espec.c, + retrieval/d1_expout.c, retrieval/d1_grs.c, retrieval/d1_handle.c, + retrieval/d1_if.c, retrieval/d1_map.c, retrieval/d1_marc.c, + retrieval/d1_prtree.c, retrieval/d1_read.c, retrieval/d1_soif.c, + retrieval/d1_sumout.c, retrieval/d1_sutrs.c, + retrieval/d1_tagset.c, retrieval/d1_varset.c, + retrieval/d1_write.c, tab/Makefile.am, tab/bib1.att, + tab/dan1.att, tab/danmarc.abs, tab/danmarc.mar, tab/explain.abs, + tab/explain.att, tab/explain.tag, tab/generic.tag, + tab/gils-a.est, tab/gils-b.est, tab/gils-f.est, tab/gils-g.est, + tab/gils-summary.map, tab/gils-usmarc.map, tab/gils-variant.est, + tab/gils.abs, tab/gils.att, tab/gils.tag, tab/meta-b.est, + tab/meta-usmarc.map, tab/meta.abs, tab/meta.tag, tab/summary.abs, + tab/summary.tag, tab/tagsetg.tag, tab/tagsetm.tag, + tab/usmarc-b.est, tab/usmarc.abs, tab/usmarc.mar, tab/usmarc.tag, + tab/var1.var, tab/wais-b.est, tab/wais-variant.est, tab/wais.abs: + data1 moved to zebra + +2002-10-22 12:32 adam + + * win/makefile: New source grs1disp.c + +2002-10-22 12:29 adam + + * zutil/grs1disp.c: Added grs1 display utility + +2002-10-22 12:05 adam + + * CHANGELOG, client/client.c, include/yaz/proto.h, + include/yaz/wrbuf.h, util/wrbuf.c, zutil/Makefile.am, + zutil/zoom-c.c: GRS-1 render for ZOOM. New WRBUF printf utility: + wrbuf_printf. + +2002-10-22 12:04 adam + + * util/log.c: Add missing va_end + +2002-10-15 11:12 adam + + * debian/changelog: Debian release + +2002-10-14 21:45 adam + + * ccl/: bib1, ccltoken.c: Allow - in term. But - in ranges must be + surrounded by whitespace + +2002-10-11 00:52 mike + + * doc/.cvsignore: Add intermediate files from PDF production. + +2002-10-10 01:07 mike + + * doc/: tools.xml, zoomsh.sgml: Bugfix to allow #PQF and #CCL + anchors to work in generated HTML + +2002-10-09 22:40 adam + + * debian/changelog: Typo + +2002-10-09 22:38 adam + + * debian/changelog: New debian package + +2002-10-09 13:36 mike + + * doc/.cvsignore: ignore more files + +2002-10-09 01:00 adam + + * retrieval/d1_read.c: Make insert_node work (again) + +2002-10-09 00:18 adam + + * retrieval/: d1_grs.c, d1_sutrs.c: More fixes for xmltext + +2002-10-08 22:14 adam + + * debian/changelog, debian/rules, include/yaz/data1.h, + retrieval/d1_prtree.c, retrieval/d1_read.c, retrieval/d1_write.c: + sgml filter doesn't interpret entities + +2002-10-08 13:34 mike + + * util/.cvsignore: Add yaziconv + +2002-10-08 11:07 adam + + * doc/: yaz-client.sgml, yaz-config.sgml, yaz-man.sgml, + yaz-ztest.sgml, zoomsh.sgml: Fix man pages for RedHat docbook2man + +2002-10-04 21:11 adam + + * util/marcdisp.c: Use hex character entity + +2002-10-04 21:06 adam + + * include/yaz/yaz-util.h: Clean log + +2002-10-04 21:06 adam + + * zutil/charneg.c: Added include of yaz-util.h + +2002-10-04 21:05 adam + + * client/client.c: WIN32 portability fix + +2002-10-04 20:29 adam + + * debian/changelog: official release for debian + +2002-10-04 20:22 adam + + * CHANGELOG: Towards 1.9.1 + +2002-10-04 13:24 adam + + * util/marcdisp.c: OAI MARC fix + +2002-10-04 13:24 adam + + * zutil/charneg.c: Use case-insensitive compare for charset names + +2002-10-04 13:23 adam + + * zutil/zoom-c.c: Use OAI XML + +2002-10-04 12:19 adam + + * util/: marcdisp.c, marcdump.c: OAI MARC display + +2002-10-02 17:51 adam + + * util/marcdisp.c: Create entities for MARC data (& <) + +2002-09-25 22:41 adam + + * zutil/zoom-c.c: Negotiated charset and languages saved in + connection options negotiation-{charset,lang}. + +2002-09-25 22:38 adam + + * doc/installation.xml: Installation mentions packages for YAZ as + well as iconv support. + +2002-09-25 22:32 adam + + * doc/zoom.xml: Spelling + +2002-09-25 22:32 adam + + * doc/Makefile.am: Create documentation files in current directory + rather than $(srcdir). + +2002-09-25 14:37 adam + + * comstack/tcpip.c, comstack/unix.c, include/yaz/nmem.h, + server/eventl.c, server/seshigh.c, server/statserv.c, util/log.c, + util/nmem.c, util/siconv.c: Thread-safe handling of errno + variable. For server option -a@ produces APDU prints in YAZ log. + +2002-09-25 12:01 adam + + * CHANGELOG: Changes + +2002-09-25 11:21 adam + + * yaz.spec.in: Man pages part of Redhat package + +2002-09-25 10:11 adam + + * configure.in: Check for docbook.dsl, docbookx.dtd on RedHat 7 + +2002-09-25 09:43 adam + + * Makefile.am, yaz.spec.in: Make doc part of SUBDIRS so that 'make + install' installs man pages + +2002-09-24 16:39 adam + + * CHANGELOG: Fix ESpec handling + +2002-09-24 15:58 adam + + * retrieval/: d1_doespec.c, d1_prtree.c, d1_write.c: Fix ESpec + handling + +2002-09-24 10:05 adam + + * CHANGELOG, configure.in, client/admin.c, client/client.c, + client/tabcomplete.c, odr/odr.c, odr/odr_oct.c, + retrieval/d1_map.c, util/siconv.c, ztest/read-marc.c, + zutil/charneg.c, zutil/pquery.c, zutil/zoom-c.c, + zutil/zoom-opt.c: Added several type casts for C++ compilation. + ZOOM fixes. + +2002-09-24 10:00 adam + + * zoom/: Makefile.am, zoomtst7.c: tst7 checks for memory leaks + +2002-09-24 10:00 adam + + * zoom/zoomtst2.c: spelling + +2002-09-24 09:58 adam + + * include/yaz/data1.h, retrieval/d1_read.c: SGML reader parses + comments + +2002-09-21 00:30 adam + + * zutil/z3950oid.c: Indentation + +2002-09-21 00:23 adam + + * configure.in, comstack/tcpip.c, comstack/unix.c: Improve check + for type of socket length (socklen_t). + +2002-09-20 12:22 adam + + * debian/: changelog, control: New descriptions + +2002-09-18 22:55 adam + + * configure.in: Safer check for iconv + +2002-09-17 23:19 adam + + * client/client.c: Work on ES Update for client + +2002-09-17 22:17 adam + + * doc/: Makefile.am, frontend.xml, future.xml, installation.xml, + yaz-client.sgml, yaz-man.sgml, yaz-ztest.sgml, zoomsh.sgml, + ztest-options.xml: Use proper tags for references to man pages + +2002-09-17 13:07 adam + + * client/: admin.c, admin.h, client.c: Fix white space. Added vim + indent directives + +2002-09-16 22:40 adam + + * debian/rules: yaz-comp and yaz-config moved to yaz-devel + +2002-09-16 20:45 adam + + * Makefile.am, configure.in, debian/rules, doc/Makefile.am, + doc/yaz-man.sgml, doc/zoomsh.sgml, lib/Makefile.am, win/yaz.nsi, + zoom/Makefile.am, zoom/zoom-c.c, zoom/zoom-opt.c, zoom/zoom-p.h, + zutil/Makefile.am, zutil/zoom-c.c, zutil/zoom-opt.c, + zutil/zoom-p.h: Moved zoom implementation to zutil. Man page for + zoomsh + +2002-09-16 16:16 adam + + * configure.in, debian/rules, doc/Makefile.am, doc/client.xml, + doc/frontend.xml, doc/yaz-client-commands.xml, + doc/yaz-client.sgml, doc/yaz-config.sgml, doc/yaz-man.sgml, + doc/yaz-ztest.sgml, doc/yaz.sgml, doc/yaz.xml.in, + doc/ztest-options.xml: man pages + +2002-09-16 12:48 adam + + * include/yaz/backend.h: Shorter header + +2002-09-15 22:41 adam + + * client/client.c: Remove unnecessary ; + +2002-09-14 12:27 adam + + * debian/: changelog, rules: Remove unnecessary make rule + +2002-09-13 13:28 adam + + * CHANGELOG, zutil/diagbib1.c: Added more Bib-1 diagnostics + +2002-09-13 10:57 adam + + * zoom/zoom-c.c: Make buffer for OtherInfo larger + +2002-09-11 23:25 adam + + * configure.in, asn/Makefile.am, comstack/Makefile.am, + ill/Makefile.am, odr/Makefile.am, retrieval/Makefile.am, + server/Makefile.am, util/Makefile.am, z39.50/Makefile.am, + zutil/Makefile.am: Remove LIBS = from Makefile.am's. + +2002-09-11 23:19 adam + + * CHANGELOG, configure.in: Better check for iconv + +2002-09-11 23:00 adam + + * CHANGELOG: Update changes with socklen_t + +2002-09-10 22:56 adam + + * configure.in, comstack/tcpip.c, comstack/unix.c: Check for + socklen_t type for accept, getpeername + +2002-09-10 20:43 adam + + * CHANGELOG, configure.in, debian/changelog, debian/rules, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Updated + version number + +2002-09-10 20:41 adam + + * include/yaz/nmem.h, util/nmem.c: Added yaz_errno + +2002-09-10 12:20 ja7 + + * client/client.c: Changed emacs tab-width: to 8 + +2002-09-06 22:04 adam + + * win/makefile: debug=0 + +2002-09-06 21:52 adam + + * server/statserv.c: Fixed use of service display name + +2002-09-06 15:05 adam + + * debian/changelog: Changes + +2002-09-06 15:01 adam + + * CHANGELOG: Fix date + +2002-09-06 11:00 adam + + * CHANGELOG: Changes + +2002-09-05 21:44 adam + + * debian/: changelog, control: yaz-doc moved to section doc + +2002-09-05 15:36 adam + + * CHANGELOG, configure.in, debian/changelog, debian/rules, + include/yaz/yaz-version.h, win/yaz.nsi, win/yaz.rc: Towards 1.9 + +2002-09-03 20:10 adam + + * zoom/zoom-c.c: Fixed crash due to absent database in + NamePlusRecord + +2002-09-03 12:46 adam + + * doc/tools.xml: Removed line for PQF grammar + +2002-09-03 11:50 adam + + * doc/: odr.xml, tools.xml: Updated doc about PQF. Spell fixes. + +2002-09-02 15:59 adam + + * CHANGELOG, client/client.c, include/yaz/pquery.h, zutil/pquery.c: + New PQF API. Old API preserved. + +2002-08-30 17:39 mike + + * include/yaz/oid.h: Add VAL_BIB2 and VAL_ZEEREX. We use the + existing VAL_USMARC in oid.c for the MARC attribute set rather + than defining a new and somewhat redundant VAL_MARC. We may want + to revisit that decision, though. + +2002-08-30 17:38 mike + + * util/oid.c: Add OID-database entries for the MARC, BIB-2 and + ZeeRex attribute sets. + +2002-08-30 13:28 adam + + * win/makefile: Remove EXPAT reader + +2002-08-30 13:27 adam + + * util/siconv.c: Fix warnings (issued by VC 6) + +2002-08-30 11:06 adam + + * client/client.c: Small cosmetic changes to list_all output + +2002-08-29 23:35 ja7 + + * client/client.c: added new commands set_otherinfo list_otherinfo + clear_otherinfo list_all set_autoreconect + +2002-08-29 23:26 mike + + * doc/.cvsignore, retrieval/d1_absyn.c: Nothing to get excited + about. + +2002-08-29 21:36 ja7 + + * include/yaz/proto.h, zutil/z3950oid.c: Added YAZ_EXPORT const + char* yaz_z3950_oid_value_to_str(oid_value ov, oid_class oc); + Used for gettting ui friendly names for oid_value's + +2002-08-29 21:34 ja7 + + * client/: tabcomplete.c, tabcomplete.h: Added + complete_auto_reconnect from completing for the auto_reconnect + command + +2002-08-29 18:18 mike + + * configure.in: dsssl for rh7.2 + +2002-08-29 13:14 mike + + * .cvsignore, ccl/.cvsignore, client/.cvsignore, + comstack/.cvsignore, doc/.cvsignore, ill/.cvsignore, + include/.cvsignore, include/yaz/.cvsignore, lib/.cvsignore, + odr/.cvsignore, retrieval/.cvsignore, server/.cvsignore, + tab/.cvsignore, util/.cvsignore, z39.50/.cvsignore, + zoom/.cvsignore, ztest/.cvsignore, zutil/.cvsignore: Add all my + new .cvsignore files. Life will now be less noisy. You get + bombarded with "? util/foo.lo" messages every time you do a CVS + operation over the tree. + +2002-08-29 11:58 adam + + * include/yaz/log.h, util/log.c: Added yaz_log_init_prefix2 + +2002-08-28 23:00 mike + + * configure.in: add docbook DTD path for Red Hat 7.2 + +2002-08-28 22:06 adam + + * CHANGELOG: Changes + +2002-08-28 21:34 adam + + * retrieval/d1_marc.c: Remove unused variable + +2002-08-28 21:34 adam + + * util/siconv.c: Iconv fix: Dont move inbuf pointer for bad init + sequence + +2002-08-28 21:33 adam + + * util/siconvtst.c: add missing return value + +2002-08-28 21:12 adam + + * z39.50/z.tcl: Fix prototype for z_SUTRS + +2002-08-28 21:10 adam + + * retrieval/d1_marc.c: Fix infinite loop (bug introduced by + previous commit) + +2002-08-28 14:48 adam + + * configure.in, retrieval/Makefile.am, retrieval/d1_expat.c: XML + reader removed. Now part of Zebra. + +2002-08-28 14:44 adam + + * retrieval/d1_marc.c: Fixed bug where wrong data was used for + repeating fields + +2002-08-28 10:12 adam + + * odr/odr.c: Fix: use yaz_iconv_open instead of iconv_open + +2002-08-28 09:54 adam + + * retrieval/d1_read.c: data1 uses yaz_iconv + +2002-08-28 09:53 adam + + * odr/: odr-priv.h, odr.c, odr_oct.c: ODR uses yaz_iconv + +2002-08-28 00:33 adam + + * win/makefile: siconv added + +2002-08-27 23:45 adam + + * util/: siconv.c, siconvtst.c: Mini iconv library functional. + Supports UTF-8,ISO-8859-1,UCS4,UCS4LE + +2002-08-27 16:14 adam + + * util/siconvtst.c: More work on iconv test program + +2002-08-27 16:02 adam + + * util/Makefile.am, util/siconv.c, util/siconvtst.c, + include/yaz/yaz-util.h: Simple iconv library + +2002-08-27 15:30 adam + + * README: Cosmetic change; to test CVS loginfo + +2002-08-27 15:18 adam + + * util/atoin.c: Remove dead comment + +2002-08-26 14:15 adam + + * client/client.c: Plus signs converted to spaces for database + names + +2002-08-26 12:43 adam + + * retrieval/d1_read.c: Pointer fix for amp-handling + +2002-08-26 11:25 adam + + * util/: atoin.c, oid.c: Buffer overflow fix + +2002-08-25 08:48 adam + + * zoom/zoom-c.c: Ensure that send_present doesn't use ODR if + present is not performed + +2002-08-24 11:28 oleg + + * zoom/zoom-c.c: Fix memory leaks, which corresponding with ODR out + stream. Background: when result set has created and the record + retrieve from cache that the Task Retieve to invoke + send_present(), which allocate present APDU. APDU. + +2002-08-23 16:27 adam + + * retrieval/: d1_grs.c, d1_marc.c, d1_read.c: Preserve white space + in data1. Strip in write of GRS-1,MARC,SUTRS + +2002-08-23 16:25 adam + + * retrieval/d1_write.c: Added conversions for ', & + +2002-08-23 16:24 adam + + * retrieval/d1_expat.c: Parse system entities + +2002-08-20 14:03 adam + + * CHANGELOG, TODO, debian/changelog: Towards 1.8.9 + +2002-08-20 10:19 adam + + * CHANGELOG, zoom/zoom-c.c, zoom/zoom-p.h: Use elementSetName and + syntax in record lookup in cache + +2002-08-19 23:09 adam + + * retrieval/d1_marc.c, retrieval/d1_read.c, zoom/zoom-c.c: timeout + option for ZOOM + +2002-08-17 09:56 adam + + * CHANGELOG, configure.in, debian/rules, include/yaz/data1.h, + include/yaz/yaz-version.h, retrieval/d1_absyn.c, + retrieval/d1_marc.c, server/statserv.c, win/yaz.nsi, win/yaz.rc: + Updated version. Data1 compatibility fix for nodetomarc + +2002-08-17 09:55 adam + + * doc/: client.xml, comstack.xml, frontend.xml, installation.xml, + introduction.xml: UNIX sockets + +2002-08-17 09:55 adam + + * doc/zoom.xml: Fix + +2002-08-02 10:54 adam + + * CHANGELOG, TODO, configure.in, debian/changelog, + include/yaz/yaz-version.h, win/yaz.rc: Towards 1.8.8 + +2002-08-02 10:20 adam + + * buildconf.sh, debian/changelog: debian changes + +2002-07-31 16:06 adam + + * ztest/ztest.c: Enabling ILL in test server (again) + +2002-07-31 16:06 adam + + * zoom/zoomtst7.c: Removed code that read dead pointer + +2002-07-29 22:04 adam + + * include/yaz/data1.h, retrieval/d1_handle.c, retrieval/d1_map.c, + retrieval/d1_read.c, retrieval/d1_write.c: created data1_createx + and compatibility + +2002-07-29 21:51 adam + + * zoom/zoom-c.c: record fetch method ext that returns YAZ + Z_External + +2002-07-25 16:19 adam + + * win/makefile: EXPAT support on WIN32 + +2002-07-25 15:45 adam + + * win/makefile: iconv.dll + +2002-07-25 15:20 adam + + * odr/odr-priv.h: Added private ODR header + +2002-07-25 14:52 adam + + * CHANGELOG, buildconf.sh, client/client.c, include/yaz/backend.h, + include/yaz/data1.h, retrieval/d1_absyn.c, retrieval/d1_expat.c, + retrieval/d1_grs.c, retrieval/d1_marc.c, retrieval/d1_read.c, + retrieval/d1_write.c, server/seshigh.c, win/yaz.nsi: Character + set negotiation updates + +2002-07-25 14:51 adam + + * zoom/zoom-c.c: Default timeout is 25 seconds + +2002-07-25 14:51 adam + + * include/yaz/odr.h, odr/Makefile.am, odr/ber_any.c, odr/ber_bit.c, + odr/ber_bool.c, odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, + odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, odr/dumpber.c, + odr/odr.c, odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, + odr/odr_choice.c, odr/odr_cons.c, odr/odr_enum.c, odr/odr_int.c, + odr/odr_mem.c, odr/odr_null.c, odr/odr_oct.c, odr/odr_oid.c, + odr/odr_seq.c, odr/odr_tag.c, odr/odr_use.c, odr/odr_util.c: + iconv conversions for ODR + +2002-07-25 14:50 adam + + * include/yaz/charneg.h, zutil/charneg.c: Updates to faciliate + non-private character set negotiations + +2002-07-25 14:48 adam + + * zutil/logrpn.c: Print @term + +2002-07-25 14:48 adam + + * zutil/pquery.c: Implement @term + +2002-07-23 01:16 adam + + * comstack/unix.c: Define SUN_LEN if undefined (Solaris) + +2002-07-12 15:42 adam + + * client/tabcomplete.c: Use _strnicmp on Windows + +2002-07-12 14:20 ja7 + + * client/client.c: Added new command ccl_parse which parses a ccl + find command and print the qpn query for the given ccl find + command. Changed to not coredump when retriving octet_alingned + record the client is unable to handle. now it just telles about + the error and treats the octets as sutrs. + +2002-07-12 14:11 ja7 + + * ccl/cclptree.c: changed ccl_pr_tree to print as a qpn query + instead of some infix notation + +2002-07-11 12:40 adam + + * retrieval/d1_prtree.c: XML updates for print tree + +2002-07-11 12:40 adam + + * retrieval/d1_grs.c: GRS-1 producer handles XML better + +2002-07-11 12:39 adam + + * retrieval/d1_expat.c: XML readers handles iconv for unknown + encodings + +2002-07-11 12:39 adam + + * zoom/zoom-c.c: Implement otherInfo%d setting + +2002-07-05 18:04 adam + + * include/yaz/data1.h, retrieval/d1_read.c: character conversion + +2002-07-05 14:42 adam + + * configure.in, retrieval/d1_expat.c, retrieval/d1_write.c: Keep + white space for XML (do not pretty print) + +2002-07-03 16:09 adam + + * retrieval/: d1_grs.c, d1_map.c, d1_marc.c: Changed MARC, GRS-1 + handling to cope with new structure + +2002-07-03 15:36 adam + + * comstack/unix.c, zoom/zoom-c.c: unix sockets for zoom + +2002-07-03 12:04 adam + + * include/yaz/data1.h, retrieval/d1_expat.c, retrieval/d1_read.c, + retrieval/d1_write.c: Extra root tag node for data1 + +2002-07-01 14:59 adam + + * zoom/zoom-c.c: reconnect bugfix (when receiving close PDU) + +2002-06-18 23:30 adam + + * comstack/unix.c, include/yaz/log.h, server/seshigh.c, util/log.c, + util/xmalloc.c: Fix warnings + +2002-06-18 23:30 adam + + * client/client.c: fix warnings. Indentation + +2002-06-17 16:57 ja7 + + * client/: client.c, tabcomplete.c, tabcomplete.h: Added support + for adding tab completions to any command with out a build in + completion function. add the folowing line to allow tab + completion on element set name f2locations to the elements + command + + register_tab elements f2locations + + som small clean up of the tabcompletions added completion on + filenames to the set_apdufile set_marcdump . and ! commands now + uses strncasecmp when findding stuff to complete on. eg format + xml "tabcomplets to" format XML + + Extended authentication command to allow 2 arguments and send + userid and password in the Z_IdAuthentication_idPass structure + +2002-06-12 21:47 adam + + * doc/credits.xml: Added Ko van der Sloot + +2002-06-12 21:42 adam + + * CHANGELOG, comstack/tcpip.c, util/nmem.c: Deal with Solaris recv + that returns ENOENT + +2002-06-10 13:07 adam + + * client/client.c: CCL always enabled + +2002-06-06 15:02 adam + + * ccl/Makefile.am, include/yaz/ccl.h: CCL using xmalloc/xfree + +2002-06-06 14:54 adam + + * ccl/: cclfind.c, cclqfile.c, cclqual.c, ccltoken.c: Using + xmalloc/xfree instead of malloc/free + +2002-06-05 23:11 adam + + * win/makefile: NSIS bz2 + +2002-06-05 23:10 adam + + * win/yaz.nsi: newer version + +2002-06-05 23:09 adam + + * zoom/zoomsh.c: removed unused variables + +2002-06-05 23:09 adam + + * zoom/zoomtst3.c: added include + +2002-06-04 13:36 adam + + * CHANGELOG, client/client.c, comstack/Makefile.am, + comstack/comstack.c, comstack/unix.c, include/yaz/Makefile.am, + include/yaz/unix.h: New COMSTACK: UNIX socket + +2002-06-04 10:33 adam + + * zoom/zoom-opt.c: dont return value in void + +2002-06-04 10:29 adam + + * win/makefile: ignore errors on del. + +2002-06-02 23:34 adam + + * Makefile.am, configure.in, client/client.c, lib/Makefile.am, + win/makefile: Remove --enable-module option + +2002-06-02 23:29 adam + + * client/client.c: Print more GRS-1 data types + +2002-06-02 23:28 adam + + * z39.50/datetime.asn: Update definition to use explicit tagging + for era CHOICE + +2002-06-02 23:27 adam + + * include/yaz/zoom.h, zoom/Makefile.am, zoom/zoom-c.c, + zoom/zoom-opt.c, zoom/zoom-p.h, zoom/zoomsh.c: First work on + extended packages. Reconnect capability + +2002-06-02 23:25 adam + + * zoom/zoomtst3.c: Option to start a given number of connections on + tst3 + +2002-06-02 20:54 adam + + * yaz.spec.in: Moved documentation + +2002-06-02 20:50 adam + + * doc/Makefile.am: Moved from /usr/share/yaz/doc to + /usr/share/doc/yaz + +2002-05-31 10:48 adam + + * win/: makefile, yaz.nsi: Changed SectionIns for NSIS v1.98 + +2002-05-30 22:57 adam + + * doc/: client.xml, frontend.xml: Spell fixes + +2002-05-30 22:57 adam + + * doc/tools.xml: Updated PQF grammar + +2002-05-28 23:11 adam + + * tab/: gils-usmarc.map, meta-usmarc.map: No more @-tag for MARC + +2002-05-28 23:09 adam + + * retrieval/: d1_grs.c, d1_map.c, d1_marc.c: schema mapping + supports duplicate maps (copy instead of pointer swap) + +2002-05-27 14:34 adam + + * retrieval/d1_marc.c: Fixed is_indicator + +2002-05-22 16:27 adam + + * CHANGELOG, configure.in, debian/rules, include/yaz/yaz-version.h, + win/yaz.rc: Bump version + +2002-05-22 13:34 adam + + * debian/changelog: New version + +2002-05-22 13:33 adam + + * debian/changelog: New version. + +2002-05-22 13:19 adam + + * CHANGELOG, configure.in: Towards 1.8.7 + +2002-05-22 13:19 adam + + * doc/: comstack.xml, installation.xml, zoom.xml: Spell fixes + +2002-05-21 21:39 adam + + * zoom/zoom-c.c: Fix warning + +2002-05-21 10:36 adam + + * zoom/zoomtst7.c, zoom/zoomtst8.c, zutil/charneg.c: Minor changes + to avoid warnings + +2002-05-21 09:43 adam + + * include/yaz/data1.h, retrieval/d1_expat.c, retrieval/d1_read.c, + retrieval/d1_write.c: Comment node. Extra root level for XML + parsed data1 + +2002-05-20 11:13 oleg + + * client/client.c, zoom/zoom-c.c: Fixed using random values + +2002-05-19 17:39 oleg + + * client/client.c, include/yaz/charneg.h, zoom/zoom-c.c, + zutil/charneg.c: Added second part of helper functions for + CharSetandLanguageNegotaiation-3 Model. Work with client/zoomsh. + +2002-05-18 11:52 oleg + + * client/client.c, include/yaz/Makefile.am, win/makefile, + zoom/zoom-c.c, zoom/zoom-p.h, zoom/zoomsh.c, zutil/Makefile.am: + Added support of CharacterSetandLanguageNegotiation-3 modele + (based on Z_PrivateCharacterSet_externallySpecified) at the + client side. + +2002-05-18 11:41 oleg + + * zutil/charneg.c, include/yaz/charneg.h: Helper function for + Charset and Lang Negotiation 3 + +2002-05-17 14:52 adam + + * win/yaz.rc: 1.8.7.2 + +2002-05-17 14:48 adam + + * include/yaz/zoom.h, server/statserv.c, win/makefile, + zoom/zoom-c.c, zoom/zoom-opt.c, zoom/zoom-p.h: Use __stdcall + convention for ZOOM on WIN32 + +2002-05-17 12:00 adam + + * win/yaz.rc: Minor version update + +2002-05-17 10:48 adam + + * CHANGELOG: New CCL feature + +2002-05-17 10:46 adam + + * ccl/: bib1, cclfind.c: Attributes from multifields may be OR'ed + rather than merged + +2002-05-14 15:42 oleg + + * zoom/zoom-c.c: Fixup random 'len' + +2002-05-13 20:34 adam + + * buildconf.sh, include/yaz/Makefile.am, include/yaz/yaz-version.h: + removed yaz-date.h + +2002-05-13 16:13 adam + + * CHANGELOG, buildconf.sh, configure.in, yaz-config.in, + include/yaz/data1.h, retrieval/Makefile.am, retrieval/d1_expat.c, + retrieval/d1_grs.c, retrieval/d1_prtree.c, retrieval/d1_read.c, + retrieval/d1_write.c: XML reader for data1 (EXPAT) + +2002-05-07 13:02 adam + + * include/yaz/data1.h, retrieval/d1_map.c, retrieval/d1_read.c: + data1 backwards compatibility + +2002-05-07 13:01 adam + + * server/statserv.c: server stops if bad listen address is given + +2002-05-07 13:01 adam + + * zutil/pquery.c: added include of ctype.h + +2002-05-07 13:00 adam + + * zoom/zoom-c.c: Fixed memory leak (for proxy op) + +2002-05-06 09:33 adam + + * CHANGELOG, zoom/zoom-c.c: Fixed ZOOM connect for OpenBSD + +2002-05-06 09:31 adam + + * doc/credits.xml: Added Oleg Kolobov + +2002-05-03 15:48 adam + + * client/client.c, include/yaz/data1.h, retrieval/d1_espec.c, + retrieval/d1_map.c, retrieval/d1_read.c, retrieval/d1_sutrs.c: + data1 cleanup + +2002-05-03 15:47 adam + + * configure.in: check for rl_completion_matches + +2002-05-02 12:35 adam + + * doc/: Makefile.am, id.eps, id.png, yaz.xml.in: Index Data logo + +2002-05-01 12:22 adam + + * zutil/pquery.c: Never treat @op as operator in quotes + +2002-04-25 10:34 adam + + * zutil/zget.c: fix zget of ExtendedServicesResponse + +2002-04-18 15:18 adam + + * server/seshigh.c: rename var to avoid GCC warning on OSX + +2002-04-16 15:04 heikki + + * include/yaz/log.h, util/xmalloc.c: Added log level flag + LOG_MALLOC, moved malloc entries there. Now LOG_DEBUG can again + be used for something real... + +2002-04-15 14:03 adam + + * configure.in: Fix test for rl_completion_over + +2002-04-15 13:19 adam + + * configure.in, client/client.c: Fix rl_attempted_completion_over + +2002-04-15 11:44 adam + + * asn/Makefile.am, ccl/Makefile.am, client/Makefile.am, + comstack/Makefile.am, ill/Makefile.am, odr/Makefile.am, + retrieval/Makefile.am, server/Makefile.am, util/Makefile.am, + z39.50/Makefile.am, zoom/Makefile.am, ztest/Makefile.am, + zutil/Makefile.am: Using AM_CPPFLAGS instead of INCLUDES + +2002-04-15 11:06 adam + + * retrieval/: d1_grs.c, d1_read.c, d1_write.c: Fix explain tags for + XML writer + +2002-04-14 23:27 adam + + * configure.in: add -pthread to LIBS for BSD + +2002-04-13 20:09 adam + + * client/client.c: Fix help (should not wait for network I/O) + +2002-04-12 16:40 adam + + * include/yaz/oid.h, util/oid.c: New private OID: IDXPATH + +2002-04-12 16:40 adam + + * retrieval/d1_grs.c: GRS-1 writer accepts non-abs + +2002-04-08 15:56 adam + + * doc/yaz.xml.in: Year range in copyright + +2002-04-08 13:40 adam + + * client/client.c: Fix for old readline + +2002-04-05 14:49 adam + + * util/tpath.c: Fix return value of yaz_fclose. + +2002-04-05 14:46 adam + + * include/yaz/tpath.h, retrieval/d1_handle.c, util/tpath.c: + yaz_fclose and yaz_fopen implemented + +2002-04-04 22:49 adam + + * include/yaz/data1.h, include/yaz/tpath.h, retrieval/d1_absyn.c, + retrieval/d1_attset.c, retrieval/d1_espec.c, + retrieval/d1_handle.c, retrieval/d1_map.c, retrieval/d1_marc.c, + retrieval/d1_tagset.c, retrieval/d1_varset.c, util/tpath.c: New + functions yaz_is_abspath, yaz_path_fopen_base + +2002-04-01 14:27 adam + + * CHANGELOG, ccl/bib1, util/oid.c: Fix OID for ILL + +2002-03-25 16:12 adam + + * CHANGELOG, configure.in, debian/rules, include/yaz/yaz-version.h, + win/yaz.nsi, win/yaz.rc: Towards 1.7 + +2002-03-25 12:37 adam + + * doc/installation.xml: Spell fix + +2002-03-25 12:37 adam + + * win/yaz.nsi: Service removed on uninstall/reinstall. + +2002-03-25 10:52 adam + + * CHANGELOG: Release date + +2002-03-24 17:30 adam + + * CHANGELOG: Fix changelog + +2002-03-24 17:19 adam + + * CHANGELOG, zutil/pquery.c: PQF feature: @use=value + +2002-03-24 11:14 adam + + * configure.in: Docbook autoconf for Redhat 7.2 + +2002-03-23 22:13 adam + + * doc/Makefile.am: remove make dependancy to prevent re-build on + Redhat w/o docbook + +2002-03-23 21:35 adam + + * doc/Makefile.am: Added zoom.scan.html + +2002-03-23 21:09 adam + + * Makefile.am, debian/control, debian/copyright, debian/rules: + Minor fixes for Debian build + +2002-03-23 03:03 adam + + * debian/: changelog, control, copyright, rules: Debian package + update + +2002-03-23 00:44 adam + + * lib/Makefile.am: Fix -Iinclude for SSL objects + +2002-03-22 21:53 adam + + * configure.in: Duplicate use of include in SUBDIRS + +2002-03-21 22:30 adam + + * configure.in, doc/yaz.xml.in, doc/yazhtml.dsl, + doc/yazhtml.dsl.in, doc/yazphp.dsl, doc/yazphp.dsl.in, + doc/yazprint.dsl, doc/yazprint.dsl.in: --with-dtd, --with-dsssl + +2002-03-20 15:36 adam + + * CHANGELOG, include/yaz/backend.h, server/seshigh.c: Additional + Search Info for GFS + +2002-03-20 15:35 adam + + * client/client.c: Display of USR.1:SearchResult-1 + +2002-03-19 14:48 adam + + * ztest/read-marc.c: Added include of ctype.h + +2002-03-18 22:33 adam + + * client/Makefile.am, util/marcdump.c, win/makefile, + ztest/Makefile.am, ztest/read-grs.c, ztest/read-marc.c, + ztest/ztest.c: MARC records embedded in C code for test server + +2002-03-18 22:16 garkier + + * debian/control: Ooops forgot this + +2002-03-18 22:14 garkier + + * debian/: changelog, copyright, postinst, rules: Heavy + modification of debian/rules to allow easy building of -ssl and + non-ssl versions + + Added yazrelease target to debian/rules + + Added postinst file to run ldconfig at install + + Added copyright file to make lintian whine less about missing it + +2002-03-18 19:21 adam + + * CHANGELOG: Comment about JZKit + +2002-03-18 19:14 adam + + * CHANGELOG, ccl/cclfind.c: Fixed CCL parsing of "field = - + " + +2002-03-18 19:11 adam + + * util/: marcdisp.c, marcdump.c: MARC to XML ala JZKit + +2002-03-18 13:22 adam + + * configure.in, yaz-config.in, client/Makefile.am, lib/Makefile.am, + ztest/Makefile.am, ztest/ztest.pem: Separate SSL libs for + yaz-config + +2002-03-16 18:37 adam + + * win/yaz.nsi: YAZ Runtime section (instead of yaz core) + +2002-03-16 13:48 adam + + * win/yaz.nsi: Shortcuts to start/stop service + +2002-03-16 12:58 adam + + * configure.in: Moved memdebug section + +2002-03-16 12:48 adam + + * CHANGELOG: NSIS in changelog + +2002-03-16 12:46 adam + + * buildconf.sh: buildconf.sh more verbose + +2002-03-16 12:45 adam + + * TODO, configure.in, yaz.spec, yaz.spec.in: YAZ version auto-set + in yaz.spec + +2002-03-16 12:29 adam + + * doc/: yaz.xml, yaz.xml.in: yaz.xml modified by configure + +2002-03-16 11:26 adam + + * win/makefile: Added NSIS rules (nmake nsis). + +2002-03-16 00:03 adam + + * TODO: Files that have version info in them + +2002-03-15 20:44 adam + + * win/yaz.nsi: fix for license.txt location + +2002-03-15 20:32 adam + + * win/: LICENSE.txt, yaz.nsi: NSIS script. + +2002-03-13 12:47 adam + + * CHANGELOG, ccl/cclfind.c: [no log message] + +2002-03-06 02:38 adam + + * buildconf.sh: Add yaz-date.h again + +2002-03-06 02:22 adam + + * client/client.c: help for individual commands + +2002-03-06 02:21 adam + + * doc/yaz.xml: Docbook 4.1.2. + +2002-03-06 02:21 adam + + * win/yaz.rc: Fix win version. + +2002-03-05 13:45 mike + + * doc/frontend.xml, include/yaz/backend.h, server/seshigh.c: Add + trivial support for implementation_id specified by backend. + +2002-02-28 15:28 adam + + * util/marcdump.c: MARC dump utility prints either line mode or XML + +2002-02-28 14:21 adam + + * CHANGELOG, buildconf.sh, doc/yazhtml.xsl, include/yaz/marcdisp.h, + include/yaz/wrbuf.h, lib/Makefile.am, util/marcdisp.c, + zoom/zoom-c.c, zoom/zoomtst5.c: MARC to XML conversion + +2002-02-24 13:24 adam + + * client/: client.c, tabcomplete.c: Removed C++ comment and empty + statements/declarations + +2002-02-24 13:23 adam + + * doc/: client.xml, comstack.xml, credits.xml, tools.xml, + yazhtml.xsl: Fixed a few entities + +2002-02-20 15:52 adam + + * CHANGELOG: More info about decoding bug. + +2002-02-20 15:47 adam + + * configure.in: --disable-memdebug works + +2002-02-20 15:42 adam + + * CHANGELOG, odr/odr_choice.c: Fixed BER decoding of OPTIONAL + CHOICE + +2002-02-20 15:42 adam + + * configure.in: Added--enable-memdebug + +2002-02-20 15:41 adam + + * client/client.c: Using printf instead of putchar + +2002-02-20 15:40 adam + + * zoom/: zoomsh.c, zoomtst3.c, zoomtst5.c, zoomtst6.c, zoomtst7.c: + Use printf instead of putchar + +2002-02-19 21:02 adam + + * comstack/tcpip.c: Ignore SIGPIPE on systems that cannot prevent + signal on send (Solaris) + +2002-02-18 13:57 adam + + * doc/credits.xml: No MARC decode of MAB (Stefan Lohrum) + +2002-02-18 13:54 adam + + * client/client.c: Avoid MARC decoding of MAB. + +2002-02-12 22:12 adam + + * client/client.c: Client prints new init options + +2002-02-12 22:11 adam + + * z39.50/: Makefile.am, z.tcl: Fixes for C++ reserved words + +2002-02-12 16:59 adam + + * win/makefile: added z-charneg.obj + +2002-02-12 00:25 adam + + * CHANGELOG, yaz.spec, debian/rules, doc/credits.xml, doc/yaz.xml, + include/yaz/Makefile.am, include/yaz/oid.h, include/yaz/proto.h, + include/yaz/prt-ext.h, include/yaz/yaz-version.h, util/oid.c, + win/makefile, win/yaz.rc, z39.50/Makefile.am, + z39.50/charneg-3.asn, z39.50/prt-ext.c, z39.50/z.tcl, + z39.50/z3950v3.asn, zutil/otherinfo.c, zutil/zget.c: Rustam's + patch + +2002-02-04 22:05 adam + + * doc/client.xml: About Jacobs new commands + +2002-02-04 22:04 adam + + * doc/license.xml: It's 2002 + +2002-02-03 10:04 adam + + * client/Makefile.am: Added tabcomplete.h to SOURCES + +2002-02-03 09:44 adam + + * CHANGELOG: Release info. + +2002-02-02 00:59 adam + + * client/client.c: Fix memory leak. Disable readline for non-tty + +2002-02-01 15:59 adam + + * CHANGELOG: Changes. + +2002-02-01 15:50 adam + + * util/marcdisp.c: MARC fix for Danmarc. + +2002-01-30 23:02 adam + + * client/client.c, client/tabcomplete.c, win/makefile: WIN32 + updates for YAZ client. + +2002-01-30 17:58 adam + + * CHANGELOG: Changes. + +2002-01-30 15:51 adam + + * client/: client.c, tabcomplete.c, tabcomplete.h: YAZ client + features: Command completion and new commands: push_command, + set_apdufile, set_marcdump, set_cclfields, register_oid. CCVS: + ---------------------------------------------------------------------- + +2002-01-29 21:17 ja7 + + * client/: Makefile.am, client.c, tabcomplete.c, tabcomplete.h: + Changed to flush apdu and marc log files a apdu is recived. + Changed to remove blanks at end of commandline. + + Added source of $HOME/.yazclientrc and ./yazclientrc on startup + added the folowing commands push_command - adds the rest of + the line to set_apdufile - change apdu logfile from + commandline set_marcdump - change marcdump file form + commandline set_cclfields - change Ccl2rpn config file + register_oid - regristrate a private oid Cleandup the + tabcompletion and when it compleates on filenames. added + completions for the follwing commands push_command format + schema attributeset querytype + + new pr. command completion is placed in tabcomplete.[ch] + + Current problems: - the tabcompleation code is leaking - not + mutch bot leaking. + + Added emacs local versiables comment for tabs config to client.c + +2002-01-29 14:47 adam + + * CHANGELOG, include/yaz/oid.h, util/oid.c: New call oid_trav. + +2002-01-28 10:27 adam + + * CHANGELOG, doc/zoom.xml, include/yaz/zoom.h, zoom/zoom-c.c, + zoom/zoom-opt.c: ZOOM_record_get returns const char pointer + instead of void. C++ compile. + +2002-01-28 10:26 adam + + * server/statserv.c: SR protocol no longer supported. + +2002-01-28 10:26 adam + + * ztest/ztest.c, zutil/z3950oid.c: C++ compile. + +2002-01-28 10:25 adam + + * client/client.c: IdPass authentication. + +2002-01-28 10:25 adam + + * doc/client.xml: Added documentation about source (.) and system + (!) commands. + +2002-01-26 21:58 adam + + * CHANGELOG: More changes. CHCVS: + ---------------------------------------------------------------------- + +2002-01-26 21:50 adam + + * util/oid.c: Fix raw attribute sets (bug introduced by previous + commit). + +2002-01-26 20:20 adam + + * retrieval/d1_prtree.c: Function data1_pr_tree prints XML + attributes. + +2002-01-25 14:38 adam + + * doc/credits.xml: Added Hans van Dalen. + +2002-01-24 20:33 adam + + * zoom/zoom-c.c: Fix memory leak for MARC record management. + +2002-01-23 23:40 adam + + * client/client.c, server/seshigh.c, ztest/ztest.c: Retrieval of + post script files. -k option for client. + +2002-01-23 22:13 adam + + * CHANGELOG, server/seshigh.c: More fixes for scan. Non-zero + stepSize handled. OID's fixes. + +2002-01-23 21:25 adam + + * CHANGELOG, zutil/pquery.c: Function p_query_rpn returns 0 for + unknown attribute set. + +2002-01-23 21:22 adam + + * util/oid.c: Name "GILS" is an attribute set (again). + +2002-01-22 11:56 adam + + * doc/credits.xml: Added Shigeru Ishida. + +2002-01-22 11:54 adam + + * CHANGELOG, server/seshigh.c, util/marcdisp.c, zutil/logrpn.c: + MARC decode fix. Attribute set fix for scan in server. Prox + logging. + +2002-01-21 22:50 adam + + * CHANGELOG, comstack/tcpip.c, zoom/zoom-c.c: SSL/COMSTACK updates. + cs_rcvconnect completes SSL handshake. + +2002-01-21 13:54 adam + + * client/client.c, ztest/ztest.c: More example code to handle + Extended Services Update. + +2002-01-18 00:22 adam + + * ztest/ztest.c: More (dummy) response for Item Order. + +2002-01-17 22:04 adam + + * configure.in, client/admin.c: Added check for fnmatch.h. + +2002-01-17 22:04 adam + + * ztest/ztest.c: Reports Database unavailable unless "Default" is + specified. + +2002-01-17 22:03 adam + + * server/seshigh.c: More diagnostics in log. + +2002-01-11 21:26 adam + + * CHANGELOG, configure.in: Option --with-openssl now works when + directory is specified. + +2002-01-11 21:17 adam + + * CHANGELOG, configure.in, yaz.spec, client/client.c, debian/rules, + include/yaz/yaz-version.h, win/yaz.rc: Towards 1.8.5. Option -u + for YAZ client. + +2002-01-11 21:16 adam + + * doc/: client.xml, yaz.xml: YAZ client documenation updates. + +2002-01-09 13:44 adam + + * CHANGELOG, zoom/zoom-c.c: ZOOM fix: fatal errors aren't reset. + +2002-01-09 12:03 adam + + * CHANGELOG, zoom/zoom-c.c: ZOOM_record_get returns ISO2709 buffer + when "raw" is given. + +2002-01-04 00:14 adam + + * debian/changelog: Fix date. + +2002-01-03 23:44 adam + + * CHANGELOG: Date change. + +2002-01-03 23:41 adam + + * README, debian/changelog: Minor. + +2002-01-03 23:38 adam + + * CHANGELOG: Spell fix. + +2002-01-03 13:18 adam + + * doc/zoom.xml, include/yaz/zoom.h, zoom/zoom-c.c, zoom/zoom-opt.c, + zoom/zoomtst8.c: More options handling for scan. + +2002-01-03 13:09 adam + + * win/yaz.rc: New copyright. + +2002-01-03 11:23 adam + + * zoom/zoom-c.c: WIN32 fixes. + +2002-01-03 11:23 adam + + * util/log.c: Using _vsnprintf on WIN32. + +2002-01-02 11:30 adam + + * CHANGELOG, LICENSE, doc/yaz.xml, doc/zoom.xml, + include/yaz/zoom.h, zoom/zoom-c.c: More on scansets. + +2001-12-30 23:21 adam + + * CHANGELOG, include/yaz/zoom.h, win/makefile, zoom/Makefile.am, + zoom/zoom-c.c, zoom/zoom-p.h, zoom/zoomtst3.c, zoom/zoomtst5.c, + zoom/zoomtst7.c, zoom/zoomtst8.c: Scan for ZOOM. + +2001-11-30 09:24 adam + + * CHANGELOG, doc/zoom.xml, zoom/zoom-c.c, zoom/zoomtst4.c: New ZOOM + option schema. + +2001-11-29 00:00 adam + + * zoom/: zoom-c.c, zoom-p.h, zoomtst6.c: ZOOM Task structure + includes start and count for retrieval. + +2001-11-27 23:38 adam + + * CHANGELOG, ccl/bib1, ccl/cclerrms.c, ccl/cclfind.c, + ccl/cclptree.c, ccl/cclqfile.c, ccl/cclqual.c, ccl/cclsh.c, + ccl/cclstr.c, ccl/ccltoken.c, include/yaz/ccl.h: CCL qualifier + aliases (use OR for more than one qualifier). + +2001-11-27 23:12 adam + + * doc/: client.xml, frontend.xml: Fix and remove OSI reference. + +2001-11-22 12:04 adam + + * client/client.c: Fixed dup display of records (bug introduced by + previous commit). + +2001-11-22 10:45 adam + + * CHANGELOG, doc/zoom.xml, zoom/zoom-c.c, zoom/zoom-p.h, + zoom/zoomtst4.c: Implemented named result sets handling for ZOOM. + +2001-11-22 10:45 adam + + * server/seshigh.c: More verbose server. + +2001-11-21 12:13 adam + + * CHANGELOG, client/client.c: New client commands: . (to source YAZ + client commands) and ! (to execute shell command). + +2001-11-20 11:52 adam + + * CHANGELOG: Fixed changes. + +2001-11-20 10:25 adam + + * CHANGELOG, Makefile.am, debian/changelog: Debian build script + part of make dist. + +2001-11-19 21:43 adam + + * CHANGELOG, README, configure.in, yaz.spec, debian/rules, + doc/yaz.xml, include/yaz/yaz-version.h, lib/Makefile.am, + win/yaz.rc: No "copy" of source for thread/malloc libraries. + +2001-11-19 15:06 adam + + * doc/: client.xml, frontend.xml: More about authentication. Remove + SR references. + +2001-11-19 10:17 adam + + * CHANGELOG: changes. + +2001-11-19 10:16 adam + + * CHANGELOG, lib/Makefile.am, ztest/Makefile.am: Using AM_CFLAGS + instead of CFLAGS. 1.8.3 closer. + +2001-11-19 00:17 adam + + * CHANGELOG, client/client.c: YAZ client uses setnames only if + target supports it. + +2001-11-18 22:14 adam + + * CHANGELOG, configure.in, yaz.spec, debian/rules, + doc/installation.xml, doc/zoom.xml, include/yaz/yaz-version.h, + include/yaz/zoom.h, win/yaz.rc, zoom/zoom-c.c, zoom/zoom-opt.c, + zoom/zoom-p.h, zoom/zoomsh.c, zoom/zoomtst1.c, zoom/zoomtst2.c, + zoom/zoomtst3.c, zoom/zoomtst4.c, zoom/zoomtst5.c, + zoom/zoomtst6.c, zoom/zoomtst7.c: Prefix ZOOM_ instead of Z3950_. + Documentation updates. + +2001-11-18 22:05 adam + + * util/nmem.c: nmem revert fix: Set nmem_init_flag=0. + +2001-11-16 11:18 adam + + * zoom/: zoom-c.c, zoomsh.c: Fix: Remove new-lines from commands in + ZOOM shell. + +2001-11-16 10:52 adam + + * CHANGELOG, doc/zoom.xml, include/yaz/zoom.h, zoom/zoom-c.c, + zoom/zoomsh.c, zoom/zoomtst4.c, zoom/zoomtst5.c, zoom/zoomtst6.c: + Removed Z3950_connection_host. + +2001-11-15 22:59 adam + + * zoom/: zoom-c.c, zoomtst6.c: Client prevents "present request out + of range". + +2001-11-15 22:58 adam + + * doc/zoom.xml: More about ZOOM options. + +2001-11-15 22:44 adam + + * util/nmem.c: Removed log .. + +2001-11-15 14:16 adam + + * include/yaz/zoom.h, zoom/zoom-c.c, zoom/zoomtst2.c: ZOOM: + Separate get/set for dealing with options. + +2001-11-15 10:16 adam + + * CHANGELOG: More thanks. + +2001-11-15 09:58 adam + + * CHANGELOG, doc/zoom.xml, include/yaz/zoom.h, zoom/zoom-c.c, + zoom/zoomsh.c, zoom/zoomtst3.c, zoom/zoomtst5.c, zoom/zoomtst6.c, + zoom/zoomtst7.c: ZOOM: record objects "owned" by result sets. + Added Z3950_record_dup. + +2001-11-14 00:00 adam + + * configure.in, yaz-config.in, yaz.spec, client/admin.c, + client/client.c, debian/rules, doc/credits.xml, doc/yaz.xml, + doc/zoom.xml, include/yaz/prt-ext.h, lib/Makefile.am, + server/service.c, server/seshigh.c, server/statserv.c, + util/nmem.c, util/xmalloc.c, z39.50/prt-ext.c, ztest/ztest.c, + zutil/logrpn.c, zutil/pquery.c, zutil/query.c, zutil/sortspec.c, + zutil/yaz-ccl.c: Separate malloc debug library. Removal of + ASN_COMPILED-#ifdefs. + +2001-11-13 23:57 adam + + * zoom/: zoom-c.c, zoom-p.h, zoomtst1.c, zoomtst7.c: More work on + event queues. *_option returns new value (not previous). + +2001-11-12 13:04 adam + + * CHANGELOG: 1.8.2. + +2001-11-12 12:55 adam + + * doc/Makefile.am: Fixed html dependancy. + +2001-11-12 12:27 adam + + * CHANGELOG, configure.in, yaz.spec, debian/rules, win/yaz.rc, + include/yaz/yaz-version.h: Towards 1.8.2. + +2001-11-12 12:24 adam + + * ccl/cclfind.c: Ignore comma when dealing with and-lists. + +2001-11-12 11:41 adam + + * CHANGELOG: Minor. + +2001-11-11 23:25 adam + + * doc/zoom.xml, zoom/zoom-c.c, zoom/zoomtst7.c: Protocol behavior + sections. record_get raw returning Z External *. + +2001-11-08 13:36 adam + + * doc/installation.xml: More installation info. + +2001-11-06 18:05 adam + + * CHANGELOG, doc/yaz.xml, doc/zoom.xml, include/yaz/zoom.h, + util/xmalloc.c, zoom/zoom-c.c, zoom/zoom-p.h, zoom/zoomsh.c, + zoom/zoomtst4.c, zoom/zoomtst5.c, zoom/zoomtst6.c, + zoom/zoomtst7.c: ZOOM changes. + +2001-11-06 18:04 adam + + * doc/comstack.xml: Mentions SSL and cs_create_host. Remove stuff + about XTImOSI. + +2001-11-06 18:03 adam + + * buildconf.sh: More verbose. + +2001-11-06 18:03 adam + + * doc/credits.xml: Updated credits list. + +2001-11-06 18:01 adam + + * comstack/tcpip.c: System call getprotobyname no longer used. + +2001-11-01 15:30 adam + + * doc/: Makefile.am, credits.xml, yaz.xml: Added Credits Appendix. + +2001-10-29 15:51 adam + + * doc/Makefile.am: No rule to make yaz.tex. + +2001-10-29 15:50 adam + + * doc/Makefile.am: Minor change. + +2001-10-29 15:05 adam + + * doc/Makefile.am: Fix xml.dcl in Makefile + +2001-10-29 14:57 adam + + * doc/Makefile.am: Added *.dsl files for DEST_DIR. + +2001-10-29 10:17 adam + + * CHANGELOG, client/client.c, include/yaz/marcdisp.h, + util/marcdisp.c, ztest/ztest.c: New function marc_display_exl - + used by YAZ client. Server returns bad record on position 98 (for + testing). + +2001-10-29 10:16 adam + + * include/yaz/oid.h: Added comments to better track OID values. + +2001-10-29 00:44 adam + + * CHANGELOG, doc/Makefile.am: New changelog. + +2001-10-29 00:28 adam + + * win/makefile: Enable CCL-to-RPN for YAZ client on WIN32. + +2001-10-29 00:10 adam + + * configure.in, yaz.spec, client/default.bib, debian/rules, + include/yaz/yaz-version.h, win/yaz.rc, zutil/pquery.c: Fix local + attribute setting for pquery. + +2001-10-26 22:13 adam + + * doc/: asn.xml, client.xml, comstack.xml, frontend.xml, + future.xml, indexdata.xml, installation.xml, introduction.xml, + license.xml, odr.xml, tools.xml, yaz.xml, zoom.xml: Indentation. + Variable sgml-local-catalogs set to nil. + +2001-10-25 15:04 adam + + * CHANGELOG: Changes to CHANGELOG. + +2001-10-25 14:46 adam + + * win/makefile: codecs not built as they should. + +2001-10-25 14:33 adam + + * win/yaz.rc: WIN version 1.8.0.0. + +2001-10-25 14:29 adam + + * README: Minor changes. + +2001-10-25 14:28 adam + + * README: Smaller README. + +2001-10-25 14:00 adam + + * configure.in, yaz.spec, debian/rules, include/yaz/yaz-version.h: + Version 1.8. + +2001-10-25 13:55 adam + + * doc/: asn.xml, yaz.xml: Renamed ASN.1 Module to Z39.50 ASN.1 + module. + +2001-10-25 12:45 adam + + * win/makefile: Fixed make clean. + +2001-10-24 23:35 adam + + * zoom/zoomtst4.c: Added include of string.h. + +2001-10-24 23:30 adam + + * doc/installation.xml: More info about UNIX/WIN32 installation. + +2001-10-24 23:24 quinn + + * doc/: introduction.xml, zoom.xml: Various changes + +2001-10-24 22:33 adam + + * doc/Makefile.am: Fix. + +2001-10-24 22:27 adam + + * doc/Makefile.am: Fix for DIST files. + +2001-10-24 22:25 adam + + * doc/Makefile.am: Added unix.html. + +2001-10-24 22:12 adam + + * doc/: asn.xml, client.xml, frontend.xml, future.xml, + installation.xml, introduction.xml, odr.xml, tools.xml, yaz.xml, + zoom.xml: Typos. Better introduction, really. Other, minor, + updates. + +2001-10-24 22:11 adam + + * util/oid.c: Removed SR OID's. + +2001-10-24 14:50 adam + + * doc/: Makefile.am, installation.xml, tools.xml: Typos. Configure + options. nmem_init/nmem_exit deal.. + +2001-10-24 14:24 adam + + * client/client.c, include/yaz/zoom.h, server/statserv.c, + util/nmem.c, win/makefile, win/yaz.rc, zoom/zoom-c.c, + zoom/zoom-p.h, zoom/zoomsh.c, zoom/zoomtst3.c, zoom/zoomtst5.c, + zoom/zoomtst6.c, zoom/zoomtst7.c: WIN32 updates: ZOOM runs, + nmem_init/nmem_exit called in DllMain. + +2001-10-24 11:27 adam + + * doc/: Makefile.am, asn.xml, client.xml, comstack.xml, + frontend.xml, future.xml, indexdata.xml, installation.xml, + introduction.xml, license.xml, odr.xml, tools.xml, yaz.xml, + yazhtml.dsl, yazphp.dsl, zoom.xml: More ZOOM documentation. XML + Docbook is now part of "make dist". + +2001-10-24 00:44 adam + + * buildconf.sh: Minor change again. + +2001-10-24 00:39 adam + + * buildconf.sh: Minor corrections. + +2001-10-23 23:00 adam + + * CHANGELOG, Makefile.am, README, buildconf.sh, configure.in, + yaz.spec, doc/Makefile.am, doc/yaz.xml, doc/zoom.xml, + include/yaz/Makefile.am, include/yaz/proto.h, + include/yaz/wrbuf.h, include/yaz/z-proto.h, include/yaz/zoom.h, + lib/Makefile.am, util/marcdisp.c, z39.50/Makefile.am, + z39.50/prt-ext.c, zoom/Makefile.am, zoom/zoom-c.c, + zoom/zoom-opt.c, zoom/zoom-p.h, zoom/zoomsh.c, zoom/zoomtst1.c, + zoom/zoomtst2.c, zoom/zoomtst3.c, zoom/zoomtst4.c, + zoom/zoomtst5.c, zoom/zoomtst6.c, zoom/zoomtst7.c, + zutil/Makefile.am, zutil/prt-ext.c: Old Z39.50 codecs gone. Added + ZOOM. WRBUF MARC display util. + +2001-10-22 18:00 adam + + * CHANGELOG, comstack/tcpip.c, include/yaz/comstack.h: Renamed + states for COMSTACKs to avoid confusion with events. + +2001-10-22 16:03 adam + + * CHANGELOG: Added stuff about cs_look / cs_rcvconnect. + +2001-10-22 15:57 adam + + * comstack/comstack.c, comstack/tcpip.c, doc/yaz.xml, + doc/yazhtml.dsl, doc/yazphp.dsl, doc/yazprint.dsl, + include/yaz/comstack.h: Implemented cs_rcvconnect and cs_look as + described in the documentation. + +2001-10-15 22:37 adam + + * yaz-config.in: Fix for --libs when pthread was selected on + OpenBSD. + +2001-10-15 21:36 adam + + * include/yaz/wrbuf.h, util/marcdisp.c: New function + marc_display_wrbuf. + +2001-10-12 23:49 adam + + * comstack/tcpip.c, CHANGELOG: For accept/recv/send check for + EAGAIN if it's differs from EWOULDBLOCK. + +2001-10-09 11:17 adam + + * win/yaz.rc: WIN version 1.7.0.11. + +2001-10-06 10:17 adam + + * CHANGELOG: Changes. + +2001-10-06 10:16 adam + + * configure.in, ztest/Makefile.am: Configure detects POSIX Threads + on OpenBSD (and others, perhaps). + +2001-10-05 16:43 adam + + * server/: eventl.c, seshigh.c, statserv.c: Implementation name + GFS/YAZ instead of GFS. + +2001-10-05 15:55 adam + + * configure.in, yaz-config.in, lib/Makefile.am, server/eventl.c, + server/statserv.c, util/nmem.c, ztest/Makefile.am: Added defines + YAZ_GNU_THREADS, YAZ_POSIX_THREADS in code and yaz-config + +2001-10-05 10:17 adam + + * win/yaz.rc: Updated WIN version. + +2001-10-04 02:37 adam + + * configure.in, server/statserv.c, util/nmem.c: Fixes for GNU + threads (not working yet). + +2001-10-04 01:55 adam + + * configure.in, lib/Makefile.am, server/statserv.c, util/nmem.c: + GNU threads support. + +2001-10-04 01:54 adam + + * ccl/: cclfind.c, cclsh.c, ccltoken.c: Fixes for numeric ranges + (date=1980-1990). + +2001-09-30 22:15 adam + + * retrieval/d1_espec.c: Bug fix: reading bad tag units could crash + the library (espec). + +2001-09-30 22:10 adam + + * util/xmalloc.c: TRACE_MALLOC=1. + +2001-09-28 16:50 adam + + * retrieval/d1_espec.c: Simpleelement allows upper case (as well as + lower case). + +2001-09-28 12:42 adam + + * yaz-config.in: Bug fix: yaz-config print yazpthread when threads + are unavailable. + +2001-09-27 14:09 adam + + * util/nmem.c, util/oid.c, win/makefile, win/yaz.rc: Function + nmem_exit calls oid_exit (when reference is 0). + +2001-09-26 09:37 adam + + * debian/changelog: Update debian changelog. + +2001-09-25 09:35 adam + + * zutil/z3950oid.c: New Z39.50 OID utilities. + +2001-09-24 23:51 adam + + * asn/prt-proto.h, include/yaz/odr.h, include/yaz/yaz-version.h, + include/yaz/z-proto.h, odr/odr_util.c, server/seshigh.c, + util/oid.c, util/xmalloc.c, win/makefile, zutil/Makefile.am, + zutil/otherinfo.c, zutil/pquery.c, zutil/prt-ext.c, + zutil/sortspec.c, zutil/yaz-ccl.c: New Z39.50 OID utilities: + yaz_oidval_to_z3950oid, yaz_str_to_z3950oid and + yaz_z3950oid_to_str. + +2001-09-24 23:48 adam + + * zutil/zget.c: Setting v1,v2,search and present options for init + request. + +2001-09-24 23:47 adam + + * debian/: changelog, control, control.templ, copyright, postinst, + prerm, rules, shlibs: Added Morten Garkier Hendriksens Debian + build rules. + +2001-09-19 12:19 adam + + * CHANGELOG, include/yaz/z-proto.h: Z_SortCase_caseInsensitive was + set to wrong value. + +2001-09-14 12:51 adam + + * win/yaz.rc: WIN version 1.7.0.8. + +2001-09-14 12:49 adam + + * ccl/cclqfile.c: Bug fix: file wasn't closed in ccl_qual_fname. + +2001-09-11 14:44 adam + + * util/cvs-date.tcl: Fix. + +2001-09-11 14:43 adam + + * util/cvs-date.tcl: Extra new-line for yaz-date.h. + +2001-08-23 11:12 adam + + * doc/asn.xml: Setting relative width for ASN/PDU tables. + +2001-08-23 11:02 adam + + * comstack/tcpip.c, util/log.c: WIN32 fixes: Socket not re-used for + bind. yaz_log logs WIN32 error message. + +2001-08-14 14:34 adam + + * win/yaz.rc: Updated resoruce for YAZ version. + +2001-08-14 14:05 adam + + * win/makefile: Added sortspec. + +2001-08-14 13:50 adam + + * doc/: yazhtml.dsl, yazphp.dsl, yazprint.dsl: Index Data web + stylesheet works. + +2001-08-13 11:42 adam + + * doc/: asn.xml, client.xml, comstack.xml, frontend.xml, + future.xml, indexdata.xml, introduction.xml, odr.xml, tools.xml: + Spell fixes. + +2001-08-10 14:50 adam + + * zutil/sortspec.c: Fixed bug where sort flags a and d was + reversed. + +2001-08-08 21:35 adam + + * client/client.c, include/yaz/Makefile.am, include/yaz/sortspec.h, + zutil/Makefile.am, zutil/sortspec.c: Implemented utility + yaz_sort_spec. + +2001-08-08 21:33 adam + + * doc/: Makefile.am, asn.xml, client.xml, tools.xml, yaz.xml: Added + chapter about YAZ client. + +2001-08-06 22:22 adam + + * client/client.c: Client doesn't set VAL_PROXY otherinfo unless -p + is specified. + +2001-07-20 23:34 adam + + * doc/: Makefile.am, asn.xml, frontend.xml, indexdata.xml, odr.xml, + tools.xml: Fixed minor typos. Converted PDU tables. + +2001-07-20 23:33 adam + + * doc/: yazhtml.dsl, yazphp.dsl, yazprint.dsl: Cleanup of + stylesheets. Changed path to docbook.dsl. + +2001-07-20 23:31 adam + + * doc/yaz.xml: Added oslash latin-1 identity (to fix the standard + one). + +2001-07-20 01:29 adam + + * doc/: asn.xml, comstack.xml, frontend.xml, future.xml, + indexdata.xml, installation.xml, introduction.xml, license.xml, + odr.xml, tools.xml, yaz.xml: Emacs indent of XML-documentation. + Only minor changes in contents. + +2001-07-19 21:51 adam + + * client/admin.c, client/client.c, server/requestq.c, + server/seshigh.c, server/session.h, util/nmem.c, ztest/ztest.c: + Added typecasts to make C++ happy. + +2001-07-19 21:49 adam + + * comstack/tcpip.c: Fixed bug in tcpip_set_blocking. + +2001-07-19 21:49 adam + + * comstack/comstack.c: Added include of string.h. + +2001-07-19 21:14 adam + + * zutil/pquery.c: C++ compile. + +2001-07-19 18:53 adam + + * doc/asn.xml: More PDU tables updated. + +2001-07-19 14:46 adam + + * doc/: Makefile.am, asn.xml, frontend.xml, yaz.xml, yazhtml.dsl, + yazphp.dsl, yazprint.dsl: Updates to manual. Separate PHP + stylesheet. + +2001-07-04 22:13 ja7 + + * client/client.c: Added new commend "proxy" for ysing a yaz-proxy + to connect to the target Added new command line option -p for + setting the proxy host + +2001-06-28 14:42 adam + + * include/yaz/ccl.h: Added prototype for ccl_qual_add_special. + +2001-06-28 11:27 adam + + * ztest/ztest.c: Number of Extended Services Requests logged. + +2001-06-28 11:27 adam + + * server/statserv.c: Number of started sessions logged. + +2001-06-26 16:11 adam + + * include/yaz/nmem.h, util/nmem.c, util/oid.c: Added MUTEX + functions for NMEM module (used by OID utility). + +2001-06-26 15:03 adam + + * odr/ber_oct.c: Bug fix: introduced by previous commit. + +2001-06-26 14:14 adam + + * odr/ber_oct.c: When BER decoding a null byte is appended to the + OCTET buffer. + +2001-06-13 22:47 adam + + * CHANGELOG, debian/changelog, debian/rules, server/seshigh.c: When + error is returned from present handler, non-surrogate diagnostic + is returned in present response (and fetch handler is no longer + called). + +2001-06-11 14:54 heikki + + * client/client.c: Displayng diags in EsResponse, even if they + should not be there... + +2001-05-28 15:15 adam + + * debian/prerm: Added missing file. + +2001-05-28 14:44 adam + + * debian/: changelog, control, copyright, postinst, rules, shlibs: + Added Debian package build. + +2001-05-18 13:42 adam + + * include/yaz/yaz-version.h, win/makefile, win/yaz.rc, + zutil/zget.c: YAZ Build date for WIN32. + +2001-05-17 16:16 adam + + * include/yaz/prt-ext.h, include/yaz/z-proto.h, util/cvs-date.tcl, + zutil/prt-ext.c, zutil/zget.c: Added EXTERNAL handling for item + update0 (1.0). + +2001-05-16 09:37 adam + + * CHANGELOG, buildconf.sh, configure.in, include/yaz/Makefile.am, + include/yaz/yaz-version.h, util/Makefile.am, util/cvs-date.tcl: + Added script cvs-date.tcl that determines last CVS change for YAZ + by using output of 'cvs log'. The script generates + include/yaz/yaz-date.h which defines YAZ_DATE - format YYYYMMDD. + +2001-05-16 09:30 adam + + * ccl/: cclqfile.c, cclsh.c: Minor cosmetic changes that makes + checker gcc happier. + +2001-05-16 09:27 adam + + * client/client.c: Reference id set for InitRequest. + +2001-05-16 09:25 adam + + * util/oid.c: Modified oid_ent_to_oid so that if proto is general, + then class is ignored (only oid value is compared). + +2001-05-16 09:22 adam + + * zutil/zget.c: YAZ CVS Date part of implementationVersion in + init{request,Response}. + +2001-05-16 09:21 adam + + * server/seshigh.c: Accept any OID for record syntax. + +2001-05-10 01:31 adam + + * zutil/: pquery.c, yaz-ccl.c: String attribute values for PQF. + Proper C-backslash escaping for PQF. + +2001-05-07 14:01 adam + + * lib/Makefile.am: Removed dup CCL lib. + +2001-04-22 14:26 ja7 + + * client/client.c: if Compiled with Command line history a open + command is pushed into the command history if yaz-client is + startet with a server on the command line. eg yaz-clinet + tcp:server:port/database hash the commend open + tcp:server:port/database in the command history on startup + + Added the refid set with setrefid to the update APDU + +2001-04-06 14:26 adam + + * README, configure.in, client/Makefile.am, client/client.c, + include/yaz/marcdisp.h, include/yaz/yaz-util.h, ztest/ztest.c: + Optional CCL module. Moved atoi_n to marcdisp.h from yaz-util.h. + +2001-04-05 15:34 adam + + * lib/Makefile.am, server/Makefile.am: Minor changes. + +2001-04-05 15:08 adam + + * configure.in, yaz-config.in, yaz.spec, ccl/Makefile.am, + client/client.c, ill/Makefile.am, lib/Makefile.am, + z39.50/Makefile.am, ztest/ztest.c: New configure options: + --enable-module. + +2001-04-02 15:58 adam + + * win/resource.h: Added this. + +2001-03-29 13:47 adam + + * win/yaz.rc: WIN version 1.7.0.5. + +2001-03-28 01:06 adam + + * retrieval/d1_read.c: Quotes and slashes may occur within + attributes. + +2001-03-27 16:48 adam + + * client/client.c: Fixed scan for bad CCL. + +2001-03-26 16:42 adam + + * yaz.m4: looking for YAZ source in srcdir/../yaz + +2001-03-25 23:55 adam + + * client/client.c, ill/ill-get.c, include/yaz/backend.h, + include/yaz/nmem.h, include/yaz/odr.h, odr/odr_mem.c, + server/seshigh.c, server/statserv.c, util/nmemsdup.c, + ztest/read-grs.c, ztest/ztest.c, zutil/prt-ext.c, zutil/zget.c: + Added odr_intdup. Ztest server returns TaskPackage for + ItemUpdate. + +2001-03-25 23:54 adam + + * doc/Makefile.am: Update for build in any directory. + +2001-03-23 14:21 adam + + * win/yaz.rc: New WIN version. + +2001-03-22 22:23 adam + + * ccl/: bib1, cclfind.c: Directive s=pw sets structure to phrase if + term includes blank(s). + +2001-03-22 17:09 adam + + * win/yaz.rc: WIN version 1.7.0.3. + +2001-03-21 16:02 adam + + * asn/Makefile.am, ccl/Makefile.am, client/Makefile.am, + comstack/Makefile.am, ill/Makefile.am, odr/Makefile.am, + retrieval/Makefile.am, util/Makefile.am, z39.50/Makefile.am, + ztest/Makefile.am, zutil/Makefile.am: More fixes for make where + sourcedir and builddir are different. + +2001-03-21 13:43 adam + + * configure.in, client/client.c, comstack/comstack.c, + comstack/tcpip.c, include/yaz/comstack.h, server/statserv.c: + Implemented cs_create_host. Better error reporting for SSL + comstack. + +2001-03-20 16:58 adam + + * configure.in, yaz-config.in: Improved yaz-config for build in any + place. + +2001-03-20 12:22 adam + + * CHANGELOG, ccl/bib1, ccl/cclfind.c: CCL Truncation character may + be defined. + +2001-03-19 22:30 adam + + * ccl/Makefile.am, client/Makefile.am: Added bib1 and default.bib. + +2001-03-18 21:45 ja7 + + * ccl/: Makefile.am, cclsh.c: Added readline and history support to + cclsh + +2001-03-13 19:11 adam + + * CHANGELOG, README, zutil/zget.c: Altered + zget_ExtendedServicesRequest - sets waitAction to waitIfPossible. + +2001-03-13 19:10 adam + + * client/client.c: Added option -c to set CCL config file. + +2001-03-13 19:10 adam + + * header.c: Updated. + +2001-03-12 15:40 adam + + * ztest/ztest.c: Minor change of print of item update info. + +2001-03-09 15:58 adam + + * win/: makefile, yaz.rc: Updated version resource. + +2001-03-09 14:31 adam + + * win/yaz.rc: Updated version. + +2001-03-08 21:18 adam + + * CHANGELOG, comstack/tcpip.c, include/yaz/comstack.h: Added + cs_set_blocking. Patch from Matthew Carey. + +2001-03-07 14:24 adam + + * CHANGELOG, ccl/bib1, ccl/cclfind.c, ccl/cclqfile.c, + ccl/cclqual.c, ccl/ccltoken.c, include/yaz/ccl.h, z39.50/z.tcl, + zutil/pquery.c, zutil/yaz-ccl.c: Member and_not in Z_Operator is + kept for backwards compatibility. Added support for definition + of CCL operators in field spec file. + +2001-02-28 17:56 adam + + * win/: makefile, yaz.rc: Added version info for WIN32. + +2001-02-28 10:00 adam + + * retrieval/d1_read.c: Fixed problem with stack overflow for very + nested records. + +2001-02-26 23:52 adam + + * buildconf.sh: Script buildconf script is quiet. + +2001-02-22 00:16 adam + + * doc/: Makefile.am, yazhtml.dsl, yazprint.dsl: Added style sheets. + +2001-02-21 14:46 adam + + * CHANGELOG, asn/prt-proto.h, ccl/cclfind.c, ccl/cclqfile.c, + client/admin.c, client/client.c, comstack/tcpip.c, ill/ill-get.c, + ill/ill.tcl, odr/odr.c, retrieval/d1_read.c, server/seshigh.c, + util/yaz-comp, z39.50/z.tcl, ztest/ztest.c, zutil/pquery.c, + zutil/yaz-ccl.c, zutil/zget.c: C++ fixes. + +2001-02-21 10:41 adam + + * client/client.c: Fixed problem with old codecs. + +2001-02-21 10:19 adam + + * CHANGELOG, README: Updated README and CHANGELOG. + +2001-02-21 10:08 adam + + * aclocal.m4: Removed this one. + +2001-02-21 10:08 adam + + * config.sub: Removed config.stub. + +2001-02-21 10:03 adam + + * Makefile.in, aclocal.m4, buildconf.sh, config.guess, configure, + configure.in, install-sh, ltconfig, ltmain.sh, missing, + mkinstalldirs, asn/Makefile.in, ccl/Makefile.in, + client/Makefile.in, comstack/Makefile.in, doc/Makefile.in, + ill/Makefile.in, include/Makefile.in, include/yaz/Makefile.in, + lib/Makefile.in, odr/Makefile.in, retrieval/Makefile.in, + rfc1006/Makefile.in, server/Makefile.in, tab/Makefile.in, + util/Makefile.in, z39.50/Makefile.in, ztest/Makefile.in, + zutil/Makefile.in: Removed Makefile.in's and libtool/automake + files that are auto-created with the buildconf.sh script. + +2001-02-20 12:25 adam + + * Makefile.in, client/client.c, ill/ill-get.c, include/yaz/ill.h, + ztest/ztest.c: Added ill_get_APDU and ill_get_Cancel. + +2001-02-20 12:23 adam + + * zutil/yaz-ccl.c: Updated ccl_pquery to consider local attribute + set too. + +2001-02-12 16:35 adam + + * client/default.bib: More gils CCL field mappings. + +2001-02-10 02:21 adam + + * util/marcdump.c: Dumper only keeps one record at a time in + memory. + +2001-02-01 09:52 adam + + * server/statserv.c: Fixed bug regarding inetd mode. + +2001-01-30 22:34 adam + + * CHANGELOG: Changes. + +2001-01-30 22:34 adam + + * include/Makefile.in, include/yaz/backend.h, server/seshigh.c, + ztest/ztest.c: Added step-size for Scan backend interface. + +2001-01-30 16:52 ja7 + + * client/client.c: added command for setting packageName in ES + packages! command is named packagename default is NULL for server + suplyed package name + +2001-01-29 12:19 adam + + * client/client.c: Clients prints options in InitResponse. + +2001-01-29 10:38 adam + + * CHANGELOG, server/seshigh.c: Fixed bug that made the frontend + server crash when no attribute set was specified for scan. + +2001-01-24 12:55 adam + + * ccl/cclqfile.c: Fixed nasty bug introduced by previous commit + (attribute sets not properly allocated). + +2001-01-22 11:41 adam + + * client/client.c: Multiple attribute may be specified for sorging. + +2001-01-04 15:03 adam + + * doc/license.xml: Minor change. + +2001-01-04 14:36 adam + + * doc/: Makefile.am, Makefile.in, asn.xml, comstack.xml, + frontend.xml, future.xml, indexdata.xml, installation.xml, + introduction.xml, license.xml, odr.xml, tools.xml, xml.dcl, + yaz.rtf, yaz.xml: Added XML Docbook documentation for YAZ - will + eventually replace the linuxdoc SGML doc. + +2000-12-29 12:12 adam + + * ccl/bib1: Updated with more info. + +2000-12-14 23:10 adam + + * doc/yaz.sgml: Minor updates. + +2000-12-14 17:01 adam + + * yaz-config.in: Fixed YAZLALIB setting (when no threads was + specified). + +2000-12-11 22:43 quinn + + * doc/yaz.sgml: Added blocking synopsis for COMSTACK + +2000-12-11 21:55 quinn + + * doc/yaz.sgml: Work + +2000-12-05 20:14 adam + + * CHANGELOG, windows.txt: Updated CHANGELOG and windows.txt. + +2000-12-05 20:07 adam + + * retrieval/d1_absyn.c: Fixed problem with element level in reading + of abstract syntax. + +2000-12-05 20:05 adam + + * server/service.c: Service automatically starts in the directory + from which it was installed. + +2000-12-05 20:03 adam + + * util/tpath.c: WIN32 fixes for drive specifications. + +2000-12-05 15:44 adam + + * retrieval/d1_read.c: Readers skips sections. + +2000-12-05 15:34 adam + + * Makefile.in, retrieval/d1_absyn.c: Fixed bug with termlists + (introduced by previous commit). + +2000-12-05 13:21 adam + + * include/Makefile.in, include/yaz/data1.h, retrieval/d1_absyn.c: + Added termlist source for data1 system. + +2000-12-05 11:06 adam + + * CHANGELOG, retrieval/d1_read.c: Added support for null-data rules + like . + +2000-12-01 18:56 adam + + * server/statserv.c, win/makefile: on WIN32 function + statserv_closedown closes socket(s) to provoke close. + +2000-11-29 15:22 adam + + * CHANGELOG, configure, configure.in, yaz.m4, include/yaz/data1.h, + retrieval/d1_map.c, retrieval/d1_read.c, retrieval/d1_write.c, + server/statserv.c: Implemented XML/SGML attributes for data1 so + that d1_read reads them and d1_write generates proper attributes + for XML/SGML records. Added register locking for threaded + version. + +2000-11-27 16:17 adam + + * comstack/tcpip.c: Using SSLeay_add_all_algorithms instead of + OpenSSL_add_all_algorithms. + +2000-11-27 15:16 adam + + * zutil/yaz-ccl.c: Fixed bug in ccl_rpn_simple regarding + resultSetId's. + +2000-11-23 11:59 adam + + * Makefile.in, include/Makefile.in: Minor change. + +2000-11-23 11:58 adam + + * CHANGELOG, Makefile.in, README, aclocal.m4, configure, + configure.in, install-sh, mkinstalldirs, yaz-config.in, yaz.spec, + asn/Makefile.in, ccl/Makefile.in, client/Makefile.in, + client/client.c, comstack/Makefile.in, comstack/tcpip.c, + doc/Makefile.in, ill/Makefile.in, include/Makefile.in, + include/yaz/Makefile.in, include/yaz/comstack.h, + include/yaz/tcpip.h, lib/Makefile.am, lib/Makefile.in, + odr/Makefile.in, retrieval/Makefile.in, server/Makefile.am, + server/Makefile.in, server/seshigh.c, server/session.h, + server/statserv.c, tab/Makefile.in, util/Makefile.am, + util/Makefile.in, z39.50/Makefile.in, ztest/Makefile.am, + ztest/Makefile.in, ztest/ztest.c, zutil/Makefile.in: SSL comstack + support. Separate POSIX thread support library. + +2000-11-16 14:11 adam + + * client/client.c: Changed because ccl_rpn_query sets attribute + set. + +2000-11-16 14:03 adam + + * ccl/cclfind.c, win/makefile, zutil/yaz-ccl.c: Function + ccl_rpn_query sets attributeSet to Bib-1. + +2000-11-16 10:58 adam + + * ccl/bib1, ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, + ccl/cclqual.c, client/default.bib, include/yaz/ccl.h, + zutil/yaz-ccl.c: Implemented local AttributeSet setting for CCL + field maps. + +2000-11-13 10:44 adam + + * client/client.c: Work on SCAN: RPN2CCL conversion and proper + "next" scan. + +2000-11-01 15:47 adam + + * include/yaz/ccl.h, win/makefile: Added CCL support for WIN32. + +2000-11-01 10:18 adam + + * Makefile.in, include/Makefile.in: Fixed for new version of + automake. + +2000-10-17 21:50 adam + + * CHANGELOG, ccl/README, ccl/bib1, ccl/cclfind.c, ccl/cclqfile.c, + ccl/cclsh.c, client/default.bib, include/yaz/ccl.h: Implemented + and-list and or-list for CCL module. + +2000-10-11 14:39 adam + + * yaz.spec: Updated current version number for library. + +2000-10-11 14:38 adam + + * yaz.spec: New spec release. + +2000-10-11 14:24 adam + + * yaz-config.in: Removed --source option from yaz-config. + +2000-10-11 13:36 adam + + * lib/: Makefile.am, Makefile.in: Updated version number for shared + object. + +2000-10-11 12:40 adam + + * Makefile.am, Makefile.in, configure, configure.in, yaz-config.in, + yaz.m4, yaz.spec, include/Makefile.in, lib/Makefile.am, + lib/Makefile.in, lib/yaz-config.in: Work on yaz-config creation. + Added yaz.m4. + +2000-10-06 14:55 adam + + * Makefile.in, include/Makefile.in: Minor updates (for fixed + version of automake in CVS). + +2000-10-06 14:46 adam + + * odr/ber_int.c: Including sys/types.h and netinet/in.h instead on + arpa/inet.h on Unix. + +2000-10-06 14:01 adam + + * win/makefile: Updates regarding ASN-code generation (mostly). + +2000-10-06 14:00 adam + + * server/statserv.c: Fixed Handle leak for WIN32. + +2000-10-03 15:26 adam + + * configure, configure.in: Minor fix. + +2000-10-03 15:17 adam + + * configure, configure.in: Minor updates to configure script. + +2000-10-03 14:55 adam + + * configure, configure.in, asn/Makefile.am, asn/Makefile.in, + asn/prt-acc.h, asn/prt-add.h, asn/prt-arc.h, asn/prt-dat.h, + asn/prt-dia.h, asn/prt-esp.h, asn/prt-exd.h, asn/prt-exp.h, + asn/prt-ext.h, asn/prt-grs.h, asn/prt-proto.h, asn/prt-rsc.h, + asn/prt-univ.h, ill/ill-core.c, ill/item-req.c, + include/yaz/Makefile.am, include/yaz/Makefile.in, + include/yaz/ill-core.h, include/yaz/item-req.h, + include/yaz/prt-acc.h, include/yaz/prt-add.h, + include/yaz/prt-arc.h, include/yaz/prt-dat.h, + include/yaz/prt-dia.h, include/yaz/prt-esp.h, + include/yaz/prt-exd.h, include/yaz/prt-exp.h, + include/yaz/prt-grs.h, include/yaz/prt-proto.h, + include/yaz/prt-rsc.h, include/yaz/prt-univ.h, + include/yaz/z-accdes1.h, include/yaz/z-accform1.h, + include/yaz/z-acckrb1.h, include/yaz/z-core.h, + include/yaz/z-date.h, include/yaz/z-diag1.h, + include/yaz/z-espec1.h, include/yaz/z-estask.h, + include/yaz/z-exp.h, include/yaz/z-grs.h, include/yaz/z-opac.h, + include/yaz/z-rrf1.h, include/yaz/z-rrf2.h, include/yaz/z-sum.h, + include/yaz/z-sutrs.h, include/yaz/z-uifr1.h, + include/yaz/z-univ.h, include/yaz/zes-admin.h, + include/yaz/zes-expi.h, include/yaz/zes-exps.h, + include/yaz/zes-order.h, include/yaz/zes-pquery.h, + include/yaz/zes-psched.h, include/yaz/zes-pset.h, + include/yaz/zes-update.h, include/yaz/zes-update0.h, + z39.50/z-accdes1.c, z39.50/z-accform1.c, z39.50/z-acckrb1.c, + z39.50/z-core.c, z39.50/z-date.c, z39.50/z-diag1.c, + z39.50/z-espec1.c, z39.50/z-estask.c, z39.50/z-exp.c, + z39.50/z-grs.c, z39.50/z-opac.c, z39.50/z-rrf1.c, + z39.50/z-rrf2.c, z39.50/z-sum.c, z39.50/z-sutrs.c, + z39.50/z-uifr1.c, z39.50/z-univ.c, z39.50/zes-admin.c, + z39.50/zes-expi.c, z39.50/zes-exps.c, z39.50/zes-order.c, + z39.50/zes-pquery.c, z39.50/zes-psched.c, z39.50/zes-pset.c, + z39.50/zes-update.c, z39.50/zes-update0.c: Removed several + auto-generated files from CVS. + +2000-10-02 15:58 adam + + * CHANGELOG, include/yaz/oid.h, util/oid.c: Added some OID's. + +2000-10-02 15:05 adam + + * server/seshigh.c: Fixed bug introduced by previous commit. + +2000-10-02 14:31 adam + + * Makefile.am, Makefile.in, configure, configure.in, yaz-config.in, + asn/Makefile.in, ccl/Makefile.in, client/Makefile.in, + comstack/Makefile.in, doc/Makefile.in, ill/Makefile.in, + include/Makefile.in, include/yaz/Makefile.in, lib/Makefile.in, + lib/yaz-config.in, odr/Makefile.in, retrieval/Makefile.in, + server/Makefile.in, tab/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, ztest/Makefile.in, zutil/Makefile.in: File + yaz-config generated by configure (not Makefile). + +2000-10-02 13:07 adam + + * client/client.c, include/yaz/backend.h, server/seshigh.c, + util/marcdisp.c, util/marcdump.c: Added peer_name member for + bend_init handler. Changed the YAZ client so that tcp: can be + avoided in target spec. + +2000-09-15 19:46 adam + + * yaz.spec: Added TCP wrapper for yaz.spec. + +2000-09-14 14:05 adam + + * configure, configure.in: Threads disabled unless specified for + configure. + +2000-09-09 10:05 adam + + * configure, configure.in: Fixed TCP wrapper setting so that it is + only enabled when the set to. + +2000-09-07 14:53 adam + + * yaz.spec: Changed copyright message in spec file. + +2000-09-04 10:58 adam + + * CHANGELOG, client/client.c, include/yaz/log.h, server/seshigh.c, + server/statserv.c, util/log.c, ztest/ztest.c: Added prefix yaz_ + for most logging utility functions. + +2000-09-04 10:27 adam + + * comstack/tcpip.c: Work on error handling for tcpip_accept. + +2000-08-31 16:20 perhans + + * doc/yaz.sgml: A chapter about the yaz-client was added to the + documentation. + +2000-08-31 12:20 adam + + * CHANGELOG, include/yaz/backend.h, server/seshigh.c: Added member + request_format and output_format for backend fetch method. + +2000-08-31 11:51 adam + + * CHANGELOG, include/yaz/backend.h, server/seshigh.c: Added + record_syntax member for fetch method (raw OID). + +2000-08-10 10:41 adam + + * client/client.c, ill/ill-get.c, ztest/ztest.c: Fixes for ILL. + +2000-08-04 12:40 adam + + * lib/yaz-config.in: Fixed bug in yaz-config.in. + +2000-07-06 12:38 adam + + * configure, configure.in, server/seshigh.c: Enhanced option + --enable-tcpd. + +2000-07-04 10:53 adam + + * util/marcdump.c: Fixed bug. + +2000-06-21 12:10 adam + + * lib/yaz-config.in: Added CVS id. + +2000-06-21 12:10 adam + + * lib/yaz-config.in: Modified yaz-config so that it only reports + usage when bad options are specified. + +2000-06-20 17:25 adam + + * lib/yaz-config.in: Fix. + +2000-06-19 11:49 adam + + * CHANGELOG, Makefile.am, Makefile.in, configure, configure.in, + yaz.spec, lib/Makefile.am, lib/Makefile.in, lib/yaz-config.in: + Added options for yaz-config. + +2000-06-09 15:51 ian + + * include/yaz/log.h: Added LOG_APP for logging application (Rather + than code) events that might be useful when creating usage + reports. + +2000-06-08 15:40 adam + + * doc/: Makefile.am, Makefile.in: Using a4 instead of letter for + postscript. + +2000-05-25 21:58 adam + + * client/: Makefile.am, Makefile.in: Changed CCLRPN setting to + CCL2RPN. + +2000-05-25 21:57 adam + + * include/yaz/yaz-ccl.h: Changed include of yaz-util.h to wrbuf.h. + +2000-05-18 13:57 adam + + * configure, configure.in, client/client.c, util/Makefile.am, + util/Makefile.in: Client display time elapsed. + +2000-05-18 13:55 adam + + * tab/: Makefile.am, Makefile.in, dan1.att, danmarc.abs, + danmarc.mar: Fixed DANMARC profile. + +2000-05-11 16:37 adam + + * util/nmem.c: Minor changes. + +2000-05-09 13:48 adam + + * include/yaz/nmem.h: Fix (bug introduced by previous commit). + +2000-05-09 12:55 adam + + * include/yaz/nmem.h, util/nmem.c: Public nmem_print_list (for + debugging). + +2000-05-05 15:48 adam + + * win/makefile: Minor changes. + +2000-05-04 00:00 adam + + * util/nmem.c: Reference counter (if multiple modules are + init/freeing nmem). + +2000-05-02 21:32 adam + + * Makefile.in, configure, configure.in, asn/Makefile.in, + ccl/Makefile.in, client/Makefile.am, client/Makefile.in, + comstack/Makefile.in, doc/Makefile.in, ill/Makefile.in, + include/Makefile.in, include/yaz/Makefile.in, lib/Makefile.am, + lib/Makefile.in, odr/Makefile.in, retrieval/Makefile.in, + server/Makefile.in, tab/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, ztest/Makefile.in, zutil/Makefile.in: Defined + READLINE_LIBS for the yaz-client. + +2000-05-02 19:19 adam + + * include/yaz/ccl.h: Removed MINUS token. + +2000-05-01 11:36 adam + + * ccl/: cclfind.c, ccltoken.c: Range operator only treated in + ordered ranges so that minus (-) can be used for, say, the + and-not operator. + +2000-04-17 16:21 adam + + * windows.txt, client/admin.c, win/makefile: WIN32 update. + +2000-04-11 23:22 adam + + * configure, configure.in: Fixed linux specific test. + +2000-04-06 14:32 adam + + * lib/: Makefile.am, Makefile.in: Fixed setting of yaz-config. + +2000-04-05 11:43 adam + + * doc/Makefile.am, doc/Makefile.in, lib/x.c: Minor fixes regarding + packaging. + +2000-04-05 09:41 adam + + * config.guess, config.sub: Added config files for libtool. + +2000-04-05 09:39 adam + + * CHANGELOG, Makefile.am, Makefile.in, README, aclocal.m4, + configure, configure.in, ltconfig, ltmain.sh, yaz.spec, + asn/Makefile.am, asn/Makefile.in, ccl/Makefile.am, + ccl/Makefile.in, client/Makefile.am, client/Makefile.in, + client/admin.c, client/admin.h, client/client.c, + comstack/Makefile.am, comstack/Makefile.in, doc/Makefile.am, + doc/Makefile.in, ill/Makefile.am, ill/Makefile.in, + include/Makefile.in, include/yaz/Makefile.in, + include/yaz/backend.h, include/yaz/statserv.h, + include/yaz/yaz-version.h, include/yaz/zes-admin.h, + lib/Makefile.am, lib/Makefile.in, odr/Makefile.am, + odr/Makefile.in, retrieval/Makefile.am, retrieval/Makefile.in, + server/Makefile.am, server/Makefile.in, server/seshigh.c, + server/session.h, server/statserv.c, tab/Makefile.in, + util/Makefile.am, util/Makefile.in, z39.50/Makefile.am, + z39.50/Makefile.in, z39.50/esadmin.asn, z39.50/zes-admin.c, + ztest/Makefile.am, ztest/Makefile.in, ztest/ztest.c, + zutil/Makefile.am, zutil/Makefile.in: Added shared library + support (libtool). + +2000-03-29 17:23 adam + + * doc/indexdata.sh: Further work. + +2000-03-29 17:07 adam + + * doc/indexdata.sh: Updated for PHP. + +2000-03-20 20:29 adam + + * CHANGELOG, client/client.c: Minor change. + +2000-03-20 20:06 adam + + * client/admin.c, client/client.c, include/yaz/backend.h, + server/seshigh.c, server/session.h, server/statserv.c, + zutil/diagbib1.c, zutil/zget.c: Added Segment request for fronend + server. Work on admin for client. + +2000-03-17 13:47 adam + + * client/admin.c, include/yaz/zes-admin.h, server/statserv.c: Minor + changes to admin client. + +2000-03-16 14:55 ian + + * client/: admin.c, admin.h, client.c: Added commands for sending + shutdown and startup admin requests via the admin ES. + +2000-03-16 14:30 ian + + * z39.50/: esadmin.asn, zes-admin.c: Added startup and shutdown + options to admin extended service + +2000-03-15 13:59 adam + + * Makefile.am, Makefile.in, include/yaz/backend.h, + include/yaz/statserv.h, server/seshigh.c, server/statserv.c, + zutil/diagbib1.c: Added handle member to statserv_control. + +2000-03-14 16:23 ian + + * client/admin.c: Removed unwanted ifdef and include of zes-admin.h + +2000-03-14 16:22 ian + + * zutil/prt-ext.c: Added Admin external to choice table. + +2000-03-14 15:06 ian + + * client/: admin.c, client.c: Minor change to order of debugging + output for send_apdu, fixed encoding of admin request. + +2000-03-14 14:52 ian + + * zutil/prt-ext.c: Added Admin Extended Service to External Choice + +2000-03-14 10:27 ian + + * client/: Makefile.am, Makefile.in, admin.c, admin.h, client.c: + Added code to enable sending of admin extended service requests + +2000-03-14 10:22 ian + + * z39.50/esadmin.asn: Added Admin Extended Service ASN + +2000-03-14 10:22 ian + + * z39.50/: Makefile.am, Makefile.in, z.tcl, zes-admin.c: Added asn + & encoders/decoders for Admin Extended Service + +2000-03-14 10:21 ian + + * util/oid.c: Added Admin Extended Service OID + +2000-03-14 10:19 ian + + * include/yaz/: Makefile.am, Makefile.in, oid.h, prt-ext.h, + z-proto.h, zes-admin.h: Added admin extended service encoders & + decoders. + +2000-03-14 10:06 adam + + * configure, configure.in, ccl/cclerrms.c, ccl/cclfind.c, + ccl/ccltoken.c, include/yaz/ccl.h, include/yaz/statserv.h, + server/statserv.c, util/log.c: Added POSIX threads support for + frontend server. + +2000-03-10 09:41 adam + + * Makefile.am, Makefile.in, configure, configure.in, yaz.spec, + asn/Makefile.in, ccl/Makefile.in, client/Makefile.in, + comstack/Makefile.in, doc/Makefile.in, doc/yaz.sgml, + ill/Makefile.in, include/Makefile.in, include/yaz/Makefile.in, + lib/Makefile.in, odr/Makefile.in, retrieval/Makefile.in, + server/Makefile.in, tab/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, ztest/Makefile.in, zutil/Makefile.in: + Documentation no longer made when doing 'make all'. + +2000-03-03 11:23 adam + + * CHANGELOG: Version 1.6. + +2000-03-03 11:18 adam + + * doc/indexdata.sh: Added script to convert documentation to + indexdata.dk web style. + +2000-03-02 09:53 adam + + * util/: Makefile.am, Makefile.in: Fix. + +2000-03-02 09:48 adam + + * CHANGELOG, configure, configure.in, yaz.spec, doc/yaz.sgml, + ill/Makefile.am, ill/Makefile.in, ill/ill-core.c, ill/item-req.c, + include/yaz/ill-core.h, include/yaz/item-req.h, + include/yaz/z-accdes1.h, include/yaz/z-accform1.h, + include/yaz/z-acckrb1.h, include/yaz/z-core.h, + include/yaz/z-date.h, include/yaz/z-diag1.h, + include/yaz/z-espec1.h, include/yaz/z-estask.h, + include/yaz/z-exp.h, include/yaz/z-grs.h, include/yaz/z-opac.h, + include/yaz/z-rrf1.h, include/yaz/z-rrf2.h, include/yaz/z-sum.h, + include/yaz/z-sutrs.h, include/yaz/z-uifr1.h, + include/yaz/z-univ.h, include/yaz/zes-expi.h, + include/yaz/zes-exps.h, include/yaz/zes-order.h, + include/yaz/zes-pquery.h, include/yaz/zes-psched.h, + include/yaz/zes-pset.h, include/yaz/zes-update.h, + include/yaz/zes-update0.h, util/Makefile.am, util/Makefile.in, + util/yaz-comp, util/yc.tcl, win/makefile, z39.50/Makefile.am, + z39.50/Makefile.in, z39.50/z-accdes1.c, z39.50/z-accform1.c, + z39.50/z-acckrb1.c, z39.50/z-core.c, z39.50/z-date.c, + z39.50/z-diag1.c, z39.50/z-espec1.c, z39.50/z-estask.c, + z39.50/z-exp.c, z39.50/z-grs.c, z39.50/z-opac.c, z39.50/z-rrf1.c, + z39.50/z-rrf2.c, z39.50/z-sum.c, z39.50/z-sutrs.c, + z39.50/z-uifr1.c, z39.50/z-univ.c, z39.50/zes-expi.c, + z39.50/zes-exps.c, z39.50/zes-order.c, z39.50/zes-pquery.c, + z39.50/zes-psched.c, z39.50/zes-pset.c, z39.50/zes-update.c, + z39.50/zes-update0.c: Renamed ASN.1 compiler to yaz-comp (used to + be yc.tcl). + +2000-03-01 15:19 adam + + * doc/yaz.sgml: Added documentation. + +2000-03-01 14:46 adam + + * ill/ill-core.c, ill/item-req.c, include/yaz/ill-core.h, + include/yaz/item-req.h: Added ill decoders to CVS. + +2000-03-01 14:41 adam + + * z39.50/: z-accdes1.c, z-accform1.c, z-acckrb1.c, z-core.c, + z-date.c, z-diag1.c, z-espec1.c, z-estask.c, z-exp.c, z-grs.c, + z-opac.c, z-rrf1.c, z-rrf2.c, z-sum.c, z-sutrs.c, z-uifr1.c, + z-univ.c: Added files. + +2000-03-01 12:15 adam + + * configure, configure.in: Fix. + +2000-03-01 12:08 adam + + * configure, configure.in: Fix. + +2000-03-01 12:06 adam + + * LICENSE, Makefile.in, README, configure, configure.in, yaz.spec, + asn/Makefile.in, ccl/Makefile.in, client/Makefile.in, + comstack/Makefile.in, doc/Makefile.am, doc/Makefile.in, + doc/README, ill/Makefile.in, include/Makefile.in, + include/yaz/Makefile.am, include/yaz/Makefile.in, + include/yaz/ill-core.h, include/yaz/item-req.h, + include/yaz/z-accdes1.h, include/yaz/z-accform1.h, + include/yaz/z-acckrb1.h, include/yaz/z-core.h, + include/yaz/z-date.h, include/yaz/z-diag1.h, + include/yaz/z-espec1.h, include/yaz/z-estask.h, + include/yaz/z-exp.h, include/yaz/z-grs.h, include/yaz/z-opac.h, + include/yaz/z-rrf1.h, include/yaz/z-rrf2.h, include/yaz/z-sum.h, + include/yaz/z-sutrs.h, include/yaz/z-uifr1.h, + include/yaz/z-univ.h, include/yaz/zes-expi.h, + include/yaz/zes-exps.h, include/yaz/zes-order.h, + include/yaz/zes-pquery.h, include/yaz/zes-psched.h, + include/yaz/zes-pset.h, include/yaz/zes-update0.h, + lib/Makefile.in, odr/Makefile.in, retrieval/Makefile.in, + server/Makefile.in, tab/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, z39.50/zes-expi.c, z39.50/zes-exps.c, + z39.50/zes-order.c, z39.50/zes-pquery.c, z39.50/zes-psched.c, + z39.50/zes-pset.c, z39.50/zes-update0.c, ztest/Makefile.in, + zutil/Makefile.in: Updated makefiles (again). + +2000-03-01 12:05 adam + + * doc/yaz.sgml: 2000. + +2000-03-01 11:59 adam + + * doc/profiles.sgml: Updated doc. + +2000-03-01 10:53 adam + + * include/yaz/yconfig.h: Added header. + +2000-03-01 10:51 adam + + * include/yaz/yconfig.h: Added O_BINARY again. + +2000-02-29 16:58 adam + + * include/yaz/item-req.h: Added item-req.h + +2000-02-29 16:52 adam + + * Makefile.am, Makefile.in, configure.in, client/Makefile.am, + client/Makefile.in, include/yaz/Makefile.am, + include/yaz/Makefile.in, include/yaz/ill-core.h, + include/yaz/z-accdes1.h, include/yaz/z-accform1.h, + include/yaz/z-acckrb1.h, include/yaz/z-core.h, + include/yaz/z-date.h, include/yaz/z-diag1.h, + include/yaz/z-espec1.h, include/yaz/z-estask.h, + include/yaz/z-exp.h, include/yaz/z-grs.h, include/yaz/z-opac.h, + include/yaz/z-rrf1.h, include/yaz/z-rrf2.h, include/yaz/z-sum.h, + include/yaz/z-sutrs.h, include/yaz/z-uifr1.h, + include/yaz/z-univ.h, include/yaz/zes-expi.h, + include/yaz/zes-exps.h, include/yaz/zes-order.h, + include/yaz/zes-pquery.h, include/yaz/zes-psched.h, + include/yaz/zes-pset.h, include/yaz/zes-update.h, + include/yaz/zes-update0.h, z39.50/zes-expi.c, z39.50/zes-exps.c, + z39.50/zes-order.c, z39.50/zes-pquery.c, z39.50/zes-psched.c, + z39.50/zes-pset.c, z39.50/zes-update.c, z39.50/zes-update0.c: + Added compiled ASN.1 C files. + +2000-02-29 15:13 adam + + * include/yaz/: Makefile.am, Makefile.in: Minor. + +2000-02-29 15:13 adam + + * ill/: Makefile.am, Makefile.in: MInor. + +2000-02-29 14:52 adam + + * doc/: Makefile.am, Makefile.in: Updated. + +2000-02-29 14:44 adam + + * Makefile.am, Makefile.in, aclocal.m4, configure, configure.in, + yaz.spec, asn/Makefile.in, ccl/Makefile.in, client/Makefile.am, + client/Makefile.in, comstack/Makefile.in, doc/Makefile.am, + doc/Makefile.in, ill/Makefile.in, include/Makefile.in, + include/yaz/Makefile.am, include/yaz/Makefile.in, + include/yaz/config.h.in, include/yaz/prt-ext.h, + include/yaz/yconfig.h, lib/Makefile.in, odr/Makefile.in, + odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, odr/ber_int.c, + odr/ber_len.c, odr/ber_null.c, odr/ber_oct.c, odr/ber_oid.c, + odr/ber_tag.c, odr/dumpber.c, odr/odr.c, odr/odr_any.c, + odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, odr/odr_cons.c, + odr/odr_enum.c, odr/odr_int.c, odr/odr_mem.c, odr/odr_null.c, + odr/odr_oct.c, odr/odr_oid.c, odr/odr_seq.c, odr/odr_tag.c, + odr/odr_use.c, odr/odr_util.c, retrieval/Makefile.in, + server/Makefile.in, tab/Makefile.in, util/Makefile.am, + util/Makefile.in, util/atoin.c, util/log.c, util/marcdisp.c, + util/marcdump.c, util/matchstr.c, util/nmem.c, util/nmemsdup.c, + util/oid.c, util/options.c, util/readconf.c, util/tpath.c, + util/wrbuf.c, util/xmalloc.c, z39.50/Makefile.in, + ztest/Makefile.in, zutil/Makefile.in: Check for config.h + (currently not generated). + +2000-02-28 13:34 adam + + * include/yaz/Makefile.in: Minor. + +2000-02-28 13:34 adam + + * include/yaz/Makefile.am: MInor. + +2000-02-28 13:28 adam + + * z39.50/Makefile.am: Added. + +2000-02-28 12:46 adam + + * odr/: Makefile.am, Makefile.in: Minor. + +2000-02-28 12:45 adam + + * odr/Makefile.in, zutil/Makefile.am, zutil/Makefile.in: Updated + again. + +2000-02-28 12:44 adam + + * Makefile.am, Makefile.in, asn/Makefile.am, ccl/Makefile.am, + client/Makefile.am, client/Makefile.in, comstack/Makefile.am, + doc/Makefile.am, ill/Makefile.am, ill/Makefile.in, + include/Makefile.am, include/Makefile.in, + include/yaz/Makefile.am, lib/Makefile.am, odr/Makefile.in, + retrieval/Makefile.am, server/Makefile.am, tab/Makefile.am, + util/Makefile.am, util/Makefile.in, z39.50/Makefile.in, + ztest/Makefile.am, ztest/Makefile.in, zutil/Makefile.am, + zutil/Makefile.in: Updated makefiles. + +2000-02-28 12:29 adam + + * Makefile.in, client/Makefile.in, ill/Makefile.in, + include/Makefile.in, odr/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, ztest/Makefile.in: Minor. + +2000-02-28 12:25 adam + + * configure, Makefile.in, client/Makefile.in, ill/Makefile.in, + include/Makefile.in, odr/Makefile.in, util/Makefile.in, + z39.50/Makefile.in, ztest/Makefile.in: Minor. + +2000-02-28 12:25 adam + + * tab/Makefile.in: Added Makefile.in for tab. + +2000-02-28 12:21 adam + + * include/yaz/config.h.in: Added config.h.in. + +2000-02-28 12:20 adam + + * Makefile.am, Makefile.in, aclocal.m4, configure, configure.in, + missing, mkinstalldirs, yaz.spec, asn/Makefile.am, + asn/Makefile.in, ccl/Makefile.am, ccl/Makefile.in, + client/Makefile.am, client/Makefile.in, client/client.c, + comstack/Makefile.am, comstack/Makefile.in, doc/Makefile, + doc/Makefile.am, doc/Makefile.in, ill/Makefile.am, + ill/Makefile.in, include/Makefile.am, include/Makefile.in, + include/yaz/Makefile.am, include/yaz/backend.h, + include/yaz/comstack.h, include/yaz/d1_attset.h, + include/yaz/d1_map.h, include/yaz/data1.h, + include/yaz/diagbib1.h, include/yaz/ill.h, include/yaz/log.h, + include/yaz/logrpn.h, include/yaz/marcdisp.h, include/yaz/nmem.h, + include/yaz/odr.h, include/yaz/oid.h, include/yaz/options.h, + include/yaz/otherinfo.h, include/yaz/pquery.h, + include/yaz/prt-proto.h, include/yaz/readconf.h, + include/yaz/stamp-h.in, include/yaz/statserv.h, + include/yaz/tcpip.h, include/yaz/tpath.h, include/yaz/wrbuf.h, + include/yaz/xmalloc.h, include/yaz/yaz-ccl.h, + include/yaz/yaz-util.h, include/yaz/yaz-version.h, + include/yaz/yconfig.h, include/yaz/z-proto.h, lib/Makefile.am, + lib/Makefile.in, odr/Makefile.am, odr/Makefile.in, odr/ber_int.c, + odr/odr_priv.c, retrieval/Makefile.am, retrieval/Makefile.in, + server/Makefile.am, server/Makefile.in, server/tcpdchk.c, + tab/Makefile.am, util/Makefile.am, util/Makefile.in, util/log.c, + z39.50/Makefile.in, ztest/Makefile.am, ztest/Makefile.in, + zutil/Makefile.am, zutil/Makefile.in: Using autoconf. New + definitions: YAZ_BEGIN_CDECL/YAZ_END_CDECL. + +2000-02-28 12:13 adam + + * win/makefile: Removed odr_priv.obj. + +2000-02-25 12:40 adam + + * configure.in: Check for possible inclusion -ltermcap when doing + -lreadline check. + +2000-02-25 00:49 adam + + * ccl/cclfind.c: Fixed memory allocation problem. + +2000-02-24 09:52 adam + + * ill/ill-get.c: Bug fix. + +2000-02-10 14:44 adam + + * util/yc.tcl: Tcl command clock not used if unavailable (Tcl7.4 + and earlier). + +2000-02-10 14:42 adam + + * retrieval/d1_if.c: Removed C++ comment. + +2000-02-08 11:39 adam + + * ccl/ccltoken.c, include/yaz/ccl.h: Added a few functions to set + name of operands, etc. + +2000-02-05 11:47 adam + + * util/marcdisp.c: Identifier-length and indicator-lenght no longer + set to 2 (forced). + +2000-02-04 12:01 adam + + * ill/ill-get.c: Added more elements. + +2000-02-02 16:13 adam + + * zutil/yaz-ccl.c: Minor change. + +2000-01-31 14:15 adam + + * ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, ccl/cclqual.c, + ccl/cclsh.c, ccl/ccltoken.c, client/client.c, ill/ill-get.c, + include/yaz/ccl.h, include/yaz/ill.h, include/yaz/odr.h, + odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, odr/ber_int.c, + odr/ber_null.c, odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, + odr/odr.c, odr/odr_cons.c, odr/odr_mem.c, odr/odr_seq.c, + odr/odr_util.c, ztest/ztest.c, zutil/logrpn.c, zutil/yaz-ccl.c: + Removed uses of assert(3). Cleanup of ODR. CCL parser update so + that some characters are not surrounded by spaces in resulting + term. ILL-code updates. + +2000-01-15 10:39 adam + + * client/client.c, include/yaz/ill.h: Implemented + ill_get_ILLRequest. More ILL testing for client. + +2000-01-15 10:38 adam + + * ill/: Makefile.in, ill-get.c, ill.tcl: Implemented + ill_get_ILLRequest. Added some type mappings for ILL protocol. + +2000-01-15 10:18 adam + + * util/yc.tcl: Bug fix: some elements where treated as OPTIONAL + when they shouldn't. + +2000-01-14 00:05 adam + + * CHANGELOG, ill/ill9702.asn, ztest/ztest.c: Fixed tagging for + member requester-CHECKED-IN in ILL ASN.1 spec. + +2000-01-12 15:36 adam + + * include/yaz/backend.h, server/seshigh.c, ztest/ztest.c: Added + printing stream (ODR) for backend functions. + +2000-01-10 16:16 adam + + * CHANGELOG, include/yaz/oid.h, util/oid.c: Added several OID's. + +2000-01-06 15:59 adam + + * include/yaz/oid.h, util/nmem.c, util/oid.c: Added + oid_init/oid_exit. Changed oid_exit. + +2000-01-06 15:30 adam + + * retrieval/d1_if.c: Minor change - to prevent warnings. + +2000-01-06 12:27 adam + + * win/makefile: Updated for ILL. + +2000-01-06 12:27 adam + + * retrieval/d1_if.c: Minor fix so that this source compiles using + Visual C++. + +2000-01-06 12:25 adam + + * retrieval/d1_read.c: Added case to prevent warning. + +2000-01-04 18:46 ian + + * include/yaz/data1.h, retrieval/d1_if.c: Added function to count + occurences of a tag spec in a data1 tree. + +1999-12-22 14:13 adam + + * ccl/cclfind.c: Search terms may include "operators" without + causing error. + +1999-12-21 17:25 adam + + * zutil/pquery.c: Fixed handling of default/inherited attributes. + +1999-12-21 17:24 adam + + * client/client.c, util/marcdisp.c: More robust ISO2709 handling + (in case of real bad formats). + +1999-12-21 15:16 ian + + * CHANGELOG, include/yaz/data1.h, retrieval/Makefile.in, + retrieval/d1_absyn.c, retrieval/d1_if.c, retrieval/d1_read.c, + win/makefile: Changed retrieval module to allow data1 trees with + no associated absyn. Also added a simple interface for + extracting values from data1 trees using a string based tagpath. + +1999-12-20 16:20 adam + + * include/yaz/yaz-ccl.h, zutil/pquery.c, zutil/yaz-ccl.c: + Implemented ccl_pquery to convert from CCL tree to prefix query. + +1999-12-17 00:36 adam + + * CHANGELOG, Makefile.in, README, configure, configure.in, + asn/test.c, ccl/cclsh.c, client/Makefile.in, client/client.c, + ill/Makefile.in, ill/ill-get.c, ill/ill.tcl, ill/ill9702.asn, + ill/item-req.asn, include/yaz/backend.h, include/yaz/ill.h, + include/yaz/odr_use.h, include/yaz/oid.h, include/yaz/z-proto.h, + lib/Makefile.in, odr/test.c, server/seshigh.c, util/oid.c, + util/yc.tcl, z39.50/Makefile.in, z39.50/z.tcl, ztest/Makefile.in, + ztest/ztest.c, zutil/query.c: Implemented ILL protocol. Minor + updates ASN.1 compiler. + +1999-12-09 23:31 adam + + * CHANGELOG, doc/yaz.sgml: Minor. + +1999-12-09 01:38 adam + + * CHANGELOG: New CHANGELOG. + +1999-12-08 14:37 adam + + * doc/Makefile: Minor. + +1999-12-08 14:21 adam + + * CHANGELOG, z39.50/comp.sh: Minor fix. + +1999-12-08 14:14 adam + + * z39.50/comp.sh: Added comp.sh. + +1999-12-08 14:10 adam + + * CHANGELOG, configure, configure.in, doc/yaz.sgml, win/makefile, + z39.50/Makefile.in: New version. + +1999-12-02 15:01 adam + + * yaz.spec: Changed LICENSE. + +1999-12-02 14:54 adam + + * CHANGELOG, README, windows.txt: Updated information about YAZ. + +1999-11-30 14:47 adam + + * Makefile.in, configure, configure.in, yaz.spec, asn/proto.c, + asn/prt-acc.c, asn/prt-add.c, asn/prt-arc.c, asn/prt-dat.c, + asn/prt-dia.c, asn/prt-esp.c, asn/prt-exd.c, asn/prt-exp.c, + asn/prt-grs.c, asn/prt-rsc.c, asn/prt-univ.c, asn/test.c, + ccl/cclerrms.c, ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, + ccl/cclqual.c, ccl/cclstr.c, ccl/ccltoken.c, client/Makefile.in, + client/client.c, comstack/comstack.c, comstack/tcpip.c, + comstack/waislen.c, include/backend.h, include/ccl.h, + include/comstack.h, include/d1_attset.h, include/d1_map.h, + include/data1.h, include/diagbib1.h, include/log.h, + include/logrpn.h, include/marcdisp.h, include/nmem.h, + include/odr.h, include/odr_use.h, include/oid.h, + include/options.h, include/otherinfo.h, include/pquery.h, + include/prt-acc.h, include/prt-add.h, include/prt-arc.h, + include/prt-dat.h, include/prt-dia.h, include/prt-esp.h, + include/prt-exd.h, include/prt-exp.h, include/prt-ext.h, + include/prt-grs.h, include/prt-proto.h, include/prt-rsc.h, + include/prt-univ.h, include/readconf.h, include/statserv.h, + include/tcpip.h, include/tpath.h, include/wrbuf.h, + include/xmalloc.h, include/xmosi.h, include/yaz-ccl.h, + include/yaz-util.h, include/yaz-version.h, include/yconfig.h, + include/z-proto.h, include/yaz/backend.h, include/yaz/ccl.h, + include/yaz/comstack.h, include/yaz/d1_attset.h, + include/yaz/d1_map.h, include/yaz/data1.h, + include/yaz/diagbib1.h, include/yaz/log.h, include/yaz/logrpn.h, + include/yaz/marcdisp.h, include/yaz/nmem.h, include/yaz/odr.h, + include/yaz/odr_use.h, include/yaz/oid.h, include/yaz/options.h, + include/yaz/otherinfo.h, include/yaz/pquery.h, + include/yaz/prt-acc.h, include/yaz/prt-add.h, + include/yaz/prt-arc.h, include/yaz/prt-dat.h, + include/yaz/prt-dia.h, include/yaz/prt-esp.h, + include/yaz/prt-exd.h, include/yaz/prt-exp.h, + include/yaz/prt-ext.h, include/yaz/prt-grs.h, + include/yaz/prt-proto.h, include/yaz/prt-rsc.h, + include/yaz/prt-univ.h, include/yaz/readconf.h, + include/yaz/statserv.h, include/yaz/tcpip.h, include/yaz/tpath.h, + include/yaz/wrbuf.h, include/yaz/xmalloc.h, include/yaz/xmosi.h, + include/yaz/yaz-ccl.h, include/yaz/yaz-util.h, + include/yaz/yaz-version.h, include/yaz/yconfig.h, + include/yaz/z-proto.h, odr/ber_any.c, odr/ber_bit.c, + odr/ber_bool.c, odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, + odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, odr/dumpber.c, + odr/odr.c, odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, + odr/odr_choice.c, odr/odr_cons.c, odr/odr_enum.c, odr/odr_int.c, + odr/odr_mem.c, odr/odr_null.c, odr/odr_oct.c, odr/odr_oid.c, + odr/odr_seq.c, odr/odr_tag.c, odr/odr_use.c, odr/odr_util.c, + retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_doespec.c, retrieval/d1_espec.c, + retrieval/d1_expout.c, retrieval/d1_grs.c, retrieval/d1_handle.c, + retrieval/d1_map.c, retrieval/d1_marc.c, retrieval/d1_prtree.c, + retrieval/d1_read.c, retrieval/d1_soif.c, retrieval/d1_sumout.c, + retrieval/d1_sutrs.c, retrieval/d1_tagset.c, + retrieval/d1_varset.c, retrieval/d1_write.c, server/eventl.c, + server/requestq.c, server/seshigh.c, server/session.h, + server/statserv.c, server/tcpdchk.c, tab/bib1.att, util/atoin.c, + util/log.c, util/marcdisp.c, util/marcdump.c, util/matchstr.c, + util/nmem.c, util/nmemsdup.c, util/oid.c, util/options.c, + util/readconf.c, util/tpath.c, util/wrbuf.c, util/xmalloc.c, + util/yc.tcl, win/makefile, z39.50/Makefile.in, ztest/Makefile.in, + ztest/read-grs.c, ztest/ztest.c, zutil/diagbib1.c, + zutil/logrpn.c, zutil/otherinfo.c, zutil/pquery.c, + zutil/prt-ext.c, zutil/yaz-ccl.c, zutil/zget.c: Improved + installation. Moved header files to include/yaz. + +1999-11-29 16:12 adam + + * server/seshigh.c: Changed the way implementationName - and + version is set. + +1999-11-29 15:36 adam + + * server/seshigh.c: Implementation_name and implementation_version + copied verbatim. + +1999-11-10 10:06 adam + + * zutil/otherinfo.c: Fixed yaz_oi_update so that it ignores NULL + pointer. + +1999-11-04 15:58 adam + + * client/client.c, include/backend.h, server/seshigh.c: Added + status elements for backend delete result set handler. Updated + delete result result set command for client. + +1999-11-03 10:05 adam + + * include/wrbuf.h, util/wrbuf.c: Implemented wrbuf_puts. + +1999-10-28 13:36 adam + + * util/wrbuf.c: wrbuf_write allows zero buffer length. + +1999-10-21 14:06 adam + + * include/data1.h, retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_espec.c, retrieval/d1_map.c, retrieval/d1_marc.c, + retrieval/d1_read.c, retrieval/d1_sutrs.c, retrieval/d1_tagset.c, + retrieval/d1_write.c: Retrieval module no longer uses ctype.h - + functions. + +1999-10-21 11:50 adam + + * retrieval/d1_read.c: SGML reader uses own isspace - it doesn't do + 8-bit on WIN32! + +1999-10-19 14:35 adam + + * odr/odr_oct.c: Better dump of OCTET STRING. + +1999-10-19 14:35 adam + + * util/matchstr.c: Minor bug fix (bug introduced by previous + commit). + +1999-10-15 13:35 adam + + * util/matchstr.c: Character '.' matches any single character. + +1999-10-12 15:03 perhans + + * tab/danmarc.abs: The danmarc.abs file was addes to support the + DANMarc2 record format. + +1999-10-11 12:01 adam + + * include/backend.h, server/seshigh.c, server/session.h: + Implemented bend_sort_rr handler for frontend server. + +1999-10-11 12:00 adam + + * client/client.c: Modified printing of records. + +1999-09-29 16:43 perhans + + * tab/dan1.att: The file dan1.att was added, containing the DAN-1 + Attribute set. + +1999-09-13 14:51 adam + + * include/otherinfo.h, zutil/otherinfo.c: Fixed bug in + yaz_oi_update and added delete option. + +1999-09-13 14:51 adam + + * include/oid.h, util/oid.c: Added CLIENT IP OID. + +1999-09-10 10:58 adam + + * util/xmalloc.c: Set TRACE_XMALLOC to 1. + +1999-08-27 11:40 adam + + * CHANGELOG, README, windows.txt, yaz.dsp, yaz.dsw, + client/client.c, client/client.dsp, include/log.h, + include/wrbuf.h, odr/odr.c, retrieval/d1_absyn.c, + retrieval/d1_attset.c, retrieval/d1_doespec.c, + retrieval/d1_espec.c, retrieval/d1_expout.c, retrieval/d1_grs.c, + retrieval/d1_handle.c, retrieval/d1_map.c, retrieval/d1_marc.c, + retrieval/d1_read.c, retrieval/d1_sumout.c, + retrieval/d1_tagset.c, retrieval/d1_varset.c, server/eventl.c, + server/server.dsp, server/seshigh.c, server/statserv.c, + server/tcpdchk.c, util/log.c, util/nmem.c, util/readconf.c, + util/wrbuf.c, util/xmalloc.c, ztest/read-grs.c, ztest/ztest.c, + ztest/ztest.dsp, zutil/logrpn.c: Renamed logf function to + yaz_log. Removed VC++ project files. + +1999-07-21 10:48 adam + + * win/makefile: Removed dmalloc.obj. + +1999-07-13 15:29 adam + + * include/dmalloc.h: Removed dmalloc.h. + +1999-07-13 15:28 adam + + * util/: Makefile.in, dmalloc.c, nmem.c: Better debugging for NMEM + routines. + +1999-07-13 15:24 adam + + * include/xmalloc.h, util/xmalloc.c: Updated memory debugging + memory allocatation routines. + +1999-07-13 15:23 adam + + * include/data1.h, retrieval/d1_read.c: Non-recursive version of + data1_read_node. data1_read_nodex reads stream of bytes (instead + of buffer in memory). + +1999-07-06 14:17 adam + + * include/statserv.h, server/seshigh.c, server/statserv.c: Added + option -1 that runs server once (for profiling purposes). + +1999-07-06 14:16 adam + + * retrieval/d1_write.c: Improved layout generated record in + SGML/XML format. + +1999-07-06 14:13 adam + + * client/client.c: Added "schema" command. + +1999-06-30 11:10 adam + + * util/readconf.c: Fixed reading of MS-DOS files. + +1999-06-18 13:29 adam + + * CHANGELOG: Added doc to CHANGELOG. + +1999-06-17 12:54 adam + + * include/backend.h, server/seshigh.c: Added facility to specify + implementation version - and name for server. + +1999-06-16 14:00 adam + + * zutil/yaz-ccl.c: Added proximity. + +1999-06-16 13:55 adam + + * client/client.c, comstack/xmosi.c, include/tcpip.h, + include/xmosi.h, include/yconfig.h: Added APDU log to client. + +1999-06-11 18:45 adam + + * asn/proto.c: Fixed minor bug in ScanRequest encoder. + +1999-06-10 13:45 adam + + * include/statserv.h, server/service.c, server/statserv.c: Added + bend_start, bend_stop handlers and removed pre_init. Handlers + bend_start/bend_stop are called when service/daemon is + started/stopped. + +1999-06-10 11:18 adam + + * server/statserv.c: Modified so that pre_init is called when + service/server is started. + +1999-06-09 17:10 heikki + + * win/makefile: Cleaning up. Seems to work all right + +1999-06-09 16:37 adam + + * README: Minor changes. + +1999-06-09 16:23 adam + + * configure, configure.in: Added enable-yc (removed with-yc) and + enable-tcpd. + +1999-06-09 16:01 adam + + * zutil/query.c: Fixed for compiled ASN.1. + +1999-06-09 15:33 heikki + + * win/makefile: Compiles and links both old and new type stuff all + right + +1999-06-09 13:05 heikki + + * win/makefile: At least it can compile + +1999-06-09 12:52 adam + + * include/z-proto.h: Added YAZ_EXPORT. + +1999-06-09 11:43 adam + + * Makefile.in, ccl/Makefile.in, client/Makefile.in, + odr/Makefile.in, retrieval/Makefile.in, server/Makefile.in, + util/Makefile.in, z39.50/Makefile.in, ztest/Makefile.in, + zutil/Makefile.in: Header files moved to include (used to be + z39.50). + +1999-06-09 11:43 adam + + * util/yc.tcl: Added option -I and variable h-path to specify path + for header files. + +1999-06-09 11:41 heikki + + * win/makefile: More work on the ASN-generated files. + +1999-06-08 16:32 heikki + + * win/makefile: Proto.h works all right, removed linker warnings + from server.lib + +1999-06-08 16:07 heikki + + * win/makefile: Renamed a pile of files Tmpdir (to get around Ms + leaving temp files around, and crashing when too many with same + number...) + +1999-06-08 15:11 adam + + * Makefile.in, configure, configure.in, asn/Makefile.in, + include/proto.h, include/prt-proto.h, include/z-proto.h, + z39.50/Makefile.in, zutil/Makefile.in: Fixed problem with + proto.h. + +1999-06-08 14:16 heikki + + * win/makefile.mak: Deleting this, renamed to makefile (.nothing) + +1999-06-08 14:15 heikki + + * win/makefile: Renamed to makefile (.nothing) (from .mak) Working + on the proto.h problems and alternative confiigurations + +1999-06-08 12:16 adam + + * Makefile.in: Minor changes. + +1999-06-08 12:12 adam + + * Makefile.in, zutil/yaz-ccl.c: Moved file to be part of zutil + (instead of util). + +1999-06-08 12:10 adam + + * zutil/Makefile.in: Added Makefile. + +1999-06-08 12:10 adam + + * Makefile.in, configure, configure.in, asn/Makefile.in, + asn/diagbib1.c, asn/prt-ext.c, asn/zget.c, client/Makefile.in, + lib/Makefile.in, util/Makefile.in, util/logrpn.c, + util/matchstr.c, util/otherinfo.c, util/pquery.c, util/query.c, + util/yaz-ccl.c, util/yaz-util.c, util/yc.tcl, z39.50/Makefile.in, + z39.50/datetime.asn, z39.50/esupdate.asn, z39.50/univres.asn, + z39.50/z.tcl, z39.50/z3950v3.asn, ztest/Makefile.in, + zutil/diagbib1.c, zutil/logrpn.c, zutil/otherinfo.c, + zutil/pquery.c, zutil/prt-ext.c, zutil/query.c, zutil/zget.c: New + sub directory zutil. Moved YAZ Compiler to be part of YAZ tree. + +1999-06-04 12:04 heikki + + * win/makefile.mak: Cleaning up + +1999-06-02 15:23 heikki + + * win/makefile.mak: Debug options for C compiler + +1999-06-01 16:29 adam + + * client/client.c, include/backend.h, server/seshigh.c, + ztest/ztest.c: Work on Extended Services. + +1999-05-27 15:07 adam + + * ztest/ztest.c: Fix. + +1999-05-27 15:02 adam + + * CHANGELOG, include/oid.h, server/seshigh.c, util/oid.c, + ztest/ztest.c: Assigned OID for old DB Update (VAL_DBUPDATE0). + +1999-05-26 17:24 adam + + * asn/prt-ext.c, client/client.c, server/seshigh.c: Fixed minor + bugs regarding DB Update (introduced by previous commit). + +1999-05-26 16:47 adam + + * asn/prt-ext.c, include/prt-ext.h: Implemented z_ext_record. + +1999-05-26 15:49 adam + + * asn/prt-exd.c, client/client.c, include/prt-exd.h, ztest/ztest.c: + DB Update implemented in client (very basic). + +1999-05-26 09:49 adam + + * configure, configure.in, odr/ber_int.c, util/marcdump.c: C++ + compilation. + +1999-05-19 10:26 heikki + + * win/makefile.mak: Added comments + +1999-05-18 18:58 heikki + + * win/makefile.mak: Does yaz, client, server.lib, *and* ztest! + +1999-05-18 18:03 heikki + + * win/makefile.mak: Compiles and links yaz.dll and client.exe, + which seems to work. Server and ztest still missing + +1999-05-06 15:21 adam + + * server/server.dsp: Added tcpdchk.c. + +1999-05-05 16:49 adam + + * README: Added ApS. + +1999-04-29 09:31 adam + + * comstack/tcpip.c: Changed tcpip_strtoaddr_ex so that only part + 'till '/' is considered part of hostname. + +1999-04-28 17:17 adam + + * Makefile.in: Fixed problem with Makefile and sub directories. + +1999-04-27 10:34 adam + + * odr/odr.c: Modified odr_destroy so that file is not closed when + file is 0. + +1999-04-26 09:25 adam + + * include/otherinfo.h, util/Makefile.in, util/otherinfo.c: + Implemented OtherInfo utility. + +1999-04-23 15:34 adam + + * retrieval/d1_doespec.c: Fixed bug in match_triple. Thanks to + Franck Falcoz . + +1999-04-21 13:46 adam + + * asn/proto.c: Fixed bug in {en,de}coder for OtherInformation. + +1999-04-20 11:56 adam + + * CHANGELOG, asn/proto.c, asn/prt-acc.c, asn/prt-add.c, + asn/prt-arc.c, asn/prt-dat.c, asn/prt-dia.c, asn/prt-esp.c, + asn/prt-exd.c, asn/prt-exp.c, asn/prt-ext.c, asn/prt-grs.c, + asn/prt-rsc.c, asn/prt-univ.c, asn/zget.c, client/client.c, + comstack/tcpip.c, include/odr.h, include/odr_use.h, + include/oid.h, include/proto.h, include/prt-acc.h, + include/prt-add.h, include/prt-arc.h, include/prt-dat.h, + include/prt-dia.h, include/prt-esp.h, include/prt-exd.h, + include/prt-exp.h, include/prt-ext.h, include/prt-grs.h, + include/prt-rsc.h, include/prt-univ.h, include/prt.h, + odr/ber_bit.c, odr/ber_oct.c, odr/odr_any.c, odr/odr_bit.c, + odr/odr_bool.c, odr/odr_choice.c, odr/odr_cons.c, odr/odr_enum.c, + odr/odr_int.c, odr/odr_null.c, odr/odr_oct.c, odr/odr_oid.c, + odr/odr_seq.c, odr/odr_use.c, odr/odr_util.c, + retrieval/d1_read.c, server/eventl.h, server/seshigh.c, + server/session.h, server/tcpdchk.c, util/oid.c, util/pquery.c: + Added 'name' paramter to encoder/decoder routines (typedef + Odr_fun). Modified all encoders/decoders to reflect this change. + +1999-04-16 16:45 adam + + * CHANGELOG, Makefile.in, configure, configure.in, + client/Makefile.in, comstack/tcpip.c, include/statserv.h, + server/Makefile.in, server/statserv.c, server/tcpdchk.c, + ztest/Makefile.in: Added interface for tcpd wrapper for access + control. + +1999-04-15 11:19 adam + + * include/oid.h, util/oid.c: Added COOKIE UserInfo OID. + +1999-04-09 14:16 adam + + * include/oid.h, util/oid.c: Added OtherInfo private OID proxy. + +1999-03-31 13:18 adam + + * CHANGELOG, client/Makefile.in, client/client.c, + include/backend.h, include/odr.h, odr/odr_mem.c, + retrieval/d1_grs.c, server/seshigh.c, util/nmem.c, + ztest/read-grs.c: Implemented odr_strdup. Added Reference ID to + backend server API. + +1999-03-31 13:15 adam + + * ccl/: Makefile.in, cclfind.c, cclqual.c, cclsh.c: Fixed memory + leaks in ccl_find_str and ccl_qual_rm. + +1999-03-31 13:11 adam + + * comstack/tcpip.c: Function getprotobyname only called once. Minor + change in tcpip_get to handle multi-threaded conditions. + +1999-03-23 15:14 adam + + * client/client.c: Yet another fix. + +1999-03-18 13:57 adam + + * asn/prt-exp.c: Fixed bug in TargetInfo encoder/decoder. + +1999-03-18 13:57 adam + + * CHANGELOG, client/client.c: Minor fix. + +1999-03-11 16:26 adam + + * CHANGELOG, client/client.c: Fixed bug (introduced by previous + commit). + +1999-03-11 12:12 adam + + * CHANGELOG, configure, configure.in, client/client.c: Added GNU + readline support. HTML display in client. + +1999-02-18 11:30 quinn + + * util/oid.c: Changed ES: Update OID + +1999-02-18 11:30 quinn + + * CHANGELOG: Added note about the ES: Update change + +1999-02-11 10:10 adam + + * util/nmem.c: Function nmem_init only mandatory on Windows. + +1999-02-02 14:57 adam + + * yaz.dsp, client/client.dsp, comstack/tcpip.c, include/statserv.h, + include/yconfig.h, server/eventl.c, server/server.dsp, + server/service.c, server/seshigh.c, server/statserv.c, + util/nmem.c, ztest/ztest.dsp: Uses preprocessor define WIN32 + instead of WINDOWS to build code for Microsoft WIN32. + +1999-02-01 16:37 adam + + * client/client.c: Fixed minor bug introduced by previous commit. + +1999-02-01 16:35 adam + + * client/client.c: Added XML display. + +1999-01-25 14:49 adam + + * retrieval/d1_prtree.c: Made data1_pr_tree make better printing of + data1 buffers. + +1999-01-08 12:23 adam + + * CHANGELOG, LICENSE, README, header.c, comstack/tcpip.c, + comstack/waislen.c, include/odr.h, include/prt.h, + include/tcpip.h, odr/ber_any.c, odr/ber_bit.c, odr/ber_int.c, + odr/ber_len.c, odr/ber_oct.c, odr/ber_tag.c, odr/dumpber.c, + odr/odr_enum.c, odr/odr_int.c, odr/odr_util.c: Added const + modifier to some of the BER/ODR encoding routines. + +1998-12-15 13:45 adam + + * ztest/: ztest.c, ztest.dsp: Minor change. + +1998-12-14 15:48 adam + + * ztest/ztest.c: Fixed memory leak - happened when fetching MARC + records. + +1998-12-03 12:33 adam + + * include/oid.h, util/oid.c: Added OID's for XML. + +1998-11-17 10:53 adam + + * yaz.dsp: Chagned project to include logrpn.c + +1998-11-17 10:52 adam + + * server/seshigh.c: Fixed minor bug (introduced by previous + commit). + +1998-11-16 17:02 adam + + * include/logrpn.h, server/seshigh.c, util/Makefile.in, + util/logrpn.c: Added loggin utilies, log_rpn_query and + log_scan_term. These used to be part of Zebra. + +1998-11-09 14:39 adam + + * configure, configure.in: Fixed configure. + +1998-11-09 14:23 adam + + * configure, configure.in: Minor changes. + +1998-11-05 11:24 quinn + + * tab/tagsetg.tag: Fixed typo in resourcetype + +1998-11-03 11:14 adam + + * include/data1.h: Changed definition of data1 node so that it uses + less space. + +1998-11-03 11:09 adam + + * server/seshigh.c: Fixed bug regarding YC. + +1998-10-28 16:09 adam + + * Makefile.in, configure, configure.in, asn/Makefile.in, + ccl/Makefile.in, client/Makefile.in, comstack/Makefile.in, + include/data1.h, odr/Makefile.in, retrieval/Makefile.in, + retrieval/d1_read.c, rfc1006/Makefile.in, server/Makefile.in, + util/Makefile.in, ztest/Makefile.in: Added --with-yc option to + configure. For the data1_node in data1.h: decreased size of + localdata and removed member "line" which wasn't useful. + +1998-10-28 11:28 adam + + * server/server.dsp: Minor changes for project. + +1998-10-28 11:26 adam + + * include/log.h, util/log.c: New functions log_init_file, + log_init_level, log_init_prefix. + +1998-10-20 17:16 adam + + * ztest/ztest.c: Minor change to prevent warning. + +1998-10-20 17:15 quinn + + * CHANGELOG: Work + +1998-10-20 17:13 adam + + * ztest/ztest.c: Minor fix regarding output for Item Order. + +1998-10-20 16:00 quinn + + * server/seshigh.c: Fixed Scan + +1998-10-20 16:00 quinn + + * CHANGELOG: Work + +1998-10-20 15:55 quinn + + * asn/proto.c, client/client.c, include/proto.h: Fixed Scan bug in + asn and client + +1998-10-20 15:23 quinn + + * client/client.c: changed preferred pos to 1 + +1998-10-20 15:21 adam + + * client/client.c: Fixed scan response handler. + +1998-10-19 17:24 adam + + * include/nmem.h, util/nmem.c: New nmem utility, nmem_transfer, + that transfer blocks from one NMEM to another. + +1998-10-19 16:16 adam + + * retrieval/d1_tagset.c: Fixed data1_gettagbyname. Bug introduced + by previous revision. + +1998-10-19 00:33 quinn + + * ztest/ztest.c: Added diagnostic dump of Item Order Eservice. + +1998-10-18 09:48 adam + + * util/oid.c: Fixed oid_getentbyoid so that it returns NULL when + parsed oid is NULL. + +1998-10-15 10:29 adam + + * CHANGELOG, include/data1.h, retrieval/d1_absyn.c, + retrieval/d1_tagset.c: Tag set type may be specified in reference + to it using "tagset" directive in .abs-files and "include" + directive in .tag-files. + +1998-10-15 10:26 adam + + * ztest/ztest.c: Added type cast to make C++ happy. + +1998-10-14 16:24 perhans + + * tab/meta.abs: Publisher changed from (2,3) to (2,31) in meta.abs. + +1998-10-14 15:32 adam + + * util/oid.c: Added include of string.h. + +1998-10-14 15:31 adam + + * retrieval/d1_attset.c: Bug fix. Bug introduced by previous + commit. + +1998-10-13 22:52 adam + + * tab/: bib1.att, explain.abs, explain.att, explain.tag, + generic.tag, gils-g.est, gils.abs, gils.att, gils.tag, meta.abs, + summary.abs, summary.tag, tagsetm.tag, usmarc.abs, usmarc.mar, + usmarc.tag, var1.var, wais.abs: Changed headers and removed + obsolete ordinal spec from attsets. + +1998-10-13 22:06 adam + + * CHANGELOG: Added changes. + +1998-10-13 22:05 adam + + * ztest/ztest.c: Minor change. + +1998-10-13 18:12 adam + + * include/backend.h, server/seshigh.c, ztest/ztest.c: Added support + for Surrogate Diagnostics for Scan Term entries. + +1998-10-13 18:11 adam + + * include/log.h: Added printf-format check for logf when using + GNUC. + +1998-10-13 18:10 adam + + * include/readconf.h: Added extra argument 'lineno' to function + readconf_line. + +1998-10-13 18:09 adam + + * include/d1_attset.h, include/data1.h, retrieval/d1_absyn.c, + retrieval/d1_attset.c, retrieval/d1_espec.c, retrieval/d1_map.c, + retrieval/d1_marc.c, retrieval/d1_tagset.c, + retrieval/d1_varset.c, util/readconf.c: Added support for + arbitrary OID's for tagsets, schemas and attribute sets. Added + support for multiple attribute set references and tagset + references from an abstract syntax file. Fixed many bad + logs-calls in routines that read the various specifications + regarding data1 (*.abs,*.att,...) and made the messages + consistent whenever possible. Added extra 'lineno' argument to + function readconf_line. + +1998-10-13 18:03 adam + + * util/pquery.c: Better checking for invalid OID's in p_query_rpn. + +1998-10-13 18:01 adam + + * include/oid.h, util/oid.c: Implemented support for dynamic object + identifiers. Function oid_getvalbyname now accepts raw OID's as + well as traditional names. + +1998-10-13 18:00 adam + + * include/nmem.h, util/nmem.c: Implemented + nmem_critical_{enter,leave}. + +1998-10-13 17:58 adam + + * odr/odr_util.c: Minor fix in odr_getoidbystr_nmem. + +1998-09-30 17:06 adam + + * client/Makefile.in, ztest/Makefile.in: Fixed LIB dependencies in + Makefiles. + +1998-09-28 14:44 adam + + * Makefile.in: Minor changes. + +1998-09-28 14:44 adam + + * retrieval/d1_expout.c: Fixed bug in f_integer. + +1998-09-22 11:41 adam + + * README: Fix. + +1998-09-22 11:40 adam + + * lib/Makefile.in: Fixed Makefile. + +1998-09-22 11:40 adam + + * client/client.c: Minor changes in sort spec. + +1998-09-02 14:41 adam + + * Makefile.in, configure, configure.in, include/backend.h, + lib/Makefile.in, makelib/Makefile.in, server/seshigh.c: Added + decode stream in bend search structures. + +1998-08-25 18:19 adam + + * Makefile.in, asn/Makefile.in, ccl/Makefile.in, + client/Makefile.in, comstack/Makefile.in, makelib/Makefile.in, + odr/Makefile.in, server/Makefile.in, util/Makefile.in, + ztest/Makefile.in: Minor changes to Makefile(s). + +1998-08-21 16:13 adam + + * CHANGELOG, Makefile, Makefile.in, README, configure, + configure.in, install-sh, asn/Makefile, asn/Makefile.in, + ccl/Makefile, ccl/Makefile.in, client/Makefile, + client/Makefile.in, comstack/Makefile, comstack/Makefile.in, + makelib/Makefile, makelib/Makefile.in, odr/Makefile, + odr/Makefile.in, retrieval/Makefile, retrieval/Makefile.in, + rfc1006/Makefile, rfc1006/Makefile.in, server/Makefile, + server/Makefile.in, server/statserv.c, util/Makefile, + util/Makefile.in, util/nmem.c, ztest/Makefile, ztest/Makefile.in: + Added GNU Configure script to build Makefiles. + +1998-08-19 18:10 adam + + * CHANGELOG, asn/proto.c, asn/zget.c, client/client.c, + include/proto.h, server/seshigh.c, ztest/ztest.c: Changed som + member names of DeleteResultSetRequest/Response. + +1998-08-03 12:23 adam + + * server/: seshigh.c, session.h: Fixed bug regarding Options for + Sort. + +1998-07-20 14:38 adam + + * include/backend.h, server/seshigh.c, server/session.h, + ztest/ztest.c: Implemented delete result set service to server + API. + +1998-07-20 14:38 adam + + * odr/: odr.c, odr_mem.c: More LOG_DEBUG-diagnostics. + +1998-07-20 14:37 adam + + * client/client.c: Added 'delete ' command. Changed open + command so that it reconnects if already connected. + +1998-07-20 14:36 adam + + * include/xmalloc.h: Minor changes. + +1998-07-20 14:35 adam + + * util/nmem.c, include/nmem.h: Added more memory diagnostics (when + NMEM_DEBUG is 1). + +1998-07-07 17:51 adam + + * server/statserv.c: Changed server so that it stops if bind fails + - "address already in use" typically causes this. + +1998-07-07 17:49 adam + + * comstack/tcpip.c, ccl/cclqual.c, ccl/ccltoken.c: Added braces to + avoid warning. + +1998-07-07 17:49 adam + + * util/nmem.c: Reduced chunk size. + +1998-07-03 16:21 adam + + * util/nmem.c: Added critical sections for pthreads-library. Thanks + to Ian Ibbotson, Fretwell Downing Informatics. + +1998-06-29 09:59 adam + + * comstack/tcpip.c: Minor fix. + +1998-06-26 13:17 quinn + + * include/yaz-version.h: v2+ + +1998-06-23 17:37 adam + + * comstack/tcpip.c: Added type cast to prevent warning. + +1998-06-22 13:32 adam + + * comstack/comstack.c, comstack/tcpip.c, include/comstack.h, + include/tcpip.h, server/statserv.c: Added 'conditional cs_listen' + feature. + +1998-06-09 15:55 adam + + * client/client.c, retrieval/d1_absyn.c, ztest/ztest.c: Minor + changes. + +1998-06-09 15:21 adam + + * tab/explain.abs: Added "other" element paths. + +1998-06-08 16:26 adam + + * retrieval/d1_expout.c: Fixed bug in f_queryTypeDetails. + +1998-06-05 10:58 adam + + * retrieval/d1_expout.c: Fixed un-initialised var in + f_rpnCapabilities. + +1998-06-05 10:57 adam + + * retrieval/d1_write.c: Fixed problem with function wordlen. + +1998-06-02 16:32 adam + + * tab/usmarc.abs: Changed usmarc configuration files. + +1998-06-02 12:23 adam + + * Makefile: Minor changes. + +1998-05-27 18:57 adam + + * include/backend.h, server/seshigh.c: Support for surrogate + diagnostic records added for bend_fetch. + +1998-05-27 18:55 adam + + * ztest/ztest.c: Minor changes. + +1998-05-20 15:51 adam + + * Makefile: Better documention in top-level Makefile. + +1998-05-20 11:55 adam + + * comstack/tcpip.c: Function tcpip_get treats EINPROGRESS error in + the same way as EWOULDBLOCK. EINPROGRESS shouldn't be returned - + but it is on Solaris in some cases. + +1998-05-20 11:52 adam + + * include/comstack.h: Removed 'dead' definition. + +1998-05-18 15:06 adam + + * CHANGELOG, asn/Makefile, asn/prt-exp.c, client/client.c, + include/comstack.h, include/d1_attset.h, include/data1.h, + include/oid.h, include/prt-dia.h, include/prt-exp.h, + include/tcpip.h, retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_expout.c, retrieval/d1_handle.c, + retrieval/d1_prtree.c, retrieval/d1_tagset.c, + retrieval/d1_write.c, tab/explain.abs, tab/explain.tag: Changed + the way attribute sets are handled by the retriaval module. + Extended Explain conversion / schema. Modified server and client + to work with ASN.1 compiled protocol handlers. + +1998-05-18 12:14 adam + + * include/proto.h: Minor change - removed 'dead' definitions. + +1998-05-18 12:13 adam + + * server/seshigh.c: Fixed call to es_request handler - extra + argument was passed. + +1998-05-18 12:10 adam + + * comstack/tcpip.c: Minor change to avoid C++ warning. + +1998-05-18 12:10 adam + + * util/: Makefile, oid.c: Added Explain-schema and Explain-tagset + to OID database. + +1998-04-27 12:17 perhans + + * yaz.dsp, client/client.dsp, server/server.dsp, ztest/ztest.dsp: + Copy files to binary directory. + +1998-04-26 13:08 adam + + * asn/Makefile: Fixed Makefile. + +1998-04-26 12:55 adam + + * yaz.dsp, yaz.dsw: Fixed project dependencies. + +1998-04-21 12:04 perhans + + * yaz.dsp: Added Universe resource report. + +1998-04-17 13:04 quinn + + * CHANGELOG: [no log message] + +1998-04-02 16:33 adam + + * Makefile: Minor changes. + +1998-04-02 10:27 adam + + * include/prt-exp.h, retrieval/d1_expout.c, tab/explain.abs, + tab/explain.tag: Minor change in definition of Z_TargetInfo. + Furhter work on Explain schema - added AttributeDetails. + +1998-03-31 17:13 adam + + * Makefile, asn/prt-ext.c, asn/zget.c, client/client.c, + include/prt-ext.h, retrieval/d1_expout.c, server/seshigh.c, + util/pquery.c, util/yaz-ccl.c: Development towards compiled + ASN.1. + +1998-03-31 13:07 adam + + * CHANGELOG, asn/prt-ext.c, client/client.c, include/backend.h, + include/proto.h, include/prt-ext.h, server/seshigh.c, + server/session.h, ztest/ztest.c: Furhter work on UNIverse + resource report. Added Extended Services handling in frontend + server. + +1998-03-20 18:29 adam + + * include/: odr.h, prt.h: Include of odr_use.h in odr.h. Added + prototype for odr_enum. + +1998-03-20 15:46 adam + + * CHANGELOG, asn/Makefile, asn/prt-ext.c, asn/prt-univ.c, + include/oid.h, include/proto.h, include/prt-ext.h, + include/prt-univ.h, tab/usmarc.abs, util/oid.c: Added UNIverse + Resource Reports. + +1998-03-20 15:45 adam + + * include/prt.h: Implemented odr_set_of and odr_enum. + +1998-03-20 15:45 adam + + * odr/: Makefile, odr_enum.c, odr_seq.c: Implemented odr_enum and + odr_set_of. + +1998-03-16 13:21 adam + + * retrieval/d1_grs.c: Fixed problem with tag names that weren't set + to the right value when wildcards were used. + +1998-03-12 12:28 adam + + * retrieval/d1_read.c: Fix: didn't set root member of tagged node + in function. data1_add_insert_taggeddata. + +1998-03-06 12:47 quinn + + * tab/: meta.abs, meta.tag: Updated meta schema to reflect Dublin + Core additions to TagsetG + +1998-03-05 09:15 adam + + * include/data1.h, retrieval/d1_absyn.c, retrieval/d1_read.c: + Implemented data1_add_insert_taggeddata utility which is more + flexible than data1_insert_taggeddata. + +1998-03-05 09:12 adam + + * tab/meta.abs: Added description. + +1998-03-05 09:09 adam + + * util/pquery.c: Minor change to make C++ happy. + +1998-03-05 09:07 adam + + * retrieval/d1_expout.c: Make data1 to EXPLAIN ignore local tags in + root. + +1998-03-05 09:05 adam + + * client/client.c: Added a few casts to make C++ happy. + +1998-02-27 15:08 adam + + * CHANGELOG, include/data1.h, retrieval/d1_absyn.c, + retrieval/d1_read.c: Added const to some char pointer arguments. + Reworked data1_read_node so that it doesn't create a tree with + pointers to original "SGML"-buffer. + +1998-02-27 15:05 adam + + * retrieval/d1_prtree.c: Added printing of integer nodes. + +1998-02-27 15:04 adam + + * server/statserv.c: Fixed bug in statserv_remove. + +1998-02-23 11:57 adam + + * retrieval/d1_marc.c: Take care of integer data nodes as well in + conversion. + +1998-02-16 11:20 adam + + * yaz.dsp: Added prt-dat.c. + +1998-02-11 14:48 adam + + * CHANGELOG: Changes. + +1998-02-11 12:53 adam + + * CHANGELOG, asn/proto.c, asn/prt-acc.c, asn/prt-add.c, + asn/prt-arc.c, asn/prt-dat.c, asn/prt-dia.c, asn/prt-esp.c, + asn/prt-exd.c, asn/prt-exp.c, asn/prt-ext.c, asn/prt-grs.c, + asn/prt-rsc.c, asn/zget.c, ccl/cclerrms.c, ccl/cclfind.c, + ccl/cclqual.c, ccl/ccltoken.c, client/Makefile, client/client.c, + comstack/tcpip.c, include/ccl.h, include/odr.h, + include/prt-exd.h, include/prt-exp.h, include/prt-ext.h, + include/prt.h, odr/ber_any.c, odr/ber_oct.c, odr/ber_tag.c, + odr/odr.c, odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, + odr/odr_choice.c, odr/odr_int.c, odr/odr_mem.c, odr/odr_oct.c, + odr/odr_oid.c, odr/odr_seq.c, odr/odr_tag.c, odr/odr_use.c, + odr/odr_util.c, retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_espec.c, retrieval/d1_expout.c, retrieval/d1_grs.c, + retrieval/d1_handle.c, retrieval/d1_map.c, retrieval/d1_marc.c, + retrieval/d1_read.c, retrieval/d1_sumout.c, + retrieval/d1_tagset.c, retrieval/d1_varset.c, rfc1006/Makefile, + server/eventl.c, server/requestq.c, server/seshigh.c, + server/session.h, server/statserv.c, util/marcdump.c, + util/nmem.c, util/nmemsdup.c, util/pquery.c, util/wrbuf.c, + util/xmalloc.c, util/yaz-ccl.c, ztest/read-grs.c, ztest/ztest.c: + Changed code so that it compiles as C++. + +1998-02-10 18:25 adam + + * CHANGELOG, tab/tagsetg.tag, tab/tagsetm.tag: Updated tagset-G and + M. + +1998-02-10 16:32 adam + + * util/oid.c: Added new Object Identifiers. + +1998-02-10 16:31 adam + + * asn/Makefile, asn/prt-dat.c, asn/prt-esp.c, asn/prt-exd.c, + asn/prt-ext.c, include/oid.h, include/proto.h, include/prt-dat.h, + include/prt-esp.h, include/prt-exd.h, include/prt-ext.h: + Implemented date and time structure. Changed the Update Extended + Service. + +1998-02-10 16:30 adam + + * CHANGELOG: Changes. + +1998-02-10 12:03 adam + + * CHANGELOG, include/backend.h, server/requestq.c, + server/seshigh.c, server/session.h, ztest/ztest.c: Added support + for extended handlers in backend server interface. + +1998-02-10 12:03 adam + + * client/client.c: Implemented command refid. Client prints + reference-ID's, when present, in responses. + +1998-02-10 12:01 adam + + * tab/gils.abs: Minor. + +1998-02-10 12:00 adam + + * tab/: explain.abs, explain.tag: [no log message] + +1998-02-10 11:29 adam + + * include/prt-grs.h: Changed definition of Z_Triple in file + prt-grs.h - member boolean renamed to zboolean. Some C++ + compilers complained about the name. + +1998-02-10 11:28 adam + + * include/statserv.h, server/statserv.c: Added app_name, + service_dependencies, service_display_name and options_func. + options_func allows us to specify a different function to + interogate the command line arguments. The other members allow us + to pass the full service details accross to the service manager + (CW). + +1998-01-30 16:32 adam + + * include/yaz-version.h: 1.4pl2. + +1998-01-30 16:24 adam + + * CHANGELOG, server/statserv.c: Fixed bug in inetd code. The server + listened on tcp:@:9999 even though it was started in inetd mode. + +1998-01-29 15:26 adam + + * doc/README: Updated. + +1998-01-29 15:08 adam + + * client/client.c: Better sort diagnostics. + +1998-01-29 15:08 adam + + * README: Updated README. + +1998-01-29 14:42 adam + + * CHANGELOG, Makefile: Updated. + +1998-01-29 14:30 adam + + * CHANGELOG, README, server/eventl.c, server/eventl.h, + server/session.h, server/statserv.c: Better event handle system + for NT/Unix. + +1998-01-29 14:28 adam + + * include/yaz-version.h: YAZ version 1.4pl1. + +1998-01-29 14:18 adam + + * odr/: Makefile, odr_unicode.c: Removed Unicode file. + +1998-01-29 14:17 adam + + * client/client.c: Added sort. + +1998-01-29 14:16 adam + + * ztest/ztest.c: Added dummy sort in test server. + +1998-01-29 14:15 adam + + * include/backend.h, server/seshigh.c: Implemented sort for the + backend interface. + +1998-01-29 14:13 adam + + * asn/: Makefile, zget.c: Function zget_presentRequest fills + resultSetId with "default" instead of "Default". + +1998-01-14 10:53 quinn + + * odr/dumpber.c: Added a bit more info to dump. + +1998-01-07 14:51 adam + + * client/client.c: Minor change. + +1998-01-07 14:34 adam + + * CHANGELOG, server/Makefile: Fixed Makefile(s). + +1998-01-07 13:59 adam + + * CHANGELOG, README, windows.txt, client/Makefile, server/Makefile, + ztest/Makefile: Updated Makefiles so that there is no dependancy + on ELIBS. + +1998-01-07 13:58 adam + + * client/client.c: Using fgets instead of gets. + +1998-01-05 10:04 adam + + * CHANGELOG, asn/prt-acc.c, asn/prt-add.c, asn/prt-exd.c, + asn/prt-ext.c: Fixed bugs in encoders/decoders - Not operator (!) + missing. + +1998-01-05 10:03 adam + + * header.c: 1998. + +1998-01-05 10:03 adam + + * LICENSE: Moved to 1998. + +1997-12-18 11:51 adam + + * CHANGELOG, include/data1.h, retrieval/d1_absyn.c, + tab/explain.abs: Implemented sub-trees feature for schemas - + including forward references. + +1997-12-12 07:32 adam + + * util/marcdump.c: Added include of string.h. + +1997-12-09 17:28 adam + + * CHANGELOG: Changes. + +1997-12-09 17:18 adam + + * CHANGELOG, include/data1.h, retrieval/d1_absyn.c, + retrieval/d1_expout.c, tab/bib1.att, tab/explain.abs, + tab/explain.tag: Work on EXPLAIN schema. First implementation of + sub-schema facility in the *.abs files. + +1997-12-09 17:17 adam + + * retrieval/d1_read.c: Fix bug regarding variants. Tags with prefix + "var" was incorrectly interpreted as "start of variants". Now, + only "var" indicates such start. Cleaned up data1_read_node so + tag names and variant names are copied and not pointed to by the + generated data1 tree. Data nodes still point to old buffer. + +1997-12-09 17:11 adam + + * util/log.c: Assume strerror is defined on Unixes as well. It's + standard ANSI. + +1997-11-24 12:33 adam + + * CHANGELOG, include/odr.h, odr/odr.c, odr/odr_null.c, + odr/odr_seq.c, retrieval/d1_espec.c, retrieval/d1_expout.c, + retrieval/d1_grs.c, tab/explain.abs, tab/explain.tag, + util/pquery.c, util/yaz-ccl.c: Using function odr_nullval() + instead of global ODR_NULLVAL when appropriate. + +1997-11-19 11:30 adam + + * retrieval/d1_expout.c, tab/explain.abs, tab/explain.tag: More + explain work. + +1997-11-18 10:51 adam + + * CHANGELOG, include/data1.h, retrieval/d1_expout.c, + retrieval/d1_grs.c, retrieval/d1_map.c, retrieval/d1_read.c, + tab/explain.abs, tab/explain.tag: Removed element num_children + from data1_node. Minor changes in data1 to Explain. + +1997-11-07 14:33 adam + + * CHANGELOG: Changes. + +1997-11-07 14:31 adam + + * include/statserv.h, server/server.dsp, server/service.c, + server/service.h, server/statserv.c, ztest/ztest.c, + ztest/ztest.dsp: Added NT Service name part of + statserv_options_block. Moved NT service utility to server + library. + +1997-11-06 12:36 adam + + * retrieval/: d1_doespec.c, d1_prtree.c: Implemented variant match + on simple elements -data1 tree and Espec-1. + +1997-11-05 10:20 adam + + * retrieval/d1_read.c: Minor change. + +1997-11-05 10:18 adam + + * client/client.c: The client handles records with no associated + syntax. + +1997-10-31 13:20 adam + + * include/data1.h, yaz.dsp, client/client.c, include/nmem.h, + include/prt.h, include/tpath.h, include/wrbuf.h, + include/xmalloc.h, odr/odr.c, odr/odr_util.c, + retrieval/d1_absyn.c, retrieval/d1_espec.c, server/statserv.c, + util/Makefile, util/nmem.c, util/xmalloc.c: Improved memory + debugging for xmalloc/nmem.c. References to NMEM instead of ODR + in n ESPEC-1 handling in source d1_espec.c. Bug fix: missing + fclose in data1_read_espec1. + +1997-10-29 13:00 adam + + * CHANGELOG, asn/zget.c: Routine zget_SearchRequest fills + resultSetName member with "default" instead of "Default". + +1997-10-27 15:04 adam + + * util/Makefile: Minor change. + +1997-10-27 15:04 adam + + * retrieval/: Makefile, d1_prtree.c: New debug utility, + data1_pr_tree, that dumps a data1 tree. + +1997-10-27 15:03 adam + + * CHANGELOG, include/statserv.h, server/statserv.c: Added new + member to statserver_options_block, pre_init, which specifies a + callback to be invoked after command line parsing and before the + server listens for the first time. + +1997-10-27 14:55 adam + + * server/requestq.c: Fixed memory leak: member response wasn't + freed when queue was destroyed. + +1997-10-27 14:54 adam + + * include/data1.h, retrieval/d1_absyn.c, tab/gils.abs, + tab/meta.abs: Changed structure field in data1 node to be simple + string which is "unknown" to the retrieval system itself. + +1997-10-27 14:52 adam + + * client/client.c, include/yaz-util.h: Header yaz-util includes all + YAZ utility header files. + +1997-10-06 11:37 adam + + * include/data1.h: Added prototype for data1_get_map_buf. + +1997-10-06 11:09 adam + + * util/nmem.c: Function mmem_exit releases memory used by the + freelists. + +1997-10-06 10:55 adam + + * util/log.c: Changed log_init so that previous (if any) is closed. + +1997-10-02 14:16 quinn + + * TODO: Smll + +1997-10-02 14:10 quinn + + * retrieval/d1_doespec.c: Attempt to fix bug in especs + +1997-10-02 14:09 quinn + + * CHANGELOG: CHanged date + +1997-09-30 13:50 adam + + * retrieval/: d1_handle.c, d1_marc.c: Added handler + data1_get_map_buf that is used by data1_nodetomarc. + +1997-09-30 13:48 adam + + * server/seshigh.c: Fixed bug introduced by previous commit. + +1997-09-30 13:47 adam + + * util/yaz-util.c: Added function 'cause checkergcc doesn't include + assert handler. + +1997-09-30 11:33 adam + + * odr/ber_tag.c: Minor changes - removed indentation of ifdef. + +1997-09-29 15:18 adam + + * CHANGELOG, client/client.c, include/oid.h, retrieval/d1_espec.c, + server/seshigh.c, util/oid.c, util/pquery.c: Added function, + oid_ent_to_oid, to replace the function oid_getoidbyent, which is + not thread safe. + +1997-09-29 11:01 adam + + * include/ccl.h: Changed CCL parser to be thread safe. New type, + CCL-parser, declared and a create/destructor + ccl_parser_create/ccl_parser_destroy has been added. + +1997-09-29 10:58 adam + + * util/yaz-ccl.c: Fixed conversion of trees so that true copy is + made. + +1997-09-29 10:56 adam + + * ccl/: cclerrms.c, cclfind.c, cclqual.c, ccltoken.c: Changed CCL + parser to be thread safe. New type, CCL_parser, declared and a + create/destructers ccl_parser_create/ccl_parser/destory has been + added. + +1997-09-29 09:24 adam + + * CHANGELOG: Added changes. + +1997-09-29 09:24 adam + + * TODO, yaz.dsp: Updated project files, README, TODO, etc. + +1997-09-29 09:22 adam + + * asn/diagbib1.c: Added static modifier to msg_tab. + +1997-09-29 09:21 adam + + * retrieval/d1_espec.c: Added typecast to avoid warnings on MSVC. + +1997-09-29 09:20 adam + + * client/client.c: Client code uses nmem_init. + +1997-09-29 09:19 adam + + * server/statserv.c: Server library uses nmem_init/nmem_exit. The + log prefix no longer includes leading path on NT. + +1997-09-29 09:17 adam + + * odr/odr_seq.c: Added typecast to avoid warnings on MSVC. + +1997-09-29 09:16 adam + + * comstack/comstack.c, include/comstack.h: Array cs_errlist no + longer global. + +1997-09-29 09:15 adam + + * comstack/tcpip.c: Changed use of setsockopt to avoid warnings on + MSVC. + +1997-09-29 09:14 adam + + * include/nmem.h: New functions nmem_init/nmem_exit to init/close + NMEM system. + +1997-09-29 09:13 adam + + * util/pquery.c: Changed type of a few variables to avoid warnings. + +1997-09-29 09:13 adam + + * util/log.c: Minor changes. + +1997-09-29 09:12 adam + + * util/nmem.c: NMEM thread safe. NMEM must be initialized before + use (sigh) - routine nmem_init/nmem_exit implemented. + +1997-09-26 11:41 adam + + * client/client.c: Updated client to handle multiple diagnostics. + +1997-09-24 15:35 adam + + * include/data1.h, include/marcdisp.h, retrieval/d1_marc.c: Added + two members to data1_marctab to ease reading of weird MARC + records. + +1997-09-24 15:29 adam + + * util/: marcdisp.c, marcdump.c: Added verbose option -v to + marcdump utility. + +1997-09-22 14:33 adam + + * client/Makefile, util/pquery.c, ztest/Makefile: Fixed bug + introduced by previous commit. + +1997-09-18 10:48 adam + + * util/log.c: Fixed minor bug that caused log_init to ignore + filename. + +1997-09-18 10:47 adam + + * README: Added better doc about windows. + +1997-09-17 15:30 quinn + + * doc/yaz.rtf: Added RTF version of YAZ doc + +1997-09-17 14:28 adam + + * retrieval/d1_handle.c: Introduced new 'global' data1 handle. + +1997-09-17 14:25 adam + + * odr/odr_unicode.c: First Unicode attempt. + +1997-09-17 14:10 adam + + * CHANGELOG, Makefile, README, TODO, yaz.dsp, asn/Makefile, + ccl/Makefile, client/Makefile, client/client.c, + comstack/Makefile, comstack/tcpip.c, comstack/xmosi.c, + include/backend.h, include/comstack.h, include/d1_attset.h, + include/data1.h, include/nmem.h, include/prt.h, include/wrbuf.h, + include/yaz-version.h, odr/Makefile, odr/ber_tag.c, + retrieval/Makefile, retrieval/d1_absyn.c, retrieval/d1_attset.c, + retrieval/d1_doespec.c, retrieval/d1_espec.c, + retrieval/d1_expout.c, retrieval/d1_grs.c, retrieval/d1_map.c, + retrieval/d1_marc.c, retrieval/d1_read.c, retrieval/d1_soif.c, + retrieval/d1_sumout.c, retrieval/d1_sutrs.c, + retrieval/d1_tagset.c, retrieval/d1_varset.c, + retrieval/d1_write.c, server/Makefile, server/seshigh.c, + server/statserv.c, tab/bib1.att, tab/gils.abs, util/Makefile, + util/nmemsdup.c, util/pquery.c, ztest/Makefile, ztest/ztest.c: + YAZ version 1.4. + +1997-09-09 12:10 adam + + * yaz.dsp, client/client.dsp, server/server.dsp, server/statserv.c, + util/oid.c, ztest/ztest.c, ztest/ztest.dsp: Another MSV5.0 port. + Changed projects to include proper library/include paths. Server + starts server in test-mode when no options are given. + +1997-09-05 17:26 adam + + * include/backend.h, server/seshigh.c: Added ODR encode in search + and scen bend request structures. Fixed a few enums that caused + trouble with C++. + +1997-09-05 11:50 adam + + * Makefile, include/data1.h, retrieval/d1_absyn.c, + retrieval/d1_attset.c, retrieval/d1_espec.c, retrieval/d1_map.c, + retrieval/d1_marc.c, retrieval/d1_read.c, retrieval/d1_tagset.c, + retrieval/d1_varset.c: Removed global data1_tabpath - uses + data1_get_tabpath() instead. + +1997-09-04 16:19 adam + + * server/: eventl.c, statserv.c: Added credits. + +1997-09-04 15:51 adam + + * retrieval/d1_marc.c: Added data1 to marc conversion with + indicators. + +1997-09-04 15:50 adam + + * ztest/ztest.c: Bug fix in ztest. + +1997-09-04 15:49 adam + + * tab/usmarc.abs: Minor changes. + +1997-09-04 15:48 adam + + * retrieval/d1_marc.c: Added data1 to marc conversion. + +1997-09-04 15:46 adam + + * README: Added ztest. + +1997-09-04 15:45 adam + + * client/client.c: Added UNImarc to list of available syntaxes. + +1997-09-04 09:59 adam + + * util/Makefile: Added atoin.o. + +1997-09-04 09:59 adam + + * include/log.h: Added include of xmalloc.h. + +1997-09-04 09:58 adam + + * include/yaz-util.h: Added prototype for atoi_n. + +1997-09-04 09:57 adam + + * include/marcdisp.h: Definition of ISO2709 control characters to + this file. + +1997-09-04 09:57 adam + + * include/yconfig.h: When using UNIX, O_BINARY is defined if it's + not already defined. + +1997-09-04 09:54 adam + + * util/yaz-util.c: Right hande side operand of yaz_matchstr may + include a ? in which case it returns "match ok". + +1997-09-04 09:53 adam + + * util/readconf.c: Added include readconf.h. + +1997-09-04 09:52 adam + + * util/: atoin.c, marcdisp.c: Moved atoi_n function to separate + source file. + +1997-09-01 11:31 adam + + * server/eventl.h: Removed definition statserv_remove from + statserv.h to eventl.h. + +1997-09-01 11:31 adam + + * include/statserv.h: Removed definition statserv_remove to + eventl.h. (A hack really). + +1997-09-01 11:30 adam + + * include/data1.h: Added include of yaz-util.h. + +1997-09-01 10:58 adam + + * include/data1.h: Removed declaration of data1_matchstr since it's + a macro. + +1997-09-01 10:55 adam + + * ztest/: Makefile, dummy-grs, dummy-records, dummy-words, + read-grs.c, ztest.c, ztest.dsp: New windows NT/95 port using + MSV5.0. Test server ztest now in separate directory. When using + NT, this test server may operate as an NT service. Note that the + service.[ch] should be part of generic, but it isn't yet. + +1997-09-01 10:54 adam + + * util/: Makefile, log.c, options.c, pquery.c: New windows NT/95 + port using MSV5.0. Made prefix query handling thread safe. The + function options ignores empty arguments when met. + +1997-09-01 10:52 adam + + * server/: Makefile, eventl.c, requestq.c, server.dsp, seshigh.c, + session.h, statserv.c: New windows NT/95 port using MSV5.0. The + test server 'ztest' was moved a separate directory. MSV5.0 + project server.dsp created. As an option, the server can now + operate as an NT service. + +1997-09-01 10:51 adam + + * odr/: ber_tag.c, odr.c: New windows NT/95 port using MSV5.0. Had + to avoid a few static variables used in function ber_tag. These + are now part of the ODR structure. + +1997-09-01 10:49 adam + + * include/: backend.h, ccl.h, comstack.h, d1_attset.h, data1.h, + diagbib1.h, log.h, marcdisp.h, nmem.h, odr.h, odr_use.h, oid.h, + options.h, pquery.h, proto.h, prt-acc.h, prt-arc.h, prt-dia.h, + prt-esp.h, prt-exd.h, prt-exp.h, prt-ext.h, prt-grs.h, prt.h, + readconf.h, statserv.h, tcpip.h, wrbuf.h, xmalloc.h, yaz-ccl.h, + yaz-util.h, yconfig.h: New windows NT/95 port using MSV5.0. To + export DLL functions the YAZ_EXPORT modifier was added. Defined + in yconfig.h. + +1997-09-01 10:49 adam + + * comstack/: comstack.c, tcpip.c: New windows NT/95 port using + MSV5.0. Minor changes only. + +1997-09-01 10:48 adam + + * client/: client.c, client.dsp: New windows NT/95 port using + MSV5.0. Only a few changes made to avoid warnings. Sub project + created: client.dsp. + +1997-09-01 10:48 adam + + * ccl/: cclfind.c, cclqual.c, ccltoken.c: New windows NT/95 port + using MSV5.0. Only a few changes made to avoid warnings. + +1997-09-01 10:47 adam + + * CHANGELOG, Makefile, yaz.dsp, yaz.dsw: New windows NT/95 port + using MSV5.0. + +1997-08-29 15:34 quinn + + * util/oid.c: Added thesaurus oids + +1997-08-19 10:46 quinn + + * util/oid.c: Added Thesaurus OID + +1997-08-19 10:45 quinn + + * include/oid.h: Added Thesaurus + +1997-08-19 10:43 quinn + + * include/oid.h: Housekeeping + +1997-08-19 10:40 quinn + + * include/oid.h: Added thesaurus OID + +1997-07-28 14:34 adam + + * CHANGELOG, include/oid.h, util/oid.c: Added new OID entries + (RVDM). + +1997-07-21 14:48 adam + + * util/yaz-util.c: Removed windows DLL stubs. + +1997-07-21 14:47 adam + + * util/nmem.c: Moved definition of nmem_control and nmem_block. + +1997-07-21 14:46 adam + + * include/prt-exp.h: Bug fix: changed definition of attributeValues + in Z_AttributeOccurrence. + +1997-07-21 14:44 adam + + * include/: nmem.h, odr.h: Moved definitions of nmem_block and + nmem_control. + +1997-07-02 16:12 adam + + * header.c: Changed header to 1997. + +1997-07-02 14:57 adam + + * include/yconfig.h: Fixed #if-bug. Thanks to RVDM. + +1997-07-01 16:15 adam + + * asn/diagbib1.c: Added new BIB-1 diagnostic messages. + +1997-07-01 15:52 adam + + * CHANGELOG: Added messages about new diagnostic codes. + +1997-07-01 15:49 adam + + * client/client.c: Take care of case when invalid target is + specified on command line. + +1997-06-23 12:31 adam + + * util/yaz-ccl.c: Added ODR argument to ccl_rpn_query and + ccl_scan_query. + +1997-06-23 12:31 adam + + * odr/odr_seq.c: Added RVDM's SEQUENCE OF patch again! + +1997-06-23 12:30 adam + + * include/yaz-ccl.h: Added ODR stream as parameter to ccl_rpn_query + and ccl_scan_query. + +1997-06-23 12:30 adam + + * client/client.c: Added call to ccl_rpn_delete in search. Added + ODR stream "out" as parameter to ccl_rpn_query to release RPN + query. + +1997-06-23 12:28 adam + + * CHANGELOG: Added ODR argument to ccl_rpn_query to provide release + of RPN structure. + +1997-05-14 13:14 quinn + + * tab/gils-v1/: gils.abs, gils.att, gils.tag: Old versions of GILS + tables + +1997-05-14 13:09 quinn + + * tab/: gils.abs, gils.att, gils.tag, tagsetg.tag: Moved to GILS + version 2 + +1997-05-14 08:53 adam + + * CHANGELOG, asn/prt-ext.c, asn/prt-grs.c, ccl/cclfind.c, + client/client.c, comstack/tcpip.c, comstack/xmosi.c, + include/backend.h, include/ccl.h, include/comstack.h, + include/d1_attset.h, include/d1_map.h, include/data1.h, + include/diagbib1.h, include/dmalloc.h, include/log.h, + include/marcdisp.h, include/nmem.h, include/odr.h, + include/odr_use.h, include/oid.h, include/options.h, + include/pquery.h, include/proto.h, include/prt-acc.h, + include/prt-add.h, include/prt-arc.h, include/prt-dia.h, + include/prt-esp.h, include/prt-exd.h, include/prt-exp.h, + include/prt-ext.h, include/prt-grs.h, include/prt-rsc.h, + include/prt.h, include/readconf.h, include/statserv.h, + include/tcpip.h, include/tpath.h, include/wrbuf.h, + include/xmalloc.h, include/xmosi.h, include/yaz-ccl.h, + include/yaz-util.h, odr/ber_any.c, odr/ber_tag.c, odr/dumpber.c, + odr/odr_choice.c, odr/odr_cons.c, odr/odr_seq.c, odr/odr_tag.c, + retrieval/d1_absyn.c, retrieval/d1_doespec.c, + retrieval/d1_espec.c, retrieval/d1_grs.c, retrieval/d1_read.c, + retrieval/d1_varset.c, util/readconf.c: C++ support. + +1997-05-05 13:21 adam + + * odr/odr_seq.c: In handling of SEQUENCE OF: Counter set to zero + when SEQUENCE OF isn't there at all. + +1997-05-05 13:20 adam + + * client/client.c: Client uses "options" utility and marc dump + filename may be specified as an option (-m ). + +1997-05-05 13:19 adam + + * CHANGELOG: Changes. + +1997-05-02 10:39 quinn + + * include/oid.h, util/oid.c: Support for private OID table added. + Thanks to Ronald van der Meer + +1997-05-02 10:39 quinn + + * asn/zget.c: New PDUs added, thanks to Ronald van der Meer + +1997-05-02 10:38 quinn + + * CHANGELOG: None + +1997-05-01 17:07 adam + + * util/yaz-util.c: Added DLL entry point routines. + +1997-05-01 17:06 adam + + * include/log.h, util/log.c, util/marcdisp.c, util/wrbuf.c: Added + log_mask_str_x routine. + +1997-05-01 17:06 adam + + * comstack/tcpip.c: Moved WINSOCK init. code to tcpip_init routine. + +1997-04-30 10:52 quinn + + * asn/prt-add.c, asn/prt-exd.c, asn/prt-ext.c, ccl/Makefile, + ccl/cclerrms.c, ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, + ccl/cclqual.c, ccl/cclsh.c, ccl/cclstr.c, ccl/ccltoken.c, + include/ccl.h, include/odr.h, include/oid.h, include/proto.h, + include/prt-add.h, include/yaz-version.h, odr/odr.c, + odr/odr_choice.c, retrieval/d1_doespec.c, retrieval/d1_soif.c, + server/seshigh.c, util/oid.c: Null + +1997-04-30 10:49 quinn + + * CHANGELOG: Work + +1997-02-24 11:37 adam + + * Makefile, README: Changed header. + +1997-02-19 15:46 adam + + * retrieval/d1_absyn.c: The "all" specifier only affects elements + that are indexed (and not all elements). + +1997-01-02 11:47 quinn + + * CHANGELOG, retrieval/d1_absyn.c, tab/bib1.att, tab/gils.abs: + Added optional, physical ANY + +1996-12-05 14:17 quinn + + * CHANGELOG, retrieval/d1_grs.c: Fixed GRS-1 null-ref + +1996-11-15 16:48 adam + + * tab/explain.abs: Fixed reference to bad element. Other small + changes. + +1996-11-11 14:15 adam + + * util/pquery.c: Added proximity operator. + +1996-11-11 14:14 adam + + * asn/proto.c: Fixed tagging bug in z_ProximityOperator. + +1996-11-11 14:14 adam + + * CHANGELOG, README: Added doc about proximity in PQF. + +1996-11-08 15:09 adam + + * tab/gils.abs: Removed reference to gils-f.est. + +1996-11-08 12:03 adam + + * client/client.c: Client accepts multiple database names. + +1996-11-08 12:03 adam + + * CHANGELOG, Makefile: More work. + +1996-11-01 09:45 adam + + * comstack/tcpip.c: Bug fix: used close on MS-Windows. Fixed to + closesocket. + +1996-10-29 14:36 adam + + * util/: tpath.c, yaz-ccl.c, yaz-util.c: Added header. + +1996-10-29 14:35 adam + + * retrieval/d1_read.c: Implemented data1_set_tabpath and + data1_get_tabpath. + +1996-10-29 14:34 adam + + * makelib/Makefile: Minor change. + +1996-10-29 14:34 adam + + * include/: d1_attset.h, data1.h, tpath.h: New functions to get/set + data1_tabpath. + +1996-10-29 14:33 adam + + * header.c: Updated. + +1996-10-23 14:31 adam + + * odr/odr_cons.c: Added 'static' modifier to dummy variable in + odr_constructed_begin. + +1996-10-11 17:06 quinn + + * CHANGELOG, include/yaz-version.h: Version 1.3 + +1996-10-11 17:00 adam + + * ccl/LICENSE, ccl/Makefile, ccl/bib1, ccl/cclerrms.c, + ccl/cclfind.c, ccl/cclptree.c, ccl/cclqfile.c, ccl/cclqual.c, + ccl/cclsh.c, ccl/cclstr.c, ccl/ccltoken.c, include/ccl.h: CCL + parser from Europagate Email gateway 1.0. + +1996-10-11 14:38 quinn + + * CHANGELOG: Smallish + +1996-10-11 13:57 quinn + + * include/data1.h, retrieval/d1_doespec.c, retrieval/d1_grs.c, + server/seshigh.c: Smallish + +1996-10-11 12:35 adam + + * retrieval/d1_read.c: Fixed a bug that caused data1_read_node to + core dump when no abstract syntax was defined in a "sgml"-record. + +1996-10-10 14:35 quinn + + * asn/prt-exd.c, asn/prt-ext.c, include/prt-exd.h, + include/prt-ext.h, util/oid.c: Added Update extended service. + +1996-10-10 14:32 quinn + + * CHANGELOG: ZZ + +1996-10-10 13:52 quinn + + * asn/prt-add.c: Added SearchResult additionalInfo + +1996-10-10 13:51 quinn + + * include/prt-add.h: Added SerchResult additional info + +1996-10-09 17:54 quinn + + * CHANGELOG, asn/Makefile, asn/proto.c, asn/prt-ext.c, + include/oid.h, include/proto.h, include/prt-exp.h, + include/prt-ext.h, util/oid.c: Added SearchInfoReport + +1996-10-08 14:58 adam + + * include/odr.h, include/prt.h, odr/odr.c, odr/odr_choice.c: New + ODR function, odr_choice_enable_bias, to control behaviour of + odr_choice_bias. + +1996-10-08 14:56 adam + + * asn/proto.c: Bug fix: tagging of type 101 query. + +1996-10-08 14:55 adam + + * CHANGELOG: changes. + +1996-10-08 12:45 quinn + + * server/Makefile: [no log message] + +1996-10-08 12:44 quinn + + * client/client.c: Resolved conflicts. + +1996-10-08 12:43 quinn + + * retrieval/d1_soif.c: Added SOIF syntax. + +1996-10-07 17:54 quinn + + * tab/: gils-f.est, gils-summary.map, summary.abs, summary.tag: + Added files + +1996-10-07 17:29 quinn + + * include/data1.h, include/oid.h, include/proto.h, + retrieval/Makefile, server/Makefile, util/oid.c: Added SOIF + support + +1996-10-07 17:28 quinn + + * CHANGELOG, Makefile, client/Makefile, client/client.c: Work + +1996-08-29 16:19 quinn + + * client/client.c: Fixed conflict (CVS) + +1996-08-27 12:43 quinn + + * client/client.c: Made select() optional + +1996-08-12 16:10 adam + + * util/: Makefile, pquery.c: New function p_query_attset to define + default attribute set. + +1996-08-12 16:09 adam + + * odr/Makefile: ODR_DEBUG not set. + +1996-08-12 16:09 adam + + * client/client.c, include/pquery.h: Default prefix query attribute + set defined by using p_query_attset. + +1996-08-12 16:08 adam + + * README: New function: p_query_attset. + +1996-07-26 16:07 quinn + + * asn/proto.c: Small + +1996-07-26 15:37 quinn + + * client/default.bib, include/odr.h, include/prt.h, odr/Makefile, + odr/odr.c, odr/odr_cons.c, tab/gils-b.est, tab/gils-g.est, + tab/gils.abs: Various smaller things. Gathered header-files. + +1996-07-26 15:36 quinn + + * asn/proto.c: Various smallish + +1996-07-26 15:35 quinn + + * CHANGELOG: Gathered header-files + +1996-07-26 14:34 quinn + + * comstack/xmosi.c: Porting. + +1996-07-06 21:58 quinn + + * CHANGELOG, asn/proto.c, client/client.c, client/default.bib, + comstack/tcpip.c, comstack/xmosi.c, include/comstack.h, + include/data1.h, include/tcpip.h, include/yconfig.h, + odr/ber_int.c, retrieval/d1_doespec.c, retrieval/d1_espec.c, + retrieval/d1_grs.c, retrieval/d1_read.c, server/eventl.c, + server/seshigh.c, server/statserv.c, tab/gils-b.est, + tab/gils-g.est, tab/gils.abs: System headerfiles gathered in + yconfig + +1996-07-03 15:21 adam + + * util/xmalloc.c: Function xfree_f checks for NULL pointer. + +1996-06-10 10:57 quinn + + * CHANGELOG, include/yaz-version.h: 1.2 + +1996-06-10 10:57 quinn + + * include/proto.h: Added OPAC, ResourceReport + +1996-06-10 10:56 quinn + + * retrieval/Makefile, retrieval/d1_absyn.c, retrieval/d1_map.c, + retrieval/d1_sumout.c, server/seshigh.c, tab/gils.abs: Work on + Summary. + +1996-06-10 10:55 quinn + + * include/: d1_map.h, data1.h, proto.h, prt-arc.h, prt-ext.h: Added + Summary. Unfinished work + +1996-06-10 10:55 quinn + + * asn/prt-arc.c: Added Summary, OPAC + +1996-06-10 10:53 quinn + + * client/client.c: Added Summary + +1996-06-10 10:53 quinn + + * asn/: Makefile, proto.c, prt-ext.c: Added + Summary,OPAC,ResourceReport + +1996-06-10 10:53 quinn + + * CHANGELOG, makelib/Makefile: Work + +1996-06-07 13:04 quinn + + * retrieval/d1_doespec.c: Fixed tag->tagset dependency + +1996-06-06 14:07 quinn + + * tab/wais.abs: [no log message] + +1996-06-05 10:53 adam + + * tab/gils-b.est: Added availability/linkage to brief syntax. + +1996-06-05 10:51 adam + + * tab/bib1.att: Added local-subject-index to any. + +1996-06-04 11:52 quinn + + * tab/gils.abs: Added sampletext + +1996-06-03 17:57 quinn + + * tab/: bib1.att, wais.abs: Added body-of-text to BIB-1 ANY and the + WAIS profile + +1996-06-03 11:47 quinn + + * tab/: gils-b.est, gils-g.est, gils.abs, tagsetm.tag: Added + schemaIdentifier. + +1996-06-03 11:46 quinn + + * retrieval/d1_grs.c: Added OID data type. + +1996-06-03 11:46 quinn + + * odr/odr_util.c: Fixed stupid bug in str2oid routine. + +1996-06-03 11:46 quinn + + * include/data1.h: Added OID type. + +1996-06-03 11:45 quinn + + * client/client.c: Added display of OIDs in the GRS routine. + +1996-05-31 15:52 quinn + + * retrieval/d1_absyn.c: Fixed uninitialized variable for local tags + in abstract syntax. + +1996-05-31 15:51 quinn + + * CHANGELOG, LICENSE: [no log message] + +1996-05-30 14:03 quinn + + * tab/: gils-b.est, gils-g.est: Work. + +1996-05-30 13:03 quinn + + * server/seshigh.c: Fixed NextresultSetPosition bug fixed. + +1996-05-29 17:48 quinn + + * util/readconf.c: Added \n to the isspace rule. + +1996-05-29 17:47 quinn + + * asn/proto.c: Fixed in bug DiagRecs decoder. Thanks to Linda + Harris. + +1996-05-29 13:25 adam + + * doc/README: Fixed URL. + +1996-05-29 13:19 quinn + + * tab/wais.abs: Added phrases to WAIS table + +1996-05-29 12:05 quinn + + * util/readconf.c: Changed space criteria to support 8-bit + characters + +1996-05-29 12:03 quinn + + * server/statserv.c: Options work + +1996-05-29 12:02 quinn + + * CHANGELOG: Work + +1996-05-22 10:35 adam + + * asn/Makefile, ccl/Makefile, client/Makefile, comstack/Makefile, + odr/Makefile, retrieval/Makefile, rfc1006/Makefile, + server/Makefile, util/Makefile: Removed CFLAGS definiton. + +1996-05-22 10:35 adam + + * Makefile: Bug fix. + +1996-05-22 10:34 adam + + * comstack/xmosi.c: Added ifdef USE_XTIMOSI; so that 'make depend' + works. + +1996-05-14 11:26 quinn + + * server/seshigh.c: Added attribute set to scan backend + +1996-05-14 11:26 quinn + + * CHANGELOG: Work. + +1996-05-14 11:01 quinn + + * include/backend.h: Added AttributeSet. + +1996-05-09 11:32 quinn + + * tab/bib1.att: Any unfolds + +1996-05-09 09:27 quinn + + * tab/gils.abs: Added some phrase indices. + +1996-05-09 09:27 quinn + + * retrieval/: d1_absyn.c, d1_attset.c: Multiple local attributes + values supported. + +1996-05-09 09:27 quinn + + * include/: d1_attset.h, data1.h: Multiple local values supported. + +1996-05-09 09:26 quinn + + * client/client.c: [no log message] + +1996-05-09 09:25 quinn + + * client/client.c: Sm + +1996-05-01 14:45 quinn + + * retrieval/: d1_absyn.c, d1_grs.c, d1_map.c: Support use of local + tag names in abs file. + +1996-05-01 14:45 quinn + + * include/log.h: [no log message] + +1996-04-10 13:40 quinn + + * tab/gils.abs: [no log message] + +1996-04-10 13:40 quinn + + * include/yaz-version.h: 1.1pl2 + +1996-04-10 13:39 quinn + + * asn/proto.c: Fixed bug in UserInfo + +1996-04-10 13:39 quinn + + * CHANGELOG: New version + +1996-03-25 11:18 quinn + + * tab/: meta-b.est, meta-usmarc.map, meta.abs, meta.tag, + usmarc-b.est: Added "meta" profile - dublin core experiment + +1996-03-25 11:18 quinn + + * retrieval/d1_marc.c: Removed trailing whitespace from data + elements + +1996-03-15 17:10 adam + + * README: Introduced new prefix query features. + +1996-03-15 12:05 adam + + * client/: Makefile, client.c: The user can set the preferred query + type (prefix, ccl, ..) with the querytype command. + +1996-03-15 12:03 adam + + * util/pquery.c: Attribute set can be set globally for a query with + the @attrset operator. The @attr operator has an optional + attribute-set specifier that sets the attribute set locally. + +1996-03-15 12:01 adam + + * include/pquery.h: Extra argument to p_query_rpn: protocol. Extra + arguments to p_query_scan: protocol and attributeSet. + +1996-03-13 10:19 quinn + + * tab/gils-usmarc.map: Added bogus mapping of rank field + +1996-03-08 15:38 quinn + + * odr/dumpber.c: Fixed output. + +1996-03-08 15:38 quinn + + * client/Makefile: [no log message] + +1996-02-29 15:23 adam + + * comstack/waislen.c: Bug fix. + +1996-02-26 19:34 adam + + * comstack/waislen.c: Bug fix. + +1996-02-23 11:01 quinn + + * rfc1006/rfct.c: Smallish + +1996-02-23 11:00 quinn + + * include/proto.h: SCAN Work + +1996-02-23 11:00 quinn + + * comstack/: tcpip.c, xmosi.c: WAIS Work + +1996-02-23 11:00 quinn + + * asn/proto.c: Fixes to SCAN + +1996-02-21 16:57 quinn + + * CHANGELOG: [no log message] + +1996-02-21 16:23 quinn + + * retrieval/d1_attset.c: Reversed fclose and return; + +1996-02-21 15:55 quinn + + * CHANGELOG: Smallish + +1996-02-21 14:12 quinn + + * server/statserv.c: [no log message] + +1996-02-21 13:55 quinn + + * server/eventl.c: small + +1996-02-21 13:52 quinn + + * server/eventl.c: Test + +1996-02-20 18:58 adam + + * include/yaz-util.h, util/yaz-util.c: Added const to yaz_matchstr. + +1996-02-20 18:57 adam + + * include/oid.h, util/oid.c: Added const to oid_getvalbyname. + +1996-02-20 17:41 adam + + * util/Makefile: Minor change. + +1996-02-20 17:37 quinn + + * util/oid.c: Using yaz_matchstr in oid_getvalbyname + +1996-02-20 17:33 quinn + + * retrieval/Makefile, util/Makefile, util/yaz-util.c: Moved + matchstr to global util + +1996-02-20 17:32 quinn + + * include/: data1.h, yaz-util.h: Created util file. + +1996-02-20 14:02 quinn + + * comstack/waislen.c: Wais length. + +1996-02-20 13:57 quinn + + * CHANGELOG, include/yaz-version.h: V1.1 + +1996-02-20 13:55 quinn + + * CHANGELOG: [no log message] + +1996-02-20 13:53 quinn + + * server/seshigh.c: Chanes to SCAN + +1996-02-20 13:52 quinn + + * odr/odr_tag.c: Added odr_peektag + +1996-02-20 13:52 quinn + + * comstack/: Makefile, tcpip.c: WAIS protocol support. + +1996-02-20 13:51 quinn + + * client/client.c: Fixed problems with EXTERNAL. + +1996-02-20 13:51 quinn + + * asn/: proto.c, prt-ext.c: Completed SCAN. Fixed problems with + EXTERNAL. + +1996-02-20 13:50 quinn + + * CHANGELOG, include/oid.h, include/proto.h, include/prt-ext.h, + include/prt.h: Various + +1996-02-12 19:18 quinn + + * client/Makefile, client/client.c, tab/usmarc.abs, tab/usmarc.tag: + Fidgeting. + +1996-02-12 19:17 quinn + + * CHANGELOG: SMALLISH + +1996-02-10 13:23 quinn + + * include/comstack.h, include/tcpip.h, include/xmosi.h, + server/statserv.c: Enable inetd operations fro TCP/IP stack + +1996-02-10 13:23 quinn + + * comstack/: tcpip.c, xmosi.c: Enablie inetd operations fro TCP/IP + stack + +1996-02-10 13:22 quinn + + * asn/proto.c: Work on SCAN + +1996-02-10 13:21 quinn + + * CHANGELOG: Smallish + +1996-02-05 13:24 adam + + * include/log.h, util/log.c: Implemented + log_event_{start,end}-functions. + +1996-02-05 13:23 adam + + * comstack/Makefile: Removed RPN_QUERY define (not used in these + modules). + +1996-01-24 17:01 quinn + + * CHANGELOG, include/yaz-version.h: pl4 + +1996-01-22 10:46 quinn + + * asn/proto.c, asn/prt-dia.c, include/proto.h, include/prt-dia.h: + Added Sort PDU. Moved StringList to main protocol file. + +1996-01-22 10:46 quinn + + * CHANGELOG: Added Sort PDU + +1996-01-19 16:41 quinn + + * server/statserv.c: [no log message] + +1996-01-19 16:41 quinn + + * retrieval/d1_read.c: Fixed uninitialized boolean. + +1996-01-19 16:41 quinn + + * odr/dumpber.c: dumpber was ignoring the file argument. + +1996-01-19 16:41 quinn + + * CHANGELOG, doc/README: Smallish. + +1996-01-18 10:46 adam + + * include/data1.h: Changed prototype for reader function parsed to + data1_read_record. + +1996-01-17 15:52 adam + + * retrieval/d1_read.c: Changed prototype for reader function parsed + to data1_read_record. + +1996-01-10 16:21 quinn + + * asn/proto.c, include/proto.h: Added links to access control PDUs + +1996-01-10 14:07 quinn + + * doc/Makefile: [no log message] + +1996-01-03 17:22 quinn + + * tab/explain.att: [no log message] + +1996-01-02 14:57 adam + + * asn/diagbib1.c: Added error messages. + +1996-01-02 12:46 quinn + + * include/: proto.h, prt-exp.h, yaz-version.h: Changed 'operator' + to 'roperator' to avoid C++ conflict. Moved to pl3 + +1996-01-02 12:46 quinn + + * asn/proto.c, asn/prt-exp.c, util/pquery.c, util/query.c, + util/yaz-ccl.c: Changed 'operator' to 'roperator' to avoid C++ + conflict. + +1996-01-02 12:42 quinn + + * CHANGELOG: Moved to pl3 + +1996-01-02 09:57 quinn + + * CHANGELOG, asn/zget.c, client/client.c, comstack/xmosi.c, + include/oid.h, include/proto.h, include/prt-acc.h, + include/prt-dia.h, include/prt-esp.h, include/prt-exd.h, + include/prt-exp.h, include/prt-ext.h, include/prt-grs.h, + retrieval/d1_espec.c, server/seshigh.c, tab/gils-variant.est, + tab/tagsetm.tag, util/oid.c: Changed enums in the ASN.1 .h files + to #defines. Changed oident.class to oclass + +1995-12-15 17:57 quinn + + * retrieval/d1_sutrs.c: Added formatted-text. + +1995-12-15 17:20 quinn + + * retrieval/d1_read.c: Added formatted text. + +1995-12-15 17:19 quinn + + * include/data1.h: Added formatted_text. + +1995-12-15 12:22 quinn + + * tab/gils.abs: Added bodyofDisplay + +1995-12-14 17:28 quinn + + * asn/prt-exp.c, include/prt-exp.h, include/prt.h, odr/odr_tag.c, + retrieval/d1_expout.c, tab/explain.abs, tab/explain.tag: More + explain stuff. + +1995-12-14 12:09 quinn + + * include/data1.h, include/prt-exp.h, retrieval/Makefile, + retrieval/d1_expout.c, server/seshigh.c, tab/explain.abs: Work on + Explain + +1995-12-14 12:09 quinn + + * client/client.c: Added Explain record syntax to the format + command. + +1995-12-14 12:09 quinn + + * asn/prt-exp.c: Fixed bug in tagging. + +1995-12-13 18:14 quinn + + * retrieval/: d1_attset.c, d1_write.c: [no log message] + +1995-12-13 17:03 quinn + + * util/oid.c: [no log message] + +1995-12-13 16:38 quinn + + * retrieval/d1_write.c: Added SGML-output filter. + +1995-12-13 16:32 quinn + + * include/data1.h, retrieval/Makefile: Added sgml-output. + +1995-12-13 14:44 quinn + + * include/data1.h, retrieval/d1_map.c, retrieval/d1_read.c, + util/nmem.c: Modified Data1-system to use nmem + +1995-12-13 14:38 quinn + + * tab/: explain.abs, explain.att, explain.tag: First kick. + +1995-12-12 17:37 quinn + + * client/client.c, include/data1.h, retrieval/d1_map.c, + retrieval/d1_read.c: Added destroy element to data1_node. + +1995-12-12 15:11 quinn + + * retrieval/d1_map.c: More work on the large-record problem. + +1995-12-12 15:11 quinn + + * client/client.c: Minimal. + +1995-12-11 16:22 quinn + + * retrieval/: d1_map.c, d1_read.c: Added last_child field to the + node. Rewrote schema-mapping. + +1995-12-11 16:22 quinn + + * include/data1.h: Added last_child field to the node. + +1995-12-11 16:21 quinn + + * CHANGELOG, tab/gils-usmarc.map: Work. + +1995-12-06 17:06 quinn + + * Makefile: Fixed YAZ library + +1995-12-06 16:50 quinn + + * include/yaz-version.h: 1.0pl2 + +1995-12-06 14:00 adam + + * util/options.c: Minus alone not treated as an option. + +1995-12-06 10:51 quinn + + * util/log.c: Fixed the log-prefix buffer - it was too small and + the setup code lacked a bounds-check. + +1995-12-06 10:50 quinn + + * include/prt-exp.h: Bad #define. + +1995-12-06 10:49 quinn + + * doc/profiles.sgml: Work. + +1995-12-06 10:47 quinn + + * CHANGELOG: [no log message] + +1995-12-05 17:43 quinn + + * tab/gils-usmarc.map: Work. + +1995-12-05 16:08 adam + + * util/xmalloc.c: Fixed verbose of xrealloc. + +1995-12-05 15:26 quinn + + * include/data1.h: Added global lbuf to data1_node. + +1995-12-05 12:17 quinn + + * tab/gils.att: Removed \r introduced from the Windows port + somehow. + +1995-12-05 12:17 quinn + + * server/eventl.c: Moved some paranthesises around. Sigh. + +1995-12-05 12:16 quinn + + * retrieval/d1_espec.c: Fixed malloc of 0. + +1995-12-05 12:15 quinn + + * asn/prt-exp.c: Work. + +1995-12-05 12:15 quinn + + * CHANGELOG, include/yaz-version.h: 1.0pl1 + +1995-12-05 12:08 adam + + * util/xmalloc.c: More verbose malloc routines. + +1995-12-05 00:59 quinn + + * tab/: gils-usmarc.map, gils.tag: Added abreviated GILS tags. + +1995-11-28 10:32 quinn + + * CHANGELOG: v1.0 + +1995-11-28 10:31 quinn + + * include/yaz-version.h: Version 1.0 + +1995-11-28 10:30 quinn + + * tab/gils.tag, util/oid.c: Work. + +1995-11-27 14:46 quinn + + * doc/profiles.sgml: Work + +1995-11-21 16:09 quinn + + * doc/profiles.sgml: Work + +1995-11-17 12:09 adam + + * server/statserv.c: Added new option '-c' to specify configuration + name in control block. + +1995-11-17 12:08 adam + + * Makefile: Install action added. + +1995-11-15 12:51 quinn + + * doc/profiles.sgml: Smallish + +1995-11-15 11:52 quinn + + * doc/: Makefile, profiles.sgml: Added profile documentation. + +1995-11-13 10:27 quinn + + * client/client.c, include/data1.h, include/nmem.h, include/oid.h, + retrieval/d1_doespec.c, retrieval/d1_espec.c, retrieval/d1_grs.c, + retrieval/d1_read.c, retrieval/d1_tagset.c, server/eventl.c, + tab/generic.tag, tab/gils-variant.est, tab/gils.abs, + tab/gils.att, tab/gils.tag, tab/var1.var, tab/wais-b.est, + tab/wais-variant.est, tab/wais.abs, util/nmem.c, util/oid.c: + Fiddling with the variant stuff. + +1995-11-08 18:57 quinn + + * tab/: gils-a.est, gils-b.est, gils-g.est, gils.abs, gils.tag: + Fixed title ref. + +1995-11-08 18:41 quinn + + * CHANGELOG, include/odr.h, include/prt.h, odr/odr.c, + odr/odr_mem.c, server/seshigh.c, server/session.h, util/Makefile: + Smallish. + +1995-11-08 16:11 quinn + + * server/seshigh.c: Log of close transmit. + +1995-11-07 13:37 quinn + + * server/eventl.c: Added support for forcing TIMEOUT event. + +1995-11-01 17:34 quinn + + * include/data1.h, include/tpath.h, retrieval/d1_absyn.c, + retrieval/d1_attset.c, retrieval/d1_espec.c, retrieval/d1_map.c, + retrieval/d1_marc.c, retrieval/d1_read.c, retrieval/d1_tagset.c, + retrieval/d1_varset.c, util/Makefile, util/tpath.c: Making data1 + look for tables in data1_tabpath + +1995-11-01 15:44 quinn + + * tab/: bib1.att, gils-a.est, gils-b.est, gils-g.est, + gils-usmarc.map, gils.abs, gils.att, gils.tag, tagsetg.tag, + tagsetm.tag, usmarc-b.est, usmarc.abs, usmarc.mar, var1.var: + Added tables. + +1995-11-01 14:54 quinn + + * Makefile, ccl/cclfind.c, ccl/cclqual.c, ccl/ccltoken.c, + comstack/tcpip.c, comstack/xmosi.c, include/comstack.h, + include/d1_attset.h, include/d1_map.h, include/data1.h, + include/odr.h, include/readconf.h, include/yconfig.h, + makelib/Makefile, odr/odr.c, odr/odr_mem.c, retrieval/Makefile, + retrieval/d1_absyn.c, retrieval/d1_doespec.c, retrieval/d1_grs.c, + retrieval/d1_map.c, retrieval/d1_marc.c, retrieval/d1_read.c, + retrieval/d1_sutrs.c, retrieval/d1_tagset.c, + retrieval/d1_varset.c, rfc1006/rfct.c, server/eventl.c, + server/requestq.c, server/seshigh.c, server/statserv.c, + util/Makefile, util/marcdump.c, util/readconf.c, util/wrbuf.c, + util/yaz-ccl.c: Minor adjustments + +1995-11-01 14:07 quinn + + * include/data1.h: Data1 module now lives in YAZ. + +1995-11-01 13:19 quinn + + * server/seshigh.c: Second attempt to fix same bug. + +1995-11-01 12:56 quinn + + * util/xmalloc.c: Added Xmalloc. + +1995-11-01 12:56 quinn + + * server/seshigh.c: Fixed bug in elementsetname-handling in + piggybacked presents. + +1995-11-01 12:56 quinn + + * retrieval/: Makefile, d1_absyn.c, d1_attset.c, d1_doespec.c, + d1_espec.c, d1_grs.c, d1_map.c, d1_marc.c, d1_read.c, d1_sutrs.c, + d1_tagset.c, d1_varset.c: Added Retrieval (data management) + functions en masse. + +1995-11-01 12:55 quinn + + * include/xmalloc.h: Added xmalloc.c + +1995-10-30 13:41 quinn + + * CHANGELOG, client/client.c, comstack/tcpip.c, comstack/xmosi.c, + include/comstack.h, server/statserv.c: Added hostname lookup for + server. + +1995-10-25 17:58 quinn + + * server/seshigh.c: Simple. + +1995-10-25 17:58 quinn + + * odr/odr_mem.c: Stupid bug in odr_malloc + +1995-10-18 17:12 quinn + + * odr/: dumpber.c, odr_null.c: Better diagnostics. Added special + case in NULL to handle WAIS server. + +1995-10-18 17:12 quinn + + * client/client.c, include/odr.h: Better diagnostics. + +1995-10-18 17:12 quinn + + * asn/prt-grs.c: Added a couple of special cases to handle the WAIS + server. + +1995-10-16 14:51 quinn + + * include/backend.h, include/dmalloc.h, include/prt-esp.h, + include/yconfig.h, server/seshigh.c: Changes to provide Especs to + the backend. + +1995-10-13 17:08 quinn + + * include/prt.h, odr/odr_mem.c, odr/odr_util.c: Added OID utility + +1995-10-12 11:34 quinn + + * CHANGELOG, asn/Makefile, asn/prt-esp.c, asn/prt-ext.c, + include/oid.h, include/proto.h, include/prt-esp.h, + include/prt-ext.h, include/prt-grs.h, util/oid.c: Added Espec-1. + +1995-10-11 15:49 quinn + + * client/client.c: Smallish. + +1995-10-10 17:27 quinn + + * include/log.h, include/oid.h, util/oid.c: [no log message] + +1995-10-06 13:59 quinn + + * include/wrbuf.h: Added access macros + +1995-10-06 09:51 quinn + + * Makefile, include/wrbuf.h, server/seshigh.c, util/Makefile, + util/wrbuf.c: Added Write-buffer. + +1995-09-29 18:11 quinn + + * asn/diagbib1.c, asn/proto.c, asn/prt-acc.c, asn/prt-dia.c, + asn/prt-exd.c, asn/prt-exp.c, asn/prt-ext.c, asn/prt-grs.c, + asn/prt-rsc.c, asn/zget.c, ccl/cclerrms.c, ccl/cclfind.c, + ccl/cclptree.c, ccl/cclqual.c, ccl/ccltoken.c, comstack/tcpip.c, + comstack/xmosi.c, include/backend.h, include/ccl.h, + include/comstack.h, include/diagbib1.h, include/dmalloc.h, + include/log.h, include/marcdisp.h, include/odr.h, + include/odr_use.h, include/oid.h, include/options.h, + include/pquery.h, include/proto.h, include/prt-acc.h, + include/prt-dia.h, include/prt-exd.h, include/prt-exp.h, + include/prt-ext.h, include/prt-grs.h, include/prt-rsc.h, + include/prt.h, include/statserv.h, include/tcpip.h, + include/xmosi.h, include/yaz-ccl.h, odr/ber_any.c, odr/ber_bit.c, + odr/ber_bool.c, odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, + odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, odr/dumpber.c, + odr/odr.c, odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, + odr/odr_choice.c, odr/odr_cons.c, odr/odr_int.c, odr/odr_mem.c, + odr/odr_null.c, odr/odr_oct.c, odr/odr_oid.c, odr/odr_seq.c, + odr/odr_tag.c, odr/odr_use.c, odr/odr_util.c, server/statserv.c, + util/dmalloc.c, util/log.c, util/marcdisp.c, util/oid.c, + util/options.c, util/pquery.c, util/yaz-ccl.c: Smallish + +1995-09-29 18:01 quinn + + * Makefile, client/client.c, comstack/comstack.c, comstack/tcpip.c, + include/comstack.h, include/odr.h, include/prt.h, + include/yconfig.h, odr/ber_int.c, odr/odr.c, odr/odr_int.c, + util/dmalloc.c, util/oid.c: More Windows work + +1995-09-28 11:24 quinn + + * comstack/xmosi.c: Windows changes + +1995-09-28 11:13 quinn + + * include/yconfig.h: Added central config file. + +1995-09-28 11:12 quinn + + * comstack/tcpip.c, include/comstack.h, include/tcpip.h, + odr/ber_int.c: Windows-support changes + +1995-09-27 16:02 quinn + + * Makefile, asn/diagbib1.c, asn/proto.c, asn/prt-acc.c, + asn/prt-dia.c, asn/prt-exd.c, asn/prt-exp.c, asn/prt-ext.c, + asn/prt-grs.c, asn/prt-rsc.c, asn/zget.c, ccl/cclerrms.c, + ccl/cclfind.c, ccl/cclptree.c, ccl/cclqual.c, ccl/ccltoken.c, + comstack/tcpip.c, comstack/xmosi.c, include/backend.h, + include/ccl.h, include/comstack.h, include/diagbib1.h, + include/dmalloc.h, include/log.h, include/marcdisp.h, + include/odr.h, include/odr_use.h, include/oid.h, + include/options.h, include/pquery.h, include/proto.h, + include/prt-acc.h, include/prt-dia.h, include/prt-exd.h, + include/prt-exp.h, include/prt-ext.h, include/prt-grs.h, + include/prt-rsc.h, include/prt.h, include/statserv.h, + include/tcpip.h, include/xmosi.h, include/yaz-ccl.h, + odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, odr/ber_int.c, + odr/ber_len.c, odr/ber_null.c, odr/ber_oct.c, odr/ber_oid.c, + odr/ber_tag.c, odr/dumpber.c, odr/odr.c, odr/odr_any.c, + odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, odr/odr_cons.c, + odr/odr_int.c, odr/odr_mem.c, odr/odr_null.c, odr/odr_oct.c, + odr/odr_oid.c, odr/odr_seq.c, odr/odr_tag.c, odr/odr_use.c, + odr/odr_util.c, server/statserv.c, util/dmalloc.c, util/log.c, + util/marcdisp.c, util/oid.c, util/options.c, util/pquery.c, + util/yaz-ccl.c: Modified function heads & prototypes. + +1995-09-15 16:44 quinn + + * server/eventl.c: [no log message] + +1995-09-12 13:32 quinn + + * util/oid.c: Added a looker-upper by name. + +1995-09-12 13:31 quinn + + * include/oid.h: Added some oids. + +1995-09-12 13:31 quinn + + * CHANGELOG: [no log message] + +1995-08-29 16:44 quinn + + * server/: eventl.c, statserv.c: Reset timeouts. + +1995-08-29 16:44 quinn + + * CHANGELOG: [no log message] + +1995-08-29 16:24 quinn + + * client/client.c, server/seshigh.c: Added second half of + close-handshake + +1995-08-29 13:28 quinn + + * CHANGELOG: [no log message] + +1995-08-29 13:19 quinn + + * asn/prt-dia.c, include/prt-dia.h: Added Diagnostic Format + +1995-08-29 13:17 quinn + + * client/client.c, server/eventl.c, server/seshigh.c, + server/session.h, server/statserv.c: Added code to receive close + +1995-08-29 13:17 quinn + + * asn/Makefile, asn/prt-ext.c, include/proto.h, include/prt-ext.h: + [no log message] + +1995-08-29 13:16 quinn + + * CHANGELOG: Added code to send close + +1995-08-29 12:41 quinn + + * server/eventl.c: Small. + +1995-08-28 18:29 quinn + + * CHANGELOG, Makefile: A + +1995-08-28 14:21 quinn + + * client/client.c: Client can now ask for simple element set names. + +1995-08-28 12:58 quinn + + * asn/prt-grs.c: Added extra choice-entry to data to catch + visiblestring. + +1995-08-28 12:58 quinn + + * CHANGELOG: [no log message] + +1995-08-24 17:13 quinn + + * include/yaz-version.h: Beta 3 + +1995-08-24 12:56 quinn + + * include/prt-exp.h: Typos. + +1995-08-21 11:16 quinn + + * asn/prt-exd.c, include/prt-exd.h: Added Extended services + Item + Order + +1995-08-21 11:10 quinn + + * CHANGELOG, asn/Makefile, asn/proto.c, asn/prt-ext.c, + include/proto.h, include/prt-ext.h, include/prt.h, odr/odr_mem.c, + server/seshigh.c, util/oid.c: Smallish fixes to suppport new + formats. + +1995-08-17 14:47 quinn + + * asn/prt-grs.c, include/prt-grs.h: Added GRS-1. + +1995-08-17 14:44 quinn + + * CHANGELOG, asn/Makefile, asn/prt-ext.c, client/client.c, + include/backend.h, include/proto.h, include/prt-acc.h, + include/prt-ext.h, include/prt-rsc.h, odr/odr_util.c, + server/Makefile, server/seshigh.c: Fixed minor problems with + GRS-1. Added support in c&s. + +1995-08-15 15:37 quinn + + * asn/prt-ext.c, include/prt-ext.h: Improved EXTERNAL + +1995-08-15 13:59 quinn + + * asn/proto.c, asn/prt-acc.c, asn/prt-exp.c, client/client.c, + include/odr.h, include/proto.h, include/prt-acc.h, + include/prt-exp.h, include/prt.h, odr/odr.c, odr/odr_choice.c, + server/seshigh.c: Updated External + +1995-08-15 13:58 quinn + + * asn/Makefile: Updated External. + +1995-08-15 13:58 quinn + + * CHANGELOG: [no log message] + +1995-08-15 13:16 quinn + + * server/seshigh.c: CV:e + ---------------------------------------------------------------------- + CV:e + ---------------------------------------------------------------------- + +1995-08-15 13:16 quinn + + * odr/: odr_cons.c, odr_seq.c: Fixed pretty-printers. CV:e + ---------------------------------------------------------------------- + CV:e + ---------------------------------------------------------------------- + +1995-08-15 13:16 quinn + + * CHANGELOG: [no log message] + +1995-08-10 10:54 quinn + + * include/odr.h, include/odr_use.h, include/proto.h, + include/prt-exp.h, odr/odr_use.c: Added Explain. + +1995-08-10 10:53 quinn + + * CHANGELOG, asn/Makefile, asn/proto.c, asn/prt-exp.c: Added + Explain + +1995-08-02 12:23 quinn + + * server/seshigh.c: Smallish + +1995-07-31 16:34 quinn + + * server/seshigh.c: Fixed bug in process_searchResponse + (numberOfRecordsReturned). + +1995-07-31 16:33 quinn + + * CHANGELOG: Smallish change. + +1995-06-27 15:22 quinn + + * CHANGELOG: [no log message] + +1995-06-27 15:20 quinn + + * server/: Makefile, seshigh.c: SUTRS support + +1995-06-27 15:20 quinn + + * odr/dumpber.c: Fixed sign-clash. Non-fatal warning + +1995-06-27 15:20 quinn + + * include/: backend.h, oid.h: Added SUTRS support + +1995-06-27 15:20 quinn + + * client/Makefile: Can now inherit external libs from top-level + makefile + +1995-06-27 15:19 quinn + + * CHANGELOG, Makefile: V1.0b2 + +1995-06-27 15:12 quinn + + * include/yaz-version.h: v1.0b2 See CHANGELOG for update info now. + +1995-06-27 14:44 adam + + * Makefile: Fixed bug. + +1995-06-25 12:53 quinn + + * CHANGELOG, Makefile, asn/Makefile, ccl/Makefile, + comstack/Makefile, doc/Makefile, odr/Makefile, rfc1006/Makefile, + server/Makefile, util/Makefile: Smallish adjustments. + +1995-06-22 14:25 quinn + + * CHANGELOG: Added changelog + +1995-06-22 11:28 quinn + + * client/client.c: Fixed bug in SUTRS processing. + +1995-06-19 19:01 quinn + + * asn/proto.c, odr/odr_choice.c: This should bring us in sync with + the version distributed as 1.0b + +1995-06-19 15:48 quinn + + * doc/Makefile: Initial revision + +1995-06-19 15:39 quinn + + * asn/proto.c: [no log message] + +1995-06-19 15:39 quinn + + * include/yaz-version.h: 1.0 beta All of basic 1995 should be in + place at this point. Some little features added to make the + server more useful. BER dumper for bad protocol debugging. Etc. + First major release. All following releases should come with a + changelog. + +1995-06-19 15:06 quinn + + * odr/odr_choice.c: Fixed simple bug in the code to handle untagged + choice elements. + +1995-06-19 14:40 quinn + + * util/log.c: Added log_file() + +1995-06-19 14:39 quinn + + * server/: eventl.c, eventl.h, seshigh.c: Fixed bug in timeout + code. Added BER dumper. + +1995-06-19 14:38 quinn + + * include/: backend.h, comstack.h, log.h, odr.h, odr_use.h, + proto.h, prt.h, statserv.h: Reorganized include-files. Added + small features. + +1995-06-19 14:37 quinn + + * client/client.c, odr/Makefile, odr/dumpber.c, odr/odr.c, + odr/odr_cons.c: Added BER dumper. + +1995-06-19 14:37 quinn + + * asn/proto.c: Fixed a bug in the compspec. + +1995-06-19 14:37 quinn + + * README: [no log message] + +1995-06-16 15:15 quinn + + * asn/proto.c, include/odr.h, include/proto.h, include/prt.h, + odr/odr_use.c, server/seshigh.c: Fixed Defaultdiagformat. + +1995-06-16 12:46 quinn + + * rfc1006/rfct.c: [no log message] + +1995-06-16 12:31 quinn + + * server/: eventl.c, eventl.h, seshigh.c, session.h, statserv.c: + Added session timeout. + +1995-06-16 12:30 quinn + + * comstack/xmosi.c: Added REUSEADDR. + +1995-06-16 12:29 quinn + + * README, client/client.c, rfc1006/Makefile: [no log message] + +1995-06-15 17:45 quinn + + * util/log.c: Added date info. + +1995-06-15 17:42 quinn + + * asn/proto.c, include/proto.h: Fixed some v3 bugs + +1995-06-15 14:30 quinn + + * server/statserv.c: Setuid-facility. + +1995-06-15 14:30 quinn + + * comstack/: tcpip.c, xmosi.c: Added @ as hostname alias for INADDR + ANY. + +1995-06-15 14:29 quinn + + * Makefile, util/pquery.c: [no log message] + +1995-06-15 09:44 quinn + + * asn/proto.c, asn/zget.c, client/client.c, include/proto.h, + include/statserv.h, rfc1006/Makefile, rfc1006/rfct.c, + server/seshigh.c, server/statserv.c, util/pquery.c, + util/yaz-ccl.c: Moving to v3. + +1995-06-15 09:44 quinn + + * Makefile, README: MOving to v3. + +1995-06-14 17:26 quinn + + * Makefile, asn/proto.c, asn/zget.c, client/client.c, + include/proto.h, server/seshigh.c: [no log message] + +1995-06-14 14:34 quinn + + * include/yaz-version.h: Moved version.h to include/ + +1995-06-14 13:06 adam + + * util/pquery.c: Bug fix: Attributes wasn't interpreted correctly! + +1995-06-14 12:06 quinn + + * Makefile: Moved yazlib to comstack + +1995-06-14 11:58 quinn + + * comstack/: Makefile, comstack.c, tcpip.c, xmosi.c: Renamed yazlib + to comstack. + +1995-06-07 16:42 quinn + + * asn/zget.c, include/proto.h: Fixed CLOSE + +1995-06-07 16:36 quinn + + * asn/proto.c, asn/zget.c, include/proto.h: Added CLOSE + +1995-06-06 16:56 quinn + + * client/client.c, server/seshigh.c: Better diagnostics. + +1995-06-06 10:41 quinn + + * server/seshigh.c: Better diagnostics. + +1995-06-06 10:15 quinn + + * client/client.c, server/seshigh.c, server/statserv.c: Cosmetic. + +1995-06-05 12:53 quinn + + * server/: eventl.c, seshigh.c: Added a better SCAN. + +1995-06-05 12:53 quinn + + * include/proto.h: Smallish. + +1995-06-05 12:52 quinn + + * client/client.c: Added SCAN. + +1995-06-05 12:52 quinn + + * asn/: prt-acc.c, zget.c: Fixed some negligences. + +1995-06-02 11:50 quinn + + * client/client.c: Smallish. + +1995-06-02 11:49 quinn + + * include/: proto.h, prt-acc.h, prt-rsc.h: Add access control + +1995-06-02 11:49 quinn + + * asn/: Makefile, proto.c, prt-acc.c, prt-rsc.c: Adding access + control + +1995-06-01 16:34 quinn + + * asn/prt-rsc.c: Work + +1995-06-01 13:25 quinn + + * server/seshigh.c: Smallish. + +1995-06-01 13:24 quinn + + * include/prt-rsc.h: Resource Control + +1995-06-01 13:22 quinn + + * asn/prt-rsc.c: Resource control + +1995-06-01 13:21 quinn + + * server/seshigh.c: Attempting to fix a bug in pack-records. + replaced break with continue for large records, according to + standard. + +1995-05-31 10:29 quinn + + * client/client.c, rfc1006/rfct.c: Nothing significant. + +1995-05-30 12:54 quinn + + * include/comstack.h: Added some backwards compatibility to the + comstack (CS_SR->PROTO_SR) + +1995-05-30 12:25 quinn + + * Makefile, asn/Makefile, ccl/Makefile, client/Makefile, + odr/Makefile, rfc1006/Makefile, server/Makefile, util/Makefile: + Fixed dependency control + +1995-05-30 12:16 quinn + + * client/Makefile, server/Makefile: Makefile fix + +1995-05-30 12:15 quinn + + * asn/zget.c: Added our implementor's ID + +1995-05-29 10:50 quinn + + * README: [no log message] + +1995-05-29 10:17 quinn + + * util/oid.c: iMoved oid to util to support comstack. + +1995-05-29 10:12 quinn + + * server/seshigh.c, server/statserv.c, util/Makefile: Moved oid to + util + +1995-05-29 10:11 quinn + + * rfc1006/Makefile: [no log message] + +1995-05-29 10:11 quinn + + * include/backend.h, include/comstack.h, include/odr.h, + include/oid.h, include/proto.h, include/prt.h, odr/odr_oid.c, + odr/odr_util.c: Moved oid from odr/asn to util. + +1995-05-29 10:10 quinn + + * asn/Makefile, client/client.c: Moved oid.c to util. + +1995-05-29 10:10 quinn + + * README: Smallish doc updates. + +1995-05-26 10:56 adam + + * include/pquery.h, util/pquery.c: New function: p_query_scan. + +1995-05-25 13:00 quinn + + * asn/proto.c: [no log message] + +1995-05-22 17:31 adam + + * server/Makefile: Removed ../../alex/include from -I. + +1995-05-22 17:31 adam + + * include/pquery.h, util/Makefile, util/pquery.c: New function, + p_query_rpn, to convert from prefix (ascii) to rpn (asn). + +1995-05-22 17:30 adam + + * client/: Makefile, client.c: Client uses prefix query notation. + +1995-05-22 17:06 quinn + + * client/client.c: [no log message] + +1995-05-22 16:56 quinn + + * odr/odr_seq.c: Fixed problem in decoding empty sequence. + +1995-05-22 16:56 quinn + + * client/client.c: [no log message] + +1995-05-22 16:47 quinn + + * include/odr.h: ODR_NULLVAL --> void + +1995-05-22 16:44 quinn + + * client/default.bib: [no log message] + +1995-05-22 16:42 quinn + + * util/yaz-ccl.c: Replaced empty attrlist with ODR_NULLVAL + +1995-05-22 16:02 quinn + + * Makefile: Added cleanup of lib/ + +1995-05-22 16:00 quinn + + * client/Makefile: removed silly ref to libserver. + +1995-05-22 15:58 quinn + + * asn/proto.c: Fixed an ODR_NULLVAL. + +1995-05-22 13:32 quinn + + * util/: Makefile, yaz-ccl.c: Moved yaz-ccl to util. + +1995-05-22 13:32 quinn + + * odr/: ber_null.c, odr.c, odr_null.c: Fixing Interface to + odr_null. + +1995-05-22 13:31 quinn + + * include/: odr.h, proto.h, prt.h: Added PDUs + +1995-05-22 13:30 quinn + + * client/: Makefile, client.c, default.bib: Added prettier client. + +1995-05-22 13:30 quinn + + * asn/: Makefile, proto.c, zget.c: Adding Z39.50-1992 stuff to + proto.c. Adding zget.c + +1995-05-22 13:29 quinn + + * Makefile, README: [no log message] + +1995-05-18 15:06 quinn + + * odr/odr_seq.c: Smallish. + +1995-05-18 15:06 quinn + + * LICENSE, README: Doc. update + +1995-05-18 15:02 quinn + + * rfc1006/rfct.c, server/seshigh.c: Smallish. + +1995-05-17 10:42 quinn + + * server/: seshigh.c, session.h: Transfer auth info to backend. + Allow backend to reject init gracefully. + +1995-05-17 10:41 quinn + + * odr/odr_seq.c: Small, hopefully insignificant change. + +1995-05-17 10:41 quinn + + * include/: backend.h, proto.h: Added delete to proto & other + little things. Relaying auth info to backend. + +1995-05-17 10:40 quinn + + * asn/proto.c: Added delete. Fixed some sequence_begins. Smallish. + +1995-05-17 10:37 quinn + + * util/Makefile: Removed dmalloc + +1995-05-17 10:19 adam + + * util/Makefile: Executable marcdump removed on make clean. + +1995-05-16 11:37 quinn + + * rfc1006/rfct.c, server/statserv.c: Fixed bug + +1995-05-16 10:50 quinn + + * README, header.c, asn/diagbib1.c, asn/proto.c, include/backend.h, + include/comstack.h, include/diagbib1.h, include/dmalloc.h, + include/log.h, include/marcdisp.h, include/odr.h, + include/odr_use.h, include/oid.h, include/options.h, + include/proto.h, include/statserv.h, include/tcpip.h, + include/xmosi.h, include/yaz-ccl.h, odr/ber_any.c, odr/ber_bit.c, + odr/ber_bool.c, odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, + odr/ber_oct.c, odr/ber_oid.c, odr/ber_tag.c, odr/odr.c, + odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, + odr/odr_cons.c, odr/odr_int.c, odr/odr_mem.c, odr/odr_null.c, + odr/odr_oct.c, odr/odr_oid.c, odr/odr_priv.c, odr/odr_seq.c, + odr/odr_tag.c, odr/odr_use.c, server/eventl.c, server/eventl.h, + server/seshigh.c, server/session.h, server/statserv.c, + util/dmalloc.c, util/log.c, util/marcdisp.c, util/marcdump.c, + util/options.c, util/query.c: License, documentation, and memory + fixes + +1995-05-15 15:25 quinn + + * server/Makefile, server/seshigh.c, util/dmalloc.c: Fixed memory + bug. + +1995-05-15 15:20 quinn + + * Makefile: ZZ + +1995-05-15 14:12 quinn + + * server/requestq.c: Request queue. + +1995-05-15 13:58 quinn + + * LICENSE: Added license document. + +1995-05-15 13:56 quinn + + * util/: dmalloc.c, log.c, marcdump.c: Debuggng & adjustments. + +1995-05-15 13:56 quinn + + * server/: Makefile, eventl.h, seshigh.c, session.h, statserv.c: + Asynchronous facilities. Restructuring of seshigh code. + +1995-05-15 13:56 quinn + + * odr/: odr.c, odr_mem.c: More work on memory management. + +1995-05-15 13:55 quinn + + * include/: odr.h, proto.h, statserv.h: Work on asynchronous + activity. + +1995-05-15 13:55 quinn + + * asn/proto.c: Smallish. + +1995-05-15 13:55 quinn + + * Makefile, README, header.c: Documentation & other details. + +1995-05-11 17:31 adam + + * include/yaz-ccl.h: New function ccl_scan_query. + +1995-05-02 10:53 quinn + + * rfc1006/Makefile, rfc1006/rfct.c, server/seshigh.c: Trying in + vain to fix comm with ISODE + +1995-05-02 10:52 quinn + + * README, ccl/README: Doc work + +1995-04-28 16:15 quinn + + * Makefile, server/Makefile: [no log message] + +1995-04-21 18:31 quinn + + * odr/Makefile: [no log message] + +1995-04-20 17:12 quinn + + * include/comstack.h, server/seshigh.c, server/session.h: Cosmetic + +1995-04-19 12:08 quinn + + * Makefile, server/Makefile: Smallish + +1995-04-18 17:23 quinn + + * odr/Makefile: [no log message] + +1995-04-18 10:15 quinn + + * odr/Makefile, odr/ber_any.c, odr/ber_bit.c, odr/ber_bool.c, + odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, odr/ber_oct.c, + odr/ber_oid.c, odr/ber_tag.c, odr/odr.c, odr/odr_cons.c, + odr/odr_mem.c, server/seshigh.c: Added dynamic memory allocation + on encoding (whew). Code is now somewhat neater. We'll make the + same change for decoding one day. + +1995-04-18 10:14 quinn + + * include/: odr.h, prt.h: Added dynamic memory allocation on + encoding + +1995-04-17 13:28 quinn + + * include/comstack.h, include/proto.h, server/seshigh.c: Smallish + +1995-04-17 11:37 quinn + + * Makefile, ccl/Makefile, odr/Makefile, odr/ber_any.c, + server/Makefile, util/Makefile: [no log message] + +1995-04-11 13:58 quinn + + * asn/proto.c: Fixed bug. + +1995-04-11 13:52 quinn + + * asn/: Makefile, proto.c: Fixed possible buf in proto.c + +1995-04-10 12:28 quinn + + * util/: marcdisp.c, marcdump.c, query.c: Added copy of CCL and + MARC display + +1995-04-10 12:28 quinn + + * ccl/Makefile, ccl/README, ccl/bib1, ccl/cclerrms.c, + ccl/cclfind.c, ccl/cclptree.c, ccl/cclqual.c, ccl/cclsh.c, + ccl/ccltoken.c, include/ccl.h, include/marcdisp.h: Added copy of + CCL. + +1995-04-10 12:23 quinn + + * util/: Makefile, dmalloc.c, log.c: Fixes. + +1995-04-10 12:23 quinn + + * server/: Makefile, seshigh.c, session.h, statserv.c: Some work to + add scan and other things. + +1995-04-10 12:23 quinn + + * odr/Makefile, odr/odr.c, rfc1006/Makefile: Smallish changes. + +1995-04-10 12:22 quinn + + * makelib/Makefile: Tinkering. + +1995-04-10 12:22 quinn + + * include/: backend.h, proto.h: Added SCAN + +1995-04-10 12:22 quinn + + * asn/: Makefile, proto.c: Added SCAN. + +1995-04-10 12:22 quinn + + * Makefile, README: Added README. Mods to top-level mkf. + +1995-03-31 12:16 quinn + + * server/statserv.c, util/log.c: Fixed logging. + +1995-03-31 11:18 quinn + + * server/: seshigh.c, statserv.c: Added logging. + +1995-03-30 18:08 quinn + + * server/statserv.c: Little mods. + +1995-03-30 16:03 quinn + + * rfc1006/Makefile, rfc1006/makensap.c, rfc1006/rfct.c, + server/Makefile, server/seshigh.c: Added RFC1006 as separate + library + +1995-03-30 16:02 quinn + + * asn/Makefile, odr/Makefile, util/Makefile: [no log message] + +1995-03-30 16:02 quinn + + * Makefile: Added rfc1006 + +1995-03-30 15:29 quinn + + * server/statserv.c: Smallish + +1995-03-30 14:18 quinn + + * server/: seshigh.c, statserv.c: Fixed bug. + +1995-03-30 14:18 quinn + + * include/proto.h: Added info. + +1995-03-30 13:10 quinn + + * util/Makefile: Added log.o + +1995-03-30 12:26 quinn + + * util/log.c: Logging system + +1995-03-30 12:26 quinn + + * asn/proto.c, include/proto.h, include/yaz-ccl.h: Added Term + structure + +1995-03-30 11:39 quinn + + * asn/Makefile, include/backend.h, include/comstack.h, + include/diagbib1.h, include/dmalloc.h, include/log.h, + include/odr.h, include/odr_use.h, include/oid.h, + include/options.h, include/proto.h, include/prt.h, + include/statserv.h, include/tcpip.h, include/xmosi.h, + odr/Makefile, server/Makefile, util/Makefile: Moved .h files to + include directory + +1995-03-30 11:09 quinn + + * server/: seshigh.c, session.h: Added state-handle and some + support for asynchronous activities. + +1995-03-30 11:08 quinn + + * asn/proto.c: Added Resource control protocol + +1995-03-29 17:40 quinn + + * server/: seshigh.c, statserv.c: Ongoing work. Statserv is now + dynamic by default + +1995-03-29 17:39 quinn + + * odr/test.c: Fixed bugs in the bitmask operations + +1995-03-29 10:06 quinn + + * odr/Makefile: [no log message] + +1995-03-29 10:06 quinn + + * asn/proto.c: Added a few v3 elements + +1995-03-28 11:16 quinn + + * server/seshigh.c: Added record packing to the search request + +1995-03-28 11:15 quinn + + * odr/: Makefile, odr_cons.c: Fixed bug in the printing mode + +1995-03-27 17:02 quinn + + * server/: Makefile, eventl.c: Added some includes for better + portability + +1995-03-27 17:01 quinn + + * odr/ber_int.c: Added include of sys/types to further portability + +1995-03-27 10:35 quinn + + * util/: Makefile, dmalloc.c, options.c: Created util library Added + memory debugging module. Imported options-manager + +1995-03-27 10:34 quinn + + * server/: Makefile, eventl.c, eventl.h, seshigh.c, session.h, + statserv.c: Added dynamic server functionality. Released + bindings to session.c (is now redundant) + +1995-03-27 10:33 quinn + + * odr/: Makefile, odr_util.c: Added more OID utilities. + +1995-03-27 10:32 quinn + + * makelib/Makefile: Simple + +1995-03-27 10:32 quinn + + * asn/Makefile: Added OID database + +1995-03-27 10:29 quinn + + * Makefile: Added util + +1995-03-22 16:01 quinn + + * server/seshigh.c: Adjusting record packing. + +1995-03-22 11:13 quinn + + * server/seshigh.c: Working on record packer + +1995-03-22 11:13 quinn + + * makelib/Makefile: Added echo in loop. + +1995-03-21 16:53 quinn + + * server/seshigh.c: Little changes. + +1995-03-21 13:30 quinn + + * server/seshigh.c: Beginning to add support for record packing. + +1995-03-21 11:17 quinn + + * odr/ber_bool.c: Fixed little bug in decoder. + +1995-03-20 13:18 quinn + + * odr/ber_oid.c: Fixed bug in ber_oid + +1995-03-20 12:26 quinn + + * asn/proto.c: [no log message] + +1995-03-20 10:46 quinn + + * server/: Makefile, statserv.c: Added osi support. + +1995-03-20 10:45 quinn + + * odr/Makefile: Added odr_mem to library + +1995-03-20 10:45 quinn + + * makelib/Makefile: Added depend NOP + +1995-03-20 10:45 quinn + + * asn/proto.c: Working towards v3 + +1995-03-18 13:16 quinn + + * odr/odr_choice.c: Minor changes. + +1995-03-17 11:44 quinn + + * server/seshigh.c: Added catch of null-string in makediagrec + +1995-03-17 11:17 quinn + + * asn/proto.c, odr/Makefile, odr/ber_any.c, odr/ber_oct.c, + odr/odr.c, odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, + odr/odr_int.c, odr/odr_mem.c, odr/odr_oct.c, odr/odr_oid.c, + odr/odr_seq.c, odr/odr_util.c, odr/test.c, server/seshigh.c: + Added memory management. + +1995-03-16 18:42 quinn + + * server/seshigh.c: Little changes + +1995-03-16 18:42 quinn + + * makelib/Makefile: Added clean + +1995-03-16 14:28 quinn + + * server/: Makefile, seshigh.c, statserv.c: Partitioned server. + +1995-03-16 14:28 quinn + + * Makefile, makelib/Makefile: Added makelib + +1995-03-15 17:02 quinn + + * server/seshigh.c: Modded session.c seshigh.c + +1995-03-15 16:36 quinn + + * server/Makefile: Removed pwrite + +1995-03-15 16:18 quinn + + * server/: Makefile, statserv.c: Little changes to better support + nonblocking I/O Added backend.h + +1995-03-15 14:46 adam + + * asn/: Makefile, diagbib1.c: New function diagbib1_str. + +1995-03-15 12:18 quinn + + * server/Makefile: Smallish changes. + +1995-03-15 12:18 quinn + + * odr/: odr_cons.c, odr_seq.c: Fixed serious bug in odr_cons + +1995-03-15 12:17 quinn + + * asn/proto.c: Fixed some return-checks from choice.. need better + ay to handle those.. + +1995-03-15 10:08 adam + + * server/Makefile: Take care of preferredMessageSize. + +1995-03-15 09:37 quinn + + * server/: Makefile, eventl.c, eventl.h, statserv.c: Now we're + pretty much set for nonblocking I/O. + +1995-03-15 09:37 quinn + + * asn/proto.c, odr/ber_tag.c: Fixed protocol bugs. + +1995-03-15 09:27 adam + + * server/Makefile: PresentRequest changed to return MARC records + from file 'dummy-records'. + +1995-03-14 17:59 quinn + + * server/: Makefile, eventl.c, statserv.c: Bug-fixes + +1995-03-14 17:59 quinn + + * odr/odr_choice.c: Added odr_constructed_more check + +1995-03-14 17:59 quinn + + * asn/proto.c: Fixed OPTIONAL flag in attributeelement + +1995-03-14 17:59 quinn + + * Makefile: [no log message] + +1995-03-14 12:30 quinn + + * server/: Makefile, eventl.c, statserv.c: Works better now. + +1995-03-14 11:27 quinn + + * server/: Makefile, eventl.c, eventl.h, session.h, statserv.c: + More work on demo server. + +1995-03-14 11:27 quinn + + * odr/: Makefile, odr_mem.c: Modified makefile to use common lib + Beginning to add memory management to odr + +1995-03-14 11:27 quinn + + * asn/Makefile: Modified makefile to use common lib + +1995-03-10 19:22 quinn + + * server/: Makefile, eventl.c, eventl.h, statserv.c: The rudiments + of an asynchronous server. + +1995-03-10 19:22 quinn + + * header.c: Just the usual copyright-header. + +1995-03-10 12:44 quinn + + * odr/: Makefile, ber_tag.c, odr.c, odr_cons.c: Fixed serious + stack-bug in odr_cons_begin + +1995-03-08 13:11 quinn + + * odr/: Makefile, ber_any.c, ber_bit.c, ber_bool.c, ber_int.c, + ber_null.c, ber_oct.c, ber_oid.c, ber_tag.c, odr.c, odr_any.c, + odr_bit.c, odr_bool.c, odr_choice.c, odr_cons.c, odr_int.c, + odr_null.c, odr_oct.c, odr_oid.c, odr_seq.c, odr_tag.c: Added + better error checking. + +1995-03-07 17:29 quinn + + * asn/: Makefile, proto.c, test.c: Added authentication stuff. + +1995-03-07 14:28 quinn + + * odr/odr.c: [no log message] + +1995-03-07 14:16 quinn + + * odr/odr.c: Fixed bug in odr_reset + +1995-03-07 11:21 quinn + + * odr/odr.c: odr_errno-->odr_error + +1995-03-07 11:19 quinn + + * odr/odr.c: Addded some method functions to the ODR type. + +1995-03-07 10:23 quinn + + * odr/: Makefile, odr.c, odr_priv.c: Installing top-level API and + documentation. + +1995-03-01 15:46 quinn + + * asn/proto.c: Fixed protocol bug in 8777query. + +1995-03-01 09:40 quinn + + * odr/: ber_oid.c, odr_oid.c: Smallish changes. + +1995-02-14 21:39 quinn + + * odr/: ber_any.c, ber_oid.c: Fixed bugs in completeBER and + (serious one in) ber_oid. + +1995-02-14 12:54 quinn + + * odr/: ber_any.c, ber_tag.c: Adjustments. + +1995-02-14 12:54 quinn + + * asn/proto.c: Fixing include. + +1995-02-10 19:57 quinn + + * odr/: ber_any.c, ber_tag.c, odr_bit.c, odr_bool.c, odr_cons.c, + odr_int.c, odr_null.c, odr_oct.c, odr_oid.c: More in the way of + error-checking. + +1995-02-10 16:55 quinn + + * odr/: ber_any.c, ber_oct.c, ber_tag.c, odr_cons.c, odr_oid.c, + odr_seq.c: Bug fixes, mostly. + +1995-02-10 16:54 quinn + + * asn/proto.c: Small adjustments. + +1995-02-09 17:02 quinn + + * asn/Makefile, odr/Makefile: [no log message] + +1995-02-09 16:57 quinn + + * Makefile: Initial revision + +1995-02-09 16:52 quinn + + * asn/: Makefile, test.c: Initial revision + +1995-02-09 16:51 quinn + + * asn/proto.c, odr/Makefile, odr/ber_any.c, odr/ber_bool.c, + odr/ber_int.c, odr/ber_len.c, odr/ber_null.c, odr/ber_tag.c, + odr/odr_any.c, odr/odr_bit.c, odr/odr_bool.c, odr/odr_choice.c, + odr/odr_cons.c, odr/odr_int.c, odr/odr_null.c, odr/odr_oct.c, + odr/odr_oid.c, odr/odr_seq.c, odr/odr_use.c, odr/odr_util.c, + odr/test.c: Works better now. + +1995-02-07 18:53 quinn + + * odr/Makefile: Initial revision + +1995-02-07 18:52 quinn + + * odr/: ber_int.c, ber_tag.c, odr_choice.c, odr_cons.c, odr_seq.c: + A damn mess, but now things work, I think. + +1995-02-07 15:13 quinn + + * odr/: odr_bit.c, odr_int.c, odr_oct.c, odr_oid.c, odr_seq.c: Bug + fixes. + +1995-02-06 22:26 quinn + + * asn/proto.c: Repaired this evening's damages.. + +1995-02-06 17:45 quinn + + * odr/: odr_seq.c, test.c: Small mods. + +1995-02-06 17:44 quinn + + * asn/proto.c: First hack at Z/SR protocol + +1995-02-03 18:04 quinn + + * odr/: ber_oid.c, odr_oid.c, odr_use.c: Initial revision + +1995-02-03 18:04 quinn + + * odr/: ber_bit.c, ber_oct.c, odr_bit.c, odr_oct.c, test.c: [no log + message] + +1995-02-02 21:38 quinn + + * odr/: ber_bit.c, ber_oct.c, odr_bit.c, odr_oct.c, odr_util.c, + test.c: Updates. + +1995-02-02 17:21 quinn + + * odr/: ber_bool.c, ber_int.c, ber_len.c, ber_null.c, ber_oct.c, + ber_tag.c, odr_bool.c, odr_cons.c, odr_int.c, odr_null.c, + odr_oct.c, odr_priv.c, odr_seq.c, odr_tag.c, odr_util.c, test.c: + First kick. + diff --git a/dependencies/yaz-2.1.28/Doxyfile.in b/dependencies/yaz-2.1.28/Doxyfile.in new file mode 100644 index 0000000..73a0a80 --- /dev/null +++ b/dependencies/yaz-2.1.28/Doxyfile.in @@ -0,0 +1,1153 @@ +# Doxyfile 1.3.8 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = YAZ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = dox + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of source +# files, where putting all generated files in the same directory would otherwise +# cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is used +# as the annotated text. Otherwise, the brief description is used as-is. If left +# blank, the following values are used ("$name" is automatically replaced with the +# name of the entity): "The $name class" "The $name widget" "The $name file" +# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src include + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = YES + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = "YAZ_BEGIN_CDECL= " "YAZ_END_CDECL=" "YAZ_EXPORT=" "HAVE_XML2=1" "HAVE_XSLT=1" + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = YAZ_BEGIN_CDECL YAZ_END_CDECL YAZ_EXPORT + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superseded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes that +# lay further from the root node will be omitted. Note that setting this option to +# 1 or 2 may greatly reduce the computation time needed for large code bases. Also +# note that a graph may be further truncated if the graph's image dimensions are +# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). +# If 0 is used for the depth value (the default), the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/dependencies/yaz-2.1.28/LICENSE b/dependencies/yaz-2.1.28/LICENSE new file mode 100644 index 0000000..4e38cfb --- /dev/null +++ b/dependencies/yaz-2.1.28/LICENSE @@ -0,0 +1,26 @@ +/* + * Copyright (c) 1995-2006, Index Data. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + */ diff --git a/dependencies/yaz-2.1.28/Makefile.am b/dependencies/yaz-2.1.28/Makefile.am new file mode 100644 index 0000000..37ff5b0 --- /dev/null +++ b/dependencies/yaz-2.1.28/Makefile.am @@ -0,0 +1,31 @@ +## This file is part of the YAZ toolkit. +## Copyright (C) 1994-2005, Index Data, All rights reserved. +## $Id: Makefile.am,v 1.36 2006/06/15 14:15:17 adam Exp $ + +AUTOMAKE_OPTIONS = foreign + +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS = src include util test client ztest zoom doc etc + +aclocaldir=$(datadir)/aclocal + +aclocal_DATA = m4/yaz.m4 + +SPEC_FILE=$(PACKAGE).spec +EXTRA_DIST=$(SPEC_FILE) README LICENSE NEWS TODO windows.txt \ + yaz-config.in m4/yaz.m4 m4/yaz_libxml2.m4 buildconf.sh \ + Doxyfile.in + +dist-hook: + if test -x /usr/bin/cvs2cl -a -d CVS; then cvs2cl ; fi + mkdir $(distdir)/win + -cp $(srcdir)/win/* $(distdir)/win + mkdir $(distdir)/debian + cp $(srcdir)/debian/control $(distdir)/debian + cp $(srcdir)/debian/changelog $(distdir)/debian + cp $(srcdir)/debian/rules $(distdir)/debian + cp $(srcdir)/debian/*.postinst $(distdir)/debian + cp $(srcdir)/debian/*.install $(distdir)/debian + cp $(srcdir)/debian/*.manpages $(distdir)/debian + diff --git a/dependencies/yaz-2.1.28/Makefile.in b/dependencies/yaz-2.1.28/Makefile.in new file mode 100644 index 0000000..660d7f8 --- /dev/null +++ b/dependencies/yaz-2.1.28/Makefile.in @@ -0,0 +1,654 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = . +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Doxyfile.in \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/yaz-config.in $(srcdir)/yaz.spec.in \ + $(top_srcdir)/configure ChangeLog NEWS TODO \ + config/config.guess config/config.sub config/depcomp \ + config/install-sh config/ltmain.sh config/missing +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno configure.status.lineno +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = yaz.spec yaz-config Doxyfile +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +am__installdirs = "$(DESTDIR)$(aclocaldir)" +aclocalDATA_INSTALL = $(INSTALL_DATA) +DATA = $(aclocal_DATA) +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 +SUBDIRS = src include util test client ztest zoom doc etc +aclocaldir = $(datadir)/aclocal +aclocal_DATA = m4/yaz.m4 +SPEC_FILE = $(PACKAGE).spec +EXTRA_DIST = $(SPEC_FILE) README LICENSE NEWS TODO windows.txt \ + yaz-config.in m4/yaz.m4 m4/yaz_libxml2.m4 buildconf.sh \ + Doxyfile.in + +all: all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +yaz.spec: $(top_builddir)/config.status $(srcdir)/yaz.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +yaz-config: $(top_builddir)/config.status $(srcdir)/yaz-config.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-aclocalDATA: $(aclocal_DATA) + @$(NORMAL_INSTALL) + test -z "$(aclocaldir)" || $(mkdir_p) "$(DESTDIR)$(aclocaldir)" + @list='$(aclocal_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(aclocalDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(aclocaldir)/$$f'"; \ + $(aclocalDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(aclocaldir)/$$f"; \ + done + +uninstall-aclocalDATA: + @$(NORMAL_UNINSTALL) + @list='$(aclocal_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \ + rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + mkdir $(distdir) + $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/doc $(distdir)/doc/common $(distdir)/m4 + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || mkdir "$(distdir)/$$subdir" \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="../$(top_distdir)" \ + distdir="../$(distdir)/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(aclocaldir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-aclocalDATA + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-aclocalDATA uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ + check-am clean clean-generic clean-libtool clean-recursive \ + ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ + dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-generic distclean-libtool distclean-recursive \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-aclocalDATA \ + install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-aclocalDATA \ + uninstall-am uninstall-info-am + + +dist-hook: + if test -x /usr/bin/cvs2cl -a -d CVS; then cvs2cl ; fi + mkdir $(distdir)/win + -cp $(srcdir)/win/* $(distdir)/win + mkdir $(distdir)/debian + cp $(srcdir)/debian/control $(distdir)/debian + cp $(srcdir)/debian/changelog $(distdir)/debian + cp $(srcdir)/debian/rules $(distdir)/debian + cp $(srcdir)/debian/*.postinst $(distdir)/debian + cp $(srcdir)/debian/*.install $(distdir)/debian + cp $(srcdir)/debian/*.manpages $(distdir)/debian +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/NEWS b/dependencies/yaz-2.1.28/NEWS new file mode 100644 index 0000000..536f12a --- /dev/null +++ b/dependencies/yaz-2.1.28/NEWS @@ -0,0 +1,1857 @@ +--- 2.1.28 2006/09/04 + +TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6 +friendly now. + +Fixed bug #644: Using Non Reentrant gethostbyname causes SIGSEGV. + +New option for yaz-marcdump -lpos=value which allows setting a portion +of MARC header to a certain value. + +Fixes for MARC generation when encoded as MARC-8 (bug 642, 643). + +ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to +SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 . + +--- 2.1.26 2006/08/15 + +Fixed problem with SRU mode type (soap, get, post) for yaz-client +and ZOOM-C. + +Fixed problem another problem with ZOOM_EVENT_RECV_RECORD . Bug #626. + +--- 2.1.24 2006/08/08 + +Fixed MARC ISO2709 encoding routines to deal with character set +conversion. + +Minor changes to GFS logging. Database included in search request log +line. + +Fixes for ZOOM-C: event ZOOM_EVENT_RECV_RECORD was not generated for +cached/multiple records. + +Shared libraries are built by default on Unix+configure. + +Changed cql2pqf transformation to use a different evaluation order. The +new order is: always, relation, structure, position, truncation, index +and relationModifier. Old order was: always, relation, relationModifier, +structure, index, position, truncation. Note that the the latter ones +override former ones for identical attributes.. The new scheme means that +it is possible to override any existing attribute with a relationModifier. +And also that it is possible to override everything for the index rule +(except the ones listed in relationModifier). No order is perfect but this +one, we believe, covers more real cases.. The "always" should have been +called "default", since the attributes there can be overridden with all +the rest. + +For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the +compilation phase, but also for yaz-config --cflags output. This allows +us to have public headers with Libxml2 stuff in them . It should also, +eventually, make Libxml2 checks redundant in packages using YAZ, such +as yazproxy. + +--- 2.1.22 2006/06/15 + +Changed SRU update structure bend_update_rr so that SRU diagnostics are +stored in uri, message and details.. Previously diagnostics were stored +in errcode, errstring. Patch by Ko van der Sloot. Breaks binary +compatibility.. but he's probably the only one affected, so. + +Added support for CCL, compiled on the client side, in ZOOM-C. This +is invoked using ZOOM_query_ccl2rpn() with the CCL configuration as +input; the resulting query objects can be used for for searching with +ZOOM_connection_search() and scanning with ZOOM_connection_scan1(). + +YAZ' configure searches for OpenSSL by default. + +SSL comstack uses SL_CTX_use_certificate_chain_file rather than +SL_CTX_use_certificate_file. See +http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html +for more info. Thanks to Ko van der Sloot. + +--- 2.1.20 2006/06/02 + +Bug #600: SRU GET, POST support for yaz-client. Introduced +command 'sru' which selects method SOAP/GET/POST. + +Allow missingValueAction to be specified for the sortspec string - +function yaz_sort_spec. By default, the missing value action is null. +Use ! to specify "abort". Use = followed by stringvalue to specify default +value. + +Ensured that Present-handler (if defined) is called in GFS before any call to +fetch-hhndler. This now includes piggy-backed presents as well as SRW/U +searchRetrieve requests. + +Documentation for YAZ is now based on the Docbook XML/XSLT using +xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ +is no longer depending on jade/openjade or docbook-to-man scripts. +PDF is no longer part of the distribution - but can optionally be +made using DSSSL/jadetex or FOP. + +Added retrieval handling support in Generic Frontend Server to support +conversion between MARC/XML as well as XSLTtransforms. See +etc/yazgfs.xml for an example. + +Added Authentication support to Generic Frontend Server in SRU +mode. Authentication using HTTP Basic is supported, as is the use +of 'x-username' and 'x-password' parameters in the request itself. + +Added support for a new character set MARC8s identical to MARC8 except +that it converts combined characters to single Unicode characters in the +Latin-1 range (when possible). + +--- 2.1.18 2006/04/24 + +ASN.1 compiler 0.4: generates brief Doxygen file header for +generated .h/.c files. + +Utility yaz_iconv now supports conversion to MARC-8. + +New facilities for the MARC module. The reading - and writing of +content are separate methods for the yaz_marc_t handle. The following +read functions are available: yaz_marc_read_iso2709 (Reads MARC in +ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange +format). Write functions have prefix yaz_marc_write_.. The existing +utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still +available. Removed support for OAI-MARC and simplexml (not the +simplexml from PHP5). + +Added a new ZOOM event type ZOOM_EVENT_END which signals no more events +to be returned for this connection. + +--- 2.1.16 2006/03/31 + +Allow multiple languages and charsets to be specified with +yaz-client. Each item must be separated by comma (NO BLANKS). E.g. + negcharset iso-8859-1,utf-8 + +Translation of proximity nodes from CQL into PQF now works. + +Moved to automake 1.8, 1.9. + +Added function yaz_log_set_handler which allows a log handler to be +installed. This handler will be called for all log messages. Output +to file is also produced; but that can be disabled by passing NULL +fname to yaz_log_init_file. + +Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537. + +For SRW (including GFS), accept application/soap+xml as content-type +for SOAP msg. + +For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&) +produces NO stylesheet reference even if a default stylesheet is specified +in GFS XML config. + +--- 2.1.14 2006/03/14 + +Updated Windows package to include yazd.dll + yazd.lib for the +Development component. + +If the environment variable YAZ_LOG is set, then it is used as a +string indicating the default level of logging to use if not +overridden by calls to yaz_log_init() or yaz_log_init_level(). If +it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is +used as before. So, for example, to omit warnings from YAZ logging, + export YAZ_LOG=-warn + +cql_transform() now map structure and other attributes before indexes, +so that index-specific structures and other attributes can override +defaults. So now a combination of mapping specifications such as: + structure.* = 4=1 + index.dc.date = 1=date-modified 4=5 +does the right thing. + +cql_transform() now also respects the "always" mapping specification, +which establishes an initial set of attributes to be used for all +terms except where overridden by more specific attributes associated +with the index, relation or modifier. + +Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies +which mode to use; one of "post", "get" or "soap" (SRW, default). + +Fixes for yaz_iconv routines: changed trie-based character set conversions +to use only non-negative values for bit fields due to Sun's C compiler not +supporting negative values. + +Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8 +sequences where not read correctly. Fix by Rustam Usmanov. + +Updated win/makefile to use options, settings which makes things +compile with VS C 2005. + +--- 2.1.12 2006/02/01 + +Fixed bug in yaz_oi_update which used incorrect value for categoryValue. + +In ZOOM socket code, use select instead of poll on MacOSX. + +ZOOM-C now support client-side compilation of CQL into RPN that is +sent to the server, enabling CQL to be used against all Z39.50 +servers. Use ZOOM_query_cql2rpn() to set the compiled CQL into a +ZOOM_query object, and submit it using ZOOM_connection_search(). +The CQL-to-RPN translation uses a configuration file, the name of +which must be specified in the Connection's "cqlfile" option. + +ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1() +function, which takes as its start-term parameter a ZOOM_query object +(which may have had either CQL or RPN set into it). + + +--- 2.1.10 2005/11/29 + +Added ZiNG Update Support. New codecs are defined in srw.h. Extended the +GFS to support this as well. Backend handler, bend_srw_update, does the +update work. Code contributed by Ko van der Sloot. + +Allow retrieval of Search Result-1 information in ZOOM by the use of +options that are attached to a result set. ZOOM documentation updated +accordingly. + +Fixed bug #416: First/second comb characters not handled in the MARC-8 to +UTF-8 conversion. Patch by Raj Patel. + +Added option -m to GFS to control formatting of timestamps in log file. + +Added 'exit' as synonym for 'quit' in yaz-client + +Added support for specifying SRW resultSetId + resultSetIdleTime in a +Generic Frontend Server's search handler. Refer to include/yaz/backend.h +for the new members. Patch by Ko van der Sloot. + +Added support for SRU POST. It is supported for content-type +application/x-www-form-urlencoded only. Patch by Ko van der Sloot. + +Do not build the separate Multi-threaded (MT) library libyazthread.la. +Instead make the library libyaz.la multi-threaded. Threading as a whole +can still be disabled by configure option --disable-threads. Previosly, +with older GLIBCs there were problems with MT libs under Apache. This +has now been fixed a long time ago. + +Fixed bugs in yaz_log that occurred on Sparc Solaris in Multi-threaded +applications. + +CQL module modified to be case insensitive for relations/indexes/operations. + +Fixed bug in CQL transform code: incorrect value relationModifieder +was used. + +Added 'show all' command for yaz-client which retrieves all results +for last search. + +Added new yaz-client, xmles, which takes a (private) OID and +a document to be sent as an extended service request. + +Describe new yaz-client commands wait_response and set_auto_wait. + +Increase TCP/IP listener backlog from 3 (which I am guessing was +copied from the SunOS manual entry way back when) so SOMAXCONN, so +that the socket will queue as many incoming connections as it's able +to handle ongoing connections. In other words, it will never now +refuse a connection that it would be able to handle merely because +it's not got around to accepting() enough of the pending connections +yet. This is the behaviour anyway under Linux, where the listen() +argument is ignored; but not under BSD and on systems such as +MS-Windows that use BSD-derived TCP/IP stacks. The behaviour of +YAZ-based servers should now be uniform across operating systems in +this respect. + +yaz-marcdump uses 64-bit file access on some systems. This is enabled +on Linux and other Unix variants where _FILE_OFSET_BITS=64 is supported. +This allows yaz-marcdump to read large MARC batches (>2 GB). + +Modified all YAZ source files - except the source which is auto-generated +by tools - to use spaces rather than TABS. Emacs/VIM trailer added to +all source files. + +Add ZOOM_connection_option_getl() and ZOOM_options_getl(), +corresponding to the existing *_setl() function. These allow option +values containing arbitrary valuues. + +Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of +ZOOM_resultset_sort() in new applications. Its behaviour is identical +except that it returns an indicator of whether or not the sort +criterion was accepted (0 for OK, -1 for invalid). + +--- 2.1.8 2005/06/07 + +Fixed bug in yaz_marc_decode_buf. By mistake the routine appended +MARC output rather than returning "new" buffer. + +yaz-client warns about unknown init options. + +Fixed bug #371: "options concurrentOperations ignores concurrentOperations" + +--- 2.1.6 2005/05/24 + +Added support for SRW sort in Generic Frontend Server. Patch +by Ko van der Sloot. Member srw_sortKeys in bend_search_rr holds +sortKeys - or NULL if none is provided. + +Fixed bug #307: It was impossible to specify indefinite/no timeout +for ZOOM_event. Special timeout value -1 now means indefinite timeout +(i.e. no timeout). + +Added support for multiple languages and charsets to be specified in +ZOOM. Each charset/language is separated by a blank. If negotiation is +in effect in init-response, Option +"negotiation-charset-in-effect-for-records" set to 1(true) or 0(false). +Code based on patch by Vasiliy Osadchuk. + +Fixed bug #306: infinite recursion that occurred when calling +yaz_log_level_init as the first call (before other log level or +nmem_init calls) + +Fixed bug in scan handling in front end server: if preferred-Position-In- +Response was non-present, a NULL pointer referece was performed. + +--- 2.1.4 2005/04/26 + +Changed include/yaz/diagbib1.h and added include/yaz/diagsrw.h with +diagnostic messages+codes for Bib-1 and SRW. Preprocessor defines are +now defined for all those error codes. So instead of putting 109 in +your program you'd use YAZ_BIB1_DATABASE_UNAVAILABLE. The messages +are generated from a .csv - file. See src/bib1.csv and srw/srw.csv. + +Modified the yaz-marcdump utility to skip garbage bytes between MARC +records in a file. + +Fixed bug - uninitialized memory - due to bad code for fix of bug #272. + +Program yaz-client now exits and produces an error message if multiple +Z39.50 servers are specified on the command line (none or one allowed +only). + +Program yaz-marcdump skips garbage bytes between ISO2709 records rather +than abort. + +--- 2.1.2 2005/03/16 + +Fixed bug #273: Update for recent MARC-8 -> UNICODE changes. + +Fixed bug #272: Preserve spacing for CCL terms. + +--- 2.1.0 2005/03/14 + +Added support for virtual hosts and multiple backend servers for +the YAZ frontend server. The configution is XML based and +support specificition of CQL to RPN mappings and explain information. +See section "Virtual Hosts" in the YAZ manual. + +Extended OPAC display utility. OPAC display utility renders +bibliographic (MARC) record as well. Added yaz_opac_decode_wrbuf +to supplement yaz_marc_decode_wrbuf. + +Fixed a bug in MARC decoder that could caused it to crash for some +invalid MARC records. More diagnostics and warnings where added in +XML output (warnings, etc are stored in comments). + +--- 2.0.34 2005/02/08 + +Fixes for UNIX domain sockets. Bug #261. + +Fixes for MARC-8 to UTF-8 conversion. Bugs #258 and #260. + +Fixed bug #263: YAZ MARCXML dump shows extra spaces after control fields. +Added yaz_marc_subfield_str which defines subfield lead string which is +used in YAZ_MARC_LINE format. Default string is blank+$. Added +yaz_marc_endline_str which defines end of fields string used in +YAZ_MARC_LINE format. Default string is newline. + +Experimental support for MarcXChange. This format can be produced +by yaz-marcdump and is implemented in yaz_marc_decode - functions. + http://www.bs.dk/standards/MarcXchange.xsd + +Added yaz-client commands scansize that sets maximum number of +entries to be returned by scan. + +--- 2.0.32 2005/01/11 + +Added support for SRW scan in yaz-client and Generic Frontend Server. + +* Added whereInList member to SRW Scan Term. + +* Changed Z_SRW_scanRequest to be able to carry both CCL and PQF. + +Fixed NMEM system to return aligned blocks on the smallest boundaries +that are suitably aligned for all possible types on the particular +architecture YAZ is being built for. + +--- 2.0.30 2005/01/04 + +Fixed numerious warnings that was issued with newer versions of GCC. + +Fixed NMEM system to return aligned blocks on 8 byte boundaries rather +than 4 bytes, since 4 may not be enough on some systems such as GCC 3.4.3 +on Solaris. + +Make YAZ Generic Frontend Server slightly faster. + +Enhance (and reduce) logging for Generic Frontend Server. + +Revert YAZ log system so that it flushes every write operation +by default. (YAZ 2.0.26 and earlier verisons did that). Bug #240. + +Modified the YAZ logging system. The LOG level defines use YLOG_ prefix +instead of LOG_, due to name clash with syslog(3). LOG_ are still +present. New applications should define YAZ_USE_NEW_LOG=1 - this +will effectively disable old definitions. + +--- 2.0.28 2004/11/09 + +Added yaz_log_time_format which specifies log format using +strftime(3). + +Added yaz_log_module_level which returns mask for a module. Value +is non-zero mask a if module is enabled; zero if disabled. + +* Fixed bug #148: CQL parser may leak. A few prototypes were changed +in include/yaz/cql.h. + +Fixed bug #176: Dont throw diagnostics on empty SRU args. + +Fixed bug #175: surrogate diagnostics in SRW lacking NS. + +Fixed bug #172: RPM builds does not enable SSL. + +Doxyfile.in part of dist. Doxyfile generated by configure. + +Configure aborts if any of --with-xml2, --with-openssl, --enable-tcpd +are given and the corresponding component does not exist. + +Extend CCL documentation in YAZ reference. Describe r=r. + +--- 2.0.26 2004/10/01 + +Fixed MARC->MARCXML conversion to properly deal with +fields, subfields, indicators having non-ASCII characters. + +Fixed MARC->MARCXML conversion so that ASCII control characters +except TAB,CR,LF are removed from resulting XML (XML 1.0 does not +support these). + +Added YAZ GFS support for conversion from Z39.50 surrogate +diagnostics to SRW surrogate diagnostics. + +Bug fix: YAZ GFS did not return schema in explainResponse. + +--- 2.0.25 2004/09/30 + +The YAZ GFS when converting SRW/SRU requests to Z39.50 structures +now converts recordSchema to elementSetName as well as schema URI. + +Fixed bug in COMSTACK that prevented HTTP request packages from being +decoded properly. + +--- 2.0.24 2004/09/29 + +Added CCL facility r=r "range" which is similar to r=o "ordered" but +does not require white-space before and after the dash in a range, e.g. +x=-1990 is equivalent to x <= 1990 iff r=r, but equivalent to x= -1980 +iff r=o. + +Fixed a few AC_TRY_LINK configure tests that did not operate properly +due to new GCC removing "redundant" code. + +Added yaz-client commands scanpos and scanstep that sets preferred +position and step-size for scan. + +Macro YAZ_INIT in yaz.m4: option --with-yazconfig renamed to --with-yaz. + +Added CCL utility ccl_qual_buf which parses one or more CCL +spec lines in a buffer. + +Added CCL utility ccl_qual_line which adds CCL qualifier line consisting +of name and value - ignoring empty lines and comments. + +On Windows, the debug DLL/import lib is now named yazd.{dll,lib}. + +Added odr_get_element_path which returns current element path for an +ODR handle. This utility is useful in error handling or user-defined +ODR_PRINT stream. + +Added ODR_PRINT utility odr_set_stream which is is a more generic +alternative to odr_setprint. odr_set_stream takes a stream handle, pointer +to a write function and pointer to close function. The close function - if +non-NULL - will be called during odr_destroy. + +Fixed bug in CCL parser where truncation char was not removed from +right side when truncation=both was in effect. + +Fixed CQL parser to use unsigned chars for isxxx from ctype.h due +to VS.NET. + +--- 2.0.23 2004/08/11 + +Fix buffer overrun in CQL parser when dealing with proximity (%). + +Fixes for MARC-8 in yaz_iconv character set utilies. The MARC-8 +to UTF-8/UCS conversion is now only based on codetables.xml. + +yaz_marc_decode_buf sets leader pos 9 to "a" for MARCXML output. + +--- 2.0.22 2004/08/06 + +Add support for more "commit changes" in ZOOM (uses Extended Services). + +For yaz-client, command set_marcdump / -m dumps SUTRS/XML/.. +records as well. + +Yet another small fix for configure of SSL. + +--- 2.0.21 2004/05/14 + +Fix SSL libs for configure when --with-openssl=DIR is given. + +--- 2.0.20 2004/05/10 + +Add autoconf m4 macro YAZ_DOC for YAZ documentation setup (docbook). + +SSL comstack now uses yaz.pem certificate file on server side +by default. Certificate filename can be configured by calling +comstack function cs_set_ssl_certificate_file before cs_bind is used. + +Fix bug regarding multiple calls to ZOOM_connection_connect. + +Implement cs_set_ssl_ctx which sets SSL_CTX for SSL comstack. + +Do not create SSL_CTX in cs_create (ssl_type). Create in tcpip_bind, +tcpip_rcvconnect instead. This allows user to set custom SSL_CTX. + +ZOOM now allows inspection of X509 peer certificate for verification. +The X509 buffer is retrived by reading ZOOM option "sslPeerCert". + +Removed libyazssl.la. When SSL is enabled, libyaz.la has SSL support and +all programs have too (yaz-ztest, yaz-client, zoom..). May not be +as "modular" but it simplifies things. + +Added cs_get_peer_certificate to that returns peer X509 PEM. + +Added cs_get_ssl that returns SSL handle (SSL *) for SSL comstack; returns +NULL if SSL is unavailable. + +Documentation about MARC decoding tools. + +Fix --disable-tcpd to really disable tcpd. Patch by Robin H. Johnson. + +--- 2.0.19 2004/03/30 + +Rename CHANGELOG to NEWS to follow GNU style packing. + +Fix bug with missing initialization of member in init_diagnostics. +This bug affects threaded version of GFS server. + +--- 2.0.18 2004/03/20 + +Use wrbuf_xmlputs_n instead of wrbuf_write_cdata to avoid clash with +Zebra symbol. + +Ensure zlib.dll is packed with Windows install. + +--- 2.0.17 2004/03/17 + +Fix encoding of xsd:string to use text instead of CDATA. + +Fix endless loop in CQL parser with unbalanced ". + +Use a more compact way to store MARC-8 conversion tables. + +--- 2.0.16 2004/03/16 Debian only + +Oleg Kolobov Fixed a bug in yaz_iconv regarding conversion to +UCS4 / UCS4LE. + +Update CQL parser to use new CQL 1.1 modifiers for booleans and +relations. + +Add CQL test cases. + +--- 2.0.15 2004/03/01 + +Another fix for decoding of XML packed records. + +--- 2.0.14 2004/02/25 + +Fixes for Chunked encoding. White space not ignored after length spec. + +Update NS and use default NS for SRW diagnostic elements. + +--- 2.0.13 2004/02/23 + +Implement ZOOM_resultset_cache_reset which resets record cache. + +Implement ZOOM_resultset_sort which sorts a result set. + +Implement chunked HTTP transfer. + +For SSL, use -lssl -lcrypto on systems that don't have pkg-config. + +--- 2.0.12 2004/02/16 + +Added member 'schema' to bend_explain_rr structure so that backend +can specify explain record identifier. Defaults to Zeerex 2.0. + +Fix encoding of OID's of form 1.0.X. Bug introduced in 2.0.11. + +--- 2.0.11 2004/02/16 + +* SRW/SRU 1.1 updates: updated diagnostic in srw.h to use uri instead +of code. + +Added init command for yaz-client which sends "extra" init request. + +Fixed two bugs in OID codec - ber_oidc. Throw error when encoding/decoding +bad truncated OID. Fix decoding of OID X.Y... when X=2 and Y>39. + +Fixed a bug in ASN.1 compiler that caused Type-1 Operator codec to fail. + +Make ZOOM error code for "invalid query". + +Fixed compilation for SSL which wasn't properly enabled for all platforms. + +--- 2.0.10 2004/02/05 + +For yaz.m4, allow second argument for YAZ_INIT to hold minimal version of +YAZ required. + +* SRW/SRU 1.1 updates. Diagnostic code now a URI. + +Added option -p to make Generic Frontend Server to write PID file. + +Added option -D to put Generic Frontend Server in background on its own. + +Make ZOOM C recognize option "password". If unset, "pass" is used +(for backwards compatibility). + +Fixed a bug in Generic Frontend Server that could make it crash if a +client sets characterSetNegotation bit, but didn't pass negotiation stuff +in InitRequest. + +New YAZ client command, zversion, that sets Z39.50 version (1,2,3..). +Must be issued before open, in order to be in effect. + +--- 2.0.9-6 2004/01/12 Debian/Windows + +Make the SRU server more picky WRT unknown params, etc. + +Bug fix: ZOOM scan response didn't return displayTerm - when present. + +New YAZ client command, options, that sets Z39.50 options. + +New utility functions yaz_init_opt_{encode,decode} to encode/decode Z39.50 +options from a string of tokens (one token for each option bit). + +Update SRW diagnostic code messages. + +--- 2.0.9-5 2004/01/07 Debian/Windows + +Handle user defined stylesheet for SRW/SRU. + +--- 2.0.9-4 2004/01/06 Debian/Windows + +Fix bug in decoding of Content-Length. + +--- 2.0.9-3 2004/01/06 Debian/Windows + +Fix a bug with decoding of XML packed records. + +--- 2.0.9-2 2004/01/05 Debian only + +Allow empty ODR (NMEM=0) for odr_oiddup and odr_getoidbystr. + +Fix bug in SRW/SRU diagnostics decoding. + +--- 2.0.9 2004/01/05 + +Fixed bug in Generic Frontend Server which could drop records exceeding +preferred message size. Reported and fixed by Irina Dijour. + +Fixed calculation of package size for structured records in Generic +Frontend Server. Reported and fixed by Irina Dijour. + +Fixed namespace for SRW/SRU diagnostics. + +Fixed SEGV in yaz-client that occured for HTTP connection errors. + +--- 2.0.8 2003/12/22 + +* SRW/SRU 1.1. Since the Namespace has changed for SRW/SRU, it means that +this version is incompatible with version 1.0 and older YAZ SRW/SRU +implementations. + +CQL changes to reflect recent changes to the specification: +* Documentation talks about context sets instead of index sets. +* Documentation talks about indexes instead of qualifiers. +* The CQL-to-PQF transformer's configuration file now uses + "index.set.name = " instead of the old form + "qualifier.set.name = ". (Both forms are still + understood but the latter is deprecated.) +* CQL terms with no explicit index specified are now interpreted as + cql.serverChoice instead of srw.serverChoice (which of course + behaves exactly the same.) + +--- 2.0.7 2003/12/16 + +MARC conversion can now generate ISO2709 output in another +character set. yaz-marcdump uses this facility if you invoke it +with option -O. + +Added missing C decl macros for include/yaz/{soap.h,srw.h,cql.h}, so that +functions from there can be used from C++. + +--- 2.0.6 2003/12/04 + +Frontend server now transfers memory from decoded packages to stream +ODR for search. + +NMEM now clears freed blocks with 'Y' (hex 59) to force bad memory +references to show up. + +ZOOM-C now supports standard ZOOM option names as described in v1.4 of +the ZOOM Abstract API. The older names for the same options are still +also supported for the benefit of old applications. + +ZOOM-C supports "implementationId" and "implementationVersion" options +to go along with "implementationName". These allow the user code to +specify identification strings to be sent to servers. +Add OID for the new ExtLite attribute set. + +Add OIDs for NACSIS-CATP, FINMARC2000 and MARC21-fin record-syntaxes, + as requested/supplid by Ere Maijala + +For generic frontend server, reverse the order of +"toolkit-supplied / application-supplied" strings sent as implementationId, +Name and Version. Also, remove the spaces around the slash. This brings +the GFS in line with the behaviour of ZOOM-C on the client side. + +Add function ZOOM_scanset_display_term. + +yaz-client shows scan displayTerm if present. + +Utility yaz-iconv is now installed by default along with the man page +yaz-iconv.1. + +Extend configure check for OpenSSL to use pkg-config where available (such +as RedHat 9). + +Incorporate patch by Morten Bogeskov which allows a Unix file socket +server to specify uid/gid/mask for socket using the format + unix:[user=uid,][group=gid,][umask=mask,]file=path +If file= is omitted the existing format is assumed, e.g. + unix:path +in which case the mask is 0666 (rw for everybody). + +Major restructure of YAZ source. All source in libyaz is in src directory. +Programs in client (yaz-client), ztest (yaz-ztest), zoom (zoom programs), +util (utility programs such as ASN.1 compiler, yaz-marcdump). + +Added man page for utility yaz-marcdump (used to be called marcdump). +yaz-marcdump is installed by 'make install'. + +Fixed a memory leak in Generic Frontend Server that occurred when decoding +of incoming package failed. + +Fixed a potential DOS attack vulnerability in COMSTACK/ODR. + +Change prototype of odr_perror: add const to message string. + +New function yaz_log_reopen which reopens log file (for log rotate, etc.) + +* Blocking parameter for COMSTACK cs_create is now a bit mask rather +than a blocking flag. Bit 0 is set for blocking, reset for non-blocking. +Bit 1 is set if cs_addrstr should avoid DNS lookup; reset for full +DNS lookup. There should not be any compatibility problems with this +assuming that blocking=1 or 0 is used. + +Fix bad reference in UNIX comstack in function cs_addrstr. + +Fix for compilation on AIX. + +The generic front-end server (server/seshigh.c) now supports returning +Init diagnostics to the client in User-information-field, in +accordance with Z35.90 Implementor Agreement 5 (Returning diagnostics +in an InitResponse) + +--- 2.0.4 2003/09/04 + +Allow any CQL relation (not just all,any,exact,scr). + +Fixes for OCLC UI ASN.1 to make it work with SilverPlatter targets +that features the same UI. + +Implemented command update0 in YAZ client which is equivalent to +update but uses old of Ext Update ASN.1. + +Use OID 1.2.840.10003.15.1000.81.1 for privately defined charsets +in charset negotiation. Added VAL_ID_CHARSET in oid.h. +Previously no OID was used for this info. + +ZOOM uses smallSetUpperBound=1 instead of 0 for piggyback searches. +It apparantely upsets EBSCO Publishing IR Z39.50 Server which +returns 'malformed search term' otherwise. + +SortResponse member resultCount now set to NULL in sort handler of +frontend server. + +OPAC support ZOOM. ZOOM_record_get returns OPAC info (as XML) if +type is "opac". + +Add three new utility functions for translating OIDs between various +formats -- symbolic name such as "Usmarc", minus-1-terminated int +arrays and dotted strings such as "1.2.840.10003.9.5.1": + int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); + char *oid_to_dotstring(const int *oid, char *oidbuf); + char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf); + +Reverted modifications for ES Update definition for z_IU0Update +(OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition +is back to YAZ 2.0.2. + +String value attributes for CCL parser. + +Support for OCLC's locally registered "OCLC-UserInformation" PDU, +which their FirstSearch server returns in Init responses, sometimes +carrying useful diagnostic information when Init fails. This has the +OID 1.2.840.10003.10.1000.17.1 and is defined in the file +"z39.50/oclcui.asn", where its definition is somewhat different from +what OCLC document on their web-site, as required to interoperate with +their servers. + +Support for anonymous authentication in yaz-client. Use the command +"auth -". + +* Fix the OID of the Index Data-local "admin" Extended Service from + 1.2.840.10003.9.81.1 to 1.2.840.10003.9.1000.81.1. The omission of + the 1000, which indicates a locally-defined OID, was a mistake. + +--- 2.0.3 2003/06/20 + +Fix CCL directive @case handling so that it affects string match for +both CCL keywords and qualifiers. + +* ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and +1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update . +Decoder has been updated with ASN.1 changes as listed in +http://lcweb.loc.gov/z3950/agency/defns/updateES.html +Note that the "latest" DB Update, OID 1.2.840.10003.9.5.1.1 , handler +z_IUUpdate, remains unchanged. + +ZOOM_record_get may now return a record in a specific character set. +For type use "form; charset=from[,to]" where form (render, xml, ..) , +"from" is the character set of record as returned by target. "to" is +the character set to be returned. If omitted, "to" is UTF-8. + +YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp + +New ODR utility, odr_getelement, which returns name of element for +which encoding/decoding failed. + +Fixed ODR so that it returns error code OREQUIRED rather than ONONE +in cases where a required element was omitted. + +Bug fix: some MARC8 sequences were not converted. + +New ZOOM option "step" which specifies number of records to be +retrieved in one chunk. Used in conjunction with "start" and "count". + +SRW support for yaz-client. Use scheme http: to use it, e.g. + http://host:port/db + +yaz-client no longer does (un)intelligent character set conversions +by default. Can be enabled with charset and marc_charset commands. + +xmalloc trace fix for 64-bit systems such as DEC alpha. + +Solaris 2.6 compile fix. + +New function, cql_strerror() translates SRW error codes, as returned +by cql_transform_error(), into human-readable English strings. Used +in yaz-client diagnostics when appropriate. + +New CQL2RPN query-type for the command-line yaz-client, parses CQL and +converts it into a type-1 query which is sent to the server. This +makes CQL available for use with all Z-servers, as opposed to the tiny +minority that can handle CQL queries themselves. + +--- 2.0.2 2003/04/28 + +New Debian package layout similar to the Redhat Package layout. + +New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record +and search result respectively. + +--- 2.0.1 2003/04/25 + +Redhat package is now several packages: libyaz (runtime libraries), +libyaz-devel (development and documentation, and yaz (utility programs). +Package spec file by Morten Bøgeskov. + +New member 'schema' in struct bend_fetch_rr which the name of requested +schema (SRW/SRU) for record (or NULL if none was given). The fetch +handler MAY set this to reflect the schema of the returned record. + +New member 'display_term' in struct scan_entry. GFS now sets member entries +and allocates scan entries to be filled by user scan handler. In previous +version, entries member was allocated by the scan handler. That still works, +but the GFS will ignore member display_term - assuming it was NOT set by +the handler. The fact that the GFS now allocates the entries both allows +for new members and makes a scan handler easier to write. + +Fix CQL lex buffer overflow. + +SRW/SRU recordPacking. For SRW default recordPacking is string. For +SRU default recordPacking is string. + +SRU protocol support for frontend server. + +Fix compile bug for systems that have nl_langinfo but CODESET undefined. + +Added missing PQF transform rules for <= and >= . Thanks to Peter Popovics. + +Added scan for the ZOOM shell (zoomsh). + +--- 2.0 2003/02/23 + +* String Identifers for Schemas (Amendment 5). +http://lcweb.loc.gov/z3950/agency/amend/am5.html +Old definition for schema + Odr_oid *schema; /* OPT */ +New: + int which; + union { + Odr_oid *oid; + Z_InternationalString *uri; + #define Z_Schema_oid 1 + #define Z_Schema_uri 2 + } schema; /* OPT */ + +* resultCount parameter to Sort Response (Amendment 1). +http://lcweb.loc.gov/z3950/agency/amend/am1.html + +Support for SRW 1.0 over HTTP. This is an optional feature and +requires libxml2 to operate. Enable SOAP by specifying --with-xml2 +for configure. + +Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER +on the same port. SRW SearchRetrieveRequests are mapped +to bend_init,bend_search,bend_fetch,bend_close. + +Z39.50 Query Type-104 added - to facilitate CQL within Z39.50. + +CQL support. Source is directory 'cql'. CQL is supported in ZOOM +(both SRW and Z39.50) and the YAZ client (Z39.50 only). + +ZOOM connections are SRW based if schem http is used for hostname +in connect, e.g. z = ZOOM_connection_new("http://myserver"); +ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x"); + +CCL proximity operators !n, %n converts to PQF @prox 0 n 1 2 k 2 +and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false, +distance=n, order=true/false, relation=le, prox unit=word. If +n is omitted, distance 1 is used. + +Fixed problem with C compiler include path in wrong order. + +For TCP/IP COMSTACK, set recv buffer to an appropriate "large" value +on Solaris. Patch from Ko van der Sloot. + +New MARC decode API. All new functions operate on a yaz_marc_t +handle. The most important new functions are: yaz_marc_create, +yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler, +decode and destroy respectively. Decoder can produce formats +MARC line, simple XML, OAI MARC and MARC XML (LoC). See +include/yaz/marcdisp.h. + +YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts +to UTF-8, UCS-32, wchar_t or Latin-1. + +* Prototypes for yaz_iconv_-functions moved to separate header +include/yaz/yaz-iconv.h. + +Make a few private functions 'static' in unix.c. This prevents +duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977. + +For ZOOM connection, the options targetImplementation{Id,Name,Version} +are set when Init Response is received. + +New function ZOOM_connection_error_x similar to ZOOM_connection_error +but returns diagnostic set as well. + +New function yaz_strerror which is a portable wrapper for +strerror/strerror_r/GetLastMessage. + +* ZOOM_record_get supports type "xml" in which case MARC XML (from LOC) +is returned for MARC. If type is "oai", then OAI MARC is returned. + +Fix creation of lib/yaz-config so it works if srcdir != objdir. Patch +from Kang-Jin Lee. + +--- 1.9.2 2002/11/26 + +yaz_marc_decode uses OAI MARC as XML format for ISO2709 records. + +Fix bad race conditions on SIGTERM and terminate gracefully in +frontend server. + +Move retrieval (data1) module to Zebra since nobody seems to be +using it. + +Add GRS-1 render for ZOOM using same format as yaz-client. + +--- 1.9.1 2002/10/05 + +Added man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1). + +Fix broken ESpec handling in data1 module. + +SGML reader parses comments and makes them part of the data1 tree. + +Added several type casts so that YAZ compiles as C++ code. + +ZOOM didn't handle PDU encoding failures properly. + +Added more Bib-1 diagnostics (approved extensions). + +GNU configure: better check for iconv. + +More portable use of accept, getpeername. Check for socklen_t. Use +int/size_t if socklen_t is not defined. + +--- 1.9 2002/09/06 + +PQF parser rejects bad queries - including those with extra +characters in them. PQF parser used to silently ignore that. +Cleaner API for PQF added, which allows you to get detailed +error information for bad queries (see yaz/pquery.h). + +Fixed bug in ZOOM_record_get for type "database". + +Implemented mini iconv library supporting conversions between +UTF-8, UCS4, UCS4LE and ISO-8859-1. Implemented in util/siconv.c. + +* Removed XML reader (d1_expat.c). It's part of Zebra instead. + +--- 1.8.9 2002/08/20 + +Fixed ZOOM C record cache so that preferredRecordSyntax and +elementSetName is used to check for already fetched records. + +--- 1.8.8 2002/08/02 + +Added three members in bend_initrequest structure to facilitate +character set negotiation. + +Fixed a bug in frontend server that could cause indefinite +loops under rare conditions. + +Revised character set utilities (charneg.h) so that encoding +UCS-4, UCSA-4, UTF-16 and UTF-8 are encoded non-privately. + +For PQF, directive @term sets term type for Scan/Search. +Here is general, string, numeric, null. The term type +is inherited - just like @attr. + +New call odr_set_charset that sets character set conversion for +international-strings on a ODR stream. Prototype is: + int odr_set_charset(ODR o, const char *to, const char *from); +The InternationalString is still represented as C string in YAZ +so native strings of type UTF-8, ASCII, etc. will work (UTF-16 +won't). On the protocol level, you can use any encoding. + +Support for UNIX sockets in ZOOM. + +Solaris recv sometimes returns errno == ENOENT. It is treated as +EINPROGRESS. COMSTACK patch by Ko van der Sloot. + +New COMSTACK of type UNIX Socket. Use "unix:/path" as address for +both client and server. Code by Morten Bøgeskov. + +--- 1.8.7 2002/05/22 + +On Windows ZOOM functions are of type __stdcall rather than __cdecl, so +that they can be used directly from Visual Basic. You must recompile +your windows APP if you're using ZOOM. + +Character Set and Language Negotiation(3) for ZOOM API and YAZ client. +Commands "lang" and "charset" sets language and character set respectively. +Options "lang" and "charset" is interpreted by the ZOOM API. Note, these +are not part of the official ZOOM spec) All is due to Oleg Kolobov. + +Attributes from multiple CCL fields may be OR'ed rather than merged +using directive "@field or". Fields are still merged by default - +equivalent to "@field merge". + +Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch +by Oleg Kolobov. + +Fixed bug in zget for parameter ExtendedServicesResponse. + +Fix OID for ILL. + +--- 1.8.6 2002/03/25 + +Added PQF feature: '@attr type=value' may be written as '@type=value'. + +Client displays USR.1:SearchResult-1 (hits per term). + +Additional Search Info for search in Generic Frontend Server. + +Fixed CCL parsing of "field=s". + +WIN32 installer - using the excellent NSIS software from nullsoft. + +Fixed CCL parsing of "field = - ". + +Added function yaz_marc_decode that decodes MARC for line mode +display or XML (similar to that used by JZKit). + +Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the +Z39.50. But ISO/ILL was, however. + +Added patch by Rustam T. Usmanov that implements Z39.50 duplicate +detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3). +See: + http://lcweb.loc.gov/z3950/agency/amend/am2.html + http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html + +--- 1.8.5 2002/02/03 + +New YAZ client features: Command completion and new commands: +push_command, set_apdufile, set_marcdump, set_cclfields, register_oid. +Code provided by Jacob Poulsen. + +New call oid_trav, that visits all registered OIDs via callback. + +Function ZOOM_record_get now returns const char pointer rather than +void pointer. It saves a lot of type casts. + +For YAZ client, command "auth" now allows you to set authentication +in IdPass style. It is enabled when three tokens are given - order +is user, group and password. + +Fix memory leaks in MARC record handling for ZOOM. + +New option for YAZ client, -k that sets +maximum record size. Similar to -k option for generic frontend +server and yaz-ztest. + +More fixes for scan. Non-zero stepSize handled. OID's fixes. + +Prefix query parser reports "fail" when bad attribute set is given. + +Fix in MARC decoder. Proximity logging. Fix for attribute set +in scan handler for server. Patches by Shigeru Ishida. + +SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM +works with SSL. + +Configure option --with-openssl=

now works when a directory is +specified. Patch provided by Morten Bøgeskov. + +New option for YAZ client, -u , that sets authentication. + +ZOOM fix: error information was sometimes "missing", since error +was cleared/reset too when it shouldn't. + +ZOOM_record_get returns ISO2709 buffer when "raw" is given. + +--- 1.8.4 2002/01/04 + +Scan for ZOOM API. New object ZOOM_scanset. New functions +ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and +ZOOM_scanset_destroy. + +New ZOOM function, ZOOM_connection_last_event, that returns type +of last event (such as "receive data", "send data", "apdu received", +etc. + +New ZOOM option, schema, that specifies schema for retrieval. + +New CCL feature. Qualifiers can be aliases for one or more +other qualifiers (if more than one is given, OR is used). + +ZOOM uses named result sets if target supports it. + +Two new YAZ client commands: . (dot, which sources a script of YAZ +client commands), and ! (to execute shell command.). Implemented +by Jacob Poulsen. + +Working on Debian packages. + +--- 1.8.3 2001/11/19 + +YAZ client enables named result sets only if target supports it. + +*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_. + +* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get +with key="host" to get same result. + +* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get. +Function Z3950_resultset_record(s) returns references to records +"owned" by resultset. To become owner use Z3950_record_clone. + +Function z_ext_record handles Extended Services. Thanks to +Irina Dijour. + +--- 1.8.2 2001/11/12 + +CCL Parser fix: ignore token comma when dealing with and-lists. + +Documentation updates for COMSTACK. + +* ZOOM changes. Query object renamed from Z3950_search to Z3950_query. +Changed prototype Z3950_records. For some functions, int parameters +were changed to size_t. + +TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak +on some Unices. + +New MARC decode/display function, marc_display_exl, which properly rejects +non-ISO2709 records. YAZ client uses it. + +--- 1.8.1 2001/10/29 + +Fix bug: local attribute set wasn't set correctly in PQF strings. + +--- 1.8 2001/10/25 + +* Old Z39.50 codecs no longer supported. + +Added ZOOM C binding. See http://zoom.z3950.org/ + +Renamed states for COMSTACKs to avoid confusion with events. + +Implemented cs_look and proper cs_rcvconnect. + +Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas. + +Configure detects POSIX threads on OpenBSD. + +When sort flag 'i' was specified in yaz-client the caseSensitivy flag +was set to a wrong value. Thanks to Robert Sanderson for reporting this. + +When error is returned from present handler, non-surrogate diagnostic +is returned in present response (and fetch handler is no longer called). + +* Minor adjustments to pquery parser (PQF). Token characters may be +escaped by using backslash (C-style). + +PQF parser allows string attribute values to be specified. For @attr, +non-numeric characters after the equal-sign are treated as strings +(e.g. @attr 9=title). + +CCL trunction character may be defined (@truncation in file) + +* function zget_ExtendedServicesRequest sets waitAction to + waitIfPossible (was wait). + +Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks +to Matthew Carey. + +CCL operator names may be set in field definition files (CCL_bibset). +See ccl/bib1 for an example. + +Fixes in ASN.1 compiler for C++ compatibility. + +* Renamed members "and" and "or" in struct Z_Operator to "op_and" +and "op_or" to avoid conflict with C++. + +Fixed problem with GNU readline detection on Redhat 7.0. + +Added step-size for Scan backend handler. + +Fixed bug that made the frontend server crash when no attribute +set was specified for scan. + +Front-end server automatically switches to original working directory +when installed as an NT service. Previously -w had to be specified to +make it work. + +Added extended attributes for retrieval module (data1), so that data1 +records carry d1_readXML/SGML attributes. d1_read also supports +null-data rules ( ) + +On UNIX when POSIX threads are available, a separate library libyazthread +is created. Programmers should link with that library and the yaz library +when using threads. The reason for the split was that some applications +on Linux, such as Apache, doesn't work well when using shared objects that +relies on threads. + +Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest +(or any frontend server) in SSL mode by specifying ssl: followed by +address. Only tested on UNIX. + +Added feature for CCL module. Virtual structure s=al or s=ol generates +and-list and or-list respectively instead of phrase search. + +Added some OID's. + +* Added prefix "yaz_" for the functions log_init.., log_file.. and +log_mask_str. This was done to avoid name conflicts with other libraries +(such as other PHP extensions). + +Added raw OID member for preferred record syntax (request_format_raw) +and returned record syntax (output_format_raw) for backend fetch method. + +Config file yaz-config now accepts options so that it returns specific +compile settings, etc. Thanks to Morten Bøgeskov + +Shared library support for UNIX using GNU libtool. + +* Modified backend interface. Request/Response struct's replaced by +one read/write C struct. For example bend_fetchrequest and +bend_fetchresult have been replaced by single bend_fetch_rr struct. +Every handler - even search has to be registered in bend_init +handler. This means that the YAZ library no longer refers to +external functions and it makes it possible to make the whole +thing a single DLL/SO. + +Added Segment handler for backend server. + +Added Zmbol/Zebra administrative functions to YAZ client. + +Threaded frontend server on UNIX (when POSIX Threads are available). +Starting the server with option -T enables multi-threading. + +--- 1.6 2000/03/03 + +Added configure option --enable-comp/disable-comp to control use +of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders +located in sub directory asn. + +YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed +in ${exec_prefix}/bin along with the other programs yaz-client and +yaz-ztest. + +GNU automake used to maintain makefiles. + +Added several OID's. + +Changed retrieval module so that we can load records with no abstract +syntax defined. Tagpaths in these records are fully composed of string +tags. + +Implemented ISO ILL protocol. Refer to stuff in sub directory ill. + +--- 1.5 1999/12/10 + +On UNIX, the generated makefile now supports a proper 'make install'. +The prefix can be set via GNU configure to set the install location +(default is /usr/local). + +* YAZ programs client and ztest were renamed to yaz-client and +yaz-ztest to avoid conflicts when users install YAZ in "standard" +locations, such as /usr/bin,/usr/local/bin,etc. + +* YAZ Header files were moved from include to include/yaz. YAZ Header +files are referred to as include rather than . +The YAZ include path (-I ..) is therefore the same as before. Programmers +should update their #include statements or use -Ipath/include/yaz +instead. The main motivation for doing this change is that YAZ header files +can be installed in "standard" locations /usr/include,/usr/local/include +without introducing conflicts, since ALL YAZ header files are stored +in subdirectory yaz (under /usr/include for example). + +Compilation of YAZ for WIN32 is now handled by an nmake-style makefile +rather than project/workspace files. We switched because project files +are incompatible between Visual C++ 5 and 6. Refer to windows.txt for +details. + +Changed name of logging function, logf, to yaz_log, to prevent name +clash with some math-log functions. The YAZ header log.h defines logf +to yaz_log (#define) so there should be no incompatibilities by this +modification. + +Added bend_start/bend_stop handlers for server. These handler are +called on start/stop of server. For windows they are called whenever +a service is started/stopped. + +* YAZ now auto-generates decoders/encoders for the Z39.50 protocol using +a fairly small ASN.1 compiler written in Tcl. The compiler is located +in util/yc.tcl. The auto-generated C code structures are, in a few +cases, incompatible with the old decoders. There are differences in the +following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse, +Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat. +The preprocessor variable ASN_COMPILED is defined when the compiled +ASN.1 is being used. Encoder/decoder routines as well as the Z39.50 +protocol ASN.1 is located sub directory z39.50. If you +wish to use the old encoders/decoders you can specify --disable-yc +for configure. + +Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled +version so that it supports both new - and old version of DB Update + +* Added 'name' parameter to ODR encoder/decoder routines to facilitate +pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the +change. The name parameter can be set to 0 in which no name is specified +for the construction. The macros odr_implicit and odr_explicit sets name +parameter to zero for the construction involved. New macros +odr_implicit_tag and odr_explicit_tag are similar to the others, +except that a name parameter is added. For programmers' that don't use +ODR they probably only need to change the call to z_APDU and z_External. + +Added access control facility by interfacing the TCP wrapper library. +YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and +tcpd.h on Unix systems. For the server, option -d specifies the +name of the daemon and enables the access control as specified in +hosts.allow/hosts.deny. Refer to man pages tcpd(8) and hosts_access(5). + +Fixed memory leak in ccl_find_str and ccl_qual_rm. Thanks to Hans van +den Dool . + +Added reference ID parameter to most functions in server API - refer +to backend.h. Thanks to Hans van den Dool . + +Changed name of ccl library to libccl.a (was ccl.a). + +Fixed bug in decoder for Explain (Category TargetInfo). + +Added support for GNU readline in client. Thanks to Jacob Poulsen +. GNU configure attempts to detect if readline is available. + +* CHANGED DEFINITION OF ES: UPDATE (INCLUDING THE OID) to reflect the +new definition from the ZIG. NOTE THIS IF YOU HAVE AN UPDATE +IMPLEMENTATION! This change was made to the development version before +the ZIG decided to retract the amendment. If any users MUST be +compatible with the original Update definition, PLEASE CONTACT US, and +we will include a separate definition corresponding to the old Update +ES. Note that because of the change to the ASN.1 of the +TaskPackageRecordStructure we cannot define a single structure that +will support both versions. + +* Added const modifier to buffer parameter for some ODR/BER encoding +routines: ber_dectag, ber_declen, odp_more_chunks, completeBER, +completeWAIS, odr_dumpBER. + +Fixed bug in client.c which caused a crash when a scanResponse didn't +contain positionOfTerm. + +* Fixed inconsistency in the ScanResponse/ListEntries protocol. This +* will cause an error in a client if a non-YAZ target sends both a +* list of Scan entries and non-surrogate diagnostics. + +Retrieval module enhancements. Tag sets may be typed in the reference +to it. From the .abs-file the "tagset" directive takes a third optional +integer type for the tag set referenced. From a .tag-file the "include" +directive takes a third optional type as well. The old "type" directive +in the tag set itself is still recognized but acts as the default type +for the tag set. + +Backend interface change. Individual Scan terms returned from bend_scan +may also be tagged as Surrogate Diagnostics. Refer to struct scan_entry +in include/backend.h. + +Retrieval module enhancements. Multiple tag sets and attribute sets may +be specified in abstract syntax specs. Revised the error/warning for +logging messages reported by the retrieval module when reading the +various spec files. + +Object Identifier system (oid_..) changed. The API is backwards +compatible but the oid-routines now allocates new OID's when needed. +Raw OID's may be specified in oid_getvalbyname. + +YAZ now uses GNU configure to generate Makefile(s). + +* Minor changes in some of the member names of DeleteResultSetRequest and +DeleteResultSetResponse. See include/proto.h. + +* Changed some C definitions regarding EXPLAIN record syntax (prt-exp.h) +and added member 'languages' in TargetInfo (which was missing). + +Changed the way attribute sets are handled in the retrieval +module. These are now cached, just like the abstract syntaxes +(schemas). + +Changed YAZ so that it links with compiled ASN.1. + +Added Explain-schema definitions and mapping routines. The following +Explain categories have been implemented: AttributeDetails, +AttributeSetInfo, DatabaseInfo, CategoryList and TargetInfo. + +Fixed minor bug in Windows version of Server Library. + +--- 1.4pl2+ 1998/4/17 (Released with Zebra) + +Added Extended Services to server (backend.h). Thanks to Charles Woodfield. + +Added EXTERNAL: UNIverse Resource Report (non-standard). + +Implemened odr_enum and odr_set_of functions to handle ASN.1 types +ENUMERATED and SET OF. + +* Added 'const' to some of the char pointer arguments for the +functions, data1_read_node, data1_getelementbytagname, +data1_insert_taggeddata, data1_getesetbyname, data1_getelementbyname, +data1_get_absyn. + +Fixed bug in data1_insert_taggeddata - the last_child member of +parent wasn't initialised. + +* Changed data1_read_record and data1_read_node so that the supplied +"SGML"-buffer is read-only. In particular the resulting data1 - tree +doesn't refer to any parts of the "SGML"-buffer. + +Fixed bug in server library (Windows version of statserv_remove). + +* Changed code so that it compiles as C++. The type definition +of Odr_fun which is a member of Odr_arm was changed. The result is, +that an explicit typecast is needed for the fun pointer when +using Odr_arm - as in: + {1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass}, + +Updated TagSet-G and -M definitions (tagsetm.tag and tagsetg.tag). + +Implemented the new structured date and time definition as approved +by the ZIG. Added schemaId element to the specificTag in Espec-1 +(also approved at the last ZIG). Thanks to RVDM. + +Added some Object identifiers (RVDM). + +Changed the Update Extended Service (RVDM). + +Added command "refid" to client which specifies referenceId for +the following requests. + +Implemented extended service handling for server. See ztest.c +for an example as well as backend.h. New handlers are registerd +in the Init handler. + +* Changed interface for sort in server. + +Added new members to statserv_options_block. It allows a server +to read options from another source than just the command line. Thanks +to Charles Woodfield. + +* Changed definition of Z_Triple in file prt-grs.h - member boolean +renamed to zboolean. Some C++ compilers complained about the name. + +Minor changes to gils.abs. Added index 's' (sort) on title +and date/time-last-modified. + +--- 1.4pl2 1998/1/30 + +Fixed bug in server library regarding inetd mode (-i). This bug +was introduced by release 1.4. + +--- 1.4pl1 1998/1/29 + +Added sort facility in client and backend server interface. + +Fixed problem with dependencies in Makefile(s). + +Fixed bugs for encoders/decoders of extended services and +SearchInfoReport. + +Implemented sub-tree feature for schemas. Sub-trees are +referenced in *.abs-files. See explain.abs for an example +of the use of this feature. + +Modified bib1.att; local attributes for ANY didn't include +ANY itself (only affects use of the retrieval module). + +Fixed bug in plain SGML reader in function data1_read_node: +tags with prefix "var" was incorrectly interpreted as variants. + +Added feature "sub-schemas" to enable references to - and definitions +of - group of elements. + +* Removed member parent from type data1_element (in data1.h). + +Implemented function odr_nullval() that returns the value of +ODR_NULLVAL. + +* Removed member num_children from data1_node (in data1.h). + +Made NT service interface part of the server library. The +function statserv_main uses the NT service when required and +calls the statserv_start / statserv_close routines. + +Routine zget_SearchRequest and zget_PresentRequest fills +resultSetName/Id member with "default" instead of "Default". + +Fixed memory leak in server. Request queue member wasn't freed. + +Fixed nmem_exit so that memory is freed. + +--- 1.4 1997/10/2 + +Revised the CCL parser utility to be thread safe. + +Added function, oid_ent_to_oid, to replace the function +oid_getoidbyent, which is not thread safe. + +* Added nmem_init and nmem_exit to initialize and release +NMEM resources. Function nmem_init should be called once in the +initial thread before NMEM/ODR is used. statserv.c and client.c +have been changed accordingly. The change was necessary to make +NMEM thread safe. The NMEM memory pool is shared amongst threads +in a process. Unix-based applications will still work fine without +calling this. + +Added NT Services interface for the the Z39.50 (statserv) Server. +Refer to the ztest.c source on the usage. + +Windows 95/NT port using MSVC5.0. Project files are included in the +distribution. + +* Defined new 'global' handle for the retrieval (data1) system. The +new handled, data1_handle, describes the state of the data1 system. +This handle is passed as first argument to virtually all +data1 related routines. The functions data1_create and data1_destroy +creates and destroys a data1 handle respectively. + +Added ODR encode stream member to all backend request structures +init, search, scan etc. This stream should be used to allocate all +memory used for the response when thread safe operation is needed. + +Changed the comstack utility, cs_addstr, to be thread safe. The +returned hostname string returned by the function is now part the +COMSTACK instance. + +Added comstack utility, cs_straddr, which replaces the tcpip_strtoaddr +function. The cs_straddr takes a COMSTACK handle as argument, so this +function must be used after cs_create and before bind/connect. +This function is thread safe. + +Moved test server to 'ztest' directory - generic server code still +in 'server' directory. + +Made prefix query (pquery.c) utility thread safe. + +Added new function modifier YAZ_EXPORT to 'export' public DLL +functions when using windows (see include/yconfig.h). + +Added definitions to the OID database (util/oid.c) (RVDM). + +Added new BIB-1 diagnostic messages to the handler diagbib1_str. + +Added call to ccl_rpn_delete in client program. + +Added ODR argument to ccl_rpn_query and ccl_scan_query to provide +release of RPN structure. + +Added support for C++, headers uses extern "C" for public definitions. +With input from RVDM. + +In handling of SEQUENCE OF: Counter set to zero when SEQUENCE OF is absent. +Thanks to Ronald van der Meer (RVDM). + +Added initializers (zget_ routines) for a number of PDUs. Thanks to RVDM. + +Added support for private extensions to the OID database +(oid_setprivateoids()). Thanks to RVDM. + +Added optional, physical ANY (key replication) + +Fixed null-reference problem in GRS-1 output filter. + +Proximity operator added to Prefix Query Format (PQF). + +In test client command "base" accepts multiple databases. + +Fixed bug in cs_close stack that caused trouble with WINSOCK. + +--- 1.3 1996/10/11 + +Fixed tagging bug in ResourceReportResponse PDU encoder/decode. + +Smallish bug-fixes in the new encoders/decoders (explain). + +Bug fixed in DeleteRequest. + +Fixed tagging bug of type 101 query in SearchRequest-Query PDU encoder/decoder. + +Fixed tagging bug in ResourceReportResponse PDU encoder/decode. + +Added SOIF syntax (using private OID for now) to retrieval module and client. + +Added Update extended service. + +Added SearchResult-1 additional info structure. + +Added optional CCL (ISO8777) interpreter as separate module. Available +in linemode client. + +--- 1.2 1996/6/10 (1st anniversary release) + +Added Summary record syntax. Lightly tested. + +Added OPAC record syntax. Untested. + +Added ResourceReport service encoders/decoders. Untested. + +Fixed bug in z_Unit - wrong tagging on unitSystem. + +Fixed bug in the DiagRecs decoder. + +Added options for max PDU size and session timeout to frontend-server. + +Added documentation of query-language parsers and other supporting utilities. + +[frontend-server] Added Attribute set to the bend_scanrequest API. + +[frontend-server] NextResultSetPosition was sometimes set incorrectly when +surrogate diagnostics were generated. + +[retrieval] Allow multiple local values for attribute. + +[retrieval] Allow multiple attributes per element in .abs files. index type. + +[retrieval] Added Summary tagset, abstract syntax, and d1-node/ASN filter. + +--- 1.1pl2 1996/4/10 + +Minor changes, mostly specific to Zebra's requirements (retrieval) + +--- 1.1 1996/2/20 + +Repaired bug in frontend server when running multiple listening +endpoints in dynamic mode. + +z_External() now won't break if a known, ASN.1 value comes encapsulated +in an octet-string. The value will pass through unmodified in an Odr_oct. + +Added a bit of code to the demo client to decode & display +ASN.1-structured records represented in the octet-aligned branch of +the EXTERNAL CHOICE. Thanks to CAS for prodding us to finally do this. + +Added z_ext_getentbyref() to the ASN module. Doc updated. + +* Completed the SCAN definition in the ASN module. This may break SCAN +code based on older YAZ-versions at compile-time. The fix is easy - +look in proto.h. + +* Added 'displayTerm' and OtherInformation to the TermInfo structure +under the SCAN definition. Remember to initialize this, server-people. + +Comstack should now support the WAIS protocol in TCP/IP mode. Note +that this does not extend to ODR and ASN. + +Comstack allows insertion of established socket (primarily for +inetd-operation of servers). Doc updated. + +Front-end server can now start from the inetd in TCP mode. Doc +updated. + +--- 1.0pl4 1996/1/24 + +Added Sort PDU. + +Fixed small problem in SUTRS-filter. A newline was sometimes inserted before +the rank and record number. + +Adjustments to the frontend server. + +Fixed diagnostic BER dumper. It ignored the file argument. + +--- 1.0pl3 1996/1/2 + +Various changes to retrieval module. + +Changed the union discriminators of the protocol files from enums to +ints paired with #defines. + +*Changed oident.class to oident.oclass to avoid a reserved word in C++ + compilers. + +*Changed operator in the RPN structure to 'roperator', again to avoid a + conflict with C++. + +Fixed problems in Explain decoders/encoders. + +--- 1.0pl2 1995/12/6 + +Memory bug in log module fixed. + +--- 1.0pl1 1995/12/5 + +Occasional malloc() of 0 bytes fixed in d1_espec.c. + +Bug in Explain DatabaseInfo module fixed. + +Some '\r' snuck into one or two of the ret'l config tables. A curse on Windows. + +--- 1.0 1995/11/28 + +The shift to v1.0 signals that we now consider the *core* functionality +of YAZ reasonably stable (the core being more or less equivalent to +Z39.50-1992). Some of the really nifty v3 stuff is still not heavily +tested (Explain not at all - though that will happen soonish). + +Minor changes to code to support Windows port. + +Various minor changes after we're getting to use GRS-1 & co. more. + +Added Espec-1 format. + +Added VisibleString field body type to GRS-1. It is illegal acc. to my copy +of the protocol and it cannot be selected when encoding (maps into 'string' +when decoding). Needed to talk to some servers. + +Demo client can request simple element set names. + +Added Diagnostic Format encoders/decoders. + +Added simple Close handling to frontend server (no hooks for resource +reporting yet), and demonstration client. + +Added cs_addrstr() command to COMSTACK to retrieve peer hostname/address. + +--- 1.0b3 1995/08/24 + +Fixed bug in the frontend-server. The numberOfRecordsReturned field was +handled incorrectly when records were requested in the searchResponse. This +will only affect you if you use the frontend-server. + +Added GRS-1 encoders/decoders to the service-level API. Lightly tested. +Test-client will ask for and print GRS1. Ztest will return dummy records +on request. + +Added Explain encoders/decoders to the service-level API. Untested. + +Added Extended Services: Item Order encoders and decoders to the Service- +level API. Untested. We could use a recent copy of the pertinent bits +of the ILL protocol to add those bits. + +Added diagnostic format 1 encoders/decoders to the service-level API. +Untested. + +Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to +odr_cons.c, which causes a more correct output. + +Fixed handling of searchRequest in frontend server. NextResultSetPosition +was always set to 0 when no records were requested in the searchRequest. + +* Added better external-handling. This shouldn't harm old code that +*encodes* externals. It can break code that looks for a +'single-ASN1-type' representation, since those types that are known +are now decoded immediately. Look at the SUTRS sample code in +seshigh.c and client.c. Documentation updated. + +Handling of structured records in bend_fetchresponse. Length -1 marks +structured record, type is deduced from format field. + +--- 1.0b2 1995/06/27 +Fairly quick maintenance release to add SUTRS support. + +Fixed handling of SUTRS records in the demonstration client. + +* Added format field to the bend_fetchrequest and bend_fetchresponce +structures of the backend API (frontend server). When the record is +returned, the value of the format field is mapped to an OID. The +value VAL_SUTRS will also cause a slightly different ASN.1 packaging +of the record. The special value VAL_NONE in the bend_request means +that no specific format was requested by the client. Documentation +updated accordingly. Test server (ztest) will return a fixed dummy +SUTRS record if your client requests SUTRS. + +Documentation updated accordingly. + +You can now set external libraries and RANLIB support in the top-level +Makefile. + +--- 1.0b 1995/06/19 +First public release. diff --git a/dependencies/yaz-2.1.28/README b/dependencies/yaz-2.1.28/README new file mode 100644 index 0000000..cb6bb7e --- /dev/null +++ b/dependencies/yaz-2.1.28/README @@ -0,0 +1,46 @@ +YAZ toolkit - $Id: README,v 1.48 2006/02/01 20:07:20 adam Exp $ + +Copyright (C) 1995-2006, Index Data ApS. +See the file LICENSE for details. + +The primary output of the source here is the YAZ library, which +contains support functions for implementing the server or client +role of Z39.50 and SRW. + +On Unix, GNU configure is used to configure YAZ and generate Makefiles. +Type "./configure", then "make" to build YAZ. Read +doc/installation.unix.html for details. + +On Windows, a MS Visual Studio makefile is provided (nmake). The commands + cd \win + nmake +should do. Refer to doc/installation.win32.html for details. + +Note: If you are using the CVS snapshot of YAZ you must have autoconf, +automake and libtool installed. Before running configure, create +support files by running buildconf.sh in the top-level directory of YAZ. + +In any case refer to the documentation in sub directory doc or read +it online at http://www.indexdata.com/yaz/ + +File organisation: + +doc Documentation. + +src Source for the YAZ library. + +util Utility programs, ASN.1 compiler, MARC dump utility, and others. + +client A demonstration client for testing the protocol. It's bug'n + ugly. But, it supports many features. + +ztest A demonstration server that implements a backend. + +etc Various configuration files. + +include/yaz The various header files. + +To get more information or assistance, send mail to yaz-help@indexdata.dk. +Even better, sign on to the YAZ mailing list here: +http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yazlist + diff --git a/dependencies/yaz-2.1.28/TODO b/dependencies/yaz-2.1.28/TODO new file mode 100644 index 0000000..d2503b8 --- /dev/null +++ b/dependencies/yaz-2.1.28/TODO @@ -0,0 +1,10 @@ +YAZ TODO $Id: TODO,v 1.14 2006/04/21 12:40:56 adam Exp $ + +Versions to be put automatically in + configure.ac + include/yaz/yaz-version.h + debian/changelog + NEWS + win/yaz.rc (4 places) + win/yaz.nsi + debian/rules (dh_makeshlibs line if API has been extended) diff --git a/dependencies/yaz-2.1.28/aclocal.m4 b/dependencies/yaz-2.1.28/aclocal.m4 new file mode 100644 index 0000000..599b2cd --- /dev/null +++ b/dependencies/yaz-2.1.28/aclocal.m4 @@ -0,0 +1,7279 @@ +# generated automatically by aclocal 1.8.5 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 48 Debian 1.5.22-4 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) + +# -*- Autoconf -*- +# Copyright (C) 2002, 2003 Free Software Foundation, Inc. +# Generated from amversion.in; do not edit by hand. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.8.5])]) + +# AM_AUX_DIR_EXPAND + +# Copyright (C) 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 6 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]) +fi])]) + +# serial 7 -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +#serial 2 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# This macro actually does too much some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 11 + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.58])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG(AMTAR, tar) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl + +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. + +# Copyright (C) 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# -*- Autoconf -*- +# Copyright (C) 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 2 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# -*- Autoconf -*- + + +# Copyright (C) 1997, 1999, 2000, 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 3 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. + +# Copyright (C) 2003, 2004 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # Keeping the `.' argument allows $(mkdir_p) to be used without + # argument. Indeed, we sometimes output rules like + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. + # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more + # expensive solution, as it forces Make to start a sub-shell.) + mkdir_p='mkdir -p -- .' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 2 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# +# Check to make sure that the build environment is sane. +# + +# Copyright (C) 1996, 1997, 2000, 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 3 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# AM_PROG_INSTALL_STRIP + +# Copyright (C) 2001, 2003 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +m4_include([m4/yaz.m4]) +m4_include([m4/yaz_libxml2.m4]) diff --git a/dependencies/yaz-2.1.28/buildconf.sh b/dependencies/yaz-2.1.28/buildconf.sh new file mode 100755 index 0000000..d2b8cdf --- /dev/null +++ b/dependencies/yaz-2.1.28/buildconf.sh @@ -0,0 +1,104 @@ +#!/bin/sh +# $Id: buildconf.sh,v 1.42 2006/08/24 14:29:58 heikki Exp $ + +automake=automake +aclocal=aclocal +autoconf=autoconf +libtoolize=libtoolize + +if [ "`uname -s`" = FreeBSD ]; then + # FreeBSD intalls the various auto* tools with version numbers + echo "Using special configuation for FreeBSD ..." + automake=automake19 + aclocal="aclocal19 -I /usr/local/share/aclocal" + autoconf=autoconf259 + libtoolize=libtoolize15 +fi + +if $automake --version|head -1 |grep '1\.[4-7]'; then + echo "automake 1.4-1.7 is active. You should use automake 1.8 or later" + if test -f /etc/debian_version; then + echo " sudo apt-get install automake1.9" + echo " sudo update-alternatives --config automake" + fi + exit 1 +fi + +set -x +# I am tired of underquoted warnings for Tcl macros +$aclocal -I m4 +$libtoolize --automake --force +$automake --add-missing +$autoconf +set - +if [ -f config.cache ]; then + rm config.cache +fi + +enable_configure=false +enable_help=true +sh_flags="" +conf_flags="" +case $1 in + -d) + #sh_flags="-g -Wall -Wdeclaration-after-statement -Werror" + sh_flags="-g -Wall -Wdeclaration-after-statement " + enable_configure=true + enable_help=false + shift + ;; + -c) + sh_flags="" + enable_configure=true + enable_help=false + shift + ;; +esac + +if $enable_configure; then + if test -n "$sh_flags"; then + CFLAGS="$sh_flags" ./configure --disable-shared --enable-static $* + else + ./configure $* + fi +fi +if $enable_help; then + cat < +#include +#include +#include + +#if HAVE_DIRENT_H +#include +#endif +#if HAVE_FNMATCH_H +#include +#endif +#if HAVE_SYS_STAT_H +#include +#endif + +#include + +#include + +#include +#include +#include + +#include + +#include "admin.h" + +/* Helper functions to get to various statics in the client */ +ODR getODROutputStream(); + +extern char *databaseNames[]; +extern int num_databaseNames; + +int sendAdminES(int type, char* param1) +{ + ODR out = getODROutputStream(); + char *dbname = odr_strdup (out, databaseNames[0]); + + /* Type: 1=reindex, 2=truncate, 3=delete, 4=create, 5=import, 6=refresh, 7=commit */ + Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + Z_External *r; + int oid[OID_SIZE]; + Z_ESAdminOriginPartToKeep *toKeep; + Z_ESAdminOriginPartNotToKeep *notToKeep; + oident update_oid; + printf ("Admin request\n"); + fflush(stdout); + + /* Set up the OID for the external */ + update_oid.proto = PROTO_Z3950; + update_oid.oclass = CLASS_EXTSERV; + update_oid.value = VAL_ADMINSERVICE; + + oid_ent_to_oid (&update_oid, oid); + req->packageType = odr_oiddup(out,oid); + req->packageName = "1.Extendedserveq"; + + /* Allocate the external */ + r = req->taskSpecificParameters = (Z_External *) + odr_malloc (out, sizeof(*r)); + r->direct_reference = odr_oiddup(out,oid); + r->indirect_reference = 0; + r->descriptor = 0; + r->which = Z_External_ESAdmin; + r->u.adminService = (Z_Admin *) + odr_malloc(out, sizeof(*r->u.adminService)); + r->u.adminService->which = Z_Admin_esRequest; + r->u.adminService->u.esRequest = (Z_AdminEsRequest *) + odr_malloc(out, sizeof(*r->u.adminService->u.esRequest)); + + toKeep = r->u.adminService->u.esRequest->toKeep = + (Z_ESAdminOriginPartToKeep *) + odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->toKeep)); + + toKeep->which=type; + toKeep->databaseName = dbname; + switch ( type ) + { + case Z_ESAdminOriginPartToKeep_reIndex: + toKeep->u.reIndex=odr_nullval(); + break; + + case Z_ESAdminOriginPartToKeep_truncate: + toKeep->u.truncate=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_drop: + toKeep->u.drop=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_create: + toKeep->u.create=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_import: + toKeep->u.import = (Z_ImportParameters*) + odr_malloc(out, sizeof(*toKeep->u.import)); + toKeep->u.import->recordType=param1; + /* Need to add additional setup of records here */ + break; + case Z_ESAdminOriginPartToKeep_refresh: + toKeep->u.refresh=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_commit: + toKeep->u.commit=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_shutdown: + toKeep->u.commit=odr_nullval(); + break; + case Z_ESAdminOriginPartToKeep_start: + toKeep->u.commit=odr_nullval(); + break; + default: + /* Unknown admin service */ + break; + } + + notToKeep = r->u.adminService->u.esRequest->notToKeep = + (Z_ESAdminOriginPartNotToKeep *) + odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->notToKeep)); + notToKeep->which=Z_ESAdminOriginPartNotToKeep_recordsWillFollow; + notToKeep->u.recordsWillFollow=odr_nullval(); + + send_apdu(apdu); + + return 0; +} + +/* cmd_adm_reindex + Ask the specified database to fully reindex itself */ +int cmd_adm_reindex(const char *arg) +{ + sendAdminES(Z_ESAdminOriginPartToKeep_reIndex, NULL); + return 2; +} + +/* cmd_adm_truncate + Truncate the specified database, removing all records and index entries, but leaving + the database & it's explain information intact ready for new records */ +int cmd_adm_truncate(const char *arg) +{ + if ( arg ) + { + sendAdminES(Z_ESAdminOriginPartToKeep_truncate, NULL); + return 2; + } + return 0; +} + +/* cmd_adm_create + Create a new database */ +int cmd_adm_create(const char *arg) +{ + if ( arg ) + { + sendAdminES(Z_ESAdminOriginPartToKeep_create, NULL); + return 2; + } + return 0; +} + +/* cmd_adm_drop + Drop (Delete) a database */ +int cmd_adm_drop(const char *arg) +{ + if ( arg ) + { + sendAdminES(Z_ESAdminOriginPartToKeep_drop, NULL); + return 2; + } + return 0; +} + +/* cmd_adm_import + Import the specified updated into the database + N.B. That in this case, the import may contain instructions to delete records as well as new or updates + to existing records */ + +#if HAVE_FNMATCH_H +int cmd_adm_import(const char *arg) +{ + char type_str[20], dir_str[1024], pattern_str[1024]; + char *cp; + char *sep = "/"; + DIR *dir; + struct dirent *ent; + int chunk = 10; + Z_APDU *apdu = 0; + Z_Segment *segment = 0; + ODR out = getODROutputStream(); + + if (arg && sscanf (arg, "%19s %1023s %1023s", type_str, + dir_str, pattern_str) != 3) + return 0; + if (num_databaseNames != 1) + return 0; + dir = opendir(dir_str); + if (!dir) + return 0; + + sendAdminES(Z_ESAdminOriginPartToKeep_import, type_str); + + printf ("sent es request\n"); + if ((cp=strrchr(dir_str, '/')) && cp[1] == 0) + sep=""; + + while ((ent = readdir(dir))) + { + if (fnmatch (pattern_str, ent->d_name, 0) == 0) + { + char fname[1024]; + struct stat status; + FILE *inf; + + sprintf (fname, "%s%s%s", dir_str, sep, ent->d_name); + stat (fname, &status); + + if (S_ISREG(status.st_mode) && (inf = fopen(fname, "r"))) + { + Z_NamePlusRecord *rec; + Odr_oct *oct = (Odr_oct *) odr_malloc (out, sizeof(*oct)); + + if (!apdu) + { + apdu = zget_APDU(out, Z_APDU_segmentRequest); + segment = apdu->u.segmentRequest; + segment->segmentRecords = (Z_NamePlusRecord **) + odr_malloc (out, chunk * sizeof(*segment->segmentRecords)); + } + rec = (Z_NamePlusRecord *) odr_malloc (out, sizeof(*rec)); + rec->databaseName = 0; + rec->which = Z_NamePlusRecord_intermediateFragment; + rec->u.intermediateFragment = (Z_FragmentSyntax *) + odr_malloc (out, sizeof(*rec->u.intermediateFragment)); + rec->u.intermediateFragment->which = + Z_FragmentSyntax_notExternallyTagged; + rec->u.intermediateFragment->u.notExternallyTagged = oct; + + oct->len = oct->size = status.st_size; + oct->buf = (unsigned char *) odr_malloc (out, oct->size); + fread (oct->buf, 1, oct->size, inf); + fclose (inf); + + segment->segmentRecords[segment->num_segmentRecords++] = rec; + + if (segment->num_segmentRecords == chunk) + { + send_apdu (apdu); + apdu = 0; + } + } + } + } + if (apdu) + send_apdu(apdu); + apdu = zget_APDU(out, Z_APDU_segmentRequest); + send_apdu (apdu); + closedir(dir); + return 2; +} +#else +int cmd_adm_import(const char *arg) +{ + printf ("not available on WIN32\n"); + return 0; +} +#endif + + +/* "Freshen" the specified database, by checking metadata records against the sources from which they were + generated, and creating a new record if the source has been touched since the last extraction */ +int cmd_adm_refresh(const char *arg) +{ + if ( arg ) + { + sendAdminES(Z_ESAdminOriginPartToKeep_refresh, NULL); + return 2; + } + return 0; +} + +/* cmd_adm_commit + Make imported records a permenant & visible to the live system */ +int cmd_adm_commit(const char *arg) +{ + sendAdminES(Z_ESAdminOriginPartToKeep_commit, NULL); + return 2; +} + +int cmd_adm_shutdown(const char *arg) +{ + sendAdminES(Z_ESAdminOriginPartToKeep_shutdown, NULL); + return 2; +} + +int cmd_adm_startup(const char *arg) +{ + sendAdminES(Z_ESAdminOriginPartToKeep_start, NULL); + return 2; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/client/admin.h b/dependencies/yaz-2.1.28/client/admin.h new file mode 100644 index 0000000..3ae5f05 --- /dev/null +++ b/dependencies/yaz-2.1.28/client/admin.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: admin.h,v 1.9 2005/06/25 15:46:01 adam Exp $ + */ + +int cmd_adm_reindex(const char* arg); +int cmd_adm_truncate(const char* arg); +int cmd_adm_create(const char* arg); +int cmd_adm_drop(const char* arg); +int cmd_adm_import(const char* arg); +int cmd_adm_refresh(const char* arg); +int cmd_adm_commit(const char* arg); +int cmd_adm_shutdown(const char* arg); +int cmd_adm_startup(const char* arg); + +int send_apdu(Z_APDU *a); +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/client/bertorture.c b/dependencies/yaz-2.1.28/client/bertorture.c new file mode 100644 index 0000000..c9ed408 --- /dev/null +++ b/dependencies/yaz-2.1.28/client/bertorture.c @@ -0,0 +1,231 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: bertorture.c,v 1.4 2005/06/25 15:46:01 adam Exp $ + */ + +#include +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_STAT_H +#include +#endif +#include +#if HAVE_UNISTD_H +#include +#endif + +#include +#include + +#include +#include +#include + +#define PACKET_SIZE 64 + +static int stop = 0; + +static int send_packet(const char *host) +{ + char buf[PACKET_SIZE]; + int i; + + void *add; + + COMSTACK cs = cs_create_host(host, 1, &add); + + if (!cs) + return -1; + + if (cs_connect(cs, add) < 0) + return -1; + + for (i = 0; i 0) + { + ssize_t wrote; + wrote = write(fd, buf+off+j, sizeof(buf)-j-off); + if (wrote <= 0) { + yaz_log(LOG_ERRNO|LOG_FATAL, "write %s", fname); + exit (1); + } + off += wrote; + } + if (close(fd) == -1) + { + yaz_log(LOG_ERRNO|LOG_FATAL, "close %s", fname); + exit (1); + } + } + mbuf = malloc(sizeof(buf)-j); + memcpy(mbuf, buf+j, sizeof(buf)-j); + odr_setbuf(odr, mbuf, sizeof(buf)-j, 0); + if (z_GDU(odr, &req, 0, 0)) + estat[99]++; + else + { + int ex; + odr_geterrorx(odr, &ex); + estat[ex]++; + } + if (dumpfile) + odr_dumpBER(dumpfile, buf+j, sizeof(buf)-j); + free(mbuf); + odr_reset(odr); + odr_destroy(odr); + nmem_exit(); + } + if (dumpfile && dumpfile != stdout) + fclose(dumpfile); +} + +void sigint_handler(int x) +{ + stop = 1; +} + +int main(int argc, char **argv) +{ + int start = 0, end = 10000000, ret, i, estat[100]; + char *arg; + char *ber_fname = 0; + char *packet_fname = 0; + + signal(SIGINT, sigint_handler); + signal(SIGTERM, sigint_handler); + for (i = 0; i +#include +#include +#include +#include +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_LOCALE_H +#include +#endif +#if HAVE_LANGINFO_H +#include +#endif +#if HAVE_UNISTD_H +#include +#endif +#if HAVE_SYS_STAT_H +#include +#endif +#if HAVE_SYS_TIME_H +#include +#endif + +#if HAVE_OPENSSL_SSL_H +#include +#include +#include +#include +#include +#include +#endif + +#ifdef WIN32 +#include +#include +#include +#define S_ISREG(x) (x & _S_IFREG) +#define S_ISDIR(x) (x & _S_IFDIR) +#endif + +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#if HAVE_READLINE_READLINE_H +#include +#endif +#if HAVE_READLINE_HISTORY_H +#include +#endif + + +#include "admin.h" +#include "tabcomplete.h" + +#define C_PROMPT "Z> " + +static char *sru_method = "soap"; +static char *codeset = 0; /* character set for output */ +static int hex_dump = 0; +static char *dump_file_prefix = 0; +static ODR out, in, print; /* encoding and decoding streams */ +#if YAZ_HAVE_XML2 +static ODR srw_sr_odr_out = 0; +static Z_SRW_PDU *srw_sr = 0; +#endif +static FILE *apdu_file = 0; +static FILE *ber_file = 0; +static COMSTACK conn = 0; /* our z-association */ +static Z_IdAuthentication *auth = 0; /* our current auth definition */ +char *databaseNames[128]; +int num_databaseNames = 0; +static Z_External *record_last = 0; +static int setnumber = -1; /* current result set number */ +static int smallSetUpperBound = 0; +static int largeSetLowerBound = 1; +static int mediumSetPresentNumber = 0; +static Z_ElementSetNames *elementSetNames = 0; +static int setno = 1; /* current set offset */ +static enum oid_proto protocol = PROTO_Z3950; /* current app protocol */ +#define RECORDSYNTAX_MAX 20 +static enum oid_value recordsyntax_list[RECORDSYNTAX_MAX] = { VAL_USMARC }; +static int recordsyntax_size = 1; + +static char *record_schema = 0; +static int sent_close = 0; +static NMEM session_mem = NULL; /* memory handle for init-response */ +static Z_InitResponse *session_initResponse = 0; /* session parameters */ +static char last_scan_line[512] = "0"; +static char last_scan_query[512] = "0"; +static char ccl_fields[512] = "default.bib"; +/* ### How can I set this path to use wherever YAZ is installed? */ +static char cql_fields[512] = "/usr/local/share/yaz/etc/pqf.properties"; +static char *esPackageName = 0; +static char *yazProxy = 0; +static int kilobytes = 1024; +static char *negotiationCharset = 0; +static int negotiationCharsetRecords = 1; +static int negotiationCharsetVersion = 3; +static char *outputCharset = 0; +static char *marcCharset = 0; +static char* yazLang = 0; + +static char last_cmd[32] = "?"; +static FILE *marc_file = 0; +static char *refid = NULL; +static char *last_open_command = NULL; +static int auto_reconnect = 0; +static int auto_wait = 1; +static Odr_bitmask z3950_options; +static int z3950_version = 3; +static int scan_stepSize = 0; +static int scan_position = 1; +static int scan_size = 20; +static char cur_host[200]; +static int last_hit_count = 0; + +typedef enum { + QueryType_Prefix, + QueryType_CCL, + QueryType_CCL2RPN, + QueryType_CQL, + QueryType_CQL2RPN +} QueryType; + +static QueryType queryType = QueryType_Prefix; + +static CCL_bibset bibset; /* CCL bibset handle */ +static cql_transform_t cqltrans; /* CQL context-set handle */ + +#if HAVE_READLINE_COMPLETION_OVER + +#else +/* readline doesn't have this var. Define it ourselves. */ +int rl_attempted_completion_over = 0; +#endif + +/* set this one to 1, to avoid decode of unknown MARCs */ +#define AVOID_MARC_DECODE 1 + +#define maxOtherInfosSupported 10 +struct { + int oidval; + char* value; +} extraOtherInfos[maxOtherInfosSupported]; + + +void process_cmd_line(char* line); +#if HAVE_READLINE_READLINE_H +char **readline_completer(char *text, int start, int end); +#endif +static char *command_generator(const char *text, int state); +int cmd_register_tab(const char* arg); + +static void close_session (void); + +ODR getODROutputStream() +{ + return out; +} + +const char* query_type_as_string(QueryType q) +{ + switch (q) { + case QueryType_Prefix: return "prefix (RPN sent to server)"; + case QueryType_CCL: return "CCL (CCL sent to server) "; + case QueryType_CCL2RPN: return "CCL -> RPN (RPN sent to server)"; + case QueryType_CQL: return "CQL (CQL sent to server)"; + case QueryType_CQL2RPN: return "CQL -> RPN (RPN sent to server)"; + default: + return "unknown Query type internal yaz-client error"; + } +} + +static void do_hex_dump(const char* buf, int len) +{ + if (hex_dump) + { + int i,x; + for( i=0; i= 32) || strchr ("\n\r\t\f", buf[i])) + printf ("%c", buf[i]); + else + printf ("\\X%02X", buf[i]); +} + +static void print_refid (Z_ReferenceId *id) +{ + if (id) + { + printf ("Reference Id: "); + print_stringn (id->buf, id->len); + printf ("\n"); + } +} + +static Z_ReferenceId *set_refid (ODR out) +{ + Z_ReferenceId *id; + if (!refid) + return 0; + id = (Z_ReferenceId *) odr_malloc (out, sizeof(*id)); + id->size = id->len = strlen(refid); + id->buf = (unsigned char *) odr_malloc (out, id->len); + memcpy (id->buf, refid, id->len); + return id; +} + +/* INIT SERVICE ------------------------------- */ + +static void send_initRequest(const char* type_and_host) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_initRequest); + Z_InitRequest *req = apdu->u.initRequest; + int i; + + req->options = &z3950_options; + + ODR_MASK_ZERO(req->protocolVersion); + for (i = 0; iprotocolVersion, i); + + *req->maximumRecordSize = 1024*kilobytes; + *req->preferredMessageSize = 1024*kilobytes; + + req->idAuthentication = auth; + + req->referenceId = set_refid (out); + + if (yazProxy && type_and_host) + yaz_oi_set_string_oidval(&req->otherInfo, out, VAL_PROXY, + 1, type_and_host); + + if (negotiationCharset || yazLang) { + Z_OtherInformation **p; + Z_OtherInformationUnit *p0; + + yaz_oi_APDU(apdu, &p); + + if ((p0=yaz_oi_update(p, out, NULL, 0, 0))) { + ODR_MASK_SET(req->options, Z_Options_negotiationModel); + + p0->which = Z_OtherInfo_externallyDefinedInfo; + p0->information.externallyDefinedInfo = + yaz_set_proposal_charneg_list(out, ",", + negotiationCharset, + yazLang, + negotiationCharsetRecords); + } + } + + if (send_apdu(apdu)) + printf("Sent initrequest.\n"); +} + + +/* These two are used only from process_initResponse() */ +static void render_initUserInfo(Z_OtherInformation *ui1); +static void render_diag(Z_DiagnosticFormat *diag); + +static void pr_opt(const char *opt, void *clientData) +{ + printf (" %s", opt); +} + +static int process_initResponse(Z_InitResponse *res) +{ + int ver = 0; + /* save session parameters for later use */ + session_mem = odr_extract_mem(in); + session_initResponse = res; + + for (ver = 0; ver < 8; ver++) + if (!ODR_MASK_GET(res->protocolVersion, ver)) + break; + + if (!*res->result) + printf("Connection rejected by v%d target.\n", ver); + else + printf("Connection accepted by v%d target.\n", ver); + if (res->implementationId) + printf("ID : %s\n", res->implementationId); + if (res->implementationName) + printf("Name : %s\n", res->implementationName); + if (res->implementationVersion) + printf("Version: %s\n", res->implementationVersion); + if (res->userInformationField) + { + Z_External *uif = res->userInformationField; + if (uif->which == Z_External_userInfo1) { + render_initUserInfo(uif->u.userInfo1); + } else { + printf("UserInformationfield:\n"); + if (!z_External(print, (Z_External**)&uif, 0, 0)) + { + odr_perror(print, "Printing userinfo\n"); + odr_reset(print); + } + if (uif->which == Z_External_octet) { + printf("Guessing visiblestring:\n"); + printf("'%.*s'\n", uif->u.octet_aligned->len, + uif->u.octet_aligned->buf); + } + else if (uif->which == Z_External_single) + { + Odr_any *sat = uif->u.single_ASN1_type; + oident *oid = oid_getentbyoid(uif->direct_reference); + if (oid->value == VAL_OCLCUI) { + Z_OCLC_UserInformation *oclc_ui; + ODR decode = odr_createmem(ODR_DECODE); + odr_setbuf(decode, (char *) sat->buf, sat->len, 0); + if (!z_OCLC_UserInformation(decode, &oclc_ui, 0, 0)) + printf ("Bad OCLC UserInformation:\n"); + else + printf ("OCLC UserInformation:\n"); + if (!z_OCLC_UserInformation(print, &oclc_ui, 0, 0)) + printf ("Bad OCLC UserInformation spec\n"); + odr_destroy(decode); + } + else + { + /* Peek at any private Init-diagnostic APDUs */ + printf("### NAUGHTY: External is '%.*s'\n", + sat->len, sat->buf); + } + } + odr_reset (print); + } + } + printf ("Options:"); + yaz_init_opt_decode(res->options, pr_opt, 0); + printf ("\n"); + + if (ODR_MASK_GET(res->options, Z_Options_namedResultSets)) + setnumber = 0; + + if (ODR_MASK_GET(res->options, Z_Options_negotiationModel)) { + + Z_CharSetandLanguageNegotiation *p = + yaz_get_charneg_record(res->otherInfo); + + if (p) { + + char *charset=NULL, *lang=NULL; + int selected; + + yaz_get_response_charneg(session_mem, p, &charset, &lang, + &selected); + + if (outputCharset && negotiationCharset) { + odr_set_charset (out, charset, outputCharset); + odr_set_charset (in, outputCharset, charset); + } + else { + odr_set_charset (out, 0, 0); + odr_set_charset (in, 0, 0); + } + + printf("Accepted character set : %s\n", charset); + printf("Accepted code language : %s\n", lang ? lang : "none"); + printf("Accepted records in ...: %d\n", selected ); + } + } + fflush (stdout); + return 0; +} + + +static void render_initUserInfo(Z_OtherInformation *ui1) { + int i; + printf("Init response contains %d otherInfo unit%s:\n", + ui1->num_elements, ui1->num_elements == 1 ? "" : "s"); + + for (i = 0; i < ui1->num_elements; i++) { + Z_OtherInformationUnit *unit = ui1->list[i]; + printf(" %d: otherInfo unit contains ", i+1); + if (unit->which == Z_OtherInfo_externallyDefinedInfo && + unit->information.externallyDefinedInfo && + unit->information.externallyDefinedInfo->which == + Z_External_diag1) { + render_diag(unit->information.externallyDefinedInfo->u.diag1); + } + else if (unit->which != Z_OtherInfo_externallyDefinedInfo) + { + printf("unsupported otherInfo unit->which = %d\n", unit->which); + } + else + { + printf("unsupported otherInfo unit external %d\n", + unit->information.externallyDefinedInfo ? + unit->information.externallyDefinedInfo->which : -2); + } + } +} + + +/* ### should this share code with display_diagrecs()? */ +static void render_diag(Z_DiagnosticFormat *diag) { + int i; + + printf("%d diagnostic%s:\n", diag->num, diag->num == 1 ? "" : "s"); + for (i = 0; i < diag->num; i++) { + Z_DiagnosticFormat_s *ds = diag->elements[i]; + printf(" %d: ", i+1); + switch (ds->which) { + case Z_DiagnosticFormat_s_defaultDiagRec: { + Z_DefaultDiagFormat *dd = ds->u.defaultDiagRec; + /* ### should check `dd->diagnosticSetId' */ + printf("code=%d (%s)", *dd->condition, + diagbib1_str(*dd->condition)); + /* Both types of addinfo are the same, so use type-pun */ + if (dd->u.v2Addinfo != 0) + printf(",\n\taddinfo='%s'", dd->u.v2Addinfo); + break; + } + case Z_DiagnosticFormat_s_explicitDiagnostic: + printf("Explicit diagnostic (not supported)"); + break; + default: + printf("Unrecognised diagnostic type %d", ds->which); + break; + } + + if (ds->message != 0) + printf(", message='%s'", ds->message); + printf("\n"); + } +} + + +static int set_base(const char *arg) +{ + int i; + const char *cp; + + for (i = 0; i ...\n"); + return 0; + } + return set_base(arg); +} + +void cmd_open_remember_last_open_command(const char* arg, char* new_open_command) +{ + if(last_open_command != arg) + { + if(last_open_command) xfree(last_open_command); + last_open_command = xstrdup(new_open_command); + } +} + +int session_connect(const char *arg) +{ + void *add; + char type_and_host[101]; + const char *basep = 0; +#if HAVE_OPENSSL_SSL_H + SSL *ssl; +#endif + if (conn) + { + cs_close (conn); + conn = 0; + } + if (session_mem) + { + nmem_destroy (session_mem); + session_mem = NULL; + session_initResponse = 0; + } + cs_get_host_args(arg, &basep); + + strncpy(type_and_host, arg, sizeof(type_and_host)-1); + type_and_host[sizeof(type_and_host)-1] = '\0'; + + cmd_open_remember_last_open_command(arg, type_and_host); + + if (yazProxy) + conn = cs_create_host(yazProxy, 1, &add); + else + conn = cs_create_host(arg, 1, &add); + if (!conn) + { + printf ("Couldn't create comstack\n"); + return 0; + } +#if YAZ_HAVE_XML2 + if (conn->protocol == PROTO_HTTP) + queryType = QueryType_CQL; +#else + if (conn->protocol == PROTO_HTTP) + { + printf ("SRW/HTTP not enabled in this YAZ\n"); + cs_close(conn); + conn = 0; + return 0; + } +#endif + protocol = conn->protocol; + if (conn->protocol == PROTO_HTTP) + set_base(""); + else + set_base("Default"); + printf("Connecting..."); + fflush(stdout); + if (cs_connect(conn, add) < 0) + { + printf ("error = %s\n", cs_strerror(conn)); + if (conn->cerrno == CSYSERR) + { + char msg[256]; + yaz_strerror(msg, sizeof(msg)); + printf ("%s\n", msg); + } + cs_close(conn); + conn = 0; + return 0; + } + printf("OK.\n"); +#if HAVE_OPENSSL_SSL_H + if ((ssl = (SSL *) cs_get_ssl(conn))) + { + X509 *server_cert = SSL_get_peer_certificate (ssl); + + if (server_cert) + { + char *pem_buf; + int pem_len; + BIO *bio = BIO_new(BIO_s_mem()); + + /* get PEM buffer in memory */ + PEM_write_bio_X509(bio, server_cert); + pem_len = BIO_get_mem_data(bio, &pem_buf); + fwrite(pem_buf, pem_len, 1, stdout); + + /* print all info on screen .. */ + X509_print_fp(stdout, server_cert); + BIO_free(bio); + + X509_free (server_cert); + } + } +#endif + if (basep && *basep) + set_base (basep); + if (protocol == PROTO_Z3950) + { + send_initRequest(type_and_host); + return 2; + } + return 0; +} + +int cmd_open(const char *arg) +{ + if (arg) + { + strncpy (cur_host, arg, sizeof(cur_host)-1); + cur_host[sizeof(cur_host)-1] = 0; + } + return session_connect(cur_host); +} + +void try_reconnect() +{ + char* open_command; + + if(!( auto_reconnect && last_open_command) ) return ; + + open_command = (char *) xmalloc (strlen(last_open_command)+6); + strcpy (open_command, "open "); + + strcat (open_command, last_open_command); + + process_cmd_line(open_command); + + xfree(open_command); +} + +int cmd_authentication(const char *arg) +{ + static Z_IdAuthentication au; + static char user[40], group[40], pass[40]; + static Z_IdPass idPass; + int r; + + if (!*arg) + { + printf("Auth field set to null\n"); + auth = 0; + return 1; + } + r = sscanf (arg, "%39s %39s %39s", user, group, pass); + if (r == 0) + { + printf("Authentication set to null\n"); + auth = 0; + } + if (r == 1) + { + auth = &au; + if (!strcmp(user, "-")) { + au.which = Z_IdAuthentication_anonymous; + printf("Authentication set to Anonymous\n"); + } else { + au.which = Z_IdAuthentication_open; + au.u.open = user; + printf("Authentication set to Open (%s)\n", user); + } + } + if (r == 2) + { + auth = &au; + au.which = Z_IdAuthentication_idPass; + au.u.idPass = &idPass; + idPass.groupId = NULL; + idPass.userId = user; + idPass.password = group; + printf("Authentication set to User (%s), Pass (%s)\n", user, group); + } + if (r == 3) + { + auth = &au; + au.which = Z_IdAuthentication_idPass; + au.u.idPass = &idPass; + idPass.groupId = group; + idPass.userId = user; + idPass.password = pass; + printf("Authentication set to User (%s), Group (%s), Pass (%s)\n", + user, group, pass); + } + return 1; +} + +/* SEARCH SERVICE ------------------------------ */ +static void display_record(Z_External *r); + +static void print_record(const unsigned char *buf, size_t len) +{ + size_t i = len; + print_stringn (buf, len); + /* add newline if not already added ... */ + if (i <= 0 || buf[i-1] != '\n') + printf ("\n"); +} + +static void display_record(Z_External *r) +{ + oident *ent = oid_getentbyoid(r->direct_reference); + + record_last = r; + /* + * Tell the user what we got. + */ + if (r->direct_reference) + { + printf("Record type: "); + if (ent) + printf("%s\n", ent->desc); + else if (!odr_oid(print, &r->direct_reference, 0, 0)) + { + odr_perror(print, "print oid"); + odr_reset(print); + } + } + /* Check if this is a known, ASN.1 type tucked away in an octet string */ + if (ent && r->which == Z_External_octet) + { + Z_ext_typeent *type = z_ext_getentbyref(ent->value); + char *rr; + + if (type) + { + /* + * Call the given decoder to process the record. + */ + odr_setbuf(in, (char*)r->u.octet_aligned->buf, + r->u.octet_aligned->len, 0); + if (!(*type->fun)(in, &rr, 0, 0)) + { + odr_perror(in, "Decoding constructed record."); + fprintf(stdout, "[Near %ld]\n", (long) odr_offset(in)); + fprintf(stdout, "Packet dump:\n---------\n"); + odr_dumpBER(stdout, (char*)r->u.octet_aligned->buf, + r->u.octet_aligned->len); + fprintf(stdout, "---------\n"); + + /* note just ignores the error ant print the bytes form the octet_aligned later */ + } else { + /* + * Note: we throw away the original, BER-encoded record here. + * Do something else with it if you want to keep it. + */ + r->u.sutrs = (Z_SUTRS *) rr; /* we don't actually check the type here. */ + r->which = type->what; + } + } + } + if (ent && ent->value == VAL_SOIF) + { + print_record((const unsigned char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len); + if (marc_file) + fwrite (r->u.octet_aligned->buf, 1, r->u.octet_aligned->len, marc_file); + } + else if (r->which == Z_External_octet) + { + const char *octet_buf = (char*)r->u.octet_aligned->buf; + if (ent->oclass == CLASS_RECSYN && + (ent->value == VAL_TEXT_XML || + ent->value == VAL_APPLICATION_XML || + ent->value == VAL_HTML)) + { + print_record((const unsigned char *) octet_buf, + r->u.octet_aligned->len); + } + else if (ent->value == VAL_POSTSCRIPT) + { + int size = r->u.octet_aligned->len; + if (size > 100) + size = 100; + print_record((const unsigned char *) octet_buf, size); + } + else + { + if ( +#if AVOID_MARC_DECODE + /* primitive check for a marc OID 5.1-29 except 16 */ + ent->oidsuffix[0] == 5 && ent->oidsuffix[1] < 30 && + ent->oidsuffix[1] != 16 +#else + 1 +#endif + ) + { + char *result; + int rlen; + yaz_iconv_t cd = 0; + yaz_marc_t mt = yaz_marc_create(); + + if (yaz_marc_decode_buf(mt, octet_buf,r->u.octet_aligned->len, + &result, &rlen)> 0) + { + char *from = 0; + if (marcCharset && !strcmp(marcCharset, "auto")) + { + if (ent->value == VAL_USMARC) + { + if (octet_buf[9] == 'a') + from = "UTF-8"; + else + from = "MARC-8"; + } + else + from = "ISO-8859-1"; + } + else if (marcCharset) + from = marcCharset; + if (outputCharset && from) + { + cd = yaz_iconv_open(outputCharset, from); + printf ("convert from %s to %s", from, + outputCharset); + if (!cd) + printf (" unsupported\n"); + else + printf ("\n"); + } + if (!cd) + fwrite (result, 1, rlen, stdout); + else + { + char outbuf[6]; + size_t inbytesleft = rlen; + const char *inp = result; + + while (inbytesleft) + { + size_t outbytesleft = sizeof(outbuf); + char *outp = outbuf; + size_t r; + + r = yaz_iconv (cd, (char**) &inp, + &inbytesleft, + &outp, &outbytesleft); + if (r == (size_t) (-1)) + { + int e = yaz_iconv_error(cd); + if (e != YAZ_ICONV_E2BIG) + break; + } + fwrite (outbuf, outp - outbuf, 1, stdout); + } + } + } + else + { + printf ("bad MARC. Dumping as it is:\n"); + print_record((const unsigned char*) octet_buf, + r->u.octet_aligned->len); + } + yaz_marc_destroy(mt); + if (cd) + yaz_iconv_close(cd); + } + else + { + print_record((const unsigned char*) octet_buf, + r->u.octet_aligned->len); + } + } + if (marc_file) + fwrite (octet_buf, 1, r->u.octet_aligned->len, marc_file); + } + else if (ent && ent->value == VAL_SUTRS) + { + if (r->which != Z_External_sutrs) + { + printf("Expecting single SUTRS type for SUTRS.\n"); + return; + } + print_record(r->u.sutrs->buf, r->u.sutrs->len); + if (marc_file) + fwrite (r->u.sutrs->buf, 1, r->u.sutrs->len, marc_file); + } + else if (ent && ent->value == VAL_GRS1) + { + WRBUF w; + if (r->which != Z_External_grs1) + { + printf("Expecting single GRS type for GRS.\n"); + return; + } + w = wrbuf_alloc(); + yaz_display_grs1(w, r->u.grs1, 0); + puts (wrbuf_buf(w)); + wrbuf_free(w, 1); + } + else if (ent && ent->value == VAL_OPAC) + { + int i; + if (r->u.opac->bibliographicRecord) + display_record(r->u.opac->bibliographicRecord); + for (i = 0; iu.opac->num_holdingsData; i++) + { + Z_HoldingsRecord *h = r->u.opac->holdingsData[i]; + if (h->which == Z_HoldingsRecord_marcHoldingsRecord) + { + printf ("MARC holdings %d\n", i); + display_record(h->u.marcHoldingsRecord); + } + else if (h->which == Z_HoldingsRecord_holdingsAndCirc) + { + int j; + + Z_HoldingsAndCircData *data = h->u.holdingsAndCirc; + + printf ("Data holdings %d\n", i); + if (data->typeOfRecord) + printf ("typeOfRecord: %s\n", data->typeOfRecord); + if (data->encodingLevel) + printf ("encodingLevel: %s\n", data->encodingLevel); + if (data->receiptAcqStatus) + printf ("receiptAcqStatus: %s\n", data->receiptAcqStatus); + if (data->generalRetention) + printf ("generalRetention: %s\n", data->generalRetention); + if (data->completeness) + printf ("completeness: %s\n", data->completeness); + if (data->dateOfReport) + printf ("dateOfReport: %s\n", data->dateOfReport); + if (data->nucCode) + printf ("nucCode: %s\n", data->nucCode); + if (data->localLocation) + printf ("localLocation: %s\n", data->localLocation); + if (data->shelvingLocation) + printf ("shelvingLocation: %s\n", data->shelvingLocation); + if (data->callNumber) + printf ("callNumber: %s\n", data->callNumber); + if (data->shelvingData) + printf ("shelvingData: %s\n", data->shelvingData); + if (data->copyNumber) + printf ("copyNumber: %s\n", data->copyNumber); + if (data->publicNote) + printf ("publicNote: %s\n", data->publicNote); + if (data->reproductionNote) + printf ("reproductionNote: %s\n", data->reproductionNote); + if (data->termsUseRepro) + printf ("termsUseRepro: %s\n", data->termsUseRepro); + if (data->enumAndChron) + printf ("enumAndChron: %s\n", data->enumAndChron); + for (j = 0; jnum_volumes; j++) + { + printf ("volume %d\n", j); + if (data->volumes[j]->enumeration) + printf (" enumeration: %s\n", + data->volumes[j]->enumeration); + if (data->volumes[j]->chronology) + printf (" chronology: %s\n", + data->volumes[j]->chronology); + if (data->volumes[j]->enumAndChron) + printf (" enumAndChron: %s\n", + data->volumes[j]->enumAndChron); + } + for (j = 0; jnum_circulationData; j++) + { + printf ("circulation %d\n", j); + if (data->circulationData[j]->availableNow) + printf (" availableNow: %d\n", + *data->circulationData[j]->availableNow); + if (data->circulationData[j]->availablityDate) + printf (" availabiltyDate: %s\n", + data->circulationData[j]->availablityDate); + if (data->circulationData[j]->availableThru) + printf (" availableThru: %s\n", + data->circulationData[j]->availableThru); + if (data->circulationData[j]->restrictions) + printf (" restrictions: %s\n", + data->circulationData[j]->restrictions); + if (data->circulationData[j]->itemId) + printf (" itemId: %s\n", + data->circulationData[j]->itemId); + if (data->circulationData[j]->renewable) + printf (" renewable: %d\n", + *data->circulationData[j]->renewable); + if (data->circulationData[j]->onHold) + printf (" onHold: %d\n", + *data->circulationData[j]->onHold); + if (data->circulationData[j]->enumAndChron) + printf (" enumAndChron: %s\n", + data->circulationData[j]->enumAndChron); + if (data->circulationData[j]->midspine) + printf (" midspine: %s\n", + data->circulationData[j]->midspine); + if (data->circulationData[j]->temporaryLocation) + printf (" temporaryLocation: %s\n", + data->circulationData[j]->temporaryLocation); + } + } + } + } + else + { + printf("Unknown record representation.\n"); + if (!z_External(print, &r, 0, 0)) + { + odr_perror(print, "Printing external"); + odr_reset(print); + } + } +} + +static void display_diagrecs(Z_DiagRec **pp, int num) +{ + int i; + oident *ent; + Z_DefaultDiagFormat *r; + + printf("Diagnostic message(s) from database:\n"); + for (i = 0; iwhich != Z_DiagRec_defaultFormat) + { + printf("Diagnostic record not in default format.\n"); + return; + } + else + r = p->u.defaultFormat; + if (!(ent = oid_getentbyoid(r->diagnosticSetId)) || + ent->oclass != CLASS_DIAGSET || ent->value != VAL_BIB1) + printf("Missing or unknown diagset\n"); + printf(" [%d] %s", *r->condition, diagbib1_str(*r->condition)); + switch (r->which) + { + case Z_DefaultDiagFormat_v2Addinfo: + printf (" -- v2 addinfo '%s'\n", r->u.v2Addinfo); + break; + case Z_DefaultDiagFormat_v3Addinfo: + printf (" -- v3 addinfo '%s'\n", r->u.v3Addinfo); + break; + } + } +} + + +static void display_nameplusrecord(Z_NamePlusRecord *p) +{ + if (p->databaseName) + printf("[%s]", p->databaseName); + if (p->which == Z_NamePlusRecord_surrogateDiagnostic) + display_diagrecs(&p->u.surrogateDiagnostic, 1); + else if (p->which == Z_NamePlusRecord_databaseRecord) + display_record(p->u.databaseRecord); +} + +static void display_records(Z_Records *p) +{ + int i; + + if (p->which == Z_Records_NSD) + { + Z_DiagRec dr, *dr_p = &dr; + dr.which = Z_DiagRec_defaultFormat; + dr.u.defaultFormat = p->u.nonSurrogateDiagnostic; + display_diagrecs (&dr_p, 1); + } + else if (p->which == Z_Records_multipleNSD) + display_diagrecs (p->u.multipleNonSurDiagnostics->diagRecs, + p->u.multipleNonSurDiagnostics->num_diagRecs); + else + { + printf("Records: %d\n", p->u.databaseOrSurDiagnostics->num_records); + for (i = 0; i < p->u.databaseOrSurDiagnostics->num_records; i++) + display_nameplusrecord(p->u.databaseOrSurDiagnostics->records[i]); + } +} + +static int send_deleteResultSetRequest(const char *arg) +{ + char names[8][32]; + int i; + + Z_APDU *apdu = zget_APDU(out, Z_APDU_deleteResultSetRequest); + Z_DeleteResultSetRequest *req = apdu->u.deleteResultSetRequest; + + req->referenceId = set_refid (out); + + req->num_resultSetList = + sscanf (arg, "%30s %30s %30s %30s %30s %30s %30s %30s", + names[0], names[1], names[2], names[3], + names[4], names[5], names[6], names[7]); + + req->deleteFunction = (int *) + odr_malloc (out, sizeof(*req->deleteFunction)); + if (req->num_resultSetList > 0) + { + *req->deleteFunction = Z_DeleteResultSetRequest_list; + req->resultSetList = (char **) + odr_malloc (out, sizeof(*req->resultSetList)* + req->num_resultSetList); + for (i = 0; inum_resultSetList; i++) + req->resultSetList[i] = names[i]; + } + else + { + *req->deleteFunction = Z_DeleteResultSetRequest_all; + req->resultSetList = 0; + } + + send_apdu(apdu); + printf("Sent deleteResultSetRequest.\n"); + return 2; +} + +#if YAZ_HAVE_XML2 +static int send_srw(Z_SRW_PDU *sr) +{ + const char *charset = negotiationCharset; + const char *host_port = cur_host; + Z_GDU *gdu; + char *path = 0; + + path = odr_malloc(out, 2+strlen(databaseNames[0])); + *path = '/'; + strcpy(path+1, databaseNames[0]); + + gdu = z_get_HTTP_Request_host_path(out, host_port, path); + + if (!strcmp(sru_method, "get")) + { + yaz_sru_get_encode(gdu->u.HTTP_Request, sr, out, charset); + } + else if (!strcmp(sru_method, "post")) + { + yaz_sru_post_encode(gdu->u.HTTP_Request, sr, out, charset); + } + else if (!strcmp(sru_method, "soap")) + { + yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, out, charset); + } + + if (z_GDU(out, &gdu, 0, 0)) + { + /* encode OK */ + char *buf_out; + int len_out; + int r; + if (apdu_file) + { + if (!z_GDU(print, &gdu, 0, 0)) + printf ("Failed to print outgoing SRU package\n"); + odr_reset(print); + } + buf_out = odr_getbuf(out, &len_out, 0); + + /* we don't odr_reset(out), since we may need the buffer again */ + + do_hex_dump(buf_out, len_out); + + r = cs_put(conn, buf_out, len_out); + + if (r >= 0) + return 2; + } + return 0; +} +#endif + +#if YAZ_HAVE_XML2 +static char *encode_SRW_term(ODR o, const char *q) +{ + const char *in_charset = "ISO-8859-1"; + WRBUF w = wrbuf_alloc(); + yaz_iconv_t cd; + char *res; + if (outputCharset) + in_charset = outputCharset; + cd = yaz_iconv_open("UTF-8", in_charset); + if (!cd) + { + wrbuf_free(w, 1); + return odr_strdup(o, q); + } + wrbuf_iconv_write(w, cd, q, strlen(q)); + if (wrbuf_len(w)) + { + int len = wrbuf_len(w); + res = odr_strdupn(o, wrbuf_buf(w), len); + } + else + res = odr_strdup(o, q); + yaz_iconv_close(cd); + wrbuf_free(w, 1); + return res; +} + + +static int send_SRW_scanRequest(const char *arg, int pos, int num) +{ + Z_SRW_PDU *sr = 0; + + /* regular requestse .. */ + sr = yaz_srw_get(out, Z_SRW_scan_request); + + switch(queryType) + { + case QueryType_CQL: + sr->u.scan_request->query_type = Z_SRW_query_type_cql; + sr->u.scan_request->scanClause.cql = encode_SRW_term(out, arg); + break; + case QueryType_Prefix: + sr->u.scan_request->query_type = Z_SRW_query_type_pqf; + sr->u.scan_request->scanClause.pqf = encode_SRW_term(out, arg); + break; + default: + printf ("Only CQL and PQF supported in SRW\n"); + return 0; + } + sr->u.scan_request->responsePosition = odr_intdup(out, pos); + sr->u.scan_request->maximumTerms = odr_intdup(out, num); + return send_srw(sr); +} + +static int send_SRW_searchRequest(const char *arg) +{ + Z_SRW_PDU *sr = 0; + + if (!srw_sr) + { + assert(srw_sr_odr_out == 0); + srw_sr_odr_out = odr_createmem(ODR_ENCODE); + } + odr_reset(srw_sr_odr_out); + + setno = 1; + + /* save this for later .. when fetching individual records */ + srw_sr = yaz_srw_get(srw_sr_odr_out, Z_SRW_searchRetrieve_request); + + /* regular request .. */ + sr = yaz_srw_get(out, Z_SRW_searchRetrieve_request); + + switch(queryType) + { + case QueryType_CQL: + srw_sr->u.request->query_type = Z_SRW_query_type_cql; + srw_sr->u.request->query.cql = encode_SRW_term(srw_sr_odr_out, arg); + + sr->u.request->query_type = Z_SRW_query_type_cql; + sr->u.request->query.cql = encode_SRW_term(srw_sr_odr_out, arg); + break; + case QueryType_Prefix: + srw_sr->u.request->query_type = Z_SRW_query_type_pqf; + srw_sr->u.request->query.pqf = encode_SRW_term(srw_sr_odr_out, arg); + + sr->u.request->query_type = Z_SRW_query_type_pqf; + sr->u.request->query.pqf = encode_SRW_term(srw_sr_odr_out, arg); + break; + default: + printf ("Only CQL and PQF supported in SRW\n"); + return 0; + } + sr->u.request->maximumRecords = odr_intdup(out, 0); + + if (record_schema) + sr->u.request->recordSchema = record_schema; + if (recordsyntax_size == 1 && recordsyntax_list[0] == VAL_TEXT_XML) + sr->u.explain_request->recordPacking = "xml"; + return send_srw(sr); +} +#endif + +static int send_searchRequest(const char *arg) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_searchRequest); + Z_SearchRequest *req = apdu->u.searchRequest; + Z_Query query; + struct ccl_rpn_node *rpn = NULL; + int error, pos; + char setstring[100]; + Z_RPNQuery *RPNquery; + Odr_oct ccl_query; + YAZ_PQF_Parser pqf_parser; + Z_External *ext; + QueryType myQueryType = queryType; + char pqfbuf[512]; + + if (myQueryType == QueryType_CCL2RPN) + { + rpn = ccl_find_str(bibset, arg, &error, &pos); + if (error) + { + printf("CCL ERROR: %s\n", ccl_err_msg(error)); + return 0; + } + } else if (myQueryType == QueryType_CQL2RPN) { + /* ### All this code should be wrapped in a utility function */ + CQL_parser parser; + struct cql_node *node; + const char *addinfo; + if (cqltrans == 0) { + printf("Can't use CQL: no translation file. Try set_cqlfile\n"); + return 0; + } + parser = cql_parser_create(); + if ((error = cql_parser_string(parser, arg)) != 0) { + printf("Can't parse CQL: must be a syntax error\n"); + return 0; + } + node = cql_parser_result(parser); + if ((error = cql_transform_buf(cqltrans, node, pqfbuf, + sizeof pqfbuf)) != 0) { + error = cql_transform_error(cqltrans, &addinfo); + printf ("Can't convert CQL to PQF: %s (addinfo=%s)\n", + cql_strerror(error), addinfo); + return 0; + } + arg = pqfbuf; + myQueryType = QueryType_Prefix; + } + + req->referenceId = set_refid (out); + if (!strcmp(arg, "@big")) /* strictly for troublemaking */ + { + static unsigned char big[2100]; + static Odr_oct bigo; + + /* send a very big referenceid to test transport stack etc. */ + memset(big, 'A', 2100); + bigo.len = bigo.size = 2100; + bigo.buf = big; + req->referenceId = &bigo; + } + + if (setnumber >= 0) + { + sprintf(setstring, "%d", ++setnumber); + req->resultSetName = setstring; + } + *req->smallSetUpperBound = smallSetUpperBound; + *req->largeSetLowerBound = largeSetLowerBound; + *req->mediumSetPresentNumber = mediumSetPresentNumber; + if (smallSetUpperBound > 0 || (largeSetLowerBound > 1 && + mediumSetPresentNumber > 0)) + { + if (recordsyntax_size > 0) + req->preferredRecordSyntax = + yaz_oidval_to_z3950oid(out, CLASS_RECSYN, recordsyntax_list[0]); + req->smallSetElementSetNames = + req->mediumSetElementSetNames = elementSetNames; + } + req->num_databaseNames = num_databaseNames; + req->databaseNames = databaseNames; + + req->query = &query; + + switch (myQueryType) + { + case QueryType_Prefix: + query.which = Z_Query_type_1; + pqf_parser = yaz_pqf_create (); + RPNquery = yaz_pqf_parse (pqf_parser, out, arg); + if (!RPNquery) + { + const char *pqf_msg; + size_t off; + int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); + int ioff = off; + printf("%*s^\n", ioff+4, ""); + printf("Prefix query error: %s (code %d)\n", pqf_msg, code); + + yaz_pqf_destroy (pqf_parser); + return 0; + } + yaz_pqf_destroy (pqf_parser); + query.u.type_1 = RPNquery; + break; + case QueryType_CCL: + query.which = Z_Query_type_2; + query.u.type_2 = &ccl_query; + ccl_query.buf = (unsigned char*) arg; + ccl_query.len = strlen(arg); + break; + case QueryType_CCL2RPN: + query.which = Z_Query_type_1; + RPNquery = ccl_rpn_query(out, rpn); + if (!RPNquery) + { + printf ("Couldn't convert from CCL to RPN\n"); + return 0; + } + query.u.type_1 = RPNquery; + ccl_rpn_delete (rpn); + break; + case QueryType_CQL: + query.which = Z_Query_type_104; + ext = (Z_External *) odr_malloc(out, sizeof(*ext)); + ext->direct_reference = odr_getoidbystr(out, "1.2.840.10003.16.2"); + ext->indirect_reference = 0; + ext->descriptor = 0; + ext->which = Z_External_CQL; + ext->u.cql = odr_strdup(out, arg); + query.u.type_104 = ext; + break; + default: + printf ("Unsupported query type\n"); + return 0; + } + if (send_apdu(apdu)) + printf("Sent searchRequest.\n"); + setno = 1; + return 2; +} + +/* display Query Expression as part of searchResult-1 */ +static void display_queryExpression (const char *lead, Z_QueryExpression *qe) +{ + if (!qe) + return; + printf(" %s=", lead); + if (qe->which == Z_QueryExpression_term) + { + if (qe->u.term->queryTerm) + { + Z_Term *term = qe->u.term->queryTerm; + switch (term->which) + { + case Z_Term_general: + printf ("%.*s", term->u.general->len, term->u.general->buf); + break; + case Z_Term_characterString: + printf ("%s", term->u.characterString); + break; + case Z_Term_numeric: + printf ("%d", *term->u.numeric); + break; + case Z_Term_null: + printf ("null"); + break; + } + } + } +} + +/* see if we can find USR:SearchResult-1 */ +static void display_searchResult (Z_OtherInformation *o) +{ + int i; + if (!o) + return ; + for (i = 0; i < o->num_elements; i++) + { + if (o->list[i]->which == Z_OtherInfo_externallyDefinedInfo) + { + Z_External *ext = o->list[i]->information.externallyDefinedInfo; + + if (ext->which == Z_External_searchResult1) + { + int j; + Z_SearchInfoReport *sr = ext->u.searchResult1; + printf ("SearchResult-1:"); + for (j = 0; j < sr->num; j++) + { + if (j) + printf(","); + if (!sr->elements[j]->subqueryExpression) + printf("%d", j); + display_queryExpression("term", + sr->elements[j]->subqueryExpression); + display_queryExpression("interpretation", + sr->elements[j]->subqueryInterpretation); + display_queryExpression("recommendation", + sr->elements[j]->subqueryRecommendation); + if (sr->elements[j]->subqueryCount) + printf(" cnt=%d", *sr->elements[j]->subqueryCount); + if (sr->elements[j]->subqueryId) + printf(" id=%s ", sr->elements[j]->subqueryId); + } + printf ("\n"); + } + } + } +} + +static int process_searchResponse(Z_SearchResponse *res) +{ + printf ("Received SearchResponse.\n"); + print_refid (res->referenceId); + if (*res->searchStatus) + printf("Search was a success.\n"); + else + printf("Search was a bloomin' failure.\n"); + printf("Number of hits: %d", *res->resultCount); + last_hit_count = *res->resultCount; + if (setnumber >= 0) + printf (", setno %d", setnumber); + printf ("\n"); + display_searchResult (res->additionalSearchInfo); + printf("records returned: %d\n", + *res->numberOfRecordsReturned); + setno += *res->numberOfRecordsReturned; + if (res->records) + display_records(res->records); + return 0; +} + +static void print_level(int iLevel) +{ + int i; + for (i = 0; i < iLevel * 4; i++) + printf(" "); +} + +static void print_int(int iLevel, const char *pTag, int *pInt) +{ + if (pInt != NULL) + { + print_level(iLevel); + printf("%s: %d\n", pTag, *pInt); + } +} + +static void print_string(int iLevel, const char *pTag, const char *pString) +{ + if (pString != NULL) + { + print_level(iLevel); + printf("%s: %s\n", pTag, pString); + } +} + +static void print_oid(int iLevel, const char *pTag, Odr_oid *pOid) +{ + if (pOid != NULL) + { + int *pInt = pOid; + + print_level(iLevel); + printf("%s:", pTag); + for (; *pInt != -1; pInt++) + printf(" %d", *pInt); + printf("\n"); + } +} + +static void print_referenceId(int iLevel, Z_ReferenceId *referenceId) +{ + if (referenceId != NULL) + { + int i; + + print_level(iLevel); + printf("Ref Id (%d, %d): ", referenceId->len, referenceId->size); + for (i = 0; i < referenceId->len; i++) + printf("%c", referenceId->buf[i]); + printf("\n"); + } +} + +static void print_string_or_numeric(int iLevel, const char *pTag, Z_StringOrNumeric *pStringNumeric) +{ + if (pStringNumeric != NULL) + { + switch (pStringNumeric->which) + { + case Z_StringOrNumeric_string: + print_string(iLevel, pTag, pStringNumeric->u.string); + break; + + case Z_StringOrNumeric_numeric: + print_int(iLevel, pTag, pStringNumeric->u.numeric); + break; + + default: + print_level(iLevel); + printf("%s: valid type for Z_StringOrNumeric\n", pTag); + break; + } + } +} + +static void print_universe_report_duplicate( + int iLevel, + Z_UniverseReportDuplicate *pUniverseReportDuplicate) +{ + if (pUniverseReportDuplicate != NULL) + { + print_level(iLevel); + printf("Universe Report Duplicate: \n"); + iLevel++; + print_string_or_numeric(iLevel, "Hit No", + pUniverseReportDuplicate->hitno); + } +} + +static void print_universe_report_hits( + int iLevel, + Z_UniverseReportHits *pUniverseReportHits) +{ + if (pUniverseReportHits != NULL) + { + print_level(iLevel); + printf("Universe Report Hits: \n"); + iLevel++; + print_string_or_numeric(iLevel, "Database", + pUniverseReportHits->database); + print_string_or_numeric(iLevel, "Hits", pUniverseReportHits->hits); + } +} + +static void print_universe_report(int iLevel, Z_UniverseReport *pUniverseReport) +{ + if (pUniverseReport != NULL) + { + print_level(iLevel); + printf("Universe Report: \n"); + iLevel++; + print_int(iLevel, "Total Hits", pUniverseReport->totalHits); + switch (pUniverseReport->which) + { + case Z_UniverseReport_databaseHits: + print_universe_report_hits(iLevel, + pUniverseReport->u.databaseHits); + break; + + case Z_UniverseReport_duplicate: + print_universe_report_duplicate(iLevel, + pUniverseReport->u.duplicate); + break; + + default: + print_level(iLevel); + printf("Type: %d\n", pUniverseReport->which); + break; + } + } +} + +static void print_external(int iLevel, Z_External *pExternal) +{ + if (pExternal != NULL) + { + print_level(iLevel); + printf("External: \n"); + iLevel++; + print_oid(iLevel, "Direct Reference", pExternal->direct_reference); + print_int(iLevel, "InDirect Reference", pExternal->indirect_reference); + print_string(iLevel, "Descriptor", pExternal->descriptor); + switch (pExternal->which) + { + case Z_External_universeReport: + print_universe_report(iLevel, pExternal->u.universeReport); + break; + + default: + print_level(iLevel); + printf("Type: %d\n", pExternal->which); + break; + } + } +} + +static int process_resourceControlRequest (Z_ResourceControlRequest *req) +{ + printf ("Received ResourceControlRequest.\n"); + print_referenceId(1, req->referenceId); + print_int(1, "Suspended Flag", req->suspendedFlag); + print_int(1, "Partial Results Available", req->partialResultsAvailable); + print_int(1, "Response Required", req->responseRequired); + print_int(1, "Triggered Request Flag", req->triggeredRequestFlag); + print_external(1, req->resourceReport); + return 0; +} + +void process_ESResponse(Z_ExtendedServicesResponse *res) +{ + printf("Status: "); + switch (*res->operationStatus) + { + case Z_ExtendedServicesResponse_done: + printf ("done\n"); + break; + case Z_ExtendedServicesResponse_accepted: + printf ("accepted\n"); + break; + case Z_ExtendedServicesResponse_failure: + printf ("failure\n"); + display_diagrecs(res->diagnostics, res->num_diagnostics); + break; + default: + printf ("unknown\n"); + } + if ( (*res->operationStatus != Z_ExtendedServicesResponse_failure) && + (res->num_diagnostics != 0) ) { + display_diagrecs(res->diagnostics, res->num_diagnostics); + } + print_refid (res->referenceId); + if (res->taskPackage && + res->taskPackage->which == Z_External_extendedService) + { + Z_TaskPackage *taskPackage = res->taskPackage->u.extendedService; + Odr_oct *id = taskPackage->targetReference; + Z_External *ext = taskPackage->taskSpecificParameters; + + if (id) + { + printf ("Target Reference: "); + print_stringn (id->buf, id->len); + printf ("\n"); + } + if (ext->which == Z_External_update) + { + Z_IUUpdateTaskPackage *utp = ext->u.update->u.taskPackage; + if (utp && utp->targetPart) + { + Z_IUTargetPart *targetPart = utp->targetPart; + int i; + + for (i = 0; inum_taskPackageRecords; i++) + { + + Z_IUTaskPackageRecordStructure *tpr = + targetPart->taskPackageRecords[i]; + printf ("task package record %d\n", i+1); + if (tpr->which == Z_IUTaskPackageRecordStructure_record) + { + display_record (tpr->u.record); + } + else + { + printf ("other type\n"); + } + } + } + } + } + if (res->taskPackage && res->taskPackage->which == Z_External_octet) + { + Odr_oct *doc = res->taskPackage->u.octet_aligned; + printf("%.*s\n", doc->len, doc->buf); + } +} + +const char *get_ill_element (void *clientData, const char *element) +{ + return 0; +} + +static Z_External *create_external_itemRequest() +{ + struct ill_get_ctl ctl; + ILL_ItemRequest *req; + Z_External *r = 0; + int item_request_size = 0; + char *item_request_buf = 0; + + ctl.odr = out; + ctl.clientData = 0; + ctl.f = get_ill_element; + + req = ill_get_ItemRequest(&ctl, "ill", 0); + if (!req) + printf ("ill_get_ItemRequest failed\n"); + + if (!ill_ItemRequest (out, &req, 0, 0)) + { + if (apdu_file) + { + ill_ItemRequest(print, &req, 0, 0); + odr_reset(print); + } + item_request_buf = odr_getbuf (out, &item_request_size, 0); + if (item_request_buf) + odr_setbuf (out, item_request_buf, item_request_size, 1); + printf ("Couldn't encode ItemRequest, size %d\n", item_request_size); + return 0; + } + else + { + oident oid; + + item_request_buf = odr_getbuf (out, &item_request_size, 0); + oid.proto = PROTO_GENERAL; + oid.oclass = CLASS_GENERAL; + oid.value = VAL_ISO_ILL_1; + + r = (Z_External *) odr_malloc (out, sizeof(*r)); + r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid)); + r->indirect_reference = 0; + r->descriptor = 0; + r->which = Z_External_single; + + r->u.single_ASN1_type = (Odr_oct *) + odr_malloc (out, sizeof(*r->u.single_ASN1_type)); + r->u.single_ASN1_type->buf = (unsigned char *) + odr_malloc (out, item_request_size); + r->u.single_ASN1_type->len = item_request_size; + r->u.single_ASN1_type->size = item_request_size; + memcpy (r->u.single_ASN1_type->buf, item_request_buf, + item_request_size); + + do_hex_dump(item_request_buf,item_request_size); + } + return r; +} + +static Z_External *create_external_ILL_APDU(int which) +{ + struct ill_get_ctl ctl; + ILL_APDU *ill_apdu; + Z_External *r = 0; + int ill_request_size = 0; + char *ill_request_buf = 0; + + ctl.odr = out; + ctl.clientData = 0; + ctl.f = get_ill_element; + + ill_apdu = ill_get_APDU(&ctl, "ill", 0); + + if (!ill_APDU (out, &ill_apdu, 0, 0)) + { + if (apdu_file) + { + printf ("-------------------\n"); + ill_APDU(print, &ill_apdu, 0, 0); + odr_reset(print); + printf ("-------------------\n"); + } + ill_request_buf = odr_getbuf (out, &ill_request_size, 0); + if (ill_request_buf) + odr_setbuf (out, ill_request_buf, ill_request_size, 1); + printf ("Couldn't encode ILL-Request, size %d\n", ill_request_size); + return 0; + } + else + { + oident oid; + ill_request_buf = odr_getbuf (out, &ill_request_size, 0); + + oid.proto = PROTO_GENERAL; + oid.oclass = CLASS_GENERAL; + oid.value = VAL_ISO_ILL_1; + + r = (Z_External *) odr_malloc (out, sizeof(*r)); + r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid)); + r->indirect_reference = 0; + r->descriptor = 0; + r->which = Z_External_single; + + r->u.single_ASN1_type = (Odr_oct *) + odr_malloc (out, sizeof(*r->u.single_ASN1_type)); + r->u.single_ASN1_type->buf = (unsigned char *) + odr_malloc (out, ill_request_size); + r->u.single_ASN1_type->len = ill_request_size; + r->u.single_ASN1_type->size = ill_request_size; + memcpy (r->u.single_ASN1_type->buf, ill_request_buf, ill_request_size); +/* printf ("len = %d\n", ill_request_size); */ +/* do_hex_dump(ill_request_buf,ill_request_size); */ +/* printf("--- end of extenal\n"); */ + + } + return r; +} + + +static Z_External *create_ItemOrderExternal(const char *type, int itemno) +{ + Z_External *r = (Z_External *) odr_malloc(out, sizeof(Z_External)); + oident ItemOrderRequest; + + ItemOrderRequest.proto = PROTO_Z3950; + ItemOrderRequest.oclass = CLASS_EXTSERV; + ItemOrderRequest.value = VAL_ITEMORDER; + + r->direct_reference = odr_oiddup(out,oid_getoidbyent(&ItemOrderRequest)); + r->indirect_reference = 0; + r->descriptor = 0; + + r->which = Z_External_itemOrder; + + r->u.itemOrder = (Z_ItemOrder *) odr_malloc(out,sizeof(Z_ItemOrder)); + memset(r->u.itemOrder, 0, sizeof(Z_ItemOrder)); + r->u.itemOrder->which=Z_IOItemOrder_esRequest; + + r->u.itemOrder->u.esRequest = (Z_IORequest *) + odr_malloc(out,sizeof(Z_IORequest)); + memset(r->u.itemOrder->u.esRequest, 0, sizeof(Z_IORequest)); + + r->u.itemOrder->u.esRequest->toKeep = (Z_IOOriginPartToKeep *) + odr_malloc(out,sizeof(Z_IOOriginPartToKeep)); + memset(r->u.itemOrder->u.esRequest->toKeep, 0, sizeof(Z_IOOriginPartToKeep)); + r->u.itemOrder->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *) + odr_malloc(out,sizeof(Z_IOOriginPartNotToKeep)); + memset(r->u.itemOrder->u.esRequest->notToKeep, 0, sizeof(Z_IOOriginPartNotToKeep)); + + r->u.itemOrder->u.esRequest->toKeep->supplDescription = NULL; + r->u.itemOrder->u.esRequest->toKeep->contact = NULL; + r->u.itemOrder->u.esRequest->toKeep->addlBilling = NULL; + + r->u.itemOrder->u.esRequest->notToKeep->resultSetItem = + (Z_IOResultSetItem *) odr_malloc(out, sizeof(Z_IOResultSetItem)); + memset(r->u.itemOrder->u.esRequest->notToKeep->resultSetItem, 0, sizeof(Z_IOResultSetItem)); + r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->resultSetId = "1"; + + r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = + (int *) odr_malloc(out, sizeof(int)); + *r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = itemno; + + if (!strcmp (type, "item") || !strcmp(type, "2")) + { + printf ("using item-request\n"); + r->u.itemOrder->u.esRequest->notToKeep->itemRequest = + create_external_itemRequest(); + } + else if (!strcmp(type, "ill") || !strcmp(type, "1")) + { + printf ("using ILL-request\n"); + r->u.itemOrder->u.esRequest->notToKeep->itemRequest = + create_external_ILL_APDU(ILL_APDU_ILL_Request); + } + else if (!strcmp(type, "xml") || !strcmp(type, "3")) + { + const char *xml_buf = + "\n" + " request\n" + " 000200\n" + " 1212 \n" + ""; + r->u.itemOrder->u.esRequest->notToKeep->itemRequest = + z_ext_record (out, VAL_TEXT_XML, xml_buf, strlen(xml_buf)); + } + else + r->u.itemOrder->u.esRequest->notToKeep->itemRequest = 0; + + return r; +} + +static int send_itemorder(const char *type, int itemno) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + oident ItemOrderRequest; + + ItemOrderRequest.proto = PROTO_Z3950; + ItemOrderRequest.oclass = CLASS_EXTSERV; + ItemOrderRequest.value = VAL_ITEMORDER; + req->packageType = odr_oiddup(out,oid_getoidbyent(&ItemOrderRequest)); + req->packageName = esPackageName; + + req->taskSpecificParameters = create_ItemOrderExternal(type, itemno); + + send_apdu(apdu); + return 0; +} + +static int only_z3950() +{ + if (!conn) + { + printf ("Not connected yet\n"); + return 1; + } + if (protocol == PROTO_HTTP) + { + printf ("Not supported by SRW\n"); + return 1; + } + return 0; +} + +static int cmd_update_common(const char *arg, int version); + +static int cmd_update(const char *arg) +{ + return cmd_update_common(arg, 1); +} + +static int cmd_update0(const char *arg) +{ + return cmd_update_common(arg, 0); +} + +static int cmd_update_common(const char *arg, int version) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + Z_External *r; + char action[20], recid[20]; + char *rec_buf; + int rec_len; + int action_no; + int noread = 0; + Z_External *record_this = 0; + + if (only_z3950()) + return 1; + *action = 0; + *recid = 0; + sscanf (arg, "%19s %19s%n", action, recid, &noread); + if (noread == 0) + { + printf("Update must be followed by action and recid\n"); + printf(" where action is one of insert,replace,delete.update\n"); + printf(" recid is some record ID (any string)\n"); + return 0; + } + + if (!strcmp (action, "insert")) + action_no = Z_IUOriginPartToKeep_recordInsert; + else if (!strcmp (action, "replace")) + action_no = Z_IUOriginPartToKeep_recordReplace; + else if (!strcmp (action, "delete")) + action_no = Z_IUOriginPartToKeep_recordDelete; + else if (!strcmp (action, "update")) + action_no = Z_IUOriginPartToKeep_specialUpdate; + else + { + printf ("Bad action: %s\n", action); + printf ("Possible values: insert, replace, delete, update\n"); + return 0; + } + + arg += noread; + if (parse_cmd_doc(&arg, out, &rec_buf, &rec_len, 1) == 0) + return 0; + + if (rec_buf) + record_this = z_ext_record (out, VAL_TEXT_XML, rec_buf, rec_len); + else + { + if (!record_last) + { + printf ("No last record (update ignored)\n"); + return 0; + } + record_this = record_last; + } + + req->packageType = + yaz_oidval_to_z3950oid(out, CLASS_EXTSERV, + version == 0 ? VAL_DBUPDATE0 : VAL_DBUPDATE); + + req->packageName = esPackageName; + + req->referenceId = set_refid (out); + + r = req->taskSpecificParameters = (Z_External *) + odr_malloc (out, sizeof(*r)); + r->direct_reference = req->packageType; + r->indirect_reference = 0; + r->descriptor = 0; + if (version == 0) + { + Z_IU0OriginPartToKeep *toKeep; + Z_IU0SuppliedRecords *notToKeep; + + r->which = Z_External_update0; + r->u.update0 = (Z_IU0Update *) odr_malloc(out, sizeof(*r->u.update0)); + r->u.update0->which = Z_IUUpdate_esRequest; + r->u.update0->u.esRequest = (Z_IU0UpdateEsRequest *) + odr_malloc(out, sizeof(*r->u.update0->u.esRequest)); + toKeep = r->u.update0->u.esRequest->toKeep = (Z_IU0OriginPartToKeep *) + odr_malloc(out, sizeof(*r->u.update0->u.esRequest->toKeep)); + + toKeep->databaseName = databaseNames[0]; + toKeep->schema = 0; + toKeep->elementSetName = 0; + + toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action)); + *toKeep->action = action_no; + + notToKeep = r->u.update0->u.esRequest->notToKeep = (Z_IU0SuppliedRecords *) + odr_malloc(out, sizeof(*r->u.update0->u.esRequest->notToKeep)); + notToKeep->num = 1; + notToKeep->elements = (Z_IU0SuppliedRecords_elem **) + odr_malloc(out, sizeof(*notToKeep->elements)); + notToKeep->elements[0] = (Z_IU0SuppliedRecords_elem *) + odr_malloc(out, sizeof(**notToKeep->elements)); + notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; + if (*recid) + { + notToKeep->elements[0]->u.opaque = (Odr_oct *) + odr_malloc (out, sizeof(Odr_oct)); + notToKeep->elements[0]->u.opaque->buf = (unsigned char *) recid; + notToKeep->elements[0]->u.opaque->size = strlen(recid); + notToKeep->elements[0]->u.opaque->len = strlen(recid); + } + else + notToKeep->elements[0]->u.opaque = 0; + notToKeep->elements[0]->supplementalId = 0; + notToKeep->elements[0]->correlationInfo = 0; + notToKeep->elements[0]->record = record_this; + } + else + { + Z_IUOriginPartToKeep *toKeep; + Z_IUSuppliedRecords *notToKeep; + + r->which = Z_External_update; + r->u.update = (Z_IUUpdate *) odr_malloc(out, sizeof(*r->u.update)); + r->u.update->which = Z_IUUpdate_esRequest; + r->u.update->u.esRequest = (Z_IUUpdateEsRequest *) + odr_malloc(out, sizeof(*r->u.update->u.esRequest)); + toKeep = r->u.update->u.esRequest->toKeep = (Z_IUOriginPartToKeep *) + odr_malloc(out, sizeof(*r->u.update->u.esRequest->toKeep)); + + toKeep->databaseName = databaseNames[0]; + toKeep->schema = 0; + toKeep->elementSetName = 0; + toKeep->actionQualifier = 0; + toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action)); + *toKeep->action = action_no; + + notToKeep = r->u.update->u.esRequest->notToKeep = (Z_IUSuppliedRecords *) + odr_malloc(out, sizeof(*r->u.update->u.esRequest->notToKeep)); + notToKeep->num = 1; + notToKeep->elements = (Z_IUSuppliedRecords_elem **) + odr_malloc(out, sizeof(*notToKeep->elements)); + notToKeep->elements[0] = (Z_IUSuppliedRecords_elem *) + odr_malloc(out, sizeof(**notToKeep->elements)); + notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; + if (*recid) + { + notToKeep->elements[0]->u.opaque = (Odr_oct *) + odr_malloc (out, sizeof(Odr_oct)); + notToKeep->elements[0]->u.opaque->buf = (unsigned char *) recid; + notToKeep->elements[0]->u.opaque->size = strlen(recid); + notToKeep->elements[0]->u.opaque->len = strlen(recid); + } + else + notToKeep->elements[0]->u.opaque = 0; + notToKeep->elements[0]->supplementalId = 0; + notToKeep->elements[0]->correlationInfo = 0; + notToKeep->elements[0]->record = record_this; + } + + send_apdu(apdu); + + return 2; +} + +static int cmd_xmles(const char *arg) +{ + if (only_z3950()) + return 1; + else + { + int noread = 0; + char oid_str[51]; + int oid_value_xmles = VAL_XMLES; + Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + + Z_External *ext = (Z_External *) odr_malloc(out, sizeof(*ext)); + + req->taskSpecificParameters = ext; + ext->indirect_reference = 0; + ext->descriptor = 0; + ext->which = Z_External_octet; + ext->u.single_ASN1_type = (Odr_oct *) odr_malloc (out, sizeof(Odr_oct)); + sscanf(arg, "%50s%n", oid_str, &noread); + if (noread == 0) + { + printf("Missing OID for xmles\n"); + return 0; + } + arg += noread; + oid_value_xmles = oid_getvalbyname(oid_str); + if (oid_value_xmles == VAL_NONE) + { + printf("Bad OID: %s\n", oid_str); + return 0; + } + + if (parse_cmd_doc(&arg, out, (char **) &ext->u.single_ASN1_type->buf, + &ext->u.single_ASN1_type->len, 0) == 0) + return 0; + req->packageType = yaz_oidval_to_z3950oid(out, CLASS_EXTSERV, + oid_value_xmles); + + ext->direct_reference = yaz_oidval_to_z3950oid(out, CLASS_EXTSERV, + oid_value_xmles); + send_apdu(apdu); + + return 2; + } +} + +static int cmd_itemorder(const char *arg) +{ + char type[12]; + int itemno; + + if (only_z3950()) + return 1; + if (sscanf (arg, "%10s %d", type, &itemno) != 2) + return 0; + + printf("Item order request\n"); + fflush(stdout); + send_itemorder(type, itemno); + return 2; +} + +static void show_opt(const char *arg, void *clientData) +{ + printf ("%s ", arg); +} + +static int cmd_zversion(const char *arg) +{ + if (*arg && arg) + z3950_version = atoi(arg); + else + printf ("version is %d\n", z3950_version); + return 0; +} + +static int cmd_options(const char *arg) +{ + if (*arg) + { + int r; + int pos; + r = yaz_init_opt_encode(&z3950_options, arg, &pos); + if (r == -1) + printf("Unknown option(s) near %s\n", arg+pos); + } + else + { + yaz_init_opt_decode(&z3950_options, show_opt, 0); + printf ("\n"); + } + return 0; +} + +static int cmd_explain(const char *arg) +{ + if (protocol != PROTO_HTTP) + return 0; +#if YAZ_HAVE_XML2 + if (!conn) + cmd_open(0); + if (conn) + { + Z_SRW_PDU *sr = 0; + + setno = 1; + + /* save this for later .. when fetching individual records */ + sr = yaz_srw_get(out, Z_SRW_explain_request); + if (recordsyntax_size > 0 && recordsyntax_list[0] == VAL_TEXT_XML) + sr->u.explain_request->recordPacking = "xml"; + send_srw(sr); + return 2; + } +#endif + return 0; +} + +static int cmd_init(const char *arg) +{ + if (*arg) + { + strncpy (cur_host, arg, sizeof(cur_host)-1); + cur_host[sizeof(cur_host)-1] = 0; + } + if (only_z3950()) + return 1; + send_initRequest(cur_host); + return 2; +} + +static int cmd_sru(const char *arg) +{ + if (!*arg) + { + printf("SRU method is: %s\n", sru_method); + } + else + { + if (!yaz_matchstr(arg, "post")) + sru_method = "post"; + else if (!yaz_matchstr(arg, "get")) + sru_method = "get"; + else if (!yaz_matchstr(arg, "soap")) + sru_method = "soap"; + else + { + printf("Unknown SRU method: %s\n", arg); + printf("Specify one of POST, GET, SOAP\n"); + } + } + return 0; +} + +static int cmd_find(const char *arg) +{ + if (!*arg) + { + printf("Find what?\n"); + return 0; + } + if (protocol == PROTO_HTTP) + { +#if YAZ_HAVE_XML2 + if (!conn) + cmd_open(0); + if (!conn) + return 0; + if (!send_SRW_searchRequest(arg)) + return 0; +#else + return 0; +#endif + } + else + { + if (!conn) + { + try_reconnect(); + + if (!conn) { + printf("Not connected yet\n"); + return 0; + } + } + if (!send_searchRequest(arg)) + return 0; + } + return 2; +} + +static int cmd_delete(const char *arg) +{ + if (only_z3950()) + return 0; + if (!send_deleteResultSetRequest(arg)) + return 0; + return 2; +} + +static int cmd_ssub(const char *arg) +{ + if (!(smallSetUpperBound = atoi(arg))) + return 0; + return 1; +} + +static int cmd_lslb(const char *arg) +{ + if (!(largeSetLowerBound = atoi(arg))) + return 0; + return 1; +} + +static int cmd_mspn(const char *arg) +{ + if (!(mediumSetPresentNumber = atoi(arg))) + return 0; + return 1; +} + +static int cmd_status(const char *arg) +{ + printf("smallSetUpperBound: %d\n", smallSetUpperBound); + printf("largeSetLowerBound: %d\n", largeSetLowerBound); + printf("mediumSetPresentNumber: %d\n", mediumSetPresentNumber); + return 1; +} + +static int cmd_setnames(const char *arg) +{ + if (*arg == '1') /* enable ? */ + setnumber = 0; + else if (*arg == '0') /* disable ? */ + setnumber = -1; + else if (setnumber < 0) /* no args, toggle .. */ + setnumber = 0; + else + setnumber = -1; + + if (setnumber >= 0) + printf("Set numbering enabled.\n"); + else + printf("Set numbering disabled.\n"); + return 1; +} + +/* PRESENT SERVICE ----------------------------- */ + +static void parse_show_args(const char *arg_c, char *setstring, + int *start, int *number) +{ + char arg[40]; + char *p; + + strncpy(arg, arg_c, sizeof(arg)-1); + arg[sizeof(arg)-1] = '\0'; + + if ((p = strchr(arg, '+'))) + { + *number = atoi(p + 1); + *p = '\0'; + } + if (*arg) + { + if (!strcmp(arg, "all")) + { + *number = last_hit_count; + *start = 1; + } + else + *start = atoi(arg); + } + if (p && (p=strchr(p+1, '+'))) + strcpy (setstring, p+1); + else if (setnumber >= 0) + sprintf(setstring, "%d", setnumber); + else + *setstring = '\0'; +} + +static int send_presentRequest(const char *arg) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_presentRequest); + Z_PresentRequest *req = apdu->u.presentRequest; + Z_RecordComposition compo; + int nos = 1; + char setstring[100]; + + req->referenceId = set_refid (out); + + parse_show_args(arg, setstring, &setno, &nos); + if (*setstring) + req->resultSetId = setstring; + + req->resultSetStartPoint = &setno; + req->numberOfRecordsRequested = &nos; + + if (recordsyntax_size == 1) + req->preferredRecordSyntax = + yaz_oidval_to_z3950oid(out, CLASS_RECSYN, recordsyntax_list[0]); + + if (record_schema || recordsyntax_size >= 2) + { + req->recordComposition = &compo; + compo.which = Z_RecordComp_complex; + compo.u.complex = (Z_CompSpec *) + odr_malloc(out, sizeof(*compo.u.complex)); + compo.u.complex->selectAlternativeSyntax = (bool_t *) + odr_malloc(out, sizeof(bool_t)); + *compo.u.complex->selectAlternativeSyntax = 0; + + compo.u.complex->generic = (Z_Specification *) + odr_malloc(out, sizeof(*compo.u.complex->generic)); + + compo.u.complex->generic->which = Z_Schema_oid; + if (!record_schema) + compo.u.complex->generic->schema.oid = 0; + else + { + compo.u.complex->generic->schema.oid = + yaz_str_to_z3950oid(out, CLASS_SCHEMA, record_schema); + + if (!compo.u.complex->generic->schema.oid) + { + /* OID wasn't a schema! Try record syntax instead. */ + compo.u.complex->generic->schema.oid = (Odr_oid *) + yaz_str_to_z3950oid(out, CLASS_RECSYN, record_schema); + } + } + if (!elementSetNames) + compo.u.complex->generic->elementSpec = 0; + else + { + compo.u.complex->generic->elementSpec = (Z_ElementSpec *) + odr_malloc(out, sizeof(Z_ElementSpec)); + compo.u.complex->generic->elementSpec->which = + Z_ElementSpec_elementSetName; + compo.u.complex->generic->elementSpec->u.elementSetName = + elementSetNames->u.generic; + } + compo.u.complex->num_dbSpecific = 0; + compo.u.complex->dbSpecific = 0; + if (recordsyntax_size >= 2) + { + int i; + compo.u.complex->num_recordSyntax = recordsyntax_size; + compo.u.complex->recordSyntax = (Odr_oid **) + odr_malloc(out, recordsyntax_size * sizeof(Odr_oid*)); + for (i = 0; i < recordsyntax_size; i++) + compo.u.complex->recordSyntax[i] = + yaz_oidval_to_z3950oid(out, CLASS_RECSYN, + recordsyntax_list[i]); + } + else + { + compo.u.complex->num_recordSyntax = 0; + compo.u.complex->recordSyntax = 0; + } + } + else if (elementSetNames) + { + req->recordComposition = &compo; + compo.which = Z_RecordComp_simple; + compo.u.simple = elementSetNames; + } + send_apdu(apdu); + printf("Sent presentRequest (%d+%d).\n", setno, nos); + return 2; +} + +#if YAZ_HAVE_XML2 +static int send_SRW_presentRequest(const char *arg) +{ + char setstring[100]; + int nos = 1; + Z_SRW_PDU *sr = srw_sr; + + if (!sr) + return 0; + parse_show_args(arg, setstring, &setno, &nos); + sr->u.request->startRecord = odr_intdup(out, setno); + sr->u.request->maximumRecords = odr_intdup(out, nos); + if (record_schema) + sr->u.request->recordSchema = record_schema; + if (recordsyntax_size == 1 && recordsyntax_list[0] == VAL_TEXT_XML) + sr->u.request->recordPacking = "xml"; + return send_srw(sr); +} +#endif + +static void close_session (void) +{ + if (conn) + cs_close (conn); + conn = 0; + sent_close = 0; + odr_reset(out); + odr_reset(in); + odr_reset(print); + last_hit_count = 0; +} + +void process_close(Z_Close *req) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_close); + Z_Close *res = apdu->u.close; + + static char *reasons[] = + { + "finished", + "shutdown", + "system problem", + "cost limit reached", + "resources", + "security violation", + "protocolError", + "lack of activity", + "peer abort", + "unspecified" + }; + + printf("Reason: %s, message: %s\n", reasons[*req->closeReason], + req->diagnosticInformation ? req->diagnosticInformation : "NULL"); + if (sent_close) + close_session (); + else + { + *res->closeReason = Z_Close_finished; + send_apdu(apdu); + printf("Sent response.\n"); + sent_close = 1; + } +} + +static int cmd_show(const char *arg) +{ + if (protocol == PROTO_HTTP) + { +#if YAZ_HAVE_XML2 + if (!conn) + cmd_open(0); + if (!conn) + return 0; + if (!send_SRW_presentRequest(arg)) + return 0; +#else + return 0; +#endif + } + else + { + if (!conn) + { + printf("Not connected yet\n"); + return 0; + } + if (!send_presentRequest(arg)) + return 0; + } + return 2; +} + +int cmd_quit(const char *arg) +{ + printf("See you later, alligator.\n"); + xmalloc_trav (""); + exit(0); + return 0; +} + +int cmd_cancel(const char *arg) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_triggerResourceControlRequest); + Z_TriggerResourceControlRequest *req = + apdu->u.triggerResourceControlRequest; + bool_t rfalse = 0; + char command[16]; + + *command = '\0'; + sscanf(arg, "%15s", command); + + if (only_z3950()) + return 0; + if (session_initResponse && + !ODR_MASK_GET(session_initResponse->options, + Z_Options_triggerResourceCtrl)) + { + printf("Target doesn't support cancel (trigger resource ctrl)\n"); + return 0; + } + *req->requestedAction = Z_TriggerResourceControlRequest_cancel; + req->resultSetWanted = &rfalse; + req->referenceId = set_refid (out); + + send_apdu(apdu); + printf("Sent cancel request\n"); + if (!strcmp(command, "wait")) + return 2; + return 1; +} + + +int cmd_cancel_find(const char *arg) { + int fres; + fres=cmd_find(arg); + if( fres > 0 ) { + return cmd_cancel(""); + }; + return fres; +} + +int send_scanrequest(const char *query, int pp, int num, const char *term) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_scanRequest); + Z_ScanRequest *req = apdu->u.scanRequest; + + if (only_z3950()) + return 0; + if (queryType == QueryType_CCL2RPN) + { + int error, pos; + struct ccl_rpn_node *rpn; + + rpn = ccl_find_str (bibset, query, &error, &pos); + if (error) + { + printf("CCL ERROR: %s\n", ccl_err_msg(error)); + return -1; + } + req->attributeSet = + yaz_oidval_to_z3950oid(out, CLASS_ATTSET, VAL_BIB1); + if (!(req->termListAndStartPoint = ccl_scan_query (out, rpn))) + { + printf("Couldn't convert CCL to Scan term\n"); + return -1; + } + ccl_rpn_delete (rpn); + } + else + { + YAZ_PQF_Parser pqf_parser = yaz_pqf_create (); + + if (!(req->termListAndStartPoint = + yaz_pqf_scan(pqf_parser, out, &req->attributeSet, query))) + { + const char *pqf_msg; + size_t off; + int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); + int ioff = off; + printf("%*s^\n", ioff+7, ""); + printf("Prefix query error: %s (code %d)\n", pqf_msg, code); + yaz_pqf_destroy (pqf_parser); + return -1; + } + yaz_pqf_destroy (pqf_parser); + } + if (term && *term) + { + if (req->termListAndStartPoint->term && + req->termListAndStartPoint->term->which == Z_Term_general && + req->termListAndStartPoint->term->u.general) + { + req->termListAndStartPoint->term->u.general->buf = + (unsigned char *) odr_strdup(out, term); + req->termListAndStartPoint->term->u.general->len = + req->termListAndStartPoint->term->u.general->size = + strlen(term); + } + } + req->referenceId = set_refid (out); + req->num_databaseNames = num_databaseNames; + req->databaseNames = databaseNames; + req->numberOfTermsRequested = # + req->preferredPositionInResponse = &pp; + req->stepSize = odr_intdup(out, scan_stepSize); + send_apdu(apdu); + return 2; +} + +int send_sortrequest(const char *arg, int newset) +{ + Z_APDU *apdu = zget_APDU(out, Z_APDU_sortRequest); + Z_SortRequest *req = apdu->u.sortRequest; + Z_SortKeySpecList *sksl = (Z_SortKeySpecList *) + odr_malloc (out, sizeof(*sksl)); + char setstring[32]; + + if (only_z3950()) + return 0; + if (setnumber >= 0) + sprintf (setstring, "%d", setnumber); + else + sprintf (setstring, "default"); + + req->referenceId = set_refid (out); + + req->num_inputResultSetNames = 1; + req->inputResultSetNames = (Z_InternationalString **) + odr_malloc (out, sizeof(*req->inputResultSetNames)); + req->inputResultSetNames[0] = odr_strdup (out, setstring); + + if (newset && setnumber >= 0) + sprintf (setstring, "%d", ++setnumber); + + req->sortedResultSetName = odr_strdup (out, setstring); + + req->sortSequence = yaz_sort_spec (out, arg); + if (!req->sortSequence) + { + printf ("Missing sort specifications\n"); + return -1; + } + send_apdu(apdu); + return 2; +} + +void display_term(Z_TermInfo *t) +{ + if (t->displayTerm) + printf("%s", t->displayTerm); + else if (t->term->which == Z_Term_general) + { + printf("%.*s", t->term->u.general->len, t->term->u.general->buf); + sprintf(last_scan_line, "%.*s", t->term->u.general->len, + t->term->u.general->buf); + } + else + printf("Term (not general)"); + if (t->globalOccurrences) + printf (" (%d)\n", *t->globalOccurrences); + else + printf ("\n"); +} + +void process_scanResponse(Z_ScanResponse *res) +{ + int i; + Z_Entry **entries = NULL; + int num_entries = 0; + + printf("Received ScanResponse\n"); + print_refid (res->referenceId); + printf("%d entries", *res->numberOfEntriesReturned); + if (res->positionOfTerm) + printf (", position=%d", *res->positionOfTerm); + printf ("\n"); + if (*res->scanStatus != Z_Scan_success) + printf("Scan returned code %d\n", *res->scanStatus); + if (!res->entries) + return; + if ((entries = res->entries->entries)) + num_entries = res->entries->num_entries; + for (i = 0; i < num_entries; i++) + { + int pos_term = res->positionOfTerm ? *res->positionOfTerm : -1; + if (entries[i]->which == Z_Entry_termInfo) + { + printf("%c ", i + 1 == pos_term ? '*' : ' '); + display_term(entries[i]->u.termInfo); + } + else + display_diagrecs(&entries[i]->u.surrogateDiagnostic, 1); + } + if (res->entries->nonsurrogateDiagnostics) + display_diagrecs (res->entries->nonsurrogateDiagnostics, + res->entries->num_nonsurrogateDiagnostics); +} + +void process_sortResponse(Z_SortResponse *res) +{ + printf("Received SortResponse: status="); + switch (*res->sortStatus) + { + case Z_SortResponse_success: + printf ("success"); break; + case Z_SortResponse_partial_1: + printf ("partial"); break; + case Z_SortResponse_failure: + printf ("failure"); break; + default: + printf ("unknown (%d)", *res->sortStatus); + } + printf ("\n"); + print_refid (res->referenceId); + if (res->diagnostics) + display_diagrecs(res->diagnostics, + res->num_diagnostics); +} + +void process_deleteResultSetResponse (Z_DeleteResultSetResponse *res) +{ + printf("Got deleteResultSetResponse status=%d\n", + *res->deleteOperationStatus); + if (res->deleteListStatuses) + { + int i; + for (i = 0; i < res->deleteListStatuses->num; i++) + { + printf ("%s status=%d\n", res->deleteListStatuses->elements[i]->id, + *res->deleteListStatuses->elements[i]->status); + } + } +} + +int cmd_sort_generic(const char *arg, int newset) +{ + if (only_z3950()) + return 0; + if (session_initResponse && + !ODR_MASK_GET(session_initResponse->options, Z_Options_sort)) + { + printf("Target doesn't support sort\n"); + return 0; + } + if (*arg) + { + if (send_sortrequest(arg, newset) < 0) + return 0; + return 2; + } + return 0; +} + +int cmd_sort(const char *arg) +{ + return cmd_sort_generic (arg, 0); +} + +int cmd_sort_newset (const char *arg) +{ + return cmd_sort_generic (arg, 1); +} + +int cmd_scanstep(const char *arg) +{ + scan_stepSize = atoi(arg); + return 0; +} + +int cmd_scanpos(const char *arg) +{ + int r = sscanf(arg, "%d", &scan_position); + if (r == 0) + scan_position = 1; + return 0; +} + +int cmd_scansize(const char *arg) +{ + int r = sscanf(arg, "%d", &scan_size); + if (r == 0) + scan_size = 20; + return 0; +} + +int cmd_scan(const char *arg) +{ + if (protocol == PROTO_HTTP) + { +#if YAZ_HAVE_XML2 + if (!conn) + cmd_open(0); + if (!conn) + return 0; + if (*arg) + { + if (send_SRW_scanRequest(arg, scan_position, scan_size) < 0) + return 0; + } + else + { + if (send_SRW_scanRequest(last_scan_line, 1, scan_size) < 0) + return 0; + } + return 2; +#else + return 0; +#endif + } + else + { + if (!conn) + { + try_reconnect(); + + if (!conn) { + printf("Session not initialized yet\n"); + return 0; + } + } + if (session_initResponse && + !ODR_MASK_GET(session_initResponse->options, Z_Options_scan)) + { + printf("Target doesn't support scan\n"); + return 0; + } + if (*arg) + { + strcpy (last_scan_query, arg); + if (send_scanrequest(arg, scan_position, scan_size, 0) < 0) + return 0; + } + else + { + if (send_scanrequest(last_scan_query, 1, scan_size, last_scan_line) < 0) + return 0; + } + return 2; + } +} + +int cmd_schema(const char *arg) +{ + xfree(record_schema); + record_schema = 0; + if (arg && *arg) + record_schema = xstrdup(arg); + return 1; +} + +int cmd_format(const char *arg) +{ + const char *cp = arg; + int nor; + int idx = 0; + oid_value nsyntax[RECORDSYNTAX_MAX]; + char form_str[41]; + if (!arg || !*arg) + { + printf("Usage: format \n"); + return 0; + } + while (sscanf(cp, "%40s%n", form_str, &nor) >= 1 && nor > 0 + && idx < RECORDSYNTAX_MAX) + { + nsyntax[idx] = oid_getvalbyname(form_str); + if (!strcmp(form_str, "none")) + break; + if (nsyntax[idx] == VAL_NONE) + { + printf ("unknown record syntax: %s\n", form_str); + return 0; + } + cp += nor; + idx++; + } + recordsyntax_size = idx; + memcpy(recordsyntax_list, nsyntax, idx * sizeof(*nsyntax)); + return 1; +} + +int cmd_elements(const char *arg) +{ + static Z_ElementSetNames esn; + static char what[100]; + + if (!arg || !*arg) + { + elementSetNames = 0; + return 1; + } + strcpy(what, arg); + esn.which = Z_ElementSetNames_generic; + esn.u.generic = what; + elementSetNames = &esn; + return 1; +} + +int cmd_attributeset(const char *arg) +{ + char what[100]; + + if (!arg || !*arg) + { + printf("Usage: attributeset \n"); + return 0; + } + sscanf(arg, "%s", what); + if (p_query_attset (what)) + { + printf("Unknown attribute set name\n"); + return 0; + } + return 1; +} + +int cmd_querytype (const char *arg) +{ + if (!strcmp (arg, "ccl")) + queryType = QueryType_CCL; + else if (!strcmp (arg, "prefix") || !strcmp(arg, "rpn")) + queryType = QueryType_Prefix; + else if (!strcmp (arg, "ccl2rpn") || !strcmp (arg, "cclrpn")) + queryType = QueryType_CCL2RPN; + else if (!strcmp(arg, "cql")) + queryType = QueryType_CQL; + else if (!strcmp (arg, "cql2rpn") || !strcmp (arg, "cqlrpn")) + queryType = QueryType_CQL2RPN; + else + { + printf ("Querytype must be one of:\n"); + printf (" prefix - Prefix query\n"); + printf (" ccl - CCL query\n"); + printf (" ccl2rpn - CCL query converted to RPN\n"); + printf (" cql - CQL\n"); + printf (" cql2rpn - CQL query converted to RPN\n"); + return 0; + } + return 1; +} + +int cmd_refid (const char *arg) +{ + xfree (refid); + refid = NULL; + if (*arg) + refid = xstrdup (arg); + return 1; +} + +int cmd_close(const char *arg) +{ + Z_APDU *apdu; + Z_Close *req; + if (only_z3950()) + return 0; + apdu = zget_APDU(out, Z_APDU_close); + req = apdu->u.close; + *req->closeReason = Z_Close_finished; + send_apdu(apdu); + printf("Sent close request.\n"); + sent_close = 1; + return 2; +} + +int cmd_packagename(const char* arg) +{ + xfree (esPackageName); + esPackageName = NULL; + if (*arg) + esPackageName = xstrdup(arg); + return 1; +} + +int cmd_proxy(const char* arg) +{ + xfree(yazProxy); + yazProxy = 0; + if (*arg) + yazProxy = xstrdup (arg); + return 1; +} + +int cmd_marccharset(const char *arg) +{ + char l1[30]; + + *l1 = 0; + if (sscanf(arg, "%29s", l1) < 1) + { + printf("MARC character set is `%s'\n", + marcCharset ? marcCharset: "none"); + return 1; + } + xfree (marcCharset); + marcCharset = 0; + if (strcmp(l1, "-")) + marcCharset = xstrdup(l1); + return 1; +} + +int cmd_displaycharset(const char *arg) +{ + char l1[30]; + + *l1 = 0; + if (sscanf(arg, "%29s", l1) < 1) + { + printf("Display character set is `%s'\n", + outputCharset ? outputCharset: "none"); + } + else + { + xfree (outputCharset); + outputCharset = 0; + if (!strcmp(l1, "auto") && codeset) + { + if (codeset) + { + printf ("Display character set: %s\n", codeset); + outputCharset = xstrdup(codeset); + } + else + printf ("No codeset found on this system\n"); + } + else if (strcmp(l1, "-") && strcmp(l1, "none")) + outputCharset = xstrdup(l1); + } + return 1; +} + +int cmd_negcharset(const char *arg) +{ + char l1[30]; + + *l1 = 0; + if (sscanf(arg, "%29s %d %d", l1, &negotiationCharsetRecords, + &negotiationCharsetVersion) < 1) + { + printf("Current negotiation character set is `%s'\n", + negotiationCharset ? negotiationCharset: "none"); + printf("Records in charset %s\n", negotiationCharsetRecords ? + "yes" : "no"); + printf("Charneg version %d\n", negotiationCharsetVersion); + } + else + { + xfree (negotiationCharset); + negotiationCharset = NULL; + if (*l1 && strcmp(l1, "-") && strcmp(l1, "none")) + { + negotiationCharset = xstrdup(l1); + printf ("Character set negotiation : %s\n", negotiationCharset); + } + } + return 1; +} + +int cmd_charset(const char* arg) +{ + char l1[30], l2[30], l3[30]; + + *l1 = *l2 = *l3 = 0; + if (sscanf(arg, "%29s %29s %29s", l1, l2, l3) < 1) + { + cmd_negcharset(""); + cmd_displaycharset(""); + cmd_marccharset(""); + } + else + { + cmd_negcharset(l1); + if (*l2) + cmd_displaycharset(l2); + if (*l3) + cmd_marccharset(l3); + } + return 1; +} + +int cmd_lang(const char* arg) +{ + if (*arg == '\0') { + printf("Current language is `%s'\n", (yazLang)?yazLang:NULL); + return 1; + } + xfree (yazLang); + yazLang = NULL; + if (*arg) + yazLang = xstrdup(arg); + return 1; +} + +int cmd_source(const char* arg, int echo ) +{ + /* first should open the file and read one line at a time.. */ + FILE* includeFile; + char line[102400], *cp; + + if(strlen(arg)<1) { + fprintf(stderr,"Error in source command use a filename\n"); + return -1; + } + + includeFile = fopen (arg, "r"); + + if(!includeFile) { + fprintf(stderr,"Unable to open file %s for reading\n",arg); + return -1; + } + + while(!feof(includeFile)) { + memset(line,0,sizeof(line)); + fgets(line,sizeof(line),includeFile); + + if(strlen(line) < 2) continue; + if(line[0] == '#') continue; + + if ((cp = strrchr (line, '\n'))) + *cp = '\0'; + + if( echo ) { + printf( "processing line: %s\n",line ); + }; + process_cmd_line(line); + } + + if(fclose(includeFile)<0) { + perror("unable to close include file"); + exit(1); + } + return 1; +} + +int cmd_source_echo(const char* arg) +{ + cmd_source(arg, 1); + return 1; +} + +int cmd_source_noecho(const char* arg) +{ + cmd_source(arg, 0); + return 1; +} + + +int cmd_subshell(const char* args) +{ + if(strlen(args)) + system(args); + else + system(getenv("SHELL")); + + printf("\n"); + return 1; +} + +int cmd_set_berfile(const char *arg) +{ + if (ber_file && ber_file != stdout && ber_file != stderr) + fclose(ber_file); + if (!strcmp(arg, "")) + ber_file = 0; + else if (!strcmp(arg, "-")) + ber_file = stdout; + else + ber_file = fopen(arg, "a"); + return 1; +} + +int cmd_set_apdufile(const char *arg) +{ + if(apdu_file && apdu_file != stderr && apdu_file != stderr) + fclose(apdu_file); + if (!strcmp(arg, "")) + apdu_file = 0; + else if (!strcmp(arg, "-")) + apdu_file = stderr; + else + { + apdu_file = fopen(arg, "a"); + if (!apdu_file) + perror("unable to open apdu log file"); + } + if (apdu_file) + odr_setprint(print, apdu_file); + return 1; +} + +int cmd_set_cclfile(const char* arg) +{ + FILE *inf; + + bibset = ccl_qual_mk (); + inf = fopen (arg, "r"); + if (!inf) + perror("unable to open CCL file"); + else + { + ccl_qual_file (bibset, inf); + fclose (inf); + } + strcpy(ccl_fields,arg); + return 0; +} + +int cmd_set_cqlfile(const char* arg) +{ + cql_transform_t newcqltrans; + + if ((newcqltrans = cql_transform_open_fname(arg)) == 0) { + perror("unable to open CQL file"); + return 0; + } + if (cqltrans != 0) + cql_transform_close(cqltrans); + + cqltrans = newcqltrans; + strcpy(cql_fields, arg); + return 0; +} + +int cmd_set_auto_reconnect(const char* arg) +{ + if(strlen(arg)==0) { + auto_reconnect = ! auto_reconnect; + } else if(strcmp(arg,"on")==0) { + auto_reconnect = 1; + } else if(strcmp(arg,"off")==0) { + auto_reconnect = 0; + } else { + printf("Error use on or off\n"); + return 1; + } + + if (auto_reconnect) + printf("Set auto reconnect enabled.\n"); + else + printf("Set auto reconnect disabled.\n"); + + return 0; +} + + +int cmd_set_auto_wait(const char* arg) +{ + if(strlen(arg)==0) { + auto_wait = ! auto_wait; + } else if(strcmp(arg,"on")==0) { + auto_wait = 1; + } else if(strcmp(arg,"off")==0) { + auto_wait = 0; + } else { + printf("Error use on or off\n"); + return 1; + } + + if (auto_wait) + printf("Set auto wait enabled.\n"); + else + printf("Set auto wait disabled.\n"); + + return 0; +} + +int cmd_set_marcdump(const char* arg) +{ + if(marc_file && marc_file != stderr) { /* don't close stdout*/ + fclose(marc_file); + } + + if (!strcmp(arg, "")) + marc_file = 0; + else if (!strcmp(arg, "-")) + marc_file = stderr; + else + { + marc_file = fopen(arg, "a"); + if (!marc_file) + perror("unable to open marc log file"); + } + return 1; +} + +/* + this command takes 3 arge {name class oid} +*/ +int cmd_register_oid(const char* args) { + static struct { + char* className; + oid_class oclass; + } oid_classes[] = { + {"appctx",CLASS_APPCTX}, + {"absyn",CLASS_ABSYN}, + {"attset",CLASS_ATTSET}, + {"transyn",CLASS_TRANSYN}, + {"diagset",CLASS_DIAGSET}, + {"recsyn",CLASS_RECSYN}, + {"resform",CLASS_RESFORM}, + {"accform",CLASS_ACCFORM}, + {"extserv",CLASS_EXTSERV}, + {"userinfo",CLASS_USERINFO}, + {"elemspec",CLASS_ELEMSPEC}, + {"varset",CLASS_VARSET}, + {"schema",CLASS_SCHEMA}, + {"tagset",CLASS_TAGSET}, + {"general",CLASS_GENERAL}, + {0,(enum oid_class) 0} + }; + char oname_str[101], oclass_str[101], oid_str[101]; + char* name; + int i; + oid_class oidclass = CLASS_GENERAL; + int val = 0, oid[OID_SIZE]; + struct oident * new_oident=NULL; + + if (sscanf (args, "%100[^ ] %100[^ ] %100s", + oname_str,oclass_str, oid_str) < 1) { + printf("Error in register command \n"); + return 0; + } + + for (i = 0; oid_classes[i].className; i++) { + if (!strcmp(oid_classes[i].className, oclass_str)) + { + oidclass=oid_classes[i].oclass; + break; + } + } + + if(!(oid_classes[i].className)) { + printf("Unknown oid class %s\n",oclass_str); + return 0; + } + + i = 0; + name = oid_str; + val = 0; + + while (isdigit (*(unsigned char *) name)) + { + val = val*10 + (*name - '0'); + name++; + if (*name == '.') + { + if (i < OID_SIZE-1) + oid[i++] = val; + val = 0; + name++; + } + } + oid[i] = val; + oid[i+1] = -1; + + new_oident = oid_addent (oid, PROTO_GENERAL, oidclass, oname_str, + VAL_DYNAMIC); + if(strcmp(new_oident->desc,oname_str)) + { + fprintf(stderr,"oid is already named as %s, registration failed\n", + new_oident->desc); + } + return 1; +} + +int cmd_push_command(const char* arg) +{ +#if HAVE_READLINE_HISTORY_H + if(strlen(arg)>1) + add_history(arg); +#else + fprintf(stderr,"Not compiled with the readline/history module\n"); +#endif + return 1; +} + +void source_rcfile() +{ + /* Look for a $HOME/.yazclientrc and source it if it exists */ + struct stat statbuf; + char buffer[1000]; + char* homedir=getenv("HOME"); + + if( homedir ) { + + sprintf(buffer,"%s/.yazclientrc",homedir); + + if(stat(buffer,&statbuf)==0) { + cmd_source(buffer, 0 ); + } + + }; + + if(stat(".yazclientrc",&statbuf)==0) { + cmd_source(".yazclientrc", 0 ); + } +} + + +static void initialize(void) +{ + FILE *inf; + int i; + + if (!(out = odr_createmem(ODR_ENCODE)) || + !(in = odr_createmem(ODR_DECODE)) || + !(print = odr_createmem(ODR_PRINT))) + { + fprintf(stderr, "failed to allocate ODR streams\n"); + exit(1); + } + oid_init(); + + setvbuf(stdout, 0, _IONBF, 0); + if (apdu_file) + odr_setprint(print, apdu_file); + + bibset = ccl_qual_mk (); + inf = fopen (ccl_fields, "r"); + if (inf) + { + ccl_qual_file (bibset, inf); + fclose (inf); + } + + cqltrans = cql_transform_open_fname(cql_fields); + /* If this fails, no problem: we detect cqltrans == 0 later */ + +#if HAVE_READLINE_READLINE_H + rl_attempted_completion_function = (CPPFunction*)readline_completer; +#endif + for(i = 0; i < maxOtherInfosSupported; ++i) { + extraOtherInfos[i].oidval = -1; + } + + source_rcfile(); +} + + +#if HAVE_GETTIMEOFDAY +struct timeval tv_start; +#endif + +#if YAZ_HAVE_XML2 +static void handle_srw_record(Z_SRW_record *rec) +{ + if (rec->recordPosition) + { + printf ("pos=%d", *rec->recordPosition); + setno = *rec->recordPosition + 1; + } + if (rec->recordSchema) + printf (" schema=%s", rec->recordSchema); + printf ("\n"); + if (rec->recordData_buf && rec->recordData_len) + { + fwrite(rec->recordData_buf, 1, rec->recordData_len, stdout); + if (marc_file) + fwrite (rec->recordData_buf, 1, rec->recordData_len, marc_file); + } + else + printf ("No data!"); + printf("\n"); +} + +static void handle_srw_explain_response(Z_SRW_explainResponse *res) +{ + handle_srw_record(&res->record); +} + +static void handle_srw_response(Z_SRW_searchRetrieveResponse *res) +{ + int i; + + printf ("Received SRW SearchRetrieve Response\n"); + + for (i = 0; inum_diagnostics; i++) + { + if (res->diagnostics[i].uri) + printf ("SRW diagnostic %s\n", + res->diagnostics[i].uri); + else + printf ("SRW diagnostic missing or could not be decoded\n"); + if (res->diagnostics[i].message) + printf ("Message: %s\n", res->diagnostics[i].message); + if (res->diagnostics[i].details) + printf ("Details: %s\n", res->diagnostics[i].details); + } + if (res->numberOfRecords) + printf ("Number of hits: %d\n", *res->numberOfRecords); + for (i = 0; inum_records; i++) + handle_srw_record(res->records + i); +} + +static void handle_srw_scan_term(Z_SRW_scanTerm *term) +{ + if (term->displayTerm) + printf("%s:", term->displayTerm); + else if (term->value) + printf("%s:", term->value); + else + printf("No value:"); + if (term->numberOfRecords) + printf(" %d", *term->numberOfRecords); + if (term->whereInList) + printf(" %s", term->whereInList); + if (term->value && term->displayTerm) + printf(" %s", term->value); + + strcpy(last_scan_line, term->value); + printf("\n"); +} + +static void handle_srw_scan_response(Z_SRW_scanResponse *res) +{ + int i; + + printf ("Received SRW Scan Response\n"); + + for (i = 0; inum_diagnostics; i++) + { + if (res->diagnostics[i].uri) + printf ("SRW diagnostic %s\n", + res->diagnostics[i].uri); + else + printf ("SRW diagnostic missing or could not be decoded\n"); + if (res->diagnostics[i].message) + printf ("Message: %s\n", res->diagnostics[i].message); + if (res->diagnostics[i].details) + printf ("Details: %s\n", res->diagnostics[i].details); + } + if (res->terms) + for (i = 0; inum_terms; i++) + handle_srw_scan_term(res->terms + i); +} + +static void http_response(Z_HTTP_Response *hres) +{ + int ret = -1; + const char *content_type = z_HTTP_header_lookup(hres->headers, + "Content-Type"); + const char *connection_head = z_HTTP_header_lookup(hres->headers, + "Connection"); + if (content_type && !yaz_strcmp_del("text/xml", content_type, "; ")) + { + Z_SOAP *soap_package = 0; + ODR o = odr_createmem(ODR_DECODE); + Z_SOAP_Handler soap_handlers[2] = { + {"http://www.loc.gov/zing/srw/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {0, 0, 0} + }; + ret = z_soap_codec(o, &soap_package, + &hres->content_buf, &hres->content_len, + soap_handlers); + if (!ret && soap_package->which == Z_SOAP_generic && + soap_package->u.generic->no == 0) + { + Z_SRW_PDU *sr = soap_package->u.generic->p; + if (sr->which == Z_SRW_searchRetrieve_response) + handle_srw_response(sr->u.response); + else if (sr->which == Z_SRW_explain_response) + handle_srw_explain_response(sr->u.explain_response); + else if (sr->which == Z_SRW_scan_response) + handle_srw_scan_response(sr->u.scan_response); + else + ret = -1; + } + else if (soap_package && (soap_package->which == Z_SOAP_fault + || soap_package->which == Z_SOAP_error)) + { + printf ("HTTP Error Status=%d\n", hres->code); + printf ("SOAP Fault code %s\n", + soap_package->u.fault->fault_code); + printf ("SOAP Fault string %s\n", + soap_package->u.fault->fault_string); + if (soap_package->u.fault->details) + printf ("SOAP Details %s\n", + soap_package->u.fault->details); + } + else + ret = -1; + odr_destroy(o); + } + if (ret) + { + if (hres->code != 200) + { + printf ("HTTP Error Status=%d\n", hres->code); + } + else + { + printf ("Decoding of SRW package failed\n"); + } + close_session(); + } + else + { + if (!strcmp(hres->version, "1.0")) + { + /* HTTP 1.0: only if Keep-Alive we stay alive.. */ + if (!connection_head || strcmp(connection_head, "Keep-Alive")) + close_session(); + } + else + { + /* HTTP 1.1: only if no close we stay alive .. */ + if (connection_head && !strcmp(connection_head, "close")) + close_session(); + } + } +} +#endif + +void wait_and_handle_response(int one_response_only) +{ + int reconnect_ok = 1; + int res; + char *netbuffer= 0; + int netbufferlen = 0; +#if HAVE_GETTIMEOFDAY + int got_tv_end = 0; + struct timeval tv_end; +#endif + Z_GDU *gdu; + + while(conn) + { + res = cs_get(conn, &netbuffer, &netbufferlen); + if (reconnect_ok && res <= 0 && protocol == PROTO_HTTP) + { + cs_close(conn); + conn = 0; + cmd_open(0); + reconnect_ok = 0; + if (conn) + { + char *buf_out; + int len_out; + + buf_out = odr_getbuf(out, &len_out, 0); + + do_hex_dump(buf_out, len_out); + + cs_put(conn, buf_out, len_out); + + odr_reset(out); + continue; + } + } + else if (res <= 0) + { + printf("Target closed connection\n"); + close_session(); + break; + } +#if HAVE_GETTIMEOFDAY + if (got_tv_end == 0) + gettimeofday (&tv_end, 0); /* count first one only */ + got_tv_end++; +#endif + odr_reset(out); + odr_reset(in); /* release APDU from last round */ + record_last = 0; + do_hex_dump(netbuffer, res); + odr_setbuf(in, netbuffer, res, 0); + + if (!z_GDU(in, &gdu, 0, 0)) + { + FILE *f = ber_file ? ber_file : stdout; + odr_perror(in, "Decoding incoming APDU"); + fprintf(f, "[Near %ld]\n", (long) odr_offset(in)); + fprintf(f, "Packet dump:\n---------\n"); + odr_dumpBER(f, netbuffer, res); + fprintf(f, "---------\n"); + if (apdu_file) + { + z_GDU(print, &gdu, 0, 0); + odr_reset(print); + } + if (conn && cs_more(conn)) + continue; + break; + } + if (ber_file) + odr_dumpBER(ber_file, netbuffer, res); + if (apdu_file && !z_GDU(print, &gdu, 0, 0)) + { + odr_perror(print, "Failed to print incoming APDU"); + odr_reset(print); + continue; + } + if (gdu->which == Z_GDU_Z3950) + { + Z_APDU *apdu = gdu->u.z3950; + switch(apdu->which) + { + case Z_APDU_initResponse: + process_initResponse(apdu->u.initResponse); + break; + case Z_APDU_searchResponse: + process_searchResponse(apdu->u.searchResponse); + break; + case Z_APDU_scanResponse: + process_scanResponse(apdu->u.scanResponse); + break; + case Z_APDU_presentResponse: + print_refid (apdu->u.presentResponse->referenceId); + setno += + *apdu->u.presentResponse->numberOfRecordsReturned; + if (apdu->u.presentResponse->records) + display_records(apdu->u.presentResponse->records); + else + printf("No records.\n"); + printf ("nextResultSetPosition = %d\n", + *apdu->u.presentResponse->nextResultSetPosition); + break; + case Z_APDU_sortResponse: + process_sortResponse(apdu->u.sortResponse); + break; + case Z_APDU_extendedServicesResponse: + printf("Got extended services response\n"); + process_ESResponse(apdu->u.extendedServicesResponse); + break; + case Z_APDU_close: + printf("Target has closed the association.\n"); + process_close(apdu->u.close); + break; + case Z_APDU_resourceControlRequest: + process_resourceControlRequest + (apdu->u.resourceControlRequest); + break; + case Z_APDU_deleteResultSetResponse: + process_deleteResultSetResponse(apdu->u. + deleteResultSetResponse); + break; + default: + printf("Received unknown APDU type (%d).\n", + apdu->which); + close_session (); + } + } +#if YAZ_HAVE_XML2 + else if (gdu->which == Z_GDU_HTTP_Response) + { + http_response(gdu->u.HTTP_Response); + } +#endif + if (one_response_only) + break; + if (conn && !cs_more(conn)) + break; + } +#if HAVE_GETTIMEOFDAY + if (got_tv_end) + { +#if 0 + printf ("S/U S/U=%ld/%ld %ld/%ld", + (long) tv_start.tv_sec, + (long) tv_start.tv_usec, + (long) tv_end.tv_sec, + (long) tv_end.tv_usec); +#endif + printf ("Elapsed: %.6f\n", + (double) tv_end.tv_usec / 1e6 + tv_end.tv_sec - + ((double) tv_start.tv_usec / 1e6 + tv_start.tv_sec)); + } +#endif + xfree (netbuffer); +} + + +int cmd_cclparse(const char* arg) +{ + int error, pos; + struct ccl_rpn_node *rpn=NULL; + + + rpn = ccl_find_str (bibset, arg, &error, &pos); + + if (error) { + int ioff = 3+strlen(last_cmd)+1+pos; + printf ("%*s^ - ", ioff, " "); + printf ("%s\n", ccl_err_msg (error)); + } + else + { + if (rpn) + { + ccl_pr_tree(rpn, stdout); + } + } + if (rpn) + ccl_rpn_delete(rpn); + + printf ("\n"); + + return 0; +} + + +int cmd_set_otherinfo(const char* args) +{ + char oidstr[101], otherinfoString[101]; + int otherinfoNo; + int sscan_res; + int oidval; + + sscan_res = sscanf (args, "%d %100[^ ] %100s", + &otherinfoNo, oidstr, otherinfoString); + if (sscan_res==1) { + /* reset this otherinfo */ + if(otherinfoNo>=maxOtherInfosSupported) { + printf("Error otherinfo index to large (%d>%d)\n", + otherinfoNo,maxOtherInfosSupported); + } + extraOtherInfos[otherinfoNo].oidval = -1; + if (extraOtherInfos[otherinfoNo].value) + xfree(extraOtherInfos[otherinfoNo].value); + extraOtherInfos[otherinfoNo].value = 0; + return 0; + } + if (sscan_res<3) { + printf("Error in set_otherinfo command \n"); + return 0; + } + + if (otherinfoNo>=maxOtherInfosSupported) { + printf("Error otherinfo index too large (%d>=%d)\n", + otherinfoNo,maxOtherInfosSupported); + } + + oidval = oid_getvalbyname (oidstr); + if (oidval == VAL_NONE) + { + printf("Error in set_otherinfo command unknown oid %s \n",oidstr); + return 0; + } + extraOtherInfos[otherinfoNo].oidval = oidval; + if (extraOtherInfos[otherinfoNo].value) + xfree(extraOtherInfos[otherinfoNo].value); + extraOtherInfos[otherinfoNo].value = xstrdup(otherinfoString); + + return 0; +} + +int cmd_sleep(const char* args ) +{ + int sec=atoi(args); + if( sec > 0 ) { +#ifdef WIN32 + Sleep(sec*1000); +#else + sleep(sec); +#endif + printf("Done sleeping %d seconds\n", sec); + } + return 1; +} + +int cmd_list_otherinfo(const char* args) +{ + int i; + + if(strlen(args)>0) { + i = atoi(args); + if( i >= maxOtherInfosSupported ) { + printf("Error otherinfo index to large (%d>%d)\n",i,maxOtherInfosSupported); + return 0; + } + + if(extraOtherInfos[i].oidval != -1) + printf(" otherinfo %d %s %s\n", + i, + yaz_z3950_oid_value_to_str( + (enum oid_value) extraOtherInfos[i].oidval, + CLASS_RECSYN), + extraOtherInfos[i].value); + + } else { + for(i=0; iwhich) { + case Z_IdAuthentication_idPass: + printf("Authentication : IdPass\n"); + printf(" Login User : %s\n",auth->u.idPass->userId?auth->u.idPass->userId:""); + printf(" Login Group : %s\n",auth->u.idPass->groupId?auth->u.idPass->groupId:""); + printf(" Password : %s\n",auth->u.idPass->password?auth->u.idPass->password:""); + break; + case Z_IdAuthentication_open: + printf("Authentication : psOpen\n"); + printf(" Open string : %s\n",auth->u.open); + break; + default: + printf("Authentication : Unknown\n"); + } + } + if (negotiationCharset) + printf("Neg. Character set : `%s'\n", negotiationCharset); + + /* bases */ + printf("Bases : "); + for (i = 0; i 0) ? + yaz_z3950_oid_value_to_str(recordsyntax_list[0], CLASS_RECSYN) : + "none"); + printf("Schema : %s\n",record_schema ? record_schema : "not set"); + printf("Elements : %s\n",elementSetNames?elementSetNames->u.generic:""); + + /* loging options */ + printf("APDU log : %s\n",apdu_file?"on":"off"); + printf("Record log : %s\n",marc_file?"on":"off"); + + /* other infos */ + printf("Other Info: \n"); + cmd_list_otherinfo(""); + + return 0; +} + +int cmd_clear_otherinfo(const char* args) +{ + if(strlen(args)>0) { + int otherinfoNo = atoi(args); + if (otherinfoNo >= maxOtherInfosSupported) { + printf("Error otherinfo index too large (%d>=%d)\n", + otherinfoNo, maxOtherInfosSupported); + return 0; + } + if (extraOtherInfos[otherinfoNo].oidval != -1) + { + /* only clear if set. */ + extraOtherInfos[otherinfoNo].oidval = -1; + xfree(extraOtherInfos[otherinfoNo].value); + } + } else { + int i; + for(i = 0; i < maxOtherInfosSupported; ++i) + { + if (extraOtherInfos[i].oidval != -1) + { + extraOtherInfos[i].oidval = -1; + xfree(extraOtherInfos[i].value); + } + } + } + return 0; +} + +int cmd_wait_response(const char *arg) +{ + int wait_for = atoi(arg); + int i=0; + if( wait_for < 1 ) { + wait_for = 1; + }; + + for( i=0 ; i < wait_for ; ++i ) { + wait_and_handle_response(1); + }; + return 0; +} + +static int cmd_help (const char *line); + +typedef char *(*completerFunctionType)(const char *text, int state); + +static struct { + char *cmd; + int (*fun)(const char *arg); + char *ad; + completerFunctionType rl_completerfunction; + int complete_filenames; + char **local_tabcompletes; +} cmd_array[] = { + {"open", cmd_open, "('tcp'|'ssl')':[':'][/]",NULL,0,NULL}, + {"quit", cmd_quit, "",NULL,0,NULL}, + {"find", cmd_find, "",NULL,0,NULL}, + {"delete", cmd_delete, "",NULL,0,NULL}, + {"base", cmd_base, "",NULL,0,NULL}, + {"show", cmd_show, "['+'<#recs>['+']]",NULL,0,NULL}, + {"scan", cmd_scan, "",NULL,0,NULL}, + {"scanstep", cmd_scanstep, "",NULL,0,NULL}, + {"scanpos", cmd_scanpos, "",NULL,0,NULL}, + {"scansize", cmd_scansize, "",NULL,0,NULL}, + {"sort", cmd_sort, " ...",NULL,0,NULL}, + {"sort+", cmd_sort_newset, " ...",NULL,0,NULL}, + {"authentication", cmd_authentication, "",NULL,0,NULL}, + {"lslb", cmd_lslb, "",NULL,0,NULL}, + {"ssub", cmd_ssub, "",NULL,0,NULL}, + {"mspn", cmd_mspn, "",NULL,0,NULL}, + {"status", cmd_status, "",NULL,0,NULL}, + {"setnames", cmd_setnames, "",NULL,0,NULL}, + {"cancel", cmd_cancel, "",NULL,0,NULL}, + {"cancel_find", cmd_cancel_find, "",NULL,0,NULL}, + {"format", cmd_format, "",complete_format,0,NULL}, + {"schema", cmd_schema, "",complete_schema,0,NULL}, + {"elements", cmd_elements, "",NULL,0,NULL}, + {"close", cmd_close, "",NULL,0,NULL}, + {"attributeset", cmd_attributeset, "",complete_attributeset,0,NULL}, + {"querytype", cmd_querytype, "",complete_querytype,0,NULL}, + {"refid", cmd_refid, "",NULL,0,NULL}, + {"itemorder", cmd_itemorder, "ill|item ",NULL,0,NULL}, + {"update", cmd_update, " []",NULL,0,NULL}, + {"update0", cmd_update0, " []",NULL,0,NULL}, + {"xmles", cmd_xmles, " ",NULL,0,NULL}, + {"packagename", cmd_packagename, "",NULL,0,NULL}, + {"proxy", cmd_proxy, "[('tcp'|'ssl')][':']",NULL,0,NULL}, + {"charset", cmd_charset, " ",NULL,0,NULL}, + {"negcharset", cmd_negcharset, "",NULL,0,NULL}, + {"displaycharset", cmd_displaycharset, "",NULL,0,NULL}, + {"marccharset", cmd_marccharset, "",NULL,0,NULL}, + {"lang", cmd_lang, "",NULL,0,NULL}, + {".", cmd_source_echo, "",NULL,1,NULL}, + {"!", cmd_subshell, "Subshell command",NULL,1,NULL}, + {"set_apdufile", cmd_set_apdufile, "",NULL,1,NULL}, + {"set_berfile", cmd_set_berfile, "",NULL,1,NULL}, + {"set_marcdump", cmd_set_marcdump," ",NULL,1,NULL}, + {"set_cclfile", cmd_set_cclfile," ",NULL,1,NULL}, + {"set_cqlfile", cmd_set_cqlfile," ",NULL,1,NULL}, + {"set_auto_reconnect", cmd_set_auto_reconnect," on|off",complete_auto_reconnect,1,NULL}, + {"set_auto_wait", cmd_set_auto_wait," on|off",complete_auto_reconnect,1,NULL}, + {"set_otherinfo", cmd_set_otherinfo," ",NULL,0,NULL}, + {"sleep", cmd_sleep,"",NULL,0,NULL}, + {"register_oid", cmd_register_oid," ",NULL,0,NULL}, + {"push_command", cmd_push_command,"",command_generator,0,NULL}, + {"register_tab", cmd_register_tab," ",command_generator,0,NULL}, + {"cclparse", cmd_cclparse,"",NULL,0,NULL}, + {"list_otherinfo",cmd_list_otherinfo,"[otherinfoinddex]",NULL,0,NULL}, + {"list_all",cmd_list_all,"",NULL,0,NULL}, + {"clear_otherinfo",cmd_clear_otherinfo,"",NULL,0,NULL}, + {"wait_response",cmd_wait_response,"",NULL,0,NULL}, + /* Server Admin Functions */ + {"adm-reindex", cmd_adm_reindex, "",NULL,0,NULL}, + {"adm-truncate", cmd_adm_truncate, "('database'|'index')",NULL,0,NULL}, + {"adm-create", cmd_adm_create, "",NULL,0,NULL}, + {"adm-drop", cmd_adm_drop, "('database'|'index')",NULL,0,NULL}, + {"adm-import", cmd_adm_import, " ",NULL,0,NULL}, + {"adm-refresh", cmd_adm_refresh, "",NULL,0,NULL}, + {"adm-commit", cmd_adm_commit, "",NULL,0,NULL}, + {"adm-shutdown", cmd_adm_shutdown, "",NULL,0,NULL}, + {"adm-startup", cmd_adm_startup, "",NULL,0,NULL}, + {"explain", cmd_explain, "", NULL, 0, NULL}, + {"options", cmd_options, "", NULL, 0, NULL}, + {"zversion", cmd_zversion, "", NULL, 0, NULL}, + {"help", cmd_help, "", NULL,0,NULL}, + {"init", cmd_init, "", NULL,0,NULL}, + {"sru", cmd_sru, "", NULL,0,NULL}, + {"exit", cmd_quit, "",NULL,0,NULL}, + {0,0,0,0,0,0} +}; + +static int cmd_help (const char *line) +{ + int i; + char topic[21]; + + *topic = 0; + sscanf (line, "%20s", topic); + + if (*topic == 0) + printf("Commands:\n"); + for (i = 0; cmd_array[i].cmd; i++) + if (*topic == 0 || strcmp (topic, cmd_array[i].cmd) == 0) + printf(" %s %s\n", cmd_array[i].cmd, cmd_array[i].ad); + if (!strcmp(topic, "find")) + { + printf("RPN:\n"); + printf(" \"term\" Simple Term\n"); + printf(" @attr [attset] type=value op Attribute\n"); + printf(" @and opl opr And\n"); + printf(" @or opl opr Or\n"); + printf(" @not opl opr And-Not\n"); + printf(" @set set Result set\n"); + printf(" @prox exl dist ord rel uc ut Proximity. Use help prox\n"); + printf("\n"); + printf("Bib-1 attribute types\n"); + printf("1=Use: "); + printf("4=Title 7=ISBN 8=ISSN 30=Date 62=Abstract 1003=Author 1016=Any\n"); + printf("2=Relation: "); + printf("1< 2<= 3= 4>= 5> 6!= 102=Relevance\n"); + printf("3=Position: "); + printf("1=First in Field 2=First in subfield 3=Any position\n"); + printf("4=Structure: "); + printf("1=Phrase 2=Word 3=Key 4=Year 5=Date 6=WordList\n"); + printf("5=Truncation: "); + printf("1=Right 2=Left 3=L&R 100=No 101=# 102=Re-1 103=Re-2\n"); + printf("6=Completeness:"); + printf("1=Incomplete subfield 2=Complete subfield 3=Complete field\n"); + } + if (!strcmp(topic, "prox")) + { + printf("Proximity:\n"); + printf(" @prox exl dist ord rel uc ut\n"); + printf(" exl: exclude flag . 0=include, 1=exclude.\n"); + printf(" dist: distance integer.\n"); + printf(" ord: order flag. 0=unordered, 1=ordered.\n"); + printf(" rel: relation integer. 1< 2<= 3= 4>= 5> 6!= .\n"); + printf(" uc: unit class. k=known, p=private.\n"); + printf(" ut: unit type. 1=character, 2=word, 3=sentence,\n"); + printf(" 4=paragraph, 5=section, 6=chapter, 7=document,\n"); + printf(" 8=element, 9=subelement, 10=elementType, 11=byte.\n"); + printf("\nExamples:\n"); + printf(" Search for a and b in-order at most 3 words apart:\n"); + printf(" @prox 0 3 1 2 k 2 a b\n"); + printf(" Search for any order of a and b next to each other:\n"); + printf(" @prox 0 1 0 3 k 2 a b\n"); + } + return 1; +} + +int cmd_register_tab(const char* arg) +{ +#if HAVE_READLINE_READLINE_H + char command[101], tabargument[101]; + int i; + int num_of_tabs; + char** tabslist; + + if (sscanf (arg, "%100s %100s", command, tabargument) < 1) { + return 0; + } + + /* locate the amdn in the list */ + for (i = 0; cmd_array[i].cmd; i++) { + if (!strncmp(cmd_array[i].cmd, command, strlen(command))) { + break; + } + } + + if (!cmd_array[i].cmd) { + fprintf(stderr,"Unknown command %s\n",command); + return 1; + } + + + if (!cmd_array[i].local_tabcompletes) + cmd_array[i].local_tabcompletes = (char **) calloc(1,sizeof(char**)); + + num_of_tabs=0; + + tabslist = cmd_array[i].local_tabcompletes; + for(; tabslist && *tabslist; tabslist++) { + num_of_tabs++; + } + + cmd_array[i].local_tabcompletes = (char **) + realloc(cmd_array[i].local_tabcompletes, + (num_of_tabs+2)*sizeof(char**)); + tabslist = cmd_array[i].local_tabcompletes; + tabslist[num_of_tabs] = strdup(tabargument); + tabslist[num_of_tabs+1] = NULL; +#endif + return 1; +} + + +void process_cmd_line(char* line) +{ + int i, res; + char word[32], arg[10240]; + +#if HAVE_GETTIMEOFDAY + gettimeofday (&tv_start, 0); +#endif + + if ((res = sscanf(line, "%31s %10239[^;]", word, arg)) <= 0) + { + strcpy(word, last_cmd); + *arg = '\0'; + } + else if (res == 1) + *arg = 0; + strcpy(last_cmd, word); + + /* removed tailing spaces from the arg command */ + { + char* p = arg; + char* lastnonspace=NULL; + + for(;*p; ++p) { + if(!isspace(*(unsigned char *) p)) { + lastnonspace = p; + } + } + if(lastnonspace) + *(++lastnonspace) = 0; + } + + for (i = 0; cmd_array[i].cmd; i++) + if (!strncmp(cmd_array[i].cmd, word, strlen(word))) + { + res = (*cmd_array[i].fun)(arg); + break; + } + + if (!cmd_array[i].cmd) /* dump our help-screen */ + { + printf("Unknown command: %s.\n", word); + printf("Type 'help' for list of commands\n"); + res = 1; + } + + if(apdu_file) fflush(apdu_file); + + if (res >= 2 && auto_wait) + wait_and_handle_response(0); + + if(apdu_file) + fflush(apdu_file); + if(marc_file) + fflush(marc_file); +} + +static char *command_generator(const char *text, int state) +{ +#if HAVE_READLINE_READLINE_H + static int idx; + if (state==0) { + idx = 0; + } + for( ; cmd_array[idx].cmd; ++idx) { + if (!strncmp(cmd_array[idx].cmd, text, strlen(text))) { + ++idx; /* skip this entry on the next run */ + return strdup(cmd_array[idx-1].cmd); + } + } +#endif + return NULL; +} + +#if HAVE_READLINE_READLINE_H +static char** default_completer_list = NULL; + +static char* default_completer(const char* text, int state) +{ + return complete_from_list(default_completer_list, text, state); +} +#endif + +#if HAVE_READLINE_READLINE_H + +/* + This function only known how to complete on the first word +*/ +char **readline_completer(char *text, int start, int end) +{ + completerFunctionType completerToUse; + + if(start == 0) { +#if HAVE_READLINE_RL_COMPLETION_MATCHES + char** res = rl_completion_matches(text, command_generator); +#else + char** res = completion_matches(text, + (CPFunction*)command_generator); +#endif + rl_attempted_completion_over = 1; + return res; + } else { + char arg[10240],word[32]; + int i=0 ,res; + if ((res = sscanf(rl_line_buffer, "%31s %10239[^;]", word, arg)) <= 0) { + rl_attempted_completion_over = 1; + return NULL; + } + + for (i = 0; cmd_array[i].cmd; i++) + if (!strncmp(cmd_array[i].cmd, word, strlen(word))) + break; + + if(!cmd_array[i].cmd) + return NULL; + + default_completer_list = cmd_array[i].local_tabcompletes; + + completerToUse = cmd_array[i].rl_completerfunction; + if (!completerToUse) + { /* if command completer is not defined use the default completer */ + completerToUse = default_completer; + } + if (completerToUse) { +#ifdef HAVE_READLINE_RL_COMPLETION_MATCHES + char** res= + rl_completion_matches(text, completerToUse); +#else + char** res= + completion_matches(text, (CPFunction*)completerToUse); +#endif + if (!cmd_array[i].complete_filenames) + rl_attempted_completion_over = 1; + return res; + } else { + if (!cmd_array[i].complete_filenames) + rl_attempted_completion_over = 1; + return 0; + } + } +} +#endif + +static void client(void) +{ + char line[10240]; + + line[10239] = '\0'; + +#if HAVE_GETTIMEOFDAY + gettimeofday (&tv_start, 0); +#endif + + while (1) + { + char *line_in = NULL; +#if HAVE_READLINE_READLINE_H + if (isatty(0)) + { + line_in=readline(C_PROMPT); + if (!line_in) + break; +#if HAVE_READLINE_HISTORY_H + if (*line_in) + add_history(line_in); +#endif + strncpy(line, line_in, 10239); + free(line_in); + } +#endif + if (!line_in) + { + char *end_p; + printf (C_PROMPT); + fflush(stdout); + if (!fgets(line, 10239, stdin)) + break; + if ((end_p = strchr (line, '\n'))) + *end_p = '\0'; + } + process_cmd_line(line); + } +} + +static void show_version(void) +{ + char vstr[20]; + + yaz_version(vstr, 0); + printf ("YAZ version: %s\n", YAZ_VERSION); + if (strcmp(vstr, YAZ_VERSION)) + printf ("YAZ DLL/SO: %s\n", vstr); + exit(0); +} + +int main(int argc, char **argv) +{ + char *prog = *argv; + char *open_command = 0; + char *auth_command = 0; + char *arg; + int ret; + +#if HAVE_LOCALE_H + if (!setlocale(LC_CTYPE, "")) + fprintf (stderr, "setlocale failed\n"); +#endif +#if HAVE_LANGINFO_H +#ifdef CODESET + codeset = nl_langinfo(CODESET); +#endif +#endif + if (codeset) + outputCharset = xstrdup(codeset); + + ODR_MASK_SET(&z3950_options, Z_Options_search); + ODR_MASK_SET(&z3950_options, Z_Options_present); + ODR_MASK_SET(&z3950_options, Z_Options_namedResultSets); + ODR_MASK_SET(&z3950_options, Z_Options_triggerResourceCtrl); + ODR_MASK_SET(&z3950_options, Z_Options_scan); + ODR_MASK_SET(&z3950_options, Z_Options_sort); + ODR_MASK_SET(&z3950_options, Z_Options_extendedServices); + ODR_MASK_SET(&z3950_options, Z_Options_delSet); + + while ((ret = options("k:c:q:a:b:m:v:p:u:t:Vxd:", argv, argc, &arg)) != -2) + { + switch (ret) + { + case 0: + if (!open_command) + { + open_command = (char *) xmalloc (strlen(arg)+6); + strcpy (open_command, "open "); + strcat (open_command, arg); + } + else + { + fprintf(stderr, "%s: Specify at most one server address\n", + prog); + exit(1); + } + break; + case 'd': + dump_file_prefix = arg; + break; + case 'k': + kilobytes = atoi(arg); + break; + case 'm': + if (!(marc_file = fopen (arg, "a"))) + { + perror (arg); + exit (1); + } + break; + case 't': + outputCharset = xstrdup(arg); + break; + case 'c': + strncpy (ccl_fields, arg, sizeof(ccl_fields)-1); + ccl_fields[sizeof(ccl_fields)-1] = '\0'; + break; + case 'q': + strncpy (cql_fields, arg, sizeof(cql_fields)-1); + cql_fields[sizeof(cql_fields)-1] = '\0'; + break; + case 'b': + if (!strcmp(arg, "-")) + ber_file=stderr; + else + ber_file=fopen(arg, "a"); + break; + case 'a': + if (!strcmp(arg, "-")) + apdu_file=stderr; + else + apdu_file=fopen(arg, "a"); + break; + case 'x': + hex_dump = 1; + break; + case 'p': + yazProxy = xstrdup(arg); + break; + case 'u': + if (!auth_command) + { + auth_command = (char *) xmalloc (strlen(arg)+6); + strcpy (auth_command, "auth "); + strcat (auth_command, arg); + } + break; + case 'v': + yaz_log_init(yaz_log_mask_str(arg), "", 0); + break; + case 'V': + show_version(); + break; + default: + fprintf (stderr, "Usage: %s " + " [-a ]" + " [-b berdump]" + " [-d dump]\n" + " [-c cclfields]" + " [-k size]" + " [-m ]\n" + " [-p ]" + " [-q cqlfields]" + " [-u ]" + " [-V]" + " []\n", + prog); + exit (1); + } + } + initialize(); + if (auth_command) + { +#ifdef HAVE_GETTIMEOFDAY + gettimeofday (&tv_start, 0); +#endif + process_cmd_line (auth_command); +#if HAVE_READLINE_HISTORY_H + add_history(auth_command); +#endif + xfree(auth_command); + } + if (open_command) + { +#ifdef HAVE_GETTIMEOFDAY + gettimeofday (&tv_start, 0); +#endif + process_cmd_line (open_command); +#if HAVE_READLINE_HISTORY_H + add_history(open_command); +#endif + xfree(open_command); + } + client (); + exit (0); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/client/default.bib b/dependencies/yaz-2.1.28/client/default.bib new file mode 100644 index 0000000..181c0ee --- /dev/null +++ b/dependencies/yaz-2.1.28/client/default.bib @@ -0,0 +1,45 @@ +# CCL field mappings +# $Id: default.bib,v 1.9 2004/09/29 20:37:50 adam Exp $ +# +# The rule below is used when no fields are specified +term t=l,r s=al +# +# Simple rule for a field called "clean" +clean t=l,r +# +# Rules for some BIB-1 fields +au u=1 s=pw +ti u=4 s=pw +isbn u=7 +issn u=8 +cc u=20 +su u=21 s=pw +date u=30 r=r +dp u=31 r=r +da u=32 r=r +la u=54 s=pw +ab u=62 s=pw +note u=63 s=pw +af u=1006 s=pw +# +# Rules for a few GILS fields +north gils-attset,u=2040 r=o +south gils-attset,u=2041 r=o +east gils-attset,u=2038 r=o +west gils-attest,u=2039 r=o +distributor gils-attset,u=2000 s=pw +distributorname gils-attset,u=2001 s=pw + +# Explain fields +ExplainCategory exp1,1=1 +HumanStringLanguage exp1,1=2 +DatabaseName exp1,1=3 +TargetName exp1,1=4 +AttributeSetOID exp1,1=5 +RecordSyntaxOID exp1,1=6 +TagSetOID exp1,1=7 +ExtededServiceOID exp1,1=8 +DateAdded exp1,1=9 +DateChanged exp1,1=10 +DateExpires exp1,1=11 +ElementSetName exp1,1=12 diff --git a/dependencies/yaz-2.1.28/client/tabcomplete.c b/dependencies/yaz-2.1.28/client/tabcomplete.c new file mode 100644 index 0000000..3496486 --- /dev/null +++ b/dependencies/yaz-2.1.28/client/tabcomplete.c @@ -0,0 +1,150 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tabcomplete.c,v 1.16 2006/05/07 20:57:26 adam Exp $ + */ + +#include +#include +#include + +#include +#include "tabcomplete.h" + +/* *************************************************************************** + * + * generic completer + * + * ***************************************************************************/ + +char *complete_from_list(char* completions[], const char *text, int state) +{ +#if HAVE_READLINE_READLINE_H + static int idx; + + if(!completions) return NULL; + if(state==0) { + idx = 0; + } + for(; completions[idx]; ++ idx) { + if(! +#ifdef WIN32 + _strnicmp +#else + strncasecmp +#endif + (completions[idx],text,strlen(text))) { + ++idx; /* skip this entry on the next run */ + return (char*)strdup(completions[idx-1]); + }; + }; +#endif + return NULL; +} + + +/* *************************************************************************** + * + * code for getting a list of valid strings from the oid subsystem + * + * ***************************************************************************/ + + +typedef struct { + oid_class oclass; + char** values; + size_t index; + size_t max; +} oid_callback_t; + +/*! + This is the call back function given to oid_trav... it updates the list + of pointers into the oid owned data +*/ + +void oid_loader(struct oident* oid, void* data_) +{ + oid_callback_t* data=(oid_callback_t*) data_; + + + if((oid->oclass == CLASS_GENERAL) || (oid->oclass == data->oclass)) { + if(data->index==data->max) { + data->values=(char**)realloc(data->values,((data->max+1)*2)*sizeof(char*)); + data->max=(data->max+1)*2 - 1; + }; + data->values[data->index]=oid->desc; + ++data->index; + } +} + +char** build_list_for_oclass(oid_class oclass) +{ + oid_callback_t data; + data.values = (char **) calloc(10,sizeof(char*)); + data.index = 0; + data.max = 9; + data.oclass = oclass; + + oid_trav(oid_loader, &data); + + data.values[data.index]=0; + return data.values; +} + +/* *************************************************************************** + * + * the completer functions + * + * ***************************************************************************/ + +char* complete_querytype(const char *text, int state) +{ + char* querytypes[] = {"ccl2rpn","prefix","cclrpn","ccl","cql", 0}; + return complete_from_list(querytypes,text,state); +} + +char* complete_auto_reconnect(const char *text, int state) +{ + char* querytypes[] = {"on","off",0}; + return complete_from_list(querytypes,text,state); +} + + +char* complete_format(const char* text, int state) +{ + char** list=build_list_for_oclass(CLASS_RECSYN); + char* res=complete_from_list(list,text,state); + + free(list); + return res; +} + +char* complete_schema(const char* text, int state) +{ + char** list = build_list_for_oclass(CLASS_SCHEMA); + char* res = complete_from_list(list,text,state); + + free(list); + return res; +} + + +char* complete_attributeset(const char* text, int state) +{ + char** list = build_list_for_oclass(CLASS_ATTSET); + char* res = complete_from_list(list,text,state); + + free(list); + return res; +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/client/tabcomplete.h b/dependencies/yaz-2.1.28/client/tabcomplete.h new file mode 100644 index 0000000..2d38f84 --- /dev/null +++ b/dependencies/yaz-2.1.28/client/tabcomplete.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tabcomplete.h,v 1.7 2006/05/07 20:57:26 adam Exp $ + */ + +/* + This file contains the compleaters for the different commands. +*/ + +char* complete_querytype(const char* text, int state); +char* complete_format(const char* text, int state); +char* complete_schema(const char* text, int state); +char* complete_attributeset(const char* text, int state); +char* complete_auto_reconnect(const char *text, int state); +char *complete_from_list(char* completions[], const char *text, int state); +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/config/config.guess b/dependencies/yaz-2.1.28/config/config.guess new file mode 100755 index 0000000..396482d --- /dev/null +++ b/dependencies/yaz-2.1.28/config/config.guess @@ -0,0 +1,1500 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2006-07-02' + +# 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 program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/dependencies/yaz-2.1.28/config/config.sub b/dependencies/yaz-2.1.28/config/config.sub new file mode 100755 index 0000000..387c18d --- /dev/null +++ b/dependencies/yaz-2.1.28/config/config.sub @@ -0,0 +1,1608 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2006-07-02' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# 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 program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/dependencies/yaz-2.1.28/config/depcomp b/dependencies/yaz-2.1.28/config/depcomp new file mode 100755 index 0000000..25bdb18 --- /dev/null +++ b/dependencies/yaz-2.1.28/config/depcomp @@ -0,0 +1,526 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2004-04-25.13 + +# Copyright (C) 1999, 2000, 2003, 2004 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 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit 0 + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi +# `libtool' can also be set to `yes' or `no'. + +if test -z "$depfile"; then + base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` + dir=`echo "$object" | sed 's,/.*$,/,'` + if test "$dir" = "$object"; then + dir= + fi + # FIXME: should be _deps on DOS. + depfile="$dir.deps/$base" +fi + +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + outname="$stripped.o" + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # Dependencies are output in .lo.d with libtool 1.4. + # They are output in .o.d with libtool 1.5. + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir.libs/$base.o.d" + tmpdepfile3="$dir.libs/$base.d" + "$@" -Wc,-MD + else + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" + tmpdepfile3="$dir$base.d" + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + elif test -f "$tmpdepfile2"; then + tmpdepfile="$tmpdepfile2" + else + tmpdepfile="$tmpdepfile3" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no + for arg in "$@"; do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + "$@" || exit $? + IFS=" " + for arg + do + case "$arg" in + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/dependencies/yaz-2.1.28/config/install-sh b/dependencies/yaz-2.1.28/config/install-sh new file mode 100755 index 0000000..e4160c9 --- /dev/null +++ b/dependencies/yaz-2.1.28/config/install-sh @@ -0,0 +1,325 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2004-04-01.17 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename= +transform_arg= +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= + +usage="Usage: $0 [OPTION]... SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 -d DIRECTORIES... + +In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default. +In the second, create the directory path DIR. + +Options: +-b=TRANSFORMBASENAME +-c copy source (using $cpprog) instead of moving (using $mvprog). +-d create directories instead of installing files. +-g GROUP $chgrp installed files to GROUP. +-m MODE $chmod installed files to MODE. +-o USER $chown installed files to USER. +-s strip installed files (using $stripprog). +-t=TRANSFORM +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test -n "$1"; do + case $1 in + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + -c) instcmd=$cpprog + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit 0;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + --version) echo "$0 $scriptversion"; exit 0;; + + *) # When -d is used, all remaining arguments are directories to create. + test -n "$dir_arg" && break + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done + break;; + esac +done + +if test -z "$1"; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + src= + + if test -d "$dst"; then + instcmd=: + chmodcmd= + else + instcmd=$mkdirprog + fi + else + # Waiting for this to be detected by the "$instcmd $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + dst=$dst/`basename "$src"` + fi + fi + + # This sed command emulates the dirname command. + dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + + # Make sure that the destination directory exists. + + # Skip lots of stat calls in the usual case. + if test ! -d "$dstdir"; then + defaultIFS=' + ' + IFS="${IFS-$defaultIFS}" + + oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS=$oIFS + + pathcomp= + + while test $# -ne 0 ; do + pathcomp=$pathcomp$1 + shift + if test ! -d "$pathcomp"; then + $mkdirprog "$pathcomp" || lasterr=$? + # mkdir can fail with a `File exist' error in case several + # install-sh are creating the directory concurrently. This + # is OK. + test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; } + fi + pathcomp=$pathcomp/ + done + fi + + if test -n "$dir_arg"; then + $doit $instcmd "$dst" \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } + + else + # If we're going to rename the final executable, determine the name now. + if test -z "$transformarg"; then + dstfile=`basename "$dst"` + else + dstfile=`basename "$dst" $transformbasename \ + | sed $transformarg`$transformbasename + fi + + # don't allow the sed command to completely eliminate the filename. + test -z "$dstfile" && dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 + + # Move or copy the file name to the temp name + $doit $instcmd "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $instcmd $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dstdir/$dstfile"; then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ + || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + || { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + } + } + fi || { (exit 1); exit; } +done + +# The final little trick to "correctly" pass the exit status to the exit trap. +{ + (exit 0); exit +} + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/dependencies/yaz-2.1.28/config/ltmain.sh b/dependencies/yaz-2.1.28/config/ltmain.sh new file mode 100644 index 0000000..c715b59 --- /dev/null +++ b/dependencies/yaz-2.1.28/config/ltmain.sh @@ -0,0 +1,6871 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION="1.5.22 Debian 1.5.22-4" +TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes. +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + $echo + $echo "Copyright (C) 2005 Free Software Foundation, Inc." + $echo "This is free software; see the source for copying conditions. There is NO" + $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$progpath" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + else + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + fi + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $echo "*** But as you try to build a module library, libtool will still create " + $echo "*** a static module, that should work as long as the dlopening application" + $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$absdir/$objdir" + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + if test "$absdir" != "$libdir"; then + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="$absdir" + fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$depdepl $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit $EXIT_FAILURE + else + $echo + $echo "*** Warning: Linking the shared library $output against the non-libtool" + $echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test "$#" -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$2" + number_minor="$3" + number_revision="$4" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor - 1` + age="$number_minor" + revision="$number_minor" + ;; + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + major=`expr $current - $age + 1` + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + for path in $notinst_path; do + lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` + deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` + dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` + done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name=`expr $a_deplib : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval $echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ + | grep . >/dev/null; then + $echo + if test "X$deplibs_check_method" = "Xnone"; then + $echo "*** Warning: inter-library dependencies are not supported in this platform." + else + $echo "*** Warning: inter-library dependencies are not known to be supported." + fi + $echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $echo + $echo "*** Warning: libtool could not satisfy all declared inter-library" + $echo "*** dependencies of module $libname. Therefore, libtool will create" + $echo "*** a static module, that should work as long as the dlopening" + $echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $echo "*** The inter-library dependencies that have been dropped here will be" + $echo "*** automatically added whenever a program is linked with this library" + $echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $echo + $echo "*** Since this library must not contain undefined symbols," + $echo "*** because either the platform does not support them or" + $echo "*** it was explicitly requested with -no-undefined," + $echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$echo "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~\$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit $EXIT_FAILURE + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + else + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + $echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +" + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ +/* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ +struct { +" + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ +const struct { +" + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` + else + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + ;; + esac + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + exit_status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $exit_status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + cat > $cwrappersource <> $cwrappersource<<"EOF" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" + return 127; +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char)name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +char * +find_executable (const char* wrapper) +{ + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + $echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit $EXIT_FAILURE + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + $echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" + exit $EXIT_FAILURE + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + $echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit $EXIT_FAILURE + fi +fi\ +" + chmod +x $output + fi + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "copying selected object files to avoid basename conflicts..." + + if test -z "$gentop"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status + fi + fi + + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + counter=`expr $counter + 1` + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + $run ln "$obj" "$gentop/$newobj" || + $run cp "$obj" "$gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + eval cmd=\"$cmd\" + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit $EXIT_SUCCESS + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test "$#" -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + exit $EXIT_FAILURE + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + cmds=$postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit $EXIT_FAILURE + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir=`func_mktempdir` + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$old_striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + cmds=$old_postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=$finish_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + test "$show" = : && exit $EXIT_SUCCESS + + $echo "X----------------------------------------------------------------------" | $Xsed + $echo "Libraries have been installed in:" + for libdir in $libdirs; do + $echo " $libdir" + done + $echo + $echo "If you ever happen to want to link against installed libraries" + $echo "in a given directory, LIBDIR, you must either use libtool, and" + $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + $echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + $echo " during execution" + fi + if test -n "$runpath_var"; then + $echo " - add LIBDIR to the \`$runpath_var' environment variable" + $echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $echo + $echo "See any operating system documentation about shared libraries for" + $echo "more information, such as the ld(1) and ld.so(8) manual pages." + $echo "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit $EXIT_FAILURE + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit $EXIT_FAILURE + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + if test "${save_LC_ALL+set}" = set; then + LC_ALL="$save_LC_ALL"; export LC_ALL + fi + if test "${save_LANG+set}" = set; then + LANG="$save_LANG"; export LANG + fi + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit $EXIT_SUCCESS + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=$postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=$old_postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit $EXIT_FAILURE +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE. + +Report bugs to ." + exit $EXIT_SUCCESS + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; +esac + +$echo +$echo "Try \`$modename --help' for more information about other modes." + +exit $? + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +disable_libs=shared +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +disable_libs=static +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/dependencies/yaz-2.1.28/config/missing b/dependencies/yaz-2.1.28/config/missing new file mode 100755 index 0000000..e7ef83a --- /dev/null +++ b/dependencies/yaz-2.1.28/config/missing @@ -0,0 +1,360 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2003-09-02.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then + # We have makeinfo, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + tar) + shift + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + fi + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/dependencies/yaz-2.1.28/configure b/dependencies/yaz-2.1.28/configure new file mode 100755 index 0000000..89e2ed1 --- /dev/null +++ b/dependencies/yaz-2.1.28/configure @@ -0,0 +1,24869 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.60 for yaz 2.1.28. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +echo=${ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +tagnames=${tagnames+${tagnames},}CXX + +tagnames=${tagnames+${tagnames},}F77 + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='yaz' +PACKAGE_TARNAME='yaz' +PACKAGE_VERSION='2.1.28' +PACKAGE_STRING='yaz 2.1.28' +PACKAGE_BUGREPORT='adam@indexdata.dk' + +ac_unique_file="configure.ac" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +AMTAR +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +READLINE_LIBS +YAZ_CONF_CFLAGS +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +CPP +YACC +TCLSH +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +GREP +EGREP +LN_S +ECHO +AR +RANLIB +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +CXXCPP +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +pkgconfigpath +XSLTPROC_COMPILE +MAN_COMPILE +HTML_COMPILE +TKL_COMPILE +DTD_DIR +DSSSL_DIR +XSL_DIR +SSL_CFLAGS +THREAD_CFLAGS +LIBPTH +XML2_CFLAGS +YAZ_CONFIG_CFLAGS +YAZ_SRC_ROOT +YAZ_BUILD_ROOT +LIBOBJS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +F77 +FFLAGS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures yaz 2.1.28 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/yaz] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of yaz 2.1.28:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-tcpd=PREFIX enable TCP wrapper for server if available + --enable-pth enable GNU threads + --disable-threads disable POSIX threads + --enable-memdebug enable memory debugging + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] + --with-docbook-dtd=DIR use docbookx.dtd in DIR + --with-docbook-dsssl=DIR use Docbook DSSSL in DIR/{html,print}/docbook.dsl + --with-docbook-xsl=DIR use Docbook XSL in DIR/{htmlhelp,xhtml} + --with-openssl=PREFIX OpenSSL library in PREFIX + --with-iconv=PREFIX iconv library in PREFIX + --with-xml2[=PREFIX] use libxml2 in PREFIX + --with-xslt[=PREFIX] use libXSLT in PREFIX + --with-exslt[=PREFIX] use libEXSLT in PREFIX + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + F77 Fortran 77 compiler command + FFLAGS Fortran 77 compiler flags + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +yaz configure 2.1.28 +generated by GNU Autoconf 2.60 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by yaz $as_me 2.1.28, which was +generated by GNU Autoconf 2.60. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_aux_dir= +for ac_dir in config "$srcdir"/config; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in config \"$srcdir\"/config" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +am__api_version="1.8" +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # Keeping the `.' argument allows $(mkdir_p) to be used without + # argument. Indeed, we sometimes output rules like + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. + # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more + # expensive solution, as it forces Make to start a sub-shell.) + mkdir_p='mkdir -p -- .' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='yaz' + VERSION='2.1.28' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +install_sh=${install_sh-"$am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + + +if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +for ac_prog in 'bison -y' +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_YACC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_YACC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { echo "$as_me:$LINENO: result: $YACC" >&5 +echo "${ECHO_T}$YACC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$YACC" && break +done + +test -z "$YACC" && { echo "$as_me:$LINENO: WARNING: GNU bison not found" >&5 +echo "$as_me: WARNING: GNU bison not found" >&2;} +for ac_prog in tclsh8.5 tclsh8.4 tclsh8.3 tclsh8.2 +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_TCLSH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$TCLSH"; then + ac_cv_prog_TCLSH="$TCLSH" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_TCLSH="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +TCLSH=$ac_cv_prog_TCLSH +if test -n "$TCLSH"; then + { echo "$as_me:$LINENO: result: $TCLSH" >&5 +echo "${ECHO_T}$TCLSH" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$TCLSH" && break +done +test -n "$TCLSH" || TCLSH="tclsh" + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + +# Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + +fi + +SED=$lt_cv_path_SED +{ echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6; } + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +NM="$lt_cv_path_NM" + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 +echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 4792 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + + +esac + +need_locks="$enable_libtool_lock" + + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +fi + + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + { echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$F77" && break + done +fi +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 f77 xlf frt pgf77 cf77 fort77 fl32 af77 f90 xlf90 pgf90 pghpf epcf90 gfortran g95 f95 fort xlf95 ifort ifc efc pgf95 lf95 ftn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_F77="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_F77" && break +done + + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_f77_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_prog_f77_g=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi +else + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi +fi + +G77=`test $ac_compiler_gnu = yes && echo yes` +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi + + + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +enable_dlopen=no +enable_win32_dll=no + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7498: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7502: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7766: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7770: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } + +if test x"$lt_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works=yes + fi + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } + +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7870: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:7874: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + archive_cmds= + archive_expsym_cmds= + old_archive_From_new_cmds= + old_archive_from_expsyms_cmds= + export_dynamic_flag_spec= + whole_archive_flag_spec= + thread_safe_flag_spec= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + always_export_symbols=no + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix3*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + link_all_deplibs=no + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + +# Report which library types will actually be built +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler \ + CC \ + LD \ + lt_prog_compiler_wl \ + lt_prog_compiler_pic \ + lt_prog_compiler_static \ + lt_prog_compiler_no_builtin_flag \ + export_dynamic_flag_spec \ + thread_safe_flag_spec \ + whole_archive_flag_spec \ + enable_shared_with_static_runtimes \ + old_archive_cmds \ + old_archive_from_new_cmds \ + predep_objects \ + postdep_objects \ + predeps \ + postdeps \ + compiler_lib_search_path \ + archive_cmds \ + archive_expsym_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + old_archive_from_expsyms_cmds \ + allow_undefined_flag \ + no_undefined_flag \ + export_symbols_cmds \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ + hardcode_automatic \ + module_cmds \ + module_expsym_cmds \ + lt_cv_prog_compiler_c_o \ + exclude_expsyms \ + include_expsyms; do + + case $var in + old_archive_cmds | \ + old_archive_from_new_cmds | \ + archive_cmds | \ + archive_expsym_cmds | \ + module_cmds | \ + module_expsym_cmds | \ + old_archive_from_expsyms_cmds | \ + export_symbols_cmds | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + { echo "$as_me:$LINENO: creating $ofile" >&5 +echo "$as_me: creating $ofile" >&6;} + + cat <<__EOF__ >> "$cfgfile" +#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + +# Check whether --with-tags was given. +if test "${with_tags+set}" = set; then + withval=$with_tags; tagnames="$withval" +fi + + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + else + { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in + "") ;; + *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +echo "$as_me: error: invalid tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { (exit 1); exit 1; }; } + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +compiler_CXX=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +else + lt_prog_compiler_no_builtin_flag_CXX= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +ld_shlibs_CXX=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_CXX=yes + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_CXX=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs_CXX=no + ;; + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + gnu*) + ;; + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_CXX='+b $libdir' + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + interix3*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + openbsd*) + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; +esac +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +GCC_CXX="$GXX" +LD_CXX="$LD" + + +cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$rm -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix3*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +solaris*) + case $cc_basename in + CC*) + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + postdeps_CXX='-lCstd -lCrun' + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + +lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_CXX='-qnocommon' + lt_prog_compiler_wl_CXX='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:12779: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:12783: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_CXX=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_CXX=yes + fi + else + lt_prog_compiler_static_works_CXX=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:12883: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:12887: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || \ + test -n "$runpath_var_CXX" || \ + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do + + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_CXX +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_CXX + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_CXX" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld + + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + +archive_cmds_need_lc_F77=no +allow_undefined_flag_F77= +always_export_symbols_F77=no +archive_expsym_cmds_F77= +export_dynamic_flag_spec_F77= +hardcode_direct_F77=no +hardcode_libdir_flag_spec_F77= +hardcode_libdir_flag_spec_ld_F77= +hardcode_libdir_separator_F77= +hardcode_minus_L_F77=no +hardcode_automatic_F77=no +module_cmds_F77= +module_expsym_cmds_F77= +link_all_deplibs_F77=unknown +old_archive_cmds_F77=$old_archive_cmds +no_undefined_flag_F77= +whole_archive_flag_spec_F77= +enable_shared_with_static_runtimes_F77=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +objext_F77=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code=" subroutine t\n return\n end\n" + +# Code to be used in simple link tests +lt_simple_link_test_code=" program t\n end\n" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +compiler_F77=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +GCC_F77="$G77" +LD_F77="$LD" + +lt_prog_compiler_wl_F77= +lt_prog_compiler_pic_F77= +lt_prog_compiler_static_F77= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_static_F77='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_F77='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_F77=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_F77=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_F77='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + else + lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_F77='-qnocommon' + lt_prog_compiler_wl_F77='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_F77='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_F77='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-fpic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_F77='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_F77='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_F77='-Qoption ld ';; + *) + lt_prog_compiler_wl_F77='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_F77='-Qoption ld ' + lt_prog_compiler_pic_F77='-PIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_F77='-Kconform_pic' + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_can_build_shared_F77=no + ;; + + uts4*) + lt_prog_compiler_pic_F77='-pic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_F77"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_F77=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_F77" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14444: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14448: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_F77=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } + +if test x"$lt_prog_compiler_pic_works_F77" = xyes; then + case $lt_prog_compiler_pic_F77 in + "" | " "*) ;; + *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; + esac +else + lt_prog_compiler_pic_F77= + lt_prog_compiler_can_build_shared_F77=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_F77= + ;; + *) + lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_F77=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_F77=yes + fi + else + lt_prog_compiler_static_works_F77=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } + +if test x"$lt_prog_compiler_static_works_F77" = xyes; then + : +else + lt_prog_compiler_static_F77= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_F77=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14548: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14552: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_F77=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_F77= + enable_shared_with_static_runtimes_F77=no + archive_cmds_F77= + archive_expsym_cmds_F77= + old_archive_From_new_cmds_F77= + old_archive_from_expsyms_cmds_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + thread_safe_flag_spec_F77= + hardcode_libdir_flag_spec_F77= + hardcode_libdir_flag_spec_ld_F77= + hardcode_libdir_separator_F77= + hardcode_direct_F77=no + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=unsupported + link_all_deplibs_F77=unknown + hardcode_automatic_F77=no + module_cmds_F77= + module_expsym_cmds_F77= + always_export_symbols_F77=no + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_F77= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_F77=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_F77='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_F77= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_F77=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_F77=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=no + enable_shared_with_static_runtimes_F77=yes + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_F77=no + fi + ;; + + interix3*) + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + link_all_deplibs_F77=no + else + ld_shlibs_F77=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_F77=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + + if test "$ld_shlibs_F77" = no; then + runpath_var= + hardcode_libdir_flag_spec_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=yes + archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_F77=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_F77=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_F77='' + hardcode_direct_F77=yes + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_F77=yes + else + # We have old collect2 + hardcode_direct_F77=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_F77=yes + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_libdir_separator_F77= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_F77=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_F77='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_F77="-z nodefs" + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_F77=' ${wl}-bernotok' + allow_undefined_flag_F77=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_F77='$convenience' + archive_cmds_need_lc_F77=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_F77=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_F77=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_F77=' ' + allow_undefined_flag_F77=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_F77='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_F77='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_F77=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_F77=no + hardcode_direct_F77=no + hardcode_automatic_F77=yes + hardcode_shlibpath_var_F77=unsupported + whole_archive_flag_spec_F77='' + link_all_deplibs_F77=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_F77=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + freebsd1*) + ld_shlibs_F77=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_F77='+b $libdir' + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + ;; + *) + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + link_all_deplibs_F77=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + newsos6) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_shlibpath_var_F77=no + ;; + + openbsd*) + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + ;; + *) + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + allow_undefined_flag_F77=unsupported + archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_F77='-rpath $libdir' + fi + hardcode_libdir_separator_F77=: + ;; + + solaris*) + no_undefined_flag_F77=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_shlibpath_var_F77=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_F77=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_F77='$CC -r -o $output$reload_objs' + hardcode_direct_F77=no + ;; + motorola) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv4.3*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_F77=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_F77='${wl}-z,text' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_F77='${wl}-z,text' + allow_undefined_flag_F77='${wl}-z,nodefs' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + export_dynamic_flag_spec_F77='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + *) + ld_shlibs_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +echo "${ECHO_T}$ld_shlibs_F77" >&6; } +test "$ld_shlibs_F77" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_F77" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_F77=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_F77 in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_F77 + pic_flag=$lt_prog_compiler_pic_F77 + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_F77 + allow_undefined_flag_F77= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_F77=no + else + archive_cmds_need_lc_F77=yes + fi + allow_undefined_flag_F77=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_F77= +if test -n "$hardcode_libdir_flag_spec_F77" || \ + test -n "$runpath_var_F77" || \ + test "X$hardcode_automatic_F77" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_F77" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && + test "$hardcode_minus_L_F77" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_F77=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_F77=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_F77=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +echo "${ECHO_T}$hardcode_action_F77" >&6; } + +if test "$hardcode_action_F77" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_F77 \ + CC_F77 \ + LD_F77 \ + lt_prog_compiler_wl_F77 \ + lt_prog_compiler_pic_F77 \ + lt_prog_compiler_static_F77 \ + lt_prog_compiler_no_builtin_flag_F77 \ + export_dynamic_flag_spec_F77 \ + thread_safe_flag_spec_F77 \ + whole_archive_flag_spec_F77 \ + enable_shared_with_static_runtimes_F77 \ + old_archive_cmds_F77 \ + old_archive_from_new_cmds_F77 \ + predep_objects_F77 \ + postdep_objects_F77 \ + predeps_F77 \ + postdeps_F77 \ + compiler_lib_search_path_F77 \ + archive_cmds_F77 \ + archive_expsym_cmds_F77 \ + postinstall_cmds_F77 \ + postuninstall_cmds_F77 \ + old_archive_from_expsyms_cmds_F77 \ + allow_undefined_flag_F77 \ + no_undefined_flag_F77 \ + export_symbols_cmds_F77 \ + hardcode_libdir_flag_spec_F77 \ + hardcode_libdir_flag_spec_ld_F77 \ + hardcode_libdir_separator_F77 \ + hardcode_automatic_F77 \ + module_cmds_F77 \ + module_expsym_cmds_F77 \ + lt_cv_prog_compiler_c_o_F77 \ + exclude_expsyms_F77 \ + include_expsyms_F77; do + + case $var in + old_archive_cmds_F77 | \ + old_archive_from_new_cmds_F77 | \ + archive_cmds_F77 | \ + archive_expsym_cmds_F77 | \ + module_cmds_F77 | \ + module_expsym_cmds_F77 | \ + old_archive_from_expsyms_cmds_F77 | \ + export_symbols_cmds_F77 | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_F77 + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_F77 + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_F77 + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_F77 + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_F77 + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_F77 +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_F77 + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_F77 +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_F77 +archive_expsym_cmds=$lt_archive_expsym_cmds_F77 +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_F77 +module_expsym_cmds=$lt_module_expsym_cmds_F77 + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_F77 + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_F77 + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_F77 + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_F77 + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_F77 + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_F77 + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_F77 + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_F77 + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_F77 + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_F77 + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_F77" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_F77 + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_F77 + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_F77 + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_F77 + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +objext_GCJ=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +compiler_GCJ=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +archive_cmds_need_lc_GCJ=no + +old_archive_cmds_GCJ=$old_archive_cmds + + +lt_prog_compiler_no_builtin_flag_GCJ= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:16767: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:16771: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl_GCJ= +lt_prog_compiler_pic_GCJ= +lt_prog_compiler_static_GCJ= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_static_GCJ='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_GCJ='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_GCJ=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_GCJ=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_GCJ='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + else + lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_GCJ='-qnocommon' + lt_prog_compiler_wl_GCJ='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-fpic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_GCJ='-Qoption ld ';; + *) + lt_prog_compiler_wl_GCJ='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_GCJ='-Qoption ld ' + lt_prog_compiler_pic_GCJ='-PIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_GCJ='-Kconform_pic' + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_can_build_shared_GCJ=no + ;; + + uts4*) + lt_prog_compiler_pic_GCJ='-pic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_GCJ"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_GCJ=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_GCJ" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:17035: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17039: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_GCJ=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then + case $lt_prog_compiler_pic_GCJ in + "" | " "*) ;; + *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; + esac +else + lt_prog_compiler_pic_GCJ= + lt_prog_compiler_can_build_shared_GCJ=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_GCJ= + ;; + *) + lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_GCJ=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_GCJ=yes + fi + else + lt_prog_compiler_static_works_GCJ=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then + : +else + lt_prog_compiler_static_GCJ= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_GCJ=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:17139: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:17143: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_GCJ=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_GCJ= + enable_shared_with_static_runtimes_GCJ=no + archive_cmds_GCJ= + archive_expsym_cmds_GCJ= + old_archive_From_new_cmds_GCJ= + old_archive_from_expsyms_cmds_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + thread_safe_flag_spec_GCJ= + hardcode_libdir_flag_spec_GCJ= + hardcode_libdir_flag_spec_ld_GCJ= + hardcode_libdir_separator_GCJ= + hardcode_direct_GCJ=no + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=unsupported + link_all_deplibs_GCJ=unknown + hardcode_automatic_GCJ=no + module_cmds_GCJ= + module_expsym_cmds_GCJ= + always_export_symbols_GCJ=no + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_GCJ= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_GCJ=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_GCJ= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_GCJ=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_GCJ=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=no + enable_shared_with_static_runtimes_GCJ=yes + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + interix3*) + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + link_all_deplibs_GCJ=no + else + ld_shlibs_GCJ=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_GCJ=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + + if test "$ld_shlibs_GCJ" = no; then + runpath_var= + hardcode_libdir_flag_spec_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=yes + archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_GCJ=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_GCJ=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_GCJ='' + hardcode_direct_GCJ=yes + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_GCJ=yes + else + # We have old collect2 + hardcode_direct_GCJ=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_GCJ=yes + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_libdir_separator_GCJ= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_GCJ=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_GCJ='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_GCJ="-z nodefs" + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_GCJ=' ${wl}-bernotok' + allow_undefined_flag_GCJ=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_GCJ='$convenience' + archive_cmds_need_lc_GCJ=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_GCJ=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_GCJ=' ' + allow_undefined_flag_GCJ=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_GCJ='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_GCJ=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_GCJ=no + hardcode_direct_GCJ=no + hardcode_automatic_GCJ=yes + hardcode_shlibpath_var_GCJ=unsupported + whole_archive_flag_spec_GCJ='' + link_all_deplibs_GCJ=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_GCJ=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + freebsd1*) + ld_shlibs_GCJ=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + ;; + *) + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + link_all_deplibs_GCJ=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + newsos6) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_shlibpath_var_GCJ=no + ;; + + openbsd*) + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + ;; + *) + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + allow_undefined_flag_GCJ=unsupported + archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_GCJ='-rpath $libdir' + fi + hardcode_libdir_separator_GCJ=: + ;; + + solaris*) + no_undefined_flag_GCJ=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_shlibpath_var_GCJ=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_GCJ=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_GCJ='$CC -r -o $output$reload_objs' + hardcode_direct_GCJ=no + ;; + motorola) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4.3*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_GCJ=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_GCJ='${wl}-z,text' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_GCJ='${wl}-z,text' + allow_undefined_flag_GCJ='${wl}-z,nodefs' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + *) + ld_shlibs_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +test "$ld_shlibs_GCJ" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_GCJ" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_GCJ=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_GCJ in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_GCJ + pic_flag=$lt_prog_compiler_pic_GCJ + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ + allow_undefined_flag_GCJ= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_GCJ=no + else + archive_cmds_need_lc_GCJ=yes + fi + allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var_GCJ" || \ + test "X$hardcode_automatic_GCJ" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6; } + +if test "$hardcode_action_GCJ" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_GCJ \ + CC_GCJ \ + LD_GCJ \ + lt_prog_compiler_wl_GCJ \ + lt_prog_compiler_pic_GCJ \ + lt_prog_compiler_static_GCJ \ + lt_prog_compiler_no_builtin_flag_GCJ \ + export_dynamic_flag_spec_GCJ \ + thread_safe_flag_spec_GCJ \ + whole_archive_flag_spec_GCJ \ + enable_shared_with_static_runtimes_GCJ \ + old_archive_cmds_GCJ \ + old_archive_from_new_cmds_GCJ \ + predep_objects_GCJ \ + postdep_objects_GCJ \ + predeps_GCJ \ + postdeps_GCJ \ + compiler_lib_search_path_GCJ \ + archive_cmds_GCJ \ + archive_expsym_cmds_GCJ \ + postinstall_cmds_GCJ \ + postuninstall_cmds_GCJ \ + old_archive_from_expsyms_cmds_GCJ \ + allow_undefined_flag_GCJ \ + no_undefined_flag_GCJ \ + export_symbols_cmds_GCJ \ + hardcode_libdir_flag_spec_GCJ \ + hardcode_libdir_flag_spec_ld_GCJ \ + hardcode_libdir_separator_GCJ \ + hardcode_automatic_GCJ \ + module_cmds_GCJ \ + module_expsym_cmds_GCJ \ + lt_cv_prog_compiler_c_o_GCJ \ + exclude_expsyms_GCJ \ + include_expsyms_GCJ; do + + case $var in + old_archive_cmds_GCJ | \ + old_archive_from_new_cmds_GCJ | \ + archive_cmds_GCJ | \ + archive_expsym_cmds_GCJ | \ + module_cmds_GCJ | \ + module_expsym_cmds_GCJ | \ + old_archive_from_expsyms_cmds_GCJ | \ + export_symbols_cmds_GCJ | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_GCJ + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_GCJ + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_GCJ + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_GCJ + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_GCJ + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_GCJ +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_GCJ + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_GCJ +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_GCJ +archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_GCJ +module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_GCJ + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_GCJ + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_GCJ + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_GCJ + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_GCJ + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_GCJ + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_GCJ + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_GCJ + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_GCJ + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_GCJ" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_GCJ + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_GCJ + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_GCJ + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_GCJ + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + RC) + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +compiler_RC=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + +lt_cv_prog_compiler_c_o_RC=yes + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_RC \ + CC_RC \ + LD_RC \ + lt_prog_compiler_wl_RC \ + lt_prog_compiler_pic_RC \ + lt_prog_compiler_static_RC \ + lt_prog_compiler_no_builtin_flag_RC \ + export_dynamic_flag_spec_RC \ + thread_safe_flag_spec_RC \ + whole_archive_flag_spec_RC \ + enable_shared_with_static_runtimes_RC \ + old_archive_cmds_RC \ + old_archive_from_new_cmds_RC \ + predep_objects_RC \ + postdep_objects_RC \ + predeps_RC \ + postdeps_RC \ + compiler_lib_search_path_RC \ + archive_cmds_RC \ + archive_expsym_cmds_RC \ + postinstall_cmds_RC \ + postuninstall_cmds_RC \ + old_archive_from_expsyms_cmds_RC \ + allow_undefined_flag_RC \ + no_undefined_flag_RC \ + export_symbols_cmds_RC \ + hardcode_libdir_flag_spec_RC \ + hardcode_libdir_flag_spec_ld_RC \ + hardcode_libdir_separator_RC \ + hardcode_automatic_RC \ + module_cmds_RC \ + module_expsym_cmds_RC \ + lt_cv_prog_compiler_c_o_RC \ + exclude_expsyms_RC \ + include_expsyms_RC; do + + case $var in + old_archive_cmds_RC | \ + old_archive_from_new_cmds_RC | \ + archive_cmds_RC | \ + archive_expsym_cmds_RC | \ + module_cmds_RC | \ + module_expsym_cmds_RC | \ + old_archive_from_expsyms_cmds_RC | \ + export_symbols_cmds_RC | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_RC + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_RC + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_RC +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_predep_objects_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_postdep_objects_RC + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_RC + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_RC + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_RC + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_RC" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + ;; + + *) + { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi +fi + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Prevent multiple expansion + + + + + + + + + + + + + + + + + + + + +# Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_pkgconfigpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $pkgconfigpath in + [\\/]* | ?:[\\/]*) + ac_cv_path_pkgconfigpath="$pkgconfigpath" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_pkgconfigpath="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_pkgconfigpath" && ac_cv_path_pkgconfigpath="NONE" + ;; +esac +fi +pkgconfigpath=$ac_cv_path_pkgconfigpath +if test -n "$pkgconfigpath"; then + { echo "$as_me:$LINENO: result: $pkgconfigpath" >&5 +echo "${ECHO_T}$pkgconfigpath" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + +XSLTPROC_COMPILE='xsltproc -path ".:$(srcdir)"' + +MAN_COMPILE='$(XSLTPROC_COMPILE) common/id.man.xsl' + +HTML_COMPILE='$(XSLTPROC_COMPILE) common/id.htmlhelp.xsl' + +TKL_COMPILE='$(XSLTPROC_COMPILE) common/id.tkl.xsl' + + + +# Check whether --with-docbook-dtd was given. +if test "${with_docbook_dtd+set}" = set; then + withval=$with_docbook_dtd; + if test -f "$withval/docbookx.dtd"; then + DTD_DIR=$withval + fi + +else + + { echo "$as_me:$LINENO: checking for docbookx.dtd" >&5 +echo $ECHO_N "checking for docbookx.dtd... $ECHO_C" >&6; } + DTD_DIR="" + for d in /usr/lib/sgml/dtd/docbook-xml \ + /usr/share/sgml/docbook/dtd/4.2 \ + /usr/share/sgml/docbook/dtd/xml/4.* \ + /usr/share/sgml/docbook/xml-dtd-4.* \ + /usr/local/share/xml/docbook/4.* + do + if test -f $d/docbookx.dtd; then + DTD_DIR=$d + fi + done + if test -z "$DTD_DIR"; then + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + else + { echo "$as_me:$LINENO: result: $d" >&5 +echo "${ECHO_T}$d" >&6; } + fi + +fi + + + +# Check whether --with-docbook-dsssl was given. +if test "${with_docbook_dsssl+set}" = set; then + withval=$with_docbook_dsssl; + if test -f "$withval/html/docbook.dsl"; then + DSSSL_DIR=$withval + fi + +else + + { echo "$as_me:$LINENO: checking for docbook.dsl" >&5 +echo $ECHO_N "checking for docbook.dsl... $ECHO_C" >&6; } + DSSSL_DIR="" + for d in /usr/share/sgml/docbook/stylesheet/dsssl/modular \ + /usr/share/sgml/docbook/dsssl-stylesheets-1.* \ + /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh \ + /usr/local/share/sgml/docbook/dsssl/modular + do + if test -f $d/html/docbook.dsl; then + { echo "$as_me:$LINENO: result: $d" >&5 +echo "${ECHO_T}$d" >&6; } + DSSSL_DIR=$d + break + fi + done + if test -z "$DSSSL_DIR"; then + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + fi + +fi + + + +# Check whether --with-docbook-xsl was given. +if test "${with_docbook_xsl+set}" = set; then + withval=$with_docbook_xsl; + if test -f "$withval/htmlhelp/htmlhelp.xsl"; then + XSL_DIR=$withval + fi + +else + + { echo "$as_me:$LINENO: checking for htmlhelp.xsl" >&5 +echo $ECHO_N "checking for htmlhelp.xsl... $ECHO_C" >&6; } + for d in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh \ + /usr/local/share/xsl/docbook \ + /usr/share/sgml/docbook/xsl-stylesheets-1.* + do + if test -f $d/htmlhelp/htmlhelp.xsl; then + { echo "$as_me:$LINENO: result: $d" >&5 +echo "${ECHO_T}$d" >&6; } + XSL_DIR=$d + break + fi + done + if test -z "$XSL_DIR"; then + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + fi + +fi + + + + + + + + + + + + + + + + +for ac_header in dirent.h fnmatch.h wchar.h locale.h langinfo.h pwd.h sys/select.h sys/socket.h sys/stat.h sys/time.h sys/types.h sys/un.h sys/wait.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +if test "$ac_cv_header_stdc" = "no"; then + { echo "$as_me:$LINENO: WARNING: Your system doesn not seem to support ANSI C" >&5 +echo "$as_me: WARNING: Your system doesn not seem to support ANSI C" >&2;} +fi +{ echo "$as_me:$LINENO: checking for long long" >&5 +echo $ECHO_N "checking for long long... $ECHO_C" >&6; } +if test "${ac_cv_type_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef long long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_long_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 +echo "${ECHO_T}$ac_cv_type_long_long" >&6; } +if test $ac_cv_type_long_long = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_LONG_LONG 1 +_ACEOF + + +fi + +checkBoth=0 +{ echo "$as_me:$LINENO: checking for connect" >&5 +echo $ECHO_N "checking for connect... $ECHO_C" >&6; } +if test "${ac_cv_func_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_connect || defined __stub___connect +choke me +#endif + +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_connect=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +echo "${ECHO_T}$ac_cv_func_connect" >&6; } + +if test "$ac_cv_func_connect" = "no"; then + { echo "$as_me:$LINENO: checking for main in -lsocket" >&5 +echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_main=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_main" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_main" >&6; } +if test $ac_cv_lib_socket_main = yes; then + LIBS="$LIBS -lsocket" +else + checkBoth=1 +fi + +fi +if test "$checkBoth" = "1"; then + oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + { echo "$as_me:$LINENO: checking for accept" >&5 +echo $ECHO_N "checking for accept... $ECHO_C" >&6; } +if test "${ac_cv_func_accept+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define accept to an innocuous variant, in case declares accept. + For example, HP-UX 11i declares gettimeofday. */ +#define accept innocuous_accept + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char accept (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef accept + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char accept (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_accept || defined __stub___accept +choke me +#endif + +int +main () +{ +return accept (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_accept=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_accept=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_accept" >&5 +echo "${ECHO_T}$ac_cv_func_accept" >&6; } +if test $ac_cv_func_accept = yes; then + : +else + LIBS=$oldLibs +fi + +fi +{ echo "$as_me:$LINENO: checking for gethostbyname" >&5 +echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; } +if test "${ac_cv_func_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gethostbyname || defined __stub___gethostbyname +choke me +#endif + +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_gethostbyname=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; } +if test $ac_cv_func_gethostbyname = yes; then + : +else + { echo "$as_me:$LINENO: checking for main in -lnsl" >&5 +echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6; } +if test "${ac_cv_lib_nsl_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nsl_main=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6; } +if test $ac_cv_lib_nsl_main = yes; then + LIBS="$LIBS -lnsl" +fi + +fi + + +openssl=default + +# Check whether --with-openssl was given. +if test "${with_openssl+set}" = set; then + withval=$with_openssl; openssl=$withval +fi + +SSL_CFLAGS="" +SSL_LIBPATH="" +if test "$openssl" != "no"; then + sslver=no + if test "$openssl" != "yes" -a "$openssl" != "default"; then + if test -x $openssl/bin/pkg-config; then + if $openssl/bin/pkg-config --exists openssl; then + SSL_CFLAGS=`$openssl/bin/pkg-config --cflags openssl` + LIBS="$LIBS `$openssl/bin/pkg-config --libs openssl`" + sslver=`$openssl/bin/pkg-config --modversion openssl` + fi + fi + if test "$sslver" = "no"; then + SSL_CFLAGS="-I$openssl/include -I$openssl/include/openssl" + SSL_LIBPATH="-L$openssl/lib" + fi + else + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists openssl; then + SSL_CFLAGS=`$pkgconfigpath --cflags openssl` + LIBS="$LIBS `$pkgconfigpath --libs openssl`" + sslver=`$pkgconfigpath --modversion openssl` + fi + fi + if test "$sslver" = "no"; then + SSL_CFLAGS="-I/usr/include/openssl" + fi + fi + if test "$sslver" = "no"; then + xLIBS="$LIBS"; + xCPPFLAGS="$CPPFLAGS"; + CPPFLAGS="$CPPFLAGS $SSL_CFLAGS $SSL_LIBPATH" + +{ echo "$as_me:$LINENO: checking for main in -lcrypto" >&5 +echo $ECHO_N "checking for main in -lcrypto... $ECHO_C" >&6; } +if test "${ac_cv_lib_crypto_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_crypto_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_crypto_main=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_main" >&5 +echo "${ECHO_T}$ac_cv_lib_crypto_main" >&6; } +if test $ac_cv_lib_crypto_main = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBCRYPTO 1 +_ACEOF + + LIBS="-lcrypto $LIBS" + +fi + + +{ echo "$as_me:$LINENO: checking for SSL_new in -lssl" >&5 +echo $ECHO_N "checking for SSL_new in -lssl... $ECHO_C" >&6; } +if test "${ac_cv_lib_ssl_SSL_new+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lssl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_new (); +int +main () +{ +return SSL_new (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ssl_SSL_new=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ssl_SSL_new=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ssl_SSL_new" >&5 +echo "${ECHO_T}$ac_cv_lib_ssl_SSL_new" >&6; } +if test $ac_cv_lib_ssl_SSL_new = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSSL 1 +_ACEOF + + LIBS="-lssl $LIBS" + +fi + + if test "$ac_cv_lib_ssl_SSL_new" = "yes"; then + if test "${ac_cv_header_openssl_ssl_h+set}" = set; then + { echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5 +echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6; } +if test "${ac_cv_header_openssl_ssl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5 +echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking openssl/ssl.h usability" >&5 +echo $ECHO_N "checking openssl/ssl.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking openssl/ssl.h presence" >&5 +echo $ECHO_N "checking openssl/ssl.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: openssl/ssl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: openssl/ssl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: openssl/ssl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: openssl/ssl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: openssl/ssl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: openssl/ssl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: openssl/ssl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: openssl/ssl.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for openssl/ssl.h" >&5 +echo $ECHO_N "checking for openssl/ssl.h... $ECHO_C" >&6; } +if test "${ac_cv_header_openssl_ssl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_openssl_ssl_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_openssl_ssl_h" >&5 +echo "${ECHO_T}$ac_cv_header_openssl_ssl_h" >&6; } + +fi +if test $ac_cv_header_openssl_ssl_h = yes; then + sslver=yes +fi + + + LIBS="$SSL_LIBPATH $LIBS" + fi + if test "$sslver" != "yes"; then + LIBS="$xLIBS" + fi + CPPFLAGS="$xCPPFLAGS" + fi + { echo "$as_me:$LINENO: checking for SSL" >&5 +echo $ECHO_N "checking for SSL... $ECHO_C" >&6; } + if test "$sslver" != "no"; then + SSL_CFLAGS="-DHAVE_OPENSSL_SSL_H=1 $SSL_CFLAGS" + { echo "$as_me:$LINENO: result: $sslver" >&5 +echo "${ECHO_T}$sslver" >&6; } + else + SSL_CFLAGS="" + { echo "$as_me:$LINENO: result: None" >&5 +echo "${ECHO_T}None" >&6; } + if test "$openssl" != "default"; then + { { echo "$as_me:$LINENO: error: OpenSSL development libraries missing" >&5 +echo "$as_me: error: OpenSSL development libraries missing" >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +READLINE_SHARED_LIBADD="" +{ echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 +echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6; } +if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lncurses $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tgetent (); +int +main () +{ +return tgetent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_ncurses_tgetent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_ncurses_tgetent=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 +echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6; } +if test $ac_cv_lib_ncurses_tgetent = yes; then + READLINE_SHARED_LIBADD="-lncurses" +else + { echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 +echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6; } +if test "${ac_cv_lib_termcap_tgetent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltermcap $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char tgetent (); +int +main () +{ +return tgetent (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_termcap_tgetent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_termcap_tgetent=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 +echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6; } +if test $ac_cv_lib_termcap_tgetent = yes; then + READLINE_SHARED_LIBADD="-ltermcap" +fi + + +fi + +READLINE_LIBS="" +{ echo "$as_me:$LINENO: checking for readline in -lreadline" >&5 +echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6; } +if test "${ac_cv_lib_readline_readline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lreadline $READLINE_SHARED_LIBADD $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char readline (); +int +main () +{ +return readline (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_readline_readline=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_readline_readline=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5 +echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6; } +if test $ac_cv_lib_readline_readline = yes; then + READLINE_LIBS="$READLINE_LIBS -lreadline $READLINE_SHARED_LIBADD" +fi + +{ echo "$as_me:$LINENO: checking for add_history in -lhistory" >&5 +echo $ECHO_N "checking for add_history in -lhistory... $ECHO_C" >&6; } +if test "${ac_cv_lib_history_add_history+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lhistory $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char add_history (); +int +main () +{ +return add_history (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_history_add_history=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_history_add_history=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_history_add_history" >&5 +echo "${ECHO_T}$ac_cv_lib_history_add_history" >&6; } +if test $ac_cv_lib_history_add_history = yes; then + READLINE_LIBS="$READLINE_LIBS -lhistory" +fi + +if test "$ac_cv_lib_readline_readline" = "yes"; then + + +for ac_header in readline/readline.h readline/history.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + xLIBS=$LIBS + LIBS="$LIBS $READLINE_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + rl_attempted_completion_over = 0; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE_COMPLETION_OVER 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + rl_completion_matches (0, 0); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_READLINE_RL_COMPLETION_MATCHES 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$xLIBS +fi + +# Check whether --with-iconv was given. +if test "${with_iconv+set}" = set; then + withval=$with_iconv; +fi + +if test "$with_iconv" != "no"; then + { echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } + oldLIBS="$LIBS" + oldCPPFLAGS="${CPPFLAGS}" + if test "$with_iconv" != "yes" -a "$with_iconv" != ""; then + LIBS="$LIBS -L${with_iconv}/lib" + CPPFLAGS="${CPPFLAGS} -I${with_iconv}/include" + fi + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + +int +main () +{ + + iconv_t t = iconv_open("", ""); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV_H 1 +_ACEOF + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + LIBS="$LIBS -liconv" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + +int +main () +{ + + iconv_t t = iconv_open("", ""); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV_H 1 +_ACEOF + + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + LIBS="$oldLIBS" + CPPFLAGS="$oldCPPFLAGS" + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + + + + + + +for ac_func in getaddrinfo vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64 +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +case $host in + *-*-darwin*) + trypoll="no"; + ;; + *) + trypoll="yes"; + ;; +esac + +if test "$ac_cv_func_poll" = "yes" -a "$trypoll" = "yes"; then + +for ac_header in sys/poll.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi +{ echo "$as_me:$LINENO: checking for socklen_t" >&5 +echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } +if test "${ac_cv_check_socklen_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_check_socklen_t='' + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif +#define try 1 +#ifdef AIX +#if AIX >= 51 +#define try 0 +#endif +#endif +#if try +extern int accept(int, struct sockaddr *, socklen_t *); +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_check_socklen_t=socklen_t +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif +#define try 1 +#ifdef AIX +#if AIX >= 42 +#define try 0 +#endif +#endif +#if try +extern int accept(int, struct sockaddr *, size_t t *); +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_check_socklen_t=size_t +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_check_socklen_t=int +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + +{ echo "$as_me:$LINENO: result: $ac_cv_check_socklen_t" >&5 +echo "${ECHO_T}$ac_cv_check_socklen_t" >&6; } +cat >>confdefs.h <<_ACEOF +#define YAZ_SOCKLEN_T $ac_cv_check_socklen_t +_ACEOF + +cat >>confdefs.h <<\_ACEOF +#define YAZ_USE_NEW_LOG 1 +_ACEOF + +# Check whether --enable-tcpd was given. +if test "${enable_tcpd+set}" = set; then + enableval=$enable_tcpd; +fi + +if test "$enable_tcpd" -a "$enable_tcpd" != "no"; then + oldLibs=$LIBS + oldCPPFLAGS=$CPPFLAGS + if test "$enable_tcpd" != "yes"; then + LIBS="$LIBS -L$enable_tcpd/lib" + CPPFLAGS="$CPPFLAGS -I$enable_tcpd/include" + fi + { echo "$as_me:$LINENO: checking for working tcpd.h" >&5 +echo $ECHO_N "checking for working tcpd.h... $ECHO_C" >&6; } + LIBS="$LIBS -lwrap -lnsl" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + int allow_severity = LOG_INFO; + int deny_severity = LOG_WARNING; +int +main () +{ +struct request_info request_info; int i; + i = hosts_access(&request_info); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + tcpd_ok=1 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + tcpd_ok=0 +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$tcpd_ok" = "0"; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { { echo "$as_me:$LINENO: error: tcpd development libraries missing" >&5 +echo "$as_me: error: tcpd development libraries missing" >&2;} + { (exit 1); exit 1; }; } + LIBS=$oldLibs + CPPFLAGS=$oldCPPFLAGS + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + cat >>confdefs.h <<\_ACEOF +#define HAVE_TCPD_H 1 +_ACEOF + + fi +fi + +HAVETHREADS=0 +THREAD_CFLAGS="" +LIBTHREAD="" +# Check whether --enable-pth was given. +if test "${enable_pth+set}" = set; then + enableval=$enable_pth; enable_pth=$enableval +else + enable_pth=no +fi + + +if test "$enable_pth" = "yes"; then + OLIBS=$LIBS + +{ echo "$as_me:$LINENO: checking for main in -lpth" >&5 +echo $ECHO_N "checking for main in -lpth... $ECHO_C" >&6; } +if test "${ac_cv_lib_pth_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpth $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pth_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_pth_main=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_pth_main" >&5 +echo "${ECHO_T}$ac_cv_lib_pth_main" >&6; } +if test $ac_cv_lib_pth_main = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTH 1 +_ACEOF + + LIBS="-lpth $LIBS" + +fi + + if test "$ac_cv_lib_pth_main" = "yes"; then + +for ac_header in pth.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## -------------------------------- ## +## Report this to adam@indexdata.dk ## +## -------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test "$ac_cv_header_pth_h" = "yes"; then + LIBTHREAD="-lpth" + THREAD_CFLAGS="-DYAZ_GNU_THREADS=1" + HAVETHREADS=1 + fi + fi + LIBS="$OLIBS $LIBTHREAD" +fi +# Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then + enableval=$enable_threads; enable_threads=$enableval +else + enable_threads=yes +fi + +if test "$enable_threads" = "yes" -a "$HAVETHREADS" = "0"; then + OLIBS=$LIBS + OCC=$CC + +{ echo "$as_me:$LINENO: checking for main in -lpthread" >&5 +echo $ECHO_N "checking for main in -lpthread... $ECHO_C" >&6; } +if test "${ac_cv_lib_pthread_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthread_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_pthread_main=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_main" >&6; } +if test $ac_cv_lib_pthread_main = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +fi + + { echo "$as_me:$LINENO: checking for working POSIX Threads" >&5 +echo $ECHO_N "checking for working POSIX Threads... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + void *func(void *p) { return 0; } + +int +main () +{ + + pthread_t pthread_id; + pthread_create (&pthread_id, 0, func, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + thread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + thread_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$thread_ok" = "yes"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + LIBTHREAD="-lpthread" + THREAD_CFLAGS="-DYAZ_POSIX_THREADS=1 -D_REENTRANT" + HAVETHREADS=1 + else + CC="$CC -pthread" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + void *func(void *p) { return 0; } + +int +main () +{ + + pthread_t pthread_id; + pthread_create (&pthread_id, 0, func, 0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + thread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + thread_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$thread_ok" = "yes"; then + { echo "$as_me:$LINENO: result: yes,BSD" >&5 +echo "${ECHO_T}yes,BSD" >&6; } + THREAD_CFLAGS="-pthread -DYAZ_POSIX_THREADS=1 -D_REENTRANT" + LIBTHREAD="-pthread" + HAVETHREADS=1 + fi + fi + if test "$thread_ok" = "no"; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + CC=$OCC + LIBS="$OLIBS $LIBTHREAD" +fi + + + +YAZ_CONFIG_CFLAGS="" + + +# Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_pkgconfigpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $pkgconfigpath in + [\\/]* | ?:[\\/]*) + ac_cv_path_pkgconfigpath="$pkgconfigpath" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_pkgconfigpath="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_pkgconfigpath" && ac_cv_path_pkgconfigpath="NONE" + ;; +esac +fi +pkgconfigpath=$ac_cv_path_pkgconfigpath +if test -n "$pkgconfigpath"; then + { echo "$as_me:$LINENO: result: $pkgconfigpath" >&5 +echo "${ECHO_T}$pkgconfigpath" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +xml2dir=default +XML2_VER="" + +# Check whether --with-xml2 was given. +if test "${with_xml2+set}" = set; then + withval=$with_xml2; xml2dir=$withval +fi + +if test "$xml2dir" = "yes" -o "$xml2dir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists libxml-2.0; then + pkgmodule="libxml-2.0" + fi + fi + if test -z "$pkgmodule"; then + for d in /usr /usr/local; do + if test -x $d/bin/xml2-config; then + xml2dir=$d + fi + done + fi +fi +if test "$xml2dir" != "no"; then + { echo "$as_me:$LINENO: checking for libXML2" >&5 +echo $ECHO_N "checking for libXML2... $ECHO_C" >&6; } + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + XML2_VER=`$pkgconfigpath --modversion $pkgmodule` + { echo "$as_me:$LINENO: result: $XML2_VER" >&5 +echo "${ECHO_T}$XML2_VER" >&6; } + + cat >>confdefs.h <<\_ACEOF +#define YAZ_HAVE_XML2 1 +_ACEOF + + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XML2=1" + + + elif test -x $xml2dir/bin/xml2-config; then + XML2_LIBS=`$xml2dir/bin/xml2-config --libs` + XML2_CFLAGS=`$xml2dir/bin/xml2-config --cflags` + XML2_VER=`$xml2dir/bin/xml2-config --version` + { echo "$as_me:$LINENO: result: $XML2_VER" >&5 +echo "${ECHO_T}$XML2_VER" >&6; } + + cat >>confdefs.h <<\_ACEOF +#define YAZ_HAVE_XML2 1 +_ACEOF + + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XML2=1" + + + else + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + if test "$xml2dir" = "default"; then + { echo "$as_me:$LINENO: WARNING: libxml2 development libraries not found." >&5 +echo "$as_me: WARNING: libxml2 development libraries not found." >&2;} + { echo "$as_me:$LINENO: WARNING: There will be no support for SRU." >&5 +echo "$as_me: WARNING: There will be no support for SRU." >&2;} + else + { { echo "$as_me:$LINENO: error: libxml2 development libraries not found." >&5 +echo "$as_me: error: libxml2 development libraries not found." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi + + + + xsltdir=default +pkgmodule="" +XSLT_VER="" + +# Check whether --with-xslt was given. +if test "${with_xslt+set}" = set; then + withval=$with_xslt; xsltdir=$withval +fi + + +if test "$xsltdir" = "yes" -o "$xsltdir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + # pkg-config on woody reports bad CFLAGS which does + # not include libxml2 CFLAGS, so avoid it.. + if $pkgconfigpath --atleast-version 1.1.0 libxslt; then + pkgmodule="libxslt" + fi + fi + if test -z "$pkgmodule"; then + for d in /usr /usr/local; do + if test -x $d/bin/xslt-config; then + xsltdir=$d + fi + done + fi +fi +if test "$xsltdir" != "no"; then + { echo "$as_me:$LINENO: checking for libXSLT" >&5 +echo $ECHO_N "checking for libXSLT... $ECHO_C" >&6; } + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + XSLT_VER=`$pkgconfigpath --modversion $pkgmodule` + { echo "$as_me:$LINENO: result: $XSLT_VER" >&5 +echo "${ECHO_T}$XSLT_VER" >&6; } + + cat >>confdefs.h <<\_ACEOF +#define YAZ_HAVE_XSLT 1 +_ACEOF + + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XSLT=1" + + + elif test -x $xsltdir/bin/xslt-config; then + XML2_LIBS=`$xsltdir/bin/xslt-config --libs` + XML2_CFLAGS=`$xsltdir/bin/xslt-config --cflags` + XSLT_VER=`$xsltdir/bin/xslt-config --version` + { echo "$as_me:$LINENO: result: $XSLT_VER" >&5 +echo "${ECHO_T}$XSLT_VER" >&6; } + + cat >>confdefs.h <<\_ACEOF +#define YAZ_HAVE_XSLT 1 +_ACEOF + + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XSLT=1" + + + else + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + + if test "$xsltdir" = "default"; then + { echo "$as_me:$LINENO: WARNING: libXSLT development libraries not found." >&5 +echo "$as_me: WARNING: libXSLT development libraries not found." >&2;} + else + { { echo "$as_me:$LINENO: error: libXSLT development libraries not found." >&5 +echo "$as_me: error: libXSLT development libraries not found." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi + + +exsltdir=default +pkgmodule="" +EXSLT_VER="" + +# Check whether --with-exslt was given. +if test "${with_exslt+set}" = set; then + withval=$with_exslt; exsltdir=$withval +fi + +if test "$exsltdir" = "yes" -o "$exsltdir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists libexslt; then + pkgmodule="libexslt" + fi + fi +fi +if test "$exsltdir" != "no"; then + { echo "$as_me:$LINENO: checking for libEXSLT" >&5 +echo $ECHO_N "checking for libEXSLT... $ECHO_C" >&6; } + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + EXSLT_VER=`$pkgconfigpath --modversion $pkgmodule` + { echo "$as_me:$LINENO: result: $EXSLT_VER" >&5 +echo "${ECHO_T}$EXSLT_VER" >&6; } + + cat >>confdefs.h <<\_ACEOF +#define YAZ_HAVE_EXSLT 1 +_ACEOF + + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_EXSLT=1" + + + else + { echo "$as_me:$LINENO: result: Not found" >&5 +echo "${ECHO_T}Not found" >&6; } + + if test "$pkgconfigpath" = "NONE"; then + extra="libEXSLT not enabled. pkg-config not found." + else + extra="libEXSLT development libraries not found." + fi + + if test "$exsltdir" = "default"; then + { echo "$as_me:$LINENO: WARNING: $extra" >&5 +echo "$as_me: WARNING: $extra" >&2;} + else + { { echo "$as_me:$LINENO: error: $extra" >&5 +echo "$as_me: error: $extra" >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +OLIBS=$LIBS +LIBS="$LIBS $XML2_LIBS" + +for ac_func in xsltSaveResultToString +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +LIBS=$OLIBS + + +YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS $XML2_CFLAGS" + +if test "$XML2_LIBS"; then + LIBS="$XML2_LIBS $LIBS" +fi + +# Check whether --enable-memdebug was given. +if test "${enable_memdebug+set}" = set; then + enableval=$enable_memdebug; enable_memdebug=$enableval +else + enable_memdebug=none +fi + +if test "$enable_memdebug" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define TRACE_XMALLOC 2 +_ACEOF + +elif test "$enable_memdebug" = "no"; then + cat >>confdefs.h <<\_ACEOF +#define TRACE_XMALLOC 0 +_ACEOF + +fi + + +YAZ_SRC_ROOT=`cd ${srcdir}; pwd` +YAZ_BUILD_ROOT=`pwd` +ac_config_files="$ac_config_files Makefile yaz.spec src/Makefile test/Makefile util/Makefile include/Makefile include/yaz/Makefile client/Makefile ztest/Makefile zoom/Makefile doc/Makefile doc/local.ent doc/common/Makefile doc/common/print.dsl etc/Makefile yaz-config Doxyfile" + +ac_config_commands="$ac_config_commands default" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +# Find out whether ``test -x'' works. Don't use a zero-byte file, as +# systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + as_executable_p="test -x" +else + as_executable_p=: +fi +rm -f conf$$.file + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by yaz $as_me 2.1.28, which was +generated by GNU Autoconf 2.60. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +yaz config.status 2.1.28 +configured by $0, generated by GNU Autoconf 2.60, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "yaz.spec") CONFIG_FILES="$CONFIG_FILES yaz.spec" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; + "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "include/yaz/Makefile") CONFIG_FILES="$CONFIG_FILES include/yaz/Makefile" ;; + "client/Makefile") CONFIG_FILES="$CONFIG_FILES client/Makefile" ;; + "ztest/Makefile") CONFIG_FILES="$CONFIG_FILES ztest/Makefile" ;; + "zoom/Makefile") CONFIG_FILES="$CONFIG_FILES zoom/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/local.ent") CONFIG_FILES="$CONFIG_FILES doc/local.ent" ;; + "doc/common/Makefile") CONFIG_FILES="$CONFIG_FILES doc/common/Makefile" ;; + "doc/common/print.dsl") CONFIG_FILES="$CONFIG_FILES doc/common/print.dsl" ;; + "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;; + "yaz-config") CONFIG_FILES="$CONFIG_FILES yaz-config" ;; + "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +AMTAR!$AMTAR$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +READLINE_LIBS!$READLINE_LIBS$ac_delim +YAZ_CONF_CFLAGS!$YAZ_CONF_CFLAGS$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +CPP!$CPP$ac_delim +YACC!$YACC$ac_delim +TCLSH!$TCLSH$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LN_S!$LN_S$ac_delim +ECHO!$ECHO$ac_delim +AR!$AR$ac_delim +RANLIB!$RANLIB$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +CXXCPP!$CXXCPP$ac_delim +F77!$F77$ac_delim +FFLAGS!$FFLAGS$ac_delim +ac_ct_F77!$ac_ct_F77$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +pkgconfigpath!$pkgconfigpath$ac_delim +XSLTPROC_COMPILE!$XSLTPROC_COMPILE$ac_delim +MAN_COMPILE!$MAN_COMPILE$ac_delim +HTML_COMPILE!$HTML_COMPILE$ac_delim +TKL_COMPILE!$TKL_COMPILE$ac_delim +DTD_DIR!$DTD_DIR$ac_delim +DSSSL_DIR!$DSSSL_DIR$ac_delim +XSL_DIR!$XSL_DIR$ac_delim +SSL_CFLAGS!$SSL_CFLAGS$ac_delim +THREAD_CFLAGS!$THREAD_CFLAGS$ac_delim +LIBPTH!$LIBPTH$ac_delim +XML2_CFLAGS!$XML2_CFLAGS$ac_delim +YAZ_CONFIG_CFLAGS!$YAZ_CONFIG_CFLAGS$ac_delim +YAZ_SRC_ROOT!$YAZ_SRC_ROOT$ac_delim +YAZ_BUILD_ROOT!$YAZ_BUILD_ROOT$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + "default":C) sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + + +echo \ +"------------------------------------------------------------------------ +Configuration: + + YAZ Package: ${PACKAGE} + YAZ Version: ${VERSION} + Bugreport: ${PACKAGE_BUGREPORT} + Source code location: ${srcdir} + C Preprocessor: ${CPP} + C Preprocessor flags: ${CPPFLAGS} + C Compiler: ${CC} + C Compiler flags: ${CFLAGS} + Linker flags: ${LDFLAGS} + Linked libs: ${LIBS} + Host System Type: ${host} + Install path: ${prefix} + Automake: ${AUTOMAKE} + Archiver: ${AR} + Ranlib: ${RANLIB} + +------------------------------------------------------------------------" diff --git a/dependencies/yaz-2.1.28/configure.ac b/dependencies/yaz-2.1.28/configure.ac new file mode 100644 index 0000000..c8661e4 --- /dev/null +++ b/dependencies/yaz-2.1.28/configure.ac @@ -0,0 +1,416 @@ +dnl YAZ Toolkit, Index Data 1994-2006 +dnl See the file LICENSE for details. +dnl $Id: configure.ac,v 1.35 2006/09/04 10:14:34 adam Exp $ +AC_PREREQ(2.59) +AC_INIT([yaz],[2.1.28],[adam@indexdata.dk]) +AC_CONFIG_SRCDIR(configure.ac) +AC_CONFIG_AUX_DIR([config]) +AM_INIT_AUTOMAKE([1.8]) +dnl +AC_SUBST(READLINE_LIBS) +AC_SUBST(YAZ_CONF_CFLAGS) +dnl ------ Checking programs +AC_PROG_CC +AC_PROG_CPP +AC_CHECK_PROGS(YACC, 'bison -y') +test -z "$YACC" && AC_MSG_WARN([GNU bison not found]) +AC_CHECK_PROGS(TCLSH, tclsh8.5 tclsh8.4 tclsh8.3 tclsh8.2, tclsh) +AC_PROG_INSTALL +AM_PROG_LIBTOOL +AC_PATH_PROG(pkgconfigpath, pkg-config, NONE) +dnl +YAZ_DOC +dnl +dnl +dnl ------ Headers +AC_CHECK_HEADERS(dirent.h fnmatch.h wchar.h locale.h langinfo.h pwd.h sys/select.h sys/socket.h sys/stat.h sys/time.h sys/types.h sys/un.h sys/wait.h unistd.h) +AC_HEADER_STDC +if test "$ac_cv_header_stdc" = "no"; then + AC_MSG_WARN([Your system doesn not seem to support ANSI C]) +fi +dnl ----- Types +AC_CHECK_TYPES([long long]) +dnl +dnl ----- Sockets +checkBoth=0 +AC_CHECK_FUNC(connect) +if test "$ac_cv_func_connect" = "no"; then + AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", checkBoth=1) +fi +if test "$checkBoth" = "1"; then + oldLibs=$LIBS + LIBS="$LIBS -lsocket -lnsl" + AC_CHECK_FUNC(accept, , [LIBS=$oldLibs]) +fi +AC_CHECK_FUNC(gethostbyname, ,[AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"])]) +dnl +dnl ------ OpenSSL +AC_SUBST(SSL_CFLAGS) +openssl=default +AC_ARG_WITH(openssl, [ --with-openssl[=PREFIX] OpenSSL library in PREFIX], [openssl=$withval]) +SSL_CFLAGS="" +SSL_LIBPATH="" +if test "$openssl" != "no"; then + sslver=no + if test "$openssl" != "yes" -a "$openssl" != "default"; then + if test -x $openssl/bin/pkg-config; then + if $openssl/bin/pkg-config --exists openssl; then + SSL_CFLAGS=`$openssl/bin/pkg-config --cflags openssl` + LIBS="$LIBS `$openssl/bin/pkg-config --libs openssl`" + sslver=`$openssl/bin/pkg-config --modversion openssl` + fi + fi + if test "$sslver" = "no"; then + SSL_CFLAGS="-I$openssl/include -I$openssl/include/openssl" + SSL_LIBPATH="-L$openssl/lib" + fi + else + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists openssl; then + SSL_CFLAGS=`$pkgconfigpath --cflags openssl` + LIBS="$LIBS `$pkgconfigpath --libs openssl`" + sslver=`$pkgconfigpath --modversion openssl` + fi + fi + if test "$sslver" = "no"; then + SSL_CFLAGS="-I/usr/include/openssl" + fi + fi + if test "$sslver" = "no"; then + xLIBS="$LIBS"; + xCPPFLAGS="$CPPFLAGS"; + CPPFLAGS="$CPPFLAGS $SSL_CFLAGS $SSL_LIBPATH" + AC_CHECK_LIB(crypto, main) + AC_CHECK_LIB(ssl, SSL_new) + if test "$ac_cv_lib_ssl_SSL_new" = "yes"; then + AC_CHECK_HEADER(openssl/ssl.h,[sslver=yes]) + LIBS="$SSL_LIBPATH $LIBS" + fi + if test "$sslver" != "yes"; then + LIBS="$xLIBS" + fi + CPPFLAGS="$xCPPFLAGS" + fi + AC_MSG_CHECKING([for SSL]) + if test "$sslver" != "no"; then + SSL_CFLAGS="-DHAVE_OPENSSL_SSL_H=1 $SSL_CFLAGS" + AC_MSG_RESULT([$sslver]) + else + SSL_CFLAGS="" + AC_MSG_RESULT([None]) + if test "$openssl" != "default"; then + AC_MSG_ERROR([OpenSSL development libraries missing]) + fi + fi +fi +dnl +dnl ------ GNU Readline +READLINE_SHARED_LIBADD="" +AC_CHECK_LIB(ncurses, tgetent, [READLINE_SHARED_LIBADD="-lncurses"], + AC_CHECK_LIB(termcap, tgetent, [READLINE_SHARED_LIBADD="-ltermcap"]) +) +READLINE_LIBS="" +AC_CHECK_LIB(readline, readline, [READLINE_LIBS="$READLINE_LIBS -lreadline $READLINE_SHARED_LIBADD"],,$READLINE_SHARED_LIBADD) +AC_CHECK_LIB(history, add_history, [READLINE_LIBS="$READLINE_LIBS -lhistory"]) +if test "$ac_cv_lib_readline_readline" = "yes"; then + AC_CHECK_HEADERS(readline/readline.h readline/history.h) + xLIBS=$LIBS + LIBS="$LIBS $READLINE_LIBS" + AC_TRY_LINK([ + #include + #include + ],[ + rl_attempted_completion_over = 0; + ],AC_DEFINE(HAVE_READLINE_COMPLETION_OVER)) + AC_TRY_LINK([ + #include + #include + ],[ + rl_completion_matches (0, 0); + ],[AC_DEFINE(HAVE_READLINE_RL_COMPLETION_MATCHES)]) + LIBS=$xLIBS +fi +dnl ------ iconv +AC_ARG_WITH(iconv, [ --with-iconv[=PREFIX] iconv library in PREFIX]) +if test "$with_iconv" != "no"; then + AC_MSG_CHECKING(for iconv) + oldLIBS="$LIBS" + oldCPPFLAGS="${CPPFLAGS}" + if test "$with_iconv" != "yes" -a "$with_iconv" != ""; then + LIBS="$LIBS -L${with_iconv}/lib" + CPPFLAGS="${CPPFLAGS} -I${with_iconv}/include" + fi + AC_TRY_LINK([ + #include + ],[ + iconv_t t = iconv_open("", ""); + ],[ + AC_DEFINE(HAVE_ICONV_H) + AC_MSG_RESULT(yes) + ],[ + LIBS="$LIBS -liconv" + AC_TRY_LINK([ + #include + ],[ + iconv_t t = iconv_open("", ""); + ],[ + AC_DEFINE(HAVE_ICONV_H) + AC_MSG_RESULT(yes) + ],[ + LIBS="$oldLIBS" + CPPFLAGS="$oldCPPFLAGS" + AC_MSG_RESULT(no) + ]) + ]) +fi +dnl ------ various functions +AC_CHECK_FUNCS(getaddrinfo vsnprintf gettimeofday poll strerror_r localtime_r usleep fopen64) +case $host in + *-*-darwin*) + trypoll="no"; + ;; + *) + trypoll="yes"; + ;; +esac + +if test "$ac_cv_func_poll" = "yes" -a "$trypoll" = "yes"; then + AC_CHECK_HEADERS(sys/poll.h) +fi +dnl ------ socklen_t +dnl We check for socklen_t by making prototypes with the +dnl various types. First socklen_t, then size_t, finally int. +dnl If the prototype succeeds, we are probably safe. +dnl That works if accept is not preprocessor defined (such sa AIX) +AC_MSG_CHECKING([for socklen_t]) +AC_CACHE_VAL(ac_cv_check_socklen_t,[ac_cv_check_socklen_t='' + AC_TRY_COMPILE([ +#include +#include +#ifdef __cplusplus +extern "C" { +#endif +#define try 1 +#ifdef AIX +#if AIX >= 51 +#define try 0 +#endif +#endif +#if try +extern int accept(int, struct sockaddr *, socklen_t *); +#endif +#ifdef __cplusplus +} +#endif + ],,[ac_cv_check_socklen_t=socklen_t],[ + AC_TRY_COMPILE([ +#include +#include +#ifdef __cplusplus +extern "C" { +#endif +#define try 1 +#ifdef AIX +#if AIX >= 42 +#define try 0 +#endif +#endif +#if try +extern int accept(int, struct sockaddr *, size_t t *); +#endif +#ifdef __cplusplus +} +#endif +],,[ac_cv_check_socklen_t=size_t],[ac_cv_check_socklen_t=int]) + ]) + ]) +AC_MSG_RESULT($ac_cv_check_socklen_t) +AC_DEFINE_UNQUOTED(YAZ_SOCKLEN_T,$ac_cv_check_socklen_t) +AC_DEFINE(YAZ_USE_NEW_LOG) +dnl +dnl ------ tcpd +AC_ARG_ENABLE(tcpd,[ --enable-tcpd[=PREFIX] enable TCP wrapper for server if available]) +if test "$enable_tcpd" -a "$enable_tcpd" != "no"; then + oldLibs=$LIBS + oldCPPFLAGS=$CPPFLAGS + if test "$enable_tcpd" != "yes"; then + LIBS="$LIBS -L$enable_tcpd/lib" + CPPFLAGS="$CPPFLAGS -I$enable_tcpd/include" + fi + AC_MSG_CHECKING(for working tcpd.h) + LIBS="$LIBS -lwrap -lnsl" + AC_TRY_LINK([#include +#include + int allow_severity = LOG_INFO; + int deny_severity = LOG_WARNING;], + [struct request_info request_info; int i; + i = hosts_access(&request_info);], + tcpd_ok=1, tcpd_ok=0) + if test "$tcpd_ok" = "0"; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([tcpd development libraries missing]) + LIBS=$oldLibs + CPPFLAGS=$oldCPPFLAGS + else + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_TCPD_H) + fi +fi +dnl +AC_SUBST(THREAD_CFLAGS) +HAVETHREADS=0 +THREAD_CFLAGS="" +LIBTHREAD="" +dnl +dnl ------ GNU threads +AC_ARG_ENABLE(pth, [ --enable-pth enable GNU threads],[enable_pth=$enableval],[enable_pth=no]) +AC_SUBST(LIBPTH) +if test "$enable_pth" = "yes"; then + OLIBS=$LIBS + AC_CHECK_LIB(pth,main) + if test "$ac_cv_lib_pth_main" = "yes"; then + AC_CHECK_HEADERS(pth.h) + if test "$ac_cv_header_pth_h" = "yes"; then + LIBTHREAD="-lpth" + THREAD_CFLAGS="-DYAZ_GNU_THREADS=1" + HAVETHREADS=1 + fi + fi + LIBS="$OLIBS $LIBTHREAD" +fi +dnl +dnl ------ POSIX Threads +AC_ARG_ENABLE(threads, [ --disable-threads disable POSIX threads],[enable_threads=$enableval],[enable_threads=yes]) +if test "$enable_threads" = "yes" -a "$HAVETHREADS" = "0"; then + OLIBS=$LIBS + OCC=$CC + AC_CHECK_LIB(pthread,main) + AC_MSG_CHECKING(for working POSIX Threads) + AC_TRY_LINK([#include + void *func(void *p) { return 0; } + ],[ + pthread_t pthread_id; + pthread_create (&pthread_id, 0, func, 0);], + thread_ok=yes,thread_ok=no) + if test "$thread_ok" = "yes"; then + AC_MSG_RESULT(yes) + LIBTHREAD="-lpthread" + THREAD_CFLAGS="-DYAZ_POSIX_THREADS=1 -D_REENTRANT" + HAVETHREADS=1 + else + CC="$CC -pthread" + AC_TRY_LINK([#include + void *func(void *p) { return 0; } + ],[ + pthread_t pthread_id; + pthread_create (&pthread_id, 0, func, 0);], + thread_ok=yes,thread_ok=no) + if test "$thread_ok" = "yes"; then + AC_MSG_RESULT([yes,BSD]) + THREAD_CFLAGS="-pthread -DYAZ_POSIX_THREADS=1 -D_REENTRANT" + LIBTHREAD="-pthread" + HAVETHREADS=1 + fi + fi + if test "$thread_ok" = "no"; then + AC_MSG_RESULT(no) + fi + CC=$OCC + LIBS="$OLIBS $LIBTHREAD" +fi + +dnl ----- libXSLT/libEXLT/libXML2 +AC_SUBST(XML2_CFLAGS) +AC_SUBST(YAZ_CONFIG_CFLAGS) +YAZ_CONFIG_CFLAGS="" + +YAZ_LIBXML2( + [ + AC_DEFINE(YAZ_HAVE_XML2) + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XML2=1" + ] +) + +YAZ_LIBXSLT( + [ + AC_DEFINE(YAZ_HAVE_XSLT) + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_XSLT=1" + ] +) +YAZ_LIBEXSLT( + [ + AC_DEFINE(YAZ_HAVE_EXSLT) + YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS -DYAZ_HAVE_EXSLT=1" + ] +) + +YAZ_CONFIG_CFLAGS="$YAZ_CONFIG_CFLAGS $XML2_CFLAGS" + +if test "$XML2_LIBS"; then + LIBS="$XML2_LIBS $LIBS" +fi + +dnl +dnl ------ Memory debugging +AC_ARG_ENABLE(memdebug, [ --enable-memdebug enable memory debugging],[enable_memdebug=$enableval],[enable_memdebug=none]) +if test "$enable_memdebug" = "yes"; then + AC_DEFINE(TRACE_XMALLOC,2) +elif test "$enable_memdebug" = "no"; then + AC_DEFINE(TRACE_XMALLOC,0) +fi +dnl +dnl ------ Using this for "in-source" yaz-config +AC_SUBST(YAZ_SRC_ROOT) +AC_SUBST(YAZ_BUILD_ROOT) +YAZ_SRC_ROOT=`cd ${srcdir}; pwd` +YAZ_BUILD_ROOT=`pwd` +dnl +dnl ------ Makefiles +dnl +AC_OUTPUT([ +Makefile +yaz.spec +src/Makefile +test/Makefile +util/Makefile +include/Makefile +include/yaz/Makefile +client/Makefile +ztest/Makefile +zoom/Makefile +doc/Makefile +doc/local.ent +doc/common/Makefile +doc/common/print.dsl +etc/Makefile +yaz-config +Doxyfile +],[sed s%yaz_echo_source=yes%yaz_echo_source=no%g < yaz-config > util/yaz-config && chmod +x yaz-config util/yaz-config]) + + +echo \ +"------------------------------------------------------------------------ +Configuration: + + YAZ Package: ${PACKAGE} + YAZ Version: ${VERSION} + Bugreport: ${PACKAGE_BUGREPORT} + Source code location: ${srcdir} + C Preprocessor: ${CPP} + C Preprocessor flags: ${CPPFLAGS} + C Compiler: ${CC} + C Compiler flags: ${CFLAGS} + Linker flags: ${LDFLAGS} + Linked libs: ${LIBS} + Host System Type: ${host} + Install path: ${prefix} + Automake: ${AUTOMAKE} + Archiver: ${AR} + Ranlib: ${RANLIB} + +------------------------------------------------------------------------" +dnl Local Variables: +dnl mode:shell-script +dnl sh-indentation: 2 +dnl sh-basic-offset: 4 +dnl End: diff --git a/dependencies/yaz-2.1.28/debian/changelog b/dependencies/yaz-2.1.28/debian/changelog new file mode 100644 index 0000000..0cc792e --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/changelog @@ -0,0 +1,617 @@ +yaz (2.1.28-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 4 Sep 2006 12:11:24 +0200 + +yaz (2.1.27-3) unstable; urgency=low + + * More testing of MARC-8 encoding. Using getaddrinfo. + + -- Adam Dickmeiss Thu, 31 Aug 2006 17:39:18 +0200 + +yaz (2.1.27-2) unstable; urgency=low + + * Testing of MARC-8 encoding bugs. + + -- Adam Dickmeiss Mon, 28 Aug 2006 18:54:11 +0200 + +yaz (2.1.27-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 17 Aug 2006 00:48:40 +0200 + +yaz (2.1.26-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 15 Aug 2006 15:18:26 +0200 + +yaz (2.1.24-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 8 Aug 2006 10:32:04 +0200 + +yaz (2.1.23-2) unstable; urgency=low + + * Second attempt to fix bug #612. + + -- Adam Dickmeiss Fri, 16 Jun 2006 14:30:56 +0200 + +yaz (2.1.23-1) unstable; urgency=low + + * Internal build to work with bug #612. + + -- Adam Dickmeiss Fri, 16 Jun 2006 12:07:10 +0200 + +yaz (2.1.22-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 15 Jun 2006 15:35:17 +0200 + +yaz (2.1.20-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 2 Jun 2006 15:16:22 +0200 + +yaz (2.1.19-1) unstable; urgency=low + + * Upstream + * added yaz_filepath_resolve(...) to API + * API version 2.1.17. + + -- Marc Cromme Thu, 27 Apr 2006 21:56:29 +0200 + +yaz (2.1.18-1) unstable; urgency=low + + * Moved yaz.7 from libyaz to libyaz-dev. + * Moved man page lists to .manpages files. + * Added common directory to be part of yaz-doc + * API version 2.1.17. + + -- Marc Cromme Thu, 20 Apr 2006 10:43:56 +0200 + +yaz (2.1.17-1) unstable; urgency=low + + * Upstream. + + -- Marc Cromme Thu, 20 Apr 2006 10:03:06 +0200 + +yaz (2.1.16-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 31 Mar 2006 14:44:12 +0200 + +yaz (2.1.15-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 16 Mar 2006 09:34:01 +0100 + +yaz (2.1.14-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 14 Mar 2006 10:01:57 +0100 + +yaz (2.1.12-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 1 Feb 2006 21:07:50 +0100 + +yaz (2.1.10-2) unstable; urgency=low + + * updated number for new release cycle + + -- Marc Cromme Fri, 09 Dec 2005 11:43:10 +0100 + +yaz (2.1.10-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 29 Nov 2005 21:17:15 +0100 + +yaz (2.1.9-2) unstable; urgency=low + + * Removed /usr/share/yaz/etc from libyaz. All /usr/share/yaz content is + now part of libyaz-dev. + + -- Adam Dickmeiss Wed, 10 Aug 2005 10:28:39 +0200 + +yaz (2.1.9-1) unstable; urgency=low + + * Upstream updated number for new development version + + -- Marc Cromme Mon, 18 Jul 2005 11:52:09 +0200 + +yaz (2.1.8-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 7 Jun 2005 21:28:19 +0200 + +yaz (2.1.7-1) unstable; urgency=low + + * Internal package for testing. + + -- Adam Dickmeiss Mon, 6 Jun 2005 12:36:35 +0200 + +yaz (2.1.6-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 24 May 2005 14:12:36 +0200 + +yaz (2.1.4-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 26 Apr 2005 20:39:54 +0200 + +yaz (2.1.2-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 16 Mar 2005 22:29:43 +0100 + +yaz (2.1.0-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 14 Mar 2005 13:46:27 +0100 + +yaz (2.0.34-2) unstable; urgency=low + + * Fix tests and man page description for yaz-marcdump. + + -- Adam Dickmeiss Wed, 9 Feb 2005 13:40:20 +0100 + +yaz (2.0.34-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 8 Feb 2005 15:18:31 +0100 + +yaz (2.0.32-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 11 Jan 2005 13:09:29 +0100 + +yaz (2.0.30-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 4 Jan 2005 09:33:20 +0100 + +yaz (2.0.28-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 9 Nov 2004 21:34:03 +0100 + +yaz (2.0.26-2) unstable; urgency=low + + * Testing. + + -- Adam Dickmeiss Mon, 11 Oct 2004 00:20:29 +0200 + +yaz (2.0.26-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 1 Oct 2004 14:31:47 +0200 + +yaz (2.0.25-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 30 Sep 2004 13:20:47 +0200 + +yaz (2.0.24-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 29 Sep 2004 22:41:47 +0200 + +yaz (2.0.23-3) unstable; urgency=low + + * Added ccl_qual_buf. + + -- Adam Dickmeiss Wed, 22 Sep 2004 15:57:01 +0200 + +yaz (2.0.23-2) unstable; urgency=low + + * Fix bug regarding HTTP GET. + + -- Adam Dickmeiss Wed, 22 Sep 2004 11:29:53 +0200 + +yaz (2.0.23-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 11 Aug 2004 11:04:42 +0200 + +yaz (2.0.22-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 6 Aug 2004 10:29:27 +0200 + +yaz (2.0.21-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 14 May 2004 10:18:22 +0200 + +yaz (2.0.20-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 10 May 2004 13:23:35 +0200 + +yaz (2.0.19-2) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 29 Mar 2004 22:12:15 +0200 + +yaz (2.0.18-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Sat, 20 Mar 2004 08:00:23 +0100 + +yaz (2.0.17-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 17 Mar 2004 19:44:51 +0100 + +yaz (2.0.16-1) unstable; urgency=low + + * Character set conversion fixes, MARC-8. + + -- Adam Dickmeiss Tue, 16 Mar 2004 14:27:01 +0100 + +yaz (2.0.15-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 1 Mar 2004 17:58:23 +0100 + +yaz (2.0.14-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Wed, 25 Feb 2004 13:58:34 +0100 + +yaz (2.0.13-2) unstable; urgency=low + + * API version 2.0.13. Fix NS for diagnostic elements. + + -- Adam Dickmeiss Wed, 25 Feb 2004 09:46:37 +0100 + +yaz (2.0.13-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 23 Feb 2004 10:29:01 +0100 + +yaz (2.0.12-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 16 Feb 2004 18:52:25 +0100 + +yaz (2.0.11-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 16 Feb 2004 12:30:20 +0100 + +yaz (2.0.10-1) unstable; urgency=low + + * Update Debian rules to newer policy. + + -- Adam Dickmeiss Mon, 9 Feb 2004 10:59:20 +0100 + +yaz (2.0.9-6) unstable; urgency=low + + * Make the SRU server more picky WRT unknown params, etc. + + -- Adam Dickmeiss Mon, 12 Jan 2004 14:16:42 +0100 + +yaz (2.0.9-5) unstable; urgency=low + + * Add SRW/SRU stylesheet support. + + -- Adam Dickmeiss Wed, 7 Jan 2004 22:42:39 +0100 + +yaz (2.0.9-4) unstable; urgency=low + + * Fix HTTP decode: Content-Length case insensitive. + + -- Adam Dickmeiss Tue, 6 Jan 2004 14:35:37 +0100 + +yaz (2.0.9-3) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 6 Jan 2004 14:35:37 +0100 + +yaz (2.0.9-2) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 5 Jan 2004 15:46:06 +0100 + +yaz (2.0.9-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 5 Jan 2004 10:32:40 +0100 + +yaz (2.0.8-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 22 Dec 2003 15:25:06 +0100 + +yaz (2.0.7-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 16 Dec 2003 15:46:11 +0100 + +yaz (2.0.6-1) unstable; urgency=low + + * Official 2.0.6 + + -- Adam Dickmeiss Thu, 4 Dec 2003 14:17:02 +0100 + +yaz (2.0.5-4) unstable; urgency=low + + * HTML Documentation uses CSS. + + -- Adam Dickmeiss Mon, 17 Nov 2003 23:35:22 +0100 + +yaz (2.0.5-3) unstable; urgency=low + + * Source restructure. yaz-marcump man page. + + -- Adam Dickmeiss Mon, 27 Oct 2003 13:30:34 +0100 + +yaz (2.0.5-2) unstable; urgency=low + + * Compress man pages. + + -- Adam Dickmeiss Thu, 16 Oct 2003 10:28:37 +0200 + +yaz (2.0.5-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Mon, 13 Oct 2003 23:22:06 +0200 + +yaz (2.0.4-2) unstable; urgency=low + + * Reinstate THESAURUS since Elvil (better named 'evil') uses it. + + -- Adam Dickmeiss Thu, 11 Sep 2003 14:43:15 +0200 + +yaz (2.0.4-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 4 Sep 2003 20:16:16 +0200 + +yaz (2.0.3-7) unstable; urgency=low + + * Use smallSetUpperBound=1 for ZOOM piggyback searches. + + -- Adam Dickmeiss Tue, 19 Aug 2003 14:31:23 +0200 + +yaz (2.0.3-6) unstable; urgency=low + + * Yet one more OPAC fix. + + -- Adam Dickmeiss Wed, 30 Jul 2003 13:39:16 +0200 + +yaz (2.0.3-5) unstable; urgency=low + + * OPAC record fixes. + + -- Adam Dickmeiss Wed, 30 Jul 2003 10:56:34 +0200 + +yaz (2.0.3-4) unstable; urgency=low + + * More ZOOM logging. + + -- Adam Dickmeiss Tue, 22 Jul 2003 15:04:04 +0200 + +yaz (2.0.3-3) unstable; urgency=low + + * Fix CCL->RPN code for attribute strings. + + -- Adam Dickmeiss Mon, 23 Jun 2003 14:41:49 +0200 + +yaz (2.0.3-2) unstable; urgency=low + + * String attributes for CCL parser. + + -- Adam Dickmeiss Mon, 23 Jun 2003 12:23:12 +0200 + +yaz (2.0.3-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Fri, 20 Jun 2003 13:14:02 +0200 + +yaz (2.0.2-3) unstable; urgency=low + + * SRW support for YAZ client. + * Minor updates to documenation Makefiles. + * Man page yaz-comp.1. + + -- Adam Dickmeiss Tue, 27 May 2003 15:50:53 +0200 + +yaz (2.0.2-2) unstable; urgency=low + + * yaz.7 moved from yaz to libyaz. + * Fix last event setting. + + -- Adam Dickmeiss Wed, 14 May 2003 22:56:32 +0100 + +yaz (2.0.2-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Tue, 29 Apr 2003 11:54:24 +0100 + +yaz (2.0.1-2) unstable; urgency=low + + * Event extensions. + + -- Adam Dickmeiss Mon, 28 Apr 2003 12:22:50 +0100 + +yaz (2.0.1-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Thu, 24 Apr 2003 22:35:57 +0100 + +yaz (2.0-2) unstable; urgency=low + + * Use an older version of libxml2 (2.4.19-4) + + -- Adam Dickmeiss Mon, 24 Feb 2003 15:05:44 +0100 + +yaz (2.0-1) unstable; urgency=low + + * Upstream. + + -- Adam Dickmeiss Sun, 23 Feb 2003 22:38:58 +0100 + +yaz (1.9.2-2) unstable; urgency=low + + * Fix element set for piggyback in ZOOM. + + -- Adam Dickmeiss Fri, 24 Jan 2003 13:15:55 +0100 + +yaz (1.9.2-1) unstable; urgency=low + + * Upstream release. + + -- Adam Dickmeiss Tue, 26 Nov 2002 14:44:52 +0100 + +yaz (1.9.1-5) unstable; urgency=low + + * GRS-1 render for ZOOM. data1 moved to zebra. + + -- Adam Dickmeiss Thu, 24 Oct 2002 9:54:29 +0100 + +yaz (1.9.1-4) unstable; urgency=low + + * fix interpretation of dash in CCL queries (and-lists). + + -- Adam Dickmeiss Wed, 15 Oct 2002 10:41:03 +0100 + +yaz (1.9.1-3) unstable; urgency=low + + * don't let grs.sgml interpret &-entities. + + -- Adam Dickmeiss Wed, 9 Oct 2002 22:38:03 +0100 + +yaz (1.9.1-2) unstable; urgency=low + + * official release. + + -- Adam Dickmeiss Fri, 4 Oct 2002 20:25:51 +0100 + +yaz (1.9.1-1) unstable; urgency=low + + * New upstream version + + -- Adam Dickmeiss Thu, 20 Sep 2002 12:23:33 +0100 + +yaz (1.9-1) unstable; urgency=low + + * New upstream version + + -- Adam Dickmeiss Thu, 6 Sep 2002 15:05:16 +0100 + +yaz (1.8.9-1) unstable; urgency=low + + * New upstream version + + -- Adam Dickmeiss Fri, 20 Aug 2002 02:02:21 +0100 + +yaz (1.8.8-1) unstable; urgency=low + + * New upstream version + + -- Adam Dickmeiss Fri, 02 Aug 2002 11:09:10 +0100 + +yaz (1.8.7-1) unstable; urgency=low + + * New upstream version + + -- Adam Dickmeiss Wed, 22 May 2002 13:33:37 +0100 + +yaz (1.8.6-1) unstable; urgency=low + + * Package yaz-ssl instead of yaz-runtime-ssl. + + -- Adam Dickmeiss Sat, 23 Mar 2002 02:39:07 +0100 + +yaz (1.8.6-1MGH) unstable; urgency=low + + * New upstrean release + * Heavy debian/rules modification adds yazrelease target for conveniency + * Not lintian clean yet. (only warnings left) + + -- Morten Garkier Hendriksen Mon, 18 Mar 2002 21:46:59 +0100 + +yaz (1.8.5-1MGH) unstable; urgency=low + + * New upstream version + + -- Morten Garkier Hendriksen Fri, 15 Feb 2002 13:01:15 +0100 + +yaz (1.8.4-1MGH) unstable; urgency=low + + * Modified build scripts + + -- Morten Garkier Hendriksen Sat, 24 Nov 2001 16:09:25 +0100 + +yaz (1.8.4-1) unstable; urgency=low + + * new YAZ version. + + -- Adam Dickmeiss Fri, 4 Jan 2002 00:10:00 +0200 + +yaz (1.7-CVS20010925) unstable; urgency=low + + * control generated from control.templ before dh_testdir is run + + -- Adam Dickmeiss Wed, 26 Sep 2001 09:27:58 +0200 + +yaz (1.7-CVS20010507) unstable; urgency=low + + * New upstream + + -- Morten Garkier Hendriksen Mon, 7 May 2001 15:41:54 +0200 + +yaz (1.7-1) unstable; urgency=low + + * First debian package + + -- Morten Garkier Hendriksen Sat, 27 Jan 2001 19:09:57 +0100 + diff --git a/dependencies/yaz-2.1.28/debian/control b/dependencies/yaz-2.1.28/debian/control new file mode 100644 index 0000000..dc313a8 --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/control @@ -0,0 +1,51 @@ +Source: yaz +Section: devel +Standards-Version: 3.6.2 +Maintainer: Adam Dickmeiss +Priority: extra +Build-Depends: debhelper (>= 4), pkg-config, libxslt1-dev, libssl-dev, libreadline5-dev, libwrap0-dev + +Package: libyaz +Section: libs +Architecture: any +Depends: ${shlibs:Depends} +Conflicts: idzebra (<= 1.3.4-2), php4-yaz (<= 4.1.2-5) +Description: The YAZ Z39.50 toolkit (runtime files) + YAZ is a toolkit that allows you to develop software using the + ANSI Z39.50/ISO23950 standard for information retrieval. + . + This packages includes runtime files. + +Package: yaz +Section: utils +Architecture: any +Depends: ${shlibs:Depends} +Conflicts: yaz-runtime, yaz-ssl +Description: The YAZ Z39.50 toolkit (utilities) + YAZ is a toolkit that allows you to develop software using the + ANSI Z39.50/ISO23950 standard for information retrieval. + . + This packages includes utility programs. + +Package: yaz-doc +Section: doc +Architecture: all +Description: The YAZ Z39.50 toolkit (documentation) + YAZ is a toolkit that allows you to develop software using the + Z39.50/ISO23950 standard for information retrieval. + . + This packages includes HTML documentation for YAZ. + +Package: libyaz-dev +Depends: libyaz (= ${Source-Version}), libxslt1-dev, libwrap0-dev, libssl-dev +Replaces: yaz-devel +Conflicts: yaz-devel +Section: devel +Architecture: any +Recommends: yaz-doc +Description: The YAZ Z39.50 toolkit (development files) + YAZ is a toolkit that allows you to develop software using the + ANSI Z39.50/ISO23950 standard for information retrieval. + . + This packages includes development libraries and C/C++ header files. + diff --git a/dependencies/yaz-2.1.28/debian/libyaz-dev.install b/dependencies/yaz-2.1.28/debian/libyaz-dev.install new file mode 100644 index 0000000..cad9e51 --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/libyaz-dev.install @@ -0,0 +1,8 @@ +debian/tmp/usr/include/yaz +debian/tmp/usr/lib/libyaz*.a +debian/tmp/usr/lib/libyaz*.so +debian/tmp/usr/lib/libyaz*.la +debian/tmp/usr/bin/yaz-config +debian/tmp/usr/bin/yaz-asncomp +debian/tmp/usr/share/aclocal/yaz.m4 +debian/tmp/usr/share/yaz diff --git a/dependencies/yaz-2.1.28/debian/libyaz-dev.manpages b/dependencies/yaz-2.1.28/debian/libyaz-dev.manpages new file mode 100644 index 0000000..174644c --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/libyaz-dev.manpages @@ -0,0 +1,3 @@ +debian/tmp/usr/share/man/man1/yaz-asncomp.1 +debian/tmp/usr/share/man/man7/yaz.7 +debian/tmp/usr/share/man/man8/yaz-config.8 diff --git a/dependencies/yaz-2.1.28/debian/libyaz.install b/dependencies/yaz-2.1.28/debian/libyaz.install new file mode 100644 index 0000000..c45ebcf --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/libyaz.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/lib*.so.* diff --git a/dependencies/yaz-2.1.28/debian/libyaz.postinst b/dependencies/yaz-2.1.28/debian/libyaz.postinst new file mode 100755 index 0000000..ee8321c --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/libyaz.postinst @@ -0,0 +1,45 @@ +#! /bin/sh +# postinst script for tklite +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + +case "$1" in + configure) + ldconfig + exit 0 + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# diff --git a/dependencies/yaz-2.1.28/debian/rules b/dependencies/yaz-2.1.28/debian/rules new file mode 100755 index 0000000..06f0bb4 --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/rules @@ -0,0 +1,109 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Force compat level four +export DH_COMPAT=4 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + + +config.status: configure + dh_testdir + # Add here commands to configure the package. + CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info --enable-shared --enable-static --enable-tcpd --with-xslt --with-openssl + + +build: build-stamp +build-stamp: config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + # Add here commands to clean up after the build process. + -$(MAKE) distclean +ifneq "$(wildcard /usr/share/misc/config.sub)" "" + -cp -f /usr/share/misc/config.sub config.sub +endif +ifneq "$(wildcard /usr/share/misc/config.guess)" "" + -cp -f /usr/share/misc/config.guess config.guess +endif + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + cp LICENSE debian/copyright + dh_installdocs -A README + dh_installchangelogs + dh_installexamples + mv debian/tmp/usr/share/doc/yaz debian/tmp/usr/share/doc/yaz-doc + dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_perl +# dh_python + dh_makeshlibs -V 'libyaz (>= 2.1.27)' + dh_installdeb + dh_shlibdeps -l debian/libyaz/usr/lib + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/dependencies/yaz-2.1.28/debian/yaz-doc.install b/dependencies/yaz-2.1.28/debian/yaz-doc.install new file mode 100644 index 0000000..b57d97a --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/yaz-doc.install @@ -0,0 +1,2 @@ +debian/tmp/usr/share/doc/yaz-doc +debian/tmp/usr/share/doc/yaz-doc/common diff --git a/dependencies/yaz-2.1.28/debian/yaz.install b/dependencies/yaz-2.1.28/debian/yaz.install new file mode 100644 index 0000000..57431b1 --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/yaz.install @@ -0,0 +1,5 @@ +debian/tmp/usr/bin/yaz-client +debian/tmp/usr/bin/yaz-ztest +debian/tmp/usr/bin/zoomsh +debian/tmp/usr/bin/yaz-marcdump +debian/tmp/usr/bin/yaz-iconv diff --git a/dependencies/yaz-2.1.28/debian/yaz.manpages b/dependencies/yaz-2.1.28/debian/yaz.manpages new file mode 100644 index 0000000..925fc27 --- /dev/null +++ b/dependencies/yaz-2.1.28/debian/yaz.manpages @@ -0,0 +1,6 @@ +debian/tmp/usr/share/man/man1/yaz-client.1 +debian/tmp/usr/share/man/man8/yaz-ztest.8 +debian/tmp/usr/share/man/man1/zoomsh.1 +debian/tmp/usr/share/man/man1/yaz-marcdump.1 +debian/tmp/usr/share/man/man1/yaz-iconv.1 +debian/tmp/usr/share/man/man7/yaz-log.7 diff --git a/dependencies/yaz-2.1.28/doc/Makefile.am b/dependencies/yaz-2.1.28/doc/Makefile.am new file mode 100644 index 0000000..3fbe4a4 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/Makefile.am @@ -0,0 +1,106 @@ +## $Id: Makefile.am,v 1.71 2006/06/28 21:41:54 adam Exp $ + +docdir=$(datadir)/doc/@PACKAGE@ + +SUBDIRS = common + +XMLFILES=bookinfo.xml introduction.xml installation.xml \ + indexdata.xml \ + asn.xml tools.xml odr.xml comstack.xml frontend.xml license.xml \ + future.xml client.xml zoom.xml credits.xml gfs-options.xml \ + yaz.xml yaz-client-commands.xml soap.xml gfs-virtual.xml gfs-synopsis.xml + +HTMLFILES = \ + asn.external.html asn.html asn.oid.html asn.pdu.html asn.preparing.html \ + client.commands.html client.html client.invoking.html client.searching.html \ + comstack.addresses.html comstack.client.html comstack.common.html \ + comstack.diagnostics.html comstack.html comstack.introduction.html \ + comstack.server.html comstack.ssl.html comstack.summary.html \ + credits.html future.html \ + indexdata.html installation.html installation.unix.html \ + installation.win32.html introduction.api.html introduction.html \ + license.html license.other.html odr.debugging.html odr.html \ + odr.programming.html odr.use.html server.backendfunctions.html \ + server.backend.html server.frontend.html server.html server.invocation.html \ + server.main.html server.vhosts.html \ + soap.html soap.http.html soap.xml.html soap.srw.html \ + tools.html tools.marc.html tools.nmem.html tools.log.html tools.oid.html \ + index.html zoom.events.html zoom.ext.html zoom.html zoom.options.html \ + zoom.query.html zoom.records.html zoom.resultsets.html zoom.scan.html + +MANFILES=yaz-client.1 yaz-ztest.8 \ + yaz-config.8 yaz.7 zoomsh.1 yaz-asncomp.1 \ + yaz-marcdump.1 yaz-iconv.1 yaz-log.7 +REFFILES=yaz-client-man.xml yaz-ztest-man.xml yaz-config-man.xml \ + yaz-man.xml zoomsh-man.xml yaz-asncomp-man.xml \ + yaz-marcdump-man.xml yaz-iconv-man.xml yaz-log-man.xml + +SUPPORTFILES=entities.ent apilayer.obj local.ent.in + +doc_DATA = $(HTMLFILES) apilayer.png +man_MANS = $(MANFILES) + +EXTRA_DIST = $(XMLFILES) $(SUPPORTFILES) $(man_MANS) $(REFFILES) \ + $(doc_DATA) + +yaz-client.1: $(srcdir)/yaz-client-man.xml $(srcdir)/yaz-client-commands.xml + $(MAN_COMPILE) $(srcdir)/yaz-client-man.xml + +yaz-ztest.8: yaz-ztest-man.xml gfs-options.xml gfs-synopsis.xml gfs-virtual.xml + $(MAN_COMPILE) $(srcdir)/yaz-ztest-man.xml + +yaz-config.8: yaz-config-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-config-man.xml + +yaz.7: yaz-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-man.xml + +zoomsh.1: zoomsh-man.xml + $(MAN_COMPILE) $(srcdir)/zoomsh-man.xml + +yaz-asncomp.1: yaz-asncomp-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-asncomp-man.xml + +yaz-marcdump.1: yaz-marcdump-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-marcdump-man.xml + +yaz-iconv.1: yaz-iconv-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-iconv-man.xml + +yaz-log.7: yaz-log-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-log-man.xml + +$(HTMLFILES): $(XMLFILES) + $(HTML_COMPILE) $(srcdir)/yaz.xml + +index.tkl: $(XMLFILES) + $(TKL_COMPILE) $(srcdir)/yaz.xml + +yaz.pdf: $(XMLFILES) + if test ! -f common/id.png ; then cp $(srcdir)/common/id.png common; fi + if test ! -f apilayer.png ; then cp $(srcdir)/apilayer.png .; fi + jade -E14 -D $(srcdir) -d common/print.dsl -t tex $(srcdir)/common/xml.dcl $(srcdir)/yaz.xml + pdfjadetex yaz.tex + pdfjadetex yaz.tex >/dev/null + pdfjadetex yaz.tex >/dev/null + +apilayer.png: + tgif -print -xbm apilayer.obj + xbmtopbm apilayer.png + +dist-hook: + if test -f index.html; then for f in *.html; do \ + found=0; \ + b=`basename $$f`; \ + for h in $(HTMLFILES); do \ + if test "$$h" = "$$b"; then \ + found=1; \ + fi \ + done; \ + if test "$$found" = "0"; then \ + echo "$$b not found in HTMLFILES"; \ + exit 1; \ + fi \ + done; fi + + diff --git a/dependencies/yaz-2.1.28/doc/Makefile.in b/dependencies/yaz-2.1.28/doc/Makefile.in new file mode 100644 index 0000000..dd2549a --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/Makefile.in @@ -0,0 +1,745 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = doc +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/local.ent.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = local.ent +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(docdir)" +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 +NROFF = nroff +MANS = $(man_MANS) +docDATA_INSTALL = $(INSTALL_DATA) +DATA = $(doc_DATA) +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = $(datadir)/doc/@PACKAGE@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +SUBDIRS = common +XMLFILES = bookinfo.xml introduction.xml installation.xml \ + indexdata.xml \ + asn.xml tools.xml odr.xml comstack.xml frontend.xml license.xml \ + future.xml client.xml zoom.xml credits.xml gfs-options.xml \ + yaz.xml yaz-client-commands.xml soap.xml gfs-virtual.xml gfs-synopsis.xml + +HTMLFILES = \ + asn.external.html asn.html asn.oid.html asn.pdu.html asn.preparing.html \ + client.commands.html client.html client.invoking.html client.searching.html \ + comstack.addresses.html comstack.client.html comstack.common.html \ + comstack.diagnostics.html comstack.html comstack.introduction.html \ + comstack.server.html comstack.ssl.html comstack.summary.html \ + credits.html future.html \ + indexdata.html installation.html installation.unix.html \ + installation.win32.html introduction.api.html introduction.html \ + license.html license.other.html odr.debugging.html odr.html \ + odr.programming.html odr.use.html server.backendfunctions.html \ + server.backend.html server.frontend.html server.html server.invocation.html \ + server.main.html server.vhosts.html \ + soap.html soap.http.html soap.xml.html soap.srw.html \ + tools.html tools.marc.html tools.nmem.html tools.log.html tools.oid.html \ + index.html zoom.events.html zoom.ext.html zoom.html zoom.options.html \ + zoom.query.html zoom.records.html zoom.resultsets.html zoom.scan.html + +MANFILES = yaz-client.1 yaz-ztest.8 \ + yaz-config.8 yaz.7 zoomsh.1 yaz-asncomp.1 \ + yaz-marcdump.1 yaz-iconv.1 yaz-log.7 + +REFFILES = yaz-client-man.xml yaz-ztest-man.xml yaz-config-man.xml \ + yaz-man.xml zoomsh-man.xml yaz-asncomp-man.xml \ + yaz-marcdump-man.xml yaz-iconv-man.xml yaz-log-man.xml + +SUPPORTFILES = entities.ent apilayer.obj local.ent.in +doc_DATA = $(HTMLFILES) apilayer.png +man_MANS = $(MANFILES) +EXTRA_DIST = $(XMLFILES) $(SUPPORTFILES) $(man_MANS) $(REFFILES) \ + $(doc_DATA) + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +local.ent: $(top_builddir)/config.status $(srcdir)/local.ent.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-man1: $(man1_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ + done +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ + done +install-man7: $(man7_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man7dir)" || $(mkdir_p) "$(DESTDIR)$(man7dir)" + @list='$(man7_MANS) $(dist_man7_MANS) $(nodist_man7_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.7*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 7*) ;; \ + *) ext='7' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man7dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man7dir)/$$inst"; \ + done +uninstall-man7: + @$(NORMAL_UNINSTALL) + @list='$(man7_MANS) $(dist_man7_MANS) $(nodist_man7_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.7*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 7*) ;; \ + *) ext='7' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man7dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man7dir)/$$inst"; \ + done +install-man8: $(man8_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)" + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ + done +uninstall-man8: + @$(NORMAL_UNINSTALL) + @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.8*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 8*) ;; \ + *) ext='8' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ + done +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)" + @list='$(doc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ + $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ + rm -f "$(DESTDIR)$(docdir)/$$f"; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || mkdir "$(distdir)/$$subdir" \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="../$(top_distdir)" \ + distdir="../$(distdir)/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-recursive +all-am: Makefile $(MANS) $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man7dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(docdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: install-docDATA install-man + +install-exec-am: + +install-info: install-info-recursive + +install-man: install-man1 install-man7 install-man8 + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-docDATA uninstall-info-am uninstall-man + +uninstall-info: uninstall-info-recursive + +uninstall-man: uninstall-man1 uninstall-man7 uninstall-man8 + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + clean clean-generic clean-libtool clean-recursive ctags \ + ctags-recursive distclean distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-docDATA install-exec install-exec-am \ + install-info install-info-am install-man install-man1 \ + install-man7 install-man8 install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-docDATA uninstall-info-am \ + uninstall-man uninstall-man1 uninstall-man7 uninstall-man8 + + +yaz-client.1: $(srcdir)/yaz-client-man.xml $(srcdir)/yaz-client-commands.xml + $(MAN_COMPILE) $(srcdir)/yaz-client-man.xml + +yaz-ztest.8: yaz-ztest-man.xml gfs-options.xml gfs-synopsis.xml gfs-virtual.xml + $(MAN_COMPILE) $(srcdir)/yaz-ztest-man.xml + +yaz-config.8: yaz-config-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-config-man.xml + +yaz.7: yaz-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-man.xml + +zoomsh.1: zoomsh-man.xml + $(MAN_COMPILE) $(srcdir)/zoomsh-man.xml + +yaz-asncomp.1: yaz-asncomp-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-asncomp-man.xml + +yaz-marcdump.1: yaz-marcdump-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-marcdump-man.xml + +yaz-iconv.1: yaz-iconv-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-iconv-man.xml + +yaz-log.7: yaz-log-man.xml + $(MAN_COMPILE) $(srcdir)/yaz-log-man.xml + +$(HTMLFILES): $(XMLFILES) + $(HTML_COMPILE) $(srcdir)/yaz.xml + +index.tkl: $(XMLFILES) + $(TKL_COMPILE) $(srcdir)/yaz.xml + +yaz.pdf: $(XMLFILES) + if test ! -f common/id.png ; then cp $(srcdir)/common/id.png common; fi + if test ! -f apilayer.png ; then cp $(srcdir)/apilayer.png .; fi + jade -E14 -D $(srcdir) -d common/print.dsl -t tex $(srcdir)/common/xml.dcl $(srcdir)/yaz.xml + pdfjadetex yaz.tex + pdfjadetex yaz.tex >/dev/null + pdfjadetex yaz.tex >/dev/null + +apilayer.png: + tgif -print -xbm apilayer.obj + xbmtopbm apilayer.png + +dist-hook: + if test -f index.html; then for f in *.html; do \ + found=0; \ + b=`basename $$f`; \ + for h in $(HTMLFILES); do \ + if test "$$h" = "$$b"; then \ + found=1; \ + fi \ + done; \ + if test "$$found" = "0"; then \ + echo "$$b not found in HTMLFILES"; \ + exit 1; \ + fi \ + done; fi +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/doc/apilayer.obj b/dependencies/yaz-2.1.28/doc/apilayer.obj new file mode 100644 index 0000000..d44ced8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/apilayer.obj @@ -0,0 +1,149 @@ +%TGIF 4.1.42-QPL +state(1,37,100.000,0,78,1,16,1,9,0,0,0,0,3,1,1,0,'Helvetica',0,80640,0,0,1,5,0,1,1,1,0,16,0,0,1,1,1,0,1485,1050,0,0,2880,0). +% +% @(#)$Header: /home/cvsroot/yaz/doc/apilayer.obj,v 1.2 2003/04/28 21:02:16 adam Exp $ +% %W% +% +unit("1 pixel/pixel"). +color_info(19,65535,0,[ + "magenta", 65535, 0, 65535, 65535, 0, 65535, 1, + "red", 65535, 0, 0, 65535, 0, 0, 1, + "green", 0, 65535, 0, 0, 65535, 0, 1, + "blue", 0, 0, 65535, 0, 0, 65535, 1, + "yellow", 65535, 65535, 0, 65535, 65535, 0, 1, + "pink", 65535, 49931, 50971, 65535, 49344, 52171, 1, + "cyan", 0, 65535, 65535, 0, 65535, 65535, 1, + "CadetBlue", 22885, 40569, 40569, 24415, 40606, 41120, 1, + "white", 65535, 65535, 65535, 65535, 65535, 65535, 1, + "black", 0, 0, 0, 0, 0, 0, 1, + "DarkSlateGray", 10402, 19764, 18724, 12079, 20303, 20303, 1, + "#00000000c000", 0, 0, 48891, 0, 0, 49152, 1, + "#820782070000", 34327, 33287, 0, 33287, 33287, 0, 1, + "#3cf3fbee34d2", 14563, 64494, 14563, 15603, 64494, 13522, 1, + "#3cf3fbed34d3", 14563, 64494, 14563, 15603, 64493, 13523, 1, + "#ffffa6990000", 65535, 42649, 0, 65535, 42649, 0, 1, + "#ffff0000fffe", 65535, 0, 65535, 65535, 0, 65534, 1, + "#fffe0000fffe", 65535, 0, 65535, 65534, 0, 65534, 1, + "#fffe00000000", 65535, 0, 0, 65534, 0, 0, 1 +]). +script_frac("0.6"). +fg_bg_colors('black','white'). +dont_reencode("FFDingbests:ZapfDingbats"). +page(1,"",1,''). +text('black',95,51,2,0,1,159,34,6,14,3,0,0,0,0,2,159,34,0,0,"",0,0,0,0,65,'',[ +minilines(159,34,0,0,0,0,0,[ +mini_line(159,14,3,0,0,0,[ +str_block(0,159,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,159,14,3,0,-1,0,0,0,0,0, + "Client/Server Application")]) +]), +mini_line(0,14,3,0,0,0,[ +str_block(0,0,14,3,0,0,0,0,0,[ +str_seg('black','Helvetica',0,80640,0,14,3,0,0,0,0,0,0,0, + "")]) +]) +])]). +text('black',190,121,2,0,1,40,34,17,14,3,0,0,0,0,2,40,34,0,0,"",0,0,0,0,135,'',[ +minilines(40,34,0,0,0,0,0,[ +mini_line(33,14,3,0,0,0,[ +str_block(0,33,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,33,14,3,0,-1,0,0,0,0,0, + "SRW")]) +]), +mini_line(40,14,3,0,0,0,[ +str_block(0,40,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,40,14,3,0,-1,0,0,0,0,0, + "SOAP")]) +]) +])]). +text('black',120,121,2,0,1,44,34,21,14,3,0,0,0,0,2,44,34,0,0,"",0,0,0,0,135,'',[ +minilines(44,34,0,0,0,0,0,[ +mini_line(44,14,3,0,0,0,[ +str_block(0,44,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,44,14,3,0,-1,0,0,0,0,0, + "Z39.50")]) +]), +mini_line(41,14,3,0,0,0,[ +str_block(0,41,14,3,0,-3,0,0,0,[ +str_seg('black','Helvetica',0,80640,41,14,3,0,-3,0,0,0,0,0, + "ASN.1")]) +]) +])]). +text('black',190,186,1,0,1,37,17,25,14,3,0,0,0,0,2,37,17,0,0,"",0,0,0,0,200,'',[ +minilines(37,17,0,0,0,0,0,[ +mini_line(37,14,3,0,0,0,[ +str_block(0,37,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,37,14,3,0,-1,0,0,0,0,0, + "HTTP")]) +]) +])]). +text('black',240,266,1,0,1,26,17,53,14,3,0,0,0,0,2,26,17,0,0,"",0,0,0,0,280,'',[ +minilines(26,17,0,0,0,0,0,[ +mini_line(26,14,3,0,0,0,[ +str_block(0,26,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,26,14,3,0,-1,0,0,0,0,0, + "SSL")]) +]) +])]). +box('black','',35,230,305,255,0,1,1,197,0,0,0,0,0,'1',0,[ +]). +box('black','',175,180,305,215,0,1,1,198,0,0,0,0,0,'1',0,[ +]). +box('black','',175,115,240,165,0,1,1,200,0,0,0,0,0,'1',0,[ +]). +box('black','',100,115,170,165,0,1,1,203,0,0,0,0,0,'1',0,[ +]). +box('black','',205,255,305,290,0,1,1,214,0,0,0,0,0,'1',0,[ +]). +text('black',95,231,1,0,1,83,17,224,14,3,0,0,0,0,2,83,17,0,0,"",0,0,0,0,245,'',[ +minilines(83,17,0,0,0,0,0,[ +mini_line(83,14,3,0,0,0,[ +str_block(0,83,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,83,14,3,0,-1,0,0,0,0,0, + "COMSTACK")]) +]) +])]). +text('black',80,186,1,0,1,71,17,254,14,3,0,0,0,0,2,71,17,0,0,"",0,0,0,0,200,'',[ +minilines(71,17,0,0,0,0,0,[ +mini_line(71,14,3,0,0,0,[ +str_block(0,71,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,71,14,3,0,-1,0,0,0,0,0, + "ODR (BER)")]) +]) +])]). +box('black','',35,180,170,215,0,1,1,266,0,0,0,0,0,'1',0,[ +]). +box('black','',35,45,305,90,0,1,1,268,0,0,0,0,0,'1',0,[ +]). +box('black','',240,115,305,165,0,1,1,292,5,0,0,0,0,'1',0,[ +]). +text('black',255,121,2,0,1,29,34,293,14,3,0,0,0,0,2,29,34,0,0,"",0,0,0,0,135,'',[ +minilines(29,34,0,0,0,0,0,[ +mini_line(28,14,3,0,0,0,[ +str_block(0,28,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,28,14,3,0,-1,0,0,0,0,0, + "SRU")]) +]), +mini_line(29,14,3,0,0,0,[ +str_block(0,29,14,3,0,0,0,0,0,[ +str_seg('black','Helvetica',0,80640,29,14,3,0,0,0,0,0,0,0, + "GET")]) +]) +])]). +text('black',50,121,2,0,1,41,34,303,14,3,0,0,0,0,2,41,34,0,0,"",0,0,0,0,135,'',[ +minilines(41,34,0,0,0,0,0,[ +mini_line(21,14,3,0,0,0,[ +str_block(0,21,14,3,0,-1,0,0,0,[ +str_seg('black','Helvetica',0,80640,21,14,3,0,-1,0,0,0,0,0, + "ILL")]) +]), +mini_line(41,14,3,0,0,0,[ +str_block(0,41,14,3,0,-3,0,0,0,[ +str_seg('black','Helvetica',0,80640,41,14,3,0,-3,0,0,0,0,0, + "ASN.1")]) +]) +])]). +box('black','',35,115,100,165,0,1,1,305,0,0,0,0,0,'1',0,[ +]). +box('black','',240,115,305,165,0,1,1,306,0,0,0,0,0,'1',0,[ +]). diff --git a/dependencies/yaz-2.1.28/doc/apilayer.png b/dependencies/yaz-2.1.28/doc/apilayer.png new file mode 100644 index 0000000000000000000000000000000000000000..cde890ad01a81eed13aff7def4390152848570be GIT binary patch literal 1021 zcmV{(E*h5{ ze6i52P8ey&!5}vnX$(ttB4%f%^Jk??N!Z1by={FUEJ1i6B|}7S3MhrzNgRlY_E!&(SpM?+x1zDN)n0qB z{{x7V*T2@=;W62G!o7_Rwe#D{sGsEQA=}`wz)vL(0QSWtmAKiCe3~&Vy1QAP2x)VeM z)Uy>?!V-jwATY$QlZG^Xp*2hP?-!%)78c&<)`c}o#5(=uPR^GMgueHQA^5BX&6EN~ zdI}UN%&M;qIe$o~Av-OIb?bJ{DJiKl?E`Aly&%7nBTaT2C$OkbK!;us$RuYUNMJ|V zg~*IT88d{*A?f%LskAH^FxJrr8Y3YsTjF;N5jED)>9Ut|)K=7xtA+>`S|aPLLG)xW zxoGlS?(G^fCp=3Kdp=1TBqFR~iK@tq!bb!=S#4^<`3_!<`U1-O3OF043#v3CXO^h$ z8X^~G>7AS}A5T8T>nOurO}gTC-KTSMZIV72QeQfarqnQ!e_K8yviRd8)S?d$dV-C}vpC@#mSIg1Je2@NC{8_)BHzjC(n7(I z%L2rSbd#fitH@+731TX85Y-n4QQal5x^!S@eCur%)k|Mw}ClWUL+3z>Aq z?OK|1a&3|!fNPYSex+AD!gOnfssCqbBs_nFgH6H)O_D}9eb(wS@{aXz8eu}5{4L2l z%HcF}QX+lI7WiaI|sf@{6hqE%l!)ff0jGks+! z9(i<|z{WaDC8?24. EXTERNAL Data

4. EXTERNAL Data

+ In order to achieve extensibility and adaptability to different + application domains, the new version of the protocol defines many + structures outside of the main ASN.1 specification, referencing them + through ASN.1 EXTERNAL constructs. To simplify the construction and + access to the externally referenced data, the Z39.50 ASN.1 module defines a + specialized version of the EXTERNAL construct, called + Z_External.It is defined thus: +

+typedef struct Z_External
+{
+    Odr_oid *direct_reference;
+    int *indirect_reference;
+    char *descriptor;
+    enum
+    {
+        /* Generic types */
+        Z_External_single = 0,
+        Z_External_octet,
+        Z_External_arbitrary,
+
+        /* Specific types */
+        Z_External_SUTRS,
+        Z_External_explainRecord,
+        Z_External_resourceReport1,
+        Z_External_resourceReport2
+
+    ...
+
+    } which;
+    union
+    {
+        /* Generic types */
+        Odr_any *single_ASN1_type;
+        Odr_oct *octet_aligned;
+        Odr_bitmask *arbitrary;
+
+        /* Specific types */
+        Z_SUTRS *sutrs;
+        Z_ExplainRecord *explainRecord;
+        Z_ResourceReport1 *resourceReport1;
+        Z_ResourceReport2 *resourceReport2;
+
+        ...
+
+    } u;
+} Z_External;
+   

+ When decoding, the Z39.50 ASN.1 module will attempt to determine which + syntax describes the data by looking at the reference fields + (currently only the direct-reference). For ASN.1 structured data, you + need only consult the which field to determine the + type of data. You can the access the data directly through the union. + When constructing data for encoding, you set the union pointer to point + to the data, and set the which field accordingly. + Remember also to set the direct (or indirect) reference to the correct + OID for the data type. + For non-ASN.1 data such as MARC records, use the + octet_aligned arm of the union. +

+ Some servers return ASN.1 structured data values (eg. database + records) as BER-encoded records placed in the + octet-aligned branch of the EXTERNAL CHOICE. + The ASN-module will not automatically decode + these records. To help you decode the records in the application, the + function +

+   Z_ext_typeent *z_ext_gettypebyref(oid_value ref);
+   

+ Can be used to retrieve information about the known, external data + types. The function return a pointer to a static area, or NULL, if no + match for the given direct reference is found. The + Z_ext_typeent + is defined as: +

+typedef struct Z_ext_typeent
+{
+    oid_value dref;    /* the direct-reference OID value. */
+    int what;          /* discriminator value for the external CHOICE */
+    Odr_fun fun;       /* decoder function */
+} Z_ext_typeent;
+   

+ The what member contains the + Z_External union discriminator value for the + given type: For the SUTRS record syntax, the value would be + Z_External_sutrs. + The fun member contains a pointer to the + function which encodes/decodes the given type. Again, for the SUTRS + record syntax, the value of fun would be + z_SUTRS (a function pointer). +

+ If you receive an EXTERNAL which contains an octet-string value that + you suspect of being an ASN.1-structured data value, you can use + z_ext_gettypebyref to look for the provided + direct-reference. + If the return value is different from NULL, you can use the provided + function to decode the BER string (see Section 2, “Using ODR” + ). +

+ If you want to send EXTERNALs containing + ASN.1-structured values in the occtet-aligned branch of the CHOICE, this + is possible too. However, on the encoding phase, it requires a somewhat + involved juggling around of the various buffers involved. +

+ If you need to add new, externally defined data types, you must update + the struct above, in the source file prt-ext.h, as + well as the encoder/decoder in the file prt-ext.c. + When changing the latter, remember to update both the + arm arrary and the list + type_table, which drives the CHOICE biasing that + is necessary to tell the different, structured types apart + on decoding. +

Note

+ Eventually, the EXTERNAL processing will most likely + automatically insert the correct OIDs or indirect-refs. First, + however, we need to determine how application-context management + (specifically the presentation-context-list) should fit into the + various modules. +

diff --git a/dependencies/yaz-2.1.28/doc/asn.html b/dependencies/yaz-2.1.28/doc/asn.html new file mode 100644 index 0000000..103c0a3 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/asn.html @@ -0,0 +1,16 @@ +Chapter 6. The Z39.50 ASN.1 Module

Chapter 6. The Z39.50 ASN.1 Module

1. Introduction

+ The Z39.50 ASN.1 module provides you with a set of C struct definitions for the + various PDUs of the Z39.50 protocol, as well as for the complex types + appearing within the PDUs. For the primitive data types, the C + representation often takes the form of an ordinary C language type, + such as int. For ASN.1 constructs that have no direct + representation in C, such as general octet strings and bit strings, + the ODR module (see section The ODR Module) + provides auxiliary definitions. +

+ The Z39.50 ASN.1 module is located in sub directory z39.50. + There you'll find C files that implements encoders and decoders for the + Z39.50 types. You'll also find the protocol definitions: + z3950v3.asn, esupdate.asn, + and others. +

diff --git a/dependencies/yaz-2.1.28/doc/asn.oid.html b/dependencies/yaz-2.1.28/doc/asn.oid.html new file mode 100644 index 0000000..12b7208 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/asn.oid.html @@ -0,0 +1,43 @@ +3. Object Identifiers

3. Object Identifiers

+ When you refer to object identifiers in your application, you need to + be aware that SR and Z39.50 use two different set of OIDs to refer to + the same objects. To handle this easily, YAZ provides a utility module + to Z39.50 ASN.1 which provides an internal representation of the OIDs used in + both protocols. Each oid is described by a structure: +

+typedef struct oident
+{
+    enum oid_proto proto;
+    enum oid_class class;
+    enum oid_value value;
+    int oidsuffix[OID_SIZE];
+    char *desc;
+} oident;
+   

+ The proto field can be set to either + PROTO_SR or PROTO_Z3950. + The class might be, say, + CLASS_RECSYN, and the value might be + VAL_USMARC for the USMARC record format. Functions +

+int *oid_ent_to_oid(struct oident *ent, int *dst);
+struct oident *oid_getentbyoid(int *o);
+   

+ are provided to map between object identifiers and database entries. + If you store a member of the oid_proto type in + your association state information, it's a simple matter, at runtime, + to generate the correct OID when you need it. For decoding, you can + simply ignore the proto field, or if you're strict, you can verify + that your peer is using the OID family from the correct protocol. + The desc field is a short, human-readable name + for the PDU, useful mainly for diagnostic output. +

Note

+ The old function oid_getoidbyent still exists but + is not thread safe. Use oid_ent_to_oid instead + and pass an array of size OID_SIZE. +

Note

+ Plans are underway to merge the two protocols into a single + definition, with one set of object identifiers. When this happens, the + oid module will no longer be required to support protocol + independence, but it should still be useful as a simple OID database. +

diff --git a/dependencies/yaz-2.1.28/doc/asn.pdu.html b/dependencies/yaz-2.1.28/doc/asn.pdu.html new file mode 100644 index 0000000..a55b186 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/asn.pdu.html @@ -0,0 +1,288 @@ +5. PDU Contents Table

5. PDU Contents Table

+ We include, for reference, a listing of the fields of each top-level + PDU, as well as their default settings. +

Table 6.1. Default settings for PDU Initialize Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ protocolVersionOdr_bitmaskEmpty bitmask +
+ optionsOdr_bitmaskEmpty bitmask +
+ preferredMessageSizeint30*1024 +
+ maximumRecordSizeint30*1024 +
+ idAuthenticationZ_IdAuthenticationNULL +
+ implementationIdchar*"81" +
+ implementationNamechar*"YAZ" +
+ implementationVersionchar*YAZ_VERSION +
+ userInformationFieldZ_UserInformationNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.2. Default settings for PDU Initialize + Response

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ protocolVersionOdr_bitmaskEmpty bitmask +
+ optionsOdr_bitmaskEmpty bitmask +
+ preferredMessageSizeint30*1024 +
+ maximumRecordSizeint30*1024 +
+ resultbool_tTRUE +
+ implementationIdchar*"id)" +
+ implementationNamechar*"YAZ" +
+ implementationVersionchar*YAZ_VERSION +
+ userInformationFieldZ_UserInformationNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.3. Default settings for PDU Search Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ smallSetUpperBoundint0 +
+ largeSetLowerBoundint1 +
+ mediumSetPresentNumberint0 +
+ replaceIndicatorbool_tTRUE +
+ resultSetNamechar *"default" +
+ num_databaseNamesint0 +
+ databaseNameschar **NULL +
+ smallSetElementSetNamesZ_ElementSetNames + NULL +
+ mediumSetElementSetNamesZ_ElementSetNames + NULL +
+ preferredRecordSyntaxOdr_oidNULL +
+ queryZ_QueryNULL +
+ additionalSearchInfoZ_OtherInformation + NULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.4. Default settings for PDU Search Response

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ resultCountint0 +
+ numberOfRecordsReturnedint0 +
+ nextResultSetPositionint0 +
+ searchStatusbool_tTRUE +
+ resultSetStatusintNULL +
+ presentStatusintNULL +
+ recordsZ_RecordsNULL +
+ additionalSearchInfoZ_OtherInformationNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.5. Default settings for PDU Present Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ resultSetIdchar*"default" +
+ resultSetStartPointint1 +
+ numberOfRecordsRequestedint10 +
+ num_rangesint0 +
+ additionalRangesZ_RangeNULL +
+ recordCompositionZ_RecordCompositionNULL +
+ preferredRecordSyntaxOdr_oidNULL +
+ maxSegmentCountintNULL +
+ maxRecordSizeintNULL +
+ maxSegmentSizeintNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.6. Default settings for PDU Present Response

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ numberOfRecordsReturnedint0 +
+ nextResultSetPositionint0 +
+ presentStatusintZ_PresentStatus_success +
+ recordsZ_RecordsNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.7. Default settings for Delete Result Set Request +

FieldTypeDefault Value
referenceId + Z_ReferenceIdNULL +
+ deleteFunctionintZ_DeleteResultSetRequest_list +
+ num_idsint0 +
+ resultSetListchar**NULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.8. Default settings for Delete Result Set Response +

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ deleteOperationStatusintZ_DeleteStatus_success
+ num_statusesint0 +
+ deleteListStatusesZ_ListStatus**NULL +
+ numberNotDeletedintNULL +
+ num_bulkStatusesint0 +
+ bulkStatusesZ_ListStatusNUL + L
+ deleteMessagechar*NULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.9. Default settings for Scan Request +

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ num_databaseNamesint0 +
+ databaseNameschar**NULL +
+ attributeSetOdr_oidNULL +
+ termListAndStartPointZ_AttributesPlus... + NULL
+ stepSizeintNULL +
+ numberOfTermsRequestedint20 +
+ preferredPositionInResponseintNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.10. Default settings for Scan Response +

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ stepSizeintNULL +
+ scanStatusintZ_Scan_success +
+ numberOfEntriesReturnedint0 +
+ positionOfTermintNULL +
+ entriesZ_ListEntrisNULL +
+ attributeSetOdr_oidNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.11. Default settings for Trigger Resource + Control Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ requestedActionint + Z_TriggerResourceCtrl_resou.. +
+ prefResourceReportFormatOdr_oidNULL +
+ resultSetWantedbool_tNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.12. Default settings for Resource + Control Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ suspendedFlagbool_tNULL +
+ resourceReportZ_ExternalNULL +
+ partialResultsAvailableintNULL +
+ responseRequiredbool_tFALSE +
+ triggeredRequestFlagbool_tNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.13. Default settings for Resource + Control Response

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ continueFlagbool_tTRUE +
+ resultSetWantedbool_tNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.14. Default settings for Access + Control Request

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ whichenumZ_AccessRequest_simpleForm; +
+ uunionNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.15. Default settings for Access + Control Response

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ whichenumZ_AccessResponse_simpleForm +
+ uunionNULL +
+ diagnosticZ_DiagRecNULL +
+ otherInfoZ_OtherInformationNULL +

Table 6.16. Default settings for Segment

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ numberOfRecordsReturnedintvalue=0 +
+ num_segmentRecordsint0 +
+ segmentRecordsZ_NamePlusRecordNULL +
otherInfoZ_OtherInformationNULL +

Table 6.17. Default settings for Close

FieldTypeDefault Value
+ referenceIdZ_ReferenceIdNULL +
+ closeReasonintZ_Close_finished +
+ diagnosticInformationchar*NULL +
+ resourceReportFormatOdr_oidNULL +
+ resourceFormatZ_ExternalNULL +
+ otherInfoZ_OtherInformationNULL +

diff --git a/dependencies/yaz-2.1.28/doc/asn.preparing.html b/dependencies/yaz-2.1.28/doc/asn.preparing.html new file mode 100644 index 0000000..fbb4bf0 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/asn.preparing.html @@ -0,0 +1,89 @@ +2. Preparing PDUs

2. Preparing PDUs

+ A structure representing a complex ASN.1 type doesn't in itself contain the + members of that type. Instead, the structure contains + pointers to the members of the type. + This is necessary, in part, to allow a mechanism for specifying which + of the optional structure (SEQUENCE) members are present, and which + are not. It follows that you will need to somehow provide space for + the individual members of the structure, and set the pointers to + refer to the members. +

+ The conversion routines don't care how you allocate and maintain your + C structures - they just follow the pointers that you provide. + Depending on the complexity of your application, and your personal + taste, there are at least three different approaches that you may take + when you allocate the structures. +

+ You can use static or automatic local variables in the function that + prepares the PDU. This is a simple approach, and it provides the most + efficient form of memory management. While it works well for flat + PDUs like the InitReqest, it will generally not be sufficient for say, + the generation of an arbitrarily complex RPN query structure. +

+ You can individually create the structure and its members using the + malloc(2) function. If you want to ensure that + the data is freed when it is no longer needed, you will have to + define a function that individually releases each member of a + structure before freeing the structure itself. +

+ You can use the odr_malloc() function (see + Section 2, “Using ODR” for details). When you use + odr_malloc(), you can release all of the + allocated data in a single operation, independent of any pointers and + relations between the data. odr_malloc() is based on a + "nibble-memory" + scheme, in which large portions of memory are allocated, and then + gradually handed out with each call to odr_malloc(). + The next time you call odr_reset(), all of the + memory allocated since the last call is recycled for future use (actually, + it is placed on a free-list). +

+ You can combine all of the methods described here. This will often be + the most practical approach. For instance, you might use + odr_malloc() to allocate an entire structure and + some of its elements, while you leave other elements pointing to global + or per-session default variables. +

+ The Z39.50 ASN.1 module provides an important aid in creating new PDUs. For + each of the PDU types (say, Z_InitRequest), a + function is provided that allocates and initializes an instance of + that PDU type for you. In the case of the InitRequest, the function is + simply named zget_InitRequest(), and it sets up + reasonable default value for all of the mandatory members. The optional + members are generally initialized to null pointers. This last aspect + is very important: it ensures that if the PDU definitions are + extended after you finish your implementation (to accommodate + new versions of the protocol, say), you won't get into trouble with + uninitialized pointers in your structures. The functions use + odr_malloc() to + allocate the PDUs and its members, so you can free everything again with a + single call to odr_reset(). We strongly recommend + that you use the zget_* + functions whenever you are preparing a PDU (in a C++ API, the + zget_ + functions would probably be promoted to constructors for the + individual types). +

+ The prototype for the individual PDU types generally look like this: +

+    Z_<type> *zget_<type>(ODR o);
+   

+ eg.: +

+    Z_InitRequest *zget_InitRequest(ODR o);
+   

+ The ODR handle should generally be your encoding stream, but it + needn't be. +

+ As well as the individual PDU functions, a function + zget_APDU() is provided, which allocates + a top-level Z-APDU of the type requested: +

+    Z_APDU *zget_APDU(ODR o, int which);
+   

+ The which parameter is (of course) the discriminator + belonging to the Z_APDU CHOICE type. + All of the interface described here is provided by the Z39.50 ASN.1 module, and + you access it through the proto.h header file. + +

diff --git a/dependencies/yaz-2.1.28/doc/asn.xml b/dependencies/yaz-2.1.28/doc/asn.xml new file mode 100644 index 0000000..1cae4e2 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/asn.xml @@ -0,0 +1,1073 @@ + + The Z39.50 ASN.1 Module + Introduction + + The &asn; module provides you with a set of C struct definitions for the + various PDUs of the Z39.50 protocol, as well as for the complex types + appearing within the PDUs. For the primitive data types, the C + representation often takes the form of an ordinary C language type, + such as int. For ASN.1 constructs that have no direct + representation in C, such as general octet strings and bit strings, + the &odr; module (see section The ODR Module) + provides auxiliary definitions. + + + The &asn; module is located in sub directory z39.50. + There you'll find C files that implements encoders and decoders for the + Z39.50 types. You'll also find the protocol definitions: + z3950v3.asn, esupdate.asn, + and others. + + + Preparing PDUs + + + A structure representing a complex ASN.1 type doesn't in itself contain the + members of that type. Instead, the structure contains + pointers to the members of the type. + This is necessary, in part, to allow a mechanism for specifying which + of the optional structure (SEQUENCE) members are present, and which + are not. It follows that you will need to somehow provide space for + the individual members of the structure, and set the pointers to + refer to the members. + + + The conversion routines don't care how you allocate and maintain your + C structures - they just follow the pointers that you provide. + Depending on the complexity of your application, and your personal + taste, there are at least three different approaches that you may take + when you allocate the structures. + + + + You can use static or automatic local variables in the function that + prepares the PDU. This is a simple approach, and it provides the most + efficient form of memory management. While it works well for flat + PDUs like the InitReqest, it will generally not be sufficient for say, + the generation of an arbitrarily complex RPN query structure. + + + You can individually create the structure and its members using the + malloc(2) function. If you want to ensure that + the data is freed when it is no longer needed, you will have to + define a function that individually releases each member of a + structure before freeing the structure itself. + + + You can use the odr_malloc() function (see + for details). When you use + odr_malloc(), you can release all of the + allocated data in a single operation, independent of any pointers and + relations between the data. odr_malloc() is based on a + "nibble-memory" + scheme, in which large portions of memory are allocated, and then + gradually handed out with each call to odr_malloc(). + The next time you call odr_reset(), all of the + memory allocated since the last call is recycled for future use (actually, + it is placed on a free-list). + + + You can combine all of the methods described here. This will often be + the most practical approach. For instance, you might use + odr_malloc() to allocate an entire structure and + some of its elements, while you leave other elements pointing to global + or per-session default variables. + + + + The &asn; module provides an important aid in creating new PDUs. For + each of the PDU types (say, Z_InitRequest), a + function is provided that allocates and initializes an instance of + that PDU type for you. In the case of the InitRequest, the function is + simply named zget_InitRequest(), and it sets up + reasonable default value for all of the mandatory members. The optional + members are generally initialized to null pointers. This last aspect + is very important: it ensures that if the PDU definitions are + extended after you finish your implementation (to accommodate + new versions of the protocol, say), you won't get into trouble with + uninitialized pointers in your structures. The functions use + odr_malloc() to + allocate the PDUs and its members, so you can free everything again with a + single call to odr_reset(). We strongly recommend + that you use the zget_* + functions whenever you are preparing a PDU (in a C++ API, the + zget_ + functions would probably be promoted to constructors for the + individual types). + + + The prototype for the individual PDU types generally look like this: + + + Z_<type> *zget_<type>(ODR o); + + + + eg.: + + + + Z_InitRequest *zget_InitRequest(ODR o); + + + + The &odr; handle should generally be your encoding stream, but it + needn't be. + + + As well as the individual PDU functions, a function + zget_APDU() is provided, which allocates + a top-level Z-APDU of the type requested: + + + + Z_APDU *zget_APDU(ODR o, int which); + + + + The which parameter is (of course) the discriminator + belonging to the Z_APDU CHOICE type. + All of the interface described here is provided by the &asn; module, and + you access it through the proto.h header file. + + + + Object Identifiers + + When you refer to object identifiers in your application, you need to + be aware that SR and Z39.50 use two different set of OIDs to refer to + the same objects. To handle this easily, &yaz; provides a utility module + to &asn; which provides an internal representation of the OIDs used in + both protocols. Each oid is described by a structure: + + + +typedef struct oident +{ + enum oid_proto proto; + enum oid_class class; + enum oid_value value; + int oidsuffix[OID_SIZE]; + char *desc; +} oident; + + + + The proto field can be set to either + PROTO_SR or PROTO_Z3950. + The class might be, say, + CLASS_RECSYN, and the value might be + VAL_USMARC for the USMARC record format. Functions + + + +int *oid_ent_to_oid(struct oident *ent, int *dst); +struct oident *oid_getentbyoid(int *o); + + + + are provided to map between object identifiers and database entries. + If you store a member of the oid_proto type in + your association state information, it's a simple matter, at runtime, + to generate the correct OID when you need it. For decoding, you can + simply ignore the proto field, or if you're strict, you can verify + that your peer is using the OID family from the correct protocol. + The desc field is a short, human-readable name + for the PDU, useful mainly for diagnostic output. + + + + + The old function oid_getoidbyent still exists but + is not thread safe. Use oid_ent_to_oid instead + and pass an array of size OID_SIZE. + + + + + + Plans are underway to merge the two protocols into a single + definition, with one set of object identifiers. When this happens, the + oid module will no longer be required to support protocol + independence, but it should still be useful as a simple OID database. + + + + + EXTERNAL Data + + + In order to achieve extensibility and adaptability to different + application domains, the new version of the protocol defines many + structures outside of the main ASN.1 specification, referencing them + through ASN.1 EXTERNAL constructs. To simplify the construction and + access to the externally referenced data, the &asn; module defines a + specialized version of the EXTERNAL construct, called + Z_External.It is defined thus: + + + +typedef struct Z_External +{ + Odr_oid *direct_reference; + int *indirect_reference; + char *descriptor; + enum + { + /* Generic types */ + Z_External_single = 0, + Z_External_octet, + Z_External_arbitrary, + + /* Specific types */ + Z_External_SUTRS, + Z_External_explainRecord, + Z_External_resourceReport1, + Z_External_resourceReport2 + + ... + + } which; + union + { + /* Generic types */ + Odr_any *single_ASN1_type; + Odr_oct *octet_aligned; + Odr_bitmask *arbitrary; + + /* Specific types */ + Z_SUTRS *sutrs; + Z_ExplainRecord *explainRecord; + Z_ResourceReport1 *resourceReport1; + Z_ResourceReport2 *resourceReport2; + + ... + + } u; +} Z_External; + + + + When decoding, the &asn; module will attempt to determine which + syntax describes the data by looking at the reference fields + (currently only the direct-reference). For ASN.1 structured data, you + need only consult the which field to determine the + type of data. You can the access the data directly through the union. + When constructing data for encoding, you set the union pointer to point + to the data, and set the which field accordingly. + Remember also to set the direct (or indirect) reference to the correct + OID for the data type. + For non-ASN.1 data such as MARC records, use the + octet_aligned arm of the union. + + + + Some servers return ASN.1 structured data values (eg. database + records) as BER-encoded records placed in the + octet-aligned branch of the EXTERNAL CHOICE. + The ASN-module will not automatically decode + these records. To help you decode the records in the application, the + function + + + + Z_ext_typeent *z_ext_gettypebyref(oid_value ref); + + + + Can be used to retrieve information about the known, external data + types. The function return a pointer to a static area, or NULL, if no + match for the given direct reference is found. The + Z_ext_typeent + is defined as: + + + +typedef struct Z_ext_typeent +{ + oid_value dref; /* the direct-reference OID value. */ + int what; /* discriminator value for the external CHOICE */ + Odr_fun fun; /* decoder function */ +} Z_ext_typeent; + + + + The what member contains the + Z_External union discriminator value for the + given type: For the SUTRS record syntax, the value would be + Z_External_sutrs. + The fun member contains a pointer to the + function which encodes/decodes the given type. Again, for the SUTRS + record syntax, the value of fun would be + z_SUTRS (a function pointer). + + + + If you receive an EXTERNAL which contains an octet-string value that + you suspect of being an ASN.1-structured data value, you can use + z_ext_gettypebyref to look for the provided + direct-reference. + If the return value is different from NULL, you can use the provided + function to decode the BER string (see + ). + + + + If you want to send EXTERNALs containing + ASN.1-structured values in the occtet-aligned branch of the CHOICE, this + is possible too. However, on the encoding phase, it requires a somewhat + involved juggling around of the various buffers involved. + + + If you need to add new, externally defined data types, you must update + the struct above, in the source file prt-ext.h, as + well as the encoder/decoder in the file prt-ext.c. + When changing the latter, remember to update both the + arm arrary and the list + type_table, which drives the CHOICE biasing that + is necessary to tell the different, structured types apart + on decoding. + + + + + Eventually, the EXTERNAL processing will most likely + automatically insert the correct OIDs or indirect-refs. First, + however, we need to determine how application-context management + (specifically the presentation-context-list) should fit into the + various modules. + + + + + PDU Contents Table + + + We include, for reference, a listing of the fields of each top-level + PDU, as well as their default settings. + + + Default settings for PDU Initialize Request + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + protocolVersionOdr_bitmaskEmpty bitmask + + + optionsOdr_bitmaskEmpty bitmask + + + preferredMessageSizeint30*1024 + + + maximumRecordSizeint30*1024 + + + idAuthenticationZ_IdAuthenticationNULL + + + implementationIdchar*"81" + + + implementationNamechar*"YAZ" + + + implementationVersionchar*YAZ_VERSION + + + userInformationFieldZ_UserInformationNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for PDU Initialize + Response + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + protocolVersionOdr_bitmaskEmpty bitmask + + + optionsOdr_bitmaskEmpty bitmask + + + preferredMessageSizeint30*1024 + + + maximumRecordSizeint30*1024 + + + resultbool_tTRUE + + + implementationIdchar*"id)" + + + implementationNamechar*"YAZ" + + + implementationVersionchar*YAZ_VERSION + + + userInformationFieldZ_UserInformationNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for PDU Search Request + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + smallSetUpperBoundint0 + + + largeSetLowerBoundint1 + + + mediumSetPresentNumberint0 + + + replaceIndicatorbool_tTRUE + + + resultSetNamechar *"default" + + + num_databaseNamesint0 + + + databaseNameschar **NULL + + + smallSetElementSetNamesZ_ElementSetNames + NULL + + + mediumSetElementSetNamesZ_ElementSetNames + NULL + + + preferredRecordSyntaxOdr_oidNULL + + + queryZ_QueryNULL + + + additionalSearchInfoZ_OtherInformation + NULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for PDU Search Response + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + resultCountint0 + + + numberOfRecordsReturnedint0 + + + nextResultSetPositionint0 + + + searchStatusbool_tTRUE + + + resultSetStatusintNULL + + + presentStatusintNULL + + + recordsZ_RecordsNULL + + + additionalSearchInfo + Z_OtherInformationNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for PDU Present Request + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + resultSetIdchar*"default" + + + resultSetStartPointint1 + + + numberOfRecordsRequestedint10 + + + num_rangesint0 + + + additionalRangesZ_RangeNULL + + + recordCompositionZ_RecordCompositionNULL + + + preferredRecordSyntaxOdr_oidNULL + + + maxSegmentCountintNULL + + + maxRecordSizeintNULL + + + maxSegmentSizeintNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for PDU Present Response + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + numberOfRecordsReturnedint0 + + + nextResultSetPositionint0 + + + presentStatusintZ_PresentStatus_success + + + recordsZ_RecordsNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Delete Result Set Request + + + + + + + + Field + Type + Default Value + + + + referenceId + Z_ReferenceIdNULL + + + deleteFunctionintZ_DeleteResultSetRequest_list + + + num_idsint0 + + + resultSetListchar**NULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Delete Result Set Response + + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + deleteOperationStatusint + Z_DeleteStatus_success + + num_statusesint0 + + + deleteListStatusesZ_ListStatus**NULL + + + numberNotDeletedintNULL + + + num_bulkStatusesint0 + + + bulkStatusesZ_ListStatusNUL + L + + deleteMessagechar*NULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Scan Request + + + + + + + + Field + Type + Default Value + + + + + referenceIdZ_ReferenceIdNULL + + + num_databaseNamesint0 + + + databaseNameschar**NULL + + + attributeSetOdr_oidNULL + + + termListAndStartPointZ_AttributesPlus... + NULL + + stepSizeintNULL + + + numberOfTermsRequestedint20 + + + preferredPositionInResponseintNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Scan Response + + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + stepSizeintNULL + + + scanStatusintZ_Scan_success + + + numberOfEntriesReturnedint0 + + + positionOfTermintNULL + + + entriesZ_ListEntrisNULL + + + attributeSetOdr_oidNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Trigger Resource + Control Request + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + requestedActionint + Z_TriggerResourceCtrl_resou.. + + + prefResourceReportFormatOdr_oidNULL + + + resultSetWantedbool_tNULL + + + otherInfoZ_OtherInformationNULL + + + + +
+ + Default settings for Resource + Control Request + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + suspendedFlagbool_tNULL + + + resourceReportZ_ExternalNULL + + + partialResultsAvailableintNULL + + + responseRequiredbool_tFALSE + + + triggeredRequestFlagbool_tNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Resource + Control Response + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + continueFlagbool_tTRUE + + + resultSetWantedbool_tNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Access + Control Request + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + whichenumZ_AccessRequest_simpleForm; + + + uunionNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Access + Control Response + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + whichenumZ_AccessResponse_simpleForm + + + uunionNULL + + + diagnosticZ_DiagRecNULL + + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Segment + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + numberOfRecordsReturnedintvalue=0 + + + num_segmentRecordsint0 + + + segmentRecordsZ_NamePlusRecordNULL + + otherInfoZ_OtherInformationNULL + + + +
+ + Default settings for Close + + + + + + + Field + Type + Default Value + + + + + + referenceIdZ_ReferenceIdNULL + + + closeReasonintZ_Close_finished + + + diagnosticInformationchar*NULL + + + resourceReportFormatOdr_oidNULL + + + resourceFormatZ_ExternalNULL + + + otherInfoZ_OtherInformationNULL + + + + +
+ +
+
+ + diff --git a/dependencies/yaz-2.1.28/doc/bookinfo.xml b/dependencies/yaz-2.1.28/doc/bookinfo.xml new file mode 100644 index 0000000..a9de3f7 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/bookinfo.xml @@ -0,0 +1,45 @@ + + + YAZ User's Guide and Reference + SebastianHammer + AdamDickmeiss + MikeTaylor + HeikkiLevanto + + ©right-year; + Index Data + + + This document is the programmer's guide and reference to the &yaz; + package version &version;. &yaz; is a compact toolkit that provides + access to the Z39.50 and SRW/SRU protocols, as well as a set of + higher-level tools for implementing the server and client + roles, respectively. + The documentation can be used on its own, or as a reference when + looking at the example applications provided with the package. + + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/client.commands.html b/dependencies/yaz-2.1.28/doc/client.commands.html new file mode 100644 index 0000000..06a09ae --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/client.commands.html @@ -0,0 +1,426 @@ +3. Commands

3. Commands

+ When the YAZ client has read options and connected to a target, if given, + it will display Z> and await your command. + Commands are executed by hitting the return key. + You can always issue the command ? to see the list + of available commands. +

+ The commands are (the letters in parenthesis are short + names for the commands): +

+ open zurl +

Opens a connection to a server. The syntax for + zurl is the same as described + above for connecting from the command line. +

+ Syntax: +

+ [(tcp|ssl|unix|http)':']host + [:port][/base] +

+ quit +

Quits YAZ client

+ find query

Sends a Search Request using the query + given. By default the query is assumed to be PQF. See command + querytype. +

+ delete setname

Deletes result set with name setname + on the server.

+ base base1 + base2 ... +

Sets the name(s) of the database(s) to search. One or more + databases may be specified separated by blanks. This commands overrides + the database given in zurl. +

+ show + [start[+number]] +

Fetches records by sending a Present Request from the start + position given by + start + a number of records given by number. If + start is not given, then the client + will fetch from position of the last retrieved record plus 1. If + number is not given, then one record will + be fetched at a time. +

+ scan term +

Scans + database index for a term. The syntax resembles the syntax + for find. + If you want to scan for the word water you could + write +

+    scan water
+   

+ but if you want to scan only in, say the title field, you would write +

+    scan @attr 1=4 water
+   
+ scanpos pos +
+ Sets preferred position for scan. This value + is used in next scan. By default position is 1. +
+ scansize size +
+ Sets number of entries to be returned by scan. Default + number of entries is 20. +
+ scanstep step +
+ Set step-size for scan. This value is used in next scan + sent to the target. By default step-size is 0. +
+ sort sortspecs +

Sorts a result set. The sort command takes a + sequence of space-separated sort specifications, with each sort + specification consisting of two space-separated words (so that the + whole specification list is made up of an even number of words). + The first word of each specification + holds a field (sort criterion) and the second holds flags. + If the sort criterion includes = it is assumed + that the SortKey is of type + sortAttributes using Bib-1: in this case + the integer before = is + the attribute type and the integer following = + is the attribute value. + If no = is in the criterion it is treated as a + sortfield of type InternationalString. + The flags word of each sort specification must consist of + s + for case sensitive or i for case insensitive, and + < for ascending order or > + for descending order. +

+ sort+ +

Same as sort but stores the sorted + result set in a new result set. +

+ authentication openauth +

Sets up a authentication string if a server requires + authentication (v2 OpenStyle). The authentication string is first + sent to the server when the + open command is + issued and the Z39.50 Initialize Request is sent, so this command + must be used before open in order to be effective. + A common convention for the authopen string + is that the username - and password is separated by a slash, e.g. + myusername/mysecret. +

+ sru method +

Selects SRU method. Must be one of POST, + GET, SOAP (default). +

+ list_all +

This command displays status and values for many settings. +

+ lslb n +

Sets the limit for when no records should be returned + together with the search result. + See the + + Z39.50 standard + + for more details. +

+ ssub n +

Sets the limit for when all records should be returned with + the search result. + See the + + Z39.50 standard + for more details. +

+ mspn n +

Sets the number of records should be returned if the + number of records in the result set is between the values of + lslb and ssub. + See the + + Z39.50 standard + + for more details. +

+ status +

Displays the values of lslb, + ssub and mspn. +

+ setname +

Switches named result sets on and off. Default is on. +

+ cancel +

Sends a Trigger Resource Control Request to the target. +

+ format oid +

Sets the preferred transfer syntax for retrieved records. + yaz-client supports all the record syntaxes that currently + are registered. See + + Z39.50 Standard + + for more details. Commonly used records syntaxes include usmarc, + sutrs, grs1 and xml. +

+ elements e +

Sets the element set name for the records. Many targets support + element sets are B (for brief) and F (for full). +

+ close +

Sends a Z39.50 Close APDU and closes connection with the peer +

+ querytype type +

Sets the query type as used by command + find. + The following is supported: + prefix for + Prefix Query Notation (Type-1 Query); + ccl for CCL search (Type-2 Query), + cql for CQL (Type-104 search with CQL OID), + ccl2rpn for + CCL to RPN conversion (Type-1 Query). + cql2rpn for + CQL to RPN conversion (Type-1 Query). +

+ attributeset set +

+ Sets attribute set OID for prefix queries (RPN, Type-1). +

+ refid id +

Sets reference ID for Z39.50 Request(s). +

+ itemorder + type no +

Sends an Item Order Request using the ILL External. + type is either 1 or 2 which corresponds to + ILL-Profile 1 and 2 respectively. The no + is the Result Set position of the record to be ordered. +

+ update + action + recid + doc +

Sends Item Update Request. The action + argument must be the action type: one of insert, + replace, delete and + update. The second argument, + recid, is the + record identifier (any string). Third argument which is optional is + the record document for the request. If doc is a quoted string + (double quotes) the string content is used verbatim. If doc is not + a quoted string, it is assumed to be a filename which is read, then + sent as the docuemnt content. If doc is omitted, the last received + record (as parf of present response or piggybacked search response) + is used for the update. +

+ . + filename +

Executes list of commands from + file filename, just like source on + most UNIX shells. +

+ ! + args +

Executes command args in subshell + using the system call. +

+ push_command + command +

The push_command takes another command as its argument. + That command is then added to the history information (so + you can retrieve it later). The command itself is not + executed. This command only works if you have GNU readline/history + enabled. +

+ set_apdufile + filename +

Sets that APDU should be logged to file + filename. Another way to achieve + APDU log is by using command-line option -a. +

+ set_auto_reconnect + flag +

Specifies whether YAZ client automatically reconnect if + target closes connection (Z39.50 only). +

+ flag must be either + on or off. +

+ set_auto_wait + flag +

Specifies whether YAZ client should wait for + response protocol packages after a request. + By default YAZ client waits (on) for response packages immediately + after a command (find, show) has been issued. If off + is used, YAZ client does not attempt to receive packages automatically. + These will have to be manually received when command + + wait_response + is used. +

+ flag must be either + on or off. +

+ set_marcdump + filename +

Specifies that all retrieved records should be appended to + file filename. This command does the + thing as option -m. +

+ schema + schemaid +

Specifies schema for retrieval. + Schema may be specified as an OID for Z39.50. + For SRU, schema is a simple string URI. +

+ charset + negotiationcharset + [displaycharset] + [[marccharset]] +

Specifies character set (encoding) for Z39.50 + negotiation / SRU encoding and/or character set for output (terminal). +

+ negotiationcharset is the name + of the character set to be negotiated by the server. The special name + - for negotiationcharset + specifies no character set to be negotiated. +

+ If displaycharset is given, it specifies name + of the character set of the output (on the terminal on which + YAZ client is running). To disable conversion of characters + to the output encoding, the special name - (dash) + can be used. + If the special name auto is given, YAZ client will + convert strings to the encoding of the + terminal as returned by nl_langinfo call. +

+ If marcharset is given, it specifies name + of the character set of retrieved MARC records from server. See + also marcharset command. +

Note

+ Since character set negotation takes effect in the Z39.50 + Initialize Request you should issue this command before + command open + is used. +

Note

+ MARC records are not covered by Z39.50 character set negotiation, + so that's why there is a separate character that must be known + in order to do meaningful converson(s). +

+ negcharset + charset +

Specifies character set for negotiation (Z39.50). The + argument is the same as second argument for command + charset. +

+ displaycharset + charset +

Specifies character set for output (display). The + argument is the same as second argument for command + charset. +

+ marccharset + charset +

Specifies character set for retrieved MARC records so + that YAZ client can display them in a character suitable + for your display. See charset command. + If auto is given, YAZ will assume + that MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1 + for all other MARC variants. The charset argument is the + same as third argument for command + charset. +

+ set_cclfile + filename +

Specifies that CCL fields should be read from file + file filename. This command does the + thing as option -c. +

+ set_cqlfile + filename +

Specifies that CQL fields should be read from file + file filename. This command does the + thing as option -q. +

+ register_oid + name + class + OID +

This command allows you to register your own object + identifier - so that instead of entering a long dot-notation + you can use a short name instead. + The name is your + name for the OID, class is the + class, and OID is the raw OID in + dot notation. Class is one appctx, + absyn, attet, + transyn, diagset, + recsyn, resform, + accform, extserv, + userinfo, elemspec, + varset, schema, + tagset, general. + If you're in doubt use the general + class. +

+ register_tab + command + string +

This command registers a TAB completion string for + the command given. +

+ sleep + seconds +

This command makes YAZ client sleep (be idle) for + the number of seconds given. +

+ wait_response + [ number] +

This command makes YAZ client wait for a number of + response packages from target. If number is + omitted, 1 is assumed. +

This command is rarely used and is only useful if command + + set_auto_wait + is set to off. +

+ xmles + OID + doc +

Sends XML Extended Services request using the OID and doc given. +

+ zversion + ver +

This command sets Z39.50 version for negotiation. + Should be used before + open. + By default 3 (version 3) is used. +

+ options + op1 op2.. +

This command sets Z39.50 options for negotiation. + Should be used before + open. +

+ The following options are supported: + search, + present, + delSet, + resourceReport, + triggerResourceCtrl, + resourceCtrl, + accessCtrl, + scan, + sort, + extendedServices, + level_1Segmentation, + level_2Segmentation, + concurrentOperations, + namedResultSets, + encapsulation, + resultCount, + negotiationModel, + duplicationDetection, + queryType104, + pQESCorrection, + stringSchema. +

diff --git a/dependencies/yaz-2.1.28/doc/client.html b/dependencies/yaz-2.1.28/doc/client.html new file mode 100644 index 0000000..1570b5c --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/client.html @@ -0,0 +1,10 @@ +Chapter 5. The YAZ client

Chapter 5. The YAZ client

1. Introduction

+ yaz-client is a line-mode Z39.50/SRU client. It supports a fair amount + of the functionality of the Z39.50v3 standard. + Its primary purpose is to exercise the package, and verify that + the protocol works OK. + For the same reason some commands offers more functionality than others. + Commands that exercises common Z39.50 services such as search and present + have more features than less common supported services, such as Extended + Services (ItemOrder, ItemUpdate,..). +

diff --git a/dependencies/yaz-2.1.28/doc/client.invoking.html b/dependencies/yaz-2.1.28/doc/client.invoking.html new file mode 100644 index 0000000..bd63c0f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/client.invoking.html @@ -0,0 +1,90 @@ +2. Invoking the YAZ client

2. Invoking the YAZ client

+ It can be started by typing +

yaz-client [-m fname] [-a fname] [-c fname] [-q fname] [-v level] [-p target] [-u auth] [-k size] [zurl]

+ in a UNIX shell / WIN32 console. The zurl, + specifies a Z39.50/SRU host and, if specified, the client first tries to + establish connection with the Z39.50/SRU target. +

+ Options are prefixed by - followed by a + particular letter. +

+ The following options are supported: +

+ -m fname +
All retrieved transfer records are appended to file + fname. All records as returned by a + target(s) in Search Responses and Present Responses are appended + verbatim to the file. +
+ -a fname +
Pretty-print log of APDUs sent and received is appended + to the file fname. + If fname is - (minus) + the APDU log is written to stderr. +
+ -c fname +
Sets the filename for CCL fields to + fname. If this option is not given the + YAZ client reads CCL fields from file default.bib. +
+ -q fname +
Sets the filename for CQL fields to + fname. If this option is not given the + YAZ client reads CQL fields from file + /usr/local/share/yaz/etc/pqf.properties. +
+ -v level +
Sets the LOG level to level. + Level is a sequence of tokens separated by comma. Each token + is a integer or a named LOG item - one of + fatal, + debug, + warn, + log, + malloc, + all, + none. +
+ -p target +
Specifies proxy address. When set YAZ client will + connect to a proxy on the address and port given. + The actual target will be specified as part of the InitRequest + to inform the proxy about actual target. +
+ -u auth +
Specifies authentication. Usually the form + user/password + is used. This option does the same thing as the + auth command. +
+ -k size +
Specifies the maximum messages size in kilobytes. + The default maximum message size for the YAZ client is 1024 + (1 MB). +

+ In order to connect to Index Data's test Z39.50 server on + bagel.indexdata.dk, port 210 and with the + database name marc, one could type +

+     yaz-client bagel.indexdata.dk:210/marc
+    

+

+ The same server is also a SRU service. Connect to it via HTTP + as follows: +

+     yaz-client http://bagel.indexdata.dk:210/marc
+    

+

+ In order to enable APDU log and connect to localhost, port 210 (default) + and database Default (default) you'd write: +

+     yaz-client -a - localhost
+    

+

+ The following command connects to a local server via UNIX + socket /tmp/yaz and sets maximum message size to + 5 MB. +

+    yaz-client -k 5120 unix:/tmp/yaz
+   

+

diff --git a/dependencies/yaz-2.1.28/doc/client.searching.html b/dependencies/yaz-2.1.28/doc/client.searching.html new file mode 100644 index 0000000..f8e9537 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/client.searching.html @@ -0,0 +1,32 @@ +4. Searching

4. Searching

+ The simplest example of a Prefix Query would be something like +

+     f knuth
+    

+ or +

+     f "donald knuth"
+    

+ In those queries no attributes was specified. + This leaves it up to the server what fields to search but + most servers will search in all fields. Some servers does not + support this feature though, and require that some attributes + are defined. To add one attribute you could do: +

+     f @attr 1=4 computer
+    

+ where we search in the title field, since the use(1) is title(4). + If we want to search in the author field and + in the title field, and in the title field using right truncation + it could look something like this: +

+     f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer
+    

+ Finally using a mix of Bib-1 and GILS attributes could look + something like this: +

+     f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather
+    

+ For the full specification of the Prefix Query see the section + Prefix Query Format. +

diff --git a/dependencies/yaz-2.1.28/doc/client.xml b/dependencies/yaz-2.1.28/doc/client.xml new file mode 100644 index 0000000..ea0c530 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/client.xml @@ -0,0 +1,220 @@ + + The YAZ client + Introduction + + yaz-client is a line-mode Z39.50/SRU client. It supports a fair amount + of the functionality of the Z39.50v3 standard. + Its primary purpose is to exercise the package, and verify that + the protocol works OK. + For the same reason some commands offers more functionality than others. + Commands that exercises common Z39.50 services such as search and present + have more features than less common supported services, such as Extended + Services (ItemOrder, ItemUpdate,..). + + + Invoking the YAZ client + + It can be started by typing + + + yaz-client + -m fname + -a fname + -c fname + -q fname + -v level + -p target + -u auth + -k size + zurl + + + + in a UNIX shell / WIN32 console. The zurl, + specifies a Z39.50/SRU host and, if specified, the client first tries to + establish connection with the Z39.50/SRU target. + + + Options are prefixed by - followed by a + particular letter. + + + The following options are supported: + + + + -m fname + + All retrieved transfer records are appended to file + fname. All records as returned by a + target(s) in Search Responses and Present Responses are appended + verbatim to the file. + + + + -a fname + + Pretty-print log of APDUs sent and received is appended + to the file fname. + If fname is - (minus) + the APDU log is written to stderr. + + + + -c fname + + Sets the filename for CCL fields to + fname. If this option is not given the + YAZ client reads CCL fields from file default.bib. + + + + -q fname + + Sets the filename for CQL fields to + fname. If this option is not given the + YAZ client reads CQL fields from file + /usr/local/share/yaz/etc/pqf.properties. + + + + -v level + + Sets the LOG level to level. + Level is a sequence of tokens separated by comma. Each token + is a integer or a named LOG item - one of + fatal, + debug, + warn, + log, + malloc, + all, + none. + + + + -p target + + Specifies proxy address. When set YAZ client will + connect to a proxy on the address and port given. + The actual target will be specified as part of the InitRequest + to inform the proxy about actual target. + + + + -u auth + + Specifies authentication. Usually the form + user/password + is used. This option does the same thing as the + auth command. + + + + + -k size + + Specifies the maximum messages size in kilobytes. + The default maximum message size for the YAZ client is 1024 + (1 MB). + + + + + + In order to connect to Index Data's test Z39.50 server on + bagel.indexdata.dk, port 210 and with the + database name marc, one could type + + yaz-client bagel.indexdata.dk:210/marc + + + + The same server is also a SRU service. Connect to it via HTTP + as follows: + + yaz-client http://bagel.indexdata.dk:210/marc + + + + In order to enable APDU log and connect to localhost, port 210 (default) + and database Default (default) you'd write: + + yaz-client -a - localhost + + + + The following command connects to a local server via UNIX + socket /tmp/yaz and sets maximum message size to + 5 MB. + + yaz-client -k 5120 unix:/tmp/yaz + + + + Commands + + When the YAZ client has read options and connected to a target, if given, + it will display Z> and await your command. + Commands are executed by hitting the return key. + You can always issue the command ? to see the list + of available commands. + + + The commands are (the letters in parenthesis are short + names for the commands): + + + &yaz-client-commands; + + + Searching + + The simplest example of a Prefix Query would be something like + + f knuth + + or + + f "donald knuth" + + In those queries no attributes was specified. + This leaves it up to the server what fields to search but + most servers will search in all fields. Some servers does not + support this feature though, and require that some attributes + are defined. To add one attribute you could do: + + f @attr 1=4 computer + + where we search in the title field, since the use(1) is title(4). + If we want to search in the author field and + in the title field, and in the title field using right truncation + it could look something like this: + + f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer + + Finally using a mix of Bib-1 and GILS attributes could look + something like this: + + f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather + + For the full specification of the Prefix Query see the section + Prefix Query Format. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/Makefile.am b/dependencies/yaz-2.1.28/doc/common/Makefile.am new file mode 100644 index 0000000..d271de8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/Makefile.am @@ -0,0 +1,18 @@ +## $Id: Makefile.am,v 1.14 2006/06/28 13:26:14 adam Exp $ + +commondir=$(datadir)/doc/$(PACKAGE)$(PACKAGE_SUFFIX)/common + +common_DATA = style1.css id.png + +SUPPORTFILES = \ + xml.dcl \ + common.ent \ + id.eps \ + ref2dbinc.xsl \ + print.dsl.in \ + id.htmlhelp.xsl \ + id.man.xsl \ + id.tkl.xsl + +EXTRA_DIST = $(SUPPORTFILES) $(common_DATA) README + diff --git a/dependencies/yaz-2.1.28/doc/common/Makefile.in b/dependencies/yaz-2.1.28/doc/common/Makefile.in new file mode 100644 index 0000000..9d72709 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/Makefile.in @@ -0,0 +1,369 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = doc/common +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/print.dsl.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = print.dsl +SOURCES = +DIST_SOURCES = +am__installdirs = "$(DESTDIR)$(commondir)" +commonDATA_INSTALL = $(INSTALL_DATA) +DATA = $(common_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +commondir = $(datadir)/doc/$(PACKAGE)$(PACKAGE_SUFFIX)/common +common_DATA = style1.css id.png +SUPPORTFILES = \ + xml.dcl \ + common.ent \ + id.eps \ + ref2dbinc.xsl \ + print.dsl.in \ + id.htmlhelp.xsl \ + id.man.xsl \ + id.tkl.xsl + +EXTRA_DIST = $(SUPPORTFILES) $(common_DATA) README +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/common/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/common/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +print.dsl: $(top_builddir)/config.status $(srcdir)/print.dsl.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-commonDATA: $(common_DATA) + @$(NORMAL_INSTALL) + test -z "$(commondir)" || $(mkdir_p) "$(DESTDIR)$(commondir)" + @list='$(common_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(commonDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(commondir)/$$f'"; \ + $(commonDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(commondir)/$$f"; \ + done + +uninstall-commonDATA: + @$(NORMAL_UNINSTALL) + @list='$(common_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(commondir)/$$f'"; \ + rm -f "$(DESTDIR)$(commondir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(commondir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-commonDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-commonDATA uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-commonDATA install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-commonDATA uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/doc/common/README b/dependencies/yaz-2.1.28/doc/common/README new file mode 100644 index 0000000..e0f31ff --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/README @@ -0,0 +1,2 @@ +This directory contains various common files for our Docbook based +documentation. diff --git a/dependencies/yaz-2.1.28/doc/common/common.ent b/dependencies/yaz-2.1.28/doc/common/common.ent new file mode 100644 index 0000000..4ab4d40 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/common.ent @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/id.eps b/dependencies/yaz-2.1.28/doc/common/id.eps new file mode 100644 index 0000000..6dcfd67 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/id.eps @@ -0,0 +1,587 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner +%%Title: /home/adam/ID.eps +%%CreationDate: Wed May 1 13:27:33 2002 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 135 172 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228 14.173228 translate +% Translate to begin of first scanline +0.000000 157.000000 translate +120.000000 -157.000000 scale +% Image geometry +120 157 8 +% Transformation matrix +[ 120 0 0 157 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 120 string def +/gstr 120 string def +/bstr 120 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 16148 ASCII Bytes +colorimage +mf*=@B(7YXB%aEgJ,~> +mf*=\g%!8eg%DTLJ,~> +mf*=IN:CK\N8h)AJ,~> +n,EBom5"aKZ2]=~> +n,ECSmE>RsZ2]=~> +n,EC-m:H@ +nG`OP5j^?.5j,HQJ,~> +nG`OacgApWchOgGJ,~> +nG`OVE:%6 +nG`KIlSAO"ZN#F~> +nG`LJlc]@gZN#F~> +nG`KflXg-rZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K#lSANQZN#F~> +nG`LAlc]@^ZN#F~> +nG`KIlXg-UZN#F~> +nG`K=lSANkZN#F~> +nG`LGlc]@dZN#F~> +nG`K\lXg-hZN#F~> +nG`L4lSAObZN#F~> +nG`LZlc]A"ZN#F~> +nG`LAlXg.MZN#F~> +n,EB +n,ECFmE>RfZ2]=~> +n,EB[m:H?jZ2]=~> +mf*9TmkXs3YlB4~> +mf*:Ln&tdoYlB4~> +mf*9nmq)R+YlB4~> +mJd4X^[mio^[eT.J,~> +mJd4bn+5ZBn,0BhJ,~> +mJd4[ch"IDch4LAJ,~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +M>r)~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +pAk3,oDel[rk8OC!%5LpAGcH*1B= +pAk3,oDel[rk8OH!%5LpAGcH*bQ-o,ncA4:o$%%&!9s4$!n-Z+rQG?-o$[0S!oNS"pWS-~> +pG;floJ6KNrlYI,1K2K?KD[P'AcTLCf`BEknn.gQ!5/#;!dWJ=rFQ,Dfm34%!h\.upL\p~> +pAk3moDem*rr3.P!!*'!JG]EF1C)/(bfoYXk?7F5!WV?^bQ+O51C(\pN&*82s1e.]!h'(#pG7=~> +pAk3moDem*rr3.P!!*'!JG]EFbQm_=o()_Ypt#)]!WVronc7qIbQmV:iloX%s6oR'!p9O9pWS-~> +pG;gKoJ6Kjrr3.i1Gf(2RJ\l=Ad@#hg"H&um=Y%C!WVQdf`8\XAd?Z^WFfb.s3L:K!jhocpL\p~> +pAk3moDem*rr3/b$3:,+JG]EF1BG`"r\FV7s6'#1!WSSX1C$29nl\]Xk +pAk3moDem*rr3/s%flY0JG]EFbQ7;7rlbH's7l61!WV +pG;gKoJ6Kjrr3/h4#?p:RJ\l=Ac^Tbral52s6]Gj!WTLrAd<;Jon.P_m;VZ/!jhocpL\p~> +pAk3moDem*rVm"N!<<(LquHXN!R1TB1BOo_JFt]!s-`@4"_Refbl;;G1BO!EB(n*3~> +pAk3moDem*rVm"N!<<(LquHZ=!V69hbQ@/2ht>1os5rgp"kiqKo)ID6bQ?r,g%W^@~> +pG;gKoJ6KjrVm"g1]RKCr%n7_!SRMOAcg!PTCldss0M3,"cWK@g&I$%Acf==N;$q7~> +pAk3moDf33s1[Cjk6h7hJG]EF1BG`"rA+Les-`O9!WV?^bQ(f;1BXNSs-`C5!h'(#pG7=~> +pAk3moDf33s1[Cjp^dE)JG]EFbQ7;7rQG>rs5s!u!WVronc784bQI,0s5rjq!p9O9pWS-~> +pG;gKoJ6fss3'R)m5t@JRJ\l=Ac^TbrFQ+is0MB1!WVQdf`6ZrAco^Gs0M6-!jhocpL\p~> +pAk3moDf33s1W%Ds+(.LJG]EF1BG`"rA+Les-`O9!WV?^bQ(f;1BX'Fs-`C5!h'(#pG7=~> +pAk3moDf33s1W%Ds+(.LJG]EFbQ7;7rQG>rs5s!u!WVronc784bQI#-s5rjq!p9O9pWS-~> +pG;gKoJ6fss3$&ps-`oeRJ\l=Ac^TbrFQ+is0MB1!WVQdf`6ZrAcoC>s0M6-!jhocpL\p~> +pAk3moDf33s1SKjs6'F^JG]EF1BG`"rA+Lrs-`O9!WSSW1Bgq]bif"/nhU?8s(;!]J,~> +pAk3moDf33s1SKjs7lWoJG]EFbQ7;7rQG>us5s!u!WV +pG;gKoJ6fss3!4\s6]jdRJ\l=Ac^TbrFQ+ss0MB1!WTLqAd*heg$Sflnn%s0s,?\aJ,~> +pAk3moDf$.s5*ferVlkJquHXN!R1TB1BQ80=nOQOs-`C5#=.JC9kOFg5k?c5RK$mn1Oo~> +pAk3moDf$.s5*ferVlkJquHZ=!V69hbQ@J;f(I5fs5rjq#LE2Cdb4Zqch#?^k5X-/b^]~> +pG;gKoJ6Wns5l+irVlkcr%n7_!SRMOAcgulKCrgWs0M6-#B9)'H&VdjE:[ZCZi?!YAq0~> +pAk3moDf'/s8N'!huR!WTM*AcQ!,1C(8dN&*8es/,BD!h'(#pG7=~> +pAk3moDf'/s8N'!hu +pG;gKoJ6Zos8Ol2k5PA\RJ\l=Ad@#hN/XCgs2O\C!WU1=Mu\M'Ad??UWFfbTs1Ir8!jhocpL\p~> +pAk3moDf'/s8N'!AH)T/JG]EF1B>YtrrM\Yo/$=E!6k-m!d"Ccr\FXAg&H-c1BO!EB(n*3~> +pAk3moDf'/s8N'!AH)T/JG]EFbQ.54rrN&[o?@.4!:oj-!o3hHrlbJjp&Eh>bQ?r,g%W^@~> +pG;gKoJ6Zos8Ol2KDtlNRJ\l=AcUN_rrMf!o4Iq#!87'X!g`l>ral7Oir>>:Acf==N;$q7~> +pAk1ZoDeq?6:1YOr^$T4quHXN!*T;5!*ShJr+5q3p+lbQAjH;N!_m90oJ6PCAjH)HJ,~> +pAk1ZoDeq?6:1YOr^$T4quHZ=!7q/&!7p\ar7M)$p<3Thg!BW@!n,cQoZRBbg!BE:J,~> +pG;e]oJ6PIB4q3"rau40r%n7_!/(90!/'fRr/:W.p1=AYN,\`-!dT`WoO\/MN,\N'J,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +fDr35J,~> +fDr5$J,~> +fJBgFJ,~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +qD/DFs7/E21M6ZTr%n6N!5AF3!oKGWq>gCK!1Ecb!+tp\!iH!cr\FUYs4R!"s31'j!h')4r\FUf +s(;*`J,~> +qTK6-s8:3ebh<$Yr65'=!5AF3!oKGWq>gE:!9X4Z!87(i!pTaIrlbGps7Q!-s75d*!p9ORrlbGs +s4R7mJ,~> +qIU#>s7L>CArQbrr+>j_!6b?@!p6\=qD8"\!42V'!0$V`!keQ>ral4as5NW^s4R!U!jhp[ral4j +s,?edJ,~> +qD/DFs8SKC1M6ZTr%n6N!5A=0!1Ncbq_J;As0M]m!) +qTK6-s8V6*bh<$Yr65'=!5A=0!1Ncbqof-(s6TaI!7LSb#g`;Gf$)A2s46ecs75d*#j20ehos +qIU#>s8TE;ArQbrr+>j_!6b6=!3c8Uqdoo9s2P&E!."9M#]T22K4\`Ts+BoTs4R!U#daR2T4V\o +s,?edJ,~> +qD/DFs75_G1M6ZTr%n6N"ht$:6:..?rr?U-!;ePRRK$mh1BqIkfg)G7N:Je)bk!UrRK)I51G`YC +B)4<6~> +qTK6-s8;f@bh<$Yr65'="ht$:6:..?rr?U-!;jtAk5X-)bQcc#p!;n&ipt=no(1'2k5Y5Obfnc? +g%rpC~> +qIU#>s7Q&(ArQbrr+>j_"j?rGB4nFIrr@]L1](bcZi?!SAd44oic)R1WUa[$g%/e]ZiBF[AnI#% +N;@.:~> +qD/DFs-`nn1M6ZTr%n6N!l"^7rW!%Ns8Th2!;ePRRK$mg1Ba-Gbl>oW1]P\j1C0EKJH)#nB)cK> +1Oo~> +qTK6-s5s@Jbh<$Yr65'=!l"^7rW!%Ns8Th2!;jtAk5X-(bQR).o)J:Nbl@8*bR!A2huDi_g&Kb% +b^]~> +qIU#>s0MaFArQbrr+>j_!mCWDr\FYEs8U:?1](bcZi?!RAd#I?g&KaqB)gQUAdGaCTDu60N;nk5 +Aq0~> +qD/DFs(8V;9kOEnr%n6N!l"^7rW!$es8Th2!;ePRRK(t>bjmOlg&LV.nMC3ho.pZ?s"i@!5\C%. +qD3X~> +qTK6-s4Qc=db4Z_r65'=!l"^7rW!$es8Th2!;jtAk5Y,Ro((!,p&Fs9n]_%(o?7L&s3106ce8?O +qTOH~> +qIU#>s,=ttH&Vd0r+>j_!mCWDr\FXhs8U:?1](bcZiB%ag%&_WirA[jnRhgSo4A97s(:9`E/agU +qIY6~> +qD/DFs(5"*b\$mCr%n6N!l"^7rW!$es8Th2!;ePRRK(t>bk!Un5k=sTB(7\Wbk!UrRK#'Ts-[L! +B)4<6~> +qTK6-s4Pj#o%F'*r65'=!l"^7rW!$es8Th2!;jtAk5Y,Ro(1'.ci!hCg%!;do(1'2k5WZYs5r#7 +g%rpC~> +qIU#>s,;7'fo5s;r+>j_!mCWDr\FXhs8U:?1](bcZiB%ag%/eYE:s82N:CN[g%/e]Zi=Wrs0I[a +N;@.:~> +qD/DFs(4'Ts-`nTr%n6N!l"^7rW!%Ns8Th2!;ePRRK$mg1BkPnN;r'+nh^ +qTK6-s4PWYs5s@Dr65'=!l"^7rW!%Ns8Th2!;jtAk5X-(bQ[J8irAf"o$%.)o?7L&s3/^Xs53k0 +qTOH~> +qIU#>s,:Qrs0Ma3r+>j_!mCWDr\FYEs8U:?1](bcZi?!RAd-N\WW2@)nn.pTo4A97s(5lrs.B=M +qIY6~> +qD/DFs(4&Po()gKr%n6N"ht$:!%3 +qTK6-s4PWBr;?TWr65'="ht$:!%3 +qIU#>s,:Q/p%A?kr+>j_"j?rG1K0_@rr@]L1](bcZi?!SAd577]OnMMcgk]Jg%/e]Zi=WLH2m:3 +N;@.:~> +qD/DFs(4&CRK*;Tr%n6N!5A=0!1Ncbq_J;As0M]m!) +qTK6-s4PW?k5YJDr65'=!5A=0!1Ncbqof-(s6TaI!7LSb#hJqKccjW+s53Fls75d*!TsF]bQI53 +s4R7mJ,~> +qIU#>s,:Q%ZiC'3r+>j_!6b6=!3c8Uqdoo9s2P&E!."9M#_Vg;E+W_As.Amps4R!U!OMh*Acp'Q +s,?edJ,~> +qD/2@s(;6d!pBTOr%n6N!5AC2!PW+@!;ePPRJd'bB(e"^g&G[`1BUABnkJa4s31'j!L`ue1BTo5 +s(;*`J,~> +qTK$'s4RCq!r2fXr65'=!5AC2!PW+@!;jt?k5>5Zg%NVkp&E_EbQH;kr6k5]s75d*!TsF]bQH2h +s4R7mJ,~> +qITf8s,?qh!q$#or+>j_!6bOom-1As4R!U!OMh*Acm#F +s,?edJ,~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +qD/,>rVloOJGM)!!!'b1rr@TH!;nVSg&G[`1BP>kF7_6iB)e:j1]RITRJnuCbl@Am!6kEA!SMPh +1Oo~> +qTJs%rVlokhtkRo!!'b1rr@TH!;t%Bp&E_EbQ@85h"8elg&L4+bl@\Ck5NR*o)JF-!:p*g!VP7C +b^]~> +qIT`6rVloXTDE0s1B>VqrrAJa1]1hdir=u:AcgN!TKF? +Aq0~> +qD/AEs,;#ekPqmc1]%.P^AIp1JGT?E1C%(_kVo; +VYN#u~> +qTK3,s5Mhrq#B^XbkhA?^AIp1JGT?EbQl`!ps71>s6oR'!nmV9o?@46"ObN +qITu=s/DRJSf +qD/DFs(4&C5hZ0fr%n3M"2=g86MCKW1Brg<^J4:^5k?c5B)e:j1C*sCs0FL;bl@Am!R1TC1BTo* +s&o1SJ,~> +qTK6-s4PW?ch7=qr65$<"2=g86MCKWbQd),n'_./ch#?^g&L4+bQn1Cs6RtRo)JF-!V69ibQH2d +s47%jJ,~> +qIU#>s,:Q%E8pnir+>g^"3^`EBD44ZAd577c[#3NE:[ZCN;p6UAdAA's2JY_g&LbX!SRMPAcm#> +s+C/[J,~> +qD/2@s(;6d!_r^0r%n3M"2=g8AH"mq$Msi"1Bbr%kPo/b1BM1gRI`3>s3.hL=Yn;%p+l`ns8=_T +F8r-61Oo~> +qTK$'s4RCq!n.,;r65$<"2=g8AH"mq&,QA'bQRM:q#B% +qITf8s,?qh!dXglr+>g^"3^`EKDoK`48Ui1Ad$femJi.9AcdqkZh%c6s4PElK4`g:p1=?Ys8?O2 +QN+VoAq0~> +qD/2@s(;3c!WUCA1]%.P^AIp16MgcZ1BUAOs/, +qTK$'s4R@p!WV`gbkhA?^AIp16MgcZbQH;ns69't!nmV9o?7I>o$[I,bjtf-bQ7;7rQG>hs76$1 +J,~> +qITf8s,?ng!WUjNB)=@abPV;>BDXL]Acm>Ys1Il6!f[/co4A7-fm38DB%d4XAc^TbrFQ+Ms4R6\ +J,~> +qD/2@s(;3c!WUCA1]%.S^An5jrk8@[qZ-IK"I];inj)b%!bVJ#o.pXObVP[eB$C;K1BG`"rA+L? +s31 +qTK$'s4R@p!WV`gbkhAB^An5jrk8@[qZ-K:"Qoaar6OrX!nmV9o?7I>o$$7rg%,1:bQ7;7rQG>h +s76$1J,~> +qITf8s,?ng!WUjNB)=@dbQ%V)rlY:?q_S(\"LJ..ol0J6!f[/co4A7-fk.SjN7n7)Ac^TbrFQ+M +s4R6\J,~> +qD/2@s(;6d!a5Q0r%n3M"2=g86MCKW1Bgq]b`)S:nhU>Zs-`I7#QN"(5k +qTK$'s4RCq!nRD +qITf8s,?qh!e^Nmr+>g^"3^`EBD44ZAd*hefr>"tnn%r^s0M +qD/DFs(4&C5hZ0Lr%n3M"2=g8AH"mq-i3oA1C$2.nkCpas,?P*!bVJ#o.pOLbVM&6rr;[J!R1TC +1BUeNs%W>GJ,~> +qTK6-s4PW?ch7=kr65$<"2=g8AH"mq-i3oAbQlJhr6ig[s5NXo!nmV9o?7@;o$#>;rr;]9!V69i +bQHGos3gbfJ,~> +qIU#>s,:Q%E8pnVr+>g^"3^`EKDoK`;u8BKAd<;Bom(0&s/GU%!f[/co4A.*fk+iqrr;\(!SRMP +Acm\Ys*=HQJ,~> +qD/AEs0J-;o)H&n1]%.P^AIp1JGT?E1C1>eN&*7ao(#rU1BM1gRI`38s31Hu!pBU`p+lrts-]b. +s8RWF1Oo~> +qTK3,s6Sn=r;Z-\bkhA?^AIp1JGT?EbR!S8iloWpr;>. +qITu=s2MCup&E&/B)=@abPV;>RJSf +qD/,>rr3&D^LmYurrUEN +B)"04~> +qTJs%rr3&jn(IQ]qZ$W1qu6YHqZ-T=!o3hHrQG>us7Q$.!nmV9o?778o)?i7h#IEJbQ.55rrVcX +g%`dA~> +qIT`6rr3&Qc]%^4q_J5qqu6Yaq_S1_!g`l>rFQ+ss5NZ_!f[/co4A%'g&>RbQN.!YAcUN`rrUln +N;."8~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +q(i"9r+5q'q_S-M#q&&+-NF,o6:*'t!;SDO9kNuQ!^L@0rA+Id:%gCAAcPQr1B9] +q9/ibr7M(uqons<#q&&+-NF,o6:*'t!;Xh>db469!mfQQrQG;qde:o`f`9IkbQ,uef`9Irb^]~> +q.9VGr/:W$qe#a^#ubJL;_p4.B4k0@1\kV`H&V?,!cX*WrFQ(hH1kkKMu\.oAcQfJMu\/!Aq0~> +q(i"_r;Qbbq_S-M$%W'UhZ*Z6s8PF`!;SDORK)k7"(qT5B)XRes-`R:r;Qf\B(RkZB)MZ/RJAXh~> +q9/ilr;QcZqons<$%W'UhZ*Z6s8PF`!;Xh>k5Y%s"53_Sg&B1rs5s%!r;Qfmg% +q.9Vcr;Qc'qe#a^$(:hnjtegUs8Qa01\kV`ZiBW/"-!9[N;dDis0ME2r;QfbN:^]^N;W\UZh\3`~> +q(i(as0M]:!)<>HqZ$lYs8QV?s8Th1!;SDORK)k7"(qT5g& +q9/ons6Tak5Y%s"53_Sp& +q.9\es2P%s!."HRq_JK>s8R_(s8U:>1\kV`ZiBW/"-!9[ir3Njs0ME2#QMf&N3i3WQM"hkN;omV +Mu\/!Aq0~> +q(i(as-`U;qZ$jfs8V!6s5td,!;SDORK)k7#\O+\s*um]s-`R:!WSSe1BL_ZkOgV4B)cK91Oo~> +q9/ons5s("qZ$jfs8V!6s7du=!;Xh>k5Y%s#hf7Ks52&Es5s%!!WV<]bQ?Aqq";i4g&Kaub^]~> +q.9\es0MH3q_JIis8V6Ds6Wb^1\kV`ZiBW/#`Sf:s. +q(i(as0M]:!'pE;q>^N0rVlkJq>g=I!L`uZ1C.UmB'8>51]Nm:1BINDrA+M]s(:s\!bVIkratp] +J,~> +q9/ons6Ta^N0rVlkJq>g?8!TsFRbQuo%g%b?dbl?i!bQ7b+rQG?0s4R+i!nmV5rn7(j +J,~> +q.9\es2P%s!-%gIqD/,prVlkcqD7qZ!OMgtAdF@qN:$"EB)f42Ac_q +q(i"_r;Qb/q_S'K!%7aFq#L4H!L`uZ1C.UmAq9oL1]Nm:1BINDrA+MCs(:s\!+u0/pbRF~> +q9/ilr;QcMqonm:!%7aFq#L67!TsFRbQuo%g#)hlbl?i!bQ7b+rQG?*s4R+i!87;Mprn6~> +q.9Vcr;QbUqe#[\!)rjrq(qhY!OMgtAdF@qN1^-VB)f42Ac_q +q(i(as0M]:!'pE;q>^N0rVlkJq>g=I!L`uZ1C.UmAi%[%5l[8G1BINDrA+MCs(:s\!bVIkratp] +J,~> +q9/ons6Ta^N0rVlkJq>g?8!TsFRbQuo%g!'$bci +q.9\es2P%s!-%gIqD/,prVlkcqD7qZ!OMgtAdF@qN+Uc9E +q(i(as-`U;qZ$^bs8V!Urr=GD!;SDORK)k7#\O*K1M6Zas-`R:!WSSd1BQ805kZu8B)cK91Oo~> +q9/ons5s("qZ$^bs8V!Urr=GD!;Xh>k5Y%s#hf72bh<$\s5s%!!WV<\bQ@J;ch>Qag&Kaub^]~> +q.9\es0MH3q_J=es8V6\rr?!p1\kV`ZiBW/#`SeBArQc&s0ME2!WTM)AcgulE;!lFN;nk0Aq0~> +q(i(as-`U;qu@!0huE^CRfEE%qZ-FJ!L`uZ1C.UmAhu6Xs8SM\1C*rJ1G_;&s0MAS!bVIEoeV*~> +q9/ons5s("qu@!5huE^CRfEE%qZ-H9!TsFRbQuo%g!%\/s8V6TbQn11bfnE"s6TF&!nmV,ouqp~> +q.9\es0MH3r%eU?k5YHoYQ+XGq_S%[!OMgtAdF@qN+Q\Js8TG!AdA@BAnH#%s2O_D!f[/ +q(i(as6'C*!.ar&qu?nhs8Te5-iX,G6MpiZ1BEpDo.pYas(4&C:&k6]p+lsRkKM0Ms3*b$1BM1g +g&B1qJGD!O~> +q9/ons7lTa!8m[tqu?nhs8Te5-iX,G6MpiZbQ6l+o?7Kns4PW?df9@0p<3dAq"""Us74M/bQ?Jt +p&=L^htbKH~> +q.9\es6]g=!2'.#r%eM[s8U7u;uZdsBDaR]Ac]7 +q(i"Rr6,.kq_S0N!"/_>"t'BNAA5dHquHOK!J&Dc1BL_'=oL2YREU3T1]>MuVK;>b!*T6D!.al$ +J,~> +q9/iir:0jFqoo!=!"](C"t'BNAA5dHquHQ:!T3J>bQ?Adf)Ekpk47F'bl.)5l.kmS!7q)=!8mUr +J,~> +q.9VZr7M(Bqe#d_!'C2'##d<6K?MHAr%n.\!MA':AcdV +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +lne#/Z87"~> +m*+hsZHRh~> +lt5W@Z=\U~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +qD/2'R8*Z:!^N0(j>-c\r#,S\0(Uk!0)cah0(^q",PrAZ,P3bl0)cah0).5Q~> +qTK#uk0j7Q!mg#djNIU^r+?%g\F[oE\Gg+@\FduFMu.,eMtG3n\Gg+@\G49u~> +qITf$Z[)O^!cYK +qD/1os31Hu!l+bcj>-cSqZ$X()Y>fc)ZB^:%.l=U%/U#)%.l=U)ZB^:%/;W/~> +qTK#rs7605!q60HjNIU:qZ$X-BCsCJBDql21%`Zi1&CqN1%`ZiBDql21&/tC~> +qITeps4RB`!mgn=jCSBdq_J77:%W#t:&ZpK5P/Of5Pm5:5P/Of:&ZpK5PSi@~> +q(i5is,8aTs1dSM"W@@@"q1_8!!!r11B7XX!!"YE1C"U&"onW-$l&=i!!`B%!&"('J,~> +q90'3s5M8Xs6o!l"_Rf8)DN00!!$[)bQ&R[!!'P%bQh!")?9aU0i@Se!#ke9!4_jKJ,~> +q.9iWs/BUrs3K_;"\gd/3BoP'1B:/BAcOji1B:kVAd:gj3AWHO5=b?X!'1!6!+G\8J,~> +q(i4?kPo/bk +q90&hq#B%Fps8!E$"j5 +q.9hMmJi. +pbMn^rr2t1i\LZT!!!r:1BRsa!&""%"r%%;/cYkUo.pIe!!!r/1BnNn!%n6O#5L'*~> +pri`krr2uOilhL;!!$[2bQA@U!4_dI##P@#\,ZLIo?7;L!!$['bQ^oE!4W"/)YqU-~> +pgsMbrr2tWiar9e1G_c)Ack+N1L^#i#"LI*@5B]"o4A)!1G_bsAd1a]1LW'q3Vd9;~> +pG2m(s6&>s!u_.>)ZDMp$ig8PpbN1.!!!]h,6.]goJ6Rf!!!r01C,T5!#.46!!"8?1Oo~> +pWN^3s7kQs"(qT6BE$*W0`V33prj#R!!#m?MZ +pLXKds6\cW"&1R-:&\`,5;P)rpgse?1G_O5<\lO4oO\2"1G_btAdDg$1Il%X1G`).Aq0~> +pbN&@s6'EMi\LZT!!!r:1BRg]!&"%&![@[FrXAf,!#5&]!u_.>)Y>fe,6.`C%0$;-'`'V9~> +prim's7lWVilhL;!!$[2bQAa`!4_gJ!fI$Yr\=EQ!)`C4"(qT6BCsCLMZSLe~> +pgsZ8s6]imiar9e1G_c)Ack%L1L^&j!`h*5r]gE=!(ZZn"&1R-:%W$!<\lQ25Q8,?hJ~> +q(i4Xs4K[#s(::I#oWdD)Da/f!!!5t1B7XU!!*EZoeQ[g!!!r01B7XU!!*EZq_Na~> +q90&os7O_5s4QGV$"j5 +q.9h`s5J"bs,>uM#u*339kJ!31G_&cAcOjf1BBRGok";#1G_btAcOjf1BBRGqdt?~> +qD/CBkOMb3B)h$Zj>-rX!!!33#6"T&)Yc)j/cYkUrYbkI!!"8:1BSNq!#kMd""jQR#6#MC$ig8P +q_Na~> +qTK5kq#&^eg&LinjNId?!!!ol)ZB^:BDB[Q\,ZLIrau +qIU"PmIc*DN;r9ajCSQi1G_$U3W:f7:&&<&@5B]"r_3JZ1G`))Acka`1JROS"( +qD/2Zs,?q5!h')'j>-cSqZ$X()YZ#i'EA+Or\FX$!!!5r1BSNq!#kMd!u(_8)ZDMp,6.]Jq_Na~> +qTK$-s5O%%!p9OOjNIU:qZ$X-BD9UP;#gT/rlbJ&!!!r1bQDJX!,(uK"&T$uBE$*WMZ<_qqojQ~> +qITfKs/H!0!jhpQjCSBdq_J77:%r6%7l)qqral751G_&aAcka`1JROS"%P.':&\`,<\lNlqdt?~> +q_J:=R>h&"s-WjPjYHl]r#,S\0(q(',8qIQr\FO,rYkGc"!\^&,P +qof,fk2Q<_s5j=-jid^_r+?%g\G",KMe?\4rlbAPrb(oJ",gf)MtP9rMe?\4rlbAPrb),PJ,~> +qdonKZ`3k7s0D]Ej^nKnr(R2m@J4:8<_Z:sral.=r_<&t"'/,j +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +M)0Y~> +M9LJ~> +M.V8~> +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/dependencies/yaz-2.1.28/doc/common/id.htmlhelp.xsl b/dependencies/yaz-2.1.28/doc/common/id.htmlhelp.xsl new file mode 100644 index 0000000..f5d4b7b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/id.htmlhelp.xsl @@ -0,0 +1,18 @@ + + + + + + + +0 +1 +1 +3 +3 +1 + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/id.man.xsl b/dependencies/yaz-2.1.28/doc/common/id.man.xsl new file mode 100644 index 0000000..6cea265 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/id.man.xsl @@ -0,0 +1,7 @@ + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/id.png b/dependencies/yaz-2.1.28/doc/common/id.png new file mode 100644 index 0000000000000000000000000000000000000000..454a74679a129560fbc3bc4810dd3168b52a8a03 GIT binary patch literal 1638 zcmV-s2ATPZP)HP_Nc400001VoOIv z0Eh)0NB{r;32;bRa{vGf5&!@T5&_cPe*6Fc00(qQO+^RN1px~v3R0t2!~g&Vj7da6 zRCt{2+Y5KwDhvSN)Fn=92MjiD9!>E7|CbXuj**a)rfau*S2$eyV0LSUGo0ZJXZQvzoY8YK6{L`5zOPFJ zkJZ#Tf82-9w9ev=6)8W9@Qjw%kIu0Fdque9#&#Gki=sH8W2~ZtZ5dV- z2q_FZYZ@|!hs%rr?dk%-oufrr7VeDVV11o(+=1Vlrr97E&cbBcz`(x42jKQ{b}b*{ z)~RihLvye;mVx_gBt5w#hRbW!c!YiF9r_?sLkzCf^upR(fzy^J2o zp|4ufI2SFIh~SEh*qdcJ)lhH2Hi4lpVeouIy6wVj0=qcx{E`t5%IFWk zOCx5FG01n1v4lT+2DVOSol57Df-E`)id7u4BMWWxTn>Pu<8HC(%Ek57ep`ZX}p)5o|3Ic zwB#!U)&z))~lhQi_1NjPLjyA5& z=U4JorpRGAY(5OqE&d8H?e2sI2;Duy`0l|ZEIR&{{4&5Y42N+39Q5|;hqK}$hsCft zT)3JRVVB^Sc*M}z@p$yz-h^q`oMk$z)7Km<{DgMw%jL0odQKyU<**6XwP}ZR*?S7p zv)UgwxIm9&UsE^(^b07*qoM6N<$f~3+X5&!@I literal 0 HcmV?d00001 diff --git a/dependencies/yaz-2.1.28/doc/common/id.tkl.xsl b/dependencies/yaz-2.1.28/doc/common/id.tkl.xsl new file mode 100644 index 0000000..5f9a89d --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/id.tkl.xsl @@ -0,0 +1,47 @@ + + + + + 1 + .tkl + 0 + + + + + + + + + <xsl:apply-templates select="." mode="object.title.markup"/> + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/print.dsl.in b/dependencies/yaz-2.1.28/doc/common/print.dsl.in new file mode 100644 index 0000000..4c10556 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/print.dsl.in @@ -0,0 +1,26 @@ + +]> + + + + + +(define preferred-mediaobject-notations + (list "PDF" "JPG" "JPEG" "PNG" "linespecific")) +(define preferred-mediaobject-extensions + (list "pdf" "jpg" "jpeg" "png")) + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/common/ref2dbinc.xsl b/dependencies/yaz-2.1.28/doc/common/ref2dbinc.xsl new file mode 100644 index 0000000..ee387df --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/ref2dbinc.xsl @@ -0,0 +1,38 @@ + + + + + + + +
+ + <xsl:value-of select="refmeta/refentrytitle"/> + + +
+
+ + + + + + + + + + + + + + + +
+ +
+
+ +
+ diff --git a/dependencies/yaz-2.1.28/doc/common/style1.css b/dependencies/yaz-2.1.28/doc/common/style1.css new file mode 100644 index 0000000..a343107 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/style1.css @@ -0,0 +1,63 @@ + +.table table { + border-collapse; + border: 1px solid black; + border-spacing: 0; + width: 94%; + margin-left: auto; + margin-right: 0; +} + +.author { + font-style: italic; +} + +.TITLEPAGE, .LOT, .TOC { + font-family: sans-serif; +} + +.TITLEPAGE .abstract { + margin: 0 150px 1em 0; + font-style: oblique; +} + +.TITLEPAGE .inlinemediaobject { + position: absolute; + top: 60px; + right: 0; + width: 140px; +} + +.table th { + padding: 3px 6px; + border: 1px solid black; +} +.table td { + text-align: left; + padding: 3px 6px; +} + +h1, h3, h4 { + font-family: sans-serif; +} + +h2 { + font-style: italic; + font-family: sans-serif; +} + +.figure b, .table b, .example b { + font-style: italic; +} + +.example , .figure { + margin-left: 3%; +} + +.screen, .synopsis, .programlisting { + margin-left: 6%; + padding: 4px; + border-style: solid; + border-width: 1px; + border-color: #bbbbbb; +} diff --git a/dependencies/yaz-2.1.28/doc/common/xml.dcl b/dependencies/yaz-2.1.28/doc/common/xml.dcl new file mode 100644 index 0000000..fed2103 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/common/xml.dcl @@ -0,0 +1,179 @@ +" + PIC "?>" + SHORTREF NONE + + NAMES + SGMLREF + + QUANTITY NONE + + ENTITIES + "amp" 38 + "lt" 60 + "gt" 62 + "quot" 34 + "apos" 39 + + FEATURES + MINIMIZE + DATATAG NO + OMITTAG NO + RANK NO + SHORTTAG + STARTTAG + EMPTY NO + UNCLOSED NO + NETENABL IMMEDNET + ENDTAG + EMPTY NO + UNCLOSED NO + ATTRIB + DEFAULT YES + OMITNAME NO + VALUE NO + EMPTYNRM YES + IMPLYDEF + ATTLIST NO + DOCTYPE NO + ELEMENT NO + ENTITY NO + NOTATION NO + LINK + SIMPLE NO + IMPLICIT NO + EXPLICIT NO + OTHER + CONCUR NO + SUBDOC NO + FORMAL NO + URN NO + KEEPRSRE YES + VALIDITY TYPE + ENTITIES + REF ANY + INTEGRAL YES + APPINFO NONE + SEEALSO "ISO 8879:1986//NOTATION + Extensible Markup Language (XML) 1.0//EN" +> diff --git a/dependencies/yaz-2.1.28/doc/comstack.addresses.html b/dependencies/yaz-2.1.28/doc/comstack.addresses.html new file mode 100644 index 0000000..40ec9a8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.addresses.html @@ -0,0 +1,50 @@ +6. Addresses

6. Addresses

+ The low-level format of the addresses are different depending on the + mode of communication you have chosen. A function is provided by each + of the lower layers to map a user-friendly string-form address to the + binary form required by the lower layers. +

+    void *cs_straddr(COMSTACK handle, const char *str);
+   

+ The format for TCP/IP and SSL addresses is: +

+    <host> [ ':' <portnum> ]
+   

+ The hostname can be either a domain name or an + IP address. The port number, if omitted, defaults to 210. +

+ For TCP/IP and SSL transport modes, the special hostname "@" + is mapped to any local address + (the manifest constant INADDR_ANY). + It is used to establish local listening endpoints in the server role. +

+ For UNIX sockets, the format of an address is the socket filename. +

+ When a connection has been established, you can use +

+    char *cs_addrstr(COMSTACK h);
+   

+ to retrieve the host name of the peer system. The function returns + a pointer to a static area, which is overwritten on the next call + to the function. +

+ A fairly recent addition to the COMSTACK module is the utility + function +

+    COMSTACK cs_create_host (const char *str, int blocking, void **vp);
+   

+ which is just a wrapper for cs_create and + cs_straddr. The str + is similar to that described for cs_straddr + but with a prefix denoting the COMSTACK type. Prefixes supported + are tcp:, unix: and + ssl: for TCP/IP, UNIX and SSL respectively. + If no prefix is given, then TCP/IP is used. + The blocking is passed to + function cs_create. The third parameter + vp is a pointer to COMSTACK stack type + specific values. + For SSL (ssl_type) vp is an already create + OpenSSL CTX. For TCP/IP and UNIX vp + is unused (can be set to NULL. +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.client.html b/dependencies/yaz-2.1.28/doc/comstack.client.html new file mode 100644 index 0000000..e4acf59 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.client.html @@ -0,0 +1,17 @@ +4. Client Side

4. Client Side

+    int cs_connect(COMSTACK handle, void *address);
+   

+ Initiate a connection with the target at address + (more on addresses below). The function will return 0 on success, and 1 if + the operation does not complete immediately (this will only + happen on a nonblocking endpoint). In this case, use + cs_rcvconnect to complete the operation, + when select(2) or poll(2) + reports input pending on the association. +

+    int cs_rcvconnect(COMSTACK handle);
+   

+ Complete a connect operation initiated by cs_connect(). + It will return 0 on success; 1 if the operation has not yet completed (in + this case, call the function again later); -1 if an error has occurred. +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.common.html b/dependencies/yaz-2.1.28/doc/comstack.common.html new file mode 100644 index 0000000..ffcdb95 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.common.html @@ -0,0 +1,135 @@ +3. Common Functions

3. Common Functions

3.1. Managing Endpoints

+     COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
+    

+ Creates an instance of the protocol stack - a communications endpoint. + The type parameter determines the mode + of communication. At present the following values are supported: +

tcpip_type

TCP/IP (BER over TCP/IP or HTTP over TCP/IP) +

ssl_type

Secure Socket Layer (SSL). This COMSTACK + is experimental and is not fully implemented. If + HTTP is used, this effectively is HTTPS. +

unix_type

Unix socket (unix only). Local Transfer via + file socket. See unix(7). +

+ The cs_create function returns a null-pointer + if a system error occurs. + The blocking parameter should be one if + you wish the association to operate in blocking mode, zero otherwise. + The protocol field should be + PROTO_Z3950 or PROTO_HTTP. + Protocol PROTO_SR is no longer supported. +

+     int cs_close(COMSTACK handle);
+    

+ Closes the connection (as elegantly as the lower layers will permit), + and releases the resources pointed to by the + handle + parameter. The + handle + should not be referenced again after this call. +

Note

+ We really need a soft disconnect, don't we? +

3.2. Data Exchange

+     int cs_put(COMSTACK handle, char *buf, int len);
+    

+ Sends + buf + down the wire. In blocking mode, this function will return only when a + full buffer has been written, or an error has occurred. In nonblocking + mode, it's possible that the function will be unable to send the full + buffer at once, which will be indicated by a return value of 1. The + function will keep track of the number of octets already written; you + should call it repeatedly with the same values of buf + and len, until the buffer has been transmitted. + When a full buffer has been sent, the function will return 0 for + success. -1 indicates an error condition (see below). +

+     int cs_get(COMSTACK handle, char **buf, int *size);
+    

+ Receives a PDU or HTTP Response from the peer. Returns the number of + bytes read. + In nonblocking mode, it is possible that not all of the packet can be + read at once. In this case, the function returns 1. To simplify the + interface, the function is + responsible for managing the size of the buffer. It will be reallocated + if necessary to contain large packages, and will sometimes be moved + around internally by the subsystem when partial packages are read. Before + calling + cs_get + for the fist time, the buffer can be initialized to the null pointer, + and the length should also be set to 0 - cs_get will perform a + malloc(2) + on the buffer for you. When a full buffer has been read, the size of + the package is returned (which will always be greater than 1). -1 + indicates an error condition. +

+ See also the cs_more() function below. +

+     int cs_more(COMSTACK handle);
+    

+ The cs_more() function should be used in conjunction + with cs_get and + select(2). + The cs_get() function will sometimes + (notably in the TCP/IP mode) read more than a single protocol package + off the network. When this happens, the extra package is stored + by the subsystem. After calling cs_get(), and before + waiting for more input, You should always call + cs_more() + to check if there's a full protocol package already read. If + cs_more() + returns 1, + cs_get() + can be used to immediately fetch the new package. For the + mOSI + subsystem, the function should always return 0, but if you want your + stuff to be protocol independent, you should use it. +

Note

+ The cs_more() + function is required because the RFC1729-method + does not provide a way of separating individual PDUs, short of + partially decoding the BER. Some other implementations will carefully + nibble at the packet by calling + read(2) + several times. This was felt to be too inefficient (or at least + clumsy) - hence the call for this extra function. +

+     int cs_look(COMSTACK handle);
+    

+ This function is useful when you're operating in nonblocking + mode. Call it when + select(2) + tells you there's something happening on the line. It returns one of + the following values: +

CS_NONE

+ No event is pending. The data found on the line was not a + complete package. +

CS_CONNECT

+ A response to your connect request has been received. Call + cs_rcvconnect + to process the event and to finalize the connection establishment. +

CS_DISCON

+ The other side has closed the connection (or maybe sent a disconnect + request - but do we care? Maybe later). Call + cs_close to close your end of the association + as well. +

CS_LISTEN

+ A connect request has been received. + Call cs_listen to process the event. +

CS_DATA

+ There's data to be found on the line. + Call cs_get to get it. +

Note

+ You should be aware that even if + cs_look() + tells you that there's an event event pending, the corresponding + function may still return and tell you there was nothing to be found. + This means that only part of a package was available for reading. The + same event will show up again, when more data has arrived. +

+     int cs_fileno(COMSTACK h);
+    

+ Returns the file descriptor of the association. Use this when + file-level operations on the endpoint are required + (select(2) operations, specifically). +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.diagnostics.html b/dependencies/yaz-2.1.28/doc/comstack.diagnostics.html new file mode 100644 index 0000000..c6c2f9d --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.diagnostics.html @@ -0,0 +1,28 @@ +8. Diagnostics

8. Diagnostics

+ All functions return -1 if an error occurs. Typically, the functions + will return 0 on success, but the data exchange functions + (cs_get, cs_put, + cs_more) follow special rules. Consult their + descriptions. +

+ When a function (including the data exchange functions) reports an + error condition, use the function + cs_errno() to determine the cause of the + problem. The function +

+    void cs_perror(COMSTACK handle char *message);
+   

+ works like perror(2) and prints the + message argument, along with a system message, to + stderr. Use the character array +

+    extern const char *cs_errlist[];
+   

+ to get hold of the message, if you want to process it differently. + The function +

+    const char *cs_stackerr(COMSTACK handle);
+   

+ Returns an error message from the lower layer, if one has been + provided. +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.html b/dependencies/yaz-2.1.28/doc/comstack.html new file mode 100644 index 0000000..c0c7f22 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.html @@ -0,0 +1,50 @@ +Chapter 10. The COMSTACK Module

Chapter 10. The COMSTACK Module

1. Synopsis (blocking mode)

+    
+COMSTACK stack;
+char *buf = 0;
+int size = 0, length_incoming;
+char *protocol_package; 
+int protocol_package_length;
+char server_address_str[] = "myserver.com:2100";
+void *server_address_ip;
+int status;
+
+stack = cs_create(tcpip_type, 1, PROTO_Z3950);
+if (!stack) {
+    perror("cs_create");  /* use perror() here since we have no stack yet */
+    exit(1);
+}
+
+server_address_ip = cs_addrstr (stack, server_address_str);
+
+status = cs_connect(stack, server_address_ip);
+if (status != 0) {
+    cs_perror(stack, "cs_connect");
+    exit(1);
+}
+
+status = cs_put(stack, protocol_package, protocol_package_length);
+if (status) {
+    cs_perror(stack, "cs_put");
+    exit(1);
+}
+
+/* Now get a response */
+
+length_incoming = cs_get(stack, &buf, &size);
+if (!length_incoming) {
+    fprintf(stderr, "Connection closed\n");
+    exit(1);
+} else if (length_incoming < 0) {
+    cs_perror(stack, "cs_get");
+    exit(1);
+}
+
+/* Do stuff with buf here */
+
+/* clean up */
+cs_close(stack);
+if (buf)
+    free(buf);
+    
+   
diff --git a/dependencies/yaz-2.1.28/doc/comstack.introduction.html b/dependencies/yaz-2.1.28/doc/comstack.introduction.html new file mode 100644 index 0000000..e53d0fe --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.introduction.html @@ -0,0 +1,32 @@ +2. Introduction

2. Introduction

+ The COMSTACK + subsystem provides a transparent interface to different types of transport + stacks for the exchange of BER-encoded data and HTTP packets. + At present, the RFC1729 method (BER over TCP/IP), local UNIX socket and an + experimental SSL stack are supported, but others may be added in time. + The philosophy of the + module is to provide a simple interface by hiding unused options and + facilities of the underlying libraries. This is always done at the risk + of losing generality, and it may prove that the interface will need + extension later on. +

Note

+ There hasn't been interest in the XTImOSI stack for some years. + Therefore, it is no longer supported. +

+ The interface is implemented in such a fashion that only the + sub-layers constructed to the transport methods that you wish to + use in your application are linked in. +

+ You will note that even though simplicity was a goal in the design, + the interface is still orders of magnitudes more complex than the + transport systems found in many other packages. One reason is that + the interface needs to support the somewhat different requirements of + the different lower-layer communications stacks; another important + reason is that the interface seeks to provide a more or less + industrial-strength approach to asynchronous event-handling. + When no function is allowed to block, things get more complex - + particularly on the server side. + We urge you to have a look at the demonstration client and server + provided with the package. They are meant to be easily readable and + instructive, while still being at least moderately useful. +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.server.html b/dependencies/yaz-2.1.28/doc/comstack.server.html new file mode 100644 index 0000000..561744f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.server.html @@ -0,0 +1,43 @@ +5. Server Side

5. Server Side

+ To establish a server under the inetd + server, you can use +

+    COMSTACK cs_createbysocket(int socket, CS_TYPE type, int blocking,
+                               int protocol);
+   

+ The socket parameter is an established socket (when + your application is invoked from inetd, the + socket will typically be 0. + The following parameters are identical to the ones for + cs_create. +

+    int cs_bind(COMSTACK handle, void *address, int mode)
+   

+ Binds a local address to the endpoint. Read about addresses below. The + mode parameter should be either + CS_CLIENT or CS_SERVER. +

+    int cs_listen(COMSTACK handle, char *addr, int *addrlen);
+   

+ Call this to process incoming events on an endpoint that has been + bound in listening mode. It will return 0 to indicate that the connect + request has been received, 1 to signal a partial reception, and -1 to + indicate an error condition. +

+    COMSTACK cs_accept(COMSTACK handle);
+   

+ This finalizes the server-side association establishment, after + cs_listen has completed successfully. It returns a new connection + endpoint, which represents the new association. The application will + typically wish to fork off a process to handle the association at this + point, and continue listen for new connections on the old + handle. +

+ You can use the call +

+    char *cs_addrstr(COMSTACK);
+   

+ on an established connection to retrieve the host-name of the remote host. +

Note

You may need to use this function with some care if your + name server service is slow or unreliable +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.ssl.html b/dependencies/yaz-2.1.28/doc/comstack.ssl.html new file mode 100644 index 0000000..14781f4 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.ssl.html @@ -0,0 +1,30 @@ +7. SSL

7. SSL

+

+     void *cs_get_ssl(COMSTACK cs);
+    

+ Returns the SSL handle, SSL * for comstack. If comstack + is not of type SSL, NULL is returned. +

+

+     int cs_set_ssl_ctx(COMSTACK cs, void *ctx);
+    

+ Sets SSL context for comstack. The parameter is expected to be of type + SSL_CTX *. This function should be called just + after comstack has been created (before connect, bind, etc). + This function returns 1 for success; 0 for failure. +

+

+     int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname);
+    

+ Sets SSL certificate for comstack as a PEM file. This function + returns 1 for success; 0 for failure. +

+

+     int cs_get_ssl_peer_certificate_x509(COMSTACK cs, char **buf, int *len);
+    

+ This function returns the peer certificate. If successful, + *buf and *len holds + X509 buffer and length respectively. Buffer should be freed + with xfree. This function returns 1 for success; + 0 for failure. +

diff --git a/dependencies/yaz-2.1.28/doc/comstack.summary.html b/dependencies/yaz-2.1.28/doc/comstack.summary.html new file mode 100644 index 0000000..c13f3e2 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.summary.html @@ -0,0 +1,46 @@ +9. Summary and Synopsis

9. Summary and Synopsis

+    #include <yaz/comstack.h>
+    
+    #include <yaz/tcpip.h>  /* this is for TCP/IP and SSL support */
+    #include <yaz/unix.h>   /* this is for UNIX sockeL support */
+    
+     
+    COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
+     
+    COMSTACK cs_createbysocket(int s, CS_TYPE type, int blocking,
+                               int protocol);
+    COMSTACK cs_create_host (const char *str, int blocking,
+                             void **vp);
+     
+    int cs_bind(COMSTACK handle, int mode);
+     
+    int cs_connect(COMSTACK handle, void *address);
+     
+    int cs_rcvconnect(COMSTACK handle);
+     
+    int cs_listen(COMSTACK handle);
+
+    COMSTACK cs_accept(COMSTACK handle);
+
+    int cs_put(COMSTACK handle, char *buf, int len);
+
+    int cs_get(COMSTACK handle, char **buf, int *size);
+
+    int cs_more(COMSTACK handle);
+
+    int cs_close(COMSTACK handle);
+
+    int cs_look(COMSTACK handle);
+
+    void *cs_straddr(COMSTACK handle, const char *str);
+
+    char *cs_addrstr(COMSTACK h);
+
+    extern int cs_errno;
+
+    void cs_perror(COMSTACK handle char *message);
+
+    const char *cs_stackerr(COMSTACK handle);
+
+    extern const char *cs_errlist[];
+   
diff --git a/dependencies/yaz-2.1.28/doc/comstack.xml b/dependencies/yaz-2.1.28/doc/comstack.xml new file mode 100644 index 0000000..8f0845c --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/comstack.xml @@ -0,0 +1,645 @@ + + The COMSTACK Module + + Synopsis (blocking mode) + + + +COMSTACK stack; +char *buf = 0; +int size = 0, length_incoming; +char *protocol_package; +int protocol_package_length; +char server_address_str[] = "myserver.com:2100"; +void *server_address_ip; +int status; + +stack = cs_create(tcpip_type, 1, PROTO_Z3950); +if (!stack) { + perror("cs_create"); /* use perror() here since we have no stack yet */ + exit(1); +} + +server_address_ip = cs_addrstr (stack, server_address_str); + +status = cs_connect(stack, server_address_ip); +if (status != 0) { + cs_perror(stack, "cs_connect"); + exit(1); +} + +status = cs_put(stack, protocol_package, protocol_package_length); +if (status) { + cs_perror(stack, "cs_put"); + exit(1); +} + +/* Now get a response */ + +length_incoming = cs_get(stack, &buf, &size); +if (!length_incoming) { + fprintf(stderr, "Connection closed\n"); + exit(1); +} else if (length_incoming < 0) { + cs_perror(stack, "cs_get"); + exit(1); +} + +/* Do stuff with buf here */ + +/* clean up */ +cs_close(stack); +if (buf) + free(buf); + + + + + Introduction + + + The &comstack; + subsystem provides a transparent interface to different types of transport + stacks for the exchange of BER-encoded data and HTTP packets. + At present, the RFC1729 method (BER over TCP/IP), local UNIX socket and an + experimental SSL stack are supported, but others may be added in time. + The philosophy of the + module is to provide a simple interface by hiding unused options and + facilities of the underlying libraries. This is always done at the risk + of losing generality, and it may prove that the interface will need + extension later on. + + + + + There hasn't been interest in the XTImOSI stack for some years. + Therefore, it is no longer supported. + + + + + The interface is implemented in such a fashion that only the + sub-layers constructed to the transport methods that you wish to + use in your application are linked in. + + + + You will note that even though simplicity was a goal in the design, + the interface is still orders of magnitudes more complex than the + transport systems found in many other packages. One reason is that + the interface needs to support the somewhat different requirements of + the different lower-layer communications stacks; another important + reason is that the interface seeks to provide a more or less + industrial-strength approach to asynchronous event-handling. + When no function is allowed to block, things get more complex - + particularly on the server side. + We urge you to have a look at the demonstration client and server + provided with the package. They are meant to be easily readable and + instructive, while still being at least moderately useful. + + + + Common Functions + + Managing Endpoints + + + COMSTACK cs_create(CS_TYPE type, int blocking, int protocol); + + + + Creates an instance of the protocol stack - a communications endpoint. + The type parameter determines the mode + of communication. At present the following values are supported: + + + + tcpip_type + TCP/IP (BER over TCP/IP or HTTP over TCP/IP) + + + ssl_type + Secure Socket Layer (SSL). This COMSTACK + is experimental and is not fully implemented. If + HTTP is used, this effectively is HTTPS. + + + unix_type + Unix socket (unix only). Local Transfer via + file socket. See unix + 7. + + + + + + The cs_create function returns a null-pointer + if a system error occurs. + The blocking parameter should be one if + you wish the association to operate in blocking mode, zero otherwise. + The protocol field should be + PROTO_Z3950 or PROTO_HTTP. + Protocol PROTO_SR is no longer supported. + + + + int cs_close(COMSTACK handle); + + + + Closes the connection (as elegantly as the lower layers will permit), + and releases the resources pointed to by the + handle + parameter. The + handle + should not be referenced again after this call. + + + + + We really need a soft disconnect, don't we? + + + + + Data Exchange + + + int cs_put(COMSTACK handle, char *buf, int len); + + + + Sends + buf + down the wire. In blocking mode, this function will return only when a + full buffer has been written, or an error has occurred. In nonblocking + mode, it's possible that the function will be unable to send the full + buffer at once, which will be indicated by a return value of 1. The + function will keep track of the number of octets already written; you + should call it repeatedly with the same values of buf + and len, until the buffer has been transmitted. + When a full buffer has been sent, the function will return 0 for + success. -1 indicates an error condition (see below). + + + + int cs_get(COMSTACK handle, char **buf, int *size); + + + + Receives a PDU or HTTP Response from the peer. Returns the number of + bytes read. + In nonblocking mode, it is possible that not all of the packet can be + read at once. In this case, the function returns 1. To simplify the + interface, the function is + responsible for managing the size of the buffer. It will be reallocated + if necessary to contain large packages, and will sometimes be moved + around internally by the subsystem when partial packages are read. Before + calling + cs_get + for the fist time, the buffer can be initialized to the null pointer, + and the length should also be set to 0 - cs_get will perform a + malloc(2) + on the buffer for you. When a full buffer has been read, the size of + the package is returned (which will always be greater than 1). -1 + indicates an error condition. + + + + See also the cs_more() function below. + + + + int cs_more(COMSTACK handle); + + + + The cs_more() function should be used in conjunction + with cs_get and + select(2). + The cs_get() function will sometimes + (notably in the TCP/IP mode) read more than a single protocol package + off the network. When this happens, the extra package is stored + by the subsystem. After calling cs_get(), and before + waiting for more input, You should always call + cs_more() + to check if there's a full protocol package already read. If + cs_more() + returns 1, + cs_get() + can be used to immediately fetch the new package. For the + mOSI + subsystem, the function should always return 0, but if you want your + stuff to be protocol independent, you should use it. + + + + + The cs_more() + function is required because the RFC1729-method + does not provide a way of separating individual PDUs, short of + partially decoding the BER. Some other implementations will carefully + nibble at the packet by calling + read(2) + several times. This was felt to be too inefficient (or at least + clumsy) - hence the call for this extra function. + + + + + int cs_look(COMSTACK handle); + + + + This function is useful when you're operating in nonblocking + mode. Call it when + select(2) + tells you there's something happening on the line. It returns one of + the following values: + + + + CS_NONE + No event is pending. The data found on the line was not a + complete package. + + + CS_CONNECT + A response to your connect request has been received. Call + cs_rcvconnect + to process the event and to finalize the connection establishment. + + + CS_DISCON + The other side has closed the connection (or maybe sent a disconnect + request - but do we care? Maybe later). Call + cs_close to close your end of the association + as well. + + + CS_LISTEN + A connect request has been received. + Call cs_listen to process the event. + + + CS_DATA + There's data to be found on the line. + Call cs_get to get it. + + + + + + You should be aware that even if + cs_look() + tells you that there's an event event pending, the corresponding + function may still return and tell you there was nothing to be found. + This means that only part of a package was available for reading. The + same event will show up again, when more data has arrived. + + + + + int cs_fileno(COMSTACK h); + + + + Returns the file descriptor of the association. Use this when + file-level operations on the endpoint are required + (select(2) operations, specifically). + + + + + + Client Side + + + int cs_connect(COMSTACK handle, void *address); + + + + Initiate a connection with the target at address + (more on addresses below). The function will return 0 on success, and 1 if + the operation does not complete immediately (this will only + happen on a nonblocking endpoint). In this case, use + cs_rcvconnect to complete the operation, + when select(2) or poll(2) + reports input pending on the association. + + + + int cs_rcvconnect(COMSTACK handle); + + + + Complete a connect operation initiated by cs_connect(). + It will return 0 on success; 1 if the operation has not yet completed (in + this case, call the function again later); -1 if an error has occurred. + + + + + Server Side + + + To establish a server under the inetd + server, you can use + + + + COMSTACK cs_createbysocket(int socket, CS_TYPE type, int blocking, + int protocol); + + + + The socket parameter is an established socket (when + your application is invoked from inetd, the + socket will typically be 0. + The following parameters are identical to the ones for + cs_create. + + + + int cs_bind(COMSTACK handle, void *address, int mode) + + + + Binds a local address to the endpoint. Read about addresses below. The + mode parameter should be either + CS_CLIENT or CS_SERVER. + + + + int cs_listen(COMSTACK handle, char *addr, int *addrlen); + + + + Call this to process incoming events on an endpoint that has been + bound in listening mode. It will return 0 to indicate that the connect + request has been received, 1 to signal a partial reception, and -1 to + indicate an error condition. + + + + COMSTACK cs_accept(COMSTACK handle); + + + + This finalizes the server-side association establishment, after + cs_listen has completed successfully. It returns a new connection + endpoint, which represents the new association. The application will + typically wish to fork off a process to handle the association at this + point, and continue listen for new connections on the old + handle. + + + + You can use the call + + + + char *cs_addrstr(COMSTACK); + + + + on an established connection to retrieve the host-name of the remote host. + + + + You may need to use this function with some care if your + name server service is slow or unreliable + + + + + Addresses + + + The low-level format of the addresses are different depending on the + mode of communication you have chosen. A function is provided by each + of the lower layers to map a user-friendly string-form address to the + binary form required by the lower layers. + + + + void *cs_straddr(COMSTACK handle, const char *str); + + + + The format for TCP/IP and SSL addresses is: + + + + <host> [ ':' <portnum> ] + + + + The hostname can be either a domain name or an + IP address. The port number, if omitted, defaults to 210. + + + + For TCP/IP and SSL transport modes, the special hostname "@" + is mapped to any local address + (the manifest constant INADDR_ANY). + It is used to establish local listening endpoints in the server role. + + + + For UNIX sockets, the format of an address is the socket filename. + + + + When a connection has been established, you can use + + + + char *cs_addrstr(COMSTACK h); + + + + to retrieve the host name of the peer system. The function returns + a pointer to a static area, which is overwritten on the next call + to the function. + + + + A fairly recent addition to the &comstack; module is the utility + function + + + COMSTACK cs_create_host (const char *str, int blocking, void **vp); + + + which is just a wrapper for cs_create and + cs_straddr. The str + is similar to that described for cs_straddr + but with a prefix denoting the &comstack; type. Prefixes supported + are tcp:, unix: and + ssl: for TCP/IP, UNIX and SSL respectively. + If no prefix is given, then TCP/IP is used. + The blocking is passed to + function cs_create. The third parameter + vp is a pointer to &comstack; stack type + specific values. + For SSL (ssl_type) vp is an already create + OpenSSL CTX. For TCP/IP and UNIX vp + is unused (can be set to NULL. + + + + + SSL + + + void *cs_get_ssl(COMSTACK cs); + + Returns the SSL handle, SSL * for comstack. If comstack + is not of type SSL, NULL is returned. + + + + + int cs_set_ssl_ctx(COMSTACK cs, void *ctx); + + Sets SSL context for comstack. The parameter is expected to be of type + SSL_CTX *. This function should be called just + after comstack has been created (before connect, bind, etc). + This function returns 1 for success; 0 for failure. + + + + + int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname); + + Sets SSL certificate for comstack as a PEM file. This function + returns 1 for success; 0 for failure. + + + + + + int cs_get_ssl_peer_certificate_x509(COMSTACK cs, char **buf, int *len); + + This function returns the peer certificate. If successful, + *buf and *len holds + X509 buffer and length respectively. Buffer should be freed + with xfree. This function returns 1 for success; + 0 for failure. + + + + + Diagnostics + + + All functions return -1 if an error occurs. Typically, the functions + will return 0 on success, but the data exchange functions + (cs_get, cs_put, + cs_more) follow special rules. Consult their + descriptions. + + + + When a function (including the data exchange functions) reports an + error condition, use the function + cs_errno() to determine the cause of the + problem. The function + + + + void cs_perror(COMSTACK handle char *message); + + + + works like perror(2) and prints the + message argument, along with a system message, to + stderr. Use the character array + + + + extern const char *cs_errlist[]; + + + + to get hold of the message, if you want to process it differently. + The function + + + + const char *cs_stackerr(COMSTACK handle); + + + + Returns an error message from the lower layer, if one has been + provided. + + + Summary and Synopsis + + + #include <yaz/comstack.h> + + #include <yaz/tcpip.h> /* this is for TCP/IP and SSL support */ + #include <yaz/unix.h> /* this is for UNIX sockeL support */ + + + COMSTACK cs_create(CS_TYPE type, int blocking, int protocol); + + COMSTACK cs_createbysocket(int s, CS_TYPE type, int blocking, + int protocol); + COMSTACK cs_create_host (const char *str, int blocking, + void **vp); + + int cs_bind(COMSTACK handle, int mode); + + int cs_connect(COMSTACK handle, void *address); + + int cs_rcvconnect(COMSTACK handle); + + int cs_listen(COMSTACK handle); + + COMSTACK cs_accept(COMSTACK handle); + + int cs_put(COMSTACK handle, char *buf, int len); + + int cs_get(COMSTACK handle, char **buf, int *size); + + int cs_more(COMSTACK handle); + + int cs_close(COMSTACK handle); + + int cs_look(COMSTACK handle); + + void *cs_straddr(COMSTACK handle, const char *str); + + char *cs_addrstr(COMSTACK h); + + extern int cs_errno; + + void cs_perror(COMSTACK handle char *message); + + const char *cs_stackerr(COMSTACK handle); + + extern const char *cs_errlist[]; + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/credits.html b/dependencies/yaz-2.1.28/doc/credits.html new file mode 100644 index 0000000..6e710c4 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/credits.html @@ -0,0 +1,64 @@ +Appendix C. Credits

Appendix C. Credits

+ This appendix lists individuals that have contributed in the development + of YAZ. Some have contributed with code, while others have provided bug + fixes or suggestions. If we're missing somebody, of if you, for + whatever reason, don't like to be listed here, let us know. +

  • + Dimitrios Andreadis +

  • + Morten Bøgeskov +

  • + Rocco Carbone +

  • + Matthew Carey +

  • + Hans van Dalen +

  • + Irina Dijour +

  • + Larry E. Dixson +

  • + Hans van den Dool +

  • + Mads Bondo Dydensborg +

  • + Franck Falcoz +

  • + Kevin Gamiel +

  • + Morten Garkier Hendriksen +

  • + Morten Holmqvist +

  • + Ian Ibbotson +

  • + Shigeru Ishida +

  • + David Johnson +

  • + Oleg Kolobov +

  • + Kang-Jin Lee +

  • + Pieter Van Lierop +

  • + Stefan Lohrum +

  • + Ronald van der Meer +

  • + Thomas W. Place +

  • + Peter Popovics +

  • + Jacob Chr. Poulsen +

  • + Ko van der Sloot +

  • + Mike Taylor +

  • + Rustam T. Usmanov +

  • + Charles Woodfield +

  • + Tom André Øverland +

diff --git a/dependencies/yaz-2.1.28/doc/credits.xml b/dependencies/yaz-2.1.28/doc/credits.xml new file mode 100644 index 0000000..e3f7ffc --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/credits.xml @@ -0,0 +1,114 @@ + + Credits + + This appendix lists individuals that have contributed in the development + of &yaz;. Some have contributed with code, while others have provided bug + fixes or suggestions. If we're missing somebody, of if you, for + whatever reason, don't like to be listed here, let us know. + + + + + Dimitrios Andreadis + + + Morten Bøgeskov + + + Rocco Carbone + + + Matthew Carey + + + Hans van Dalen + + + Irina Dijour + + + Larry E. Dixson + + + Hans van den Dool + + + Mads Bondo Dydensborg + + + Franck Falcoz + + + Kevin Gamiel + + + Morten Garkier Hendriksen + + + Morten Holmqvist + + + Ian Ibbotson + + + Shigeru Ishida + + + David Johnson + + + Oleg Kolobov + + + Kang-Jin Lee + + + Pieter Van Lierop + + + Stefan Lohrum + + + Ronald van der Meer + + + Thomas W. Place + + + Peter Popovics + + + Jacob Chr. Poulsen + + + Ko van der Sloot + + + Mike Taylor + + + Rustam T. Usmanov + + + Charles Woodfield + + + Tom André Øverland + + + + + diff --git a/dependencies/yaz-2.1.28/doc/entities.ent b/dependencies/yaz-2.1.28/doc/entities.ent new file mode 100644 index 0000000..d9b33b8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/entities.ent @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + +ODR"> +COMSTACK"> +ZOOM"> + +"> + diff --git a/dependencies/yaz-2.1.28/doc/frontend.xml b/dependencies/yaz-2.1.28/doc/frontend.xml new file mode 100644 index 0000000..e911e40 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/frontend.xml @@ -0,0 +1,848 @@ + + Generic server + Introduction + + + If you aren't into documentation, a good way to learn how the + back end interface works is to look at the backend.h + file. Then, look at the small dummy-server in + ztest/ztest.c. The backend.h + file also makes a good reference, once you've chewed your way through + the prose of this file. + + + + If you have a database system that you would like to make available by + means of Z39.50 or SRU, &yaz; basically offers your two options. You + can use the APIs provided by the &asn;, &odr;, and &comstack; + modules to + create and decode PDUs, and exchange them with a client. + Using this low-level interface gives you access to all fields and + options of the protocol, and you can construct your server as close + to your existing database as you like. + It is also a fairly involved process, requiring + you to set up an event-handling mechanism, protocol state machine, + etc. To simplify server implementation, we have implemented a compact + and simple, but reasonably full-functioned server-frontend that will + handle most of the protocol mechanics, while leaving you to + concentrate on your database interface. + + + + + The backend interface was designed in anticipation of a specific + integration task, while still attempting to achieve some degree of + generality. We realize fully that there are points where the + interface can be improved significantly. If you have specific + functions or parameters that you think could be useful, send us a + mail (or better, sign on to the mailing list referred to in the + top-level README file). We will try to fit good suggestions into future + releases, to the extent that it can be done without requiring + too many structural changes in existing applications. + + + + + + The &yaz; server does not support XCQL. + + + + + The Database Frontend + + + We refer to this software as a generic database frontend. Your + database system is the backend database, and the + interface between the two is called the backend API. + The backend API consists of a small number of function handlers and + structure definitions. You are required to provide the + main() routine for the server (which can be + quite simple), as well as a set of handlers to match each of the + prototypes. + The interface functions that you write can use any mechanism you like + to communicate with your database system: You might link the whole + thing together with your database application and access it by + function calls; you might use IPC to talk to a database server + somewhere; or you might link with third-party software that handles + the communication for you (like a commercial database client library). + At any rate, the handlers will perform the tasks of: + + + + + + Initialization. + + + + Searching. + + + + Fetching records. + + + + Scanning the database index (optional - if you wish to implement SCAN). + + + + Extended Services (optional). + + + + Result-Set Delete (optional). + + + + Result-Set Sort (optional). + + + + Return Explain for SRU (optional). + + + + + + (more functions will be added in time to support as much of + Z39.50-1995 as possible). + + + + The Backend API + + + The header file that you need to use the interface are in the + include/yaz directory. It's called + backend.h. It will include other files from + the include/yaz directory, so you'll + probably want to use the -I option of your compiler to tell it + where to find the files. When you run + make in the top-level &yaz; directory, + everything you need to create your server is to link with the + lib/libyaz.la library. + + + + Your main() Routine + + + As mentioned, your main() routine can be quite brief. + If you want to initialize global parameters, or read global configuration + tables, this is the place to do it. At the end of the routine, you should + call the function + + + +int statserv_main(int argc, char **argv, + bend_initresult *(*bend_init)(bend_initrequest *r), + void (*bend_close)(void *handle)); + + + + The third and fourth arguments are pointers to handlers. Handler + bend_init is called whenever the server receives + an Initialize Request, so it serves as a Z39.50 session initializer. The + bend_close handler is called when the session is + closed. + + + + statserv_main will establish listening sockets + according to the parameters given. When connection requests are received, + the event handler will typically fork() and + create a sub-process to handle a new connection. + Alternatively the server may be setup to create threads for each + connection. + If you do use global variables and forking, you should be aware, then, + that these cannot be shared between associations, unless you explicitly + disable forking by command line parameters. + + + + The server provides a mechanism for controlling some of its behavior + without using command-line options. The function + + + + statserv_options_block *statserv_getcontrol(void); + + + + will return a pointer to a struct statserv_options_block + describing the current default settings of the server. The structure + contains these elements: + + + + int dynamic + A boolean value, which determines whether the server + will fork on each incoming request (TRUE), or not (FALSE). Default is + TRUE. This flag is only read by UNIX-based servers (WIN32 based servers + doesn't fork). + + + + int threads + A boolean value, which determines whether the server + will create a thread on each incoming request (TRUE), or not (FALSE). + Default is FALSE. This flag is only read by UNIX-based servers + that offer POSIX Threads support. + WIN32-based servers always operate in threaded mode. + + + + int inetd + A boolean value, which determines whether the server + will operates under a UNIX INET daemon (inetd). Default is FALSE. + + + + char logfile[ODR_MAXNAME+1] + File for diagnostic output ("": stderr). + + + + char apdufile[ODR_MAXNAME+1] + + Name of file for logging incoming and outgoing APDUs + ("": don't log APDUs, "-": + stderr). + + + + char default_listen[1024] + Same form as the command-line specification of + listener address. "": no default listener address. + Default is to listen at "tcp:@:9999". You can only + specify one default listener address in this fashion. + + + + enum oid_proto default_proto; + Either PROTO_Z3950 or + PROTO_SR. + Default is PROTO_Z39_50. + + + + int idle_timeout; + Maximum session idle-time, in minutes. Zero indicates + no (infinite) timeout. Default is 15 minutes. + + + + int maxrecordsize; + Maximum permissible record (message) size. Default + is 1Mb. This amount of memory will only be allocated if a + client requests a very large amount of records in one operation + (or a big record). + Set it to a lower number if you are worried about resource + consumption on your host system. + + + + char configname[ODR_MAXNAME+1] + Passed to the backend when a new connection is received. + + + + char setuid[ODR_MAXNAME+1] + Set user id to the user specified, after binding + the listener addresses. + + + + void (*bend_start)(struct statserv_options_block *p) + + Pointer to function which is called after the + command line options have been parsed - but before the server + starts listening. + For forked UNIX servers this handler is called in the mother + process; for threaded servers this handler is called in the + main thread. + The default value of this pointer is NULL in which case it + isn't invoked by the frontend server. + When the server operates as an NT service this handler is called + whenever the service is started. + + + + void (*bend_stop)(struct statserv_options_block *p) + + Pointer to function which is called whenever the server + has stopped listening for incoming connections. This function pointer + has a default value of NULL in which case it isn't called. + When the server operates as an NT service this handler is called + whenever the service is stopped. + + + + void *handle + User defined pointer (default value NULL). + This is a per-server handle that can be used to specify "user-data". + Do not confuse this with the session-handle as returned by bend_init. + + + + + + + The pointer returned by statserv_getcontrol points to + a static area. You are allowed to change the contents of the structure, + but the changes will not take effect before you call + + + +void statserv_setcontrol(statserv_options_block *block); + + + + + that you should generally update this structure before calling + statserv_main(). + + + + + The Backend Functions + + + For each service of the protocol, the backend interface declares one or + two functions. You are required to provide implementations of the + functions representing the services that you wish to implement. + + + Init + + +bend_initresult (*bend_init)(bend_initrequest *r); + + + + This handler is called once for each new connection request, after + a new process/thread has been created, and an Initialize Request has + been received from the client. The pointer to the + bend_init handler is passed in the call to + statserv_start. + + + + This handler is also called when operating in SRU mode - when + a connection has been made (even though SRU does not offer + this service). + + + + Unlike previous versions of YAZ, the bend_init also + serves as a handler that defines the Z39.50 services that the backend + wish to support. Pointers to all service handlers, + including search - and fetch must be specified here in this handler. + + + The request - and result structures are defined as + + + +typedef struct bend_initrequest +{ + Z_IdAuthentication *auth; + ODR stream; /* encoding stream */ + ODR print; /* printing stream */ + Z_ReferenceId *referenceId;/* reference ID */ + char *peer_name; /* dns host of peer (client) */ + + char *implementation_id; + char *implementation_name; + char *implementation_version; + int (*bend_sort) (void *handle, bend_sort_rr *rr); + int (*bend_search) (void *handle, bend_search_rr *rr); + int (*bend_fetch) (void *handle, bend_fetch_rr *rr); + int (*bend_present) (void *handle, bend_present_rr *rr); + int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr); + int (*bend_delete)(void *handle, bend_delete_rr *rr); + int (*bend_scan)(void *handle, bend_scan_rr *rr); + int (*bend_segment)(void *handle, bend_segment_rr *rr); + + ODR decode; /* decoding stream */ + /* character set and language negotiation - see include/yaz/z-charneg.h */ + Z_CharSetandLanguageNegotiation *charneg_request; + Z_External *charneg_response; + int (*bend_srw_explain)(void *handle, bend_explain_rr *rr); + int (*bend_srw_scan)(void *handle, bend_scan_rr *rr); +} bend_initrequest; + +typedef struct bend_initresult +{ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ + void *handle; /* private handle to the backend module */ +} bend_initresult; + + + + In general, the server frontend expects that the + bend_*result pointer that you return is valid at + least until the next call to a bend_* function. + This applies to all of the functions described herein. The parameter + structure passed to you in the call belongs to the server frontend, and + you should not make assumptions about its contents after the current + function call has completed. In other words, if you want to retain any + of the contents of a request structure, you should copy them. + + + + The errcode should be zero if the initialization of + the backend went well. Any other value will be interpreted as an error. + The errstring isn't used in the current version, but + one option would be to stick it in the initResponse as a VisibleString. + The handle is the most important parameter. It should + be set to some value that uniquely identifies the current session to + the backend implementation. It is used by the frontend server in any + future calls to a backend function. + The typical use is to set it to point to a dynamically allocated state + structure that is private to your backend module. + + + + The auth member holds the authentication information + part of the Z39.50 Initialize Request. Interpret this if your serves + requires authentication. + + + + The members peer_name, + implementation_id, + implementation_name and + implementation_version holds + DNS of client, ID of implementor, name + of client (Z39.50) implementation - and version. + + + + The bend_ - members are set to NULL when + bend_init is called. Modify the pointers by + setting them to point to backend functions. + + + + + Search and retrieve + + We now describe the handlers that are required to support search - + and retrieve. You must support two functions - one for search - and one + for fetch (retrieval of one record). If desirable you can provide a + third handler which is called when a present request is received which + allows you to optimize retrieval of multiple-records. + + + +int (*bend_search) (void *handle, bend_search_rr *rr); + +typedef struct { + char *setname; /* name to give to this set */ + int replace_set; /* replace set, if it already exists */ + int num_bases; /* number of databases in list */ + char **basenames; /* databases to search */ + Z_ReferenceId *referenceId;/* reference ID */ + Z_Query *query; /* query structure */ + ODR stream; /* encode stream */ + ODR decode; /* decode stream */ + ODR print; /* print stream */ + + bend_request request; + bend_association association; + int *fd; + int hits; /* number of hits */ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ + Z_OtherInformation *search_info; +} bend_search_rr; + + + + The bend_search handler is a fairly close + approximation of a protocol Z39.50 Search Request - and Response PDUs + The setname is the resultSetName from the protocol. + You are required to establish a mapping between the set name and whatever + your backend database likes to use. + Similarly, the replace_set is a boolean value + corresponding to the resultSetIndicator field in the protocol. + num_bases/basenames is a length of/array of character + pointers to the database names provided by the client. + The query is the full query structure as defined in + the protocol ASN.1 specification. + It can be either of the possible query types, and it's up to you to + determine if you can handle the provided query type. + Rather than reproduce the C interface here, we'll refer you to the + structure definitions in the file + include/yaz/z-core.h. If you want to look at the + attributeSetId OID of the RPN query, you can either match it against + your own internal tables, or you can use the + oid_getentbyoid function provided by &yaz;. + + + + The structure contains a number of hits, and an + errcode/errstring pair. If an error occurs + during the search, or if you're unhappy with the request, you should + set the errcode to a value from the BIB-1 diagnostic set. The value + will then be returned to the user in a nonsurrogate diagnostic record + in the response. The errstring, if provided, will + go in the addinfo field. Look at the protocol definition for the + defined error codes, and the suggested uses of the addinfo field. + + + + The bend_search handler is also called when + the frontend server receives a SRU SearchRetrieveRequest. + For SRU, a CQL query is usually provided by the client. + The CQL query is available as part of Z_Query + structure (note that CQL is now part of Z39.50 via an external). + To support CQL in existing implementations that only do Type-1, + we refer to the CQL-to-PQF tool described + here. + + + + To maintain backwards compatibility, the frontend server + of yaz always assume that error codes are BIB-1 diagnostics. + For SRU operation, a Bib-1 diagnostic code is mapped to + SRU diagnostic. + + + +int (*bend_fetch) (void *handle, bend_fetch_rr *rr); + +typedef struct bend_fetch_rr { + char *setname; /* set name */ + int number; /* record number */ + Z_ReferenceId *referenceId;/* reference ID */ + oid_value request_format; /* One of the CLASS_RECSYN members */ + int *request_format_raw; /* same as above (raw OID) */ + Z_RecordComposition *comp; /* Formatting instructions */ + ODR stream; /* encoding stream - memory source if req */ + ODR print; /* printing stream */ + + char *basename; /* name of database that provided record */ + int len; /* length of record or -1 if structured */ + char *record; /* record */ + int last_in_set; /* is it? */ + oid_value output_format; /* format */ + int *output_format_raw; /* used instead of above if not-null */ + int errcode; /* 0==success */ + char *errstring; /* system error string or NULL */ + int surrogate_flag; /* surrogate diagnostic */ + char *schema; /* string record schema input/output */ +} bend_fetch_rr; + + + + The frontend server calls the bend_fetch handler + when it needs database records to fulfill a Z39.50 Search Request, a + Z39.50 Present Request or a SRU SearchRetrieveRequest. + The setname is simply the name of the result set + that holds the reference to the desired record. + The number is the offset into the set (with 1 + being the first record in the set). The format field + is the record format requested by the client (See + ). + The value VAL_NONE indicates that the client did + not request a specific format. The stream argument + is an &odr; stream which should be used for + allocating space for structured data records. + The stream will be reset when all records have been assembled, and + the response package has been transmitted. + For unstructured data, the backend is responsible for maintaining a + static or dynamic buffer for the record between calls. + + + + If a SRU SearchRetrieveRequest is received by the frontend server, + the referenceId is NULL and the + request_format (transfer syntax) is XML (OID name + VAL_TEXT_XML). + The schema for SRU is stored in both the + Z_RecordComposition + structure and schema (simple string). + + + + In the structure, the basename is the name of the + database that holds the + record. len is the length of the record returned, in + bytes, and record is a pointer to the record. + last_in_set should be nonzero only if the record + returned is the last one in the given result set. + errcode and errstring, if + given, will be interpreted as a global error pertaining to the + set, and will be returned in a non-surrogate-diagnostic. + If you wish to return the error as a surrogate-diagnostic + (local error) you can do this by setting + surrogate_flag to 1 also. + + + + If the len field has the value -1, then + record is assumed to point to a constructed data + type. The format field will be used to determine + which encoder should be used to serialize the data. + + + + + If your backend generates structured records, it should use + odr_malloc() on the provided stream for allocating + data: This allows the frontend server to keep track of the record sizes. + + + + + The format field is mapped to an object identifier + in the direct reference of the resulting EXTERNAL representation + of the record. + + + + + The current version of &yaz; only supports the direct reference mode. + + + + +int (*bend_present) (void *handle, bend_present_rr *rr); + +typedef struct { + char *setname; /* set name */ + int start; + int number; /* record number */ + oid_value format; /* One of the CLASS_RECSYN members */ + Z_ReferenceId *referenceId;/* reference ID */ + Z_RecordComposition *comp; /* Formatting instructions */ + ODR stream; /* encoding stream */ + ODR print; /* printing stream */ + bend_request request; + bend_association association; + + int hits; /* number of hits */ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ +} bend_present_rr; + + + + The bend_present handler is called when + the server receives a Z39.50 Present Request. + The setname, + start and number is the + name of the result set - start position - and number of records to + be retrieved respectively. format and + comp is the preferred transfer syntax and element + specifications of the present request. + + + Note that this is handler serves as a supplement for + bend_fetch and need not to be defined in order to + support search - and retrieve. + + + + + Delete + + + For back-ends that supports delete of a result set only one handler + must be defined. + + + +int (*bend_delete)(void *handle, bend_delete_rr *rr); + +typedef struct bend_delete_rr { + int function; + int num_setnames; + char **setnames; + Z_ReferenceId *referenceId; + int delete_status; /* status for the whole operation */ + int *statuses; /* status each set - indexed as setnames */ + ODR stream; + ODR print; +} bend_delete_rr; + + + + + The delete set function definition is rather primitive, mostly because + we have had no practical need for it as of yet. If someone wants + to provide a full delete service, we'd be happy to add the + extra parameters that are required. Are there clients out there + that will actually delete sets they no longer need? + + + + + + scan + + + For servers that wish to offer the scan service one handler + must be defined. + + + +int (*bend_delete)(void *handle, bend_delete_rr *rr); + +typedef enum { + BEND_SCAN_SUCCESS, /* ok */ + BEND_SCAN_PARTIAL /* not all entries could be found */ +} bend_scan_status; + +typedef struct bend_scan_rr { + int num_bases; /* number of elements in database list */ + char **basenames; /* databases to search */ + oid_value attributeset; + Z_ReferenceId *referenceId; /* reference ID */ + Z_AttributesPlusTerm *term; + ODR stream; /* encoding stream - memory source if required */ + ODR print; /* printing stream */ + + int *step_size; /* step size */ + int term_position; /* desired index of term in result list/returned */ + int num_entries; /* number of entries requested/returned */ + + struct scan_entry *entries; + bend_scan_status status; + int errcode; + char *errstring; + char *scanClause; /* CQL scan clause */ +} bend_scan_rr; + + + This backend server handles both Z39.50 scan + and SRU scan. In order for a handler to distinguish between SRU (CQL) scan + Z39.50 Scan , it must check for a non-NULL value of + scanClause. + + + + if designed today, it would be a choice using a union or similar, + but that would break binary compatibility with existing servers. + + + + + + Application Invocation + + + The finished application has the following + invocation syntax (by way of statserv_main()): + + + &gfs-synopsis; + + + The options are: + + &gfs-options; + + + + + A listener specification consists of a transport mode followed by a + colon (:) followed by a listener address. The transport mode is + either tcp, unix: or + ssl. + + + + For TCP and SSL, an address has the form + + + + hostname | IP-number [: portnumber] + + + + The port number defaults to 210 (standard Z39.50 port). + + + + For UNIX, the address is the filename of socket. + + + + For TCP/IP and SSL, the special hostname @ + (at sign) is mapped to the address INADDR_ANY, + which causes the server to listen on any local interface. + + + Running the GFS on Unix + + Assuming the server application appname is + started as root, the following will make it listen on port 210. + The server will change identity to nobody + and write its log to /var/log/app.log. + + appname -l /var/log/app.log -u nobody tcp:@:210 + + + + The server will accept Z39.50 requests and offer SRU service on port 210. + + + Setting up Apache as SRU Frontend + + If you use Apache + as your public web server and want to offer HTTP port 80 + access to the YAZ server on 210, you can use the + + ProxyPass + directive. + If you have virtual host + srw.mydomain you can use the following directives + in Apache's httpd.conf: + + <VirtualHost *> + ErrorLog /home/srw/logs/error_log + TransferLog /home/srw/logs/access_log + ProxyPass / http://srw.mydomain:210/ + </VirtualHost> + + + + The above for the Apache 1.3 series. + + + Running a server with local access only + + Servers that is only being accessed from the local host should listen + on UNIX file socket rather than a Internet socket. To listen on + /tmp/mysocket start the server as follows: + + appname tcp:/tmp/mysocket + + + + + Virtual Hosts + &gfs-virtual; + + + + diff --git a/dependencies/yaz-2.1.28/doc/future.html b/dependencies/yaz-2.1.28/doc/future.html new file mode 100644 index 0000000..123c512 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/future.html @@ -0,0 +1,27 @@ +Chapter 11. Future Directions

Chapter 11. Future Directions

+ We have a new and better version of the front-end server on the drawing + board. Resources and external commitments will govern when we'll be + able to do something real with it. Features should include greater + flexibility, greater support for access/resource control, and easy + support for Explain (possibly with Zebra as an extra database engine). +

+ YAZ is a BER toolkit and as such should support all protocols + out there based on that. We'd like to see running ILL applications. + It shouldn't be that hard. Another thing that would be interesting is + LDAP. Maybe a generic framework for doing IR using both LDAP and + Z39.50 transparently. +

+ The SOAP implementation is incomplete. In the future we hope + to add more features to it. Perhaps make a WSDL/XML Schema compiler. + The authors of libxml2 are already working on XML Schema / RelaxNG + compilers so this may not be too hard. +

+ It would be neat to have a proper module mechanism for the Generic + Frontend Server so that backend would be dynamically + loaded (as shared objects / DLLs). +

+ Other than that, YAZ generally moves in the directions which appear to + make the most people happy (including ourselves, as prime users of the + software). If there's something you'd like to see in here, then drop + us a note and let's see what we can come up with. +

diff --git a/dependencies/yaz-2.1.28/doc/future.xml b/dependencies/yaz-2.1.28/doc/future.xml new file mode 100644 index 0000000..74dfb63 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/future.xml @@ -0,0 +1,55 @@ + + Future Directions + + + We have a new and better version of the front-end server on the drawing + board. Resources and external commitments will govern when we'll be + able to do something real with it. Features should include greater + flexibility, greater support for access/resource control, and easy + support for Explain (possibly with Zebra as an extra database engine). + + + + &yaz; is a BER toolkit and as such should support all protocols + out there based on that. We'd like to see running ILL applications. + It shouldn't be that hard. Another thing that would be interesting is + LDAP. Maybe a generic framework for doing IR using both LDAP and + Z39.50 transparently. + + + + The SOAP implementation is incomplete. In the future we hope + to add more features to it. Perhaps make a WSDL/XML Schema compiler. + The authors of libxml2 are already working on XML Schema / RelaxNG + compilers so this may not be too hard. + + + + It would be neat to have a proper module mechanism for the Generic + Frontend Server so that backend would be dynamically + loaded (as shared objects / DLLs). + + + + Other than that, &yaz; generally moves in the directions which appear to + make the most people happy (including ourselves, as prime users of the + software). If there's something you'd like to see in here, then drop + us a note and let's see what we can come up with. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/gfs-options.xml b/dependencies/yaz-2.1.28/doc/gfs-options.xml new file mode 100644 index 0000000..ce2bb2d --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/gfs-options.xml @@ -0,0 +1,198 @@ + + + + + -a + file + + Specify a file for dumping PDUs (for diagnostic purposes). + The special name - (dash) sends output to + stderr. + + + -S + + Don't fork or make threads on connection requests. This is good for + debugging, but not recommended for real operation: Although the + server is asynchronous and non-blocking, it can be nice to keep + a software malfunction (okay then, a crash) from affecting all + current users. + + + -1 + + Like -S but after one session the server + exits. This mode is for debugging only. + + + -T + + Operate the server in threaded mode. The server creates a thread + for each connection rather than a fork a process. Only available + on UNIX systems that offers POSIX threads. + + + -s + + Use the SR protocol (obsolete). + + + -z + + Use the Z39.50 protocol (default). This option and -s + complement each other. + You can use both multiple times on the same command + line, between listener-specifications (see below). This way, you + can set up the server to listen for connections in both protocols + concurrently, on different local ports. + + + -l + file + The logfile. + + + -c + config + A user option that serves as a specifier for some + sort of configuration, usually a filename. + The argument to this option is transferred to member + configname of the + statserv_options_block. + + + -f + vconfig + This specifies an XML file that describes + one or more YAZ frontend virtual servers. + + + -C + fname + Sets SSL certificate file name for server (PEM). + + + -v + level + + The log level. Use a comma-separated list of members of the set + {fatal,debug,warn,log,malloc,all,none}. + + + -u + uid + + Set user ID. Sets the real UID of the server process to that of the + given user. It's useful if you aren't comfortable with having the + server run as root, but you need to start it as such to bind a + privileged port. + + + -w + dir + + The server changes to this directory during before listening + on incoming connections. This option is useful + when the server is operating from the inetd + daemon (see -i). + + + -p + pidfile + + Specifies that the server should write its Process ID to + file given by pidfile. + A typical location would be /var/run/yaz-ztest.pid. + + + -i + + Use this to make the the server run from the + inetd server (UNIX only). + + + -D + + Use this to make the server put itself in the background and + run as a daemon. If neither -i nor + -D is given, the server starts in the foreground. + + + -install + + Use this to install the server as an NT service + (Windows NT/2000/XP only). + Control the server by going to the Services in the Control Panel. + + + -installa + + Use this to install and activate the server as an NT service + (Windows NT/2000/XP only). + Control the server by going to the Services in the Control Panel. + + + -remove + + Use this to remove the server from the NT services + (Windows NT/2000/XP only). + + + -t + minutes + + Idle session timeout, in minutes. + + + -k + size + + Maximum record size/message size, in kilobytes. + + + + -d + daemon + + Set name of daemon to be used in hosts access file. + See + + hosts_access + 5 + + and + + tcpd + 8 + . + + + + -m + time-format + + Sets the format of time-stamps in the log-file. Specify a string in + the input format to strftime(). + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/gfs-synopsis.xml b/dependencies/yaz-2.1.28/doc/gfs-synopsis.xml new file mode 100644 index 0000000..1191b3b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/gfs-synopsis.xml @@ -0,0 +1,41 @@ + + + + &gfs-synopsis-app; + + + + + + + + + + + + + + + + + listener-spec + + + diff --git a/dependencies/yaz-2.1.28/doc/gfs-virtual.xml b/dependencies/yaz-2.1.28/doc/gfs-virtual.xml new file mode 100644 index 0000000..6c17c3b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/gfs-virtual.xml @@ -0,0 +1,243 @@ + + + + The Virtual hosts mechanism allows a YAZ frontend server to + support multiple backends. A backend is selected on the basis of + the TCP/IP binding (port+listening adddress) and/or the virtual host. + + + A backend can be configured to execute in a particular working + directory. Or the YAZ frontend may perform CQL to RPN conversion, thus + allowing traditional Z39.50 backends to be offered as a SRW/SRU + service. SRW/SRU Explain information for a particular backend may also + be specified. + + + For the HTTP protocol, the virtual host is specified in the Host header. + For the Z39.50 protocol, the virtual host is specified as in the + Initialize Request in the OtherInfo, OID 1.2.840.10003.10.1000.81.1. + + + + Not all Z39.50 clients allows the VHOST information to be set. + For those the selection of the backend must rely on the + TCP/IP information alone (port and address). + + + + The YAZ frontend server uses XML to describe the backend + configurations. Command-line option -f + specifies filename of the XML configuration. + + + The configuration uses the root element yazgfs. + This element includes a list of listen elements, + followed by one or more server elements. + + + The listen describes listener (transport end point), + such as TCP/IP, Unix file socket or SSL server. Content for + a listener: + + CDATA (required) + + + The CDATA for the listen element holds the + listener string, such as tcp:@:210, + tcp:server1:2100, + etc. + + + + attribute id (optional) + + + identifier for this listener. This may be referred to from + server sections. + + + + + + + We expect more information to be added for the listen section in + a future version, such as CERT file for SSL servers. + + + + + The server describes a server and the parameters + for this server type. Content for a server: + + attribute id (optional) + + + Identifier for this server. Currently not used for anything, + but it might be for logging purposes. + + + + + attribute listenref (optional) + + + Specifies listener for this server. If this attribute is not + given, the server is accessible from all listener. In order + for the server to be used for real, howeever, the virtual host + must match (if specified in the configuration). + + + + + element config (optional) + + + Specifies the server configuration. This is equivalent + to the config specified using command line option + -c. + + + + + element directory (optional) + + + Specifies a working directory for this backend server. If + specifid, the YAZ fronend changes current working directory + to this directory whenever a backend of this type is + started (backend handler bend_start), stopped (backend handler hand_stop) + and initialized (bend_init). + + + + + element host (optional) + + + Specifies the virtual host for this server. If this is specified + a client must specify this host string in + order to use this backend. + + + + + element cql2rpn (optional) + + + Specifies a filename that includes CQL to RPN conversion for this + backend server. See &reference-tools-cql-map; + If given, the backend server will only "see" a Type-1/RPN query. + + + + + element stylesheet (optional) + + + Specifies the stylesheet reference to be part of SRU HTTP responses + when the client does not specify one. If neither this is given, nor + the client specifies one, no stylesheet reference is part of the + SRU HTTP response. + + + + + element docpath (optional) + + + Specifies a path for local file access using HTTP. All URLs with + a leading prefix (/ exluded) that matches the value of docpath + are used for file access. For example, if the server is to offer + access in directory xsl, the docpath would be + xsl and all URLs of the form + http://host/exl will result in a local file access. + + + + + element explain (optional) + + + Specifies SRW/SRU ZeeRex content for this server. Copied verbatim + to the client. As things are now, some of the Explain content + seeem redundant because host information, etc. is also stored + elsewhere. + + + + + + + + The XML below configures a server that accepts connections from + two ports, TCP/IP port 9900 and a local UNIX file socket. + We name the TCP/IP server public and the + other server internal. + + + + tcp:@:9900 + unix:/var/tmp/socket + + server1.mydomain + /var/www/s1 + config.cfg + + + server2.mydomain + /var/www/s2 + config.cfg + ../etc/pqf.properties + + + server2.mydomain + 9900 + a + + + + + /var/www/s3 + config.cfg + + +]]> + + + There are three configured backend servers. The first two + servers, "server1" and "server2", + can be reached by both listener addresses - since + no listenref attribute is specified. + In order to distinguish between the two a virtual host has + been specified for each of server in the host + elements. + + + For "server2" elements for CQL to RPN conversion + is supported and explain information has been added (a short one here + to keep the example small). + + + The third server, "server3" can only be reached + via listener "internal". + + + diff --git a/dependencies/yaz-2.1.28/doc/index.html b/dependencies/yaz-2.1.28/doc/index.html new file mode 100644 index 0000000..0d90be2 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/index.html @@ -0,0 +1,21 @@ +YAZ User's Guide and Reference

YAZ User's Guide and Reference

Sebastian Hammer

Adam Dickmeiss

Mike Taylor

Heikki Levanto

Abstract

+ This document is the programmer's guide and reference to the YAZ + package version 2.1.28. YAZ is a compact toolkit that provides + access to the Z39.50 and SRW/SRU protocols, as well as a set of + higher-level tools for implementing the server and client + roles, respectively. + The documentation can be used on its own, or as a reference when + looking at the example applications provided with the package. +

+ +


Table of Contents

1. Introduction
1. Reading this Manual
2. The API
2. Compilation and Installation
1. Introduction
2. UNIX
2.1. Compiling from source on Unix
2.2. How to make apps using YAZ on UNIX
3. WIN32
3.1. Compiling from Source on WIN32
3.2. How to make apps using YAZ on WIN32
3. ZOOM
1. Connections
1.1. Z39.50 Protocol behavior
1.2. SRU Protocol behavior
2. Queries
2.1. Protocol behavior
3. Result sets
3.1. Z39.50 Protocol behavior
3.2. SRU Protocol behavior
4. Records
4.1. Z39.50 Protocol behavior
4.2. SRU Protocol behavior
5. Scan
6. Extended Services
6.1. Item Order
6.2. Record Update
6.3. Database Create
6.4. Database Drop
6.5. Commit Operation
6.6. Protocol behavior
7. Options
8. Events
4. Generic server
1. Introduction
2. The Database Frontend
3. The Backend API
4. Your main() Routine
5. The Backend Functions
5.1. Init
5.2. Search and retrieve
5.3. Delete
5.4. scan
6. Application Invocation
7. Virtual Hosts
5. The YAZ client
1. Introduction
2. Invoking the YAZ client
3. Commands
4. Searching
6. The Z39.50 ASN.1 Module
1. Introduction
2. Preparing PDUs
3. Object Identifiers
4. EXTERNAL Data
5. PDU Contents Table
7. SOAP and SRU
1. Introduction
2. HTTP
3. SOAP Packages
4. SRU
8. Supporting Tools
1. Query Syntax Parsers
1.1. Prefix Query Format
1.1.1. Using Proximity Operators with PQF
1.1.2. PQF queries
1.2. CCL
1.2.1. CCL Syntax
1.2.2. CCL Qualifiers
1.2.3. CCL API
1.3. CQL
1.3.1. CQL parsing
1.3.2. CQL tree
1.3.3. CQL to PQF conversion
1.3.4. Specification of CQL to RPN mappings
1.3.5. CQL to XCQL conversion
2. Object Identifiers
3. Nibble Memory
4. Log
5. MARC
9. The ODR Module
1. Introduction
2. Using ODR
2.1. ODR Streams
2.2. Memory Management
2.3. Encoding and Decoding Data
2.4. Printing
2.5. Diagnostics
2.6. Summary and Synopsis
3. Programming with ODR
3.1. The Primitive ASN.1 Types
3.1.1. INTEGER
3.1.2. BOOLEAN
3.1.3. REAL
3.1.4. NULL
3.1.5. OCTET STRING
3.1.6. BIT STRING
3.1.7. OBJECT IDENTIFIER
3.2. Tagging Primitive Types
3.3. Constructed Types
3.4. Tagging Constructed Types
3.4.1. Implicit Tagging
3.4.2. Explicit Tagging
3.5. SEQUENCE OF
3.6. CHOICE Types
4. Debugging
10. The COMSTACK Module
1. Synopsis (blocking mode)
2. Introduction
3. Common Functions
3.1. Managing Endpoints
3.2. Data Exchange
4. Client Side
5. Server Side
6. Addresses
7. SSL
8. Diagnostics
9. Summary and Synopsis
11. Future Directions
A. License
1. Index Data Copyright
2. Additional Copyright Statements
B. About Index Data
C. Credits

List of Figures

1.1. YAZ layers
diff --git a/dependencies/yaz-2.1.28/doc/indexdata.html b/dependencies/yaz-2.1.28/doc/indexdata.html new file mode 100644 index 0000000..27a18ef --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/indexdata.html @@ -0,0 +1,41 @@ +Appendix B. About Index Data

Appendix B. About Index Data

+ Index Data is a consulting and software-development enterprise that + specializes in library and information management systems. Our + interests and expertise span a broad range of related fields, and one + of our primary, long-term objectives is the development of a powerful + information management + system with open network interfaces and hyper-media capabilities. +

+ We make this software available free of charge, on a fairly unrestrictive + license; as a service to the networking community, and to further the + development of quality software for open network communication. +

+ We'll be happy to answer questions about the software, and about ourselves + in general. +

+


+    Index Data ApS
+    Købmagergade 43 2.
+    1150 Copenhagen K
+    Denmark
+    Phone +45 3341 0100
+    Fax +45 3341 0101
+    Email 
+   

+ +

+ The Hacker's Jargon File has the following to say about the + use of the + prefix "YA" in the name of a software product. +

+ [ + Yet Another. adj. 1. Of your own work: A + humorous allusion often used in titles to acknowledge that the + topic is not original, though the content is. As in "Yet Another + AI Group" or "Yet Another Simulated Annealing Algorithm". + 2. Of + others' work: Describes something of which there are already far + too many. + ] + +

diff --git a/dependencies/yaz-2.1.28/doc/indexdata.xml b/dependencies/yaz-2.1.28/doc/indexdata.xml new file mode 100644 index 0000000..4c16712 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/indexdata.xml @@ -0,0 +1,62 @@ + + About Index Data + + + Index Data is a consulting and software-development enterprise that + specializes in library and information management systems. Our + interests and expertise span a broad range of related fields, and one + of our primary, long-term objectives is the development of a powerful + information management + system with open network interfaces and hyper-media capabilities. + + We make this software available free of charge, on a fairly unrestrictive + license; as a service to the networking community, and to further the + development of quality software for open network communication. + + We'll be happy to answer questions about the software, and about ourselves + in general. + + +
+ Index Data ApS + Købmagergade 43 2. + 1150 Copenhagen K + Denmark + Phone +45 3341 0100 + Fax +45 3341 0101 + Email info@indexdata.dk +
+ +
+ + The Hacker's Jargon File has the following to say about the + use of the + prefix "YA" in the name of a software product. + + + + Yet Another. adj. 1. Of your own work: A + humorous allusion often used in titles to acknowledge that the + topic is not original, though the content is. As in "Yet Another + AI Group" or "Yet Another Simulated Annealing Algorithm". + 2. Of + others' work: Describes something of which there are already far + too many. + + + +
+ diff --git a/dependencies/yaz-2.1.28/doc/installation.html b/dependencies/yaz-2.1.28/doc/installation.html new file mode 100644 index 0000000..8843c76 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/installation.html @@ -0,0 +1,43 @@ +Chapter 2. Compilation and Installation

Chapter 2. Compilation and Installation

1. Introduction

+ The latest version of the software will generally be found at: +

+ http://ftp.indexdata.com/pub/yaz/ +

+ We have tried our best to keep the software portable, and on many + platforms, you should be able to compile everything with little or + no changes. +

+ The software is regularly tested on + Debian GNU/Linux, + Redhat Linux, + Gentoo Linux, + FreeBSD (i386), + MAC OSX, + SunOS 5.8 (sparc), + Windows 2000, + Windows 2003 server. +

+ Some versions have be known to work on HP/UX, + DEC Unix, NetBSD, + OpenBSD, + IBM AIX, + Data General DG/UX (with some CFLAGS tinkering), + SGI/IRIX, DDE Supermax, Apple Macintosh (using the Codewarrior programming + environment and the GUSI socket libraries), + IBM AS/400 . +

+ If you move the software to other platforms, we'd be grateful if you'd + let us know about it. If you run into difficulties, we will try to help + if we can, and if you solve the problems, we would be happy to include + your fixes in the next release. So far, we have mostly avoided + #ifdefs for individual platforms, and we'd + like to keep it that way as far as it makes sense. +

+ We maintain a mailing-list for the purpose of announcing new releases and + bug-fixes, as well as general discussion. Subscribe by + filling-in the form + here. + General questions and problems can be directed at + mailto:yaz-help@indexdata.dk, or the address given at the top of + this document. +

diff --git a/dependencies/yaz-2.1.28/doc/installation.unix.html b/dependencies/yaz-2.1.28/doc/installation.unix.html new file mode 100644 index 0000000..333dfcc --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/installation.unix.html @@ -0,0 +1,237 @@ +2. UNIX

2. UNIX

+ We provide + Debian GNU/Linux + and + Redhat packages for YAZ. + Only i386 binary packages are available. You should be able to + create packages for other CPUs by building them from the source + package. +

2.1. Compiling from source on Unix

+ Note that if your system doesn't have a native ANSI C compiler, you may + have to acquire one separately. We recommend + GCC. +

+ If you wish to use character set conversion facilities in YAZ or if you + are compiling YAZ for use with Zebra it is a good idea to ensure that + the iconv library is installed. Some Unixes today already have it + - if not, we suggest + GNU libiconv. +

+ The libxslt, + libxml2 librararies are required + if YAZ is to support SRU. + These libraries are very portable and should compile out-of-the + box on virtually all Unix platforms. It is available in binary + forms for Linux and others. +

+ The GNU tools + Autoconf, + Automake and + Libtool + are used to generate Makefiles and configure YAZ for the system. + You do not these tools unless you're using the + CVS version of YAZ. +

+ The CQL parser for YAZ is built using + GNU Bison. + This tool is only needed if you're using the CVS version of YAZ. +

+ YAZ includes a tiny ASN.1 compiler. This compiler is + written in Tcl. + But as for Bison you do not need it unless you're using CVS + version of YAZ or you're using the compiler to built own codecs + for private ASN.1. +

+ Generally it should be sufficient to run configure without options, + like this: +

+     ./configure
+    

+ The configure script attempts to use use the C compiler specified by + the CC environment variable. If not set, GNU C will be + used if it is available. The CFLAGS environment + variable holds options to be passed to the C compiler. If you're using + Bourne-compatible shell you may pass something like this to use a + particular C compiler with optimization enabled: +

+     CC=/opt/ccs/bin/cc CFLAGS=-O ./configure
+    

+ To customize YAZ, the configure script also accepts a set of options. + The most important are: + +

+ --prefix=prefix

Specifies installation prefix for YAZ. This is + only needed if you run make install later to + perform a "system" installation. The prefix is + /usr/local if not specified. +

--enable-tcpd

The front end server will be built using Wietse's + TCP wrapper library. + It allows you to allow/deny clients depending on IP number. + The TCP wrapper library is often used in GNU/Linux and + BSD distributions. + See + hosts_access(5) + and + tcpd(8). +

--enable-threads

YAZ will be built using POSIX threads. + Specifically, _REENTRANT will be defined during + compilation. +

--disable-shared

The make process will not create shared + libraries (also known as shared objects .so). + By default, shared libraries are created - + equivalent to --enable-shared. +

--disable-shared

The make process will not create + static libraries (.a). + By default, static libraries are created - + equivalent to --enable-static. +

+ --with-iconv[=prefix] +

Compile YAZ with iconv library in directory + prefix. By default configure will + search for iconv on the system. Use this option if it + doesn't find iconv. Alternatively, + --without-iconv, can be uset to force YAZ + not to use iconv. +

+ --with-xslt[=prefix] +

Compile YAZ with + libxslt in directory + prefix. + Use this option if you want SRU support. + By default, configure will + search for libxslt on the system. Use this option if it + libxslt is not found automatically. Alternatively, + --without-xslt, can be used to force YAZ + not to use libxslt. +

+ --with-openssl[=prefix] +

YAZ will be linked with the OpenSSL libraries and + an SSL COMSTACK will be provided. Note that SSL support is still + experimental. +

+ +

+ When configured, build the software by typing: +

+      make
+     

+

+ The following files are generated by the make process: +

src/libyaz.la

+ Main YAZ library. This is no ordinary library. It's + a Libtool archive. + By default, YAZ creates a static library in + lib/.libs/libyaz.a. +

src/libyazthread.la

+ When threading is supported/enabled by configure this Libtool + library is created. It includes functions that allows YAZ + to use threads. +

ztest/yaz-ztest

Test Z39.50 server. +

client/yaz-client

Z39.50 client for testing the protocol. + See chapter + YAZ client for more information. +

util/yaz-config

A Bourne-shell script, generated by configure, that + specifies how external applications should compile - and link with + YAZ. +

util/yaz-asncomp

The ASN.1 compiler for YAZ. Requires the + Tcl Shell, tclsh, in + PATH to operate. +

util/yaz-iconv

This program converts data in one character set to + another. This command exercises the YAZ character set + conversion API. +

util/yaz-marcdump

This program parses ISO2709 encoded MARC records + and prints them in line-format or XML. +

zoom/zoomsh

+ A simple shell implemented on top of the + ZOOM functions. + The shell is a command line application that allows you to enter + simple commands to perform ZOOM operations. +

zoom/zoomtst1, + zoom/zoomtst2, ..

+ Several small applications that demonstrates the ZOOM API. +

+ +

+ If you wish to install YAZ in system directories + /usr/local/bin, + /usr/local/lib .. etc, you can type: +

+     make install
+    

+ You probably need to have root access in order to perform this. + You must specify the --prefix option for configure if + you wish to install YAZ in other directories than the default + /usr/local/. +

+ If you wish to perform an un-installation of YAZ, use: +

+     make uninstall
+    

+ This will only work if you haven't reconfigured YAZ (and therefore + changed installation prefix). Note that uninstall will not + remove directories created by make install, e.g. + /usr/local/include/yaz. +

2.2. How to make apps using YAZ on UNIX

+ This section describes how to compile - and link your own + applications using the YAZ toolkit. + If you're used to Makefiles this shouldn't be hard. As for + other libraries you have used before, you have to set a proper include + path for your C/C++ compiler and specify the location of + YAZ libraries. You can do it by hand, but generally we suggest + you use the yaz-config that is generated + by configure. This is especially + important if you're using the threaded version of YAZ which + require you to pass more options to your linker/compiler. +

+ The yaz-config script accepts command line + options that makes the yaz-config script print + options that you should use in your make process. + The most important ones are: + --cflags, --libs + which prints C compiler flags, and linker flags respectively. +

+ A small and complete Makefile for a C + application consisting of one source file, + myprog.c, may look like this: +

+      YAZCONFIG=/usr/local/bin/yaz-config
+      CFLAGS=`$(YAZCONFIG) --cflags`
+      LIBS=`$(YAZCONFIG) --libs`
+      myprog: myprog.o
+         $(CC) $(CFLAGS) -o myprog myprog.o $(LIBS)
+      

+

+ The CFLAGS variable consists of a C compiler directive that will set + the include path to the parent directory + of yaz. That is, if YAZ header files were + installed in /usr/local/include/yaz, + then include path is set to /usr/local/include. + Therefore, in your applications you should use +

+      #include <yaz/proto.h>
+     

+ and not +

+      #include <proto.h>
+     

+

+ For Libtool users, the yaz-config script provides + a different variant of option --libs, called + --lalibs that returns the name of the + Libtool acrhive(s) for YAZ rather than the ordinary ones. +

+ For applications using the threaded version of YAZ, + specify threads after the + other options. When threads is given, + more flags and linker flags will be printed by + yaz-config. If our previous example was + using threads, you'd have to modify the lines that set + CFLAGS and LIBS as + follows: +

+      CFLAGS=`$(YAZCONFIG) --cflags threads`
+      LIBS=`$(YAZCONFIG) --libs threads`
+     

+ There is no need specify POSIX thread libraries in your Makefile. + The LIBS variable includes that as well. +

diff --git a/dependencies/yaz-2.1.28/doc/installation.win32.html b/dependencies/yaz-2.1.28/doc/installation.win32.html new file mode 100644 index 0000000..7aac17f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/installation.win32.html @@ -0,0 +1,144 @@ +3. WIN32

3. WIN32

The easiest way to install YAZ on Windows is by downloading + an installer from + here. + The installer comes with source too - in case you wish to + compile YAZ with different Compiler options etc. +

3.1. Compiling from Source on WIN32

+ YAZ is shipped with "makefiles" for the NMAKE tool that comes + with + Microsoft Visual Studio. + Version 6 and .NET has been tested. We expect that YAZ compiles + with version 5 as well. +

+ Start a command prompt and switch the sub directory + WIN where the file makefile + is located. Customize the installation by editing the + makefile file (for example by using notepad). + + The following summarizes the most important settings in that file: + +

DEBUG

+ If set to 1, the software is + compiled with debugging libraries (code generation is + multi-threaded debug DLL). + If set to 0, the software is compiled with release libraries + (code generation is multi-threaded DLL). +

HAVE_TCL, TCL

+ If HAVE_TCL is set to 1, nmake will + use the ASN.1 compiler (Tcl based). You must set + TCL to the full path of the Tcl + interpreter. +

+ If you do not have Tcl installed, set + HAVE_TCL to 0. +

HAVE_BISON, + BISON

+ If GNU Bison is present, you might set HAVE_ICONV + to 1 and specify the Bison executable in BISON. + Bison is only required if you use the CVS version of + YAZ or if you modify the grammar for CQL + (cql.y). +

+ A Windows version of GNU Bison is part of + unxutils. +

HAVE_ICONV, + ICONV_DIR

+ If HAVE_ICONV is set to 1, YAZ is compiled + with iconv support. In this configuration, set + ICONV_DIR to the iconv source directory. +

HAVE_LIBXML2, + LIBXML2_DIR

+ If HAVE_LIBXML2 is set to 1, YAZ is compiled + with SRU support. In this configuration, set + LIBXML2_DIR to the + libxml2 source directory + and + ZLIB_DIR to the zlib directory. +

+ Windows versions of libxslt, libxml2, zlib and iconv can be found + + Igor Zlatković' site. +

Note

+ YAZ is not using zlib but libxml2 is depending on it. +

HAVE_LIBXSLT, + LIBXSLT_DIR

+ If HAVE_LIBXSLT is set to 1, YAZ is compiled + with XSLT support. In this configuration, set + LIBXSLT_DIR to the + libxslt source directory. +

Note

+ libxslt depends libxml2. +

+

+ When satisfied with the settings in the makefile, type +

+      nmake
+     

+

Note

+ If the nmake command is not found on your system + you probably haven't defined the environment variables required to + use that tool. To fix that, find and run the batch file + vcvars32.bat. You need to run it from within + the command prompt or set the environment variables "globally"; + otherwise it doesn't work. +

+ If you wish to recompile YAZ - for example if you modify + settings in the makefile you can delete + object files, etc by running. +

+      nmake clean
+     

+

+ The following files are generated upon successful compilation: + +

bin/yaz.dll

+ YAZ release mode multi-threaded Dynamic Link Library. +

lib/yaz.lib

+ Import library for yaz.dll. +

bin/yazd.dll

+ YAZ debug mode multi-threaded Dynamic Link Library. +

lib/yazd.lib

+ Import library for yazd.dll. +

bin/yaz-client.exe

+ YAZ Z39.50 client application. It's a WIN32 console application. + See chapter YAZ client for more + information. +

bin/yaz-ztest.exe

+ Z39.50 multi-threaded test/example server. It's a WIN32 + console application. +

bin/zoomsh.exe

+ Simple console application implemented on top of the + ZOOM functions. + The application is a command line shell that allows you to enter + simple commands to perform ZOOM operations. +

bin/zoomtst1.exe, + bin/zoomtst2.exe, ..

+ Several small applications that demonstrates the ZOOM API. +

+ +

3.2. How to make apps using YAZ on WIN32

+ This section will go though the process of linking your WIN32 + applications with YAZ. +

+ Some people are confused by the fact that we use the nmake + tool to build YAZ. They think they have to do that too - in order + to make their WIN32 applications work with YAZ. The good news is that + you don't have to. You can use the integrated environment of + Visual Studio if desired for your own application. +

+ When setting up a project or Makefile you have to set the following: +

include path

+ Set it to the include directory of YAZ. +

import library yaz.lib +

+ You must link with this library. It's located in the + sub directory lib of YAZ. + If you want to link with the debug version of YAZ, you must + link with yazd.dll instead. +

dynamic link library yaz.dll +

+ This DLL must be in your execution path when you invoke + your application. Specifically, you should distribute this + DLL with your application. +

+

diff --git a/dependencies/yaz-2.1.28/doc/installation.xml b/dependencies/yaz-2.1.28/doc/installation.xml new file mode 100644 index 0000000..622b333 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/installation.xml @@ -0,0 +1,684 @@ + + Compilation and Installation + + Introduction + + The latest version of the software will generally be found at: + + + + + + We have tried our best to keep the software portable, and on many + platforms, you should be able to compile everything with little or + no changes. + + + + The software is regularly tested on + Debian GNU/Linux, + Redhat Linux, + Gentoo Linux, + FreeBSD (i386), + MAC OSX, + SunOS 5.8 (sparc), + Windows 2000, + Windows 2003 server. + + + + Some versions have be known to work on HP/UX, + DEC Unix, NetBSD, + OpenBSD, + IBM AIX, + Data General DG/UX (with some CFLAGS tinkering), + SGI/IRIX, DDE Supermax, Apple Macintosh (using the Codewarrior programming + environment and the GUSI socket libraries), + IBM AS/400 . + + + + If you move the software to other platforms, we'd be grateful if you'd + let us know about it. If you run into difficulties, we will try to help + if we can, and if you solve the problems, we would be happy to include + your fixes in the next release. So far, we have mostly avoided + #ifdefs for individual platforms, and we'd + like to keep it that way as far as it makes sense. + + + + We maintain a mailing-list for the purpose of announcing new releases and + bug-fixes, as well as general discussion. Subscribe by + filling-in the form + here. + General questions and problems can be directed at + , or the address given at the top of + this document. + + + + UNIX + + + We provide + Debian GNU/Linux + and + Redhat packages for &yaz;. + Only i386 binary packages are available. You should be able to + create packages for other CPUs by building them from the source + package. + + + + Compiling from source on Unix + + + Note that if your system doesn't have a native ANSI C compiler, you may + have to acquire one separately. We recommend + GCC. + + + + If you wish to use character set conversion facilities in &yaz; or if you + are compiling &yaz; for use with Zebra it is a good idea to ensure that + the iconv library is installed. Some Unixes today already have it + - if not, we suggest + GNU libiconv. + + + + The libxslt, + libxml2 librararies are required + if &yaz; is to support SRU. + These libraries are very portable and should compile out-of-the + box on virtually all Unix platforms. It is available in binary + forms for Linux and others. + + + + The GNU tools + Autoconf, + Automake and + Libtool + are used to generate Makefiles and configure &yaz; for the system. + You do not these tools unless you're using the + CVS version of &yaz;. + + + + The CQL parser for &yaz; is built using + GNU Bison. + This tool is only needed if you're using the CVS version of &yaz;. + + + + &yaz; includes a tiny ASN.1 compiler. This compiler is + written in Tcl. + But as for Bison you do not need it unless you're using CVS + version of &yaz; or you're using the compiler to built own codecs + for private ASN.1. + + + + Generally it should be sufficient to run configure without options, + like this: + + + + ./configure + + + + The configure script attempts to use use the C compiler specified by + the CC environment variable. If not set, GNU C will be + used if it is available. The CFLAGS environment + variable holds options to be passed to the C compiler. If you're using + Bourne-compatible shell you may pass something like this to use a + particular C compiler with optimization enabled: + + + + CC=/opt/ccs/bin/cc CFLAGS=-O ./configure + + + + To customize &yaz;, the configure script also accepts a set of options. + The most important are: + + + + --prefix=prefix + Specifies installation prefix for &yaz;. This is + only needed if you run make install later to + perform a "system" installation. The prefix is + /usr/local if not specified. + + + --enable-tcpd + The front end server will be built using Wietse's + TCP wrapper library. + It allows you to allow/deny clients depending on IP number. + The TCP wrapper library is often used in GNU/Linux and + BSD distributions. + See + + hosts_access + 5 + + and + + tcpd + 8 + . + + + + --enable-threads + &yaz; will be built using POSIX threads. + Specifically, _REENTRANT will be defined during + compilation. + + + + --disable-shared + The make process will not create shared + libraries (also known as shared objects .so). + By default, shared libraries are created - + equivalent to --enable-shared. + + + + --disable-shared + The make process will not create + static libraries (.a). + By default, static libraries are created - + equivalent to --enable-static. + + + + + --with-iconv[=prefix] + + Compile &yaz; with iconv library in directory + prefix. By default configure will + search for iconv on the system. Use this option if it + doesn't find iconv. Alternatively, + --without-iconv, can be uset to force &yaz; + not to use iconv. + + + + + --with-xslt[=prefix] + + Compile &yaz; with + libxslt in directory + prefix. + Use this option if you want SRU support. + By default, configure will + search for libxslt on the system. Use this option if it + libxslt is not found automatically. Alternatively, + --without-xslt, can be used to force &yaz; + not to use libxslt. + + + + + --with-openssl[=prefix] + + &yaz; will be linked with the OpenSSL libraries and + an SSL COMSTACK will be provided. Note that SSL support is still + experimental. + + + + + + + + When configured, build the software by typing: + + make + + + + + The following files are generated by the make process: + + src/libyaz.la + + Main &yaz; library. This is no ordinary library. It's + a Libtool archive. + By default, &yaz; creates a static library in + lib/.libs/libyaz.a. + + + + src/libyazthread.la + + When threading is supported/enabled by configure this Libtool + library is created. It includes functions that allows &yaz; + to use threads. + + + + ztest/yaz-ztest + Test Z39.50 server. + + + + client/yaz-client + Z39.50 client for testing the protocol. + See chapter + YAZ client for more information. + + + + util/yaz-config + A Bourne-shell script, generated by configure, that + specifies how external applications should compile - and link with + &yaz;. + + + + util/yaz-asncomp + The ASN.1 compiler for &yaz;. Requires the + Tcl Shell, tclsh, in + PATH to operate. + + + + util/yaz-iconv + This program converts data in one character set to + another. This command exercises the YAZ character set + conversion API. + + + + util/yaz-marcdump + This program parses ISO2709 encoded MARC records + and prints them in line-format or XML. + + + + zoom/zoomsh + + A simple shell implemented on top of the + ZOOM functions. + The shell is a command line application that allows you to enter + simple commands to perform ZOOM operations. + + + + zoom/zoomtst1, + zoom/zoomtst2, .. + + Several small applications that demonstrates the ZOOM API. + + + + + + + + If you wish to install &yaz; in system directories + /usr/local/bin, + /usr/local/lib .. etc, you can type: + + + + make install + + + + You probably need to have root access in order to perform this. + You must specify the --prefix option for configure if + you wish to install &yaz; in other directories than the default + /usr/local/. + + + + If you wish to perform an un-installation of &yaz;, use: + + + + make uninstall + + + + This will only work if you haven't reconfigured &yaz; (and therefore + changed installation prefix). Note that uninstall will not + remove directories created by make install, e.g. + /usr/local/include/yaz. + + + + How to make apps using YAZ on UNIX + + This section describes how to compile - and link your own + applications using the &yaz; toolkit. + If you're used to Makefiles this shouldn't be hard. As for + other libraries you have used before, you have to set a proper include + path for your C/C++ compiler and specify the location of + &yaz; libraries. You can do it by hand, but generally we suggest + you use the yaz-config that is generated + by configure. This is especially + important if you're using the threaded version of &yaz; which + require you to pass more options to your linker/compiler. + + + The yaz-config script accepts command line + options that makes the yaz-config script print + options that you should use in your make process. + The most important ones are: + --cflags, --libs + which prints C compiler flags, and linker flags respectively. + + + A small and complete Makefile for a C + application consisting of one source file, + myprog.c, may look like this: + + YAZCONFIG=/usr/local/bin/yaz-config + CFLAGS=`$(YAZCONFIG) --cflags` + LIBS=`$(YAZCONFIG) --libs` + myprog: myprog.o + $(CC) $(CFLAGS) -o myprog myprog.o $(LIBS) + + + + The CFLAGS variable consists of a C compiler directive that will set + the include path to the parent directory + of yaz. That is, if &yaz; header files were + installed in /usr/local/include/yaz, + then include path is set to /usr/local/include. + Therefore, in your applications you should use + + #include <yaz/proto.h> + + and not + + #include <proto.h> + + + + For Libtool users, the yaz-config script provides + a different variant of option --libs, called + --lalibs that returns the name of the + Libtool acrhive(s) for &yaz; rather than the ordinary ones. + + + For applications using the threaded version of &yaz;, + specify threads after the + other options. When threads is given, + more flags and linker flags will be printed by + yaz-config. If our previous example was + using threads, you'd have to modify the lines that set + CFLAGS and LIBS as + follows: + + CFLAGS=`$(YAZCONFIG) --cflags threads` + LIBS=`$(YAZCONFIG) --libs threads` + + There is no need specify POSIX thread libraries in your Makefile. + The LIBS variable includes that as well. + + + + WIN32 + + The easiest way to install YAZ on Windows is by downloading + an installer from + here. + The installer comes with source too - in case you wish to + compile YAZ with different Compiler options etc. + + + + Compiling from Source on WIN32 + + &yaz; is shipped with "makefiles" for the NMAKE tool that comes + with + Microsoft Visual Studio. + Version 6 and .NET has been tested. We expect that &yaz; compiles + with version 5 as well. + + + Start a command prompt and switch the sub directory + WIN where the file makefile + is located. Customize the installation by editing the + makefile file (for example by using notepad). + + The following summarizes the most important settings in that file: + + + DEBUG + + If set to 1, the software is + compiled with debugging libraries (code generation is + multi-threaded debug DLL). + If set to 0, the software is compiled with release libraries + (code generation is multi-threaded DLL). + + + + HAVE_TCL, TCL + + If HAVE_TCL is set to 1, nmake will + use the ASN.1 compiler (Tcl based). You must set + TCL to the full path of the Tcl + interpreter. + + + If you do not have Tcl installed, set + HAVE_TCL to 0. + + + + + HAVE_BISON, + BISON + + If GNU Bison is present, you might set HAVE_ICONV + to 1 and specify the Bison executable in BISON. + Bison is only required if you use the CVS version of + YAZ or if you modify the grammar for CQL + (cql.y). + + + A Windows version of GNU Bison is part of + unxutils. + + + + + HAVE_ICONV, + ICONV_DIR + + If HAVE_ICONV is set to 1, YAZ is compiled + with iconv support. In this configuration, set + ICONV_DIR to the iconv source directory. + + + + + HAVE_LIBXML2, + LIBXML2_DIR + + + If HAVE_LIBXML2 is set to 1, YAZ is compiled + with SRU support. In this configuration, set + LIBXML2_DIR to the + libxml2 source directory + and + ZLIB_DIR to the zlib directory. + + + + Windows versions of libxslt, libxml2, zlib and iconv can be found + + Igor Zlatković' site. + + + + + YAZ is not using zlib but libxml2 is depending on it. + + + + + + + HAVE_LIBXSLT, + LIBXSLT_DIR + + + If HAVE_LIBXSLT is set to 1, YAZ is compiled + with XSLT support. In this configuration, set + LIBXSLT_DIR to the + libxslt source directory. + + + + + libxslt depends libxml2. + + + + + + + + + + When satisfied with the settings in the makefile, type + + nmake + + + + + If the nmake command is not found on your system + you probably haven't defined the environment variables required to + use that tool. To fix that, find and run the batch file + vcvars32.bat. You need to run it from within + the command prompt or set the environment variables "globally"; + otherwise it doesn't work. + + + + If you wish to recompile &yaz; - for example if you modify + settings in the makefile you can delete + object files, etc by running. + + nmake clean + + + + The following files are generated upon successful compilation: + + + bin/yaz.dll + + &yaz; release mode multi-threaded Dynamic Link Library. + + + lib/yaz.lib + + Import library for yaz.dll. + + + bin/yazd.dll + + &yaz; debug mode multi-threaded Dynamic Link Library. + + + lib/yazd.lib + + Import library for yazd.dll. + + + bin/yaz-client.exe + + &yaz; Z39.50 client application. It's a WIN32 console application. + See chapter YAZ client for more + information. + + + bin/yaz-ztest.exe + + Z39.50 multi-threaded test/example server. It's a WIN32 + console application. + + + bin/zoomsh.exe + + Simple console application implemented on top of the + ZOOM functions. + The application is a command line shell that allows you to enter + simple commands to perform ZOOM operations. + + + bin/zoomtst1.exe, + bin/zoomtst2.exe, .. + + Several small applications that demonstrates the ZOOM API. + + + + + + + + How to make apps using YAZ on WIN32 + + This section will go though the process of linking your WIN32 + applications with &yaz;. + + + Some people are confused by the fact that we use the nmake + tool to build &yaz;. They think they have to do that too - in order + to make their WIN32 applications work with &yaz;. The good news is that + you don't have to. You can use the integrated environment of + Visual Studio if desired for your own application. + + + When setting up a project or Makefile you have to set the following: + + include path + Set it to the include directory of &yaz;. + + import library yaz.lib + + You must link with this library. It's located in the + sub directory lib of &yaz;. + If you want to link with the debug version of &yaz;, you must + link with yazd.dll instead. + + dynamic link library yaz.dll + + This DLL must be in your execution path when you invoke + your application. Specifically, you should distribute this + DLL with your application. + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/introduction.api.html b/dependencies/yaz-2.1.28/doc/introduction.api.html new file mode 100644 index 0000000..f0fab9a --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/introduction.api.html @@ -0,0 +1,98 @@ +2. The API

2. The API

+ The YAZ + toolkit offers several different levels of access to the + ISO23950/Z39.50, + ILL and + SRU/SRW + protocols. + The level that you need to use depends on your requirements, and + the role (server or client) that you want to implement. + If you're developing a client application you should consider the + ZOOM API. + It is, by far, the easiest way to develop clients in C. + Server implementers should consider the + generic frontend server. + None of those high-level APIs support the whole protocol, but + they do include most facilities used in existing Z39.50 applications. +

+ If you're using 'exotic' functionality (meaning anything not included in + the high-level APIs), developing non-standard extensions to Z39.50 or + you're going to develop an ILL application you'll have to learn the lower + level APIs of YAZ. +

+ The YAZ toolkit modules is shown in figure Figure 1.1, “YAZ layers”. +

Figure 1.1. YAZ layers

YAZ layers

+ There are four layers. +

  • A client or server application (or both). + This layer includes ZOOM and the generic frontend server. +

  • + The second layer provides a C represenation of the + protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, + SRU. +

  • + The third layer encodes and decodes protocol data units to + simple packages (buffer with certain length). The ODR module + encodes and decodes BER whereas the HTTP modules encodes and + decodes HTTP ruquests/responses. +

  • + The lowest layer is COMSTACK which exchanges the encoded packages + with a peer process over a network. +

+

+ The Z39.50 ASN.1 module represents the ASN.1 definition of + the Z39.50 protocol. It establishes a set of type and + structure definitions, with one structure for each of the top-level + PDUs, and one structure or type for each of the contained ASN.1 types. + For primitive types, or other types that are defined by the ASN.1 + standard itself (such as the EXTERNAL type), the C representation is + provided by the ODR (Open Data Representation) subsystem. +

+ ODR is a basic mechanism for representing an + ASN.1 type in the C programming language, and for implementing BER + encoders and decoders for values of that type. The types defined in + the Z39.50 ASN.1 module generally have the prefix Z_, and + a suffix corresponding to the name of the type in the ASN.1 + specification of the protocol (generally Z39.50-1995). In the case of + base types (those originating in the ASN.1 standard itself), the prefix + Odr_ is sometimes seen. Either way, look for + the actual definition in either z-core.h (for the types + from the protocol), odr.h (for the primitive ASN.1 + types). + The Z39.50 ASN.1 library also provides functions (which are, in turn, + defined using ODR primitives) for encoding and decoding data values. + Their general form is + +

int z_xxx(o,  
 o,  
 p,  
 optional,  
 name); 
 o;
xxx p;
 optional;
 name;

+ (note the lower-case "z" in the function name) +

Note

+ If you are using the premade definitions of the Z39.50 ASN.1 module, and you + are not adding new protocol of your own, the only parts of ODR that you + need to worry about are documented in + Section 2, “Using ODR”. +

+ When you have created a BER-encoded buffer, you can use the COMSTACK + subsystem to transmit (or receive) data over the network. The COMSTACK + module provides simple functions for establishing a connection + (passively or actively, depending on the role of your application), + and for exchanging BER-encoded PDUs over that connection. When you + create a connection endpoint, you need to specify what transport to + use (TCP/IP, SSL or UNIX sockets). + For the remainder of the connection's lifetime, you don't have + to worry about the underlying transport protocol at all - the COMSTACK + will ensure that the correct mechanism is used. +

+ We call the combined interfaces to ODR, Z39.50 ASN.1, and COMSTACK the service + level API. It's the API that most closely models the Z39.50 + service/protocol definition, and it provides unlimited access to all + fields and facilities of the protocol definitions. +

+ The reason that the YAZ service-level API is a conglomerate of the + APIs from three different submodules is twofold. First, we wanted to allow + the user a choice of different options for each major task. For instance, + if you don't like the protocol API provided by ODR/Z39.50 ASN.1, you + can use SNACC or BERUtils instead, and still have the benefits of the + transparent transport approach of the COMSTACK module. Secondly, + we realize that you may have to fit the toolkit into an existing + event-processing structure, in a way that is incompatible with + the COMSTACK interface or some other part of YAZ. +

diff --git a/dependencies/yaz-2.1.28/doc/introduction.html b/dependencies/yaz-2.1.28/doc/introduction.html new file mode 100644 index 0000000..73a4ecd --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/introduction.html @@ -0,0 +1,97 @@ +Chapter 1. Introduction

Chapter 1. Introduction

+ YAZ is a C/C++ library for information retrieval applications + using the Z39.50/SRU protocols for information retrieval. +

+ Properties of YAZ: +

  • + Complete + Z39.50 version 3 support. + Amendments and Z39.50-2002 revision is supported. +

  • + Supports + SRU GET/POST/SOAP + version 1.1 (over HTTP and HTTPS). +

  • + Includes BER encoders/decoders for the + ISO ILL + protocol. +

  • + Supports the following transports: BER over TCP/IP + (RFC1729), + BER over unix local socket, and + HTTP 1.1. +

  • + Secure Socket Layer support using + OpenSSL. + If enabled, YAZ uses HTTPS transport (for SOAP) or + "Secure BER" (for Z39.50). +

  • + Offers + ZOOM C API implementing both + Z39.50 and SRU. +

  • + The YAZ library offers a set of useful utilities + related to the protocols, such as MARC (ISO2709) parser, + CCL (ISO8777) parser, + CQL + parser, memory management routines, character set conversion. +

  • + Portable code. YAZ compiles out-of-the box on most Unixes and + on Windows using Microsoft Visual C++. +

  • + Fast operation. The C based BER encoders/decoders as well + as the server component of YAZ is very fast. +

  • + Liberal license that allows for commercial use of YAZ. +

+

1. Reading this Manual

Most implementors only need to read a fraction of the + material in thie manual, so a quick walkthrough of the chapters + is in order. +

  • + Chapter 2, Compilation and Installation contains installation + instructions for YAZ. You don't need reading this + if you expect to download YAZ binaries. + However, the chapter contains information about how + to make your application link + with YAZ. +

  • + Chapter 3, ZOOM describes the ZOOM API of YAZ. + This is definitely worth a read if you wish to develop a Z39.50/SRU + client. +

  • + Chapter 4, Generic server describes the generic frontend server + and explains how to develop server Z39.50/SRU applications for YAZ. + Obviously worth reading if you're to develop a server. +

  • + Chapter 5, The YAZ client describes how to use the YAZ Z39.50 + client. If you're developer and wish to test your server + or a server from another party, you might find this chapter + useful. +

  • + Chapter 6, The Z39.50 ASN.1 Module documents the most commonly used Z39.50 + C data structures offered by the YAZ API. Client + developers using ZOOM and non-Z39.50 implementors may skip this. +

  • + Chapter 7, SOAP and SRU describes how SRU and SOAP is used + in YAZ. Only if you're developing SRU applications + this section is a must. +

  • + Chapter 8, Supporting Tools contains sections for the various + tools offered by YAZ. Scan through the material quickly + and see what's relevant to you! SRU implementors + might find the CQL section + particularly useful. +

  • + Chapter 9, The ODR Module goes through the details of the + ODR module which is the work horse that encodes and decodes + BER packages. Implementors using ZOOM only, do not + need reading this. + Most other Z39.50 implementors only need to read the first two + sections (Section 1, “Introduction” and + Section 2, “Using ODR”). +

  • + Chapter 10, The COMSTACK Module describes the network layer module + COMSTACK. Implementors using ZOOM or the generic frontend server + may skip this. Others, presumably, handling client/server + communication on their own should read this. +

diff --git a/dependencies/yaz-2.1.28/doc/introduction.xml b/dependencies/yaz-2.1.28/doc/introduction.xml new file mode 100644 index 0000000..b74a9e5 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/introduction.xml @@ -0,0 +1,316 @@ + + Introduction + + + &yaz; is a C/C++ library for information retrieval applications + using the Z39.50/SRU protocols for information retrieval. + + + + Properties of &yaz;: + + + Complete + Z39.50 version 3 support. + Amendments and Z39.50-2002 revision is supported. + + + Supports + SRU GET/POST/SOAP + version 1.1 (over HTTP and HTTPS). + + + Includes BER encoders/decoders for the + ISO ILL + protocol. + + + Supports the following transports: BER over TCP/IP + (RFC1729), + BER over unix local socket, and + HTTP 1.1. + + + Secure Socket Layer support using + OpenSSL. + If enabled, &yaz; uses HTTPS transport (for SOAP) or + "Secure BER" (for Z39.50). + + + Offers + ZOOM C API implementing both + Z39.50 and SRU. + + + The &yaz; library offers a set of useful utilities + related to the protocols, such as MARC (ISO2709) parser, + CCL (ISO8777) parser, + CQL + parser, memory management routines, character set conversion. + + + Portable code. &yaz; compiles out-of-the box on most Unixes and + on Windows using Microsoft Visual C++. + + + Fast operation. The C based BER encoders/decoders as well + as the server component of &yaz; is very fast. + + + Liberal license that allows for commercial use of &yaz;. + + + + + Reading this Manual + Most implementors only need to read a fraction of the + material in thie manual, so a quick walkthrough of the chapters + is in order. + + + + + contains installation + instructions for &yaz;. You don't need reading this + if you expect to download &yaz; binaries. + However, the chapter contains information about how + to make your application link + with &yaz;. + + + + + + describes the ZOOM API of &yaz;. + This is definitely worth a read if you wish to develop a Z39.50/SRU + client. + + + + + + describes the generic frontend server + and explains how to develop server Z39.50/SRU applications for &yaz;. + Obviously worth reading if you're to develop a server. + + + + + + describes how to use the &yaz; Z39.50 + client. If you're developer and wish to test your server + or a server from another party, you might find this chapter + useful. + + + + + + documents the most commonly used Z39.50 + C data structures offered by the &yaz; API. Client + developers using ZOOM and non-Z39.50 implementors may skip this. + + + + + + describes how SRU and SOAP is used + in &yaz;. Only if you're developing SRU applications + this section is a must. + + + + + + contains sections for the various + tools offered by &yaz;. Scan through the material quickly + and see what's relevant to you! SRU implementors + might find the CQL section + particularly useful. + + + + + + goes through the details of the + ODR module which is the work horse that encodes and decodes + BER packages. Implementors using ZOOM only, do not + need reading this. + Most other Z39.50 implementors only need to read the first two + sections ( and + ). + + + + + + describes the network layer module + COMSTACK. Implementors using ZOOM or the generic frontend server + may skip this. Others, presumably, handling client/server + communication on their own should read this. + + + + + + The API + + + The &yaz; + toolkit offers several different levels of access to the + ISO23950/Z39.50, + ILL and + SRU/SRW + protocols. + The level that you need to use depends on your requirements, and + the role (server or client) that you want to implement. + If you're developing a client application you should consider the + ZOOM API. + It is, by far, the easiest way to develop clients in C. + Server implementers should consider the + generic frontend server. + None of those high-level APIs support the whole protocol, but + they do include most facilities used in existing Z39.50 applications. + + + If you're using 'exotic' functionality (meaning anything not included in + the high-level APIs), developing non-standard extensions to Z39.50 or + you're going to develop an ILL application you'll have to learn the lower + level APIs of &yaz;. + + + The YAZ toolkit modules is shown in figure . + +
+ YAZ layers + + + + + + + + +
+ + There are four layers. + + + A client or server application (or both). + This layer includes ZOOM and the generic frontend server. + + + + + The second layer provides a C represenation of the + protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, + SRU. + + + + + The third layer encodes and decodes protocol data units to + simple packages (buffer with certain length). The &odr; module + encodes and decodes BER whereas the HTTP modules encodes and + decodes HTTP ruquests/responses. + + + + + The lowest layer is &comstack; which exchanges the encoded packages + with a peer process over a network. + + + + + + The &asn; module represents the ASN.1 definition of + the Z39.50 protocol. It establishes a set of type and + structure definitions, with one structure for each of the top-level + PDUs, and one structure or type for each of the contained ASN.1 types. + For primitive types, or other types that are defined by the ASN.1 + standard itself (such as the EXTERNAL type), the C representation is + provided by the &odr; (Open Data Representation) subsystem. + + + &odr; is a basic mechanism for representing an + ASN.1 type in the C programming language, and for implementing BER + encoders and decoders for values of that type. The types defined in + the &asn; module generally have the prefix Z_, and + a suffix corresponding to the name of the type in the ASN.1 + specification of the protocol (generally Z39.50-1995). In the case of + base types (those originating in the ASN.1 standard itself), the prefix + Odr_ is sometimes seen. Either way, look for + the actual definition in either z-core.h (for the types + from the protocol), odr.h (for the primitive ASN.1 + types). + The &asn; library also provides functions (which are, in turn, + defined using &odr; primitives) for encoding and decoding data values. + Their general form is + + + int z_xxx + ODR o + Z_xxx **p + int optional + const char *name + + + (note the lower-case "z" in the function name) + + + + + If you are using the premade definitions of the &asn; module, and you + are not adding new protocol of your own, the only parts of &odr; that you + need to worry about are documented in + . + + + + + When you have created a BER-encoded buffer, you can use the &comstack; + subsystem to transmit (or receive) data over the network. The &comstack; + module provides simple functions for establishing a connection + (passively or actively, depending on the role of your application), + and for exchanging BER-encoded PDUs over that connection. When you + create a connection endpoint, you need to specify what transport to + use (TCP/IP, SSL or UNIX sockets). + For the remainder of the connection's lifetime, you don't have + to worry about the underlying transport protocol at all - the &comstack; + will ensure that the correct mechanism is used. + + + We call the combined interfaces to &odr;, &asn;, and &comstack; the service + level API. It's the API that most closely models the Z39.50 + service/protocol definition, and it provides unlimited access to all + fields and facilities of the protocol definitions. + + + The reason that the &yaz; service-level API is a conglomerate of the + APIs from three different submodules is twofold. First, we wanted to allow + the user a choice of different options for each major task. For instance, + if you don't like the protocol API provided by &odr;/&asn;, you + can use SNACC or BERUtils instead, and still have the benefits of the + transparent transport approach of the &comstack; module. Secondly, + we realize that you may have to fit the toolkit into an existing + event-processing structure, in a way that is incompatible with + the &comstack; interface or some other part of &yaz;. + +
+
+ + diff --git a/dependencies/yaz-2.1.28/doc/license.html b/dependencies/yaz-2.1.28/doc/license.html new file mode 100644 index 0000000..4ee6e1f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/license.html @@ -0,0 +1,25 @@ +Appendix A. License

Appendix A. License

1. Index Data Copyright

+ Copyright © 1995-2006 Index Data ApS. +

+ Permission to use, copy, modify, distribute, and sell this + software and its documentation, in whole or in part, for any + purpose, is hereby granted, provided that: +

+ 1. This copyright and permission notice appear in all copies of the + software and its documentation. Notices of copyright or attribution + which appear at the beginning of any file must remain unchanged. +

+ 2. The names of Index Data or the individual authors may not be used to + endorse or promote products derived from this software without specific + prior written permission. +

+ THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. +

diff --git a/dependencies/yaz-2.1.28/doc/license.other.html b/dependencies/yaz-2.1.28/doc/license.other.html new file mode 100644 index 0000000..6ed67f7 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/license.other.html @@ -0,0 +1,44 @@ +2. Additional Copyright Statements

2. Additional Copyright Statements

+ The optional CCL query language interpreter is covered by the following + license: +

+ Copyright © 1995, the EUROPAGATE consortium (see below). +


+    The EUROPAGATE consortium members are:
+    University College Dublin
+    Danmarks Teknologiske Videnscenter
+    An Chomhairle Leabharlanna
+    Consejo Superior de Investigaciones Cientificas
+   

+ Permission to use, copy, modify, distribute, and sell this software and + its documentation, in whole or in part, for any purpose, is hereby granted, + provided that: +

+ 1. This copyright and permission notice appear in all copies of the + software and its documentation. Notices of copyright or attribution + which appear at the beginning of any file must remain unchanged. +

+ 2. The names of EUROPAGATE or the project partners may not be used to + endorse or promote products derived from this software without specific + prior written permission. +

+ 3. Users of this software (implementors and gateway operators) agree to + inform the EUROPAGATE consortium of their use of the software. This + information will be used to evaluate the EUROPAGATE project and the + software, and to plan further developments. The consortium may use + the information in later publications. +

+ 4. Users of this software agree to make their best efforts, when + documenting their use of the software, to acknowledge the EUROPAGATE + consortium, and the role played by the software in their work. +

+ THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. +

diff --git a/dependencies/yaz-2.1.28/doc/license.xml b/dependencies/yaz-2.1.28/doc/license.xml new file mode 100644 index 0000000..884e9c1 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/license.xml @@ -0,0 +1,118 @@ + + License + + Index Data Copyright + + + Copyright © ©right-year; Index Data ApS. + + + + Permission to use, copy, modify, distribute, and sell this + software and its documentation, in whole or in part, for any + purpose, is hereby granted, provided that: + + + + 1. This copyright and permission notice appear in all copies of the + software and its documentation. Notices of copyright or attribution + which appear at the beginning of any file must remain unchanged. + + + + 2. The names of Index Data or the individual authors may not be used to + endorse or promote products derived from this software without specific + prior written permission. + + + + THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + + Additional Copyright Statements + + + The optional CCL query language interpreter is covered by the following + license: + + + + Copyright © 1995, the EUROPAGATE consortium (see below). + + + + The EUROPAGATE consortium members are: + University College Dublin + Danmarks Teknologiske Videnscenter + An Chomhairle Leabharlanna + Consejo Superior de Investigaciones Cientificas + + + + Permission to use, copy, modify, distribute, and sell this software and + its documentation, in whole or in part, for any purpose, is hereby granted, + provided that: + + + + 1. This copyright and permission notice appear in all copies of the + software and its documentation. Notices of copyright or attribution + which appear at the beginning of any file must remain unchanged. + + + + 2. The names of EUROPAGATE or the project partners may not be used to + endorse or promote products derived from this software without specific + prior written permission. + + + + 3. Users of this software (implementors and gateway operators) agree to + inform the EUROPAGATE consortium of their use of the software. This + information will be used to evaluate the EUROPAGATE project and the + software, and to plan further developments. The consortium may use + the information in later publications. + + + + 4. Users of this software agree to make their best efforts, when + documenting their use of the software, to acknowledge the EUROPAGATE + consortium, and the role played by the software in their work. + + + + THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + USE OR PERFORMANCE OF THIS SOFTWARE. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/local.ent.in b/dependencies/yaz-2.1.28/doc/local.ent.in new file mode 100644 index 0000000..e34c740 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/local.ent.in @@ -0,0 +1,3 @@ + + + diff --git a/dependencies/yaz-2.1.28/doc/odr.debugging.html b/dependencies/yaz-2.1.28/doc/odr.debugging.html new file mode 100644 index 0000000..ecced4f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/odr.debugging.html @@ -0,0 +1,11 @@ +4. Debugging

4. Debugging

+ The protocol modules are suffering somewhat from a lack of diagnostic + tools at the moment. Specifically ways to pretty-print PDUs that + aren't recognized by the system. We'll include something to this end + in a not-too-distant release. In the meantime, what we do when we get + packages we don't understand is to compile the ODR module with + ODR_DEBUG defined. This causes the module to dump tracing + information as it processes data units. With this output and the + protocol specification (Z39.50), it is generally fairly easy to see + what goes wrong. +

diff --git a/dependencies/yaz-2.1.28/doc/odr.html b/dependencies/yaz-2.1.28/doc/odr.html new file mode 100644 index 0000000..2e04605 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/odr.html @@ -0,0 +1,26 @@ +Chapter 9. The ODR Module

Chapter 9. The ODR Module

1. Introduction

+ ODR is the BER-encoding/decoding subsystem of YAZ. Care as been taken + to isolate ODR from the rest of the package - specifically from the + transport interface. ODR may be used in any context where basic + ASN.1/BER representations are used. +

+ If you are only interested in writing a Z39.50 implementation based on + the PDUs that are already provided with YAZ, you only need to concern + yourself with the section on managing ODR streams + (Section 2, “Using ODR”). Only if you need to + implement ASN.1 beyond that which has been provided, should you + worry about the second half of the documentation + (Section 3, “Programming with ODR”). + If you use one of the higher-level interfaces, you can skip this + section entirely. +

+ This is important, so we'll repeat it for emphasis: You do + not need to read Section 3, “Programming with ODR” + to implement Z39.50 with YAZ. +

+ If you need a part of the protocol that isn't already in YAZ, you + should contact the authors before going to work on it yourself: We + might already be working on it. Conversely, if you implement a useful + part of the protocol before us, we'd be happy to include it in a + future release. +

diff --git a/dependencies/yaz-2.1.28/doc/odr.programming.html b/dependencies/yaz-2.1.28/doc/odr.programming.html new file mode 100644 index 0000000..b39a490 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/odr.programming.html @@ -0,0 +1,494 @@ +3. Programming with ODR

3. Programming with ODR

+ The API of ODR is designed to reflect the structure of ASN.1, rather + than BER itself. Future releases may be able to represent data in + other external forms. +

Tip

+ There is an ASN.1 tutorial available at + this site. + This site also has standards for ASN.1 (X.680) and BER (X.690) + online. +

+ The ODR interface is based loosely on that of the Sun Microsystems + XDR routines. + Specifically, each function which corresponds to an ASN.1 primitive + type has a dual function. Depending on the settings of the ODR + stream which is supplied as a parameter, the function may be used + either to encode or decode data. The functions that can be built + using these primitive functions, to represent more complex data types, + share this quality. The result is that you only have to enter the + definition for a type once - and you have the functionality of encoding, + decoding (and pretty-printing) all in one unit. + The resulting C source code is quite compact, and is a pretty + straightforward representation of the source ASN.1 specification. +

+ In many cases, the model of the XDR functions works quite well in this + role. + In others, it is less elegant. Most of the hassle comes from the optional + SEQUENCE members which don't exist in XDR. +

3.1. The Primitive ASN.1 Types

+ ASN.1 defines a number of primitive types (many of which correspond + roughly to primitive types in structured programming languages, such as C). +

3.1.1. INTEGER

+ The ODR function for encoding or decoding (or printing) the ASN.1 + INTEGER type looks like this: +

+      int odr_integer(ODR o, int **p, int optional, const char *name);
+     

+ (we don't allow values that can't be contained in a C integer.) +

+ This form is typical of the primitive ODR functions. They are named + after the type of data that they encode or decode. They take an ODR + stream, an indirect reference to the type in question, and an + optional flag (corresponding to the OPTIONAL keyword + of ASN.1) as parameters. They all return an integer value of either one + or zero. + When you use the primitive functions to construct encoders for complex + types of your own, you should follow this model as well. This + ensures that your new types can be reused as elements in yet more + complex types. +

+ The o parameter should obviously refer to a properly + initialized ODR stream of the right type (encoding/decoding/printing) + for the operation that you wish to perform. +

+ When encoding or printing, the function first looks at + * p. If * p (the pointer pointed + to by p) is a null pointer, this is taken to mean that + the data element is absent. If the optional parameter + is nonzero, the function will return one (signifying success) without + any further processing. If the optional is zero, an + internal error flag is set in the ODR stream, and the function will + return 0. No further operations can be carried out on the stream without + a call to the function odr_reset(). +

+ If *p is not a null pointer, it is expected to + point to an instance of the data type. The data will be subjected to + the encoding rules, and the result will be placed in the buffer held + by the ODR stream. +

+ The other ASN.1 primitives have similar functions that operate in + similar manners: +

3.1.2. BOOLEAN

+int odr_bool(ODR o, bool_t **p, int optional, const char *name);
+     

3.1.3. REAL

+ Not defined. +

3.1.4. NULL

+int odr_null(ODR o, bool_t **p, int optional, const char *name);
+     

+ In this case, the value of **p is not important. If *p + is different from the null pointer, the null value is present, otherwise + it's absent. +

3.1.5. OCTET STRING

+typedef struct odr_oct
+{
+    unsigned char *buf;
+    int len;
+    int size;
+} Odr_oct;
+
+int odr_octetstring(ODR o, Odr_oct **p, int optional,
+                    const char *name);
+     

+ The buf field should point to the character array + that holds the octetstring. The len field holds the + actual length, while the size field gives the size + of the allocated array (not of interest to you, in most cases). + The character array need not be null terminated. +

+ To make things a little easier, an alternative is given for string + types that are not expected to contain embedded NULL characters (eg. + VisibleString): +

+      int odr_cstring(ODR o, char **p, int optional, const char *name);
+     

+ Which encoded or decodes between OCTETSTRING representations and + null-terminates C strings. +

+ Functions are provided for the derived string types, eg: +

+int odr_visiblestring(ODR o, char **p, int optional,
+                      const char *name);
+     

3.1.6. BIT STRING

+int odr_bitstring(ODR o, Odr_bitmask **p, int optional,
+                  const char *name);
+     

+ The opaque type Odr_bitmask is only suitable for + holding relatively brief bit strings, eg. for options fields, etc. + The constant ODR_BITMASK_SIZE multiplied by 8 + gives the maximum possible number of bits. +

+ A set of macros are provided for manipulating the + Odr_bitmask type: +

+void ODR_MASK_ZERO(Odr_bitmask *b);
+
+void ODR_MASK_SET(Odr_bitmask *b, int bitno);
+
+void ODR_MASK_CLEAR(Odr_bitmask *b, int bitno);
+
+int ODR_MASK_GET(Odr_bitmask *b, int bitno);
+     

+ The functions are modeled after the manipulation functions that + accompany the fd_set type used by the + select(2) call. + ODR_MASK_ZERO should always be called first on a + new bitmask, to initialize the bits to zero. +

3.1.7. OBJECT IDENTIFIER

+int odr_oid(ODR o, Odr_oid **p, int optional, const char *name);
+     

+ The C OID representation is simply an array of integers, terminated by + the value -1 (the Odr_oid type is synonymous with + the int type). + We suggest that you use the OID database module (see + Section 3, “Object Identifiers”) to handle object identifiers + in your application. +

3.2. Tagging Primitive Types

+ The simplest way of tagging a type is to use the + odr_implicit_tag() or + odr_explicit_tag() macros: +

+int odr_implicit_tag(ODR o, Odr_fun fun, int class, int tag,
+                     int optional, const char *name);
+
+int odr_explicit_tag(ODR o, Odr_fun fun, int class, int tag,
+                     int optional, const char *name);
+    

+ To create a type derived from the integer type by implicit tagging, you + might write: +

+     MyInt ::= [210] IMPLICIT INTEGER
+    

+ In the ODR system, this would be written like: +

+int myInt(ODR o, int **p, int optional, const char *name)
+{
+    return odr_implicit_tag(o, odr_integer, p,
+			    ODR_CONTEXT, 210, optional, name);
+}
+    

+ The function myInt() can then be used like any of + the primitive functions provided by ODR. Note that the behavior of + odr_explicit_tag() + and odr_implicit_tag() macros + act exactly the same as the functions they are applied to - they + respond to error conditions, etc, in the same manner - they + simply have three extra parameters. The class parameter may + take one of the values: ODR_CONTEXT, + ODR_PRIVATE, ODR_UNIVERSAL, or + /ODR_APPLICATION. +

3.3. Constructed Types

+ Constructed types are created by combining primitive types. The + ODR system only implements the SEQUENCE and SEQUENCE OF constructions + (although adding the rest of the container types should be simple + enough, if the need arises). +

+ For implementing SEQUENCEs, the functions +

+int odr_sequence_begin(ODR o, void *p, int size, const char *name);
+int odr_sequence_end(ODR o);
+    

+ are provided. +

+ The odr_sequence_begin() function should be + called in the beginning of a function that implements a SEQUENCE type. + Its parameters are the ODR stream, a pointer (to a pointer to the type + you're implementing), and the size of the type + (typically a C structure). On encoding, it returns 1 if + * p is a null pointer. The size + parameter is ignored. On decoding, it returns 1 if the type is found in + the data stream. size bytes of memory are allocated, + and *p is set to point to this space. + odr_sequence_end() is called at the end of the + complex function. Assume that a type is defined like this: +

+MySequence ::= SEQUENCE {
+     intval INTEGER,
+     boolval BOOLEAN OPTIONAL
+}
+    

+ The corresponding ODR encoder/decoder function and the associated data + structures could be written like this: +

+typedef struct MySequence
+{
+    int *intval;
+    bool_t *boolval;
+} MySequence;
+     
+int mySequence(ODR o, MySequence **p, int optional, const char *name)
+{
+    if (odr_sequence_begin(o, p, sizeof(**p), name) == 0)
+        return optional && odr_ok(o);
+    return
+        odr_integer(o, &(*p)->intval, 0, "intval") &&
+        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
+        odr_sequence_end(o);
+}
+
+    

+ Note the 1 in the call to odr_bool(), to mark + that the sequence member is optional. + If either of the member types had been tagged, the macros + odr_implicit_tag() or + odr_explicit_tag() + could have been used. + The new function can be used exactly like the standard functions provided + with ODR. It will encode, decode or pretty-print a data value of the + MySequence type. We like to name types with an + initial capital, as done in ASN.1 definitions, and to name the + corresponding function with the first character of the name in lower case. + You could, of course, name your structures, types, and functions any way + you please - as long as you're consistent, and your code is easily readable. + odr_ok is just that - a predicate that returns the + state of the stream. It is used to ensure that the behavior of the new + type is compatible with the interface of the primitive types. +

3.4. Tagging Constructed Types

Note

+ See Section 3.2, “Tagging Primitive Types” for information on how to tag + the primitive types, as well as types that are already defined. +

3.4.1. Implicit Tagging

+ Assume the type above had been defined as +

+MySequence ::= [10] IMPLICIT SEQUENCE {
+      intval INTEGER,
+      boolval BOOLEAN OPTIONAL
+}
+     

+ You would implement this in ODR by calling the function +

+int odr_implicit_settag(ODR o, int class, int tag);
+     

+ which overrides the tag of the type immediately following it. The + macro odr_implicit_tag() works by calling + odr_implicit_settag() immediately + before calling the function pointer argument. + Your type function could look like this: +

+int mySequence(ODR o, MySequence **p, int optional, const char *name)
+{
+    if (odr_implicit_settag(o, ODR_CONTEXT, 10) == 0 ||
+        odr_sequence_begin(o, p, sizeof(**p), name) == 0)
+        return optional && odr_ok(o);
+    return
+        odr_integer(o, &(*p)->intval, 0, "intval") &&
+        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
+        odr_sequence_end(o);
+}
+     

+ The definition of the structure MySequence would be + the same. +

3.4.2. Explicit Tagging

+ Explicit tagging of constructed types is a little more complicated, + since you are in effect adding a level of construction to the data. +

+ Assume the definition: +

+MySequence ::= [10] IMPLICIT SEQUENCE {
+   intval INTEGER,
+   boolval BOOLEAN OPTIONAL
+}
+     

+ Since the new type has an extra level of construction, two new functions + are needed to encapsulate the base type: +

+int odr_constructed_begin(ODR o, void *p, int class, int tag,
+                          const char *name);
+
+int odr_constructed_end(ODR o);
+     

+ Assume that the IMPLICIT in the type definition above were replaced + with EXPLICIT (or that the IMPLICIT keyword were simply deleted, which + would be equivalent). The structure definition would look the same, + but the function would look like this: +

+int mySequence(ODR o, MySequence **p, int optional, const char *name)
+{
+    if (odr_constructed_begin(o, p, ODR_CONTEXT, 10, name) == 0)
+        return optional && odr_ok(o);
+    if (o->direction == ODR_DECODE)
+        *p = odr_malloc(o, sizeof(**p));
+    if (odr_sequence_begin(o, p, sizeof(**p), 0) == 0)
+    {
+        *p = 0; /* this is almost certainly a protocol error */
+        return 0;
+    }
+    return
+        odr_integer(o, &(*p)->intval, 0, "intval") &&
+        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
+        odr_sequence_end(o) &&
+        odr_constructed_end(o);
+}
+     

+ Notice that the interface here gets kind of nasty. The reason is + simple: Explicitly tagged, constructed types are fairly rare in + the protocols that we care about, so the + esthetic annoyance (not to mention the dangers of a cluttered + interface) is less than the time that would be required to develop a + better interface. Nevertheless, it is far from satisfying, and it's a + point that will be worked on in the future. One option for you would + be to simply apply the odr_explicit_tag() macro to + the first function, and not + have to worry about odr_constructed_* yourself. + Incidentally, as you might have guessed, the + odr_sequence_ functions are themselves + implemented using the /odr_constructed_ functions. +

3.5. SEQUENCE OF

+ To handle sequences (arrays) of a specific type, the function +

+int odr_sequence_of(ODR o, int (*fun)(ODR o, void *p, int optional),
+                    void *p, int *num, const char *name);
+    

+ The fun parameter is a pointer to the decoder/encoder + function of the type. p is a pointer to an array of + pointers to your type. num is the number of elements + in the array. +

+ Assume a type +

+MyArray ::= SEQUENCE OF INTEGER
+    

+ The C representation might be +

+typedef struct MyArray
+{
+    int num_elements;
+    int **elements;
+} MyArray;
+    

+ And the function might look like +

+int myArray(ODR o, MyArray **p, int optional, const char *name)
+{
+    if (o->direction == ODR_DECODE)
+        *p = odr_malloc(o, sizeof(**p));
+    if (odr_sequence_of(o, odr_integer, &(*p)->elements,
+        &(*p)->num_elements, name))
+        return 1;
+    *p = 0;
+        return optional && odr_ok(o);
+}
+    

3.6. CHOICE Types

+ The choice type is used fairly often in some ASN.1 definitions, so + some work has gone into streamlining its interface. +

+ CHOICE types are handled by the function: +

+int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp,
+               const char *name);
+    

+ The arm array is used to describe each of the possible + types that the CHOICE type may assume. Internally in your application, + the CHOICE type is represented as a discriminated union. That is, a + C union accompanied by an integer (or enum) identifying the active + 'arm' of the union. + whichp is a pointer to the union discriminator. + When encoding, it is examined to determine the current type. + When decoding, it is set to reference the type that was found in + the input stream. +

+ The Odr_arm type is defined thus: +

+typedef struct odr_arm
+{
+    int tagmode;
+    int class;
+    int tag;
+    int which;
+    Odr_fun fun;
+    char *name;
+} Odr_arm;
+    

+ The interpretation of the fields are: +

tagmode

Either ODR_IMPLICIT, + ODR_EXPLICIT, or ODR_NONE (-1) + to mark no tagging.

which

The value of the discriminator that corresponds to + this CHOICE element. Typically, it will be a #defined constant, or + an enum member.

fun

A pointer to a function that implements the type of + the CHOICE member. It may be either a standard ODR type or a type + defined by yourself.

name

Name of tag.

+ A handy way to prepare the array for use by the + odr_choice() function is to + define it as a static, initialized array in the beginning of your + decoding/encoding function. Assume the type definition: +

+MyChoice ::= CHOICE {
+    untagged INTEGER,
+    tagged   [99] IMPLICIT INTEGER,
+    other    BOOLEAN
+}
+    

+ Your C type might look like +

+typedef struct MyChoice
+{
+    enum
+    {
+        MyChoice_untagged,
+        MyChoice_tagged,
+        MyChoice_other
+    } which;
+    union
+    {
+        int *untagged;
+        int *tagged;
+        bool_t *other;
+    } u;
+};
+    

+ And your function could look like this: +

+int myChoice(ODR o, MyChoice **p, int optional, const char *name)
+{
+    static Odr_arm arm[] =
+    {
+      {-1, -1, -1, MyChoice_untagged, odr_integer, "untagged"},
+      {ODR_IMPLICIT, ODR_CONTEXT, 99, MyChoice_tagged, odr_integer,
+      "tagged"},
+      {-1, -1, -1, MyChoice_other, odr_boolean, "other"},
+      {-1, -1, -1, -1, 0}
+    };
+
+    if (o->direction == ODR_DECODE)
+        *p = odr_malloc(o, sizeof(**p);
+    else if (!*p)
+        return optional && odr_ok(o);
+
+    if (odr_choice(o, arm, &(*p)->u, &(*p)->which), name)
+        return 1;
+    *p = 0;
+        return optional && odr_ok(o);
+}
+    

+ In some cases (say, a non-optional choice which is a member of a + sequence), you can "embed" the union and its discriminator in the + structure belonging to the enclosing type, and you won't need to + fiddle with memory allocation to create a separate structure to + wrap the discriminator and union. +

+ The corresponding function is somewhat nicer in the Sun XDR interface. + Most of the complexity of this interface comes from the possibility of + declaring sequence elements (including CHOICEs) optional. +

+ The ASN.1 specifications naturally requires that each member of a + CHOICE have a distinct tag, so they can be told apart on decoding. + Sometimes it can be useful to define a CHOICE that has multiple types + that share the same tag. You'll need some other mechanism, perhaps + keyed to the context of the CHOICE type. In effect, we would like to + introduce a level of context-sensitiveness to our ASN.1 specification. + When encoding an internal representation, we have no problem, as long + as each CHOICE member has a distinct discriminator value. For + decoding, we need a way to tell the choice function to look for a + specific arm of the table. The function +

+void odr_choice_bias(ODR o, int what);
+    

+ provides this functionality. When called, it leaves a notice for the next + call to odr_choice() to be called on the decoding + stream o that only the arm entry with + a which field equal to what + should be tried. +

+ The most important application (perhaps the only one, really) is in + the definition of application-specific EXTERNAL encoders/decoders + which will automatically decode an ANY member given the direct or + indirect reference. +

diff --git a/dependencies/yaz-2.1.28/doc/odr.use.html b/dependencies/yaz-2.1.28/doc/odr.use.html new file mode 100644 index 0000000..c22caca --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/odr.use.html @@ -0,0 +1,330 @@ +2. Using ODR

2. Using ODR

2.1. ODR Streams

+ Conceptually, the ODR stream is the source of encoded data in the + decoding mode; when encoding, it is the receptacle for the encoded + data. Before you can use an ODR stream it must be allocated. This is + done with the function +

+     ODR odr_createmem(int direction);
+    

+ The odr_createmem() function takes as argument one + of three manifest constants: ODR_ENCODE, + ODR_DECODE, or ODR_PRINT. + An ODR stream can be in only one mode - it is not possible to change + its mode once it's selected. Typically, your program will allocate + at least two ODR streams - one for decoding, and one for encoding. +

+ When you're done with the stream, you can use +

+     void odr_destroy(ODR o);
+    

+ to release the resources allocated for the stream. +

2.2. Memory Management

+ Two forms of memory management take place in the ODR system. The first + one, which has to do with allocating little bits of memory (sometimes + quite large bits of memory, actually) when a protocol package is + decoded, and turned into a complex of interlinked structures. This + section deals with this system, and how you can use it for your own + purposes. The next section deals with the memory management which is + required when encoding data - to make sure that a large enough buffer is + available to hold the fully encoded PDU. +

+ The ODR module has its own memory management system, which is + used whenever memory is required. Specifically, it is used to allocate + space for data when decoding incoming PDUs. You can use the memory + system for your own purposes, by using the function +

+     void *odr_malloc(ODR o, int size);
+    

+ You can't use the normal free(2) routine to free + memory allocated by this function, and ODR doesn't provide a parallel + function. Instead, you can call +

+     void odr_reset(ODR o, int size);
+    

+ when you are done with the + memory: Everything allocated since the last call to + odr_reset() is released. + The odr_reset() call is also required to clear + up an error condition on a stream. +

+ The function +

+     int odr_total(ODR o);
+    

+ returns the number of bytes allocated on the stream since the last call to + odr_reset(). +

+ The memory subsystem of ODR is fairly efficient at allocating and + releasing little bits of memory. Rather than managing the individual, + small bits of space, the system maintains a free-list of larger chunks + of memory, which are handed out in small bits. This scheme is + generally known as a nibble memory system. + It is very useful for maintaining short-lived constructions such + as protocol PDUs. +

+ If you want to retain a bit of memory beyond the next call to + odr_reset(), you can use the function +

+     ODR_MEM odr_extract_mem(ODR o);
+    

+ This function will give you control of the memory recently allocated + on the ODR stream. The memory will live (past calls to + odr_reset()), until you call the function +

+     void odr_release_mem(ODR_MEM p);
+    

+ The opaque ODR_MEM handle has no other purpose than + referencing the memory block for you until you want to release it. +

+ You can use odr_extract_mem() repeatedly between + allocating data, to retain individual control of separate chunks of data. +

2.3. Encoding and Decoding Data

+ When encoding data, the ODR stream will write the encoded octet string + in an internal buffer. To retrieve the data, use the function +

+     char *odr_getbuf(ODR o, int *len, int *size);
+    

+ The integer pointed to by len is set to the length of the encoded + data, and a pointer to that data is returned. *size + is set to the size of the buffer (unless size is null, + signaling that you are not interested in the size). The next call to + a primitive function using the same ODR stream will overwrite the + data, unless a different buffer has been supplied using the call +

+     void odr_setbuf(ODR o, char *buf, int len, int can_grow);
+    

+ which sets the encoding (or decoding) buffer used by + o to buf, using the length + len. + Before a call to an encoding function, you can use + odr_setbuf() to provide the stream with an encoding + buffer of sufficient size (length). The can_grow + parameter tells the encoding ODR stream whether it is allowed to use + realloc(2) to increase the size of the buffer when + necessary. The default condition of a new encoding stream is equivalent + to the results of calling +

+     odr_setbuf(stream, 0, 0, 1);
+    

+ In this case, the stream will allocate and reallocate memory as + necessary. The stream reallocates memory by repeatedly doubling the + size of the buffer - the result is that the buffer will typically + reach its maximum, working size with only a small number of reallocation + operations. The memory is freed by the stream when the latter is destroyed, + unless it was assigned by the user with the can_grow + parameter set to zero (in this case, you are expected to retain + control of the memory yourself). +

+ To assume full control of an encoded buffer, you must first call + odr_getbuf() to fetch the buffer and its length. + Next, you should call odr_setbuf() to provide a + different buffer (or a null pointer) to the stream. In the simplest + case, you will reuse the same buffer over and over again, and you + will just need to call odr_getbuf() after each + encoding operation to get the length and address of the buffer. + Note that the stream may reallocate the buffer during an encoding + operation, so it is necessary to retrieve the correct address after + each encoding operation. +

+ It is important to realize that the ODR stream will not release this + memory when you call odr_reset(): It will + merely update its internal pointers to prepare for the encoding of a + new data value. + When the stream is released by the odr_destroy() + function, the memory given to it by odr_setbuf will + be released only if the can_grow + parameter to odr_setbuf() was nonzero. The + can_grow parameter, in other words, is a way of + signaling who is to own the buffer, you or the ODR stream. If you never call + odr_setbuf() on your encoding stream, which is + typically the case, the buffer allocated by the stream will belong to + the stream by default. +

+ When you wish to decode data, you should first call + odr_setbuf(), to tell the decoding stream + where to find the encoded data, and how long the buffer is + (the can_grow parameter is ignored by a decoding + stream). After this, you can call the function corresponding to the + data you wish to decode (eg, odr_integer() odr + z_APDU()). +

Example 9.1. Encoding and decoding functions

+      int odr_integer(ODR o, int **p, int optional, const char *name);
+      
+      int z_APDU(ODR o, Z_APDU **p, int optional, const char *name);
+     

+ If the data is absent (or doesn't match the tag corresponding to + the type), the return value will be either 0 or 1 depending on the + optional flag. If optional + is 0 and the data is absent, an error flag will be raised in the + stream, and you'll need to call odr_reset() before + you can use the stream again. If optional is + nonzero, the pointer pointed to/ by + p will be set to the null value, and the function + will return 1. + The name argument is used to pretty-print the + tag in question. It may be set to NULL if + pretty-printing is not desired. +

+ If the data value is found where it's expected, the pointer + pointed to by the p argument + will be set to point to the decoded type. + The space for the type will be allocated and owned by the ODR + stream, and it will live until you call + odr_reset() on the stream. You cannot use + free(2) to release the memory. + You can decode several data elements (by repeated calls to + odr_setbuf() and your decoding function), and + new memory will be allocated each time. When you do call + odr_reset(), everything decoded since the + last call to odr_reset() will be released. +

Example 9.2. Encoding and decoding of an integer

+ The use of the double indirection can be a little confusing at first + (its purpose will become clear later on, hopefully), + so an example is in order. We'll encode an integer value, and + immediately decode it again using a different stream. A useless, but + informative operation. +

+void do_nothing_useful(int value)
+{
+    ODR encode, decode;
+    int *valp, *resvalp;
+    char *bufferp;
+    int len;
+     
+    /* allocate streams */
+    if (!(encode = odr_createmem(ODR_ENCODE)))
+        return;
+    if (!(decode = odr_createmem(ODR_DECODE)))
+        return;
+
+    valp = &amp;value;
+    if (odr_integer(encode, &amp;valp, 0, 0) == 0)
+    {
+        printf("encoding went bad\n");
+        return;
+    }
+    bufferp = odr_getbuf(encode, &amp;len);
+    printf("length of encoded data is &percnt;d\n", len);
+
+    /* now let's decode the thing again */
+    odr_setbuf(decode, bufferp, len);
+    if (odr_integer(decode, &amp;resvalp, 0, 0) == 0)
+    {
+        printf("decoding went bad\n");
+        return;
+    }
+    printf("the value is &percnt;d\n", *resvalp);
+
+    /* clean up */
+    odr_destroy(encode);
+    odr_destroy(decode);
+}
+
+     

+ This looks like a lot of work, offhand. In practice, the ODR streams + will typically be allocated once, in the beginning of your program + (or at the beginning of a new network session), and the encoding + and decoding will only take place in a few, isolated places in your + program, so the overhead is quite manageable. +


2.4. Printing

+ When an ODR stream is created of type ODR_PRINT + the ODR module will print the contents of a PDU in a readable format. + By default output is written to the stderr stream. + This behavior can be changed, however, by calling the function +

+      odr_setprint(ODR o, FILE *file);
+     

+ before encoders or decoders are being invoked. + It is also possible to direct the output to a buffer (of indeed + another file), by using the more generic mechanism: +

+      void odr_set_stream(ODR o, void *handle,
+                         void (*stream_write)(ODR o, void *handle, int type,
+                                              const char *buf, int len),
+                         void (*stream_close)(void *handle));
+     

+ Here the user provides an opaque handle and two handlers, + stream_write for writing, + and stream_close which is supposed + to close/free resources associated with handle. + The stream_close handler is optional and + if NULL for the function is provided, it will not be invoked. + The stream_write takes the ODR handle + as parameter, the user defined handle, a type + ODR_OCTETSTRING, ODR_VISIBLESTRING + which indicates the type of contents is being written. +

+ Another utility useful for diagnostics (error handling) or as + part of the printing facilities is: +

+      const char **odr_get_element_path(ODR o);
+     

+ which returns a list of current elements that ODR deals with at the + moment. For the returned array, say ar, + ar[0] is the top level element, + ar[n] is the last. The last element has the + property that ar[n+1] == NULL. +

Example 9.3. Element Path for record

+ For a database record part of a PresentResponse the + array returned by odr_get_element + is presentResponse, databaseOrSurDiagnostics, ?, record, ?, databaseRecord . The question mark appears due to + unnamed constructions. +


2.5. Diagnostics

+ The encoding/decoding functions all return 0 when an error occurs. + Until you call odr_reset(), you cannot use the + stream again, and any function called will immediately return 0. +

+ To provide information to the programmer or administrator, the function +

+     void odr_perror(ODR o, char *message);
+    

+ is provided, which prints the message argument to + stderr along with an error message from the stream. +

+ You can also use the function +

+     int odr_geterror(ODR o);
+    

+ to get the current error number from the screen. The number will be + one of these constants: +

Table 9.1. ODR Error codes

codeDescription
OMEMORYMemory allocation failed.
OSYSERRA system- or library call has failed. + The standard diagnostic variable errno should be + examined to determine the actual error.
OSPACENo more space for encoding. + This will only occur when the user has explicitly provided a + buffer for an encoding stream without allowing the system to + allocate more space.
OREQUIREDThis is a common protocol error; A + required data element was missing during encoding or decoding.
OUNEXPECTEDAn unexpected data element was + found during decoding.
OOTHEROther error. This is typically an + indication of misuse of the ODR system by the programmer, and also + that the diagnostic system isn't as good as it should be, yet.

+ The character string array +

+     char *odr_errlist[]
+    

+ can be indexed by the error code to obtain a human-readable + representation of the problem. +

2.6. Summary and Synopsis

+     #include <odr.h>
+
+     ODR odr_createmem(int direction);
+
+     void odr_destroy(ODR o);
+
+     void odr_reset(ODR o);
+
+     char *odr_getbuf(ODR o, int *len);
+
+     void odr_setbuf(ODR o, char *buf, int len);
+
+     void *odr_malloc(ODR o, int size);
+
+     ODR_MEM odr_extract_mem(ODR o);
+
+     void odr_release_mem(ODR_MEM r);
+
+     int odr_geterror(ODR o);
+
+     void odr_perror(char *message);
+
+     extern char *odr_errlist[];
+    
diff --git a/dependencies/yaz-2.1.28/doc/odr.xml b/dependencies/yaz-2.1.28/doc/odr.xml new file mode 100644 index 0000000..7ab0e02 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/odr.xml @@ -0,0 +1,1305 @@ + + The ODR Module + + Introduction + + + &odr; is the BER-encoding/decoding subsystem of &yaz;. Care as been taken + to isolate &odr; from the rest of the package - specifically from the + transport interface. &odr; may be used in any context where basic + ASN.1/BER representations are used. + + + + If you are only interested in writing a Z39.50 implementation based on + the PDUs that are already provided with &yaz;, you only need to concern + yourself with the section on managing ODR streams + (). Only if you need to + implement ASN.1 beyond that which has been provided, should you + worry about the second half of the documentation + (). + If you use one of the higher-level interfaces, you can skip this + section entirely. + + + + This is important, so we'll repeat it for emphasis: You do + not need to read + to implement Z39.50 with &yaz;. + + + + If you need a part of the protocol that isn't already in &yaz;, you + should contact the authors before going to work on it yourself: We + might already be working on it. Conversely, if you implement a useful + part of the protocol before us, we'd be happy to include it in a + future release. + + + + Using ODR + + ODR Streams + + + Conceptually, the ODR stream is the source of encoded data in the + decoding mode; when encoding, it is the receptacle for the encoded + data. Before you can use an ODR stream it must be allocated. This is + done with the function + + + + ODR odr_createmem(int direction); + + + + The odr_createmem() function takes as argument one + of three manifest constants: ODR_ENCODE, + ODR_DECODE, or ODR_PRINT. + An &odr; stream can be in only one mode - it is not possible to change + its mode once it's selected. Typically, your program will allocate + at least two ODR streams - one for decoding, and one for encoding. + + + + When you're done with the stream, you can use + + + + void odr_destroy(ODR o); + + + + to release the resources allocated for the stream. + + + + Memory Management + + + Two forms of memory management take place in the &odr; system. The first + one, which has to do with allocating little bits of memory (sometimes + quite large bits of memory, actually) when a protocol package is + decoded, and turned into a complex of interlinked structures. This + section deals with this system, and how you can use it for your own + purposes. The next section deals with the memory management which is + required when encoding data - to make sure that a large enough buffer is + available to hold the fully encoded PDU. + + + + The &odr; module has its own memory management system, which is + used whenever memory is required. Specifically, it is used to allocate + space for data when decoding incoming PDUs. You can use the memory + system for your own purposes, by using the function + + + + void *odr_malloc(ODR o, int size); + + + + You can't use the normal free(2) routine to free + memory allocated by this function, and &odr; doesn't provide a parallel + function. Instead, you can call + + + + void odr_reset(ODR o, int size); + + + + when you are done with the + memory: Everything allocated since the last call to + odr_reset() is released. + The odr_reset() call is also required to clear + up an error condition on a stream. + + + + The function + + + + int odr_total(ODR o); + + + + returns the number of bytes allocated on the stream since the last call to + odr_reset(). + + + + The memory subsystem of &odr; is fairly efficient at allocating and + releasing little bits of memory. Rather than managing the individual, + small bits of space, the system maintains a free-list of larger chunks + of memory, which are handed out in small bits. This scheme is + generally known as a nibble memory system. + It is very useful for maintaining short-lived constructions such + as protocol PDUs. + + + + If you want to retain a bit of memory beyond the next call to + odr_reset(), you can use the function + + + + ODR_MEM odr_extract_mem(ODR o); + + + + This function will give you control of the memory recently allocated + on the ODR stream. The memory will live (past calls to + odr_reset()), until you call the function + + + + void odr_release_mem(ODR_MEM p); + + + + The opaque ODR_MEM handle has no other purpose than + referencing the memory block for you until you want to release it. + + + + You can use odr_extract_mem() repeatedly between + allocating data, to retain individual control of separate chunks of data. + + + + Encoding and Decoding Data + + + When encoding data, the ODR stream will write the encoded octet string + in an internal buffer. To retrieve the data, use the function + + + + char *odr_getbuf(ODR o, int *len, int *size); + + + + The integer pointed to by len is set to the length of the encoded + data, and a pointer to that data is returned. *size + is set to the size of the buffer (unless size is null, + signaling that you are not interested in the size). The next call to + a primitive function using the same &odr; stream will overwrite the + data, unless a different buffer has been supplied using the call + + + + void odr_setbuf(ODR o, char *buf, int len, int can_grow); + + + + which sets the encoding (or decoding) buffer used by + o to buf, using the length + len. + Before a call to an encoding function, you can use + odr_setbuf() to provide the stream with an encoding + buffer of sufficient size (length). The can_grow + parameter tells the encoding &odr; stream whether it is allowed to use + realloc(2) to increase the size of the buffer when + necessary. The default condition of a new encoding stream is equivalent + to the results of calling + + + + odr_setbuf(stream, 0, 0, 1); + + + + In this case, the stream will allocate and reallocate memory as + necessary. The stream reallocates memory by repeatedly doubling the + size of the buffer - the result is that the buffer will typically + reach its maximum, working size with only a small number of reallocation + operations. The memory is freed by the stream when the latter is destroyed, + unless it was assigned by the user with the can_grow + parameter set to zero (in this case, you are expected to retain + control of the memory yourself). + + + + To assume full control of an encoded buffer, you must first call + odr_getbuf() to fetch the buffer and its length. + Next, you should call odr_setbuf() to provide a + different buffer (or a null pointer) to the stream. In the simplest + case, you will reuse the same buffer over and over again, and you + will just need to call odr_getbuf() after each + encoding operation to get the length and address of the buffer. + Note that the stream may reallocate the buffer during an encoding + operation, so it is necessary to retrieve the correct address after + each encoding operation. + + + + It is important to realize that the ODR stream will not release this + memory when you call odr_reset(): It will + merely update its internal pointers to prepare for the encoding of a + new data value. + When the stream is released by the odr_destroy() + function, the memory given to it by odr_setbuf will + be released only if the can_grow + parameter to odr_setbuf() was nonzero. The + can_grow parameter, in other words, is a way of + signaling who is to own the buffer, you or the ODR stream. If you never call + odr_setbuf() on your encoding stream, which is + typically the case, the buffer allocated by the stream will belong to + the stream by default. + + + + When you wish to decode data, you should first call + odr_setbuf(), to tell the decoding stream + where to find the encoded data, and how long the buffer is + (the can_grow parameter is ignored by a decoding + stream). After this, you can call the function corresponding to the + data you wish to decode (eg, odr_integer() odr + z_APDU()). + + + Encoding and decoding functions + + int odr_integer(ODR o, int **p, int optional, const char *name); + + int z_APDU(ODR o, Z_APDU **p, int optional, const char *name); + + + + + If the data is absent (or doesn't match the tag corresponding to + the type), the return value will be either 0 or 1 depending on the + optional flag. If optional + is 0 and the data is absent, an error flag will be raised in the + stream, and you'll need to call odr_reset() before + you can use the stream again. If optional is + nonzero, the pointer pointed to/ by + p will be set to the null value, and the function + will return 1. + The name argument is used to pretty-print the + tag in question. It may be set to NULL if + pretty-printing is not desired. + + + + If the data value is found where it's expected, the pointer + pointed to by the p argument + will be set to point to the decoded type. + The space for the type will be allocated and owned by the &odr; + stream, and it will live until you call + odr_reset() on the stream. You cannot use + free(2) to release the memory. + You can decode several data elements (by repeated calls to + odr_setbuf() and your decoding function), and + new memory will be allocated each time. When you do call + odr_reset(), everything decoded since the + last call to odr_reset() will be released. + + + Encoding and decoding of an integer + + The use of the double indirection can be a little confusing at first + (its purpose will become clear later on, hopefully), + so an example is in order. We'll encode an integer value, and + immediately decode it again using a different stream. A useless, but + informative operation. + + + + + This looks like a lot of work, offhand. In practice, the &odr; streams + will typically be allocated once, in the beginning of your program + (or at the beginning of a new network session), and the encoding + and decoding will only take place in a few, isolated places in your + program, so the overhead is quite manageable. + + + + + + Printing + + When an ODR stream is created of type ODR_PRINT + the ODR module will print the contents of a PDU in a readable format. + By default output is written to the stderr stream. + This behavior can be changed, however, by calling the function + + odr_setprint(ODR o, FILE *file); + + before encoders or decoders are being invoked. + It is also possible to direct the output to a buffer (of indeed + another file), by using the more generic mechanism: + + void odr_set_stream(ODR o, void *handle, + void (*stream_write)(ODR o, void *handle, int type, + const char *buf, int len), + void (*stream_close)(void *handle)); + + Here the user provides an opaque handle and two handlers, + stream_write for writing, + and stream_close which is supposed + to close/free resources associated with handle. + The stream_close handler is optional and + if NULL for the function is provided, it will not be invoked. + The stream_write takes the ODR handle + as parameter, the user defined handle, a type + ODR_OCTETSTRING, ODR_VISIBLESTRING + which indicates the type of contents is being written. + + + Another utility useful for diagnostics (error handling) or as + part of the printing facilities is: + + const char **odr_get_element_path(ODR o); + + which returns a list of current elements that ODR deals with at the + moment. For the returned array, say ar, + ar[0] is the top level element, + ar[n] is the last. The last element has the + property that ar[n+1] == NULL. + + + Element Path for record + + For a database record part of a PresentResponse the + array returned by odr_get_element + is presentResponse, databaseOrSurDiagnostics, ?, record, ?, databaseRecord . The question mark appears due to + unnamed constructions. + + + + Diagnostics + + + The encoding/decoding functions all return 0 when an error occurs. + Until you call odr_reset(), you cannot use the + stream again, and any function called will immediately return 0. + + + + To provide information to the programmer or administrator, the function + + + + void odr_perror(ODR o, char *message); + + + + is provided, which prints the message argument to + stderr along with an error message from the stream. + + + + You can also use the function + + + + int odr_geterror(ODR o); + + + + to get the current error number from the screen. The number will be + one of these constants: + + + ODR Error codes + + + + code + Description + + + + + OMEMORYMemory allocation failed. + + + + OSYSERRA system- or library call has failed. + The standard diagnostic variable errno should be + examined to determine the actual error. + + + + OSPACENo more space for encoding. + This will only occur when the user has explicitly provided a + buffer for an encoding stream without allowing the system to + allocate more space. + + + + OREQUIREDThis is a common protocol error; A + required data element was missing during encoding or decoding. + + + + OUNEXPECTEDAn unexpected data element was + found during decoding. + + + OOTHEROther error. This is typically an + indication of misuse of the &odr; system by the programmer, and also + that the diagnostic system isn't as good as it should be, yet. + + + +
+ + + The character string array + + + + char *odr_errlist[] + + + + can be indexed by the error code to obtain a human-readable + representation of the problem. + + +
+ Summary and Synopsis + + + #include <odr.h> + + ODR odr_createmem(int direction); + + void odr_destroy(ODR o); + + void odr_reset(ODR o); + + char *odr_getbuf(ODR o, int *len); + + void odr_setbuf(ODR o, char *buf, int len); + + void *odr_malloc(ODR o, int size); + + ODR_MEM odr_extract_mem(ODR o); + + void odr_release_mem(ODR_MEM r); + + int odr_geterror(ODR o); + + void odr_perror(char *message); + + extern char *odr_errlist[]; + + + +
+ + Programming with ODR + + + The API of &odr; is designed to reflect the structure of ASN.1, rather + than BER itself. Future releases may be able to represent data in + other external forms. + + + + + There is an ASN.1 tutorial available at + this site. + This site also has standards for ASN.1 (X.680) and BER (X.690) + online. + + + + + The ODR interface is based loosely on that of the Sun Microsystems + XDR routines. + Specifically, each function which corresponds to an ASN.1 primitive + type has a dual function. Depending on the settings of the ODR + stream which is supplied as a parameter, the function may be used + either to encode or decode data. The functions that can be built + using these primitive functions, to represent more complex data types, + share this quality. The result is that you only have to enter the + definition for a type once - and you have the functionality of encoding, + decoding (and pretty-printing) all in one unit. + The resulting C source code is quite compact, and is a pretty + straightforward representation of the source ASN.1 specification. + + + + In many cases, the model of the XDR functions works quite well in this + role. + In others, it is less elegant. Most of the hassle comes from the optional + SEQUENCE members which don't exist in XDR. + + + The Primitive ASN.1 Types + + + ASN.1 defines a number of primitive types (many of which correspond + roughly to primitive types in structured programming languages, such as C). + + + INTEGER + + + The &odr; function for encoding or decoding (or printing) the ASN.1 + INTEGER type looks like this: + + + + int odr_integer(ODR o, int **p, int optional, const char *name); + + + + (we don't allow values that can't be contained in a C integer.) + + + + This form is typical of the primitive &odr; functions. They are named + after the type of data that they encode or decode. They take an &odr; + stream, an indirect reference to the type in question, and an + optional flag (corresponding to the OPTIONAL keyword + of ASN.1) as parameters. They all return an integer value of either one + or zero. + When you use the primitive functions to construct encoders for complex + types of your own, you should follow this model as well. This + ensures that your new types can be reused as elements in yet more + complex types. + + + + The o parameter should obviously refer to a properly + initialized &odr; stream of the right type (encoding/decoding/printing) + for the operation that you wish to perform. + + + + When encoding or printing, the function first looks at + * p. If * p (the pointer pointed + to by p) is a null pointer, this is taken to mean that + the data element is absent. If the optional parameter + is nonzero, the function will return one (signifying success) without + any further processing. If the optional is zero, an + internal error flag is set in the &odr; stream, and the function will + return 0. No further operations can be carried out on the stream without + a call to the function odr_reset(). + + + + If *p is not a null pointer, it is expected to + point to an instance of the data type. The data will be subjected to + the encoding rules, and the result will be placed in the buffer held + by the &odr; stream. + + + + The other ASN.1 primitives have similar functions that operate in + similar manners: + + + BOOLEAN + + +int odr_bool(ODR o, bool_t **p, int optional, const char *name); + + + + REAL + + + Not defined. + + + + NULL + + +int odr_null(ODR o, bool_t **p, int optional, const char *name); + + + + In this case, the value of **p is not important. If *p + is different from the null pointer, the null value is present, otherwise + it's absent. + + + + OCTET STRING + + +typedef struct odr_oct +{ + unsigned char *buf; + int len; + int size; +} Odr_oct; + +int odr_octetstring(ODR o, Odr_oct **p, int optional, + const char *name); + + + + The buf field should point to the character array + that holds the octetstring. The len field holds the + actual length, while the size field gives the size + of the allocated array (not of interest to you, in most cases). + The character array need not be null terminated. + + + + To make things a little easier, an alternative is given for string + types that are not expected to contain embedded NULL characters (eg. + VisibleString): + + + + int odr_cstring(ODR o, char **p, int optional, const char *name); + + + + Which encoded or decodes between OCTETSTRING representations and + null-terminates C strings. + + + + Functions are provided for the derived string types, eg: + + + +int odr_visiblestring(ODR o, char **p, int optional, + const char *name); + + + + BIT STRING + + +int odr_bitstring(ODR o, Odr_bitmask **p, int optional, + const char *name); + + + + The opaque type Odr_bitmask is only suitable for + holding relatively brief bit strings, eg. for options fields, etc. + The constant ODR_BITMASK_SIZE multiplied by 8 + gives the maximum possible number of bits. + + + + A set of macros are provided for manipulating the + Odr_bitmask type: + + + +void ODR_MASK_ZERO(Odr_bitmask *b); + +void ODR_MASK_SET(Odr_bitmask *b, int bitno); + +void ODR_MASK_CLEAR(Odr_bitmask *b, int bitno); + +int ODR_MASK_GET(Odr_bitmask *b, int bitno); + + + + The functions are modeled after the manipulation functions that + accompany the fd_set type used by the + select(2) call. + ODR_MASK_ZERO should always be called first on a + new bitmask, to initialize the bits to zero. + + + + OBJECT IDENTIFIER + + +int odr_oid(ODR o, Odr_oid **p, int optional, const char *name); + + + + The C OID representation is simply an array of integers, terminated by + the value -1 (the Odr_oid type is synonymous with + the int type). + We suggest that you use the OID database module (see + ) to handle object identifiers + in your application. + + + + + Tagging Primitive Types + + + The simplest way of tagging a type is to use the + odr_implicit_tag() or + odr_explicit_tag() macros: + + + +int odr_implicit_tag(ODR o, Odr_fun fun, int class, int tag, + int optional, const char *name); + +int odr_explicit_tag(ODR o, Odr_fun fun, int class, int tag, + int optional, const char *name); + + + + To create a type derived from the integer type by implicit tagging, you + might write: + + + + MyInt ::= [210] IMPLICIT INTEGER + + + + In the &odr; system, this would be written like: + + + +int myInt(ODR o, int **p, int optional, const char *name) +{ + return odr_implicit_tag(o, odr_integer, p, + ODR_CONTEXT, 210, optional, name); +} + + + + The function myInt() can then be used like any of + the primitive functions provided by &odr;. Note that the behavior of + odr_explicit_tag() + and odr_implicit_tag() macros + act exactly the same as the functions they are applied to - they + respond to error conditions, etc, in the same manner - they + simply have three extra parameters. The class parameter may + take one of the values: ODR_CONTEXT, + ODR_PRIVATE, ODR_UNIVERSAL, or + /ODR_APPLICATION. + + + + Constructed Types + + + Constructed types are created by combining primitive types. The + &odr; system only implements the SEQUENCE and SEQUENCE OF constructions + (although adding the rest of the container types should be simple + enough, if the need arises). + + + + For implementing SEQUENCEs, the functions + + + +int odr_sequence_begin(ODR o, void *p, int size, const char *name); +int odr_sequence_end(ODR o); + + + + are provided. + + + + The odr_sequence_begin() function should be + called in the beginning of a function that implements a SEQUENCE type. + Its parameters are the &odr; stream, a pointer (to a pointer to the type + you're implementing), and the size of the type + (typically a C structure). On encoding, it returns 1 if + * p is a null pointer. The size + parameter is ignored. On decoding, it returns 1 if the type is found in + the data stream. size bytes of memory are allocated, + and *p is set to point to this space. + odr_sequence_end() is called at the end of the + complex function. Assume that a type is defined like this: + + + +MySequence ::= SEQUENCE { + intval INTEGER, + boolval BOOLEAN OPTIONAL +} + + + + The corresponding &odr; encoder/decoder function and the associated data + structures could be written like this: + + + +typedef struct MySequence +{ + int *intval; + bool_t *boolval; +} MySequence; + +int mySequence(ODR o, MySequence **p, int optional, const char *name) +{ + if (odr_sequence_begin(o, p, sizeof(**p), name) == 0) + return optional && odr_ok(o); + return + odr_integer(o, &(*p)->intval, 0, "intval") && + odr_bool(o, &(*p)->boolval, 1, "boolval") && + odr_sequence_end(o); +} + + + + + Note the 1 in the call to odr_bool(), to mark + that the sequence member is optional. + If either of the member types had been tagged, the macros + odr_implicit_tag() or + odr_explicit_tag() + could have been used. + The new function can be used exactly like the standard functions provided + with &odr;. It will encode, decode or pretty-print a data value of the + MySequence type. We like to name types with an + initial capital, as done in ASN.1 definitions, and to name the + corresponding function with the first character of the name in lower case. + You could, of course, name your structures, types, and functions any way + you please - as long as you're consistent, and your code is easily readable. + odr_ok is just that - a predicate that returns the + state of the stream. It is used to ensure that the behavior of the new + type is compatible with the interface of the primitive types. + + + + Tagging Constructed Types + + + + See for information on how to tag + the primitive types, as well as types that are already defined. + + + + Implicit Tagging + + + Assume the type above had been defined as + + + +MySequence ::= [10] IMPLICIT SEQUENCE { + intval INTEGER, + boolval BOOLEAN OPTIONAL +} + + + + You would implement this in &odr; by calling the function + + + +int odr_implicit_settag(ODR o, int class, int tag); + + + + which overrides the tag of the type immediately following it. The + macro odr_implicit_tag() works by calling + odr_implicit_settag() immediately + before calling the function pointer argument. + Your type function could look like this: + + + +int mySequence(ODR o, MySequence **p, int optional, const char *name) +{ + if (odr_implicit_settag(o, ODR_CONTEXT, 10) == 0 || + odr_sequence_begin(o, p, sizeof(**p), name) == 0) + return optional && odr_ok(o); + return + odr_integer(o, &(*p)->intval, 0, "intval") && + odr_bool(o, &(*p)->boolval, 1, "boolval") && + odr_sequence_end(o); +} + + + + The definition of the structure MySequence would be + the same. + + + + Explicit Tagging + + + Explicit tagging of constructed types is a little more complicated, + since you are in effect adding a level of construction to the data. + + + + Assume the definition: + + + +MySequence ::= [10] IMPLICIT SEQUENCE { + intval INTEGER, + boolval BOOLEAN OPTIONAL +} + + + + Since the new type has an extra level of construction, two new functions + are needed to encapsulate the base type: + + + +int odr_constructed_begin(ODR o, void *p, int class, int tag, + const char *name); + +int odr_constructed_end(ODR o); + + + + Assume that the IMPLICIT in the type definition above were replaced + with EXPLICIT (or that the IMPLICIT keyword were simply deleted, which + would be equivalent). The structure definition would look the same, + but the function would look like this: + + + +int mySequence(ODR o, MySequence **p, int optional, const char *name) +{ + if (odr_constructed_begin(o, p, ODR_CONTEXT, 10, name) == 0) + return optional && odr_ok(o); + if (o->direction == ODR_DECODE) + *p = odr_malloc(o, sizeof(**p)); + if (odr_sequence_begin(o, p, sizeof(**p), 0) == 0) + { + *p = 0; /* this is almost certainly a protocol error */ + return 0; + } + return + odr_integer(o, &(*p)->intval, 0, "intval") && + odr_bool(o, &(*p)->boolval, 1, "boolval") && + odr_sequence_end(o) && + odr_constructed_end(o); +} + + + + Notice that the interface here gets kind of nasty. The reason is + simple: Explicitly tagged, constructed types are fairly rare in + the protocols that we care about, so the + esthetic annoyance (not to mention the dangers of a cluttered + interface) is less than the time that would be required to develop a + better interface. Nevertheless, it is far from satisfying, and it's a + point that will be worked on in the future. One option for you would + be to simply apply the odr_explicit_tag() macro to + the first function, and not + have to worry about odr_constructed_* yourself. + Incidentally, as you might have guessed, the + odr_sequence_ functions are themselves + implemented using the /odr_constructed_ functions. + + + + + SEQUENCE OF + + + To handle sequences (arrays) of a specific type, the function + + + +int odr_sequence_of(ODR o, int (*fun)(ODR o, void *p, int optional), + void *p, int *num, const char *name); + + + + The fun parameter is a pointer to the decoder/encoder + function of the type. p is a pointer to an array of + pointers to your type. num is the number of elements + in the array. + + + + Assume a type + + + +MyArray ::= SEQUENCE OF INTEGER + + + + The C representation might be + + + +typedef struct MyArray +{ + int num_elements; + int **elements; +} MyArray; + + + + And the function might look like + + + +int myArray(ODR o, MyArray **p, int optional, const char *name) +{ + if (o->direction == ODR_DECODE) + *p = odr_malloc(o, sizeof(**p)); + if (odr_sequence_of(o, odr_integer, &(*p)->elements, + &(*p)->num_elements, name)) + return 1; + *p = 0; + return optional && odr_ok(o); +} + + + + CHOICE Types + + + The choice type is used fairly often in some ASN.1 definitions, so + some work has gone into streamlining its interface. + + + + CHOICE types are handled by the function: + + + +int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, + const char *name); + + + + The arm array is used to describe each of the possible + types that the CHOICE type may assume. Internally in your application, + the CHOICE type is represented as a discriminated union. That is, a + C union accompanied by an integer (or enum) identifying the active + 'arm' of the union. + whichp is a pointer to the union discriminator. + When encoding, it is examined to determine the current type. + When decoding, it is set to reference the type that was found in + the input stream. + + + + The Odr_arm type is defined thus: + + + +typedef struct odr_arm +{ + int tagmode; + int class; + int tag; + int which; + Odr_fun fun; + char *name; +} Odr_arm; + + + + The interpretation of the fields are: + + + + tagmode + Either ODR_IMPLICIT, + ODR_EXPLICIT, or ODR_NONE (-1) + to mark no tagging. + + + which + The value of the discriminator that corresponds to + this CHOICE element. Typically, it will be a #defined constant, or + an enum member. + + + fun + A pointer to a function that implements the type of + the CHOICE member. It may be either a standard &odr; type or a type + defined by yourself. + + + name + Name of tag. + + + + + A handy way to prepare the array for use by the + odr_choice() function is to + define it as a static, initialized array in the beginning of your + decoding/encoding function. Assume the type definition: + + + +MyChoice ::= CHOICE { + untagged INTEGER, + tagged [99] IMPLICIT INTEGER, + other BOOLEAN +} + + + + Your C type might look like + + + +typedef struct MyChoice +{ + enum + { + MyChoice_untagged, + MyChoice_tagged, + MyChoice_other + } which; + union + { + int *untagged; + int *tagged; + bool_t *other; + } u; +}; + + + + And your function could look like this: + + + +int myChoice(ODR o, MyChoice **p, int optional, const char *name) +{ + static Odr_arm arm[] = + { + {-1, -1, -1, MyChoice_untagged, odr_integer, "untagged"}, + {ODR_IMPLICIT, ODR_CONTEXT, 99, MyChoice_tagged, odr_integer, + "tagged"}, + {-1, -1, -1, MyChoice_other, odr_boolean, "other"}, + {-1, -1, -1, -1, 0} + }; + + if (o->direction == ODR_DECODE) + *p = odr_malloc(o, sizeof(**p); + else if (!*p) + return optional && odr_ok(o); + + if (odr_choice(o, arm, &(*p)->u, &(*p)->which), name) + return 1; + *p = 0; + return optional && odr_ok(o); +} + + + + In some cases (say, a non-optional choice which is a member of a + sequence), you can "embed" the union and its discriminator in the + structure belonging to the enclosing type, and you won't need to + fiddle with memory allocation to create a separate structure to + wrap the discriminator and union. + + + + The corresponding function is somewhat nicer in the Sun XDR interface. + Most of the complexity of this interface comes from the possibility of + declaring sequence elements (including CHOICEs) optional. + + + + The ASN.1 specifications naturally requires that each member of a + CHOICE have a distinct tag, so they can be told apart on decoding. + Sometimes it can be useful to define a CHOICE that has multiple types + that share the same tag. You'll need some other mechanism, perhaps + keyed to the context of the CHOICE type. In effect, we would like to + introduce a level of context-sensitiveness to our ASN.1 specification. + When encoding an internal representation, we have no problem, as long + as each CHOICE member has a distinct discriminator value. For + decoding, we need a way to tell the choice function to look for a + specific arm of the table. The function + + + +void odr_choice_bias(ODR o, int what); + + + + provides this functionality. When called, it leaves a notice for the next + call to odr_choice() to be called on the decoding + stream o that only the arm entry with + a which field equal to what + should be tried. + + + + The most important application (perhaps the only one, really) is in + the definition of application-specific EXTERNAL encoders/decoders + which will automatically decode an ANY member given the direct or + indirect reference. + + + + + + Debugging + + + The protocol modules are suffering somewhat from a lack of diagnostic + tools at the moment. Specifically ways to pretty-print PDUs that + aren't recognized by the system. We'll include something to this end + in a not-too-distant release. In the meantime, what we do when we get + packages we don't understand is to compile the ODR module with + ODR_DEBUG defined. This causes the module to dump tracing + information as it processes data units. With this output and the + protocol specification (Z39.50), it is generally fairly easy to see + what goes wrong. + + +
+ diff --git a/dependencies/yaz-2.1.28/doc/server.backend.html b/dependencies/yaz-2.1.28/doc/server.backend.html new file mode 100644 index 0000000..fa9956e --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.backend.html @@ -0,0 +1,11 @@ +3. The Backend API

3. The Backend API

+ The header file that you need to use the interface are in the + include/yaz directory. It's called + backend.h. It will include other files from + the include/yaz directory, so you'll + probably want to use the -I option of your compiler to tell it + where to find the files. When you run + make in the top-level YAZ directory, + everything you need to create your server is to link with the + lib/libyaz.la library. +

diff --git a/dependencies/yaz-2.1.28/doc/server.backendfunctions.html b/dependencies/yaz-2.1.28/doc/server.backendfunctions.html new file mode 100644 index 0000000..ffe2c91 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.backendfunctions.html @@ -0,0 +1,334 @@ +5. The Backend Functions

5. The Backend Functions

+ For each service of the protocol, the backend interface declares one or + two functions. You are required to provide implementations of the + functions representing the services that you wish to implement. +

5.1. Init

+bend_initresult (*bend_init)(bend_initrequest *r);
+    

+ This handler is called once for each new connection request, after + a new process/thread has been created, and an Initialize Request has + been received from the client. The pointer to the + bend_init handler is passed in the call to + statserv_start. +

+ This handler is also called when operating in SRU mode - when + a connection has been made (even though SRU does not offer + this service). +

+ Unlike previous versions of YAZ, the bend_init also + serves as a handler that defines the Z39.50 services that the backend + wish to support. Pointers to all service handlers, + including search - and fetch must be specified here in this handler. +

+ The request - and result structures are defined as +

+typedef struct bend_initrequest
+{
+    Z_IdAuthentication *auth;
+    ODR stream;                /* encoding stream */
+    ODR print;                 /* printing stream */
+    Z_ReferenceId *referenceId;/* reference ID */
+    char *peer_name;           /* dns host of peer (client) */
+
+    char *implementation_id;
+    char *implementation_name;
+    char *implementation_version;
+    int (*bend_sort) (void *handle, bend_sort_rr *rr);
+    int (*bend_search) (void *handle, bend_search_rr *rr);
+    int (*bend_fetch) (void *handle, bend_fetch_rr *rr);
+    int (*bend_present) (void *handle, bend_present_rr *rr);
+    int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr);
+    int (*bend_delete)(void *handle, bend_delete_rr *rr);
+    int (*bend_scan)(void *handle, bend_scan_rr *rr);
+    int (*bend_segment)(void *handle, bend_segment_rr *rr);
+
+    ODR decode;                 /* decoding stream */
+    /* character set and language negotiation - see include/yaz/z-charneg.h */
+    Z_CharSetandLanguageNegotiation *charneg_request;
+    Z_External *charneg_response;
+    int (*bend_srw_explain)(void *handle, bend_explain_rr *rr);
+    int (*bend_srw_scan)(void *handle, bend_scan_rr *rr);
+} bend_initrequest;
+
+typedef struct bend_initresult
+{
+    int errcode;       /* 0==OK */
+    char *errstring;   /* system error string or NULL */
+    void *handle;      /* private handle to the backend module */
+} bend_initresult;
+    

+ In general, the server frontend expects that the + bend_*result pointer that you return is valid at + least until the next call to a bend_* function. + This applies to all of the functions described herein. The parameter + structure passed to you in the call belongs to the server frontend, and + you should not make assumptions about its contents after the current + function call has completed. In other words, if you want to retain any + of the contents of a request structure, you should copy them. +

+ The errcode should be zero if the initialization of + the backend went well. Any other value will be interpreted as an error. + The errstring isn't used in the current version, but + one option would be to stick it in the initResponse as a VisibleString. + The handle is the most important parameter. It should + be set to some value that uniquely identifies the current session to + the backend implementation. It is used by the frontend server in any + future calls to a backend function. + The typical use is to set it to point to a dynamically allocated state + structure that is private to your backend module. +

+ The auth member holds the authentication information + part of the Z39.50 Initialize Request. Interpret this if your serves + requires authentication. +

+ The members peer_name, + implementation_id, + implementation_name and + implementation_version holds + DNS of client, ID of implementor, name + of client (Z39.50) implementation - and version. +

+ The bend_ - members are set to NULL when + bend_init is called. Modify the pointers by + setting them to point to backend functions. +

5.2. Search and retrieve

We now describe the handlers that are required to support search - + and retrieve. You must support two functions - one for search - and one + for fetch (retrieval of one record). If desirable you can provide a + third handler which is called when a present request is received which + allows you to optimize retrieval of multiple-records. +

+int (*bend_search) (void *handle, bend_search_rr *rr);
+
+typedef struct {
+    char *setname;             /* name to give to this set */
+    int replace_set;           /* replace set, if it already exists */
+    int num_bases;             /* number of databases in list */
+    char **basenames;          /* databases to search */
+    Z_ReferenceId *referenceId;/* reference ID */
+    Z_Query *query;            /* query structure */
+    ODR stream;                /* encode stream */
+    ODR decode;                /* decode stream */
+    ODR print;                 /* print stream */
+
+    bend_request request;
+    bend_association association;
+    int *fd;
+    int hits;                  /* number of hits */
+    int errcode;               /* 0==OK */
+    char *errstring;           /* system error string or NULL */
+    Z_OtherInformation *search_info;
+} bend_search_rr;
+    

+ The bend_search handler is a fairly close + approximation of a protocol Z39.50 Search Request - and Response PDUs + The setname is the resultSetName from the protocol. + You are required to establish a mapping between the set name and whatever + your backend database likes to use. + Similarly, the replace_set is a boolean value + corresponding to the resultSetIndicator field in the protocol. + num_bases/basenames is a length of/array of character + pointers to the database names provided by the client. + The query is the full query structure as defined in + the protocol ASN.1 specification. + It can be either of the possible query types, and it's up to you to + determine if you can handle the provided query type. + Rather than reproduce the C interface here, we'll refer you to the + structure definitions in the file + include/yaz/z-core.h. If you want to look at the + attributeSetId OID of the RPN query, you can either match it against + your own internal tables, or you can use the + oid_getentbyoid function provided by YAZ. +

+ The structure contains a number of hits, and an + errcode/errstring pair. If an error occurs + during the search, or if you're unhappy with the request, you should + set the errcode to a value from the BIB-1 diagnostic set. The value + will then be returned to the user in a nonsurrogate diagnostic record + in the response. The errstring, if provided, will + go in the addinfo field. Look at the protocol definition for the + defined error codes, and the suggested uses of the addinfo field. +

+ The bend_search handler is also called when + the frontend server receives a SRU SearchRetrieveRequest. + For SRU, a CQL query is usually provided by the client. + The CQL query is available as part of Z_Query + structure (note that CQL is now part of Z39.50 via an external). + To support CQL in existing implementations that only do Type-1, + we refer to the CQL-to-PQF tool described + here. +

+ To maintain backwards compatibility, the frontend server + of yaz always assume that error codes are BIB-1 diagnostics. + For SRU operation, a Bib-1 diagnostic code is mapped to + SRU diagnostic. +

+int (*bend_fetch) (void *handle, bend_fetch_rr *rr);
+
+typedef struct bend_fetch_rr {
+    char *setname;             /* set name */
+    int number;                /* record number */
+    Z_ReferenceId *referenceId;/* reference ID */
+    oid_value request_format;  /* One of the CLASS_RECSYN members */
+    int *request_format_raw;   /* same as above (raw OID) */
+    Z_RecordComposition *comp; /* Formatting instructions */
+    ODR stream;                /* encoding stream - memory source if req */
+    ODR print;                 /* printing stream */
+
+    char *basename;            /* name of database that provided record */
+    int len;                   /* length of record or -1 if structured */
+    char *record;              /* record */
+    int last_in_set;           /* is it?  */
+    oid_value output_format;   /* format */
+    int *output_format_raw;    /* used instead of above if not-null */
+    int errcode;               /* 0==success */
+    char *errstring;           /* system error string or NULL */
+    int surrogate_flag;        /* surrogate diagnostic */
+    char *schema;              /* string record schema input/output */
+} bend_fetch_rr;
+    

+ The frontend server calls the bend_fetch handler + when it needs database records to fulfill a Z39.50 Search Request, a + Z39.50 Present Request or a SRU SearchRetrieveRequest. + The setname is simply the name of the result set + that holds the reference to the desired record. + The number is the offset into the set (with 1 + being the first record in the set). The format field + is the record format requested by the client (See + Section 3, “Object Identifiers”). + The value VAL_NONE indicates that the client did + not request a specific format. The stream argument + is an ODR stream which should be used for + allocating space for structured data records. + The stream will be reset when all records have been assembled, and + the response package has been transmitted. + For unstructured data, the backend is responsible for maintaining a + static or dynamic buffer for the record between calls. +

+ If a SRU SearchRetrieveRequest is received by the frontend server, + the referenceId is NULL and the + request_format (transfer syntax) is XML (OID name + VAL_TEXT_XML). + The schema for SRU is stored in both the + Z_RecordComposition + structure and schema (simple string). +

+ In the structure, the basename is the name of the + database that holds the + record. len is the length of the record returned, in + bytes, and record is a pointer to the record. + last_in_set should be nonzero only if the record + returned is the last one in the given result set. + errcode and errstring, if + given, will be interpreted as a global error pertaining to the + set, and will be returned in a non-surrogate-diagnostic. + If you wish to return the error as a surrogate-diagnostic + (local error) you can do this by setting + surrogate_flag to 1 also. +

+ If the len field has the value -1, then + record is assumed to point to a constructed data + type. The format field will be used to determine + which encoder should be used to serialize the data. +

Note

+ If your backend generates structured records, it should use + odr_malloc() on the provided stream for allocating + data: This allows the frontend server to keep track of the record sizes. +

+ The format field is mapped to an object identifier + in the direct reference of the resulting EXTERNAL representation + of the record. +

Note

+ The current version of YAZ only supports the direct reference mode. +

+int (*bend_present) (void *handle, bend_present_rr *rr);
+
+typedef struct {
+    char *setname;             /* set name */
+    int start;
+    int number;                /* record number */
+    oid_value format;          /* One of the CLASS_RECSYN members */
+    Z_ReferenceId *referenceId;/* reference ID */
+    Z_RecordComposition *comp; /* Formatting instructions */
+    ODR stream;                /* encoding stream */
+    ODR print;                 /* printing stream */
+    bend_request request;
+    bend_association association;
+
+    int hits;                  /* number of hits */
+    int errcode;               /* 0==OK */
+    char *errstring;           /* system error string or NULL */
+} bend_present_rr;
+    

+ The bend_present handler is called when + the server receives a Z39.50 Present Request. + The setname, + start and number is the + name of the result set - start position - and number of records to + be retrieved respectively. format and + comp is the preferred transfer syntax and element + specifications of the present request. +

+ Note that this is handler serves as a supplement for + bend_fetch and need not to be defined in order to + support search - and retrieve. +

5.3. Delete

+ For back-ends that supports delete of a result set only one handler + must be defined. +

+int (*bend_delete)(void *handle, bend_delete_rr *rr);
+
+typedef struct bend_delete_rr {
+    int function;
+    int num_setnames;
+    char **setnames;
+    Z_ReferenceId *referenceId;
+    int delete_status;      /* status for the whole operation */
+    int *statuses;          /* status each set - indexed as setnames */
+    ODR stream;
+    ODR print; 
+} bend_delete_rr;
+    

Note

+ The delete set function definition is rather primitive, mostly because + we have had no practical need for it as of yet. If someone wants + to provide a full delete service, we'd be happy to add the + extra parameters that are required. Are there clients out there + that will actually delete sets they no longer need? +

5.4. scan

+ For servers that wish to offer the scan service one handler + must be defined. +

+int (*bend_delete)(void *handle, bend_delete_rr *rr);
+
+typedef enum {
+    BEND_SCAN_SUCCESS,  /* ok */
+    BEND_SCAN_PARTIAL   /* not all entries could be found */
+} bend_scan_status;
+
+typedef struct bend_scan_rr {
+    int num_bases;      /* number of elements in database list */
+    char **basenames;   /* databases to search */
+    oid_value attributeset;
+    Z_ReferenceId *referenceId; /* reference ID */
+    Z_AttributesPlusTerm *term;
+    ODR stream;         /* encoding stream - memory source if required */
+    ODR print;          /* printing stream */
+
+    int *step_size;     /* step size */
+    int term_position;  /* desired index of term in result list/returned */
+    int num_entries;    /* number of entries requested/returned */
+
+    struct scan_entry *entries;
+    bend_scan_status status;
+    int errcode;
+    char *errstring;
+    char *scanClause;   /* CQL scan clause */
+} bend_scan_rr;
+    

+ This backend server handles both Z39.50 scan + and SRU scan. In order for a handler to distinguish between SRU (CQL) scan + Z39.50 Scan , it must check for a non-NULL value of + scanClause. +

Note

+ if designed today, it would be a choice using a union or similar, + but that would break binary compatibility with existing servers. +

diff --git a/dependencies/yaz-2.1.28/doc/server.frontend.html b/dependencies/yaz-2.1.28/doc/server.frontend.html new file mode 100644 index 0000000..4335b21 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.frontend.html @@ -0,0 +1,36 @@ +2. The Database Frontend

2. The Database Frontend

+ We refer to this software as a generic database frontend. Your + database system is the backend database, and the + interface between the two is called the backend API. + The backend API consists of a small number of function handlers and + structure definitions. You are required to provide the + main() routine for the server (which can be + quite simple), as well as a set of handlers to match each of the + prototypes. + The interface functions that you write can use any mechanism you like + to communicate with your database system: You might link the whole + thing together with your database application and access it by + function calls; you might use IPC to talk to a database server + somewhere; or you might link with third-party software that handles + the communication for you (like a commercial database client library). + At any rate, the handlers will perform the tasks of: +

  • + Initialization. +

  • + Searching. +

  • + Fetching records. +

  • + Scanning the database index (optional - if you wish to implement SCAN). +

  • + Extended Services (optional). +

  • + Result-Set Delete (optional). +

  • + Result-Set Sort (optional). +

  • + Return Explain for SRU (optional). +

+ (more functions will be added in time to support as much of + Z39.50-1995 as possible). +

diff --git a/dependencies/yaz-2.1.28/doc/server.html b/dependencies/yaz-2.1.28/doc/server.html new file mode 100644 index 0000000..a2ba2d3 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.html @@ -0,0 +1,35 @@ +Chapter 4. Generic server

Chapter 4. Generic server

1. Introduction

+ If you aren't into documentation, a good way to learn how the + back end interface works is to look at the backend.h + file. Then, look at the small dummy-server in + ztest/ztest.c. The backend.h + file also makes a good reference, once you've chewed your way through + the prose of this file. +

+ If you have a database system that you would like to make available by + means of Z39.50 or SRU, YAZ basically offers your two options. You + can use the APIs provided by the Z39.50 ASN.1, ODR, and COMSTACK + modules to + create and decode PDUs, and exchange them with a client. + Using this low-level interface gives you access to all fields and + options of the protocol, and you can construct your server as close + to your existing database as you like. + It is also a fairly involved process, requiring + you to set up an event-handling mechanism, protocol state machine, + etc. To simplify server implementation, we have implemented a compact + and simple, but reasonably full-functioned server-frontend that will + handle most of the protocol mechanics, while leaving you to + concentrate on your database interface. +

Note

+ The backend interface was designed in anticipation of a specific + integration task, while still attempting to achieve some degree of + generality. We realize fully that there are points where the + interface can be improved significantly. If you have specific + functions or parameters that you think could be useful, send us a + mail (or better, sign on to the mailing list referred to in the + top-level README file). We will try to fit good suggestions into future + releases, to the extent that it can be done without requiring + too many structural changes in existing applications. +

Note

+ The YAZ server does not support XCQL. +

diff --git a/dependencies/yaz-2.1.28/doc/server.invocation.html b/dependencies/yaz-2.1.28/doc/server.invocation.html new file mode 100644 index 0000000..f40e96b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.invocation.html @@ -0,0 +1,163 @@ +6. Application Invocation

6. Application Invocation

+ The finished application has the following + invocation syntax (by way of statserv_main()): +

application [-install] [-installa] [-remove] [-a file] [-v level] [-l file] [-u uid] [-c config] [-f vconfig] [-C fname] [-t minutes] [-k kilobytes] [-d daemon] [-w dir] [-p pidfile] [-ziDST1] [listener-spec...]

+ The options are: + + + +

-a + file

+ Specify a file for dumping PDUs (for diagnostic purposes). + The special name - (dash) sends output to + stderr. +

-S

+ Don't fork or make threads on connection requests. This is good for + debugging, but not recommended for real operation: Although the + server is asynchronous and non-blocking, it can be nice to keep + a software malfunction (okay then, a crash) from affecting all + current users. +

-1

+ Like -S but after one session the server + exits. This mode is for debugging only. +

-T

+ Operate the server in threaded mode. The server creates a thread + for each connection rather than a fork a process. Only available + on UNIX systems that offers POSIX threads. +

-s

+ Use the SR protocol (obsolete). +

-z

+ Use the Z39.50 protocol (default). This option and -s + complement each other. + You can use both multiple times on the same command + line, between listener-specifications (see below). This way, you + can set up the server to listen for connections in both protocols + concurrently, on different local ports. +

-l + file

The logfile. +

-c + config

A user option that serves as a specifier for some + sort of configuration, usually a filename. + The argument to this option is transferred to member + configname of the + statserv_options_block. +

-f + vconfig

This specifies an XML file that describes + one or more YAZ frontend virtual servers. +

-C + fname

Sets SSL certificate file name for server (PEM). +

-v + level

+ The log level. Use a comma-separated list of members of the set + {fatal,debug,warn,log,malloc,all,none}. +

-u + uid

+ Set user ID. Sets the real UID of the server process to that of the + given user. It's useful if you aren't comfortable with having the + server run as root, but you need to start it as such to bind a + privileged port. +

-w + dir

+ The server changes to this directory during before listening + on incoming connections. This option is useful + when the server is operating from the inetd + daemon (see -i). +

-p + pidfile

+ Specifies that the server should write its Process ID to + file given by pidfile. + A typical location would be /var/run/yaz-ztest.pid. +

-i

+ Use this to make the the server run from the + inetd server (UNIX only). +

-D

+ Use this to make the server put itself in the background and + run as a daemon. If neither -i nor + -D is given, the server starts in the foreground. +

-install

+ Use this to install the server as an NT service + (Windows NT/2000/XP only). + Control the server by going to the Services in the Control Panel. +

-installa

+ Use this to install and activate the server as an NT service + (Windows NT/2000/XP only). + Control the server by going to the Services in the Control Panel. +

-remove

+ Use this to remove the server from the NT services + (Windows NT/2000/XP only). +

-t + minutes

+ Idle session timeout, in minutes. +

-k + size

+ Maximum record size/message size, in kilobytes. +

-d + daemon

+ Set name of daemon to be used in hosts access file. + See + hosts_access(5) + and + tcpd(8). +

-m + time-format

+ Sets the format of time-stamps in the log-file. Specify a string in + the input format to strftime(). +

+ + + + +

+ A listener specification consists of a transport mode followed by a + colon (:) followed by a listener address. The transport mode is + either tcp, unix: or + ssl. +

+ For TCP and SSL, an address has the form +

+    hostname | IP-number [: portnumber]
+   

+ The port number defaults to 210 (standard Z39.50 port). +

+ For UNIX, the address is the filename of socket. +

+ For TCP/IP and SSL, the special hostname @ + (at sign) is mapped to the address INADDR_ANY, + which causes the server to listen on any local interface. +

Example 4.1. Running the GFS on Unix

+ Assuming the server application appname is + started as root, the following will make it listen on port 210. + The server will change identity to nobody + and write its log to /var/log/app.log. +

+      appname -l /var/log/app.log -u nobody tcp:@:210
+     

+

+ The server will accept Z39.50 requests and offer SRU service on port 210. +


Example 4.2. Setting up Apache as SRU Frontend

+ If you use Apache + as your public web server and want to offer HTTP port 80 + access to the YAZ server on 210, you can use the + + ProxyPass + directive. + If you have virtual host + srw.mydomain you can use the following directives + in Apache's httpd.conf: +

+      <VirtualHost *>
+       ErrorLog /home/srw/logs/error_log
+       TransferLog /home/srw/logs/access_log
+       ProxyPass / http://srw.mydomain:210/
+      </VirtualHost>
+     

+

+ The above for the Apache 1.3 series. +


Example 4.3. Running a server with local access only

+ Servers that is only being accessed from the local host should listen + on UNIX file socket rather than a Internet socket. To listen on + /tmp/mysocket start the server as follows: +

+      appname tcp:/tmp/mysocket
+     

+


diff --git a/dependencies/yaz-2.1.28/doc/server.main.html b/dependencies/yaz-2.1.28/doc/server.main.html new file mode 100644 index 0000000..1a4907e --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.main.html @@ -0,0 +1,117 @@ +4. Your main() Routine

4. Your main() Routine

+ As mentioned, your main() routine can be quite brief. + If you want to initialize global parameters, or read global configuration + tables, this is the place to do it. At the end of the routine, you should + call the function +

+int statserv_main(int argc, char **argv,
+                  bend_initresult *(*bend_init)(bend_initrequest *r),
+                  void (*bend_close)(void *handle));
+   

+ The third and fourth arguments are pointers to handlers. Handler + bend_init is called whenever the server receives + an Initialize Request, so it serves as a Z39.50 session initializer. The + bend_close handler is called when the session is + closed. +

+ statserv_main will establish listening sockets + according to the parameters given. When connection requests are received, + the event handler will typically fork() and + create a sub-process to handle a new connection. + Alternatively the server may be setup to create threads for each + connection. + If you do use global variables and forking, you should be aware, then, + that these cannot be shared between associations, unless you explicitly + disable forking by command line parameters. +

+ The server provides a mechanism for controlling some of its behavior + without using command-line options. The function +

+    statserv_options_block *statserv_getcontrol(void);
+   

+ will return a pointer to a struct statserv_options_block + describing the current default settings of the server. The structure + contains these elements: + +

+ int dynamic

+ A boolean value, which determines whether the server + will fork on each incoming request (TRUE), or not (FALSE). Default is + TRUE. This flag is only read by UNIX-based servers (WIN32 based servers + doesn't fork). +

+ int threads

+ A boolean value, which determines whether the server + will create a thread on each incoming request (TRUE), or not (FALSE). + Default is FALSE. This flag is only read by UNIX-based servers + that offer POSIX Threads support. + WIN32-based servers always operate in threaded mode. +

+ int inetd

+ A boolean value, which determines whether the server + will operates under a UNIX INET daemon (inetd). Default is FALSE. +

+ char logfile[ODR_MAXNAME+1]

File for diagnostic output ("": stderr). +

+ char apdufile[ODR_MAXNAME+1]

+ Name of file for logging incoming and outgoing APDUs + ("": don't log APDUs, "-": + stderr). +

+ char default_listen[1024]

Same form as the command-line specification of + listener address. "": no default listener address. + Default is to listen at "tcp:@:9999". You can only + specify one default listener address in this fashion. +

+ enum oid_proto default_proto;

Either PROTO_Z3950 or + PROTO_SR. + Default is PROTO_Z39_50. +

+ int idle_timeout;

Maximum session idle-time, in minutes. Zero indicates + no (infinite) timeout. Default is 15 minutes. +

+ int maxrecordsize;

Maximum permissible record (message) size. Default + is 1Mb. This amount of memory will only be allocated if a + client requests a very large amount of records in one operation + (or a big record). + Set it to a lower number if you are worried about resource + consumption on your host system. +

+ char configname[ODR_MAXNAME+1]

Passed to the backend when a new connection is received. +

+ char setuid[ODR_MAXNAME+1]

Set user id to the user specified, after binding + the listener addresses. +

+ void (*bend_start)(struct statserv_options_block *p) +

Pointer to function which is called after the + command line options have been parsed - but before the server + starts listening. + For forked UNIX servers this handler is called in the mother + process; for threaded servers this handler is called in the + main thread. + The default value of this pointer is NULL in which case it + isn't invoked by the frontend server. + When the server operates as an NT service this handler is called + whenever the service is started. +

+ void (*bend_stop)(struct statserv_options_block *p) +

Pointer to function which is called whenever the server + has stopped listening for incoming connections. This function pointer + has a default value of NULL in which case it isn't called. + When the server operates as an NT service this handler is called + whenever the service is stopped. +

+ void *handle

User defined pointer (default value NULL). + This is a per-server handle that can be used to specify "user-data". + Do not confuse this with the session-handle as returned by bend_init. +

+

+ The pointer returned by statserv_getcontrol points to + a static area. You are allowed to change the contents of the structure, + but the changes will not take effect before you call +

+void statserv_setcontrol(statserv_options_block *block);
+   

Note

+ that you should generally update this structure before calling + statserv_main(). +

diff --git a/dependencies/yaz-2.1.28/doc/server.vhosts.html b/dependencies/yaz-2.1.28/doc/server.vhosts.html new file mode 100644 index 0000000..c278958 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/server.vhosts.html @@ -0,0 +1,140 @@ +7. Virtual Hosts

7. Virtual Hosts

+ The Virtual hosts mechanism allows a YAZ frontend server to + support multiple backends. A backend is selected on the basis of + the TCP/IP binding (port+listening adddress) and/or the virtual host. +

+ A backend can be configured to execute in a particular working + directory. Or the YAZ frontend may perform CQL to RPN conversion, thus + allowing traditional Z39.50 backends to be offered as a SRW/SRU + service. SRW/SRU Explain information for a particular backend may also + be specified. +

+ For the HTTP protocol, the virtual host is specified in the Host header. + For the Z39.50 protocol, the virtual host is specified as in the + Initialize Request in the OtherInfo, OID 1.2.840.10003.10.1000.81.1. +

Note

+ Not all Z39.50 clients allows the VHOST information to be set. + For those the selection of the backend must rely on the + TCP/IP information alone (port and address). +

+ The YAZ frontend server uses XML to describe the backend + configurations. Command-line option -f + specifies filename of the XML configuration. +

+ The configuration uses the root element yazgfs. + This element includes a list of listen elements, + followed by one or more server elements. +

+ The listen describes listener (transport end point), + such as TCP/IP, Unix file socket or SSL server. Content for + a listener: +

CDATA (required)

+ The CDATA for the listen element holds the + listener string, such as tcp:@:210, + tcp:server1:2100, + etc. +

attribute id (optional)

+ identifier for this listener. This may be referred to from + server sections. +

+

Note

+ We expect more information to be added for the listen section in + a future version, such as CERT file for SSL servers. +

+

+ The server describes a server and the parameters + for this server type. Content for a server: +

attribute id (optional)

+ Identifier for this server. Currently not used for anything, + but it might be for logging purposes. +

attribute listenref (optional)

+ Specifies listener for this server. If this attribute is not + given, the server is accessible from all listener. In order + for the server to be used for real, howeever, the virtual host + must match (if specified in the configuration). +

element config (optional)

+ Specifies the server configuration. This is equivalent + to the config specified using command line option + -c. +

element directory (optional)

+ Specifies a working directory for this backend server. If + specifid, the YAZ fronend changes current working directory + to this directory whenever a backend of this type is + started (backend handler bend_start), stopped (backend handler hand_stop) + and initialized (bend_init). +

element host (optional)

+ Specifies the virtual host for this server. If this is specified + a client must specify this host string in + order to use this backend. +

element cql2rpn (optional)

+ Specifies a filename that includes CQL to RPN conversion for this + backend server. See Section 1.3.4, “Specification of CQL to RPN mappings” + If given, the backend server will only "see" a Type-1/RPN query. +

element stylesheet (optional)

+ Specifies the stylesheet reference to be part of SRU HTTP responses + when the client does not specify one. If neither this is given, nor + the client specifies one, no stylesheet reference is part of the + SRU HTTP response. +

element docpath (optional)

+ Specifies a path for local file access using HTTP. All URLs with + a leading prefix (/ exluded) that matches the value of docpath + are used for file access. For example, if the server is to offer + access in directory xsl, the docpath would be + xsl and all URLs of the form + http://host/exl will result in a local file access. +

element explain (optional)

+ Specifies SRW/SRU ZeeRex content for this server. Copied verbatim + to the client. As things are now, some of the Explain content + seeem redundant because host information, etc. is also stored + elsewhere. +

+

+ The XML below configures a server that accepts connections from + two ports, TCP/IP port 9900 and a local UNIX file socket. + We name the TCP/IP server public and the + other server internal. +

+  
+ <yazgfs>
+  <listen id="public">tcp:@:9900</listen>
+  <listen id="internal">unix:/var/tmp/socket</listen>
+  <server id="server1">
+    <host>server1.mydomain</host>
+    <directory>/var/www/s1</directory>
+    <config>config.cfg</config>
+  </server>
+  <server id="server2">
+    <host>server2.mydomain</host>
+    <directory>/var/www/s2</directory>
+    <config>config.cfg</config>
+    <cql2rpn>../etc/pqf.properties</cql2rpn>
+    <explain xmlns="http://explain.z3950.org/dtd/2.0/">
+      <serverInfo>
+        <host>server2.mydomain</host>
+        <port>9900</port>
+        <database>a</database>
+      </serverInfo>
+    </explain>
+  </server>
+  <server id="server3" listenref="internal">
+    <directory>/var/www/s3</directory>
+    <config>config.cfg</config>
+  </server>
+ </yazgfs>
+
+ 

+ There are three configured backend servers. The first two + servers, "server1" and "server2", + can be reached by both listener addresses - since + no listenref attribute is specified. + In order to distinguish between the two a virtual host has + been specified for each of server in the host + elements. +

+ For "server2" elements for CQL to RPN conversion + is supported and explain information has been added (a short one here + to keep the example small). +

+ The third server, "server3" can only be reached + via listener "internal". +

diff --git a/dependencies/yaz-2.1.28/doc/soap.html b/dependencies/yaz-2.1.28/doc/soap.html new file mode 100644 index 0000000..bcbc82a --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/soap.html @@ -0,0 +1,12 @@ +Chapter 7. SOAP and SRU

Chapter 7. SOAP and SRU

1. Introduction

+ YAZ uses a very simple implementation of + SOAP that only, + currenly, supports what is sufficient to offer SRU SOAP functionality. + The implementation uses the + tree API of + libxml2 to encode and decode SOAP packages. +

+ Like the Z39.50 ASN.1 module, the YAZ SRU implementation uses + simple C structs to represent SOAP packages as well as + HTTP packages. +

diff --git a/dependencies/yaz-2.1.28/doc/soap.http.html b/dependencies/yaz-2.1.28/doc/soap.http.html new file mode 100644 index 0000000..5414add --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/soap.http.html @@ -0,0 +1,27 @@ +2. HTTP

2. HTTP

+ YAZ only offers HTTP as transport carrier for SOAP, but it is + relatively easy to change that. +

+ The following definition of Z_GDU (Generic Data + Unit) allows for both HTTP and Z39.50 in one packet. +

+#include <yaz/zgdu.h>
+
+#define Z_GDU_Z3950         1
+#define Z_GDU_HTTP_Request  2
+#define Z_GDU_HTTP_Response 3
+typedef struct {
+  int which;
+  union {
+    Z_APDU *z3950;
+    Z_HTTP_Request *HTTP_Request;
+    Z_HTTP_Response *HTTP_Response;
+  } u;
+} Z_GDU ;
+    

+ The corresponding Z_GDU encoder/decoder is z_GDU. + The z3950 is any of the known BER encoded Z39.50 + APDUs. + HTTP_Request and HTTP_Response + is the HTTP Request and Response respectively. +

diff --git a/dependencies/yaz-2.1.28/doc/soap.srw.html b/dependencies/yaz-2.1.28/doc/soap.srw.html new file mode 100644 index 0000000..0fe25a8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/soap.srw.html @@ -0,0 +1,97 @@ +4. SRU

4. SRU

+ SRU SOAP is just one implementation of a SOAP handler as described + in the previous section. + The encoder/decoder handler for SRU is defined as + follows: +

+#include <yaz/srw.h>
+
+int yaz_srw_codec(ODR o, void * pptr,
+                  Z_SRW_GDU **handler_data,
+                  void *client_data, const char *ns);
+      

+ Here, Z_SRW_GDU is either + searchRetrieveRequest or a searchRetrieveResponse. +

Note

+ The xQuery and xSortKeys are not handled yet by + the SRW implementation of YAZ. Explain is also missing. + Future versions of YAZ will include these features. +

+ The definition of searchRetrieveRequest is: +

+typedef struct {
+
+#define Z_SRW_query_type_cql  1
+#define Z_SRW_query_type_xcql 2
+#define Z_SRW_query_type_pqf  3
+    int query_type;
+    union {
+        char *cql;
+        char *xcql;
+        char *pqf;
+    } query;
+
+#define Z_SRW_sort_type_none 1
+#define Z_SRW_sort_type_sort 2
+#define Z_SRW_sort_type_xSort 3
+    int sort_type;
+    union {
+        char *none;
+        char *sortKeys;
+        char *xSortKeys;
+    } sort;
+    int  *startRecord;
+    int  *maximumRecords;
+    char *recordSchema;
+    char *recordPacking;
+    char *database;
+} Z_SRW_searchRetrieveRequest;
+      

+ Please observe that data of type xsd:string is represented + as a char pointer (char *). A null pointer + means that the element is absent. + Data of type xsd:integer is representd as a pointer to + an int (int *). Again, a null pointer + us used for absent elements. +

+ The SearchRetrieveResponse has the following definition. +

+typedef struct {
+    int * numberOfRecords;
+    char * resultSetId;
+    int * resultSetIdleTime;
+    
+    Z_SRW_record *records;
+    int num_records;
+
+    Z_SRW_diagnostic *diagnostics;
+    int num_diagnostics;
+    int *nextRecordPosition;
+} Z_SRW_searchRetrieveResponse;
+      

+ The num_records and num_diagnostics + is number of returned records and diagnostics respectively and also + correspond to the "size of" arrays records + and diagnostics. +

+ A retrieval record is defined as follows: +

+typedef struct {
+    char *recordSchema;
+    char *recordData_buf;
+    int recordData_len;
+    int *recordPosition;
+} Z_SRW_record;
+      

+ The record data is defined as a buffer of some length so that + data can be of any type. SRW 1.0 currenly doesn't allow for this + (only XML), but future versions might do. +

+ And, a diagnostic as: +

+typedef struct {
+    int  *code;
+    char *details;
+} Z_SRW_diagnostic;
+      

+

diff --git a/dependencies/yaz-2.1.28/doc/soap.xml b/dependencies/yaz-2.1.28/doc/soap.xml new file mode 100644 index 0000000..b1c7d07 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/soap.xml @@ -0,0 +1,265 @@ + +SOAP and SRU + Introduction + + &yaz; uses a very simple implementation of + SOAP that only, + currenly, supports what is sufficient to offer SRU SOAP functionality. + The implementation uses the + tree API of + libxml2 to encode and decode SOAP packages. + + + Like the Z39.50 ASN.1 module, the &yaz; SRU implementation uses + simple C structs to represent SOAP packages as well as + HTTP packages. + + + HTTP + + &yaz; only offers HTTP as transport carrier for SOAP, but it is + relatively easy to change that. + + + The following definition of Z_GDU (Generic Data + Unit) allows for both HTTP and Z39.50 in one packet. + + +#include <yaz/zgdu.h> + +#define Z_GDU_Z3950 1 +#define Z_GDU_HTTP_Request 2 +#define Z_GDU_HTTP_Response 3 +typedef struct { + int which; + union { + Z_APDU *z3950; + Z_HTTP_Request *HTTP_Request; + Z_HTTP_Response *HTTP_Response; + } u; +} Z_GDU ; + + + The corresponding Z_GDU encoder/decoder is z_GDU. + The z3950 is any of the known BER encoded Z39.50 + APDUs. + HTTP_Request and HTTP_Response + is the HTTP Request and Response respectively. + + + SOAP Packages + + Every SOAP package in &yaz; is represented as follows: + +#include <yaz/soap.h> + +typedef struct { + char *fault_code; + char *fault_string; + char *details; +} Z_SOAP_Fault; + +typedef struct { + int no; + char *ns; + void *p; +} Z_SOAP_Generic; + +#define Z_SOAP_fault 1 +#define Z_SOAP_generic 2 +#define Z_SOAP_error 3 +typedef struct { + int which; + union { + Z_SOAP_Fault *fault; + Z_SOAP_Generic *generic; + Z_SOAP_Fault *soap_error; + } u; + const char *ns; +} Z_SOAP; + + + + The fault and soap_error + arms represent both a SOAP fault - struct + Z_SOAP_Fault. Any other generic + (valid) package is represented by Z_SOAP_Generic. + + + The ns as part of Z_SOAP + is the namespace for SOAP itself and reflects the SOAP + version. For version 1.1 it is + http://schemas.xmlsoap.org/soap/envelope/, + for version 1.2 it is + http://www.w3.org/2001/06/soap-envelope. + + +int z_soap_codec(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers); + + + The content_buf and content_len + is XML buffer and length of buffer respectively. + + + The handlers is a list of SOAP codec + handlers - one handler for each service namespace. For SRU SOAP, the + namespace would be http://www.loc.gov/zing/srw/v1.0/. + + + When decoding, the z_soap_codec + inspects the XML content + and tries to match one of the services namespaces of the + supplied handlers. If there is a match a handler function + is invoked which decodes that particular SOAP package. + If successful, the returned Z_SOAP package will be + of type Z_SOAP_Generic. + Member no is + set the offset of handler that matched; ns + is set to namespace of matching handler; the void pointer + p is set to the C data structure assocatiated + with the handler. + + + When a NULL namespace is met (member ns bwlow), + that specifies end-of-list. + + + Each handler is defined as follows: + +typedef struct { + char *ns; + void *client_data; + Z_SOAP_fun f; +} Z_SOAP_Handler; + + The ns is namespace of service associated with + handler f. client_data + is user-defined data which is passed to handler. + + + The prototype for a SOAP service handler is: + +int handler(ODR o, void * ptr, void **handler_data, + void *client_data, const char *ns); + + The o specifies the mode (decode/encode) + as usual. The second argument, ptr, + is a libxml2 tree node pointer (xmlNodePtr) + and is a pointer to the Body element + of the SOAP package. The handler_data + is an opaque pointer to a C definitions associated with the + SOAP service. client_data is the pointer + which was set as part of the Z_SOAP_handler. + Finally, ns the service namespace. + + + SRU + + SRU SOAP is just one implementation of a SOAP handler as described + in the previous section. + The encoder/decoder handler for SRU is defined as + follows: + +#include <yaz/srw.h> + +int yaz_srw_codec(ODR o, void * pptr, + Z_SRW_GDU **handler_data, + void *client_data, const char *ns); + + Here, Z_SRW_GDU is either + searchRetrieveRequest or a searchRetrieveResponse. + + + + The xQuery and xSortKeys are not handled yet by + the SRW implementation of &yaz;. Explain is also missing. + Future versions of &yaz; will include these features. + + + + The definition of searchRetrieveRequest is: + +typedef struct { + +#define Z_SRW_query_type_cql 1 +#define Z_SRW_query_type_xcql 2 +#define Z_SRW_query_type_pqf 3 + int query_type; + union { + char *cql; + char *xcql; + char *pqf; + } query; + +#define Z_SRW_sort_type_none 1 +#define Z_SRW_sort_type_sort 2 +#define Z_SRW_sort_type_xSort 3 + int sort_type; + union { + char *none; + char *sortKeys; + char *xSortKeys; + } sort; + int *startRecord; + int *maximumRecords; + char *recordSchema; + char *recordPacking; + char *database; +} Z_SRW_searchRetrieveRequest; + + Please observe that data of type xsd:string is represented + as a char pointer (char *). A null pointer + means that the element is absent. + Data of type xsd:integer is representd as a pointer to + an int (int *). Again, a null pointer + us used for absent elements. + + + The SearchRetrieveResponse has the following definition. + +typedef struct { + int * numberOfRecords; + char * resultSetId; + int * resultSetIdleTime; + + Z_SRW_record *records; + int num_records; + + Z_SRW_diagnostic *diagnostics; + int num_diagnostics; + int *nextRecordPosition; +} Z_SRW_searchRetrieveResponse; + + The num_records and num_diagnostics + is number of returned records and diagnostics respectively and also + correspond to the "size of" arrays records + and diagnostics. + + + A retrieval record is defined as follows: + +typedef struct { + char *recordSchema; + char *recordData_buf; + int recordData_len; + int *recordPosition; +} Z_SRW_record; + + The record data is defined as a buffer of some length so that + data can be of any type. SRW 1.0 currenly doesn't allow for this + (only XML), but future versions might do. + + + And, a diagnostic as: + +typedef struct { + int *code; + char *details; +} Z_SRW_diagnostic; + + + + + diff --git a/dependencies/yaz-2.1.28/doc/soap.xml.html b/dependencies/yaz-2.1.28/doc/soap.xml.html new file mode 100644 index 0000000..fe921be --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/soap.xml.html @@ -0,0 +1,97 @@ +3. SOAP Packages

3. SOAP Packages

+ Every SOAP package in YAZ is represented as follows: +

+#include <yaz/soap.h>
+
+typedef struct {
+    char *fault_code;
+    char *fault_string;
+    char *details;
+} Z_SOAP_Fault;
+
+typedef struct {
+    int no;
+    char *ns;
+    void *p;
+} Z_SOAP_Generic;
+
+#define Z_SOAP_fault 1
+#define Z_SOAP_generic 2
+#define Z_SOAP_error 3
+typedef struct {
+    int which;
+    union {
+        Z_SOAP_Fault   *fault;
+        Z_SOAP_Generic *generic;
+        Z_SOAP_Fault   *soap_error;
+    } u;
+    const char *ns;
+} Z_SOAP;
+      

+

+ The fault and soap_error + arms represent both a SOAP fault - struct + Z_SOAP_Fault. Any other generic + (valid) package is represented by Z_SOAP_Generic. +

+ The ns as part of Z_SOAP + is the namespace for SOAP itself and reflects the SOAP + version. For version 1.1 it is + http://schemas.xmlsoap.org/soap/envelope/, + for version 1.2 it is + http://www.w3.org/2001/06/soap-envelope. +

+int z_soap_codec(ODR o, Z_SOAP **pp,
+                 char **content_buf, int *content_len,
+                 Z_SOAP_Handler *handlers);
+    

+ The content_buf and content_len + is XML buffer and length of buffer respectively. +

+ The handlers is a list of SOAP codec + handlers - one handler for each service namespace. For SRU SOAP, the + namespace would be http://www.loc.gov/zing/srw/v1.0/. +

+ When decoding, the z_soap_codec + inspects the XML content + and tries to match one of the services namespaces of the + supplied handlers. If there is a match a handler function + is invoked which decodes that particular SOAP package. + If successful, the returned Z_SOAP package will be + of type Z_SOAP_Generic. + Member no is + set the offset of handler that matched; ns + is set to namespace of matching handler; the void pointer + p is set to the C data structure assocatiated + with the handler. +

+ When a NULL namespace is met (member ns bwlow), + that specifies end-of-list. +

+ Each handler is defined as follows: +

+typedef struct {
+    char *ns;
+    void *client_data;
+    Z_SOAP_fun f;
+} Z_SOAP_Handler;
+      

+ The ns is namespace of service associated with + handler f. client_data + is user-defined data which is passed to handler. +

+ The prototype for a SOAP service handler is: +

+int handler(ODR o, void * ptr, void **handler_data,
+            void *client_data, const char *ns);
+      

+ The o specifies the mode (decode/encode) + as usual. The second argument, ptr, + is a libxml2 tree node pointer (xmlNodePtr) + and is a pointer to the Body element + of the SOAP package. The handler_data + is an opaque pointer to a C definitions associated with the + SOAP service. client_data is the pointer + which was set as part of the Z_SOAP_handler. + Finally, ns the service namespace. +

diff --git a/dependencies/yaz-2.1.28/doc/tools.html b/dependencies/yaz-2.1.28/doc/tools.html new file mode 100644 index 0000000..ea15618 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.html @@ -0,0 +1,1013 @@ +Chapter 8. Supporting Tools

Chapter 8. Supporting Tools

+ In support of the service API - primarily the ASN module, which + provides the pro-grammatic interface to the Z39.50 APDUs, YAZ contains + a collection of tools that support the development of applications. +

1. Query Syntax Parsers

+ Since the type-1 (RPN) query structure has no direct, useful string + representation, every origin application needs to provide some form of + mapping from a local query notation or representation to a + Z_RPNQuery structure. Some programmers will prefer to + construct the query manually, perhaps using + odr_malloc() to simplify memory management. + The YAZ distribution includes three separate, query-generating tools + that may be of use to you. +

1.1. Prefix Query Format

+ Since RPN or reverse polish notation is really just a fancy way of + describing a suffix notation format (operator follows operands), it + would seem that the confusion is total when we now introduce a prefix + notation for RPN. The reason is one of simple laziness - it's somewhat + simpler to interpret a prefix format, and this utility was designed + for maximum simplicity, to provide a baseline representation for use + in simple test applications and scripting environments (like Tcl). The + demonstration client included with YAZ uses the PQF. +

Note

+ The PQF have been adopted by other parties developing Z39.50 + software. It is often referred to as Prefix Query Notation + - PQN. +

+ The PQF is defined by the pquery module in the YAZ library. + There are two sets of function that have similar behavior. First + set operates on a PQF parser handle, second set doesn't. First set + set of functions are more flexible than the second set. Second set + is obsolete and is only provided to ensure backwards compatibility. +

+ First set of functions all operate on a PQF parser handle: +

+     #include <yaz/pquery.h>
+
+     YAZ_PQF_Parser yaz_pqf_create (void);
+
+     void yaz_pqf_destroy (YAZ_PQF_Parser p);
+
+     Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, const char *qbuf);
+
+     Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o,
+                          Odr_oid **attributeSetId, const char *qbuf);
+
+
+     int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off);
+    

+ A PQF parser is created and destructed by functions + yaz_pqf_create and + yaz_pqf_destroy respectively. + Function yaz_pqf_parse parses query given + by string qbuf. If parsing was successful, + a Z39.50 RPN Query is returned which is created using ODR stream + o. If parsing failed, a NULL pointer is + returned. + Function yaz_pqf_scan takes a scan query in + qbuf. If parsing was successful, the function + returns attributes plus term pointer and modifies + attributeSetId to hold attribute set for the + scan request - both allocated using ODR stream o. + If parsing failed, yaz_pqf_scan returns a NULL pointer. + Error information for bad queries can be obtained by a call to + yaz_pqf_error which returns an error code and + modifies *msg to point to an error description, + and modifies *off to the offset within last + query were parsing failed. +

+ The second set of functions are declared as follows: +

+     #include <yaz/pquery.h>
+
+     Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf);
+
+     Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto,
+                             Odr_oid **attributeSetP, const char *qbuf);
+
+     int p_query_attset (const char *arg);
+    

+ The function p_query_rpn() takes as arguments an + ODR stream (see section The ODR Module) + to provide a memory source (the structure created is released on + the next call to odr_reset() on the stream), a + protocol identifier (one of the constants PROTO_Z3950 and + PROTO_SR), an attribute set reference, and + finally a null-terminated string holding the query string. +

+ If the parse went well, p_query_rpn() returns a + pointer to a Z_RPNQuery structure which can be + placed directly into a Z_SearchRequest. + If parsing failed, due to syntax error, a NULL pointer is returned. +

+ The p_query_attset specifies which attribute set + to use if the query doesn't specify one by the + @attrset operator. + The p_query_attset returns 0 if the argument is a + valid attribute set specifier; otherwise the function returns -1. +

+ The grammar of the PQF is as follows: +


+     query ::= top-set query-struct.
+
+     top-set ::= [ '@attrset' string ]
+
+     query-struct ::= attr-spec | simple | complex | '@term' term-type query
+
+     attr-spec ::= '@attr' [ string ] string query-struct
+
+     complex ::= operator query-struct query-struct.
+
+     operator ::= '@and' | '@or' | '@not' | '@prox' proximity.
+
+     simple ::= result-set | term.
+
+     result-set ::= '@set' string.
+
+     term ::= string.
+
+     proximity ::= exclusion distance ordered relation which-code unit-code.
+
+     exclusion ::= '1' | '0' | 'void'.
+
+     distance ::= integer.
+
+     ordered ::= '1' | '0'.
+
+     relation ::= integer.
+
+     which-code ::= 'known' | 'private' | integer.
+
+     unit-code ::= integer.
+
+     term-type ::= 'general' | 'numeric' | 'string' | 'oid' | 'datetime' | 'null'.
+    

+ You will note that the syntax above is a fairly faithful + representation of RPN, except for the Attribute, which has been + moved a step away from the term, allowing you to associate one or more + attributes with an entire query structure. The parser will + automatically apply the given attributes to each term as required. +

+ The @attr operator is followed by an attribute specification + (attr-spec above). The specification consists + of an optional attribute set, an attribute type-value pair and + a sub-query. The attribute type-value pair is packed in one string: + an attribute type, an equals sign, and an attribute value, like this: + @attr 1=1003. + The type is always an integer but the value may be either an + integer or a string (if it doesn't start with a digit character). + A string attribute-value is encoded as a Type-1 ``complex'' + attribute with the list of values containing the single string + specified, and including no semantic indicators. +

+ Version 3 of the Z39.50 specification defines various encoding of terms. + Use @term type + string, + where type is one of: general, + numeric or string + (for InternationalString). + If no term type has been given, the general form + is used. This is the only encoding allowed in both versions 2 and 3 + of the Z39.50 standard. +

1.1.1. Using Proximity Operators with PQF

Note

+ This is an advanced topic, describing how to construct + queries that make very specific requirements on the + relative location of their operands. + You may wish to skip this section and go straight to + the example PQF queries. +

+

Warning

+ Most Z39.50 servers do not support proximity searching, or + support only a small subset of the full functionality that + can be expressed using the PQF proximity operator. Be + aware that the ability to express a + query in PQF is no guarantee that any given server will + be able to execute it. +

+

+ The proximity operator @prox is a special + and more restrictive version of the conjunction operator + @and. Its semantics are described in + section 3.7.2 (Proximity) of Z39.50 the standard itself, which + can be read on-line at + http://www.loc.gov/z3950/agency/markup/09.html#3.7.2 +

+ In PQF, the proximity operation is represented by a sequence + of the form +

+@prox exclusion distance ordered relation which-code unit-code
+	

+ in which the meanings of the parameters are as described in in + the standard, and they can take the following values: +

  • exclusion.  + 0 = false (i.e. the proximity condition specified by the + remaining parameters must be satisfied) or + 1 = true (the proximity condition specified by the + remaining parameters must not be + satisifed). +

  • distance.  + An integer specifying the difference between the locations + of the operands: e.g. two adjacent words would have + distance=1 since their locations differ by one unit. +

  • ordered.  + 1 = ordered (the operands must occur in the order the + query specifies them) or + 0 = unordered (they may appear in either order). +

  • relation.  + Recognised values are + 1 (lessThan), + 2 (lessThanOrEqual), + 3 (equal), + 4 (greaterThanOrEqual), + 5 (greaterThan) and + 6 (notEqual). +

  • which-code.  + known + or + k + (the unit-code parameter is taken from the well-known list + of alternatives described in below) or + private + or + p + (the unit-code paramater has semantics specific to an + out-of-band agreement such as a profile). +

  • unit-code.  + If the which-code parameter is known + then the recognised values are + 1 (character), + 2 (word), + 3 (sentence), + 4 (paragraph), + 5 (section), + 6 (chapter), + 7 (document), + 8 (element), + 9 (subelement), + 10 (elementType) and + 11 (byte). + If which-code is private then the + acceptable values are determined by the profile. +

+ (The numeric values of the relation and well-known unit-code + parameters are taken straight from + the ASN.1 of the proximity structure in the standard.) +

1.1.2. PQF queries

Example 8.1. PQF queries using simple terms

+

+	dylan
+
+	"bob dylan"
+       

+


Example 8.2. PQF boolean operators

+

+	@or "dylan" "zimmerman"
+
+	@and @or dylan zimmerman when
+
+	@and when @or dylan zimmerman
+       

+


Example 8.3. PQF references to result sets

+

+	@set Result-1
+
+	@and @set seta @set setb
+       

+


Example 8.4. Attributes for terms

+

+	@attr 1=4 computer
+
+	@attr 1=4 @attr 4=1 "self portrait"
+
+	@attrset exp1 @attr 1=1 CategoryList
+
+	@attr gils 1=2008 Copenhagen
+
+	@attr 1=/book/title computer
+       

+


Example 8.5. PQF Proximity queries

+

+	@prox 0 3 1 2 k 2 dylan zimmerman
+       

+

Note

+ Here the parameters 0, 3, 1, 2, k and 2 represent exclusion, + distance, ordered, relation, which-code and unit-code, in that + order. So: +

  • + exclusion = 0: the proximity condition must hold +

  • + distance = 3: the terms must be three units apart +

  • + ordered = 1: they must occur in the order they are specified +

  • + relation = 2: lessThanOrEqual (to the distance of 3 units) +

  • + which-code is ``known'', so the standard unit-codes are used +

  • + unit-code = 2: word. +

+ So the whole proximity query means that the words + dylan and zimmerman must + both occur in the record, in that order, differing in position + by three or fewer words (i.e. with two or fewer words between + them.) The query would find ``Bob Dylan, aka. Robert + Zimmerman'', but not ``Bob Dylan, born as Robert Zimmerman'' + since the distance in this case is four. +

+


Example 8.6. PQF specification of search term

+

+	@term string "a UTF-8 string, maybe?"
+       

+


Example 8.7. PQF mixed queries

+

+	@or @and bob dylan @set Result-1
+	
+	@attr 4=1 @and @attr 1=1 "bob dylan" @attr 1=4 "slow train coming"
+	
+	@and @attr 2=4 @attr gils 1=2038 -114 @attr 2=2 @attr gils 1=2039 -109
+      

+

Note

+ The last of these examples is a spatial search: in + the GILS attribute set, + access point + 2038 indicates West Bounding Coordinate and + 2030 indicates East Bounding Coordinate, + so the query is for areas extending from -114 degrees + to no more than -109 degrees. +

+


1.2. CCL

+ Not all users enjoy typing in prefix query structures and numerical + attribute values, even in a minimalistic test client. In the library + world, the more intuitive Common Command Language - CCL (ISO 8777) + has enjoyed some popularity - especially before the widespread + availability of graphical interfaces. It is still useful in + applications where you for some reason or other need to provide a + symbolic language for expressing boolean query structures. +

+ The EUROPAGATE research project working under the Libraries programme + of the European Commission's DG XIII has, amongst other useful tools, + implemented a general-purpose CCL parser which produces an output + structure that can be trivially converted to the internal RPN + representation of YAZ (The Z_RPNQuery structure). + Since the CCL utility - along with the rest of the software + produced by EUROPAGATE - is made freely available on a liberal + license, it is included as a supplement to YAZ. +

1.2.1. CCL Syntax

+ The CCL parser obeys the following grammar for the FIND argument. + The syntax is annotated by in the lines prefixed by + ‐‐. +

+      CCL-Find ::= CCL-Find Op Elements
+                | Elements.
+
+      Op ::= "and" | "or" | "not"
+      -- The above means that Elements are separated by boolean operators.
+
+      Elements ::= '(' CCL-Find ')'
+                | Set
+                | Terms
+                | Qualifiers Relation Terms
+                | Qualifiers Relation '(' CCL-Find ')'
+                | Qualifiers '=' string '-' string
+      -- Elements is either a recursive definition, a result set reference, a
+      -- list of terms, qualifiers followed by terms, qualifiers followed
+      -- by a recursive definition or qualifiers in a range (lower - upper).
+
+      Set ::= 'set' = string
+      -- Reference to a result set
+
+      Terms ::= Terms Prox Term
+             | Term
+      -- Proximity of terms.
+
+      Term ::= Term string
+            | string
+      -- This basically means that a term may include a blank
+
+      Qualifiers ::= Qualifiers ',' string
+                  | string
+      -- Qualifiers is a list of strings separated by comma
+
+      Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<'
+      -- Relational operators. This really doesn't follow the ISO8777
+      -- standard.
+
+      Prox ::= '%' | '!'
+      -- Proximity operator
+
+     

Example 8.8. CCL queries

+ The following queries are all valid: +

+       dylan
+       
+       "bob dylan"
+       
+       dylan or zimmerman
+       
+       set=1
+       
+       (dylan and bob) or set=1
+       
+      

+ Assuming that the qualifiers ti, + au + and date are defined we may use: +

+       ti=self portrait
+       
+       au=(bob dylan and slow train coming)
+
+       date>1980 and (ti=((self portrait)))
+       
+      

1.2.2. CCL Qualifiers

+ Qualifiers are used to direct the search to a particular searchable + index, such as title (ti) and author indexes (au). The CCL standard + itself doesn't specify a particular set of qualifiers, but it does + suggest a few short-hand notations. You can customize the CCL parser + to support a particular set of qualifiers to reflect the current target + profile. Traditionally, a qualifier would map to a particular + use-attribute within the BIB-1 attribute set. It is also + possible to set other attributes, such as the structure + attribute. +

+ A CCL profile is a set of predefined CCL qualifiers that may be + read from a file or set in the CCL API. + The YAZ client reads its CCL qualifiers from a file named + default.bib. There are four types of + lines in a CCL profile: qualifier specification, + qualifier alias, comments and directives. +

1.2.2.1. Qualifier specification

+ A qualifier specification is of the form: +

+ qualifier-name + [attributeset,]type=val + [attributeset,]type=val ... +

+ where qualifier-name is the name of the + qualifier to be used (eg. ti), + type is attribute type in the attribute + set (Bib-1 is used if no attribute set is given) and + val is attribute value. + The type can be specified as an + integer or as it be specified either as a single-letter: + u for use, + r for relation,p for position, + s for structure,t for truncation + or c for completeness. + The attributes for the special qualifier name term + are used when no CCL qualifier is given in a query. +

Table 8.1. Common Bib-1 attributes

TypeDescription
u=value + Use attribute (1). Common use attributes are + 1 Personal-name, 4 Title, 7 ISBN, 8 ISSN, 30 Date, + 62 Subject, 1003 Author), 1016 Any. Specify value + as an integer. +
r=value + Relation attribute (2). Common values are + 1 <, 2 <=, 3 =, 4 >=, 5 >, 6 <>, + 100 phonetic, 101 stem, 102 relevance, 103 always matches. +
p=value + Position attribute (3). Values: 1 first in field, 2 + first in any subfield, 3 any position in field. +
s=value + Structure attribute (4). Values: 1 phrase, 2 word, + 3 key, 4 year, 5 date, 6 word list, 100 date (un), + 101 name (norm), 102 name (un), 103 structure, 104 urx, + 105 free-form-text, 106 document-text, 107 local-number, + 108 string, 109 numeric string. +
t=value + Truncation attribute (5). Values: 1 right, 2 left, + 3 left& right, 100 none, 101 process #, 102 regular-1, + 103 regular-2, 104 CCL. +
c=value + Completeness attribute (6). Values: 1 incomplete subfield, + 2 complete subfield, 3 complete field. +


+

+ Refer to the complete + list of Bib-1 attributes +

+ It is also possible to specify non-numeric attribute values, + which are used in combination with certain types. + The special combinations are: + +

Table 8.2. Special attribute combos

NameDescription
s=pw + The structure is set to either word or phrase depending + on the number of tokens in a term (phrase-word). +
s=al + Each token in the term is ANDed. (and-list). + This does not set the structure at all. +
s=ol + Each token in the term is ORed. (or-list). + This does not set the structure at all. +
r=o + Allows ranges and the operators greather-than, less-than, ... + equals. + This sets Bib-1 relation attribute accordingly (relation + ordered). A query construct is only treated as a range if + dash is used and that is surrounded by white-space. So + -1980 is treated as term + "-1980" not <= 1980. + If - 1980 is used, however, that is + treated as a range. +
r=r + Similar to r=o but assumes that terms + are non-negative (not prefixed with -). + Thus, a dash will always be treated as a range. + The construct 1980-1990 is + treated as a range with r=r but as a + single term "1980-1990" with + r=o. The special attribute + r=r is available in YAZ 2.0.24 or later. +
t=l + Allows term to be left-truncated. + If term is of the form ?x, the resulting + Type-1 term is x and truncation is left. +
t=r + Allows term to be right-truncated. + If term is of the form x?, the resulting + Type-1 term is x and truncation is right. +
t=n + If term is does not include ?, the + truncation attribute is set to none (100). +
t=b + Allows term to be both left&right truncated. + If term is of the form ?x?, the + resulting term is x and trunctation is + set to both left&right. +


+

Example 8.9. CCL profile

+ Consider the following definition: +

+	ti       u=4 s=1
+	au       u=1 s=1
+	term     s=105
+	ranked   r=102
+	date     u=30 r=o
+      

+ ti and au both set + structure attribute to phrase (s=1). + ti + sets the use-attribute to 4. au sets the + use-attribute to 1. + When no qualifiers are used in the query the structure-attribute is + set to free-form-text (105) (rule for term). + The date sets the relation attribute to + the relation used in the CCL query and sets the use attribute + to 30 (Bib-1 Date). +

+ You can combine attributes. To Search for "ranked title" you + can do +

+	 ti,ranked=knuth computer
+	

+ which will set relation=ranked, use=title, structure=phrase. +

+ Query +

+	 date > 1980
+	

+ is a valid query. But +

+	 ti > 1980
+	

+ is invalid. +


1.2.2.2. Qualifier alias

+ A qualifier alias is of the form: +

+ q + q1 q2 .. +

+ which declares q to + be an alias for q1, + q2... such that the CCL + query q=x is equivalent to + q1=x or q2=x or .... +

1.2.2.3. Comments

+ Lines with white space or lines that begin with + character # are treated as comments. +

1.2.2.4. Directives

+ Directive specifications takes the form +

@directive value +

Table 8.3. CCL directives

NameDescriptionDefault
truncationTruncation character?
fieldSpecifies how multiple fields are to be + combined. There are two modes: or: + multiple qualifier fields are ORed, + merge: attributes for the qualifier + fields are merged and assigned to one term. + merge
caseSpecificies if CCL operatores and qualifiers should be + compared with case sensitivity or not. Specify 0 for + case sensitive; 1 for case insensitive.0
andSpecifies token for CCL operator AND.and
orSpecifies token for CCL operator OR.or
notSpecifies token for CCL operator NOT.not
setSpecifies token for CCL operator SET.set

1.2.3. CCL API

+ All public definitions can be found in the header file + ccl.h. A profile identifier is of type + CCL_bibset. A profile must be created with the call + to the function ccl_qual_mk which returns a profile + handle of type CCL_bibset. +

+ To read a file containing qualifier definitions the function + ccl_qual_file may be convenient. This function + takes an already opened FILE handle pointer as + argument along with a CCL_bibset handle. +

+ To parse a simple string with a FIND query use the function +

+struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str,
+                                   int *error, int *pos);
+     

+ which takes the CCL profile (bibset) and query + (str) as input. Upon successful completion the RPN + tree is returned. If an error occur, such as a syntax error, the integer + pointed to by error holds the error code and + pos holds the offset inside query string in which + the parsing failed. +

+ An English representation of the error may be obtained by calling + the ccl_err_msg function. The error codes are + listed in ccl.h. +

+ To convert the CCL RPN tree (type + struct ccl_rpn_node *) + to the Z_RPNQuery of YAZ the function ccl_rpn_query + must be used. This function which is part of YAZ is implemented in + yaz-ccl.c. + After calling this function the CCL RPN tree is probably no longer + needed. The ccl_rpn_delete destroys the CCL RPN tree. +

+ A CCL profile may be destroyed by calling the + ccl_qual_rm function. +

+ The token names for the CCL operators may be changed by setting the + globals (all type char *) + ccl_token_and, ccl_token_or, + ccl_token_not and ccl_token_set. + An operator may have aliases, i.e. there may be more than one name for + the operator. To do this, separate each alias with a space character. +

1.3. CQL

+ CQL + - Common Query Language - was defined for the + SRU protocol. + In many ways CQL has a similar syntax to CCL. + The objective of CQL is different. Where CCL aims to be + an end-user language, CQL is the protocol + query language for SRU. +

Tip

+ If you are new to CQL, read the + Gentle Introduction. +

+ The CQL parser in YAZ provides the following: +

  • + It parses and validates a CQL query. +

  • + It generates a C structure that allows you to convert + a CQL query to some other query language, such as SQL. +

  • + The parser converts a valid CQL query to PQF, thus providing a + way to use CQL for both SRU servers and Z39.50 targets at the + same time. +

  • + The parser converts CQL to + XCQL. + XCQL is an XML representation of CQL. + XCQL is part of the SRU specification. However, since SRU + supports CQL only, we don't expect XCQL to be widely used. + Furthermore, CQL has the advantage over XCQL that it is + easy to read. +

+

1.3.1. CQL parsing

+ A CQL parser is represented by the CQL_parser + handle. Its contents should be considered YAZ internal (private). +

+#include <yaz/cql.h>
+
+typedef struct cql_parser *CQL_parser;
+
+CQL_parser cql_parser_create(void);
+void cql_parser_destroy(CQL_parser cp);
+      

+ A parser is created by cql_parser_create and + is destroyed by cql_parser_destroy. +

+ To parse a CQL query string, the following function + is provided: +

+int cql_parser_string(CQL_parser cp, const char *str);
+      

+ A CQL query is parsed by the cql_parser_string + which takes a query str. + If the query was valid (no syntax errors), then zero is returned; + otherwise -1 is returned to indicate a syntax error. +

+

+int cql_parser_stream(CQL_parser cp,
+                      int (*getbyte)(void *client_data),
+                      void (*ungetbyte)(int b, void *client_data),
+                      void *client_data);
+
+int cql_parser_stdio(CQL_parser cp, FILE *f);
+      

+ The functions cql_parser_stream and + cql_parser_stdio parses a CQL query + - just like cql_parser_string. + The only difference is that the CQL query can be + fed to the parser in different ways. + The cql_parser_stream uses a generic + byte stream as input. The cql_parser_stdio + uses a FILE handle which is opened for reading. +

1.3.2. CQL tree

+ The the query string is valid, the CQL parser + generates a tree representing the structure of the + CQL query. +

+

+struct cql_node *cql_parser_result(CQL_parser cp);
+      

+ cql_parser_result returns the + a pointer to the root node of the resulting tree. +

+ Each node in a CQL tree is represented by a + struct cql_node. + It is defined as follows: +

+#define CQL_NODE_ST 1
+#define CQL_NODE_BOOL 2
+struct cql_node {
+    int which;
+    union {
+        struct {
+            char *index;
+	    char *index_uri;
+            char *term;
+            char *relation;
+	    char *relation_uri;
+            struct cql_node *modifiers;
+        } st;
+        struct {
+            char *value;
+            struct cql_node *left;
+            struct cql_node *right;
+            struct cql_node *modifiers;
+        } boolean;
+    } u;
+};
+      

+ There are two node types: search term (ST) and boolean (BOOL). + A modifier is treated as a search term too. +

+ The search term node has five members: +

  • + index: index for search term. + If an index is unspecified for a search term, + index will be NULL. +

  • + index_uri: index URi for search term + or NULL if none could be resolved for the index. +

  • + term: the search term itself. +

  • + relation: relation for search term. +

  • + relation_uri: relation URI for search term. +

  • + modifiers: relation modifiers for search + term. The modifiers list itself of cql_nodes + each of type ST. +

+

+ The boolean node represents both and, + or, not as well as + proximity. +

  • + left and right: left + - and right operand respectively. +

  • + modifiers: proximity arguments. +

+

1.3.3. CQL to PQF conversion

+ Conversion to PQF (and Z39.50 RPN) is tricky by the fact + that the resulting RPN depends on the Z39.50 target + capabilities (combinations of supported attributes). + In addition, the CQL and SRU operates on index prefixes + (URI or strings), whereas the RPN uses Object Identifiers + for attribute sets. +

+ The CQL library of YAZ defines a cql_transform_t + type. It represents a particular mapping between CQL and RPN. + This handle is created and destroyed by the functions: +

+cql_transform_t cql_transform_open_FILE (FILE *f);
+cql_transform_t cql_transform_open_fname(const char *fname);
+void cql_transform_close(cql_transform_t ct);
+      

+ The first two functions create a tranformation handle from + either an already open FILE or from a filename respectively. +

+ The handle is destroyed by cql_transform_close + in which case no further reference of the handle is allowed. +

+ When a cql_transform_t handle has been created + you can convert to RPN. +

+int cql_transform_buf(cql_transform_t ct,
+                      struct cql_node *cn, char *out, int max);
+      

+ This function converts the CQL tree cn + using handle ct. + For the resulting PQF, you supply a buffer out + which must be able to hold at at least max + characters. +

+ If conversion failed, cql_transform_buf + returns a non-zero SRU error code; otherwise zero is returned + (conversion successful). The meanings of the numeric error + codes are listed in the SRU specifications at + http://www.loc.gov/standards/sru/diagnostics-list.html +

+ If conversion fails, more information can be obtained by calling +

+int cql_transform_error(cql_transform_t ct, char **addinfop);
+      

+ This function returns the most recently returned numeric + error-code and sets the string-pointer at + *addinfop to point to a string containing + additional information about the error that occurred: for + example, if the error code is 15 (``Illegal or unsupported context + set''), the additional information is the name of the requested + context set that was not recognised. +

+ The SRU error-codes may be translated into brief human-readable + error messages using +

+const char *cql_strerror(int code);
+      

+

+ If you wish to be able to produce a PQF result in a different + way, there are two alternatives. +

+void cql_transform_pr(cql_transform_t ct,
+                      struct cql_node *cn,
+                      void (*pr)(const char *buf, void *client_data),
+                      void *client_data);
+
+int cql_transform_FILE(cql_transform_t ct,
+                       struct cql_node *cn, FILE *f);
+      

+ The former function produces output to a user-defined + output stream. The latter writes the result to an already + open FILE. +

1.3.4. Specification of CQL to RPN mappings

+ The file supplied to functions + cql_transform_open_FILE, + cql_transform_open_fname follows + a structure found in many Unix utilities. + It consists of mapping specifications - one per line. + Lines starting with # are ignored (comments). +

+ Each line is of the form +


+       CQL pattern =   RPN equivalent
+      

+

+ An RPN pattern is a simple attribute list. Each attribute pair + takes the form: +


+       [settype=value
+      

+ The attribute set is optional. + The type is the attribute type, + value the attribute value. +

+ The following CQL patterns are recognized: +

+ index.set.name +

+ This pattern is invoked when a CQL index, such as + dc.title is converted. set + and name are the context set and index + name respectively. + Typically, the RPN specifies an equivalent use attribute. +

+ For terms not bound by an index the pattern + index.cql.serverChoice is used. + Here, the prefix cql is defined as + http://www.loc.gov/zing/cql/cql-indexes/v1.0/. + If this pattern is not defined, the mapping will fail. +

+ qualifier.set.name + (DEPRECATED) +

+ For backwards compatibility, this is recognised as a synonym of + index.set.name +

+ relation.relation +

+ This pattern specifies how a CQL relation is mapped to RPN. + pattern is name of relation + operator. Since = is used as + separator between CQL pattern and RPN, CQL relations + including = cannot be + used directly. To avoid a conflict, the names + ge, + eq, + le, + must be used for CQL operators, greater-than-or-equal, + equal, less-than-or-equal respectively. + The RPN pattern is supposed to include a relation attribute. +

+ For terms not bound by a relation, the pattern + relation.scr is used. If the pattern + is not defined, the mapping will fail. +

+ The special pattern, relation.* is used + when no other relation pattern is matched. +

+ relationModifier.mod +

+ This pattern specifies how a CQL relation modifier is mapped to RPN. + The RPN pattern is usually a relation attribute. +

+ structure.type +

+ This pattern specifies how a CQL structure is mapped to RPN. + Note that this CQL pattern is somewhat to similar to + CQL pattern relation. + The type is a CQL relation. +

+ The pattern, structure.* is used + when no other structure pattern is matched. + Usually, the RPN equivalent specifies a structure attribute. +

+ position.type +

+ This pattern specifies how the anchor (position) of + CQL is mapped to RPN. + The type is one + of first, any, + last, firstAndLast. +

+ The pattern, position.* is used + when no other position pattern is matched. +

+ set.prefix +

+ This specification defines a CQL context set for a given prefix. + The value on the right hand side is the URI for the set - + not RPN. All prefixes used in + index patterns must be defined this way. +

+

Example 8.10. CQL to RPN mapping file

+ This simple file defines two context sets, three indexes and three + relations, a position pattern and a default structure. +

+       set.cql    = http://www.loc.gov/zing/cql/context-sets/cql/v1.1/
+       set.dc     = http://www.loc.gov/zing/cql/dc-indexes/v1.0/
+
+       index.cql.serverChoice = 1=1016
+       index.dc.title         = 1=4
+       index.dc.subject       = 1=21
+  
+       relation.<                 = 2=1
+       relation.eq                = 2=3
+       relation.scr               = 2=3
+
+       position.any               = 3=3 6=1
+
+       structure.*                = 4=1
+
+      

+ With the mappings above, the CQL query +

+        computer
+       

+ is converted to the PQF: +

+        @attr 1=1016 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "computer"
+       

+ by rules index.cql.serverChoice, + relation.scr, structure.*, + position.any. +

+ CQL query +

+        computer^
+       

+ is rejected, since position.right is + undefined. +

+ CQL query +

+        >my = "http://www.loc.gov/zing/cql/dc-indexes/v1.0/" my.title = x
+       

+ is converted to +

+        @attr 1=4 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "x"
+       

+


1.3.5. CQL to XCQL conversion

+ Conversion from CQL to XCQL is trivial and does not + require a mapping to be defined. + There three functions to choose from depending on the + way you wish to store the resulting output (XML buffer + containing XCQL). +

+int cql_to_xml_buf(struct cql_node *cn, char *out, int max);
+void cql_to_xml(struct cql_node *cn, 
+                void (*pr)(const char *buf, void *client_data),
+                void *client_data);
+void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
+      

+ Function cql_to_xml_buf converts + to XCQL and stores result in a user supplied buffer of a given + max size. +

+ cql_to_xml writes the result in + a user defined output stream. + cql_to_xml_stdio writes to a + a file. +

diff --git a/dependencies/yaz-2.1.28/doc/tools.log.html b/dependencies/yaz-2.1.28/doc/tools.log.html new file mode 100644 index 0000000..1073286 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.log.html @@ -0,0 +1,117 @@ +4. Log

4. Log

+ YAZ has evolved a fairly complex log system which should be useful both + for debugging YAZ itself, debugging applications that use YAZ, and for + production use of those applications. +

+ The log functions are declared in header yaz/log.h + and implemented in src/log.c. + Due to name clash with syslog and some math utilities the logging + interface has been modified as of YAZ 2.0.29. The obsolete interface + is still available if in header file yaz/log.h. + The key points of the interface are: +

+   void yaz_log(int level, const char *fmt, ...)
+
+   void yaz_log_init(int level, const char *prefix, const char *name);
+   void yaz_log_init_file(const char *fname);
+   void yaz_log_init_level(int level);
+   void yaz_log_init_prefix(const char *prefix);
+   void yaz_log_time_format(const char *fmt);
+   void yaz_log_init_max_size(int mx);
+
+   int yaz_log_mask_str(const char *str);
+   int yaz_log_module_level(const char *name);
+  

+ The reason for the whole log module is the yaz_log + function. It takes a bitmask indicating the log levels, a + printf-like format string, and a variable number of + arguments to log. +

+ The log level is a bit mask, that says on which level(s) + the log entry should be made, and optionally set some behaviour of the + logging. In the most simple cases, it can be one of YLOG_FATAL, + YLOG_DEBUG, YLOG_WARN, YLOG_LOG. Those can be combined with bits + that modify the way the log entry is written:YLOG_ERRNO, + YLOG_NOTIME, YLOG_FLUSH. + Most of the rest of the bits are deprecated, and should not be used. Use + the dynamic log levels instead. +

+ Applications that use YAZ, should not use the LOG_LOG for ordinary + messages, but should make use of the dynamic loglevel system. This consists + of two parts, defining the loglevel and checking it. +

+ To define the log levels, the (main) program should pass a string to + yaz_log_mask_str to define which log levels are to be + logged. This string should be a comma-separated list of log level names, + and can contain both hard-coded names and dynamic ones. The log level + calculation starts with YLOG_DEFAULT_LEVEL and adds a bit + for each word it meets, unless the word starts with a '-', in which case it + clears the bit. If the string 'none' is found, + all bits are cleared. Typically this string comes from the command-line, + often identified by -v. The + yaz_log_mask_str returns a log level that should be + passed to yaz_log_init_level for it to take effect. +

+ Each module should check what log bits it should be used, by calling + yaz_log_module_level with a suitable name for the + module. The name is cleared from a preceding path and an extension, if any, + so it is quite possible to use __FILE__ for it. If the + name has been passed to yaz_log_mask_str, the routine + returns a non-zero bitmask, which should then be used in consequent calls + to yaz_log. (It can also be tested, so as to avoid unnecessary calls to + yaz_log, in time-critical places, or when the log entry would take time + to construct.) +

+ Yaz uses the following dynamic log levels: + server, session, request, requestdetail for the server + functionality. + zoom for the zoom client api. + ztest for the simple test server. + malloc, nmem, odr, eventl for internal debugging of yaz itself. + Of course, any program using yaz is welcome to define as many new ones, as + it needs. +

+ By default the log is written to stderr, but this can be changed by a call + to yaz_log_init_file or + yaz_log_init. If the log is directed to a file, the + file size is checked at every write, and if it exceeds the limit given in + yaz_log_init_max_size, the log is rotated. The + rotation keeps one old version (with a .1 appended to + the name). The size defaults to 1GB. Setting it to zero will disable the + rotation feature. +

+  A typical yaz-log looks like this
+  13:23:14-23/11 yaz-ztest(1) [session] Starting session from tcp:127.0.0.1 (pid=30968)
+  13:23:14-23/11 yaz-ztest(1) [request] Init from 'YAZ' (81) (ver 2.0.28) OK
+  13:23:17-23/11 yaz-ztest(1) [request] Search Z: @attrset Bib-1 foo  OK:7 hits
+  13:23:22-23/11 yaz-ztest(1) [request] Present: [1] 2+2  OK 2 records returned
+  13:24:13-23/11 yaz-ztest(1) [request] Close OK
+  

+ The log entries start with a time stamp. This can be omitted by setting the + YLOG_NOTIME bit in the loglevel. This way automatic tests + can be hoped to produce identical log files, that are easy to diff. The + format of the time stamp can be set with + yaz_log_time_format, which takes a format string just + like strftime. +

+ Next in a log line comes the prefix, often the name of the program. For + yaz-based servers, it can also contain the session number. Then + comes one or more logbits in square brackets, depending on the logging + level set by yaz_log_init_level and the loglevel + passed to yaz_log_init_level. Finally comes the format + string and additional values passed to yaz_log +

+ The log level YLOG_LOGLVL, enabled by the string + loglevel, will log all the log-level affecting + operations. This can come in handy if you need to know what other log + levels would be useful. Grep the logfile for [loglevel]. +

+ The log system is almost independent of the rest of YAZ, the only + important dependence is of nmem, and that only for + using the semaphore definition there. +

+ The dynamic log levels and log rotation were introduced in YAZ 2.0.28. At + the same time, the log bit names were changed from + LOG_something to YLOG_something, + to avoid collision with syslog.h. +

diff --git a/dependencies/yaz-2.1.28/doc/tools.marc.html b/dependencies/yaz-2.1.28/doc/tools.marc.html new file mode 100644 index 0000000..54062c3 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.marc.html @@ -0,0 +1,78 @@ +5. MARC

5. MARC

+ YAZ provides a fast utility that decodes MARC records and + encodes to a varity of output formats. The MARC records must + be encoded in ISO2709. +

+    #include <yaz/marcdisp.h>
+
+    /* create handler */
+    yaz_marc_t yaz_marc_create(void);
+    /* destroy */
+    void yaz_marc_destroy(yaz_marc_t mt);
+
+    /* set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */
+    void yaz_marc_xml(yaz_marc_t mt, int xmlmode);
+    #define YAZ_MARC_LINE      0
+    #define YAZ_MARC_SIMPLEXML 1
+    #define YAZ_MARC_OAIMARC   2
+    #define YAZ_MARC_MARCXML   3
+    #define YAZ_MARC_ISO2709   4
+    #define YAZ_MARC_XCHANGE   5
+
+    /* supply iconv handle for character set conversion .. */
+    void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
+
+    /* set debug level, 0=none, 1=more, 2=even more, .. */
+    void yaz_marc_debug(yaz_marc_t mt, int level);
+
+    /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure.
+    On success, result in *result with size *rsize. */
+    int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize,
+                             char **result, int *rsize);
+
+    /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure.
+       On success, result in WRBUF */
+    int yaz_marc_decode_wrbuf (yaz_marc_t mt, const char *buf,
+                               int bsize, WRBUF wrbuf);
+
+   

+ A MARC conversion handle must be created by using + yaz_marc_create and destroyed + by calling yaz_marc_destroy. +

+ All other function operate on a yaz_marc_t handle. + The output is specified by a call to yaz_marc_xml. + The xmlmode must be one of +

YAZ_MARC_LINE

+ A simple line-by-line format suitable for display but not + recommend for further (machine) processing. +

YAZ_MARC_MARXML

+ The resulting record is converted to MARCXML. +

YAZ_MARC_ISO2709

+ The resulting record is converted to ISO2709 (MARC). +

+

+ The actual conversion functions are + yaz_marc_decode_buf and + yaz_marc_decode_wrbuf which decodes and encodes + a MARC record. The former function operates on simple buffers, the + stores the resulting record in a WRBUF handle (WRBUF is a simple string + type). +

Example 8.11. Display of MARC record

+ The followint program snippet illustrates how the MARC API may + be used to convert a MARC record to the line-by-line format: +

+      void print_marc(const char *marc_buf, int marc_buf_size)
+      {
+         char *result;      /* for result buf */
+         int result_len;    /* for size of result */
+         yaz_marc_t mt = yaz_marc_create();
+         yaz_marc_xml(mt, YAZ_MARC_LINE);
+         yaz_marc_decode_buf(mt, marc_buf, marc_buf_size,
+                             &result, &result_len);
+         fwrite(result, result_len, 1, stdout);
+         yaz_marc_destroy(mt);  /* note that result is now freed... */
+      }
+
+      

+


diff --git a/dependencies/yaz-2.1.28/doc/tools.nmem.html b/dependencies/yaz-2.1.28/doc/tools.nmem.html new file mode 100644 index 0000000..50e6264 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.nmem.html @@ -0,0 +1,46 @@ +3. Nibble Memory

3. Nibble Memory

+ Sometimes when you need to allocate and construct a large, + interconnected complex of structures, it can be a bit of a pain to + release the associated memory again. For the structures describing the + Z39.50 PDUs and related structures, it is convenient to use the + memory-management system of the ODR subsystem (see + Section 2, “Using ODR”). However, in some circumstances + where you might otherwise benefit from using a simple nibble memory + management system, it may be impractical to use + odr_malloc() and odr_reset(). + For this purpose, the memory manager which also supports the ODR + streams is made available in the NMEM module. The external interface + to this module is given in the nmem.h file. +

+ The following prototypes are given: +

+    NMEM nmem_create(void);
+    void nmem_destroy(NMEM n);
+    void *nmem_malloc(NMEM n, int size);
+    void nmem_reset(NMEM n);
+    int nmem_total(NMEM n);
+    void nmem_init(void);
+    void nmem_exit(void);
+   

+ The nmem_create() function returns a pointer to a + memory control handle, which can be released again by + nmem_destroy() when no longer needed. + The function nmem_malloc() allocates a block of + memory of the requested size. A call to nmem_reset() + or nmem_destroy() will release all memory allocated + on the handle since it was created (or since the last call to + nmem_reset(). The function + nmem_total() returns the number of bytes currently + allocated on the handle. +

+ The nibble memory pool is shared amongst threads. POSIX + mutex'es and WIN32 Critical sections are introduced to keep the + module thread safe. Function nmem_init() + initializes the nibble memory library and it is called automatically + the first time the YAZ.DLL is loaded. YAZ uses + function DllMain to achieve this. You should + not call nmem_init or + nmem_exit unless you're absolute sure what + you're doing. Note that in previous YAZ versions you'd have to call + nmem_init yourself. +

diff --git a/dependencies/yaz-2.1.28/doc/tools.oid.html b/dependencies/yaz-2.1.28/doc/tools.oid.html new file mode 100644 index 0000000..ad22219 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.oid.html @@ -0,0 +1,220 @@ +2. Object Identifiers

2. Object Identifiers

+ The basic YAZ representation of an OID is an array of integers, + terminated with the value -1. The ODR module provides two + utility-functions to create and copy this type of data elements: +

+    Odr_oid *odr_getoidbystr(ODR o, char *str);
+   

+ Creates an OID based on a string-based representation using dots (.) + to separate elements in the OID. +

+    Odr_oid *odr_oiddup(ODR odr, Odr_oid *o);
+   

+ Creates a copy of the OID referenced by the o + parameter. + Both functions take an ODR stream as parameter. This stream is used to + allocate memory for the data elements, which is released on a + subsequent call to odr_reset() on that stream. +

+ The OID module provides a higher-level representation of the + family of object identifiers which describe the Z39.50 protocol and its + related objects. The definition of the module interface is given in + the oid.h file. +

+ The interface is mainly based on the oident structure. + The definition of this structure looks like this: +

+typedef struct oident
+{
+    oid_proto proto;
+    oid_class oclass;
+    oid_value value;
+    int oidsuffix[OID_SIZE];
+    char *desc;
+} oident;
+   

+ The proto field takes one of the values +

+    PROTO_Z3950
+    PROTO_GENERAL
+   

+ Use PROTO_Z3950 for Z39.50 Object Identifers, + PROTO_GENERAL for other types (such as + those associated with ILL). +

+ + The oclass field takes one of the values +

+    CLASS_APPCTX
+    CLASS_ABSYN
+    CLASS_ATTSET
+    CLASS_TRANSYN
+    CLASS_DIAGSET
+    CLASS_RECSYN
+    CLASS_RESFORM
+    CLASS_ACCFORM
+    CLASS_EXTSERV
+    CLASS_USERINFO
+    CLASS_ELEMSPEC
+    CLASS_VARSET
+    CLASS_SCHEMA
+    CLASS_TAGSET
+    CLASS_GENERAL
+   

+ corresponding to the OID classes defined by the Z39.50 standard. + + Finally, the value field takes one of the values +

+    VAL_APDU
+    VAL_BER
+    VAL_BASIC_CTX
+    VAL_BIB1
+    VAL_EXP1
+    VAL_EXT1
+    VAL_CCL1
+    VAL_GILS
+    VAL_WAIS
+    VAL_STAS
+    VAL_DIAG1
+    VAL_ISO2709
+    VAL_UNIMARC
+    VAL_INTERMARC
+    VAL_CCF
+    VAL_USMARC
+    VAL_UKMARC
+    VAL_NORMARC
+    VAL_LIBRISMARC
+    VAL_DANMARC
+    VAL_FINMARC
+    VAL_MAB
+    VAL_CANMARC
+    VAL_SBN
+    VAL_PICAMARC
+    VAL_AUSMARC
+    VAL_IBERMARC
+    VAL_EXPLAIN
+    VAL_SUTRS
+    VAL_OPAC
+    VAL_SUMMARY
+    VAL_GRS0
+    VAL_GRS1
+    VAL_EXTENDED
+    VAL_RESOURCE1
+    VAL_RESOURCE2
+    VAL_PROMPT1
+    VAL_DES1
+    VAL_KRB1
+    VAL_PRESSET
+    VAL_PQUERY
+    VAL_PCQUERY
+    VAL_ITEMORDER
+    VAL_DBUPDATE
+    VAL_EXPORTSPEC
+    VAL_EXPORTINV
+    VAL_NONE
+    VAL_SETM
+    VAL_SETG
+    VAL_VAR1
+    VAL_ESPEC1
+   

+ again, corresponding to the specific OIDs defined by the standard. + Refer to the + + Registry of Z39.50 Object Identifiers for the + whole list. +

+ The desc field contains a brief, mnemonic name for the OID in question. +

+ The function +

+    struct oident *oid_getentbyoid(int *o);
+   

+ takes as argument an OID, and returns a pointer to a static area + containing an oident structure. You typically use + this function when you receive a PDU containing an OID, and you wish + to branch out depending on the specific OID value. +

+ The function +

+    int *oid_ent_to_oid(struct oident *ent, int *dst);
+   

+ Takes as argument an oident structure - in which + the proto, oclass/, and + value fields are assumed to be set correctly - + and returns a pointer to a the buffer as given by dst + containing the base + representation of the corresponding OID. The function returns + NULL and the array dst is unchanged if a mapping couldn't place. + The array dst should be at least of size + OID_SIZE. +

+ + The oid_ent_to_oid() function can be used whenever + you need to prepare a PDU containing one or more OIDs. The separation of + the protocol element from the remainder of the + OID-description makes it simple to write applications that can + communicate with either Z39.50 or OSI SR-based applications. +

+ The function +

+    oid_value oid_getvalbyname(const char *name);
+   

+ takes as argument a mnemonic OID name, and returns the + /value field of the first entry in the database that + contains the given name in its desc field. +

+ Three utility functions are provided for translating OIDs' + symbolic names (e.g. Usmarc into OID structures + (int arrays) and strings containing the OID in dotted notation + (e.g. 1.2.840.10003.9.5.1). They are: +

+    int *oid_name_to_oid(oid_class oclass, const char *name, int *oid);
+    char *oid_to_dotstring(const int *oid, char *oidbuf);
+    char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf);
+   

+ oid_name_to_oid() + translates the specified symbolic name, + interpreted as being of class oclass. (The + class must be specified as many symbolic names exist within + multiple classes - for example, Zthes is the + symbolic name of an attribute set, a schema and a tag-set.) The + sequence of integers representing the OID is written into the + area oid provided by the caller; it is the + caller's responsibility to ensure that this area is large enough + to contain the translated OID. As a convenience, the address of + the buffer (i.e. the value of oid) is + returned. +

+ oid_to_dotstring() + Translates the int-array oid into a dotted + string which is written into the area oidbuf + supplied by the caller; it is the caller's responsibility to + ensure that this area is large enough. The address of the buffer + is returned. +

+ oid_name_to_dotstring() + combines the previous two functions to derive a dotted string + representing the OID specified by oclass and + name, writing it into the buffer passed as + oidbuf and returning its address. +

+ Finally, the module provides the following utility functions, whose + meaning should be obvious: +

+    void oid_oidcpy(int *t, int *s);
+    void oid_oidcat(int *t, int *s);
+    int oid_oidcmp(int *o1, int *o2);
+    int oid_oidlen(int *o);
+   

Note

+ The OID module has been criticized - and perhaps rightly so + - for needlessly abstracting the + representation of OIDs. Other toolkits use a simple + string-representation of OIDs with good results. In practice, we have + found the interface comfortable and quick to work with, and it is a + simple matter (for what it's worth) to create applications compatible + with both ISO SR and Z39.50. Finally, the use of the + /oident database is by no means mandatory. + You can easily create your own system for representing OIDs, as long + as it is compatible with the low-level integer-array representation + of the ODR module. +

diff --git a/dependencies/yaz-2.1.28/doc/tools.xml b/dependencies/yaz-2.1.28/doc/tools.xml new file mode 100644 index 0000000..09f4835 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/tools.xml @@ -0,0 +1,2079 @@ + + Supporting Tools + + + In support of the service API - primarily the ASN module, which + provides the pro-grammatic interface to the Z39.50 APDUs, &yaz; contains + a collection of tools that support the development of applications. + + + Query Syntax Parsers + + + Since the type-1 (RPN) query structure has no direct, useful string + representation, every origin application needs to provide some form of + mapping from a local query notation or representation to a + Z_RPNQuery structure. Some programmers will prefer to + construct the query manually, perhaps using + odr_malloc() to simplify memory management. + The &yaz; distribution includes three separate, query-generating tools + that may be of use to you. + + + Prefix Query Format + + + Since RPN or reverse polish notation is really just a fancy way of + describing a suffix notation format (operator follows operands), it + would seem that the confusion is total when we now introduce a prefix + notation for RPN. The reason is one of simple laziness - it's somewhat + simpler to interpret a prefix format, and this utility was designed + for maximum simplicity, to provide a baseline representation for use + in simple test applications and scripting environments (like Tcl). The + demonstration client included with YAZ uses the PQF. + + + + + The PQF have been adopted by other parties developing Z39.50 + software. It is often referred to as Prefix Query Notation + - PQN. + + + + The PQF is defined by the pquery module in the YAZ library. + There are two sets of function that have similar behavior. First + set operates on a PQF parser handle, second set doesn't. First set + set of functions are more flexible than the second set. Second set + is obsolete and is only provided to ensure backwards compatibility. + + + First set of functions all operate on a PQF parser handle: + + + #include <yaz/pquery.h> + + YAZ_PQF_Parser yaz_pqf_create (void); + + void yaz_pqf_destroy (YAZ_PQF_Parser p); + + Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, const char *qbuf); + + Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o, + Odr_oid **attributeSetId, const char *qbuf); + + + int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off); + + + A PQF parser is created and destructed by functions + yaz_pqf_create and + yaz_pqf_destroy respectively. + Function yaz_pqf_parse parses query given + by string qbuf. If parsing was successful, + a Z39.50 RPN Query is returned which is created using ODR stream + o. If parsing failed, a NULL pointer is + returned. + Function yaz_pqf_scan takes a scan query in + qbuf. If parsing was successful, the function + returns attributes plus term pointer and modifies + attributeSetId to hold attribute set for the + scan request - both allocated using ODR stream o. + If parsing failed, yaz_pqf_scan returns a NULL pointer. + Error information for bad queries can be obtained by a call to + yaz_pqf_error which returns an error code and + modifies *msg to point to an error description, + and modifies *off to the offset within last + query were parsing failed. + + + The second set of functions are declared as follows: + + + #include <yaz/pquery.h> + + Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf); + + Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto, + Odr_oid **attributeSetP, const char *qbuf); + + int p_query_attset (const char *arg); + + + The function p_query_rpn() takes as arguments an + &odr; stream (see section The ODR Module) + to provide a memory source (the structure created is released on + the next call to odr_reset() on the stream), a + protocol identifier (one of the constants PROTO_Z3950 and + PROTO_SR), an attribute set reference, and + finally a null-terminated string holding the query string. + + + If the parse went well, p_query_rpn() returns a + pointer to a Z_RPNQuery structure which can be + placed directly into a Z_SearchRequest. + If parsing failed, due to syntax error, a NULL pointer is returned. + + + The p_query_attset specifies which attribute set + to use if the query doesn't specify one by the + @attrset operator. + The p_query_attset returns 0 if the argument is a + valid attribute set specifier; otherwise the function returns -1. + + + + The grammar of the PQF is as follows: + + + + query ::= top-set query-struct. + + top-set ::= [ '@attrset' string ] + + query-struct ::= attr-spec | simple | complex | '@term' term-type query + + attr-spec ::= '@attr' [ string ] string query-struct + + complex ::= operator query-struct query-struct. + + operator ::= '@and' | '@or' | '@not' | '@prox' proximity. + + simple ::= result-set | term. + + result-set ::= '@set' string. + + term ::= string. + + proximity ::= exclusion distance ordered relation which-code unit-code. + + exclusion ::= '1' | '0' | 'void'. + + distance ::= integer. + + ordered ::= '1' | '0'. + + relation ::= integer. + + which-code ::= 'known' | 'private' | integer. + + unit-code ::= integer. + + term-type ::= 'general' | 'numeric' | 'string' | 'oid' | 'datetime' | 'null'. + + + + You will note that the syntax above is a fairly faithful + representation of RPN, except for the Attribute, which has been + moved a step away from the term, allowing you to associate one or more + attributes with an entire query structure. The parser will + automatically apply the given attributes to each term as required. + + + + The @attr operator is followed by an attribute specification + (attr-spec above). The specification consists + of an optional attribute set, an attribute type-value pair and + a sub-query. The attribute type-value pair is packed in one string: + an attribute type, an equals sign, and an attribute value, like this: + @attr 1=1003. + The type is always an integer but the value may be either an + integer or a string (if it doesn't start with a digit character). + A string attribute-value is encoded as a Type-1 ``complex'' + attribute with the list of values containing the single string + specified, and including no semantic indicators. + + + + Version 3 of the Z39.50 specification defines various encoding of terms. + Use @term type + string, + where type is one of: general, + numeric or string + (for InternationalString). + If no term type has been given, the general form + is used. This is the only encoding allowed in both versions 2 and 3 + of the Z39.50 standard. + + + + Using Proximity Operators with PQF + + + This is an advanced topic, describing how to construct + queries that make very specific requirements on the + relative location of their operands. + You may wish to skip this section and go straight to + the example PQF queries. + + + + + Most Z39.50 servers do not support proximity searching, or + support only a small subset of the full functionality that + can be expressed using the PQF proximity operator. Be + aware that the ability to express a + query in PQF is no guarantee that any given server will + be able to execute it. + + + + + + The proximity operator @prox is a special + and more restrictive version of the conjunction operator + @and. Its semantics are described in + section 3.7.2 (Proximity) of Z39.50 the standard itself, which + can be read on-line at + + + + In PQF, the proximity operation is represented by a sequence + of the form + +@prox exclusion distance ordered relation which-code unit-code + + in which the meanings of the parameters are as described in in + the standard, and they can take the following values: + + exclusion + 0 = false (i.e. the proximity condition specified by the + remaining parameters must be satisfied) or + 1 = true (the proximity condition specified by the + remaining parameters must not be + satisifed). + + distance + An integer specifying the difference between the locations + of the operands: e.g. two adjacent words would have + distance=1 since their locations differ by one unit. + + ordered + 1 = ordered (the operands must occur in the order the + query specifies them) or + 0 = unordered (they may appear in either order). + + relation + Recognised values are + 1 (lessThan), + 2 (lessThanOrEqual), + 3 (equal), + 4 (greaterThanOrEqual), + 5 (greaterThan) and + 6 (notEqual). + + which-code + known + or + k + (the unit-code parameter is taken from the well-known list + of alternatives described in below) or + private + or + p + (the unit-code paramater has semantics specific to an + out-of-band agreement such as a profile). + + unit-code + If the which-code parameter is known + then the recognised values are + 1 (character), + 2 (word), + 3 (sentence), + 4 (paragraph), + 5 (section), + 6 (chapter), + 7 (document), + 8 (element), + 9 (subelement), + 10 (elementType) and + 11 (byte). + If which-code is private then the + acceptable values are determined by the profile. + + + (The numeric values of the relation and well-known unit-code + parameters are taken straight from + the ASN.1 of the proximity structure in the standard.) + + + + PQF queries + + PQF queries using simple terms + + + dylan + + "bob dylan" + + + + PQF boolean operators + + + @or "dylan" "zimmerman" + + @and @or dylan zimmerman when + + @and when @or dylan zimmerman + + + + PQF references to result sets + + + @set Result-1 + + @and @set seta @set setb + + + + Attributes for terms + + + @attr 1=4 computer + + @attr 1=4 @attr 4=1 "self portrait" + + @attrset exp1 @attr 1=1 CategoryList + + @attr gils 1=2008 Copenhagen + + @attr 1=/book/title computer + + + + PQF Proximity queries + + + @prox 0 3 1 2 k 2 dylan zimmerman + + + Here the parameters 0, 3, 1, 2, k and 2 represent exclusion, + distance, ordered, relation, which-code and unit-code, in that + order. So: + + + exclusion = 0: the proximity condition must hold + + + distance = 3: the terms must be three units apart + + + ordered = 1: they must occur in the order they are specified + + + relation = 2: lessThanOrEqual (to the distance of 3 units) + + + which-code is ``known'', so the standard unit-codes are used + + + unit-code = 2: word. + + + So the whole proximity query means that the words + dylan and zimmerman must + both occur in the record, in that order, differing in position + by three or fewer words (i.e. with two or fewer words between + them.) The query would find ``Bob Dylan, aka. Robert + Zimmerman'', but not ``Bob Dylan, born as Robert Zimmerman'' + since the distance in this case is four. + + + + PQF specification of search term + + + @term string "a UTF-8 string, maybe?" + + + + PQF mixed queries + + + @or @and bob dylan @set Result-1 + + @attr 4=1 @and @attr 1=1 "bob dylan" @attr 1=4 "slow train coming" + + @and @attr 2=4 @attr gils 1=2038 -114 @attr 2=2 @attr gils 1=2039 -109 + + + + The last of these examples is a spatial search: in + the GILS attribute set, + access point + 2038 indicates West Bounding Coordinate and + 2030 indicates East Bounding Coordinate, + so the query is for areas extending from -114 degrees + to no more than -109 degrees. + + + + + + + CCL + + + Not all users enjoy typing in prefix query structures and numerical + attribute values, even in a minimalistic test client. In the library + world, the more intuitive Common Command Language - CCL (ISO 8777) + has enjoyed some popularity - especially before the widespread + availability of graphical interfaces. It is still useful in + applications where you for some reason or other need to provide a + symbolic language for expressing boolean query structures. + + + + The EUROPAGATE research project working under the Libraries programme + of the European Commission's DG XIII has, amongst other useful tools, + implemented a general-purpose CCL parser which produces an output + structure that can be trivially converted to the internal RPN + representation of &yaz; (The Z_RPNQuery structure). + Since the CCL utility - along with the rest of the software + produced by EUROPAGATE - is made freely available on a liberal + license, it is included as a supplement to &yaz;. + + + CCL Syntax + + + The CCL parser obeys the following grammar for the FIND argument. + The syntax is annotated by in the lines prefixed by + ‐‐. + + + + CCL-Find ::= CCL-Find Op Elements + | Elements. + + Op ::= "and" | "or" | "not" + -- The above means that Elements are separated by boolean operators. + + Elements ::= '(' CCL-Find ')' + | Set + | Terms + | Qualifiers Relation Terms + | Qualifiers Relation '(' CCL-Find ')' + | Qualifiers '=' string '-' string + -- Elements is either a recursive definition, a result set reference, a + -- list of terms, qualifiers followed by terms, qualifiers followed + -- by a recursive definition or qualifiers in a range (lower - upper). + + Set ::= 'set' = string + -- Reference to a result set + + Terms ::= Terms Prox Term + | Term + -- Proximity of terms. + + Term ::= Term string + | string + -- This basically means that a term may include a blank + + Qualifiers ::= Qualifiers ',' string + | string + -- Qualifiers is a list of strings separated by comma + + Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<' + -- Relational operators. This really doesn't follow the ISO8777 + -- standard. + + Prox ::= '%' | '!' + -- Proximity operator + + + + CCL queries + + The following queries are all valid: + + + + dylan + + "bob dylan" + + dylan or zimmerman + + set=1 + + (dylan and bob) or set=1 + + + + Assuming that the qualifiers ti, + au + and date are defined we may use: + + + + ti=self portrait + + au=(bob dylan and slow train coming) + + date>1980 and (ti=((self portrait))) + + + + + + CCL Qualifiers + + + Qualifiers are used to direct the search to a particular searchable + index, such as title (ti) and author indexes (au). The CCL standard + itself doesn't specify a particular set of qualifiers, but it does + suggest a few short-hand notations. You can customize the CCL parser + to support a particular set of qualifiers to reflect the current target + profile. Traditionally, a qualifier would map to a particular + use-attribute within the BIB-1 attribute set. It is also + possible to set other attributes, such as the structure + attribute. + + + + A CCL profile is a set of predefined CCL qualifiers that may be + read from a file or set in the CCL API. + The YAZ client reads its CCL qualifiers from a file named + default.bib. There are four types of + lines in a CCL profile: qualifier specification, + qualifier alias, comments and directives. + + Qualifier specification + + A qualifier specification is of the form: + + + + qualifier-name + [attributeset,]type=val + [attributeset,]type=val ... + + + + where qualifier-name is the name of the + qualifier to be used (eg. ti), + type is attribute type in the attribute + set (Bib-1 is used if no attribute set is given) and + val is attribute value. + The type can be specified as an + integer or as it be specified either as a single-letter: + u for use, + r for relation,p for position, + s for structure,t for truncation + or c for completeness. + The attributes for the special qualifier name term + are used when no CCL qualifier is given in a query. + Common Bib-1 attributes + + + + + + Type + Description + + + + + u=value + + Use attribute (1). Common use attributes are + 1 Personal-name, 4 Title, 7 ISBN, 8 ISSN, 30 Date, + 62 Subject, 1003 Author), 1016 Any. Specify value + as an integer. + + + + + r=value + + Relation attribute (2). Common values are + 1 <, 2 <=, 3 =, 4 >=, 5 >, 6 <>, + 100 phonetic, 101 stem, 102 relevance, 103 always matches. + + + + + p=value + + Position attribute (3). Values: 1 first in field, 2 + first in any subfield, 3 any position in field. + + + + + s=value + + Structure attribute (4). Values: 1 phrase, 2 word, + 3 key, 4 year, 5 date, 6 word list, 100 date (un), + 101 name (norm), 102 name (un), 103 structure, 104 urx, + 105 free-form-text, 106 document-text, 107 local-number, + 108 string, 109 numeric string. + + + + + t=value + + Truncation attribute (5). Values: 1 right, 2 left, + 3 left& right, 100 none, 101 process #, 102 regular-1, + 103 regular-2, 104 CCL. + + + + + c=value + + Completeness attribute (6). Values: 1 incomplete subfield, + 2 complete subfield, 3 complete field. + + + + + +
+
+ + Refer to the complete + list of Bib-1 attributes + + + It is also possible to specify non-numeric attribute values, + which are used in combination with certain types. + The special combinations are: + + Special attribute combos + + + + + + Name + Description + + + + + s=pw + The structure is set to either word or phrase depending + on the number of tokens in a term (phrase-word). + + + + s=al + Each token in the term is ANDed. (and-list). + This does not set the structure at all. + + + + s=ol + Each token in the term is ORed. (or-list). + This does not set the structure at all. + + + + r=o + Allows ranges and the operators greather-than, less-than, ... + equals. + This sets Bib-1 relation attribute accordingly (relation + ordered). A query construct is only treated as a range if + dash is used and that is surrounded by white-space. So + -1980 is treated as term + "-1980" not <= 1980. + If - 1980 is used, however, that is + treated as a range. + + + + r=r + Similar to r=o but assumes that terms + are non-negative (not prefixed with -). + Thus, a dash will always be treated as a range. + The construct 1980-1990 is + treated as a range with r=r but as a + single term "1980-1990" with + r=o. The special attribute + r=r is available in YAZ 2.0.24 or later. + + + + t=l + Allows term to be left-truncated. + If term is of the form ?x, the resulting + Type-1 term is x and truncation is left. + + + + t=r + Allows term to be right-truncated. + If term is of the form x?, the resulting + Type-1 term is x and truncation is right. + + + + t=n + If term is does not include ?, the + truncation attribute is set to none (100). + + + + t=b + Allows term to be both left&right truncated. + If term is of the form ?x?, the + resulting term is x and trunctation is + set to both left&right. + + + + +
+
+ CCL profile + + Consider the following definition: + + + + ti u=4 s=1 + au u=1 s=1 + term s=105 + ranked r=102 + date u=30 r=o + + + ti and au both set + structure attribute to phrase (s=1). + ti + sets the use-attribute to 4. au sets the + use-attribute to 1. + When no qualifiers are used in the query the structure-attribute is + set to free-form-text (105) (rule for term). + The date sets the relation attribute to + the relation used in the CCL query and sets the use attribute + to 30 (Bib-1 Date). + + + You can combine attributes. To Search for "ranked title" you + can do + + ti,ranked=knuth computer + + which will set relation=ranked, use=title, structure=phrase. + + + Query + + date > 1980 + + is a valid query. But + + ti > 1980 + + is invalid. + + +
+ Qualifier alias + + A qualifier alias is of the form: + + + q + q1 q2 .. + + + which declares q to + be an alias for q1, + q2... such that the CCL + query q=x is equivalent to + q1=x or q2=x or .... + + + + Comments + + Lines with white space or lines that begin with + character # are treated as comments. + + + + Directives + + Directive specifications takes the form + + @directive value + + CCL directives + + + + + + + Name + Description + Default + + + + + truncation + Truncation character + ? + + + field + Specifies how multiple fields are to be + combined. There are two modes: or: + multiple qualifier fields are ORed, + merge: attributes for the qualifier + fields are merged and assigned to one term. + + merge + + + case + Specificies if CCL operatores and qualifiers should be + compared with case sensitivity or not. Specify 0 for + case sensitive; 1 for case insensitive. + 0 + + + + and + Specifies token for CCL operator AND. + and + + + + or + Specifies token for CCL operator OR. + or + + + + not + Specifies token for CCL operator NOT. + not + + + + set + Specifies token for CCL operator SET. + set + + + +
+
+
+ CCL API + + All public definitions can be found in the header file + ccl.h. A profile identifier is of type + CCL_bibset. A profile must be created with the call + to the function ccl_qual_mk which returns a profile + handle of type CCL_bibset. + + + + To read a file containing qualifier definitions the function + ccl_qual_file may be convenient. This function + takes an already opened FILE handle pointer as + argument along with a CCL_bibset handle. + + + + To parse a simple string with a FIND query use the function + + +struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str, + int *error, int *pos); + + + which takes the CCL profile (bibset) and query + (str) as input. Upon successful completion the RPN + tree is returned. If an error occur, such as a syntax error, the integer + pointed to by error holds the error code and + pos holds the offset inside query string in which + the parsing failed. + + + + An English representation of the error may be obtained by calling + the ccl_err_msg function. The error codes are + listed in ccl.h. + + + + To convert the CCL RPN tree (type + struct ccl_rpn_node *) + to the Z_RPNQuery of YAZ the function ccl_rpn_query + must be used. This function which is part of YAZ is implemented in + yaz-ccl.c. + After calling this function the CCL RPN tree is probably no longer + needed. The ccl_rpn_delete destroys the CCL RPN tree. + + + + A CCL profile may be destroyed by calling the + ccl_qual_rm function. + + + + The token names for the CCL operators may be changed by setting the + globals (all type char *) + ccl_token_and, ccl_token_or, + ccl_token_not and ccl_token_set. + An operator may have aliases, i.e. there may be more than one name for + the operator. To do this, separate each alias with a space character. + + +
+ CQL + + CQL + - Common Query Language - was defined for the + SRU protocol. + In many ways CQL has a similar syntax to CCL. + The objective of CQL is different. Where CCL aims to be + an end-user language, CQL is the protocol + query language for SRU. + + + + If you are new to CQL, read the + Gentle Introduction. + + + + The CQL parser in &yaz; provides the following: + + + + It parses and validates a CQL query. + + + + + It generates a C structure that allows you to convert + a CQL query to some other query language, such as SQL. + + + + + The parser converts a valid CQL query to PQF, thus providing a + way to use CQL for both SRU servers and Z39.50 targets at the + same time. + + + + + The parser converts CQL to + XCQL. + XCQL is an XML representation of CQL. + XCQL is part of the SRU specification. However, since SRU + supports CQL only, we don't expect XCQL to be widely used. + Furthermore, CQL has the advantage over XCQL that it is + easy to read. + + + + + CQL parsing + + A CQL parser is represented by the CQL_parser + handle. Its contents should be considered &yaz; internal (private). + +#include <yaz/cql.h> + +typedef struct cql_parser *CQL_parser; + +CQL_parser cql_parser_create(void); +void cql_parser_destroy(CQL_parser cp); + + A parser is created by cql_parser_create and + is destroyed by cql_parser_destroy. + + + To parse a CQL query string, the following function + is provided: + +int cql_parser_string(CQL_parser cp, const char *str); + + A CQL query is parsed by the cql_parser_string + which takes a query str. + If the query was valid (no syntax errors), then zero is returned; + otherwise -1 is returned to indicate a syntax error. + + + +int cql_parser_stream(CQL_parser cp, + int (*getbyte)(void *client_data), + void (*ungetbyte)(int b, void *client_data), + void *client_data); + +int cql_parser_stdio(CQL_parser cp, FILE *f); + + The functions cql_parser_stream and + cql_parser_stdio parses a CQL query + - just like cql_parser_string. + The only difference is that the CQL query can be + fed to the parser in different ways. + The cql_parser_stream uses a generic + byte stream as input. The cql_parser_stdio + uses a FILE handle which is opened for reading. + + + + CQL tree + + The the query string is valid, the CQL parser + generates a tree representing the structure of the + CQL query. + + + +struct cql_node *cql_parser_result(CQL_parser cp); + + cql_parser_result returns the + a pointer to the root node of the resulting tree. + + + Each node in a CQL tree is represented by a + struct cql_node. + It is defined as follows: + +#define CQL_NODE_ST 1 +#define CQL_NODE_BOOL 2 +struct cql_node { + int which; + union { + struct { + char *index; + char *index_uri; + char *term; + char *relation; + char *relation_uri; + struct cql_node *modifiers; + } st; + struct { + char *value; + struct cql_node *left; + struct cql_node *right; + struct cql_node *modifiers; + } boolean; + } u; +}; + + There are two node types: search term (ST) and boolean (BOOL). + A modifier is treated as a search term too. + + + The search term node has five members: + + + + index: index for search term. + If an index is unspecified for a search term, + index will be NULL. + + + + + index_uri: index URi for search term + or NULL if none could be resolved for the index. + + + + + term: the search term itself. + + + + + relation: relation for search term. + + + + + relation_uri: relation URI for search term. + + + + + modifiers: relation modifiers for search + term. The modifiers list itself of cql_nodes + each of type ST. + + + + + + + The boolean node represents both and, + or, not as well as + proximity. + + + + left and right: left + - and right operand respectively. + + + + + modifiers: proximity arguments. + + + + + + + CQL to PQF conversion + + Conversion to PQF (and Z39.50 RPN) is tricky by the fact + that the resulting RPN depends on the Z39.50 target + capabilities (combinations of supported attributes). + In addition, the CQL and SRU operates on index prefixes + (URI or strings), whereas the RPN uses Object Identifiers + for attribute sets. + + + The CQL library of &yaz; defines a cql_transform_t + type. It represents a particular mapping between CQL and RPN. + This handle is created and destroyed by the functions: + +cql_transform_t cql_transform_open_FILE (FILE *f); +cql_transform_t cql_transform_open_fname(const char *fname); +void cql_transform_close(cql_transform_t ct); + + The first two functions create a tranformation handle from + either an already open FILE or from a filename respectively. + + + The handle is destroyed by cql_transform_close + in which case no further reference of the handle is allowed. + + + When a cql_transform_t handle has been created + you can convert to RPN. + +int cql_transform_buf(cql_transform_t ct, + struct cql_node *cn, char *out, int max); + + This function converts the CQL tree cn + using handle ct. + For the resulting PQF, you supply a buffer out + which must be able to hold at at least max + characters. + + + If conversion failed, cql_transform_buf + returns a non-zero SRU error code; otherwise zero is returned + (conversion successful). The meanings of the numeric error + codes are listed in the SRU specifications at + + + + If conversion fails, more information can be obtained by calling + +int cql_transform_error(cql_transform_t ct, char **addinfop); + + This function returns the most recently returned numeric + error-code and sets the string-pointer at + *addinfop to point to a string containing + additional information about the error that occurred: for + example, if the error code is 15 (``Illegal or unsupported context + set''), the additional information is the name of the requested + context set that was not recognised. + + + The SRU error-codes may be translated into brief human-readable + error messages using + +const char *cql_strerror(int code); + + + + If you wish to be able to produce a PQF result in a different + way, there are two alternatives. + +void cql_transform_pr(cql_transform_t ct, + struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data); + +int cql_transform_FILE(cql_transform_t ct, + struct cql_node *cn, FILE *f); + + The former function produces output to a user-defined + output stream. The latter writes the result to an already + open FILE. + + + + Specification of CQL to RPN mappings + + The file supplied to functions + cql_transform_open_FILE, + cql_transform_open_fname follows + a structure found in many Unix utilities. + It consists of mapping specifications - one per line. + Lines starting with # are ignored (comments). + + + Each line is of the form + + CQL pattern = RPN equivalent + + + + An RPN pattern is a simple attribute list. Each attribute pair + takes the form: + + [set] type=value + + The attribute set is optional. + The type is the attribute type, + value the attribute value. + + + The following CQL patterns are recognized: + + + index.set.name + + + + This pattern is invoked when a CQL index, such as + dc.title is converted. set + and name are the context set and index + name respectively. + Typically, the RPN specifies an equivalent use attribute. + + + For terms not bound by an index the pattern + index.cql.serverChoice is used. + Here, the prefix cql is defined as + http://www.loc.gov/zing/cql/cql-indexes/v1.0/. + If this pattern is not defined, the mapping will fail. + + + + + qualifier.set.name + (DEPRECATED) + + + + For backwards compatibility, this is recognised as a synonym of + index.set.name + + + + + relation.relation + + + + This pattern specifies how a CQL relation is mapped to RPN. + pattern is name of relation + operator. Since = is used as + separator between CQL pattern and RPN, CQL relations + including = cannot be + used directly. To avoid a conflict, the names + ge, + eq, + le, + must be used for CQL operators, greater-than-or-equal, + equal, less-than-or-equal respectively. + The RPN pattern is supposed to include a relation attribute. + + + For terms not bound by a relation, the pattern + relation.scr is used. If the pattern + is not defined, the mapping will fail. + + + The special pattern, relation.* is used + when no other relation pattern is matched. + + + + + + relationModifier.mod + + + + This pattern specifies how a CQL relation modifier is mapped to RPN. + The RPN pattern is usually a relation attribute. + + + + + + structure.type + + + + This pattern specifies how a CQL structure is mapped to RPN. + Note that this CQL pattern is somewhat to similar to + CQL pattern relation. + The type is a CQL relation. + + + The pattern, structure.* is used + when no other structure pattern is matched. + Usually, the RPN equivalent specifies a structure attribute. + + + + + + position.type + + + + This pattern specifies how the anchor (position) of + CQL is mapped to RPN. + The type is one + of first, any, + last, firstAndLast. + + + The pattern, position.* is used + when no other position pattern is matched. + + + + + + set.prefix + + + + This specification defines a CQL context set for a given prefix. + The value on the right hand side is the URI for the set - + not RPN. All prefixes used in + index patterns must be defined this way. + + + + + + CQL to RPN mapping file + + This simple file defines two context sets, three indexes and three + relations, a position pattern and a default structure. + + + + + With the mappings above, the CQL query + + computer + + is converted to the PQF: + + @attr 1=1016 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "computer" + + by rules index.cql.serverChoice, + relation.scr, structure.*, + position.any. + + + CQL query + + computer^ + + is rejected, since position.right is + undefined. + + + CQL query + + >my = "http://www.loc.gov/zing/cql/dc-indexes/v1.0/" my.title = x + + is converted to + + @attr 1=4 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "x" + + + + + CQL to XCQL conversion + + Conversion from CQL to XCQL is trivial and does not + require a mapping to be defined. + There three functions to choose from depending on the + way you wish to store the resulting output (XML buffer + containing XCQL). + +int cql_to_xml_buf(struct cql_node *cn, char *out, int max); +void cql_to_xml(struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data); +void cql_to_xml_stdio(struct cql_node *cn, FILE *f); + + Function cql_to_xml_buf converts + to XCQL and stores result in a user supplied buffer of a given + max size. + + + cql_to_xml writes the result in + a user defined output stream. + cql_to_xml_stdio writes to a + a file. + + + +
+ Object Identifiers + + + The basic YAZ representation of an OID is an array of integers, + terminated with the value -1. The &odr; module provides two + utility-functions to create and copy this type of data elements: + + + + Odr_oid *odr_getoidbystr(ODR o, char *str); + + + + Creates an OID based on a string-based representation using dots (.) + to separate elements in the OID. + + + + Odr_oid *odr_oiddup(ODR odr, Odr_oid *o); + + + + Creates a copy of the OID referenced by the o + parameter. + Both functions take an &odr; stream as parameter. This stream is used to + allocate memory for the data elements, which is released on a + subsequent call to odr_reset() on that stream. + + + + The OID module provides a higher-level representation of the + family of object identifiers which describe the Z39.50 protocol and its + related objects. The definition of the module interface is given in + the oid.h file. + + + + The interface is mainly based on the oident structure. + The definition of this structure looks like this: + + + +typedef struct oident +{ + oid_proto proto; + oid_class oclass; + oid_value value; + int oidsuffix[OID_SIZE]; + char *desc; +} oident; + + + + The proto field takes one of the values + + + + PROTO_Z3950 + PROTO_GENERAL + + + + Use PROTO_Z3950 for Z39.50 Object Identifers, + PROTO_GENERAL for other types (such as + those associated with ILL). + + + + The oclass field takes one of the values + + + + CLASS_APPCTX + CLASS_ABSYN + CLASS_ATTSET + CLASS_TRANSYN + CLASS_DIAGSET + CLASS_RECSYN + CLASS_RESFORM + CLASS_ACCFORM + CLASS_EXTSERV + CLASS_USERINFO + CLASS_ELEMSPEC + CLASS_VARSET + CLASS_SCHEMA + CLASS_TAGSET + CLASS_GENERAL + + + + corresponding to the OID classes defined by the Z39.50 standard. + + Finally, the value field takes one of the values + + + + VAL_APDU + VAL_BER + VAL_BASIC_CTX + VAL_BIB1 + VAL_EXP1 + VAL_EXT1 + VAL_CCL1 + VAL_GILS + VAL_WAIS + VAL_STAS + VAL_DIAG1 + VAL_ISO2709 + VAL_UNIMARC + VAL_INTERMARC + VAL_CCF + VAL_USMARC + VAL_UKMARC + VAL_NORMARC + VAL_LIBRISMARC + VAL_DANMARC + VAL_FINMARC + VAL_MAB + VAL_CANMARC + VAL_SBN + VAL_PICAMARC + VAL_AUSMARC + VAL_IBERMARC + VAL_EXPLAIN + VAL_SUTRS + VAL_OPAC + VAL_SUMMARY + VAL_GRS0 + VAL_GRS1 + VAL_EXTENDED + VAL_RESOURCE1 + VAL_RESOURCE2 + VAL_PROMPT1 + VAL_DES1 + VAL_KRB1 + VAL_PRESSET + VAL_PQUERY + VAL_PCQUERY + VAL_ITEMORDER + VAL_DBUPDATE + VAL_EXPORTSPEC + VAL_EXPORTINV + VAL_NONE + VAL_SETM + VAL_SETG + VAL_VAR1 + VAL_ESPEC1 + + + + again, corresponding to the specific OIDs defined by the standard. + Refer to the + + Registry of Z39.50 Object Identifiers for the + whole list. + + + + The desc field contains a brief, mnemonic name for the OID in question. + + + + The function + + + + struct oident *oid_getentbyoid(int *o); + + + + takes as argument an OID, and returns a pointer to a static area + containing an oident structure. You typically use + this function when you receive a PDU containing an OID, and you wish + to branch out depending on the specific OID value. + + + + The function + + + + int *oid_ent_to_oid(struct oident *ent, int *dst); + + + + Takes as argument an oident structure - in which + the proto, oclass/, and + value fields are assumed to be set correctly - + and returns a pointer to a the buffer as given by dst + containing the base + representation of the corresponding OID. The function returns + NULL and the array dst is unchanged if a mapping couldn't place. + The array dst should be at least of size + OID_SIZE. + + + + The oid_ent_to_oid() function can be used whenever + you need to prepare a PDU containing one or more OIDs. The separation of + the protocol element from the remainder of the + OID-description makes it simple to write applications that can + communicate with either Z39.50 or OSI SR-based applications. + + + + The function + + + + oid_value oid_getvalbyname(const char *name); + + + + takes as argument a mnemonic OID name, and returns the + /value field of the first entry in the database that + contains the given name in its desc field. + + + + Three utility functions are provided for translating OIDs' + symbolic names (e.g. Usmarc into OID structures + (int arrays) and strings containing the OID in dotted notation + (e.g. 1.2.840.10003.9.5.1). They are: + + + + int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); + char *oid_to_dotstring(const int *oid, char *oidbuf); + char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf); + + + + oid_name_to_oid() + translates the specified symbolic name, + interpreted as being of class oclass. (The + class must be specified as many symbolic names exist within + multiple classes - for example, Zthes is the + symbolic name of an attribute set, a schema and a tag-set.) The + sequence of integers representing the OID is written into the + area oid provided by the caller; it is the + caller's responsibility to ensure that this area is large enough + to contain the translated OID. As a convenience, the address of + the buffer (i.e. the value of oid) is + returned. + + + oid_to_dotstring() + Translates the int-array oid into a dotted + string which is written into the area oidbuf + supplied by the caller; it is the caller's responsibility to + ensure that this area is large enough. The address of the buffer + is returned. + + + oid_name_to_dotstring() + combines the previous two functions to derive a dotted string + representing the OID specified by oclass and + name, writing it into the buffer passed as + oidbuf and returning its address. + + + + Finally, the module provides the following utility functions, whose + meaning should be obvious: + + + + void oid_oidcpy(int *t, int *s); + void oid_oidcat(int *t, int *s); + int oid_oidcmp(int *o1, int *o2); + int oid_oidlen(int *o); + + + + + The OID module has been criticized - and perhaps rightly so + - for needlessly abstracting the + representation of OIDs. Other toolkits use a simple + string-representation of OIDs with good results. In practice, we have + found the interface comfortable and quick to work with, and it is a + simple matter (for what it's worth) to create applications compatible + with both ISO SR and Z39.50. Finally, the use of the + /oident database is by no means mandatory. + You can easily create your own system for representing OIDs, as long + as it is compatible with the low-level integer-array representation + of the ODR module. + + + + + + Nibble Memory + + + Sometimes when you need to allocate and construct a large, + interconnected complex of structures, it can be a bit of a pain to + release the associated memory again. For the structures describing the + Z39.50 PDUs and related structures, it is convenient to use the + memory-management system of the &odr; subsystem (see + ). However, in some circumstances + where you might otherwise benefit from using a simple nibble memory + management system, it may be impractical to use + odr_malloc() and odr_reset(). + For this purpose, the memory manager which also supports the &odr; + streams is made available in the NMEM module. The external interface + to this module is given in the nmem.h file. + + + + The following prototypes are given: + + + + NMEM nmem_create(void); + void nmem_destroy(NMEM n); + void *nmem_malloc(NMEM n, int size); + void nmem_reset(NMEM n); + int nmem_total(NMEM n); + void nmem_init(void); + void nmem_exit(void); + + + + The nmem_create() function returns a pointer to a + memory control handle, which can be released again by + nmem_destroy() when no longer needed. + The function nmem_malloc() allocates a block of + memory of the requested size. A call to nmem_reset() + or nmem_destroy() will release all memory allocated + on the handle since it was created (or since the last call to + nmem_reset(). The function + nmem_total() returns the number of bytes currently + allocated on the handle. + + + + The nibble memory pool is shared amongst threads. POSIX + mutex'es and WIN32 Critical sections are introduced to keep the + module thread safe. Function nmem_init() + initializes the nibble memory library and it is called automatically + the first time the YAZ.DLL is loaded. &yaz; uses + function DllMain to achieve this. You should + not call nmem_init or + nmem_exit unless you're absolute sure what + you're doing. Note that in previous &yaz; versions you'd have to call + nmem_init yourself. + + + + + Log + + &yaz; has evolved a fairly complex log system which should be useful both + for debugging &yaz; itself, debugging applications that use &yaz;, and for + production use of those applications. + + + The log functions are declared in header yaz/log.h + and implemented in src/log.c. + Due to name clash with syslog and some math utilities the logging + interface has been modified as of YAZ 2.0.29. The obsolete interface + is still available if in header file yaz/log.h. + The key points of the interface are: + + + void yaz_log(int level, const char *fmt, ...) + + void yaz_log_init(int level, const char *prefix, const char *name); + void yaz_log_init_file(const char *fname); + void yaz_log_init_level(int level); + void yaz_log_init_prefix(const char *prefix); + void yaz_log_time_format(const char *fmt); + void yaz_log_init_max_size(int mx); + + int yaz_log_mask_str(const char *str); + int yaz_log_module_level(const char *name); + + + + The reason for the whole log module is the yaz_log + function. It takes a bitmask indicating the log levels, a + printf-like format string, and a variable number of + arguments to log. + + + + The log level is a bit mask, that says on which level(s) + the log entry should be made, and optionally set some behaviour of the + logging. In the most simple cases, it can be one of YLOG_FATAL, + YLOG_DEBUG, YLOG_WARN, YLOG_LOG. Those can be combined with bits + that modify the way the log entry is written:YLOG_ERRNO, + YLOG_NOTIME, YLOG_FLUSH. + Most of the rest of the bits are deprecated, and should not be used. Use + the dynamic log levels instead. + + + + Applications that use &yaz;, should not use the LOG_LOG for ordinary + messages, but should make use of the dynamic loglevel system. This consists + of two parts, defining the loglevel and checking it. + + + + To define the log levels, the (main) program should pass a string to + yaz_log_mask_str to define which log levels are to be + logged. This string should be a comma-separated list of log level names, + and can contain both hard-coded names and dynamic ones. The log level + calculation starts with YLOG_DEFAULT_LEVEL and adds a bit + for each word it meets, unless the word starts with a '-', in which case it + clears the bit. If the string 'none' is found, + all bits are cleared. Typically this string comes from the command-line, + often identified by -v. The + yaz_log_mask_str returns a log level that should be + passed to yaz_log_init_level for it to take effect. + + + + Each module should check what log bits it should be used, by calling + yaz_log_module_level with a suitable name for the + module. The name is cleared from a preceding path and an extension, if any, + so it is quite possible to use __FILE__ for it. If the + name has been passed to yaz_log_mask_str, the routine + returns a non-zero bitmask, which should then be used in consequent calls + to yaz_log. (It can also be tested, so as to avoid unnecessary calls to + yaz_log, in time-critical places, or when the log entry would take time + to construct.) + + + + Yaz uses the following dynamic log levels: + server, session, request, requestdetail for the server + functionality. + zoom for the zoom client api. + ztest for the simple test server. + malloc, nmem, odr, eventl for internal debugging of yaz itself. + Of course, any program using yaz is welcome to define as many new ones, as + it needs. + + + + By default the log is written to stderr, but this can be changed by a call + to yaz_log_init_file or + yaz_log_init. If the log is directed to a file, the + file size is checked at every write, and if it exceeds the limit given in + yaz_log_init_max_size, the log is rotated. The + rotation keeps one old version (with a .1 appended to + the name). The size defaults to 1GB. Setting it to zero will disable the + rotation feature. + + + + A typical yaz-log looks like this + 13:23:14-23/11 yaz-ztest(1) [session] Starting session from tcp:127.0.0.1 (pid=30968) + 13:23:14-23/11 yaz-ztest(1) [request] Init from 'YAZ' (81) (ver 2.0.28) OK + 13:23:17-23/11 yaz-ztest(1) [request] Search Z: @attrset Bib-1 foo OK:7 hits + 13:23:22-23/11 yaz-ztest(1) [request] Present: [1] 2+2 OK 2 records returned + 13:24:13-23/11 yaz-ztest(1) [request] Close OK + + + + The log entries start with a time stamp. This can be omitted by setting the + YLOG_NOTIME bit in the loglevel. This way automatic tests + can be hoped to produce identical log files, that are easy to diff. The + format of the time stamp can be set with + yaz_log_time_format, which takes a format string just + like strftime. + + + + Next in a log line comes the prefix, often the name of the program. For + yaz-based servers, it can also contain the session number. Then + comes one or more logbits in square brackets, depending on the logging + level set by yaz_log_init_level and the loglevel + passed to yaz_log_init_level. Finally comes the format + string and additional values passed to yaz_log + + + + The log level YLOG_LOGLVL, enabled by the string + loglevel, will log all the log-level affecting + operations. This can come in handy if you need to know what other log + levels would be useful. Grep the logfile for [loglevel]. + + + + The log system is almost independent of the rest of &yaz;, the only + important dependence is of nmem, and that only for + using the semaphore definition there. + + + + The dynamic log levels and log rotation were introduced in &yaz; 2.0.28. At + the same time, the log bit names were changed from + LOG_something to YLOG_something, + to avoid collision with syslog.h. + + + + + MARC + + + YAZ provides a fast utility that decodes MARC records and + encodes to a varity of output formats. The MARC records must + be encoded in ISO2709. + + + + /* create handler */ + yaz_marc_t yaz_marc_create(void); + /* destroy */ + void yaz_marc_destroy(yaz_marc_t mt); + + /* set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */ + void yaz_marc_xml(yaz_marc_t mt, int xmlmode); + #define YAZ_MARC_LINE 0 + #define YAZ_MARC_SIMPLEXML 1 + #define YAZ_MARC_OAIMARC 2 + #define YAZ_MARC_MARCXML 3 + #define YAZ_MARC_ISO2709 4 + #define YAZ_MARC_XCHANGE 5 + + /* supply iconv handle for character set conversion .. */ + void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd); + + /* set debug level, 0=none, 1=more, 2=even more, .. */ + void yaz_marc_debug(yaz_marc_t mt, int level); + + /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure. + On success, result in *result with size *rsize. */ + int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize, + char **result, int *rsize); + + /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure. + On success, result in WRBUF */ + int yaz_marc_decode_wrbuf (yaz_marc_t mt, const char *buf, + int bsize, WRBUF wrbuf); +]]> + + + A MARC conversion handle must be created by using + yaz_marc_create and destroyed + by calling yaz_marc_destroy. + + + All other function operate on a yaz_marc_t handle. + The output is specified by a call to yaz_marc_xml. + The xmlmode must be one of + + + YAZ_MARC_LINE + + + A simple line-by-line format suitable for display but not + recommend for further (machine) processing. + + + + + + YAZ_MARC_MARXML + + + The resulting record is converted to MARCXML. + + + + + + YAZ_MARC_ISO2709 + + + The resulting record is converted to ISO2709 (MARC). + + + + + + + The actual conversion functions are + yaz_marc_decode_buf and + yaz_marc_decode_wrbuf which decodes and encodes + a MARC record. The former function operates on simple buffers, the + stores the resulting record in a WRBUF handle (WRBUF is a simple string + type). + + + Display of MARC record + + The followint program snippet illustrates how the MARC API may + be used to convert a MARC record to the line-by-line format: + + + + + + +
+ + diff --git a/dependencies/yaz-2.1.28/doc/yaz-asncomp-man.xml b/dependencies/yaz-2.1.28/doc/yaz-asncomp-man.xml new file mode 100644 index 0000000..13c1a3f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-asncomp-man.xml @@ -0,0 +1,266 @@ + + %local; + + %entities; + + %common; +]> + + + YAZ + &version; + + + + yaz-asncomp + 1 + + + + yaz-asncomp + YAZ ASN.1 compiler + + + + + yaz-asncomp + + + + + + + + + filename + + + + DESCRIPTION + + yaz-asncomp is an ASN.1 compiler that + reads an ASN.1 specification in filename + and produces C/C++ definitions and BER encoders/decoders for it. + + + The produced C/C++ code and header files uses the ODR module of YAZ + which is a library that encodes/decodes/prints BER packages. + yaz-asncomp allows you to specify name of + resulting source via options. Alternatively, you can specify + a DEFINISIONS file, which provides customized output to + many output files - if the ASN.1 specification file consists + of many modules. + + + This utility is written in Tcl. Any version of Tcl should work. + + + + OPTIONS + + -v + + + + Makes the ASN.1 compiler print more verbose about the + various stages of operations. + + + + + -c + cfile + + Specifies the name of the C/C++ file with encoders/decoders. + + + + -h + hfile + + Specifies the name of header file with definitions. + + + + -p + pfile + + Specifies the name of the a private header file with + definitions. By default all definitions are put + in header file (option -h). + + + + -d + dfile + + Specifies the name of a definitions file. + + + + -I + iout + + Specifies first part of directory in which header files + are written. + + + + -i + idir + + Specifies second part of directory in which header files + are written. + + + + -m + module + + Specifies that ASN.1 compiler should only process the + module given. If this option is not specified, + all modules in the ASN.1 file are processed. + + + + + + DEFINITIONS FILE + + The definitions file is really a Tcl script but follows + traditional rules for Shell like configuration files. + That is # denotes the beginning of a comment. Definitions + are line oriented. The definitions files usually consists of + a series of variable assignments of the form: + + + set name value + + + Available variables are: + + + default-prefix + + Sets prefix for names in the produced output. + The value consists of three tokens: C function prefix, + C typedef prefix and preprocessor prefix respectively. + + + + prefix(module) + + This value sets prefix values for module + module. + The value has same form as default-prefix. + + + + filename(module) + + Specifies filename for C/header file for module + module. + + + + init(module,h) + + Code fragment to be put in first part of public header for module + module. + + + + body(module,h) + + Code fragment to be put in last part of public header for module + module (trailer). + + + + init(module,c) + + Code fragment to be put in first part of C based encoder/decoder for + module module. + + + + body(module,c) + + Code fragment to be put in last part of C based encoder/decoder for + module module (trailer). + + + + map(module,name) + + Maps ASN.1 type in module module + of name to value. + + + + membermap(module,name,member) + + Maps member member in SEQUENCE/CHOICE of + name in module + module to value. + The value consists of one or two tokens. + First token is name of C preprocessor part. Second token + is resulting C member name. If second token is omitted + the value (one token) is both preprocessor part and + C struct,union. + + + + unionmap(module,name,member) + + Maps member member in CHOICE of + name in module + module to value. + Value consists of to or three tokens. The first token + is name of the integer in the union that + is used as selector for the union itself. + The second token is name of the union. + The third token overrides the name of the CHOICE member; + if omitted the member name is used. + + + + + + FILES + + /usr/share/yaz/z39.50/z.tcl + + + /usr/share/yaz/z39.50/*.asn + + + SEE ALSO + + + yaz + 7 + + + Section "The ODR Module" in the YAZ manual. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-asncomp.1 b/dependencies/yaz-2.1.28/doc/yaz-asncomp.1 new file mode 100644 index 0000000..f3c17c8 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-asncomp.1 @@ -0,0 +1,139 @@ +.\" Title: yaz\-asncomp +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-ASNCOMP" "1" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-asncomp \- YAZ ASN.1 compiler +.SH "SYNOPSIS" +.HP 12 +\fByaz\-asncomp\fR [\fB\-v\fR] [\fB\-c\ \fR\fB\fIcfile\fR\fR] [\fB\-h\ \fR\fB\fIhfile\fR\fR] [\fB\-p\ \fR\fB\fIpfile\fR\fR] [\fB\-d\ \fR\fB\fIconfig\fR\fR] [\fB\-I\ \fR\fB\fIincludeout\fR\fR] [\fB\-i\ \fR\fB\fIincludedir\fR\fR] [\fB\-m\ \fR\fB\fImodule\fR\fR] [filename] +.SH "DESCRIPTION" +.PP + +\fByaz\-asncomp\fR +is an ASN.1 compiler that reads an ASN.1 specification in +\fIfilename\fR +and produces C/C++ definitions and BER encoders/decoders for it. +.PP +The produced C/C++ code and header files uses the ODR module of YAZ which is a library that encodes/decodes/prints BER packages. +\fByaz\-asncomp\fR +allows you to specify name of resulting source via options. Alternatively, you can specify a DEFINISIONS file, which provides customized output to many output files \- if the ASN.1 specification file consists of many modules. +.PP +This utility is written in Tcl. Any version of Tcl should work. +.SH "OPTIONS" +.TP 3n +\-v +Makes the ASN.1 compiler print more verbose about the various stages of operations. +.TP 3n +\-c \fIcfile\fR +Specifies the name of the C/C++ file with encoders/decoders. +.TP 3n +\-h \fIhfile\fR +Specifies the name of header file with definitions. +.TP 3n +\-p \fIpfile\fR +Specifies the name of the a private header file with definitions. By default all definitions are put in header file (option \-h). +.TP 3n +\-d \fIdfile\fR +Specifies the name of a definitions file. +.TP 3n +\-I \fIiout\fR +Specifies first part of directory in which header files are written. +.TP 3n +\-i \fIidir\fR +Specifies second part of directory in which header files are written. +.TP 3n +\-m \fImodule\fR +Specifies that ASN.1 compiler should only process the module given. If this option is not specified, all modules in the ASN.1 file are processed. +.SH "DEFINITIONS FILE" +.PP +The definitions file is really a Tcl script but follows traditional rules for Shell like configuration files. That is # denotes the beginning of a comment. Definitions are line oriented. The definitions files usually consists of a series of variable assignments of the form: +.PP + +set +\fIname\fR +\fIvalue\fR +.PP +Available variables are: +.TP 3n +default\-prefix +Sets prefix for names in the produced output. The value consists of three tokens: C function prefix, C typedef prefix and preprocessor prefix respectively. +.TP 3n +prefix(\fImodule\fR) +This value sets prefix values for module +\fImodule\fR. The value has same form as +default\-prefix. +.TP 3n +filename(\fImodule\fR) +Specifies filename for C/header file for module +\fImodule\fR. +.TP 3n +init(\fImodule\fR,h) +Code fragment to be put in first part of public header for module +\fImodule\fR. +.TP 3n +body(\fImodule\fR,h) +Code fragment to be put in last part of public header for module +\fImodule\fR +(trailer). +.TP 3n +init(\fImodule\fR,c) +Code fragment to be put in first part of C based encoder/decoder for module +\fImodule\fR. +.TP 3n +body(\fImodule\fR,c) +Code fragment to be put in last part of C based encoder/decoder for module +\fImodule\fR +(trailer). +.TP 3n +map(\fImodule\fR,\fIname\fR) +Maps ASN.1 type in module +\fImodule\fR +of +\fIname\fR +to value. +.TP 3n +membermap(\fImodule\fR,\fIname\fR,\fImember\fR) +Maps member +\fImember\fR +in SEQUENCE/CHOICE of +\fIname\fR +in module +\fImodule\fR +to value. The value consists of one or two tokens. First token is name of C preprocessor part. Second token is resulting C member name. If second token is omitted the value (one token) is both preprocessor part and C +struct,union. +.TP 3n +unionmap(\fImodule\fR,\fIname\fR,\fImember\fR) +Maps member +\fImember\fR +in CHOICE of +\fIname\fR +in module +\fImodule\fR +to value. Value consists of to or three tokens. The first token is name of the integer in the +union +that is used as selector for the +union +itself. The second token is name of the +union. The third token overrides the name of the CHOICE member; if omitted the member name is used. +.SH "FILES" +.PP + +\fI/usr/share/yaz/z39.50/z.tcl\fR +.PP + +\fI/usr/share/yaz/z39.50/*.asn\fR +.SH "SEE ALSO" +.PP + +\fByaz\fR(7) +.PP +Section "The ODR Module" in the YAZ manual. diff --git a/dependencies/yaz-2.1.28/doc/yaz-client-commands.xml b/dependencies/yaz-2.1.28/doc/yaz-client-commands.xml new file mode 100644 index 0000000..d551481 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-client-commands.xml @@ -0,0 +1,736 @@ + + + + open zurl + + + Opens a connection to a server. The syntax for + zurl is the same as described + above for connecting from the command line. + + + Syntax: + + + [(tcp|ssl|unix|http)':']host + [:port][/base] + + + + + quit + + + Quits YAZ client + + + + find query + + Sends a Search Request using the query + given. By default the query is assumed to be PQF. See command + querytype. + + + + + delete setname + + Deletes result set with name setname + on the server. + + + + base base1 + base2 ... + + + Sets the name(s) of the database(s) to search. One or more + databases may be specified separated by blanks. This commands overrides + the database given in zurl. + + + + + show + [start[+number]] + + + Fetches records by sending a Present Request from the start + position given by + start + a number of records given by number. If + start is not given, then the client + will fetch from position of the last retrieved record plus 1. If + number is not given, then one record will + be fetched at a time. + + + + + scan term + + + Scans + database index for a term. The syntax resembles the syntax + for find. + If you want to scan for the word water you could + write + + + scan water + + + but if you want to scan only in, say the title field, you would write + + + scan @attr 1=4 water + + + + + scanpos pos + + + + Sets preferred position for scan. This value + is used in next scan. By default position is 1. + + + + + scansize size + + + + Sets number of entries to be returned by scan. Default + number of entries is 20. + + + + + scanstep step + + + + Set step-size for scan. This value is used in next scan + sent to the target. By default step-size is 0. + + + + + sort sortspecs + + + Sorts a result set. The sort command takes a + sequence of space-separated sort specifications, with each sort + specification consisting of two space-separated words (so that the + whole specification list is made up of an even number of words). + The first word of each specification + holds a field (sort criterion) and the second holds flags. + If the sort criterion includes = it is assumed + that the SortKey is of type + sortAttributes using Bib-1: in this case + the integer before = is + the attribute type and the integer following = + is the attribute value. + If no = is in the criterion it is treated as a + sortfield of type InternationalString. + The flags word of each sort specification must consist of + s + for case sensitive or i for case insensitive, and + < for ascending order or > + for descending order. + + + + + sort+ + + + Same as sort but stores the sorted + result set in a new result set. + + + + + authentication openauth + + + Sets up a authentication string if a server requires + authentication (v2 OpenStyle). The authentication string is first + sent to the server when the + open command is + issued and the Z39.50 Initialize Request is sent, so this command + must be used before open in order to be effective. + A common convention for the authopen string + is that the username - and password is separated by a slash, e.g. + myusername/mysecret. + + + + + + sru method + + + Selects SRU method. Must be one of POST, + GET, SOAP (default). + + + + + + list_all + + + This command displays status and values for many settings. + + + + + + lslb n + + + Sets the limit for when no records should be returned + together with the search result. + See the + + Z39.50 standard + + for more details. + + + + + + ssub n + + + Sets the limit for when all records should be returned with + the search result. + See the + + Z39.50 standard + for more details. + + + + + + mspn n + + + Sets the number of records should be returned if the + number of records in the result set is between the values of + lslb and ssub. + See the + + Z39.50 standard + + for more details. + + + + + status + + + Displays the values of lslb, + ssub and mspn. + + + + + setname + + + Switches named result sets on and off. Default is on. + + + + + cancel + + + Sends a Trigger Resource Control Request to the target. + + + + + format oid + + + Sets the preferred transfer syntax for retrieved records. + yaz-client supports all the record syntaxes that currently + are registered. See + + Z39.50 Standard + + for more details. Commonly used records syntaxes include usmarc, + sutrs, grs1 and xml. + + + + + elements e + + + Sets the element set name for the records. Many targets support + element sets are B (for brief) and F (for full). + + + + + close + + + Sends a Z39.50 Close APDU and closes connection with the peer + + + + + querytype type + + + Sets the query type as used by command + find. + The following is supported: + prefix for + Prefix Query Notation (Type-1 Query); + ccl for CCL search (Type-2 Query), + cql for CQL (Type-104 search with CQL OID), + ccl2rpn for + CCL to RPN conversion (Type-1 Query). + cql2rpn for + CQL to RPN conversion (Type-1 Query). + + + + + attributeset set + + + + Sets attribute set OID for prefix queries (RPN, Type-1). + + + + + refid id + + + Sets reference ID for Z39.50 Request(s). + + + + + itemorder + type no + + + Sends an Item Order Request using the ILL External. + type is either 1 or 2 which corresponds to + ILL-Profile 1 and 2 respectively. The no + is the Result Set position of the record to be ordered. + + + + + update + action + recid + doc + + + Sends Item Update Request. The action + argument must be the action type: one of insert, + replace, delete and + update. The second argument, + recid, is the + record identifier (any string). Third argument which is optional is + the record document for the request. If doc is a quoted string + (double quotes) the string content is used verbatim. If doc is not + a quoted string, it is assumed to be a filename which is read, then + sent as the docuemnt content. If doc is omitted, the last received + record (as parf of present response or piggybacked search response) + is used for the update. + + + + + + . + filename + + + Executes list of commands from + file filename, just like source on + most UNIX shells. + + + + + + ! + args + + + Executes command args in subshell + using the system call. + + + + + + push_command + command + + + The push_command takes another command as its argument. + That command is then added to the history information (so + you can retrieve it later). The command itself is not + executed. This command only works if you have GNU readline/history + enabled. + + + + + + set_apdufile + filename + + + Sets that APDU should be logged to file + filename. Another way to achieve + APDU log is by using command-line option -a. + + + + + + set_auto_reconnect + flag + + + Specifies whether YAZ client automatically reconnect if + target closes connection (Z39.50 only). + + + flag must be either + on or off. + + + + + + set_auto_wait + flag + + + Specifies whether YAZ client should wait for + response protocol packages after a request. + By default YAZ client waits (on) for response packages immediately + after a command (find, show) has been issued. If off + is used, YAZ client does not attempt to receive packages automatically. + These will have to be manually received when command + + wait_response + is used. + + + flag must be either + on or off. + + + + + + set_marcdump + filename + + + Specifies that all retrieved records should be appended to + file filename. This command does the + thing as option -m. + + + + + + schema + schemaid + + + Specifies schema for retrieval. + Schema may be specified as an OID for Z39.50. + For SRU, schema is a simple string URI. + + + + + + charset + negotiationcharset + [displaycharset] + [[marccharset]] + + + Specifies character set (encoding) for Z39.50 + negotiation / SRU encoding and/or character set for output (terminal). + + + negotiationcharset is the name + of the character set to be negotiated by the server. The special name + - for negotiationcharset + specifies no character set to be negotiated. + + + If displaycharset is given, it specifies name + of the character set of the output (on the terminal on which + YAZ client is running). To disable conversion of characters + to the output encoding, the special name - (dash) + can be used. + If the special name auto is given, YAZ client will + convert strings to the encoding of the + terminal as returned by nl_langinfo call. + + + If marcharset is given, it specifies name + of the character set of retrieved MARC records from server. See + also marcharset command. + + + + Since character set negotation takes effect in the Z39.50 + Initialize Request you should issue this command before + command open + is used. + + + + + MARC records are not covered by Z39.50 character set negotiation, + so that's why there is a separate character that must be known + in order to do meaningful converson(s). + + + + + + + negcharset + charset + + + Specifies character set for negotiation (Z39.50). The + argument is the same as second argument for command + charset. + + + + + + displaycharset + charset + + + Specifies character set for output (display). The + argument is the same as second argument for command + charset. + + + + + + marccharset + charset + + + Specifies character set for retrieved MARC records so + that YAZ client can display them in a character suitable + for your display. See charset command. + If auto is given, YAZ will assume + that MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1 + for all other MARC variants. The charset argument is the + same as third argument for command + charset. + + + + + + set_cclfile + filename + + + Specifies that CCL fields should be read from file + file filename. This command does the + thing as option -c. + + + + + + set_cqlfile + filename + + + Specifies that CQL fields should be read from file + file filename. This command does the + thing as option -q. + + + + + + register_oid + name + class + OID + + + This command allows you to register your own object + identifier - so that instead of entering a long dot-notation + you can use a short name instead. + The name is your + name for the OID, class is the + class, and OID is the raw OID in + dot notation. Class is one appctx, + absyn, attet, + transyn, diagset, + recsyn, resform, + accform, extserv, + userinfo, elemspec, + varset, schema, + tagset, general. + If you're in doubt use the general + class. + + + + + + register_tab + command + string + + + This command registers a TAB completion string for + the command given. + + + + + + sleep + seconds + + + This command makes YAZ client sleep (be idle) for + the number of seconds given. + + + + + + wait_response + [ number] + + + This command makes YAZ client wait for a number of + response packages from target. If number is + omitted, 1 is assumed. + + This command is rarely used and is only useful if command + + set_auto_wait + is set to off. + + + + + + xmles + OID + doc + + + Sends XML Extended Services request using the OID and doc given. + + + + + + zversion + ver + + + This command sets Z39.50 version for negotiation. + Should be used before + open. + By default 3 (version 3) is used. + + + + + + options + op1 op2.. + + + This command sets Z39.50 options for negotiation. + Should be used before + open. + + + The following options are supported: + search, + present, + delSet, + resourceReport, + triggerResourceCtrl, + resourceCtrl, + accessCtrl, + scan, + sort, + extendedServices, + level_1Segmentation, + level_2Segmentation, + concurrentOperations, + namedResultSets, + encapsulation, + resultCount, + negotiationModel, + duplicationDetection, + queryType104, + pQESCorrection, + stringSchema. + + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-client-man.xml b/dependencies/yaz-2.1.28/doc/yaz-client-man.xml new file mode 100644 index 0000000..9825647 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-client-man.xml @@ -0,0 +1,204 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + yaz-client + 1 + + + + yaz-client + Z39.50/SRU client for implementors + + + + + yaz-client + + + + + + + + + + + addr + + + + + DESCRIPTION + + yaz-client is a Z39.50/SRU client (origin) with a + simple command line interface that allows you to test behavior and + performance of Z39.50 targets and SRU servers. + + + If the addr is specified, the client creates + a connection to the Z39.50/SRU target at the address given. + + + When yaz-client is invoked it attemps to read the + following files: + $HOME/.yazclientrc (home directory, Unix only) and + .yazclientrc (current directory - any platform) + For those files that are readable, the YAZ client executes commands + in those files. See COMMANDS section for description of commands. + + + + OPTIONS + + + -a filename + + If specified, logging of protocol packages will be appended + file given. If filename is + specified as -, the output is written + to stdout. + + + + -b filename + + If specified, YAZ will dump BER data in readable notation + to the file specified. If filename + is specified as - the output is written + to stdout. + + + + -c filename + + If specified, CCL configuration will be read from + the file given. + + + + -d dump + + If specified, YAZ will dump BER data for all PDUs sent and received + to individual files, named + dump.DDD.raw, + where DDD is 001, 002, 003, .. + + + + -k size + + Sets preferred messages and maximum record size for Initialize + Request in kilobytes. Default value is 1024 (1 MB). + + + + -m filename + + If specified, retrieved records will be appended to the file given. + + + + -p addr + + If specified, the client will use the proxy at the address + given. + + + + -q filename + + If specified, CQL configuration will be read from + the file given. + + + + -u auth + + If specified, the auth string + will be used for authentication. + + + + -V + + Prints YAZ version. + + + + -x + + Makes the YAZ client print hex dumps of packages sent and received + on standard output. + + + + + + COMMANDS + + The YAZ client accepts the following commands. + + &yaz-client-commands; + + FILES + + yaz-<version>/client/client.c + + + .yazclientrc + + + $HOME/.yazclientrc + + + SEE ALSO + + + yaz + 7 + + + + Section "The YAZ Client" in the YAZ manual. + + + Section "Prefix Query Format" in the YAZ manual. + + + Section "Common Command Language" in the YAZ manual. + + + Section "Common Query Language" in the YAZ manual. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-client.1 b/dependencies/yaz-2.1.28/doc/yaz-client.1 new file mode 100644 index 0000000..a58ac17 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-client.1 @@ -0,0 +1,509 @@ +.\" Title: yaz\-client +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-CLIENT" "1" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-client \- Z39.50/SRU client for implementors +.SH "SYNOPSIS" +.HP 11 +\fByaz\-client\fR [\fB\-a\ \fR\fB\fIfilename\fR\fR] [\fB\-b\ \fR\fB\fIfilename\fR\fR] [\fB\-c\ \fR\fB\fIfilename\fR\fR] [\fB\-d\ \fR\fB\fIdump\fR\fR] [\fB\-k\ \fR\fB\fIsize\fR\fR] [\fB\-m\ \fR\fB\fIfilename\fR\fR] [\fB\-p\ \fR\fB\fIaddr\fR\fR] [\fB\-q\ \fR\fB\fIfilename\fR\fR] [\fB\-u\ \fR\fB\fIauth\fR\fR] [\fB\-xV\fR] [addr] +.SH "DESCRIPTION" +.PP + +\fByaz\-client\fR +is a Z39.50/SRU client (origin) with a simple command line interface that allows you to test behavior and performance of Z39.50 targets and SRU servers. +.PP +If the +\fIaddr\fR +is specified, the client creates a connection to the Z39.50/SRU target at the address given. +.PP +When +\fByaz\-client\fR +is invoked it attemps to read the following files: +$HOME/.yazclientrc +(home directory, Unix only) and +.yazclientrc +(current directory \- any platform) For those files that are readable, the YAZ client executes commands in those files. See COMMANDS section for description of commands. +.SH "OPTIONS" +.TP 3n +\-a \fIfilename\fR +If specified, logging of protocol packages will be appended file given. If +\fIfilename\fR +is specified as +\-, the output is written to +stdout. +.TP 3n +\-b \fIfilename\fR +If specified, YAZ will dump BER data in readable notation to the file specified. If +\fIfilename\fR +is specified as +\- +the output is written to +stdout. +.TP 3n +\-c \fIfilename\fR +If specified, CCL configuration will be read from the file given. +.TP 3n +\-d \fIdump\fR +If specified, YAZ will dump BER data for all PDUs sent and received to individual files, named +\fIdump\fR.DDD.raw, where DDD is 001, 002, 003, .. +.TP 3n +\-k \fIsize\fR +Sets preferred messages and maximum record size for Initialize Request in kilobytes. Default value is 1024 (1 MB). +.TP 3n +\-m \fIfilename\fR +If specified, retrieved records will be appended to the file given. +.TP 3n +\-p \fIaddr\fR +If specified, the client will use the proxy at the address given. +.TP 3n +\-q \fIfilename\fR +If specified, CQL configuration will be read from the file given. +.TP 3n +\-u \fIauth\fR +If specified, the +\fIauth\fR +string will be used for authentication. +.TP 3n +\-V +Prints YAZ version. +.TP 3n +\-x +Makes the YAZ client print hex dumps of packages sent and received on standard output. +.SH "COMMANDS" +.PP +The YAZ client accepts the following commands. +.TP 3n +open \fIzurl\fR +Opens a connection to a server. The syntax for +\fIzurl\fR +is the same as described above for connecting from the command line. +.sp +Syntax: +.sp +[(tcp|ssl|unix|http)':']\fIhost\fR +[:\fIport\fR][/\fIbase\fR] +.TP 3n +quit +Quits YAZ client +.TP 3n +find \fIquery\fR +Sends a Search Request using the +\fIquery\fR +given. By default the query is assumed to be PQF. See command +querytype. +.TP 3n +delete \fIsetname\fR +Deletes result set with name +\fIsetname\fR +on the server. +.TP 3n +base \fIbase1\fR \fIbase2\fR ... +Sets the name(s) of the database(s) to search. One or more databases may be specified separated by blanks. This commands overrides the database given in +\fIzurl\fR. +.TP 3n +show [\fIstart\fR[+\fInumber\fR]] +Fetches records by sending a Present Request from the start position given by +\fIstart\fR +a number of records given by +\fInumber\fR. If +\fIstart\fR +is not given, then the client will fetch from position of the last retrieved record plus 1. If +\fInumber\fR +is not given, then one record will be fetched at a time. +.TP 3n +scan \fIterm\fR +Scans database index for a term. The syntax resembles the syntax for +find. If you want to scan for the word +water +you could write +.sp +.RS 3n +.nf + scan water + +.fi +.RE +but if you want to scan only in, say the title field, you would write +.sp +.RS 3n +.nf + scan @attr 1=4 water + +.fi +.RE +.TP 3n +scanpos \fIpos\fR +Sets preferred position for scan. This value is used in next scan. By default position is 1. +.TP 3n +scansize \fIsize\fR +Sets number of entries to be returned by scan. Default number of entries is 20. +.TP 3n +scanstep \fIstep\fR +Set step\-size for scan. This value is used in next scan sent to the target. By default step\-size is 0. +.TP 3n +sort \fIsortspecs\fR +Sorts a result set. The sort command takes a sequence of space\-separated sort specifications, with each sort specification consisting of two space\-separated words (so that the whole specification list is made up of an even number of words). The first word of each specification holds a field (sort criterion) and the second holds flags. If the sort criterion includes += +it is assumed that the +SortKey +is of type +sortAttributes +using Bib\-1: in this case the integer before += +is the attribute type and the integer following += +is the attribute value. If no += +is in the criterion it is treated as a sortfield of type InternationalString. The flags word of each sort specification must consist of +s +for case sensitive or +i +for case insensitive, and +< +for ascending order or +> +for descending order. +.TP 3n +sort+ +Same as +sort +but stores the sorted result set in a new result set. +.TP 3n +authentication \fIopenauth\fR +Sets up a authentication string if a server requires authentication (v2 OpenStyle). The authentication string is first sent to the server when the +open +command is issued and the Z39.50 Initialize Request is sent, so this command must be used before +open +in order to be effective. A common convention for the +\fIauthopen\fR +string is that the username \- and password is separated by a slash, e.g. +myusername/mysecret. +.TP 3n +sru \fImethod\fR +Selects SRU method. Must be one of +POST, +GET, +SOAP +(default). +.TP 3n +list_all +This command displays status and values for many settings. +.TP 3n +lslb \fIn\fR +Sets the limit for when no records should be returned together with the search result. See the +[1]\&\fI Z39.50 standard \fR +for more details. +.TP 3n +ssub \fIn\fR +Sets the limit for when all records should be returned with the search result. See the +[1]\&\fI Z39.50 standard \fR +for more details. +.TP 3n +mspn \fIn\fR +Sets the number of records should be returned if the number of records in the result set is between the values of +lslb +and +ssub. See the +[1]\&\fI Z39.50 standard \fR +for more details. +.TP 3n +status +Displays the values of +lslb, +ssub +and +mspn. +.TP 3n +setname +Switches named result sets on and off. Default is on. +.TP 3n +cancel +Sends a Trigger Resource Control Request to the target. +.TP 3n +format \fIoid\fR +Sets the preferred transfer syntax for retrieved records. yaz\-client supports all the record syntaxes that currently are registered. See +[2]\&\fI Z39.50 Standard \fR +for more details. Commonly used records syntaxes include usmarc, sutrs, grs1 and xml. +.TP 3n +elements \fIe\fR +Sets the element set name for the records. Many targets support element sets are B (for brief) and F (for full). +.TP 3n +close +Sends a Z39.50 Close APDU and closes connection with the peer +.TP 3n +querytype \fItype\fR +Sets the query type as used by command +find. The following is supported: +prefix +for +Prefix Query Notation +(Type\-1 Query); +ccl +for CCL search (Type\-2 Query), +cql +for CQL (Type\-104 search with CQL OID), +ccl2rpn +for +CCL +to RPN conversion (Type\-1 Query). +cql2rpn +for CQL to RPN conversion (Type\-1 Query). +.TP 3n +attributeset \fIset\fR +Sets attribute set OID for prefix queries (RPN, Type\-1). +.TP 3n +refid \fIid\fR +Sets reference ID for Z39.50 Request(s). +.TP 3n +itemorder \fItype\fR \fIno\fR +Sends an Item Order Request using the ILL External. +\fItype\fR +is either 1 or 2 which corresponds to ILL\-Profile 1 and 2 respectively. The +\fIno\fR +is the Result Set position of the record to be ordered. +.TP 3n +update \fIaction\fR \fIrecid\fR \fIdoc\fR +Sends Item Update Request. The +\fIaction\fR +argument must be the action type: one of +insert, +replace, +delete +and +update. The second argument, +\fIrecid\fR, is the record identifier (any string). Third argument which is optional is the record document for the request. If doc is a quoted string (double quotes) the string content is used verbatim. If doc is not a quoted string, it is assumed to be a filename which is read, then sent as the docuemnt content. If doc is omitted, the last received record (as parf of present response or piggybacked search response) is used for the update. +.TP 3n +. \fIfilename\fR +Executes list of commands from file +\fIfilename\fR, just like source on most UNIX shells. +.TP 3n +! \fIargs\fR +Executes command +\fIargs\fR +in subshell using the +system +call. +.TP 3n +push_command \fIcommand\fR +The push_command takes another command as its argument. That command is then added to the history information (so you can retrieve it later). The command itself is not executed. This command only works if you have GNU readline/history enabled. +.TP 3n +set_apdufile \fIfilename\fR +Sets that APDU should be logged to file +\fIfilename\fR. Another way to achieve APDU log is by using command\-line option +\-a. +.TP 3n +set_auto_reconnect \fIflag\fR +Specifies whether YAZ client automatically reconnect if target closes connection (Z39.50 only). +.sp + +\fIflag\fR +must be either +on +or +off. +.TP 3n +set_auto_wait \fIflag\fR +Specifies whether YAZ client should wait for response protocol packages after a request. By default YAZ client waits (on) for response packages immediately after a command (find, show) has been issued. If +off +is used, YAZ client does not attempt to receive packages automatically. These will have to be manually received when command +wait_response +is used. +.sp + +\fIflag\fR +must be either +on +or +off. +.TP 3n +set_marcdump \fIfilename\fR +Specifies that all retrieved records should be appended to file +\fIfilename\fR. This command does the thing as option +\-m. +.TP 3n +schema \fIschemaid\fR +Specifies schema for retrieval. Schema may be specified as an OID for Z39.50. For SRU, schema is a simple string URI. +.TP 3n +charset \fInegotiationcharset\fR [\fIdisplaycharset\fR] [[\fImarccharset\fR]] +Specifies character set (encoding) for Z39.50 negotiation / SRU encoding and/or character set for output (terminal). +.sp + +\fInegotiationcharset\fR +is the name of the character set to be negotiated by the server. The special name +\- +for +\fInegotiationcharset\fR +specifies +\fIno\fR +character set to be negotiated. +.sp +If +\fIdisplaycharset\fR +is given, it specifies name of the character set of the output (on the terminal on which YAZ client is running). To disable conversion of characters to the output encoding, the special name +\- +(dash) can be used. If the special name +auto +is given, YAZ client will convert strings to the encoding of the terminal as returned by +\fBnl_langinfo\fR +call. +.sp +If +\fImarcharset\fR +is given, it specifies name of the character set of retrieved MARC records from server. See also +marcharset +command. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +\fBNote\fR +Since character set negotation takes effect in the Z39.50 Initialize Request you should issue this command before command +open +is used. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +\fBNote\fR +MARC records are not covered by Z39.50 character set negotiation, so that's why there is a separate character that must be known in order to do meaningful converson(s). +.TP 3n +negcharset \fIcharset\fR +Specifies character set for negotiation (Z39.50). The argument is the same as second argument for command +charset. +.TP 3n +displaycharset \fIcharset\fR +Specifies character set for output (display). The argument is the same as second argument for command +charset. +.TP 3n +marccharset \fIcharset\fR +Specifies character set for retrieved MARC records so that YAZ client can display them in a character suitable for your display. See +charset +command. If +auto +is given, YAZ will assume that MARC21/USMARC is using MARC8/UTF8 and ISO\-8859\-1 for all other MARC variants. The charset argument is the same as third argument for command +charset. +.TP 3n +set_cclfile \fIfilename\fR +Specifies that CCL fields should be read from file file +\fIfilename\fR. This command does the thing as option +\-c. +.TP 3n +set_cqlfile \fIfilename\fR +Specifies that CQL fields should be read from file file +\fIfilename\fR. This command does the thing as option +\-q. +.TP 3n +register_oid \fIname\fR \fIclass\fR \fIOID\fR +This command allows you to register your own object identifier \- so that instead of entering a long dot\-notation you can use a short name instead. The +\fIname\fR +is your name for the OID, +\fIclass\fR +is the class, and +\fIOID\fR +is the raw OID in dot notation. Class is one +appctx, +absyn, +attet, +transyn, +diagset, +recsyn, +resform, +accform, +extserv, +userinfo, +elemspec, +varset, +schema, +tagset, +general. If you're in doubt use the +general +class. +.TP 3n +register_tab \fIcommand\fR \fIstring\fR +This command registers a TAB completion string for the command given. +.TP 3n +sleep \fIseconds\fR +This command makes YAZ client sleep (be idle) for the number of seconds given. +.TP 3n +wait_response [ \fInumber\fR] +This command makes YAZ client wait for a number of response packages from target. If +\fInumber\fR +is omitted, 1 is assumed. +.sp +This command is rarely used and is only useful if command +set_auto_wait +is set to off. +.TP 3n +xmles \fIOID\fR \fIdoc\fR +Sends XML Extended Services request using the OID and doc given. +.TP 3n +zversion \fIver\fR +This command sets Z39.50 version for negotiation. Should be used before +open. By default 3 (version 3) is used. +.TP 3n +options \fIop1 op2..\fR +This command sets Z39.50 options for negotiation. Should be used before +open. +.sp +The following options are supported: +search, +present, +delSet, +resourceReport, +triggerResourceCtrl, +resourceCtrl, +accessCtrl, +scan, +sort, +extendedServices, +level_1Segmentation, +level_2Segmentation, +concurrentOperations, +namedResultSets, +encapsulation, +resultCount, +negotiationModel, +duplicationDetection, +queryType104, +pQESCorrection, +stringSchema. +.SH "FILES" +.PP + +\fIyaz\-/client/client.c\fR +.PP + +\fI.yazclientrc\fR +.PP + +\fI$HOME/.yazclientrc\fR +.SH "SEE ALSO" +.PP + +\fByaz\fR(7) +.PP +Section "The YAZ Client" in the YAZ manual. +.PP +Section "Prefix Query Format" in the YAZ manual. +.PP +Section "Common Command Language" in the YAZ manual. +.PP +Section "Common Query Language" in the YAZ manual. +.SH "REFERENCES" +.TP 3 +1.\ Z39.50 standard +\%http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6 +.TP 3 +2.\ Z39.50 Standard +\%http://www.loc.gov/z3950/agency/defns/oids.html#5 diff --git a/dependencies/yaz-2.1.28/doc/yaz-config-man.xml b/dependencies/yaz-2.1.28/doc/yaz-config-man.xml new file mode 100644 index 0000000..0d9d74f --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-config-man.xml @@ -0,0 +1,145 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + yaz-config + 8 + + + + yaz-config + Script to get information about YAZ. + + + + + yaz-config + + + + + + + libraries + + + + DESCRIPTION + + yaz-config is a script that returns information + that your own software should use to build software that uses YAZ. + + + + The following libraries are supported: + + + + + threads + + Use the threaded version of YAZ. + + + + + + + OPTIONS + + + + --prefix[=DIR] + + Returns prefix of YAZ or assume a different one if DIR is + specified. + + + + + --version + + Returns version of YAZ. + + + + + --libs + + Library specification be used when using YAZ. + + + + + --lalibs + + Return library specification. + + + + + --cflags + + Return C Compiler flags. + + + + + --comp + + Returns full path to YAZ' ASN.1 compiler: yaz-asncomp. + + + + + + + FILES + + prefix/bin/yaz-config + + + prefix/lib/libyaz*.a + + + prefix/include/yaz/*.h + + + SEE ALSO + + yaz(7) + + + Section "How to make apps using YAZ on UNIX" in the YAZ manual. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-config.8 b/dependencies/yaz-2.1.28/doc/yaz-config.8 new file mode 100644 index 0000000..6c6d375 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-config.8 @@ -0,0 +1,61 @@ +.\" Title: yaz\-config +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-CONFIG" "8" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-config \- Script to get information about YAZ. +.SH "SYNOPSIS" +.HP 11 +\fByaz\-config\fR [\fB\-\-prefix[=\fR\fB\fIDIR\fR\fR\fB]\fR] [\fB\-\-version\fR] [\fB\-\-libs\fR] [\fB\-\-lalibs\fR] [\fB\-\-cflags\fR] [\fB\-\-comp\fR] [libraries...] +.SH "DESCRIPTION" +.PP + +\fByaz\-config\fR +is a script that returns information that your own software should use to build software that uses YAZ. +.PP +The following libraries are supported: +.TP 3n +threads +Use the threaded version of YAZ. +.SH "OPTIONS" +.TP 3n +\-\-prefix[=\fIDIR\fR] +Returns prefix of YAZ or assume a different one if DIR is specified. +.TP 3n +\-\-version +Returns version of YAZ. +.TP 3n +\-\-libs +Library specification be used when using YAZ. +.TP 3n +\-\-lalibs +Return library specification. +.TP 3n +\-\-cflags +Return C Compiler flags. +.TP 3n +\-\-comp +Returns full path to YAZ' ASN.1 compiler: yaz\-asncomp. +.SH "FILES" +.PP + +\fI\fIprefix\fR\fR\fI/bin/yaz\-config\fR +.PP + +\fI\fIprefix\fR\fR\fI/lib/libyaz*.a\fR +.PP + +\fI\fIprefix\fR\fR\fI/include/yaz/*.h\fR +.SH "SEE ALSO" +.PP +yaz(7) +.PP +Section "How to make apps using YAZ on UNIX" in the YAZ manual. diff --git a/dependencies/yaz-2.1.28/doc/yaz-iconv-man.xml b/dependencies/yaz-2.1.28/doc/yaz-iconv-man.xml new file mode 100644 index 0000000..ce8fb0b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-iconv-man.xml @@ -0,0 +1,124 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + yaz-iconv + 1 + + + + yaz-iconv + YAZ Charcter set conversion utility + + + + + yaz-iconv + + + + file + + + + DESCRIPTION + + yaz-iconv converts data in file in character + set specified by from to output in + character set as specified by to. + + + This yaz-iconv utility similar to the + iconv found on many POSIX systems (Glibc, Solaris, etc). + + + If no file is specified, + yaz-iconv reads from standard input. + + + + OPTIONS + + + + -ffrom] + + Specify the character set from + of the input file. + Should be used in conjunction with option -t. + + + + + -tto] + + Specify the character set of + of the output. + Should be used in conjunction with option -f. + + + + + -v + + Print more information about the conversion process. + + + + + + + EXAMPLES + + The following command converts from ISO-8859-1 (Latin-1) to + UTF-8. + + yaz-iconv -f ISO-8859-1 -t UTF-8 -X <input.lst >output.lst + + + + + FILES + + prefix/bin/yaz-iconv + + + prefix/include/yaz/yaz-iconv.h + + + SEE ALSO + + yaz(7) + iconv(1) + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-iconv.1 b/dependencies/yaz-2.1.28/doc/yaz-iconv.1 new file mode 100644 index 0000000..2ae6ed0 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-iconv.1 @@ -0,0 +1,74 @@ +.\" Title: yaz\-iconv +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-ICONV" "1" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-iconv \- YAZ Charcter set conversion utility +.SH "SYNOPSIS" +.HP 10 +\fByaz\-iconv\fR [\fB\-f\ \fR\fB\fIfrom\fR\fR] [\fB\-t\ \fR\fB\fIto\fR\fR] [\fB\-v\fR] [file...] +.SH "DESCRIPTION" +.PP + +\fByaz\-iconv\fR +converts data in file in character set specified by +\fIfrom\fR +to output in character set as specified by +\fIto\fR. +.PP +This +\fByaz\-iconv\fR +utility similar to the +\fBiconv\fR +found on many POSIX systems (Glibc, Solaris, etc). +.PP +If no +\fIfile\fR +is specified, +\fByaz\-iconv\fR +reads from standard input. +.SH "OPTIONS" +.TP 3n +\-f\fIfrom\fR] +Specify the character set +\fIfrom\fR +of the input file. Should be used in conjunction with option +\-t. +.TP 3n +\-t\fIto\fR] +Specify the character set +\fIof\fR +of the output. Should be used in conjunction with option +\-f. +.TP 3n +\-v +Print more information about the conversion process. +.SH "EXAMPLES" +.PP +The following command converts from ISO\-8859\-1 (Latin\-1) to UTF\-8. +.sp +.RS 3n +.nf + yaz\-iconv \-f ISO\-8859\-1 \-t UTF\-8 \-X output.lst + +.fi +.RE +.sp +.SH "FILES" +.PP + +\fI\fIprefix\fR\fR\fI/bin/yaz\-iconv\fR +.PP + +\fI\fIprefix\fR\fR\fI/include/yaz/yaz\-iconv.h\fR +.SH "SEE ALSO" +.PP +yaz(7) iconv(1) diff --git a/dependencies/yaz-2.1.28/doc/yaz-log-man.xml b/dependencies/yaz-2.1.28/doc/yaz-log-man.xml new file mode 100644 index 0000000..a1072f5 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-log-man.xml @@ -0,0 +1,253 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + yaz-log + 7 + + + + yaz-log + Log handling in all yaz-based programs + + + + + yaz-XXXX + + + + + + DESCRIPTION + + All YAZ-based programs use a common log subsystem, and should support + common command line options for controlling it. This man page documents + those. + + + + + + OPTIONS + + + + -l logfile + + Specify the file where the log is to be written. If none is specified, + stderr is used. The log is appended to this file. + If the file grows overly large, it is silently rotated: It is renamed to + logfile.1 (old such file is deleted), and a + new file is opened. The limit defaults to 1GB, but can be set by the + program. + + + + + -v loglevel + + Specify the logging level. The argument is a set of log level names, + separated by commas (no whitespace!), optionally preceded by a '-' to + negate that level. Most programs have their own default, often + containing fatal,warn,log, and some + application-specific values. The default list can be cleared with the + word none, or individual bits can be removed by + prefixing them with a dash '-'. + + + + + + + LOG LEVELS TO CONTROL LOGGING + + Some of the log levels control the way the log is written. + + + flush causes the log to be flushed after every write. + This can have serious implications to performance, and should not be used + in production. On the other hand, when debugging a program crash, this can + be extremely useful. The option debug implies + flush as well. + + + notime prevents the writing of time stamps. This is + intended for automatic test scripts, which should produce predictable log + files that are easy to compare. + + + + + GENERAL LOG LEVELS IN YAZ ITSELF + + YAZ itself uses the following log levels: + + + fatal for fatal errors, that prevent further execution + of the program. + + + warn for warnings about things that should be corrected. + + + debug for debugging. This flag may be used temporarily + when developing or debugging yaz, or a program that uses yaz. It is + practically deprecated, you should be defining and using your own log + levels (see below). + + + all turns on almost all hard-coded log levels. + + + loglevel logs information about the log levels used by + the program. Every time the log level is changed, lists all bits that are + on. Every time a module asks for its log bits, this is logged. This can be + used for getting an idea of what log levels are available in any program + that uses yaz-log. Start the program with -v + none,loglevel, and do some common operations with it. Another way + is to grep for yaz_log_module_level in the source + code, as in + + find . -name '*.[ch]' -print | + xargs grep yaz_log_module_level | + grep '"' | + cut -d'"' -f2 | + sort -u + + + + eventl, malloc, + nmem, odr are used internally for + debugging yaz. + + + + + + LOG LEVELS FOR CLIENTS + + zoom logs the calls to the zoom API, which may be useful + in debugging client applications. + + + + LOG LEVELS FOR SERVERS + + server logs the server functions on a high level, + starting up, listening on a port, etc. + + + session logs individual sessions (connections). + + + request logs a one-liner for each request (init, search, + etc). + + + requestdetail logs the details of every request, before + it is passed to the back-end, and the results received from it. + + + Each server program (zebra, etc) is supposed to define its own log levels + in addition to these. As they depend on the server in question, they can + not be described here. See above how to find out about them. + + + + EXAMPLES + + See what log levels yaz-ztest is using: + + yaz-ztest -1 -v none,loglevel + 14:43:29-23/11 [loglevel] Setting log level to 4096 = 0x00001000 + 14:43:29-23/11 [loglevel] Static log bit 00000001 'fatal' is off + 14:43:29-23/11 [loglevel] Static log bit 00000002 'debug' is off + 14:43:29-23/11 [loglevel] Static log bit 00000004 'warn' is off + 14:43:29-23/11 [loglevel] Static log bit 00000008 'log' is off + 14:43:29-23/11 [loglevel] Static log bit 00000080 'malloc' is off + 14:43:29-23/11 [loglevel] Static log bit 00000800 'flush' is off + 14:43:29-23/11 [loglevel] Static log bit 00001000 'loglevel' is ON + 14:43:29-23/11 [loglevel] Static log bit 00002000 'server' is off + 14:43:29-23/11 [loglevel] Dynamic log bit 00004000 'session' is off + 14:43:29-23/11 [loglevel] Dynamic log bit 00008000 'request' is off + 14:44:13-23/11 yaz-ztest [loglevel] returning log bit 0x4000 for 'session' + 14:44:13-23/11 yaz-ztest [loglevel] returning log bit 0x2000 for 'server' + 14:44:13-23/11 yaz-ztest [loglevel] returning NO log bit for 'eventl' + 14:44:20-23/11 yaz-ztest [loglevel] returning log bit 0x4000 for 'session' + 14:44:20-23/11 yaz-ztest [loglevel] returning log bit 0x8000 for 'request' + 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'requestdetail' + 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'odr' + 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'ztest' + + + + See the details of the requests for yaz-ztest + + ./yaz-ztest -1 -v requestdetail + 14:45:35-23/11 yaz-ztest [server] Adding static Z3950 listener on tcp:@:9999 + 14:45:35-23/11 yaz-ztest [server] Starting server ./yaz-ztest pid=32200 + 14:45:38-23/11 yaz-ztest [session] Starting session from tcp:127.0.0.1 (pid=32200) + 14:45:38-23/11 yaz-ztest [requestdetail] Got initRequest + 14:45:38-23/11 yaz-ztest [requestdetail] Id: 81 + 14:45:38-23/11 yaz-ztest [requestdetail] Name: YAZ + 14:45:38-23/11 yaz-ztest [requestdetail] Version: 2.0.28 + 14:45:38-23/11 yaz-ztest [requestdetail] Negotiated to v3: srch prst del extendedServices namedresults scan sort + 14:45:38-23/11 yaz-ztest [request] Init from 'YAZ' (81) (ver 2.0.28) OK + 14:45:39-23/11 yaz-ztest [requestdetail] Got SearchRequest. + 14:45:39-23/11 yaz-ztest [requestdetail] ResultSet '1' + 14:45:39-23/11 yaz-ztest [requestdetail] Database 'Default' + 14:45:39-23/11 yaz-ztest [requestdetail] RPN query. Type: Bib-1 + 14:45:39-23/11 yaz-ztest [requestdetail] term 'foo' (general) + 14:45:39-23/11 yaz-ztest [requestdetail] resultCount: 7 + 14:45:39-23/11 yaz-ztest [request] Search Z: @attrset Bib-1 foo OK:7 hits + 14:45:41-23/11 yaz-ztest [requestdetail] Got PresentRequest. + 14:45:41-23/11 yaz-ztest [requestdetail] Request to pack 1+1 1 + 14:45:41-23/11 yaz-ztest [requestdetail] pms=1048576, mrs=1048576 + 14:45:41-23/11 yaz-ztest [request] Present: [1] 1+1 OK 1 records returned + + + + + FILES + + prefix/include/yaz/log.h + prefix/src/log.c + + + SEE ALSO + + yaz(7) + yaz-ztest(8) yaz-client(1) + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-log.7 b/dependencies/yaz-2.1.28/doc/yaz-log.7 new file mode 100644 index 0000000..154983b --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-log.7 @@ -0,0 +1,186 @@ +.\" Title: yaz\-log +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-LOG" "7" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-log \- Log handling in all yaz\-based programs +.SH "SYNOPSIS" +.HP 9 +\fByaz\-XXXX\fR [\fB\-v\ \fR\fB\fIloglevel,...\fR\fR] [\fB\-l\ \fR\fB\fIlogfile\fR\fR] +.SH "DESCRIPTION" +.PP +All YAZ\-based programs use a common log subsystem, and should support common command line options for controlling it. This man page documents those. +.PP +.SH "OPTIONS" +.TP 3n +\-l\fI logfile\fR +Specify the file where the log is to be written. If none is specified, +\fIstderr\fR +is used. The log is appended to this file. If the file grows overly large, it is silently rotated: It is renamed to +\fIlogfile\fR.1 (old such file is deleted), and a new file is opened. The limit defaults to 1GB, but can be set by the program. +.TP 3n +\-v\fI loglevel\fR +Specify the logging level. The argument is a set of log level names, separated by commas (no whitespace!), optionally preceded by a '\-' to negate that level. Most programs have their own default, often containing +fatal,warn,log, and some application\-specific values. The default list can be cleared with the word +none, or individual bits can be removed by prefixing them with a dash '\-'. +.SH "LOG LEVELS TO CONTROL LOGGING" +.PP +Some of the log levels control the way the log is written. +.PP + +flush +causes the log to be flushed after every write. This can have serious implications to performance, and should not be used in production. On the other hand, when debugging a program crash, this can be extremely useful. The option +debug +implies +flush +as well. +.PP + +notime +prevents the writing of time stamps. This is intended for automatic test scripts, which should produce predictable log files that are easy to compare. +.SH "GENERAL LOG LEVELS IN YAZ ITSELF" +.PP +YAZ itself uses the following log levels: +.PP + +fatal +for fatal errors, that prevent further execution of the program. +.PP + +warn +for warnings about things that should be corrected. +.PP + +debug +for debugging. This flag may be used temporarily when developing or debugging yaz, or a program that uses yaz. It is practically deprecated, you should be defining and using your own log levels (see below). +.PP + +all +turns on almost all hard\-coded log levels. +.PP + +loglevel +logs information about the log levels used by the program. Every time the log level is changed, lists all bits that are on. Every time a module asks for its log bits, this is logged. This can be used for getting an idea of what log levels are available in any program that uses yaz\-log. Start the program with +\-v none,loglevel, and do some common operations with it. Another way is to grep for +\fByaz_log_module_level\fR +in the source code, as in +.sp +.RS 3n +.nf + find . \-name '*.[ch]' \-print | + xargs grep yaz_log_module_level | + grep '"' | + cut \-d'"' \-f2 | + sort \-u + +.fi +.RE +.sp +.PP + +eventl, +malloc, +nmem, +odr +are used internally for debugging yaz. +.PP +.SH "LOG LEVELS FOR CLIENTS" +.PP + +zoom +logs the calls to the zoom API, which may be useful in debugging client applications. +.SH "LOG LEVELS FOR SERVERS" +.PP + +server +logs the server functions on a high level, starting up, listening on a port, etc. +.PP + +session +logs individual sessions (connections). +.PP + +request +logs a one\-liner for each request (init, search, etc). +.PP + +requestdetail +logs the details of every request, before it is passed to the back\-end, and the results received from it. +.PP +Each server program (zebra, etc) is supposed to define its own log levels in addition to these. As they depend on the server in question, they can not be described here. See above how to find out about them. +.SH "EXAMPLES" +.PP +See what log levels yaz\-ztest is using: +.sp +.RS 3n +.nf + yaz\-ztest \-1 \-v none,loglevel + 14:43:29\-23/11 [loglevel] Setting log level to 4096 = 0x00001000 + 14:43:29\-23/11 [loglevel] Static log bit 00000001 'fatal' is off + 14:43:29\-23/11 [loglevel] Static log bit 00000002 'debug' is off + 14:43:29\-23/11 [loglevel] Static log bit 00000004 'warn' is off + 14:43:29\-23/11 [loglevel] Static log bit 00000008 'log' is off + 14:43:29\-23/11 [loglevel] Static log bit 00000080 'malloc' is off + 14:43:29\-23/11 [loglevel] Static log bit 00000800 'flush' is off + 14:43:29\-23/11 [loglevel] Static log bit 00001000 'loglevel' is ON + 14:43:29\-23/11 [loglevel] Static log bit 00002000 'server' is off + 14:43:29\-23/11 [loglevel] Dynamic log bit 00004000 'session' is off + 14:43:29\-23/11 [loglevel] Dynamic log bit 00008000 'request' is off + 14:44:13\-23/11 yaz\-ztest [loglevel] returning log bit 0x4000 for 'session' + 14:44:13\-23/11 yaz\-ztest [loglevel] returning log bit 0x2000 for 'server' + 14:44:13\-23/11 yaz\-ztest [loglevel] returning NO log bit for 'eventl' + 14:44:20\-23/11 yaz\-ztest [loglevel] returning log bit 0x4000 for 'session' + 14:44:20\-23/11 yaz\-ztest [loglevel] returning log bit 0x8000 for 'request' + 14:44:20\-23/11 yaz\-ztest [loglevel] returning NO log bit for 'requestdetail' + 14:44:20\-23/11 yaz\-ztest [loglevel] returning NO log bit for 'odr' + 14:44:20\-23/11 yaz\-ztest [loglevel] returning NO log bit for 'ztest' + +.fi +.RE +.sp +.PP +See the details of the requests for yaz\-ztest +.sp +.RS 3n +.nf + ./yaz\-ztest \-1 \-v requestdetail + 14:45:35\-23/11 yaz\-ztest [server] Adding static Z3950 listener on tcp:@:9999 + 14:45:35\-23/11 yaz\-ztest [server] Starting server ./yaz\-ztest pid=32200 + 14:45:38\-23/11 yaz\-ztest [session] Starting session from tcp:127.0.0.1 (pid=32200) + 14:45:38\-23/11 yaz\-ztest [requestdetail] Got initRequest + 14:45:38\-23/11 yaz\-ztest [requestdetail] Id: 81 + 14:45:38\-23/11 yaz\-ztest [requestdetail] Name: YAZ + 14:45:38\-23/11 yaz\-ztest [requestdetail] Version: 2.0.28 + 14:45:38\-23/11 yaz\-ztest [requestdetail] Negotiated to v3: srch prst del extendedServices namedresults scan sort + 14:45:38\-23/11 yaz\-ztest [request] Init from 'YAZ' (81) (ver 2.0.28) OK + 14:45:39\-23/11 yaz\-ztest [requestdetail] Got SearchRequest. + 14:45:39\-23/11 yaz\-ztest [requestdetail] ResultSet '1' + 14:45:39\-23/11 yaz\-ztest [requestdetail] Database 'Default' + 14:45:39\-23/11 yaz\-ztest [requestdetail] RPN query. Type: Bib\-1 + 14:45:39\-23/11 yaz\-ztest [requestdetail] term 'foo' (general) + 14:45:39\-23/11 yaz\-ztest [requestdetail] resultCount: 7 + 14:45:39\-23/11 yaz\-ztest [request] Search Z: @attrset Bib\-1 foo OK:7 hits + 14:45:41\-23/11 yaz\-ztest [requestdetail] Got PresentRequest. + 14:45:41\-23/11 yaz\-ztest [requestdetail] Request to pack 1+1 1 + 14:45:41\-23/11 yaz\-ztest [requestdetail] pms=1048576, mrs=1048576 + 14:45:41\-23/11 yaz\-ztest [request] Present: [1] 1+1 OK 1 records returned + +.fi +.RE +.sp +.SH "FILES" +.PP + +\fI\fIprefix\fR\fR\fI/include/yaz/log.h\fR +\fI\fIprefix\fR\fR\fI/src/log.c\fR +.SH "SEE ALSO" +.PP +yaz(7) yaz\-ztest(8) yaz\-client(1) diff --git a/dependencies/yaz-2.1.28/doc/yaz-man.xml b/dependencies/yaz-2.1.28/doc/yaz-man.xml new file mode 100644 index 0000000..a4a0f68 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-man.xml @@ -0,0 +1,122 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + yaz + 7 + + + + yaz + Z39.50 toolkit. + + + + + YAZ + + + + DESCRIPTION + + YAZ is a C/C++ programmer's toolkit supporting the development + of Z39.50v3 clients and servers. The YAZ toolkit offers + several different levels of access to the ISO23950/Z39.50, SRU + and ILL protocols. The level that you need to use depends + on your requirements, and the role (server of client) that you want + to implement. + + + + COPYRIGHT + + Copyright (c) ©right-year;, Index Data ApS. + + + Permission to use, copy, modify, distribute, and sell this software and + its documentation, in whole or in part, for any purpose, is hereby granted, + provided that: + + + 1. This copyright and permission notice appear in all copies of the + software and its documentation. Notices of copyright or attribution + which appear at the beginning of any file must remain unchanged. + + + 2. The names of Index Data or the individual authors may not be used to + endorse or promote products derived from this software without specific + prior written permission. + + + + THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + + + + SEE ALSO + + + yaz-client + 1 + , + + yaz-ztest + 8 + , + + yaz-config + 8 + , + + zoomsh + 1 + + + YAZ manual ( + &prefix;/share/doc/yaz) + + + YAZ home page. + + + Z39.50 Maintenance Agency Page. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-marcdump-man.xml b/dependencies/yaz-2.1.28/doc/yaz-marcdump-man.xml new file mode 100644 index 0000000..f00fa80 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-marcdump-man.xml @@ -0,0 +1,197 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + yaz-marcdump + 1 + + + + yaz-marcdump + MARC record dump utility + + + + + yaz-marcdump + + + + + + + + + + file + + + + DESCRIPTION + + yaz-marcdump reads MARC records from one or + more files. + It parses each record and supports output in line-format, + ISO2709, MARCXML, MarcXchange as well as Hex output. + + + This utility parses records ISO2709(raw MARC) as well as XML + if that is structured as MARCXML/MarcXchange. + + + + As of YAZ 2.1.18, OAI-MARC is no longer supported. + OAI-MARC is deprecated. Use MARCXML instead. + + + + By default, each record is written to standard output in a line + format with newline for each field, $x for each subfield x. + The output format may be changed with options -X, + -e, -I. + + + yaz-marcdump can also be requested to perform + character set conversion of each record. + + + + OPTIONS + + + + -x + + Reads MARC records in MARCXML/MarcXchange format. Without + this option, yaz-marcdump reads records + in ISO2709 format. + + + + + -X + + Writes MARC records in MARCXML. + This format is equivalent to YAZ_MARC_MARCXML in + yaz/marcdisp.h. + + + + + -e + + Writes MARC records in MarcXchange format. + This format is equivalent to YAZ_MARC_XCHANGE in + yaz/marcdisp.h. + + + + + -I + + Writes MARC records in ISO2709 format. + This format is equivalent to YAZ_MARC_ISO2709 in + yaz/marcdisp.h. + + + + + -f from + + Specify the character set from + of the input MARC record. + Should be used in conjunction with option -t. + + + + + -t to + + Specify the character set of + of the output. + Should be used in conjunction with option -f. + + + + + -l leaderspec + + Specify a simple modification string for MARC leader. The + leaderspec is a list of pos=value + pairs, where pos is an integer offset (0 - 23) for leader. Value + is either a quoted string or an integer (character value in decimal). + Pairs are comma separated. For example, to set leader at offset 9 + to a, use 9=a. + + + + + -v + + Writes more information about the parsing process. + Useful if you have ill-formatted ISO2709 records as input. + + + + + + + EXAMPLES + + The following command converts MARC21/USMARC in MARC-8 encoding to + MARC21/USMARC in UTF-8 encoding. Leader offset 9 is set to 'a'. + Both input and output records are ISO2709 encoded. + + yaz-marcdump -f MARC-8 -t UTF-8 -I -l 9=97 marc21.raw >marc21.utf8.raw + + + + The same records may be converted to MARCXML instead in UTF-8: + + yaz-marcdump -f MARC-8 -t UTF-8 -X marc21.raw >marcxml.xml + + + + + FILES + + prefix/bin/yaz-marcdump + + + prefix/include/yaz/marcdisp.h + + + SEE ALSO + + yaz(7) + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-marcdump.1 b/dependencies/yaz-2.1.28/doc/yaz-marcdump.1 new file mode 100644 index 0000000..4821914 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-marcdump.1 @@ -0,0 +1,111 @@ +.\" Title: yaz\-marcdump +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-MARCDUMP" "1" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-marcdump \- MARC record dump utility +.SH "SYNOPSIS" +.HP 13 +\fByaz\-marcdump\fR [\fB\-x\fR] [\fB\-X\fR] [\fB\-e\fR] [\fB\-I\fR] [\fB\-f\ \fR\fB\fIfrom\fR\fR] [\fB\-t\ \fR\fB\fIto\fR\fR] [\fB\-l\ \fR\fB\fIspec\fR\fR] [\fB\-v\fR] [\fB\-c\ \fR\fB\fIcfile\fR\fR] [file...] +.SH "DESCRIPTION" +.PP + +\fByaz\-marcdump\fR +reads MARC records from one or more files. It parses each record and supports output in line\-format, ISO2709, MARCXML, MarcXchange as well as Hex output. +.PP +This utility parses records ISO2709(raw MARC) as well as XML if that is structured as MARCXML/MarcXchange. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +\fBNote\fR +.PP +As of YAZ 2.1.18, OAI\-MARC is no longer supported. OAI\-MARC is deprecated. Use MARCXML instead. +.PP +By default, each record is written to standard output in a line format with newline for each field, $x for each subfield x. The output format may be changed with options +\-X, +\-e, +\-I. +.PP + +\fByaz\-marcdump\fR +can also be requested to perform character set conversion of each record. +.SH "OPTIONS" +.TP 3n +\-x +Reads MARC records in MARCXML/MarcXchange format. Without this option, +\fByaz\-marcdump\fR +reads records in ISO2709 format. +.TP 3n +\-X +Writes MARC records in MARCXML. This format is equivalent to YAZ_MARC_MARCXML in +\fIyaz/marcdisp.h\fR. +.TP 3n +\-e +Writes MARC records in MarcXchange format. This format is equivalent to YAZ_MARC_XCHANGE in +\fIyaz/marcdisp.h\fR. +.TP 3n +\-I +Writes MARC records in ISO2709 format. This format is equivalent to YAZ_MARC_ISO2709 in +\fIyaz/marcdisp.h\fR. +.TP 3n +\-f \fIfrom\fR +Specify the character set +\fIfrom\fR +of the input MARC record. Should be used in conjunction with option +\-t. +.TP 3n +\-t \fIto\fR +Specify the character set +\fIof\fR +of the output. Should be used in conjunction with option +\-f. +.TP 3n +\-l \fIleaderspec\fR +Specify a simple modification string for MARC leader. The +\fIleaderspec\fR +is a list of pos=value pairs, where pos is an integer offset (0 \- 23) for leader. Value is either a quoted string or an integer (character value in decimal). Pairs are comma separated. For example, to set leader at offset 9 to a, use +9=a. +.TP 3n +\-v +Writes more information about the parsing process. Useful if you have ill\-formatted ISO2709 records as input. +.SH "EXAMPLES" +.PP +The following command converts MARC21/USMARC in MARC\-8 encoding to MARC21/USMARC in UTF\-8 encoding. Leader offset 9 is set to 'a'. Both input and output records are ISO2709 encoded. +.sp +.RS 3n +.nf + yaz\-marcdump \-f MARC\-8 \-t UTF\-8 \-I \-l 9=97 marc21.raw >marc21.utf8.raw + +.fi +.RE +.sp +.PP +The same records may be converted to MARCXML instead in UTF\-8: +.sp +.RS 3n +.nf + yaz\-marcdump \-f MARC\-8 \-t UTF\-8 \-X marc21.raw >marcxml.xml + +.fi +.RE +.sp +.SH "FILES" +.PP + +\fI\fIprefix\fR\fR\fI/bin/yaz\-marcdump\fR +.PP + +\fI\fIprefix\fR\fR\fI/include/yaz/marcdisp.h\fR +.SH "SEE ALSO" +.PP +yaz(7) diff --git a/dependencies/yaz-2.1.28/doc/yaz-ztest-man.xml b/dependencies/yaz-2.1.28/doc/yaz-ztest-man.xml new file mode 100644 index 0000000..02d22a0 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-ztest-man.xml @@ -0,0 +1,100 @@ + + %local; + + %entities; + + %common; + + + + + +]> + + + + YAZ + &version; + + + + yaz-ztest + 8 + + + + yaz-ztest + Z39.50 Test Server + + + + &gfs-synopsis; + + DESCRIPTION + + yaz-ztest is a Z39.50 test server that uses + the YAZ generic frontend server API. + The server acts as a real Z39.50 server but does not use a database. + It returns a random hit count and returns a subset of a few built-in + records. + + + The listener-spec consists of a transport + mode followed by a colon, followed by a listener address. The + transport mode is either tcp, unix, + or ssl. + + + For TCP and SSL, an address has the form: + + hostname | IP-number [ : portnumber ] + + + + For UNIX local socket the address is the filename of the local socket. + + + + OPTIONS + &gfs-options; + + VIRTUAL HOSTS + &gfs-virtual; + + FILES + + yaz-<version>/ztest/yaz-ztest.c + + + yaz-<version>/include/yaz/backend.h + + + SEE ALSO + + + yaz + 7 + + + Section "Generic server" in the YAZ manual. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/yaz-ztest.8 b/dependencies/yaz-2.1.28/doc/yaz-ztest.8 new file mode 100644 index 0000000..a6e0b3d --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz-ztest.8 @@ -0,0 +1,296 @@ +.\" Title: yaz\-ztest +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ\-ZTEST" "8" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz\-ztest \- Z39.50 Test Server +.SH "SYNOPSIS" +.HP 12 +\fBapplication\fR [\fB\-install\fR] [\fB\-installa\fR] [\fB\-remove\fR] [\fB\-a\ \fR\fB\fIfile\fR\fR] [\fB\-v\ \fR\fB\fIlevel\fR\fR] [\fB\-l\ \fR\fB\fIfile\fR\fR] [\fB\-u\ \fR\fB\fIuid\fR\fR] [\fB\-c\ \fR\fB\fIconfig\fR\fR] [\fB\-f\ \fR\fB\fIvconfig\fR\fR] [\fB\-C\ \fR\fB\fIfname\fR\fR] [\fB\-t\ \fR\fB\fIminutes\fR\fR] [\fB\-k\ \fR\fB\fIkilobytes\fR\fR] [\fB\-d\ \fR\fB\fIdaemon\fR\fR] [\fB\-w\ \fR\fB\fIdir\fR\fR] [\fB\-p\ \fR\fB\fIpidfile\fR\fR] [\fB\-ziDST1\fR] [listener\-spec...] +.SH "DESCRIPTION" +.PP + +\fByaz\-ztest\fR +is a Z39.50 test server that uses the YAZ generic frontend server API. The server acts as a real Z39.50 server but does not use a database. It returns a random hit count and returns a subset of a few built\-in records. +.PP +The +\fIlistener\-spec\fR +consists of a transport mode followed by a colon, followed by a listener address. The transport mode is either +tcp, +unix, or +ssl. +.PP +For TCP and SSL, an address has the form: +.sp +.RS 3n +.nf + hostname | IP\-number [ : portnumber ] + +.fi +.RE +.sp +.PP +For UNIX local socket the address is the filename of the local socket. +.SH "OPTIONS" +.TP 3n +\-a \fIfile\fR +Specify a file for dumping PDUs (for diagnostic purposes). The special name +\- +(dash) sends output to +stderr. +.TP 3n +\-S +Don't fork or make threads on connection requests. This is good for debugging, but not recommended for real operation: Although the server is asynchronous and non\-blocking, it can be nice to keep a software malfunction (okay then, a crash) from affecting all current users. +.TP 3n +\-1 +Like +\-S +but after one session the server exits. This mode is for debugging +\fIonly\fR. +.TP 3n +\-T +Operate the server in threaded mode. The server creates a thread for each connection rather than a fork a process. Only available on UNIX systems that offers POSIX threads. +.TP 3n +\-s +Use the SR protocol (obsolete). +.TP 3n +\-z +Use the Z39.50 protocol (default). This option and +\-s +complement each other. You can use both multiple times on the same command line, between listener\-specifications (see below). This way, you can set up the server to listen for connections in both protocols concurrently, on different local ports. +.TP 3n +\-l \fIfile\fR +The logfile. +.TP 3n +\-c \fIconfig\fR +A user option that serves as a specifier for some sort of configuration, usually a filename. The argument to this option is transferred to member +configname +of the +statserv_options_block. +.TP 3n +\-f \fIvconfig\fR +This specifies an XML file that describes one or more YAZ frontend virtual servers. +.TP 3n +\-C \fIfname\fR +Sets SSL certificate file name for server (PEM). +.TP 3n +\-v \fIlevel\fR +The log level. Use a comma\-separated list of members of the set {fatal,debug,warn,log,malloc,all,none}. +.TP 3n +\-u \fIuid\fR +Set user ID. Sets the real UID of the server process to that of the given user. It's useful if you aren't comfortable with having the server run as root, but you need to start it as such to bind a privileged port. +.TP 3n +\-w \fIdir\fR +The server changes to this directory during before listening on incoming connections. This option is useful when the server is operating from the +inetd +daemon (see +\-i). +.TP 3n +\-p \fIpidfile\fR +Specifies that the server should write its Process ID to file given by +\fIpidfile\fR. A typical location would be +\fI/var/run/yaz\-ztest.pid\fR. +.TP 3n +\-i +Use this to make the the server run from the +inetd +server (UNIX only). +.TP 3n +\-D +Use this to make the server put itself in the background and run as a daemon. If neither +\-i +nor +\-D +is given, the server starts in the foreground. +.TP 3n +\-install +Use this to install the server as an NT service (Windows NT/2000/XP only). Control the server by going to the Services in the Control Panel. +.TP 3n +\-installa +Use this to install and activate the server as an NT service (Windows NT/2000/XP only). Control the server by going to the Services in the Control Panel. +.TP 3n +\-remove +Use this to remove the server from the NT services (Windows NT/2000/XP only). +.TP 3n +\-t \fIminutes\fR +Idle session timeout, in minutes. +.TP 3n +\-k \fIsize\fR +Maximum record size/message size, in kilobytes. +.TP 3n +\-d \fIdaemon\fR +Set name of daemon to be used in hosts access file. See +\fBhosts_access\fR(5) +and +\fBtcpd\fR(8). +.TP 3n +\-m \fItime\-format\fR +Sets the format of time\-stamps in the log\-file. Specify a string in the input format to +strftime(). +.SH "VIRTUAL HOSTS" +.PP +The Virtual hosts mechanism allows a YAZ frontend server to support multiple backends. A backend is selected on the basis of the TCP/IP binding (port+listening adddress) and/or the virtual host. +.PP +A backend can be configured to execute in a particular working directory. Or the YAZ frontend may perform CQL to RPN conversion, thus allowing traditional Z39.50 backends to be offered as a SRW/SRU service. SRW/SRU Explain information for a particular backend may also be specified. +.PP +For the HTTP protocol, the virtual host is specified in the Host header. For the Z39.50 protocol, the virtual host is specified as in the Initialize Request in the OtherInfo, OID 1.2.840.10003.10.1000.81.1. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +\fBNote\fR +.PP +Not all Z39.50 clients allows the VHOST information to be set. For those the selection of the backend must rely on the TCP/IP information alone (port and address). +.PP +The YAZ frontend server uses XML to describe the backend configurations. Command\-line option +\-f +specifies filename of the XML configuration. +.PP +The configuration uses the root element +yazgfs. This element includes a list of +listen +elements, followed by one or more +server +elements. +.PP +The +listen +describes listener (transport end point), such as TCP/IP, Unix file socket or SSL server. Content for a listener: +.TP 3n +CDATA (required) +The CDATA for the +listen +element holds the listener string, such as +tcp:@:210, +tcp:server1:2100, etc. +.TP 3n +attribute id (optional) +identifier for this listener. This may be referred to from server sections. +.sp +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +\fBNote\fR +.PP +We expect more information to be added for the listen section in a future version, such as CERT file for SSL servers. +.PP +The +server +describes a server and the parameters for this server type. Content for a server: +.TP 3n +attribute id (optional) +Identifier for this server. Currently not used for anything, but it might be for logging purposes. +.TP 3n +attribute listenref (optional) +Specifies listener for this server. If this attribute is not given, the server is accessible from all listener. In order for the server to be used for real, howeever, the virtual host must match (if specified in the configuration). +.TP 3n +element config (optional) +Specifies the server configuration. This is equivalent to the config specified using command line option +\-c. +.TP 3n +element directory (optional) +Specifies a working directory for this backend server. If specifid, the YAZ fronend changes current working directory to this directory whenever a backend of this type is started (backend handler bend_start), stopped (backend handler hand_stop) and initialized (bend_init). +.TP 3n +element host (optional) +Specifies the virtual host for this server. If this is specified a client +\fImust\fR +specify this host string in order to use this backend. +.TP 3n +element cql2rpn (optional) +Specifies a filename that includes CQL to RPN conversion for this backend server. See +the section called \(lqSEE ALSO\(rq +If given, the backend server will only "see" a Type\-1/RPN query. +.TP 3n +element stylesheet (optional) +Specifies the stylesheet reference to be part of SRU HTTP responses when the client does not specify one. If neither this is given, nor the client specifies one, no stylesheet reference is part of the SRU HTTP response. +.TP 3n +element docpath (optional) +Specifies a path for local file access using HTTP. All URLs with a leading prefix (/ exluded) that matches the value of docpath are used for file access. For example, if the server is to offer access in directory +xsl, the docpath would be +xsl +and all URLs of the form +http://host/exl +will result in a local file access. +.TP 3n +element explain (optional) +Specifies SRW/SRU ZeeRex content for this server. Copied verbatim to the client. As things are now, some of the Explain content seeem redundant because host information, etc. is also stored elsewhere. +.PP +The XML below configures a server that accepts connections from two ports, TCP/IP port 9900 and a local UNIX file socket. We name the TCP/IP server +public +and the other server +internal. +.sp +.RS 3n +.nf + + + tcp:@:9900 + unix:/var/tmp/socket + + server1.mydomain + /var/www/s1 + config.cfg + + + server2.mydomain + /var/www/s2 + config.cfg + ../etc/pqf.properties + + + server2.mydomain + 9900 + a + + + + + /var/www/s3 + config.cfg + + + + +.fi +.RE +.PP +There are three configured backend servers. The first two servers, +"server1" +and +"server2", can be reached by both listener addresses \- since no +listenref +attribute is specified. In order to distinguish between the two a virtual host has been specified for each of server in the +host +elements. +.PP +For +"server2" +elements for CQL to RPN conversion is supported and explain information has been added (a short one here to keep the example small). +.PP +The third server, +"server3" +can only be reached via listener +"internal". +.SH "FILES" +.PP + +\fIyaz\-/ztest/yaz\-ztest.c\fR +.PP + +\fIyaz\-/include/yaz/backend.h\fR +.SH "SEE ALSO" +.PP + +\fByaz\fR(7) +.PP +Section "Generic server" in the YAZ manual. diff --git a/dependencies/yaz-2.1.28/doc/yaz.7 b/dependencies/yaz-2.1.28/doc/yaz.7 new file mode 100644 index 0000000..fa83b94 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz.7 @@ -0,0 +1,54 @@ +.\" Title: yaz +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "YAZ" "7" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +yaz \- Z39.50 toolkit. +.SH "SYNOPSIS" +.HP 4 +\fBYAZ\fR +.SH "DESCRIPTION" +.PP +YAZ is a C/C++ programmer's toolkit supporting the development of Z39.50v3 clients and servers. The YAZ toolkit offers several different levels of access to the ISO23950/Z39.50, SRU and ILL protocols. The level that you need to use depends on your requirements, and the role (server of client) that you want to implement. +.SH "COPYRIGHT" +.PP +Copyright (c) 1995\-2006, Index Data ApS. +.PP +Permission to use, copy, modify, distribute, and sell this software and its documentation, in whole or in part, for any purpose, is hereby granted, provided that: +.PP +1. This copyright and permission notice appear in all copies of the software and its documentation. Notices of copyright or attribution which appear at the beginning of any file must remain unchanged. +.PP +2. The names of Index Data or the individual authors may not be used to endorse or promote products derived from this software without specific prior written permission. +.PP +THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.SH "SEE ALSO" +.PP + +\fByaz\-client\fR(1), +\fByaz\-ztest\fR(8), +\fByaz\-config\fR(8), +\fBzoomsh\fR(1) +.PP +YAZ manual ( +\fI/usr/local/share/doc/yaz\fR) +.PP + +[1]\&\fIYAZ home page\fR. +.PP + +[2]\&\fIZ39.50 Maintenance Agency Page\fR. +.SH "REFERENCES" +.TP 3 +1.\ YAZ home page +\%http://www.indexdata.com/yaz/ +.TP 3 +2.\ Z39.50 Maintenance Agency Page +\%http://www.loc.gov/z3950/agency/ diff --git a/dependencies/yaz-2.1.28/doc/yaz.xml b/dependencies/yaz-2.1.28/doc/yaz.xml new file mode 100644 index 0000000..59252a9 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/yaz.xml @@ -0,0 +1,44 @@ + + + + %local; + + %entities; + + %common; +]> + + &bookinfo; + &chap-introduction; + &chap-installation; + &chap-zoom; + &chap-frontend; + &chap-client; + &chap-asn; + &chap-soap; + &chap-tools; + &chap-odr; + &chap-comstack; + &chap-future; + &app-license; + &app-indexdata; + &app-credits; + + + diff --git a/dependencies/yaz-2.1.28/doc/zoom.events.html b/dependencies/yaz-2.1.28/doc/zoom.events.html new file mode 100644 index 0000000..bf704be --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.events.html @@ -0,0 +1,28 @@ +8. Events

8. Events

+ If you're developing non-blocking applications, you have to deal + with events. +

+    int ZOOM_event (int no, ZOOM_connection *cs);
+   

+ The ZOOM_event executes pending events for + a number of connections. Supply the number of connections in + no and an array of connections in + cs (cs[0] ... cs[no-1]). + A pending event could be a sending a search, receiving a response, + etc. + When an event has occurred for one of the connections, this function + returns a positive integer n denoting that an event + occurred for connection cs[n-1]. + When no events are pending for the connections, a value of zero is + returned. + To ensure that all outstanding requests are performed call this function + repeatedly until zero is returned. +

+ If ZOOM_event returns and returns non-zero, the + last event that occurred can be expected. +

+    int ZOOM_connection_last_event(ZOOM_connection cs);
+   

+ ZOOM_connection_last_event returns an event type + (integer) for the last event. +

Table 3.10. ZOOM Event IDs

EventDescription
ZOOM_EVENT_NONENo event has occurred
ZOOM_EVENT_CONNECTTCP/IP connect has initiated
ZOOM_EVENT_SEND_DATAData has been transmitted (sending)
ZOOM_EVENT_RECV_DATAData has been received)
ZOOM_EVENT_TIMEOUTTimeout
ZOOM_EVENT_UNKNOWNUnknown event
ZOOM_EVENT_SEND_APDUAn APDU has been transmitted (sending)
ZOOM_EVENT_RECV_APDUAn APDU has been received
ZOOM_EVENT_RECV_RECORDA result-set record has been received
ZOOM_EVENT_RECV_SEARCHA search result been received

diff --git a/dependencies/yaz-2.1.28/doc/zoom.ext.html b/dependencies/yaz-2.1.28/doc/zoom.ext.html new file mode 100644 index 0000000..fb9ae3e --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.ext.html @@ -0,0 +1,92 @@ +6. Extended Services

6. Extended Services

+ ZOOM offers an interface to a subset of the Z39.50 extended services + as well as a few privately defined ones: +

+ To create an extended service operation a ZOOM_package + must be created. The operation is a five step operation. The + package is created, package is configured by means of options, + the package is send, result is inspected (by means of options), + the package is destroyed. +

+    ZOOM_package ZOOM_connection_package(ZOOM_connection c,
+                                         ZOOM_options options);
+
+    const char *ZOOM_package_option_get(ZOOM_package p,
+                                        const char *key);
+    void ZOOM_package_option_set(ZOOM_package p, const char *key,
+                                 const char *val);
+    void ZOOM_package_send(ZOOM_package p, const char *type);
+
+    void ZOOM_package_destroy(ZOOM_package p);
+   

+ The ZOOM_connection_package creates a + package for the connection given using the options specified. +

+ Functions ZOOM_package_option_get and + ZOOM_package_option_set gets and sets + options. +

+ ZOOM_package_send sends + the package the via connection specified in + ZOOM_connection_package. + The type specifies the actual extended service + package type to be sent. +

Table 3.5. Extended Service Common Options

OptionDescriptionDefault
package-nameExtended Service Request package name. Must be specified + as part of a requestnone
user-idUser ID of Extended Service Package. Is a request optionnone
function + Function of package - one of create, + delete, modify. Is + a request option. + create
targetReference + Target Reference. This is part of the response as returned + by the server. Read it after a succesful operation. + none

6.1. Item Order

+ For Item Order, type must be set to itemorder in + ZOOM_package_send. +

Table 3.6. Item Order Options

OptionDescriptionDefault
contact-nameILL contact namenone
contact-phoneILL contact phonenone
contact-emailILL contact emailnone
itemorder-itemPosition for item (record) requested. An integer1

6.2. Record Update

+ For Record Update, type must be set to update in + ZOOM_package_send. +

Table 3.7. Record Update Options

OptionDescriptionDefault
action + The update action. One of + specialUpdate, + recordInsert, + recordReplace, + recordDelete, + elementUpdate. + specialUpdate
recordIdOpaqueOpaque Record IDnone
recordIdNumberRecord ID numbernone
recordThe record itselfnone
syntaxThe record syntax (transfer syntax). Is a string that + is a known record syntax. + no syntax
databaseNameDatabase from connection objectDefault

6.3. Database Create

+ For Database Create, type must be set to create in + ZOOM_package_send. +

Table 3.8. Database Create Options

OptionDescriptionDefault
databaseNameDatabase from connection objectDefault

6.4. Database Drop

+ For Database Drop, type must be set to drop in + ZOOM_package_send. +

Table 3.9. Database Create Options

OptionDescriptionDefault
databaseNameDatabase from connection objectDefault

6.5. Commit Operation

+ For Commit, type must be set to commit in + ZOOM_package_send. +

6.6. Protocol behavior

+ All the extended services are Z39.50-only. +

Note

+ The database create, drop and commit services are privately defined + operations. + Refer to esadmin.asn in YAZ for the ASN.1 + definitions. +

diff --git a/dependencies/yaz-2.1.28/doc/zoom.html b/dependencies/yaz-2.1.28/doc/zoom.html new file mode 100644 index 0000000..c01dc3e --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.html @@ -0,0 +1,237 @@ +Chapter 3. ZOOM

Chapter 3. ZOOM

+ ZOOM is an acronym for 'Z39.50 Object-Orientation Model' and is + an initiative started by Mike Taylor (Mike is from the UK, which + explains the peculiar name of the model). The goal of ZOOM is to + provide a common Z39.50 client API not bound to a particular + programming language or toolkit. +

Note

+ A recent addition to YAZ is SRU support. You can now make + SRU ZOOM connections by specifying scheme http:// + for the hostname for a connection. +

+ The lack of a simple Z39.50 client API for YAZ has become more + and more apparent over time. So when the first ZOOM specification + became available, + an implementation for YAZ was quickly developed. For the first time, it is + now as easy (or easier!) to develop clients than servers with YAZ. This + chapter describes the ZOOM C binding. Before going further, please + reconsider whether C is the right programming language for the job. + There are other language bindings available for YAZ, and still + more + are in active development. See the + ZOOM web-site for + more information. +

+ In order to fully understand this chapter you should read and + try the example programs zoomtst1.c, + zoomtst2.c, .. in the zoom + directory. +

+ The C language misses features found in object oriented languages + such as C++, Java, etc. For example, you'll have to manually, + destroy all objects you create, even though you may think of them as + temporary. Most objects has a _create - and a + _destroy variant. + All objects are in fact pointers to internal stuff, but you don't see + that because of typedefs. All destroy methods should gracefully ignore a + NULL pointer. +

+ In each of the sections below you'll find a sub section called + protocol behavior, that describes how the API maps to the Z39.50 + protocol. +

1. Connections

The Connection object is a session with a target. +

+    #include <yaz/zoom.h>
+    
+    ZOOM_connection ZOOM_connection_new (const char *host, int portnum);
+    
+    ZOOM_connection ZOOM_connection_create (ZOOM_options options);
+    
+    void ZOOM_connection_connect(ZOOM_connection c, const char *host,
+                                 int portnum);
+    void ZOOM_connection_destroy (ZOOM_connection c);
+   

+ Connection objects are created with either function + ZOOM_connection_new or + ZOOM_connection_create. + The former creates and automatically attempts to establish a network + connection with the target. The latter doesn't establish + a connection immediately, thus allowing you to specify options + before establishing network connection using the function + ZOOM_connection_connect. + If the port number, portnum, is zero, the + host is consulted for a port specification. + If no port is given, 210 is used. A colon denotes the beginning of + a port number in the host string. If the host string includes a + slash, the following part specifies a database for the connection. +

+ You can prefix the host with a scheme followed by colon. The + default scheme is tcp (Z39.50 protocol). + The scheme http selects SRU over HTTP. +

+ You can prefix the scheme-qualified host-string with one or more + comma-separated + key=value + sequences, each of which represents an option to be set into the + connection structure before the + protocol-level connection is forged and the initialisation + handshake takes place. This facility can be used to provide + authentication credentials, as in host-strings such as: + user=admin,password=halfAm4n,tcp:localhost:8017/db +

+ Connection objects should be destroyed using the function + ZOOM_connection_destroy. +

+    void ZOOM_connection_option_set(ZOOM_connection c,
+                                    const char *key, const char *val);
+
+    void ZOOM_connection_option_setl(ZOOM_connection c,
+                                     const char *key,
+                                     const char *val, int len);
+
+    const char *ZOOM_connection_option_get(ZOOM_connection c,
+                                           const char *key);
+    const char *ZOOM_connection_option_getl(ZOOM_connection c,
+                                            const char *key,
+                                            int *lenp);
+   

+ The functions ZOOM_connection_option_set and + ZOOM_connection_option_setl allows you to + set an option given by key to the value + value for the connection. + For ZOOM_connection_option_set, the + value is assumed to be a 0-terminated string. Function + ZOOM_connection_option_setl specifies a + value of a certain size (len). +

+ Functions ZOOM_connection_option_get and + ZOOM_connection_option_getl returns + the value for an option given by key. +

Table 3.1. ZOOM Connection Options

OptionDescriptionDefault
+ implementationNameName of Your client + none
+ userAuthentication user name + none
+ groupAuthentication group name + none
+ passwordAuthentication password. + none
+ hostTarget host. This setting is "read-only". + It's automatically set internally when connecting to a target. + none
+ proxyProxy host + none
+ asyncIf true (1) the connection operates in + asynchronous operation which means that all calls are non-blocking + except + ZOOM_event. + 0
+ maximumRecordSize Maximum size of single record. + 1 MB
+ preferredMessageSize Maximum size of multiple records. + 1 MB
+ lang Language for negotiation. + none
+ charset Character set for negotiation. + none
+ serverImplementationId + Implementation ID of server. (The old targetImplementationId + option is also supported for the benefit of old applications.) + none
+ targetImplementationName + Implementation Name of server. (The old + targetImplementationName option is also supported for the + benefit of old applications.) + none
+ serverImplementationVersion + Implementation Version of server. (the old + targetImplementationVersion option is also supported for the + benefit of old applications.) + none
+ databaseNameOne or more database names + separated by character plus (+), which to + be used by subsequent search requests on this Connection. + Default
+ piggybackTrue (1) if piggyback should be + used in searches; false (0) if not. + 1
+ smallSetUpperBoundIf hits is less than or equal to this + value, then target will return all records using small element set name + 0
+ largeSetLowerBoundIf hits is greater than this + value, the target will return no records. + 1
+ mediumSetPresentNumberThis value represents + the number of records to be returned as part of a search when when + hits is less than or equal to large set lower bound and if hits + is greater than small set upper bound. + 0
+ smallSetElementSetName + The element set name to be used for small result sets. + none
+ mediumSetElementSetName + The element set name to be for medium-sized result sets. + none

+ If either option lang or charset + is set, then + + Character Set and Language Negotiation is in effect. +

+     int ZOOM_connection_error (ZOOM_connection c, const char **cp,
+                                const char **addinfo);
+     int ZOOM_connection_error_x (ZOOM_connection c, const char **cp,
+                                  const char **addinfo, const char **dset);
+   

+ Function ZOOM_connection_error checks for + errors for the last operation(s) performed. The function returns + zero if no errors occurred; non-zero otherwise indicating the error. + Pointers cp and addinfo + holds messages for the error and additional-info if passed as + non-NULL. Function + ZOOM_connection_error_x is an extended version + of ZOOM_connection_error that is capable of + returning name of diagnostic set in dset. +

1.1. Z39.50 Protocol behavior

+ The calls ZOOM_connection_new and + ZOOM_connection_connect establishes a TCP/IP + connection and sends an Initialize Request to the target if + possible. In addition, the calls waits for an Initialize Response + from the target and the result is inspected (OK or rejected). +

+ If proxy is set then the client will establish + a TCP/IP connection with the peer as specified by the + proxy host and the hostname as part of the + connect calls will be set as part of the Initialize Request. + The proxy server will then "forward" the PDU's transparently + to the target behind the proxy. +

+ For the authentication parameters, if option user + is set and both options group and + pass are unset, then Open style + authentication is used (Version 2/3) in which case the username + is usually followed by a slash, then by a password. + If either group + or pass is set then idPass authentication + (Version 3 only) is used. If none of the options are set, no + authentication parameters are set as part of the Initialize Request + (obviously). +

+ When option async is 1, it really means that + all network operations are postponed (and queued) until the + function ZOOM_event is invoked. When doing so + it doesn't make sense to check for errors after + ZOOM_connection_new is called since that + operation "connecting - and init" is still incomplete and the + API cannot tell the outcome (yet). +

1.2. SRU Protocol behavior

+ The SRU protocol doesn't feature an Inititialize Request, so + the connection phase merely establishes a TCP/IP connection + with the SOAP service. +

Most of the ZOOM connection options do not + affect SRU and they are ignored. However, future versions + of YAZ might honor implementationName and + put that as part of User-Agent header for HTTP requests. +

+ The charset is used in the Content-Type header + of HTTP requests. +

diff --git a/dependencies/yaz-2.1.28/doc/zoom.options.html b/dependencies/yaz-2.1.28/doc/zoom.options.html new file mode 100644 index 0000000..0ddbca7 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.options.html @@ -0,0 +1,24 @@ +7. Options

7. Options

+ Most ZOOM objects provide a way to specify options to change behavior. + From an implementation point of view a set of options is just like + an associative array / hash. +

+     ZOOM_options ZOOM_options_create (void);
+
+     ZOOM_options ZOOM_options_create_with_parent (ZOOM_options parent);
+
+     void ZOOM_options_destroy (ZOOM_options opt);
+   
+     const char *ZOOM_options_get (ZOOM_options opt, const char *name);
+
+     void ZOOM_options_set (ZOOM_options opt, const char *name,
+                            const char *v);
+   
+     typedef const char *(*ZOOM_options_callback)
+                                     (void *handle, const char *name);
+
+     ZOOM_options_callback
+             ZOOM_options_set_callback (ZOOM_options opt,
+                                        ZOOM_options_callback c,
+                                        void *handle);
+   
diff --git a/dependencies/yaz-2.1.28/doc/zoom.query.html b/dependencies/yaz-2.1.28/doc/zoom.query.html new file mode 100644 index 0000000..a71a5fc --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.query.html @@ -0,0 +1,31 @@ +2. Queries

2. Queries

+ Query objects represents queries. +

+     ZOOM_query ZOOM_query_create(void);
+
+     void ZOOM_query_destroy(ZOOM_query q);
+
+     int ZOOM_query_prefix(ZOOM_query q, const char *str);
+
+     int ZOOM_query_cql(ZOOM_query s, const char *str);
+
+     int ZOOM_query_sortby(ZOOM_query q, const char *criteria);
+   

+ Create query objects using ZOOM_query_create + and destroy them by calling ZOOM_query_destroy. + RPN-queries can be specified in PQF + notation by using the + function ZOOM_query_prefix. + The ZOOM_query_cql specifies a CQL + query to be sent to the server/target. + More query types will be added in future versions of YAZ, such as + CCL to RPN-mapping, native CCL query, + etc. In addition to a search, a sort criteria may be set. Function + ZOOM_query_sortby specifies a + sort criteria using the same string notation for sort as offered by + the YAZ client. +

2.1. Protocol behavior

+ The query object is just an interface for the member Query + in the SearchRequest. The sortby-function is an interface to the + sortSequence member of the SortRequest. +

diff --git a/dependencies/yaz-2.1.28/doc/zoom.records.html b/dependencies/yaz-2.1.28/doc/zoom.records.html new file mode 100644 index 0000000..170cf54 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.records.html @@ -0,0 +1,128 @@ +4. Records

4. Records

+ A record object is a retrieval record on the client side - + created from result sets. +

+     void ZOOM_resultset_records (ZOOM_resultset r,
+                                  ZOOM_record *recs,
+                                  size_t start, size_t count);
+     ZOOM_record ZOOM_resultset_record (ZOOM_resultset s, size_t pos);
+
+     const char *ZOOM_record_get (ZOOM_record rec, const char *type,
+                                  size_t *len);
+
+     ZOOM_record ZOOM_record_clone (ZOOM_record rec);
+
+     void ZOOM_record_destroy (ZOOM_record rec);
+   

+ References to temporary records are returned by functions + ZOOM_resultset_records or + ZOOM_resultset_record. +

+ If a persistent reference to a record is desired + ZOOM_record_clone should be used. + It returns a record reference that should be destroyed + by a call to ZOOM_record_destroy. +

+ A single record is returned by function + ZOOM_resultset_record that takes a + position as argument. First record has position zero. + If no record could be obtained NULL is returned. +

+ Function ZOOM_resultset_records retrieves + a number of records from a result set. Parameter start + and count specifies the range of records to + be returned. Upon completion array + recs[0], ..recs[count-1] + holds record objects for the records. The array of records + recs should be allocated prior the call + ZOOM_resultset_records. Note that for those + records that couldn't be retrieved from the target + recs[ ..] is set to NULL. +

+ In order to extract information about a single record, + ZOOM_record_get is provided. The + function returns a pointer to certain record information. The + nature (type) of the pointer depends on the parameter, + type. +

+ The type is a string of the format: +

+ form[; charset=from[,to]] +

+ where form specifies the format of the + returned record, from + specifies the character set of the record in its original form + (as returned by the server), to specifies + the output (returned) + character set encoding. + If charset is not given, then no character set conversion takes place. + If to is omitted UTF-8 is assumed. +

+ In addition, for certain types, the length + len passed will be set to the size in bytes of + the returned information. +

+ The following are the supported values for form. +

database

Database of record is returned + as a C null-terminated string. Return type + const char *. +

syntax

The transfer syntax of the record is returned + as a C null-terminated string containing the symbolic name of + the record syntax, e.g. Usmarc. Return type + is + const char *. +

render

The record is returned in a display friendly + format. Upon completion buffer is returned + (type const char *) and length is stored in + *len. +

raw

The record is returned in the internal + YAZ specific format. For GRS-1, Explain, and others, the + raw data is returned as type + Z_External * which is just the type for + the member retrievalRecord in + type NamePlusRecord. + For SUTRS and octet aligned record (including all MARCs) the + octet buffer is returned and the length of the buffer. +

xml

The record is returned in XML if possible. + SRU and Z39.50 records with transfer syntax XML are + returned verbatim. MARC records are returned in + + MARCXML + + (converted from ISO2709 to MARCXML by YAZ). + GRS-1 and OPAC records are not supported for this form. + Upon completion, the XML buffer is returned + (type const char *) and length is stored in + *len. +

opac

OPAC for record is returned in XML. +

+

+ Most + MARC21 + records uses the + MARC-8 + character set encoding. + An application that wishes to display in Latin-1 would use +

+     render; charset=marc8,iso-8859-1
+    

+

4.1. Z39.50 Protocol behavior

+ The functions ZOOM_resultset_record and + ZOOM_resultset_records inspects the client-side + record cache. Records not found in cache are fetched using + Present. + The functions may block (and perform network I/O) - even though option + async is 1, because they return records objects. + (and there's no way to return records objects without retrieving them!). +

+ There is a trick, however, in the usage of function + ZOOM_resultset_records that allows for + delayed retrieval (and makes it non-blocking). By using + a null pointer for recs you're indicating + you're not interested in getting records objects + now. +

4.2. SRU Protocol behavior

+ The ZOOM driver for SRU treats records returned by a SRU server + as if they where Z39.50 records with transfer syntax XML and + no element set name or database name. +

diff --git a/dependencies/yaz-2.1.28/doc/zoom.resultsets.html b/dependencies/yaz-2.1.28/doc/zoom.resultsets.html new file mode 100644 index 0000000..7ed0988 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.resultsets.html @@ -0,0 +1,161 @@ +3. Result sets

3. Result sets

+ The result set object is a container for records returned from + a target. +

+     ZOOM_resultset ZOOM_connection_search(ZOOM_connection,
+                                           ZOOM_query q);
+
+     ZOOM_resultset ZOOM_connection_search_pqf(ZOOM_connection c,
+                                               const char *q);
+
+     void ZOOM_resultset_destroy(ZOOM_resultset r);
+   

+ Function ZOOM_connection_search creates + a result set given a connection and query. + Destroy a result set by calling + ZOOM_resultset_destroy. + Simple clients may using PQF only may use function + ZOOM_connection_search_pqf in which case + creating query objects is not necessary. +

+     void ZOOM_resultset_option_set (ZOOM_resultset r,
+                                      const char *key,
+                                      const char *val);
+
+     const char *ZOOM_resultset_option_get (ZOOM_resultset r,
+                                             const char *key);
+
+     size_t ZOOM_resultset_size (ZOOM_resultset r);
+   

+ Functions ZOOM_resultset_options_set and + ZOOM_resultset_get sets and gets an option + for a result set similar to ZOOM_connection_option_get + and ZOOM_connection_option_set. +

+ The number of hits also called result-count is returned by + function ZOOM_resultset_size. +

Table 3.2. ZOOM Result set Options

OptionDescriptionDefault
+ startOffset of first record to be + retrieved from target. First record has offset 0 unlike the + protocol specifications where first record has position 1. + 0
+ countNumber of records to be retrieved. + 0
+ presentChunkThe number of records to be + requested from the server in each chunk (present requst). The + value 0 means to request all the records in a single chunk. + (The old step + option is also supported for the benefit of old applications.) + 0
+ elementSetNameElement-Set name of records. + Most targets should honor element set name B + and F for brief and full respectively. + none
+ preferredRecordSyntaxPreferred Syntax, such as + USMARC, SUTRS, etc. + none
+ schemaSchema for retrieval, such as + Gils-schema, Geo-schema, etc. + none
+ setnameName of Result Set (Result Set ID). + If this option isn't set, the ZOOM module will automatically + allocate a result set name. + default

+ For servers that support Search Info report, the following + options may be read using ZOOM_resultset_get. + This detailed information is read after a successful search has + completed. +

+ This information is a list of of items, where each item is + information about a term or subquery. All items in the list + are prefixed by + SearchResult.no + where no presents the item number (0=first, 1=second). + Read searchresult.size to determine the + number of items. +

Table 3.3. Search Info Report options

OptionDescription
searchresult.size + number of search result entries. This option is-nonexistant + if no entries are returned by the server. +
searchresult.no.idsub query ID
searchresult.no.countresult count for item (number of hits)
searchresult.no.subquery.termsubquery term
+ searchresult.no.interpretation.term + interpretation term
+ searchresult.no.recommendation.term + recommendation term

3.1. Z39.50 Protocol behavior

+ The creation of a result set involves at least a SearchRequest + - SearchResponse protocol handshake. Following that, if a sort + criteria was specified as part of the query, a SortRequest - + SortResponse handshake takes place. Note that it is necessary to + perform sorting before any retrieval takes place, so no records will + be returned from the target as part of the SearchResponse because these + would be unsorted. Hence, piggyback is disabled when sort criteria + are set. Following Search - and a possible sort - Retrieval takes + place - as one or more Present Requests/Response pairs being + transferred. +

+ The API allows for two different modes for retrieval. A high level + mode which is somewhat more powerful and a low level one. + The low level is enabled when searching on a Connection object + for which the settings + smallSetUpperBound, + mediumSetPresentNumber and + largeSetLowerBound are set. The low level mode + thus allows you to precisely set how records are returned as part + of a search response as offered by the Z39.50 protocol. + Since the client may be retrieving records as part of the + search response, this mode doesn't work well if sorting is used. +

+ The high-level mode allows you to fetch a range of records from + the result set with a given start offset. When you use this mode + the client will automatically use piggyback if that is possible + with the target and perform one or more present requests as needed. + Even if the target returns fewer records as part of a present response + because of a record size limit, etc. the client will repeat sending + present requests. As an example, if option start + is 0 (default) and count is 4, and + piggyback is 1 (default) and no sorting criteria + is specified, then the client will attempt to retrieve the 4 + records as part the search response (using piggyback). On the other + hand, if either start is positive or if + a sorting criteria is set, or if piggyback + is 0, then the client will not perform piggyback but send Present + Requests instead. +

+ If either of the options mediumSetElementSetName and + smallSetElementSetName are unset, the value + of option elementSetName is used for piggyback + searches. This means that for the high-level mode you only have + to specify one elementSetName option rather than three. +

3.2. SRU Protocol behavior

+ Current version of YAZ does not take advantage of a result set id + returned by the SRU server. Future versions might do, however. + Since, the ZOOM driver does not save result set IDs any + present (retrieval) is transformed to a SRU SearchRetrieveRequest + with same query but, possibly, different offsets. +

+ Option schema specifies SRU schema + for retrieval. However, options elementSetName and + preferredRecordSyntax are ignored. +

+ Options start and count + are supported by SRU. + The remaining options + piggyback, + smallSetUpperBound, + largeSetLowerBound, + mediumSetPresentNumber, + mediumSetElementSetName, + smallSetElementSetName are + unsupported. +

+ SRU supports CQL queries, not PQF. + If PQF is used, however, the PQF query is transferred anyway + using non-standard element pQuery in + SRU SearchRetrieveRequest. +

+ Unfortunately, SRU does not define a database setting. Hence, + databaseName is unsupported and ignored. + However, the path part in host parameter for functions + ZOOM_connecton_new and + ZOOM_connection_connect acts as a + database (at least for the YAZ SRU server). +

diff --git a/dependencies/yaz-2.1.28/doc/zoom.scan.html b/dependencies/yaz-2.1.28/doc/zoom.scan.html new file mode 100644 index 0000000..4b6e9e3 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.scan.html @@ -0,0 +1,74 @@ +5. Scan

5. Scan

+ This section describes an interface for Scan. Scan is not an + official part of the ZOOM model yet. The result of a scan operation + is the ZOOM_scanset which is a set of terms + returned by a target. +

+ The Scan interface is Z39.50 only. SRW version 1.0 does not + support this. +

+    ZOOM_scanset ZOOM_connection_scan(ZOOM_connection c,
+                                      const char *startpqf);
+
+    size_t ZOOM_scanset_size(ZOOM_scanset scan);
+
+    const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
+                                   int *occ, size_t *len);
+
+    const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos,
+                                           int *occ, size_t *len);
+
+    void ZOOM_scanset_destroy (ZOOM_scanset scan);
+
+    const char *ZOOM_scanset_option_get(ZOOM_scanset scan,
+                                         const char *key);
+
+    void ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
+                                 const char *val);
+    

+ The scan set is created by function + ZOOM_connection_scan which performs a scan + operation on the connection using the specified + startpqf. + If the operation was successful, the size of the scan set can be + retrieved by a call to ZOOM_scanset_size. + Like result sets, the items are numbered 0,..size-1. + To obtain information about a particular scan term, call function + ZOOM_scanset_term. This function takes + a scan set offset pos and returns a pointer + to a raw term or NULL if + non-present. + If present, the occ and len + are set to the number of occurrences and the length + of the actual term respectively. + ZOOM_scanset_display_term is similar to + ZOOM_scanset_term except that it returns + the display term rather than the raw term. + In a few cases, the term is different from display term. Always + use the display term for display and the raw term for subsequent + scan operations (to get more terms, next scan result, etc). +

+ A scan set may be freed by a call to function + ZOOM_scanset_destroy. + Functions ZOOM_scanset_option_get and + ZOOM_scanset_option_set retrieves and sets + an option respectively. +

+ The startpqf is a subset of PQF, namely + the Attributes+Term part. Multiple @attr can + be used. For example to scan in title (complete) phrases: +


+     @attr 1=4 @attr 6=2 "science o"
+    

+

Table 3.4. ZOOM Scan Set Options

OptionDescriptionDefault
+ numberNumber of Scan Terms requested in next scan. + After scan it holds the actual number of terms returned. + 10
+ positionPreferred Position of term in response + in next scan; actual position after completion of scan. + 1
+ stepSizeStep Size + 0
+ scanStatusAn integer indicating the Scan Status + of last scan. + 0

diff --git a/dependencies/yaz-2.1.28/doc/zoom.xml b/dependencies/yaz-2.1.28/doc/zoom.xml new file mode 100644 index 0000000..6e320ef --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoom.xml @@ -0,0 +1,1341 @@ + + + ZOOM + + &zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is + an initiative started by Mike Taylor (Mike is from the UK, which + explains the peculiar name of the model). The goal of &zoom; is to + provide a common Z39.50 client API not bound to a particular + programming language or toolkit. + + + + + A recent addition to &yaz; is SRU support. You can now make + SRU ZOOM connections by specifying scheme http:// + for the hostname for a connection. + + + + + The lack of a simple Z39.50 client API for &yaz; has become more + and more apparent over time. So when the first &zoom; specification + became available, + an implementation for &yaz; was quickly developed. For the first time, it is + now as easy (or easier!) to develop clients than servers with &yaz;. This + chapter describes the &zoom; C binding. Before going further, please + reconsider whether C is the right programming language for the job. + There are other language bindings available for &yaz;, and still + more + are in active development. See the + ZOOM web-site for + more information. + + + + In order to fully understand this chapter you should read and + try the example programs zoomtst1.c, + zoomtst2.c, .. in the zoom + directory. + + + + The C language misses features found in object oriented languages + such as C++, Java, etc. For example, you'll have to manually, + destroy all objects you create, even though you may think of them as + temporary. Most objects has a _create - and a + _destroy variant. + All objects are in fact pointers to internal stuff, but you don't see + that because of typedefs. All destroy methods should gracefully ignore a + NULL pointer. + + + In each of the sections below you'll find a sub section called + protocol behavior, that describes how the API maps to the Z39.50 + protocol. + + Connections + + The Connection object is a session with a target. + + + #include <yaz/zoom.h> + + ZOOM_connection ZOOM_connection_new (const char *host, int portnum); + + ZOOM_connection ZOOM_connection_create (ZOOM_options options); + + void ZOOM_connection_connect(ZOOM_connection c, const char *host, + int portnum); + void ZOOM_connection_destroy (ZOOM_connection c); + + + Connection objects are created with either function + ZOOM_connection_new or + ZOOM_connection_create. + The former creates and automatically attempts to establish a network + connection with the target. The latter doesn't establish + a connection immediately, thus allowing you to specify options + before establishing network connection using the function + ZOOM_connection_connect. + If the port number, portnum, is zero, the + host is consulted for a port specification. + If no port is given, 210 is used. A colon denotes the beginning of + a port number in the host string. If the host string includes a + slash, the following part specifies a database for the connection. + + + You can prefix the host with a scheme followed by colon. The + default scheme is tcp (Z39.50 protocol). + The scheme http selects SRU over HTTP. + + + You can prefix the scheme-qualified host-string with one or more + comma-separated + key=value + sequences, each of which represents an option to be set into the + connection structure before the + protocol-level connection is forged and the initialisation + handshake takes place. This facility can be used to provide + authentication credentials, as in host-strings such as: + user=admin,password=halfAm4n,tcp:localhost:8017/db + + + Connection objects should be destroyed using the function + ZOOM_connection_destroy. + + + void ZOOM_connection_option_set(ZOOM_connection c, + const char *key, const char *val); + + void ZOOM_connection_option_setl(ZOOM_connection c, + const char *key, + const char *val, int len); + + const char *ZOOM_connection_option_get(ZOOM_connection c, + const char *key); + const char *ZOOM_connection_option_getl(ZOOM_connection c, + const char *key, + int *lenp); + + + The functions ZOOM_connection_option_set and + ZOOM_connection_option_setl allows you to + set an option given by key to the value + value for the connection. + For ZOOM_connection_option_set, the + value is assumed to be a 0-terminated string. Function + ZOOM_connection_option_setl specifies a + value of a certain size (len). + + + Functions ZOOM_connection_option_get and + ZOOM_connection_option_getl returns + the value for an option given by key. + + ZOOM Connection Options + + + + + + + Option + Description + Default + + + + + implementationNameName of Your client + none + + userAuthentication user name + none + + groupAuthentication group name + none + + passwordAuthentication password. + none + + hostTarget host. This setting is "read-only". + It's automatically set internally when connecting to a target. + none + + proxyProxy host + none + + asyncIf true (1) the connection operates in + asynchronous operation which means that all calls are non-blocking + except + ZOOM_event. + 0 + + maximumRecordSize Maximum size of single record. + 1 MB + + preferredMessageSize Maximum size of multiple records. + 1 MB + + lang Language for negotiation. + none + + charset Character set for negotiation. + none + + serverImplementationId + Implementation ID of server. (The old targetImplementationId + option is also supported for the benefit of old applications.) + none + + targetImplementationName + Implementation Name of server. (The old + targetImplementationName option is also supported for the + benefit of old applications.) + none + + serverImplementationVersion + Implementation Version of server. (the old + targetImplementationVersion option is also supported for the + benefit of old applications.) + none + + databaseNameOne or more database names + separated by character plus (+), which to + be used by subsequent search requests on this Connection. + Default + + piggybackTrue (1) if piggyback should be + used in searches; false (0) if not. + 1 + + smallSetUpperBoundIf hits is less than or equal to this + value, then target will return all records using small element set name + 0 + + largeSetLowerBoundIf hits is greater than this + value, the target will return no records. + 1 + + mediumSetPresentNumberThis value represents + the number of records to be returned as part of a search when when + hits is less than or equal to large set lower bound and if hits + is greater than small set upper bound. + 0 + + smallSetElementSetName + The element set name to be used for small result sets. + none + + mediumSetElementSetName + The element set name to be for medium-sized result sets. + none + + +
+ + If either option lang or charset + is set, then + + Character Set and Language Negotiation is in effect. + + + int ZOOM_connection_error (ZOOM_connection c, const char **cp, + const char **addinfo); + int ZOOM_connection_error_x (ZOOM_connection c, const char **cp, + const char **addinfo, const char **dset); + + + Function ZOOM_connection_error checks for + errors for the last operation(s) performed. The function returns + zero if no errors occurred; non-zero otherwise indicating the error. + Pointers cp and addinfo + holds messages for the error and additional-info if passed as + non-NULL. Function + ZOOM_connection_error_x is an extended version + of ZOOM_connection_error that is capable of + returning name of diagnostic set in dset. + + Z39.50 Protocol behavior + + The calls ZOOM_connection_new and + ZOOM_connection_connect establishes a TCP/IP + connection and sends an Initialize Request to the target if + possible. In addition, the calls waits for an Initialize Response + from the target and the result is inspected (OK or rejected). + + + If proxy is set then the client will establish + a TCP/IP connection with the peer as specified by the + proxy host and the hostname as part of the + connect calls will be set as part of the Initialize Request. + The proxy server will then "forward" the PDU's transparently + to the target behind the proxy. + + + For the authentication parameters, if option user + is set and both options group and + pass are unset, then Open style + authentication is used (Version 2/3) in which case the username + is usually followed by a slash, then by a password. + If either group + or pass is set then idPass authentication + (Version 3 only) is used. If none of the options are set, no + authentication parameters are set as part of the Initialize Request + (obviously). + + + When option async is 1, it really means that + all network operations are postponed (and queued) until the + function ZOOM_event is invoked. When doing so + it doesn't make sense to check for errors after + ZOOM_connection_new is called since that + operation "connecting - and init" is still incomplete and the + API cannot tell the outcome (yet). + + + SRU Protocol behavior + + The SRU protocol doesn't feature an Inititialize Request, so + the connection phase merely establishes a TCP/IP connection + with the SOAP service. + + Most of the ZOOM connection options do not + affect SRU and they are ignored. However, future versions + of &yaz; might honor implementationName and + put that as part of User-Agent header for HTTP requests. + + + The charset is used in the Content-Type header + of HTTP requests. + + +
+ Queries + + Query objects represents queries. + + + ZOOM_query ZOOM_query_create(void); + + void ZOOM_query_destroy(ZOOM_query q); + + int ZOOM_query_prefix(ZOOM_query q, const char *str); + + int ZOOM_query_cql(ZOOM_query s, const char *str); + + int ZOOM_query_sortby(ZOOM_query q, const char *criteria); + + + Create query objects using ZOOM_query_create + and destroy them by calling ZOOM_query_destroy. + RPN-queries can be specified in PQF + notation by using the + function ZOOM_query_prefix. + The ZOOM_query_cql specifies a CQL + query to be sent to the server/target. + More query types will be added in future versions of &yaz;, such as + CCL to RPN-mapping, native CCL query, + etc. In addition to a search, a sort criteria may be set. Function + ZOOM_query_sortby specifies a + sort criteria using the same string notation for sort as offered by + the YAZ client. + + Protocol behavior + + The query object is just an interface for the member Query + in the SearchRequest. The sortby-function is an interface to the + sortSequence member of the SortRequest. + + + + Result sets + + The result set object is a container for records returned from + a target. + + + ZOOM_resultset ZOOM_connection_search(ZOOM_connection, + ZOOM_query q); + + ZOOM_resultset ZOOM_connection_search_pqf(ZOOM_connection c, + const char *q); + + void ZOOM_resultset_destroy(ZOOM_resultset r); + + + Function ZOOM_connection_search creates + a result set given a connection and query. + Destroy a result set by calling + ZOOM_resultset_destroy. + Simple clients may using PQF only may use function + ZOOM_connection_search_pqf in which case + creating query objects is not necessary. + + + void ZOOM_resultset_option_set (ZOOM_resultset r, + const char *key, + const char *val); + + const char *ZOOM_resultset_option_get (ZOOM_resultset r, + const char *key); + + size_t ZOOM_resultset_size (ZOOM_resultset r); + + + Functions ZOOM_resultset_options_set and + ZOOM_resultset_get sets and gets an option + for a result set similar to ZOOM_connection_option_get + and ZOOM_connection_option_set. + + + The number of hits also called result-count is returned by + function ZOOM_resultset_size. + + ZOOM Result set Options + + + + + + + Option + Description + Default + + + + + startOffset of first record to be + retrieved from target. First record has offset 0 unlike the + protocol specifications where first record has position 1. + 0 + + countNumber of records to be retrieved. + 0 + + presentChunkThe number of records to be + requested from the server in each chunk (present requst). The + value 0 means to request all the records in a single chunk. + (The old step + option is also supported for the benefit of old applications.) + 0 + + elementSetNameElement-Set name of records. + Most targets should honor element set name B + and F for brief and full respectively. + none + + preferredRecordSyntaxPreferred Syntax, such as + USMARC, SUTRS, etc. + none + + schemaSchema for retrieval, such as + Gils-schema, Geo-schema, etc. + none + + setnameName of Result Set (Result Set ID). + If this option isn't set, the ZOOM module will automatically + allocate a result set name. + default + + +
+ + For servers that support Search Info report, the following + options may be read using ZOOM_resultset_get. + This detailed information is read after a successful search has + completed. + + + This information is a list of of items, where each item is + information about a term or subquery. All items in the list + are prefixed by + SearchResult.no + where no presents the item number (0=first, 1=second). + Read searchresult.size to determine the + number of items. + + Search Info Report options + + + + + + Option + Description + + + + + searchresult.size + + number of search result entries. This option is-nonexistant + if no entries are returned by the server. + + + + searchresult.no.id + sub query ID + + + searchresult.no.count + result count for item (number of hits) + + + searchresult.no.subquery.term + subquery term + + + + searchresult.no.interpretation.term + + interpretation term + + + + searchresult.no.recommendation.term + + recommendation term + + + +
+ + Z39.50 Protocol behavior + + The creation of a result set involves at least a SearchRequest + - SearchResponse protocol handshake. Following that, if a sort + criteria was specified as part of the query, a SortRequest - + SortResponse handshake takes place. Note that it is necessary to + perform sorting before any retrieval takes place, so no records will + be returned from the target as part of the SearchResponse because these + would be unsorted. Hence, piggyback is disabled when sort criteria + are set. Following Search - and a possible sort - Retrieval takes + place - as one or more Present Requests/Response pairs being + transferred. + + + The API allows for two different modes for retrieval. A high level + mode which is somewhat more powerful and a low level one. + The low level is enabled when searching on a Connection object + for which the settings + smallSetUpperBound, + mediumSetPresentNumber and + largeSetLowerBound are set. The low level mode + thus allows you to precisely set how records are returned as part + of a search response as offered by the Z39.50 protocol. + Since the client may be retrieving records as part of the + search response, this mode doesn't work well if sorting is used. + + + The high-level mode allows you to fetch a range of records from + the result set with a given start offset. When you use this mode + the client will automatically use piggyback if that is possible + with the target and perform one or more present requests as needed. + Even if the target returns fewer records as part of a present response + because of a record size limit, etc. the client will repeat sending + present requests. As an example, if option start + is 0 (default) and count is 4, and + piggyback is 1 (default) and no sorting criteria + is specified, then the client will attempt to retrieve the 4 + records as part the search response (using piggyback). On the other + hand, if either start is positive or if + a sorting criteria is set, or if piggyback + is 0, then the client will not perform piggyback but send Present + Requests instead. + + + If either of the options mediumSetElementSetName and + smallSetElementSetName are unset, the value + of option elementSetName is used for piggyback + searches. This means that for the high-level mode you only have + to specify one elementSetName option rather than three. + + + + SRU Protocol behavior + + Current version of &yaz; does not take advantage of a result set id + returned by the SRU server. Future versions might do, however. + Since, the ZOOM driver does not save result set IDs any + present (retrieval) is transformed to a SRU SearchRetrieveRequest + with same query but, possibly, different offsets. + + + Option schema specifies SRU schema + for retrieval. However, options elementSetName and + preferredRecordSyntax are ignored. + + + Options start and count + are supported by SRU. + The remaining options + piggyback, + smallSetUpperBound, + largeSetLowerBound, + mediumSetPresentNumber, + mediumSetElementSetName, + smallSetElementSetName are + unsupported. + + + SRU supports CQL queries, not PQF. + If PQF is used, however, the PQF query is transferred anyway + using non-standard element pQuery in + SRU SearchRetrieveRequest. + + + Unfortunately, SRU does not define a database setting. Hence, + databaseName is unsupported and ignored. + However, the path part in host parameter for functions + ZOOM_connecton_new and + ZOOM_connection_connect acts as a + database (at least for the &yaz; SRU server). + + +
+ Records + + A record object is a retrieval record on the client side - + created from result sets. + + + void ZOOM_resultset_records (ZOOM_resultset r, + ZOOM_record *recs, + size_t start, size_t count); + ZOOM_record ZOOM_resultset_record (ZOOM_resultset s, size_t pos); + + const char *ZOOM_record_get (ZOOM_record rec, const char *type, + size_t *len); + + ZOOM_record ZOOM_record_clone (ZOOM_record rec); + + void ZOOM_record_destroy (ZOOM_record rec); + + + References to temporary records are returned by functions + ZOOM_resultset_records or + ZOOM_resultset_record. + + + If a persistent reference to a record is desired + ZOOM_record_clone should be used. + It returns a record reference that should be destroyed + by a call to ZOOM_record_destroy. + + + A single record is returned by function + ZOOM_resultset_record that takes a + position as argument. First record has position zero. + If no record could be obtained NULL is returned. + + + Function ZOOM_resultset_records retrieves + a number of records from a result set. Parameter start + and count specifies the range of records to + be returned. Upon completion array + recs[0], ..recs[count-1] + holds record objects for the records. The array of records + recs should be allocated prior the call + ZOOM_resultset_records. Note that for those + records that couldn't be retrieved from the target + recs[ ..] is set to NULL. + + + In order to extract information about a single record, + ZOOM_record_get is provided. The + function returns a pointer to certain record information. The + nature (type) of the pointer depends on the parameter, + type. + + + The type is a string of the format: + + + form[; charset=from[,to]] + + + where form specifies the format of the + returned record, from + specifies the character set of the record in its original form + (as returned by the server), to specifies + the output (returned) + character set encoding. + If charset is not given, then no character set conversion takes place. + If to is omitted UTF-8 is assumed. + + + In addition, for certain types, the length + len passed will be set to the size in bytes of + the returned information. + + + The following are the supported values for form. + + database + Database of record is returned + as a C null-terminated string. Return type + const char *. + + + syntax + The transfer syntax of the record is returned + as a C null-terminated string containing the symbolic name of + the record syntax, e.g. Usmarc. Return type + is + const char *. + + + render + The record is returned in a display friendly + format. Upon completion buffer is returned + (type const char *) and length is stored in + *len. + + + raw + The record is returned in the internal + YAZ specific format. For GRS-1, Explain, and others, the + raw data is returned as type + Z_External * which is just the type for + the member retrievalRecord in + type NamePlusRecord. + For SUTRS and octet aligned record (including all MARCs) the + octet buffer is returned and the length of the buffer. + + + xml + The record is returned in XML if possible. + SRU and Z39.50 records with transfer syntax XML are + returned verbatim. MARC records are returned in + + MARCXML + + (converted from ISO2709 to MARCXML by YAZ). + GRS-1 and OPAC records are not supported for this form. + Upon completion, the XML buffer is returned + (type const char *) and length is stored in + *len. + + + opac + OPAC for record is returned in XML. + + + + + + Most + MARC21 + records uses the + MARC-8 + character set encoding. + An application that wishes to display in Latin-1 would use + + render; charset=marc8,iso-8859-1 + + + Z39.50 Protocol behavior + + The functions ZOOM_resultset_record and + ZOOM_resultset_records inspects the client-side + record cache. Records not found in cache are fetched using + Present. + The functions may block (and perform network I/O) - even though option + async is 1, because they return records objects. + (and there's no way to return records objects without retrieving them!). + + + There is a trick, however, in the usage of function + ZOOM_resultset_records that allows for + delayed retrieval (and makes it non-blocking). By using + a null pointer for recs you're indicating + you're not interested in getting records objects + now. + + + SRU Protocol behavior + + The ZOOM driver for SRU treats records returned by a SRU server + as if they where Z39.50 records with transfer syntax XML and + no element set name or database name. + + + + Scan + + This section describes an interface for Scan. Scan is not an + official part of the ZOOM model yet. The result of a scan operation + is the ZOOM_scanset which is a set of terms + returned by a target. + + + + The Scan interface is Z39.50 only. SRW version 1.0 does not + support this. + + + + ZOOM_scanset ZOOM_connection_scan(ZOOM_connection c, + const char *startpqf); + + size_t ZOOM_scanset_size(ZOOM_scanset scan); + + const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, + int *occ, size_t *len); + + const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, + int *occ, size_t *len); + + void ZOOM_scanset_destroy (ZOOM_scanset scan); + + const char *ZOOM_scanset_option_get(ZOOM_scanset scan, + const char *key); + + void ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key, + const char *val); + + + The scan set is created by function + ZOOM_connection_scan which performs a scan + operation on the connection using the specified + startpqf. + If the operation was successful, the size of the scan set can be + retrieved by a call to ZOOM_scanset_size. + Like result sets, the items are numbered 0,..size-1. + To obtain information about a particular scan term, call function + ZOOM_scanset_term. This function takes + a scan set offset pos and returns a pointer + to a raw term or NULL if + non-present. + If present, the occ and len + are set to the number of occurrences and the length + of the actual term respectively. + ZOOM_scanset_display_term is similar to + ZOOM_scanset_term except that it returns + the display term rather than the raw term. + In a few cases, the term is different from display term. Always + use the display term for display and the raw term for subsequent + scan operations (to get more terms, next scan result, etc). + + + A scan set may be freed by a call to function + ZOOM_scanset_destroy. + Functions ZOOM_scanset_option_get and + ZOOM_scanset_option_set retrieves and sets + an option respectively. + + + + The startpqf is a subset of PQF, namely + the Attributes+Term part. Multiple @attr can + be used. For example to scan in title (complete) phrases: + + @attr 1=4 @attr 6=2 "science o" + + + + ZOOM Scan Set Options + + + + + + + Option + Description + Default + + + + + numberNumber of Scan Terms requested in next scan. + After scan it holds the actual number of terms returned. + 10 + + positionPreferred Position of term in response + in next scan; actual position after completion of scan. + 1 + + stepSizeStep Size + 0 + + scanStatusAn integer indicating the Scan Status + of last scan. + 0 + + +
+
+ + Extended Services + + ZOOM offers an interface to a subset of the Z39.50 extended services + as well as a few privately defined ones: + + + + + Z39.50 Item Order (ILL). + See . + + + + + Record Update. This allows a client to insert, modify or delete + records. + See . + + + + + Database Create. This a non-standard feature. Allows a client + to create a database. + See . + + + + + Database Drop. This a non-standard feature. Allows a client + to delete/drop a database. + See . + + + + + Commit operation. This a non-standard feature. Allows a client + to commit operations. + See . + + + + + + To create an extended service operation a ZOOM_package + must be created. The operation is a five step operation. The + package is created, package is configured by means of options, + the package is send, result is inspected (by means of options), + the package is destroyed. + + + ZOOM_package ZOOM_connection_package(ZOOM_connection c, + ZOOM_options options); + + const char *ZOOM_package_option_get(ZOOM_package p, + const char *key); + void ZOOM_package_option_set(ZOOM_package p, const char *key, + const char *val); + void ZOOM_package_send(ZOOM_package p, const char *type); + + void ZOOM_package_destroy(ZOOM_package p); + + + The ZOOM_connection_package creates a + package for the connection given using the options specified. + + + Functions ZOOM_package_option_get and + ZOOM_package_option_set gets and sets + options. + + + ZOOM_package_send sends + the package the via connection specified in + ZOOM_connection_package. + The type specifies the actual extended service + package type to be sent. + + + Extended Service Common Options + + + + + + + Option + Description + Default + + + + + package-name + Extended Service Request package name. Must be specified + as part of a request + none + + + user-id + User ID of Extended Service Package. Is a request option + none + + + function + + Function of package - one of create, + delete, modify. Is + a request option. + + create + + + targetReference + + Target Reference. This is part of the response as returned + by the server. Read it after a succesful operation. + + none + + + +
+ + Item Order + + For Item Order, type must be set to itemorder in + ZOOM_package_send. + + + Item Order Options + + + + + + + Option + Description + Default + + + + + contact-name + ILL contact name + none + + + contact-phone + ILL contact phone + none + + + contact-email + ILL contact email + none + + + itemorder-item + Position for item (record) requested. An integer + 1 + + + +
+ +
+ + Record Update + + For Record Update, type must be set to update in + ZOOM_package_send. + + + Record Update Options + + + + + + + Option + Description + Default + + + + + action + + The update action. One of + specialUpdate, + recordInsert, + recordReplace, + recordDelete, + elementUpdate. + + specialUpdate + + + recordIdOpaque + Opaque Record ID + none + + + recordIdNumber + Record ID number + none + + + record + The record itself + none + + + syntax + The record syntax (transfer syntax). Is a string that + is a known record syntax. + + no syntax + + + databaseName + Database from connection object + Default + + + +
+ +
+ + Database Create + + For Database Create, type must be set to create in + ZOOM_package_send. + + + Database Create Options + + + + + + + Option + Description + Default + + + + + databaseName + Database from connection object + Default + + + +
+
+ + Database Drop + + For Database Drop, type must be set to drop in + ZOOM_package_send. + + + Database Create Options + + + + + + + Option + Description + Default + + + + + databaseName + Database from connection object + Default + + + +
+
+ + Commit Operation + + For Commit, type must be set to commit in + ZOOM_package_send. + + + + Protocol behavior + + All the extended services are Z39.50-only. + + + + The database create, drop and commit services are privately defined + operations. + Refer to esadmin.asn in YAZ for the ASN.1 + definitions. + + + +
+ + Options + + Most &zoom; objects provide a way to specify options to change behavior. + From an implementation point of view a set of options is just like + an associative array / hash. + + + ZOOM_options ZOOM_options_create (void); + + ZOOM_options ZOOM_options_create_with_parent (ZOOM_options parent); + + void ZOOM_options_destroy (ZOOM_options opt); + + + const char *ZOOM_options_get (ZOOM_options opt, const char *name); + + void ZOOM_options_set (ZOOM_options opt, const char *name, + const char *v); + + + typedef const char *(*ZOOM_options_callback) + (void *handle, const char *name); + + ZOOM_options_callback + ZOOM_options_set_callback (ZOOM_options opt, + ZOOM_options_callback c, + void *handle); + + + Events + + If you're developing non-blocking applications, you have to deal + with events. + + + int ZOOM_event (int no, ZOOM_connection *cs); + + + The ZOOM_event executes pending events for + a number of connections. Supply the number of connections in + no and an array of connections in + cs (cs[0] ... cs[no-1]). + A pending event could be a sending a search, receiving a response, + etc. + When an event has occurred for one of the connections, this function + returns a positive integer n denoting that an event + occurred for connection cs[n-1]. + When no events are pending for the connections, a value of zero is + returned. + To ensure that all outstanding requests are performed call this function + repeatedly until zero is returned. + + + If ZOOM_event returns and returns non-zero, the + last event that occurred can be expected. + + + int ZOOM_connection_last_event(ZOOM_connection cs); + + + ZOOM_connection_last_event returns an event type + (integer) for the last event. + + + ZOOM Event IDs + + + + + + Event + Description + + + + + ZOOM_EVENT_NONE + No event has occurred + + + ZOOM_EVENT_CONNECT + TCP/IP connect has initiated + + + ZOOM_EVENT_SEND_DATA + Data has been transmitted (sending) + + + ZOOM_EVENT_RECV_DATA + Data has been received) + + + ZOOM_EVENT_TIMEOUT + Timeout + + + ZOOM_EVENT_UNKNOWN + Unknown event + + + ZOOM_EVENT_SEND_APDU + An APDU has been transmitted (sending) + + + ZOOM_EVENT_RECV_APDU + An APDU has been received + + + ZOOM_EVENT_RECV_RECORD + A result-set record has been received + + + ZOOM_EVENT_RECV_SEARCH + A search result been received + + + +
+
+
+ + + diff --git a/dependencies/yaz-2.1.28/doc/zoomsh-man.xml b/dependencies/yaz-2.1.28/doc/zoomsh-man.xml new file mode 100644 index 0000000..96234d6 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoomsh-man.xml @@ -0,0 +1,173 @@ + + %local; + + %entities; + + %common; +]> + + + + YAZ + &version; + + + + zoomsh + 1 + + + + zoomsh + ZOOM shell + + + + + zoomsh + commands + + + + DESCRIPTION + + zoomsh is a ZOOM client with a simple + command line interface. The client demonstrates the ZOOM + API and is useful for testing targets. + + + You may pass one or more commands to zoomsh. + These commands are invoked first. + + + EXAMPLES + + If you start the yaz-ztest in one console you + can use the ZOOM shell as follows: + connect localhost:9999 +ZOOM>search computer +localhost:9999: 7 hits +ZOOM>show 0 1 +1 Default USmarc +001 11224466 +003 DLC +005 00000000000000.0 +008 910710c19910701nju 00010 eng +010 $a 11224466 +040 $a DLC $c DLC +050 00 $a 123-xyz +100 10 $a Jack Collins +245 10 $a How to program a computer +260 1 $a Penguin +263 $a 8710 +300 $a p. cm. +ZOOM>quit +]]> + + + + You can also achieve the same result by passing the commands + as arguments on a single command line: + + + $ zoomsh "connect localhost:9999" "search computer" + "show 0 1" quit + + + COMMANDS + + + connect + zurl + + Connects to the target given by zurl. + + + close + [zurl] + + Closes connection to target given by + zurl or all targets if + zurl was omitted. + + + show + [start + [count]] + + + Displays count records starting at offset given + by start. First records has offset 0 + (unlike the Z39.50 protocol). + + + quit + + + Quits zoomsh. + + + set + name + [value] + + + Sets option name to + value. + + + get + name + + + Prints value of option name. + + + help + + + Prints list of available commands. + + + + + + SEE ALSO + + + yaz + 7 + , + + yaz-ztest + 8 + , + + + Section "Building clients with ZOOM" in the YAZ manual. + + + ZOOM home page. + + + + + diff --git a/dependencies/yaz-2.1.28/doc/zoomsh.1 b/dependencies/yaz-2.1.28/doc/zoomsh.1 new file mode 100644 index 0000000..40f0280 --- /dev/null +++ b/dependencies/yaz-2.1.28/doc/zoomsh.1 @@ -0,0 +1,112 @@ +.\" Title: zoomsh +.\" Author: +.\" Generator: DocBook XSL Stylesheets v1.70.1 +.\" Date: 09/04/2006 +.\" Manual: +.\" Source: YAZ 2.1.28 +.\" +.TH "ZOOMSH" "1" "09/04/2006" "YAZ 2.1.28" "" +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.SH "NAME" +zoomsh \- ZOOM shell +.SH "SYNOPSIS" +.HP 7 +\fBzoomsh\fR [commands...] +.SH "DESCRIPTION" +.PP + +\fBzoomsh\fR +is a ZOOM client with a simple command line interface. The client demonstrates the ZOOM API and is useful for testing targets. +.PP +You may pass one or more commands to +\fBzoomsh\fR. These commands are invoked first. +.SH "EXAMPLES" +.PP +If you start the +\fByaz\-ztest\fR +in one console you can use the ZOOM shell as follows: +.sp +.RS 3n +.nf +$ zoomsh +ZOOM>connect localhost:9999 +ZOOM>search computer +localhost:9999: 7 hits +ZOOM>show 0 1 +1 Default USmarc +001 11224466 +003 DLC +005 00000000000000.0 +008 910710c19910701nju 00010 eng +010 $a 11224466 +040 $a DLC $c DLC +050 00 $a 123\-xyz +100 10 $a Jack Collins +245 10 $a How to program a computer +260 1 $a Penguin +263 $a 8710 +300 $a p. cm. +ZOOM>quit + + +.fi +.RE +.sp +.PP +You can also achieve the same result by passing the commands as arguments on a single command line: +.PP + +$ zoomsh "connect localhost:9999" "search computer" +"show 0 1" quit +.SH "COMMANDS" +.TP 3n +connect \fIzurl\fR +Connects to the target given by +\fIzurl\fR. +.TP 3n +close [\fIzurl\fR] +Closes connection to target given by +\fIzurl\fR +or all targets if +\fIzurl\fR +was omitted. +.TP 3n +show [\fIstart\fR [\fIcount\fR]] +Displays +count +records starting at offset given by +\fIstart\fR. First records has offset 0 (unlike the Z39.50 protocol). +.TP 3n +quit +Quits +\fBzoomsh\fR. +.TP 3n +set \fIname\fR [\fIvalue\fR] +Sets option +\fIname\fR +to +\fIvalue\fR. +.TP 3n +get \fIname\fR +Prints value of option +\fIname\fR. +.TP 3n +help +Prints list of available commands. +.SH "SEE ALSO" +.PP + +\fByaz\fR(7), +\fByaz\-ztest\fR(8), +.PP +Section "Building clients with ZOOM" in the YAZ manual. +.PP + +[1]\&\fIZOOM home page\fR. +.SH "REFERENCES" +.TP 3 +1.\ ZOOM home page +\%http://zoom.z3950.org/ diff --git a/dependencies/yaz-2.1.28/etc/MARC21slim2DC.xsl b/dependencies/yaz-2.1.28/etc/MARC21slim2DC.xsl new file mode 100644 index 0000000..2b038c9 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/MARC21slim2DC.xsl @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + abfghk + + + + + + + + + + + + + + yes + + + + yes + + + + text + cartographic + notated music + sound recording + still image + moving image + three dimensional object + software, multimedia + mixed material + + + + + + + + + + + + + ab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcd + + + + + + + + abcdu + + + + + + + + ot + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/etc/MARC21slim2MODS.xsl b/dependencies/yaz-2.1.28/etc/MARC21slim2MODS.xsl new file mode 100644 index 0000000..ff35524 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/MARC21slim2MODS.xsl @@ -0,0 +1,1873 @@ + + + + + + + + + + + + + + + + + + + + + + + BK + SE + + + BK + MM + CF + MP + VM + MU + + + + + + + + + + abfghk + + + + + + + + + + + <xsl:value-of select="substring($title,@ind2+1)"/> + + + + + <xsl:value-of select="$title"/> + + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">ab</xsl:with-param> + </xsl:call-template> + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">abh</xsl:with-param> + </xsl:call-template> + + + + + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">abfh</xsl:with-param> + </xsl:call-template> + + + + + + + + + <xsl:variable name="str"> + <xsl:for-each select="marc:subfield"> + <xsl:if test="(contains('adfhklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> + <xsl:value-of select="text()"/><xsl:text> </xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:variable> + <xsl:value-of select="substring($str,1,string-length($str)-1)"/> + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">ah</xsl:with-param> + </xsl:call-template> + + + + + + + + + + creator + + + + + + + + + creator + + + + + + + + creator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + personal + + + + + + + + + + + yes + + + yes + + + + text + cartographic + notated music + sound recording + still image + moving image + three dimensional object + software, multimedia + mixed material + + + + + globe + + + + remote sensing image + + + + + + + map + + + atlas + + + + + + + + + database + + + loose-leaf + + + series + + + newspaper + + + periodical + + + web site + + + + + + + + + abstract or summary + + + bibliography + + + catalog + + + dictionary + + + encyclopedia + + + handbook + + + legal article + + + index + + + discography + + + legislation + + + theses + + + survey of literature + + + review + + + programmed text + + + filmography + + + directory + + + statistics + + + technical report + + + legal case and case notes + + + law report or digest + + + treaty + + + + + + conference publication + + + + + + + + + numeric data + + + database + + + font + + + game + + + + + + + patent + + + festschrift + + + + + biography + + + + + + essay + + + drama + + + comic strip + + + fiction + + + humor, satire + + + letter + + + novel + + + short story + + + speech + + + + + + + + biography + + + conference publication + + + drama + + + essay + + + fiction + + + folktale + + + history + + + humor, satire + + + memoir + + + poetry + + + rehersal + + + reporting + + + sound + + + speech + + + + + + + + art original + + + kit + + + art reproduction + + + diorama + + + filmstrip + + + legal article + + + picture + + + graphic + + + technical drawing + + + motion picture + + + chart + + + flash card + + + microscope slide + + + model + + + realia + + + slide + + + transparency + + + videorecording + + + toy + + + + + + + + + + + abvxyz + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + monographic + continuing + + + + + + + + ab + + + + + + + + + + + + rfc3066 + + + iso639-2b + + + + + + + + + + + + + + + + + reformatted digital + + + + + + + + + + + + + + + + + + + +
braille
+
+ +
electronic
+
+ +
microfiche
+
+ +
microfilm
+
+
+ + + + + + + + +
+ + + +
+
+ + + + + abce + + + +
+ + + + + + + + + + + + ab + + + + + + + + + agrt + + + + + + + + ab + + + + + + + + + adolescent + + + adult + + + general + + + juvenile + + + preschool + + + specialized + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + defg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ab + + + + + + + + abx + + + + + + + + ab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ab + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">av</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="part"/> + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">av</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="part"/> + + + + + + + + + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">g</xsl:with-param> + </xsl:call-template> + + + + + + + abcq + t + g + + + + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">dg</xsl:with-param> + </xsl:call-template> + + + + + + + + + + + + + + + + + c + t + dgn + + + + + + + + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">g</xsl:with-param> + </xsl:call-template> + + + + + + + aqdc + t + gn + + + + + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> + </xsl:call-template> + + + + + + + + + + + + + + <xsl:value-of select="marc:subfield[@code='a']"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">g</xsl:with-param> + </xsl:call-template> + + + + + + + + + abcq + t + g + + + + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">dg</xsl:with-param> + </xsl:call-template> + + + + + + + + + + + + + + + + + c + t + dgn + + + + + + + + + + + + + + + + + <xsl:call-template name="specialSubfieldSelect"> + <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> + <xsl:with-param name="axis">t</xsl:with-param> + <xsl:with-param name="afterCodes">g</xsl:with-param> + </xsl:call-template> + + + + + + + aqdc + t + gn + + + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> + </xsl:call-template> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + issue number + matrix number + music plate + music publisher + videorecording identifier + + + + ab + + + + + + + + ab + + + + + + + + + doi + uri + + + + + + + + + + + + + + + + abj + + + + + + + + abcd35 + + + + + + + + abcde35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + n + n + fghkdlmor + + + + + p + p + fghkdlmor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cdn + + + + + + + + + + + abcq + + + + + + + + + + + acdeq + + + + + + + + constituent + related + + + + + + + + + <xsl:value-of select="."/> + + + + + + + + + + <xsl:value-of select="."/> + + + + + + + + + + + + + + + + + + + + + + + + lcsh + lcshac + mesh + csh + nal + rvm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + abcq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cdnp + + + + + + + + + + + + + + + + abcdeqnp + + + + + + + + + + + + + + + + + + <xsl:call-template name="subfieldSelect"> + <xsl:with-param name="codes">adfhklor</xsl:with-param> + </xsl:call-template> + <xsl:call-template name="part"/> + + + + + + + + + + + + + + abcd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/dependencies/yaz-2.1.28/etc/MARC21slim2RDFDC.xsl b/dependencies/yaz-2.1.28/etc/MARC21slim2RDFDC.xsl new file mode 100644 index 0000000..2e81677 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/MARC21slim2RDFDC.xsl @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + abfghk + + + + + + + + + + + + + + yes + + + + yes + + + + text + cartographic + notated music + sound recording + still image + moving image + three dimensional object + software, multimedia + mixed material + + + + + + + + + + + + + ab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcdq + + + + + + + + abcd + + + + + + + + abcdu + + + + + + + + ot + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/etc/MARC21slimUtils.xsl b/dependencies/yaz-2.1.28/etc/MARC21slimUtils.xsl new file mode 100644 index 0000000..acfe598 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/MARC21slimUtils.xsl @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/etc/Makefile.am b/dependencies/yaz-2.1.28/etc/Makefile.am new file mode 100644 index 0000000..ec5c040 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/Makefile.am @@ -0,0 +1,14 @@ +# $Id: Makefile.am,v 1.4 2005/12/16 15:01:25 adam Exp $ + +etcdatadir = $(pkgdatadir)/etc +etcdata_DATA = \ + pqf.properties \ + yazgfs.xml \ + maps.xml \ + MARC21slim2DC.xsl \ + MARC21slim2MODS.xsl \ + MARC21slim2RDFDC.xsl \ + MARC21slimUtils.xsl + +EXTRA_DIST = $(etcdata_DATA) debian.init.d + diff --git a/dependencies/yaz-2.1.28/etc/Makefile.in b/dependencies/yaz-2.1.28/etc/Makefile.in new file mode 100644 index 0000000..f017bfe --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/Makefile.in @@ -0,0 +1,366 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# $Id: Makefile.am,v 1.4 2005/12/16 15:01:25 adam Exp $ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = etc +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__installdirs = "$(DESTDIR)$(etcdatadir)" +etcdataDATA_INSTALL = $(INSTALL_DATA) +DATA = $(etcdata_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +etcdatadir = $(pkgdatadir)/etc +etcdata_DATA = \ + pqf.properties \ + yazgfs.xml \ + maps.xml \ + MARC21slim2DC.xsl \ + MARC21slim2MODS.xsl \ + MARC21slim2RDFDC.xsl \ + MARC21slimUtils.xsl + +EXTRA_DIST = $(etcdata_DATA) debian.init.d +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu etc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu etc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-etcdataDATA: $(etcdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(etcdatadir)" || $(mkdir_p) "$(DESTDIR)$(etcdatadir)" + @list='$(etcdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(etcdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(etcdatadir)/$$f'"; \ + $(etcdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(etcdatadir)/$$f"; \ + done + +uninstall-etcdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(etcdata_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(etcdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(etcdatadir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(etcdatadir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-etcdataDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-etcdataDATA uninstall-info-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-etcdataDATA install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-etcdataDATA uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/etc/debian.init.d b/dependencies/yaz-2.1.28/etc/debian.init.d new file mode 100755 index 0000000..f7351ae --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/debian.init.d @@ -0,0 +1,50 @@ +#! /bin/sh +# $Id: debian.init.d,v 1.1 2004/01/18 21:11:11 adam Exp $ +# Debian sample start/stop script for YAZ Generic Frontend Server +# +set -e + +DAEMON=/usr/local/bin/yaz-ztest +NAME=yaz-ztest +PIDFILE=/var/run/yaz-ztest.pid +LOGFILE=/var/log/yaz-ztest.log +RUNAS=nobody + +test -x $DAEMON || exit 0 + +case "$1" in + start) + echo -n "Starting YAZ server: " + start-stop-daemon --start --pidfile $PIDFILE \ + --exec $DAEMON -- \ + -u $RUNAS -l $LOGFILE -D -p $PIDFILE @:210 + + echo "$NAME." + ;; + stop) + echo -n "Stopping YAZ server: " + start-stop-daemon --stop --pidfile $PIDFILE \ + --oknodo --retry 30 --exec $DAEMON + echo "$NAME." + ;; + restart) + echo -n "Restarting YAZ server: " + start-stop-daemon --stop --pidfile $PIDFILE \ + --oknodo --retry 30 --exec $DAEMON + start-stop-daemon --start --pidfile $PIDFILE d \ + --exec $DAEMON -- \ + -u $RUNAS -l $LOGFILE -D -p $PIDFILE @:210 + echo "$NAME." + ;; + reload|force-reload) + echo "Reloading $NAME configuration files" + start-stop-daemon --stop --pidfile $PIDFILE \ + --signal 1 --exec $DAEMON + ;; + *) + echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/dependencies/yaz-2.1.28/etc/maps.xml b/dependencies/yaz-2.1.28/etc/maps.xml new file mode 100644 index 0000000..083204b --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/maps.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/etc/pqf.properties b/dependencies/yaz-2.1.28/etc/pqf.properties new file mode 100644 index 0000000..62e4ad3 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/pqf.properties @@ -0,0 +1,151 @@ +# $Id: pqf.properties,v 1.10 2006/05/17 14:12:09 mike Exp $ +# +# Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF() +# back-end and the YAZ CQL-to-PQF converter. This specifies the +# interpretation of various CQL indexes, relations, etc. in terms +# of Type-1 query attributes. +# +# This configuration file generates queries using BIB-1 attributes. +# See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html +# for the Maintenance Agency's work-in-progress mapping of Dublin Core +# indexes to Attribute Architecture (util, XD and BIB-2) +# attributes. + +# Identifiers for prefixes used in this file. (index.*) +set.cql = info:srw/cql-context-set/1/cql-v1.1 +set.rec = info:srw/cql-context-set/2/rec-1.0 +set.dc = info:srw/cql-context-set/1/dc-v1.1 +set.bath = http://zing.z3950.org/cql/bath/2.0/ + +# default set (in query) +set = info:srw/cql-context-set/1/dc-v1.1 + +# The default access point and result-set references +index.cql.serverChoice = 1=1016 + # srw.serverChoice is deprecated in favour of cql.serverChoice + # BIB-1 "any" + +index.rec.id = 1=12 + +index.dc.title = 1=4 +index.dc.subject = 1=21 +index.dc.creator = 1=1003 +index.dc.author = 1=1003 + ### Unofficial synonym for "creator" +index.dc.editor = 1=1020 +index.dc.publisher = 1=1018 +index.dc.description = 1=62 + # "abstract" +index.dc.date = 1=30 +index.dc.resourceType = 1=1031 + # guesswork: "Material-type" +index.dc.format = 1=1034 + # guesswork: "Content-type" +index.dc.resourceIdentifier = 1=12 + # "Local number" +index.dc.source = 1=1019 + # "Record-source" +index.dc.language = 1=54 + # "Code--language" +index.dc.relation = 1=? + ### No idea how to represent this +index.dc.coverage = 1=? + ### No idea how to represent this +index.dc.rights = 1=? + ### No idea how to represent this + +# Relation attributes are selected according to the CQL relation by +# looking up the "relation." property: +# +relation.< = 2=1 +relation.le = 2=2 +relation.eq = 2=3 +relation.exact = 2=3 +relation.ge = 2=4 +relation.> = 2=5 +relation.<> = 2=6 + +### These two are not really right: +relation.all = 2=3 +relation.any = 2=3 + +# BIB-1 doesn't have a server choice relation, so we just make the +# choice here, and use equality (which is clearly correct). +relation.scr = 2=3 + +# Relation modifiers. +# +relationModifier.relevant = 2=102 +relationModifier.fuzzy = 5=103 + ### truncation=regExpr-2 (5=103) in Zebra is "fuzzy matching" +relationModifier.stem = 2=101 +relationModifier.phonetic = 2=100 + +# Position attributes may be specified for anchored terms (those +# beginning with "^", which is stripped) and unanchored (those not +# beginning with "^"). This may change when we get a BIB-1 truncation +# attribute that says "do what CQL does". +# +position.first = 3=1 6=1 + # "first in field" +position.any = 3=3 6=1 + # "any position in field" +position.last = 3=4 6=1 + # not a standard BIB-1 attribute +position.firstAndLast = 3=3 6=3 + # search term is anchored to be complete field + +# Structure attributes may be specified for individual relations; a +# default structure attribute my be specified by the pseudo-relation +# "*", to be used whenever a relation not listed here occurs. +# +structure.exact = 4=108 + # string +structure.all = 4=2 +structure.any = 4=2 +structure.* = 4=1 + # phrase + +# Truncation attributes used to implement CQL wildcard patterns. The +# simpler forms, left, right- and both-truncation will be used for the +# simplest patterns, so that we produce PQF queries that conform more +# closely to the Bath Profile. However, when a more complex pattern +# such as "foo*bar" is used, we fall back on Z39.58-style masking. +# +truncation.right = 5=1 +truncation.left = 5=2 +truncation.both = 5=3 +truncation.none = 5=100 +truncation.regexp = 5=102 +truncation.z3958 = 5=104 + +# Finally, any additional attributes that should always be included +# with each term can be specified in the "always" property. +# +always = 6=1 +# 6=1: completeness = incomplete subfield + + +# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003 +# See the Bath Profile for SRW at +# http://zing.z3950.org/cql/bath.html +# including the Bath Context Set defined within that document. +# +# In this file, we only map index-names to BIB-1 use attributes, doing +# so in accordance with the specifications of the Z39.50 Bath Profile, +# and leaving the relations, wildcards, etc. to fend for themselves. + +index.bath.keyTitle = 1=33 +index.bath.possessingInstitution = 1=1044 +index.bath.name = 1=1002 +index.bath.personalName = 1=1 +index.bath.corporateName = 1=2 +index.bath.conferenceName = 1=3 +index.bath.uniformTitle = 1=6 +index.bath.isbn = 1=7 +index.bath.issn = 1=8 +index.bath.geographicName = 1=58 +index.bath.notes = 1=63 +index.bath.topicalSubject = 1=1079 +index.bath.genreForm = 1=1075 + diff --git a/dependencies/yaz-2.1.28/etc/yazgfs.xml b/dependencies/yaz-2.1.28/etc/yazgfs.xml new file mode 100644 index 0000000..81d1159 --- /dev/null +++ b/dependencies/yaz-2.1.28/etc/yazgfs.xml @@ -0,0 +1,50 @@ + + + + tcp:@:9000 + + . + zebra.cfg + pqf.properties + xsl + xsl/default.xsl + + + + + + + + + + + + + + + + + + + + + + + + myserver.org + 9000 + Default + + + + + diff --git a/dependencies/yaz-2.1.28/include/Makefile.am b/dependencies/yaz-2.1.28/include/Makefile.am new file mode 100644 index 0000000..afcdbef --- /dev/null +++ b/dependencies/yaz-2.1.28/include/Makefile.am @@ -0,0 +1,6 @@ +## $Id: Makefile.am,v 1.2 2000/02/28 11:44:39 adam Exp $ + +AUTOMAKE_OPTIONS = foreign + +SUBDIRS = yaz + diff --git a/dependencies/yaz-2.1.28/include/Makefile.in b/dependencies/yaz-2.1.28/include/Makefile.in new file mode 100644 index 0000000..4c8e5d5 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/Makefile.in @@ -0,0 +1,474 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = include +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-exec-recursive install-info-recursive \ + install-recursive installcheck-recursive installdirs-recursive \ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +AUTOMAKE_OPTIONS = foreign +SUBDIRS = yaz +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign include/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || mkdir "$(distdir)/$$subdir" \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="../$(top_distdir)" \ + distdir="../$(distdir)/$$subdir" \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + clean clean-generic clean-libtool clean-recursive ctags \ + ctags-recursive distclean distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/include/yaz/Makefile.am b/dependencies/yaz-2.1.28/include/yaz/Makefile.am new file mode 100644 index 0000000..6ead801 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/Makefile.am @@ -0,0 +1,19 @@ +## $Id: Makefile.am,v 1.32 2006/07/04 12:59:56 heikki Exp $ + +pkginclude_HEADERS= backend.h ccl.h cql.h comstack.h \ + diagbib1.h diagsrw.h sortspec.h log.h logrpn.h marcdisp.h \ + nfa.h nfaxml.h \ + nmem.h odr.h \ + oid.h options.h otherinfo.h pquery.h prt-ext.h querytowrbuf.h \ + readconf.h record_conv.h retrieval.h statserv.h \ + tcpip.h test.h unix.h tpath.h wrbuf.h xmalloc.h \ + yaz-ccl.h yaz-iconv.h yaz-util.h yaz-version.h yconfig.h proto.h \ + xmlquery.h libxml2_error.h \ + \ + ill.h ill-core.h item-req.h z-accdes1.h z-accform1.h \ + z-acckrb1.h z-core.h z-date.h z-diag1.h z-espec1.h z-estask.h z-exp.h \ + z-grs.h z-mterm2.h z-opac.h z-rrf1.h z-rrf2.h z-sum.h z-sutrs.h z-uifr1.h \ + z-univ.h z-oclcui.h zes-expi.h zes-exps.h zes-order.h zes-pquery.h \ + zes-psched.h zes-admin.h zes-pset.h zes-update.h zes-update0.h \ + zoom.h z-charneg.h charneg.h soap.h srw.h zgdu.h + diff --git a/dependencies/yaz-2.1.28/include/yaz/Makefile.in b/dependencies/yaz-2.1.28/include/yaz/Makefile.in new file mode 100644 index 0000000..96e553f --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/Makefile.in @@ -0,0 +1,418 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = include/yaz +DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__installdirs = "$(DESTDIR)$(pkgincludedir)" +pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(pkginclude_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +pkginclude_HEADERS = backend.h ccl.h cql.h comstack.h \ + diagbib1.h diagsrw.h sortspec.h log.h logrpn.h marcdisp.h \ + nfa.h nfaxml.h \ + nmem.h odr.h \ + oid.h options.h otherinfo.h pquery.h prt-ext.h querytowrbuf.h \ + readconf.h record_conv.h retrieval.h statserv.h \ + tcpip.h test.h unix.h tpath.h wrbuf.h xmalloc.h \ + yaz-ccl.h yaz-iconv.h yaz-util.h yaz-version.h yconfig.h proto.h \ + xmlquery.h libxml2_error.h \ + \ + ill.h ill-core.h item-req.h z-accdes1.h z-accform1.h \ + z-acckrb1.h z-core.h z-date.h z-diag1.h z-espec1.h z-estask.h z-exp.h \ + z-grs.h z-mterm2.h z-opac.h z-rrf1.h z-rrf2.h z-sum.h z-sutrs.h z-uifr1.h \ + z-univ.h z-oclcui.h zes-expi.h zes-exps.h zes-order.h zes-pquery.h \ + zes-psched.h zes-admin.h zes-pset.h zes-update.h zes-update0.h \ + zoom.h z-charneg.h charneg.h soap.h srw.h zgdu.h + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/yaz/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/yaz/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)" + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \ + $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludedir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-pkgincludeHEADERS + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool ctags distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-pkgincludeHEADERS \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am \ + uninstall-pkgincludeHEADERS + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/include/yaz/backend.h b/dependencies/yaz-2.1.28/include/yaz/backend.h new file mode 100644 index 0000000..758771a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/backend.h @@ -0,0 +1,343 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: backend.h,v 1.37 2006/06/15 12:53:57 adam Exp $ + */ + +/** + * \file backend.h + * \brief Header for GFS + * + * This header includes all public definitions for the + * Generic Frontend Server (GFS). + */ + +#ifndef BACKEND_H +#define BACKEND_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +typedef struct request *bend_request; +typedef struct association *bend_association; + +/* extended search handler (rr = request response) */ +typedef struct { + char *setname; /* name to give to this set */ + int replace_set; /* replace set, if it already exists */ + int num_bases; /* number of databases in list */ + char **basenames; /* databases to search */ + Z_ReferenceId *referenceId;/* reference ID */ + Z_Query *query; /* query structure */ + ODR stream; /* encode stream */ + ODR decode; /* decode stream */ + ODR print; /* print stream */ + + bend_request request; + bend_association association; + int *fd; + int hits; /* number of hits */ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ + Z_OtherInformation *search_info; /* additional search info */ + char *srw_sortKeys; /* holds SRU/SRW sortKeys info */ + char *srw_setname; /* holds SRU/SRW generated resultsetID */ + int *srw_setnameIdleTime; /* holds SRU/SRW life-time */ +} bend_search_rr; + +/* extended present handler. Does not replace bend_fetch. */ +typedef struct { + char *setname; /* set name */ + int start; + int number; /* record number */ + oid_value format; /* One of the CLASS_RECSYN members */ + Z_ReferenceId *referenceId;/* reference ID */ + Z_RecordComposition *comp; /* Formatting instructions */ + ODR stream; /* encoding stream - memory source if required */ + ODR print; /* printing stream */ + bend_request request; + bend_association association; + + int hits; /* number of hits */ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ +} bend_present_rr; + +typedef struct bend_fetch_rr { + char *setname; /* set name */ + int number; /* record number */ + Z_ReferenceId *referenceId;/* reference ID */ + oid_value request_format; /* One of the CLASS_RECSYN members */ + int *request_format_raw; /* same as above (raw OID) */ + Z_RecordComposition *comp; /* Formatting instructions */ + ODR stream; /* encoding stream - memory source if req */ + ODR print; /* printing stream */ + + char *basename; /* name of database that provided record */ + int len; /* length of record or -1 if structured */ + char *record; /* record */ + int last_in_set; /* is it? */ + oid_value output_format; /* format */ + int *output_format_raw; /* used instead of above if not-null */ + int errcode; /* 0==success */ + char *errstring; /* system error string or NULL */ + int surrogate_flag; /* surrogate diagnostic */ + char *schema; /* string record schema input/output */ +} bend_fetch_rr; + +struct scan_entry { + char *term; /* the returned scan term */ + int occurrences; /* no of occurrences or -1 if error (see below) */ + int errcode; /* Bib-1 diagnostic code; only used when occur.= -1 */ + char *errstring; /* Additional string */ + char *display_term; +}; + +typedef enum { + BEND_SCAN_SUCCESS, /* ok */ + BEND_SCAN_PARTIAL /* not all entries could be found */ +} bend_scan_status; + +typedef struct bend_scan_rr { + int num_bases; /* number of elements in databaselist */ + char **basenames; /* databases to search */ + oid_value attributeset; + Z_ReferenceId *referenceId; /* reference ID */ + Z_AttributesPlusTerm *term; + ODR stream; /* encoding stream - memory source if required */ + ODR print; /* printing stream */ + + int *step_size; /* step size */ + int term_position; /* desired index of term in result list/returned */ + int num_entries; /* number of entries requested/returned */ + + /* scan term entries. The called handler does not have + to allocate this. Size of entries is num_entries (see above) */ + struct scan_entry *entries; + bend_scan_status status; + int errcode; + char *errstring; + char *scanClause; /* CQL scan clause */ +} bend_scan_rr; + +typedef struct bend_update_rr { + int num_bases; /* number of elements in databaselist */ + char **basenames; /* databases to search */ + Z_ReferenceId *referenceId; /* reference ID */ + ODR stream; /* encoding stream - memory source if required */ + ODR print; /* printing stream */ + char *operation; + char *operation_status; + char *record_id; + char *record_version; + char *record_checksum; + char *record_old_version; + char *record_packing; + char *record_schema; + char *record_data; + Z_SRW_extra_record *request_extra_record; + Z_SRW_extra_record *response_extra_record; + char *extra_request_data; + char *extra_response_data; + char *uri; + char *message; + char *details; +} bend_update_rr; + +/* delete handler */ +typedef struct bend_delete_rr { + int function; + int num_setnames; + char **setnames; + Z_ReferenceId *referenceId; + int delete_status; /* status for the whole operation */ + int *statuses; /* status each set - indexed as setnames */ + ODR stream; + ODR print; +} bend_delete_rr; + +/* sort handler */ +typedef struct bend_sort_rr +{ + int num_input_setnames; + char **input_setnames; + char *output_setname; + Z_SortKeySpecList *sort_sequence; + ODR stream; + ODR print; + Z_ReferenceId *referenceId;/* reference ID */ + + int sort_status; + int errcode; + char *errstring; +} bend_sort_rr; + +typedef struct bend_esrequest_rr +{ + int ItemNo; + Z_ExtendedServicesRequest *esr; + + ODR stream; /* encoding stream */ + ODR decode; /* decoding stream */ + ODR print; /* printing stream */ + Z_ReferenceId *referenceId;/* reference ID */ + bend_request request; + bend_association association; + int errcode; /* 0==success, -1==accepted, >0 = failure */ + char *errstring; /* system error string or NULL */ + Z_TaskPackage *taskPackage; +} bend_esrequest_rr; + +typedef struct bend_segment_rr { + Z_Segment *segment; + ODR stream; + ODR decode; + ODR print; + bend_request request; + bend_association association; +} bend_segment_rr; + +typedef struct { + ODR stream; + ODR decode; + ODR print; + char *explain_buf; + char *database; + char *schema; + void *server_node_ptr; +} bend_explain_rr; + +typedef struct bend_initrequest +{ + Z_IdAuthentication *auth; + ODR stream; /* encoding stream */ + ODR print; /* printing stream */ + Z_ReferenceId *referenceId;/* reference ID */ + char *peer_name; /* dns host of peer (client) */ + + char *implementation_id; + char *implementation_name; + char *implementation_version; + int (*bend_sort) (void *handle, bend_sort_rr *rr); + int (*bend_search) (void *handle, bend_search_rr *rr); + int (*bend_fetch) (void *handle, bend_fetch_rr *rr); + int (*bend_present) (void *handle, bend_present_rr *rr); + int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr); + int (*bend_delete)(void *handle, bend_delete_rr *rr); + int (*bend_scan)(void *handle, bend_scan_rr *rr); + int (*bend_segment)(void *handle, bend_segment_rr *rr); + + ODR decode; /* decoding stream */ + /* character set and language negotiation - see include/yaz/z-charneg.h */ + Z_CharSetandLanguageNegotiation *charneg_request; + Z_External *charneg_response; + int (*bend_explain)(void *handle, bend_explain_rr *rr); + int (*bend_srw_scan)(void *handle, bend_scan_rr *rr); + int (*bend_srw_update)(void *handle, bend_update_rr *rr); +} bend_initrequest; + +typedef struct bend_initresult +{ + int errcode; /* 0==OK */ + char *errstring; /* system error string or NULL */ + void *handle; /* private handle to the backend module */ +} bend_initresult; + +YAZ_EXPORT void bend_request_send (bend_association a, bend_request req, + Z_APDU *res); + +YAZ_EXPORT bend_request bend_request_mk (bend_association a); + +YAZ_EXPORT void bend_request_destroy (bend_request *req); + +YAZ_EXPORT Z_ReferenceId *bend_request_getid (ODR odr, bend_request req); +YAZ_EXPORT int bend_backend_respond (bend_association a, bend_request req); +YAZ_EXPORT void bend_request_setdata(bend_request r, void *p); +YAZ_EXPORT void *bend_request_getdata(bend_request r); + +typedef struct statserv_options_block +{ + int dynamic; /* fork on incoming requests */ + int threads; /* use threads */ + int one_shot; /* one session then exit(1) */ + int __UNUSED__loglevel; /* desired logging-level */ + char apdufile[ODR_MAXNAME+1]; /* file for pretty-printed PDUs */ + char logfile[ODR_MAXNAME+1]; /* file for diagnostic output */ + char default_listen[1024]; /* 0 == no default listen */ + enum oid_proto default_proto; /* PROTO_SR or PROTO_Z3950 */ + int idle_timeout; /* how many minutes to wait before closing */ + int maxrecordsize; /* maximum value for negotiation */ + char configname[ODR_MAXNAME+1]; /* given to the backend in bend_init */ + char setuid[ODR_MAXNAME+1]; /* setuid to this user after binding */ + void (*bend_start)(struct statserv_options_block *p); + void (*bend_stop)(struct statserv_options_block *p); + int (*options_func)(int argc, char **argv); + int (*check_ip)(void *cd, const char *addr, int len, int type); + char daemon_name[128]; + int inetd; /* Do we use the inet deamon or not */ + + void *handle; /* Handle */ + bend_initresult *(*bend_init)(bend_initrequest *r); + void (*bend_close)(void *handle); +#ifdef WIN32 + /* We only have these members for the windows version */ + /* They seemed a bit large to have them there in general */ + char service_name[128]; /* NT Service Name */ + char app_name[128]; /* Application Name */ + char service_dependencies[128]; /* The services we are dependent on */ + char service_display_name[128]; /* The service display name */ +#endif /* WIN32 */ + struct bend_soap_handler *soap_handlers; + char pid_fname[128]; /* pid fname */ + int background; /* auto daemon */ + char cert_fname[128]; /* SSL certificate fname */ + char xml_config[128]; /* XML config filename */ +} statserv_options_block; + +YAZ_EXPORT int statserv_main( + int argc, char **argv, + bend_initresult *(*bend_init)(bend_initrequest *r), + void (*bend_close)(void *handle)); +YAZ_EXPORT int statserv_start(int argc, char **argv); +YAZ_EXPORT void statserv_closedown(void); +YAZ_EXPORT statserv_options_block *statserv_getcontrol(void); +YAZ_EXPORT void statserv_setcontrol(statserv_options_block *block); +YAZ_EXPORT int check_ip_tcpd(void *cd, const char *addr, int len, int type); + + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/ccl.h b/dependencies/yaz-2.1.28/include/yaz/ccl.h new file mode 100644 index 0000000..bd96cee --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/ccl.h @@ -0,0 +1,447 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +/** \file ccl.h + \brief Header with public definitions for CCL. +*/ + +/* + * CCL - header file + * + * $Id: ccl.h,v 1.23 2005/06/25 15:46:01 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.10 1996/01/08 08:41:22 adam + * Minor changes. + * + * Revision 1.9 1995/07/20 08:15:16 adam + * Bug fix: Token value for comma and OR were the same! + * + * Revision 1.8 1995/07/11 12:28:34 adam + * New function: ccl_token_simple (split into simple tokens) and + * ccl_token_del (delete tokens). + * + * Revision 1.7 1995/05/16 09:39:38 adam + * LICENSE. + * + * Revision 1.6 1995/05/11 14:04:03 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + * Revision 1.5 1995/02/23 08:32:11 adam + * Changed header. + * + * Revision 1.3 1995/02/16 13:20:10 adam + * Spell fix. + * + * Revision 1.2 1995/02/15 17:43:08 adam + * Minor changes to the ccl interface. Bug fix in iso2709 module. + * + * Revision 1.1 1995/02/14 19:55:21 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * + */ + +#ifndef CCL_H +#define CCL_H + +#include +#include +#include +#include + +YAZ_BEGIN_CDECL + +/* CCL error numbers */ +#define CCL_ERR_OK 0 +#define CCL_ERR_TERM_EXPECTED 1 +#define CCL_ERR_RP_EXPECTED 2 +#define CCL_ERR_SETNAME_EXPECTED 3 +#define CCL_ERR_OP_EXPECTED 4 +#define CCL_ERR_BAD_RP 5 +#define CCL_ERR_UNKNOWN_QUAL 6 +#define CCL_ERR_DOUBLE_QUAL 7 +#define CCL_ERR_EQ_EXPECTED 8 +#define CCL_ERR_BAD_RELATION 9 +#define CCL_ERR_TRUNC_NOT_LEFT 10 +#define CCL_ERR_TRUNC_NOT_BOTH 11 +#define CCL_ERR_TRUNC_NOT_RIGHT 12 + +/** attribute node (type, value) pair as used in RPN */ +struct ccl_rpn_attr { + /** next node */ + struct ccl_rpn_attr *next; + /** attribute set */ + char *set; + /** attribute type, Bib-1: 1=use, 2=relation, 3=position, .. */ + int type; + /** attribute value type (numeric or string) */ + int kind; +#define CCL_RPN_ATTR_NUMERIC 1 +#define CCL_RPN_ATTR_STRING 2 + union { + /** numeric attribute value */ + int numeric; + /** string attribute value */ + char *str; + } value; +}; + +#define CCL_RPN_AND 1 +#define CCL_RPN_OR 2 +#define CCL_RPN_NOT 3 +#define CCL_RPN_TERM 4 +#define CCL_RPN_SET 5 +#define CCL_RPN_PROX 6 + +/** RPN tree structure node */ +struct ccl_rpn_node { + /** RPN tree node type */ + int kind; + union { + /** Boolean including proximity 0=left, 2=right, 3=prox parms */ + struct ccl_rpn_node *p[3]; + /** Attributes + Term */ + struct { + char *term; + struct ccl_rpn_attr *attr_list; + } t; + /** Result set */ + char *setname; + } u; +}; + +typedef struct ccl_qualifiers *CCL_bibset; + +/* use (1) + + relation (2) + -1 none + 0 ordered + 1-6 relation (<, <=, =, >=, >, <>) + + position (3) + -1 none + 1 first in field + 2 first in sub field + 3 any position in field + structure (4) + -1 none + 0 word/phrase auto select + 1 phrase + 2 word + 3 key + 4 year + 5 date (normalized) + 6 word list + 100 date (un-normalized) + 101 name (normalized) + 102 name (un-normalized) + truncation (5) + completeness (6) +*/ + +#define CCL_BIB1_USE 1 +#define CCL_BIB1_REL 2 +#define CCL_BIB1_POS 3 +#define CCL_BIB1_STR 4 +#define CCL_BIB1_TRU 5 +#define CCL_BIB1_COM 6 + +#define CCL_BIB1_STR_WP (-1) +#define CCL_BIB1_STR_AND_LIST (-2) +#define CCL_BIB1_STR_OR_LIST (-3) +#define CCL_BIB1_REL_ORDER (-1) +#define CCL_BIB1_REL_PORDER (-2) + +#define CCL_BIB1_TRU_CAN_LEFT (-1) +#define CCL_BIB1_TRU_CAN_RIGHT (-2) +#define CCL_BIB1_TRU_CAN_BOTH (-3) +#define CCL_BIB1_TRU_CAN_NONE (-4) + +#define CCL_TOK_EOL 0 +#define CCL_TOK_TERM 1 +#define CCL_TOK_REL 2 +#define CCL_TOK_EQ 3 +#define CCL_TOK_PROX 4 +#define CCL_TOK_LP 5 +#define CCL_TOK_RP 6 +#define CCL_TOK_COMMA 7 +#define CCL_TOK_AND 8 +#define CCL_TOK_OR 9 +#define CCL_TOK_NOT 10 +#define CCL_TOK_SET 11 + +/** CCL token */ +struct ccl_token { + char kind; + size_t len; /* length of name below */ + const char *name; /* string / name of token */ + struct ccl_token *next; + struct ccl_token *prev; + const char *ws_prefix_buf; /* leading white space buf */ + size_t ws_prefix_len; /* leading white space len */ +}; + +/** CCL Qualifier */ +struct ccl_qualifier { + char *name; + int no_sub; + struct ccl_qualifier **sub; + struct ccl_rpn_attr *attr_list; + struct ccl_qualifier *next; +}; + +/** CCL parser structure */ +struct ccl_parser { + /** current lookahead token */ + struct ccl_token *look_token; + + /** holds error code if error occur */ + int error_code; + /** if error occurs, this holds position (starting from 0). */ + const char *error_pos; + + /** current bibset */ + CCL_bibset bibset; + + /** names of and operator */ + char *ccl_token_and; + /** names of or operator */ + char *ccl_token_or; + /** names of not operator */ + char *ccl_token_not; + /** names of set operator */ + char *ccl_token_set; + /** 1=CCL parser is case sensitive, 0=case insensitive */ + int ccl_case_sensitive; +}; + +typedef struct ccl_parser *CCL_parser; + +/** + * Splits CCL command string into individual tokens using + * a CCL parser. + */ +YAZ_EXPORT +struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command); + +/** + * Splits CCL command string into tokens using temporary parser. + * + * Use ccl_parser_tokenize instead and provide a parser - it is + * more flexible and efficient. + */ +YAZ_EXPORT +struct ccl_token *ccl_tokenize (const char *command); + +/** + * Deletes token list + */ +YAZ_EXPORT +void ccl_token_del (struct ccl_token *list); + +/** + * Add single token after a given onde. + */ +YAZ_EXPORT +struct ccl_token *ccl_token_add (struct ccl_token *at); + +/** + * Parses a CCL Find command in a simple C string. Returns CCL parse + * tree node describing RPN if parsing is successful. If parsing is + * unsuccesful, NULL is returned and error and pos is set accordingly. + */ +YAZ_EXPORT +struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, + const char *str, int *error, int *pos); + +/** + * Parses CCL Find command from a list of CCL tokens. Otherwise similar to + * ccl_find_str. + */ +YAZ_EXPORT +struct ccl_rpn_node *ccl_find (CCL_bibset abibset, struct ccl_token *list, + int *error, const char **pos); + +/** + * Parses a CCL Find command from a list of CCL tokens and given a CCL + * parser. Otherwise similar to ccl_find_str. + */ +YAZ_EXPORT +struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list); + +/** Set names for AND operator in parser */ +YAZ_EXPORT +void ccl_parser_set_op_and (CCL_parser p, const char *op); + +/** Set names for OR operator in parser */ +YAZ_EXPORT +void ccl_parser_set_op_or (CCL_parser p, const char *op); + +/** Set names for ANDNOT operator in parser */ +YAZ_EXPORT +void ccl_parser_set_op_not (CCL_parser p, const char *op); + +/** Set names for ResultSet in parser */ +YAZ_EXPORT +void ccl_parser_set_op_set (CCL_parser p, const char *op); + +/** Set case sensitivity for parser */ +YAZ_EXPORT +void ccl_parser_set_case (CCL_parser p, int case_sensitivity_flag); + +/** Return english-readable error message for CCL parser error number */ +YAZ_EXPORT +const char *ccl_err_msg (int ccl_errno); + +/** Delete RPN tree returned by ccl_find */ +YAZ_EXPORT +void ccl_rpn_delete (struct ccl_rpn_node *rpn); + +/** Dump RPN tree in readable format to fd_out */ +YAZ_EXPORT +void ccl_pr_tree (struct ccl_rpn_node *rpn, FILE *fd_out); + +/** Add qualifier and supply attribute pairs for it */ +YAZ_EXPORT +void ccl_qual_add (CCL_bibset b, const char *name, int no, int *attr); + +/** Add qualifier and supply attributes pairs+attribute set for it */ +YAZ_EXPORT +void ccl_qual_add_set (CCL_bibset b, const char *name, int no, + int *type, int *value, char **svalue, char **attsets); + +/** Add special qualifier */ +YAZ_EXPORT +void ccl_qual_add_special (CCL_bibset bibset, const char *n, const char *v); + +/** Add combo qualifier */ +YAZ_EXPORT +void ccl_qual_add_combi (CCL_bibset b, const char *n, const char *names); + +/** Read CCL qualifier list spec from file inf */ +YAZ_EXPORT +void ccl_qual_file (CCL_bibset bibset, FILE *inf); + +/** Read CCL qualifier list spec from file inf */ +YAZ_EXPORT +int ccl_qual_fname (CCL_bibset bibset, const char *fname); + +/** Add CCL qualifier as buf spec (multiple lines). */ +YAZ_EXPORT +void ccl_qual_buf(CCL_bibset bibset, const char *buf); + +/** Add CCL qualifier as line spec. Note: line is _modified_ */ +YAZ_EXPORT +void ccl_qual_line(CCL_bibset bibset, char *line); + +/* Add CCL qualifier by using qual_name + value pair */ +YAZ_EXPORT +void ccl_qual_fitem (CCL_bibset bibset, const char *value, + const char *qual_name); + +/** Make CCL qualifier set */ +YAZ_EXPORT +CCL_bibset ccl_qual_mk (void); + +/** Delete CCL qualifier set */ +YAZ_EXPORT +void ccl_qual_rm (CCL_bibset *b); + +/** Char-to-upper function */ +extern int (*ccl_toupper)(int c); + +/** CCL version of ccl_stricmp */ +YAZ_EXPORT +int ccl_stricmp (const char *s1, const char *s2); + +/** CCL version of ccl_memicmp */ +YAZ_EXPORT +int ccl_memicmp (const char *s1, const char *s2, size_t n); + +/** Search for qualifier 'name' in set 'b'. */ +YAZ_EXPORT +struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp, const char *name, + size_t len, int seq); + +/** Create CCL parser */ +YAZ_EXPORT +CCL_parser ccl_parser_create (void); + +/** Destroy CCL parser */ +YAZ_EXPORT +void ccl_parser_destroy (CCL_parser p); + +/** String dup utility (ala strdup) */ +YAZ_EXPORT +char *ccl_strdup (const char *str); + +/** Search for special qualifier */ +YAZ_EXPORT +const char *ccl_qual_search_special (CCL_bibset b, + const char *name); +/** Pretty-print CCL RPN node tree to WRBUF */ +YAZ_EXPORT +void ccl_pquery (WRBUF w, struct ccl_rpn_node *p); + +#ifndef ccl_assert +#define ccl_assert(x) ; +#endif + +YAZ_END_CDECL + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/charneg.h b/dependencies/yaz-2.1.28/include/yaz/charneg.h new file mode 100644 index 0000000..bc325c3 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/charneg.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: charneg.h,v 1.8 2006/03/31 09:51:22 adam Exp $ + */ +/** + * \file charneg.h + * \brief Header for Z39.50 Charset negotiation utilities + * + * Helper functions for Character Set and Language Negotiation - 3 + */ +#ifndef CHARNEG_H +#define CHARNEG_H + +#include + +YAZ_BEGIN_CDECL + +/* + * Character set and language negotiation model - 3 (*) + * + * These a set helper functions for support (*). There are + * client and server parts. At that moment the (*) is based on + * Z_PrivateCharacterSet_externallySpecified method. + * + */ + +/* + * Get (*) record from request + */ +YAZ_EXPORT +Z_CharSetandLanguageNegotiation *yaz_get_charneg_record(Z_OtherInformation *p); + +/* + * Delete (*) record from request + */ +YAZ_EXPORT +int yaz_del_charneg_record(Z_OtherInformation **p); + +/* + * Client's part. + */ +YAZ_EXPORT +Z_External *yaz_set_proposal_charneg(ODR odr, + const char **charsets, int num_charsets, + const char **langs, + int num_langs, int selected); + +YAZ_EXPORT +Z_External *yaz_set_proposal_charneg_list(ODR o, + const char *delim, + const char *charset_list, + const char *lang_list, + int selected); + +YAZ_EXPORT +void yaz_get_response_charneg(NMEM mem, + Z_CharSetandLanguageNegotiation *p, + char **charset, char **lang, + int *selected); + +/* + * Server's part + */ + +YAZ_EXPORT +Z_External *yaz_set_response_charneg(ODR odr, + const char *charset, const char *lang, + int selected); + + +YAZ_EXPORT +void yaz_get_proposal_charneg(NMEM mem, + Z_CharSetandLanguageNegotiation *p, + char ***charsets, int *num_charsets, + char ***langs, int *num_langs, + int *selected); + + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/comstack.h b/dependencies/yaz-2.1.28/include/yaz/comstack.h new file mode 100644 index 0000000..2b03a06 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/comstack.h @@ -0,0 +1,164 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: comstack.h,v 1.22 2006/08/24 13:25:44 adam Exp $ + */ + +/** + * \file comstack.h + * \brief Header for COMSTACK + */ + +#ifndef COMSTACK_H +#define COMSTACK_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +#define COMSTACK_DEFAULT_TIMEOUT -1 /* not used yet */ + +struct comstack; +typedef struct comstack *COMSTACK; +typedef COMSTACK (*CS_TYPE)(int s, int blocking, int protocol, void *vp); + +struct comstack +{ + CS_TYPE type; + int cerrno; /* current error code of this stack */ + char *stackerr;/* current lower-layer error string, or null if none */ + int iofile; /* UNIX file descriptor for iochannel */ + int timeout; /* how long to wait for trailing blocks (ignored for now) */ + void *cprivate;/* state info for lower stack */ + int max_recv_bytes; /* max size of incoming package */ + int state; /* current state */ +#define CS_ST_UNBND 0 +#define CS_ST_IDLE 1 +#define CS_ST_INCON 2 +#define CS_ST_OUTCON 3 +#define CS_ST_DATAXFER 4 +#define CS_ST_ACCEPT 5 +#define CS_ST_CONNECTING 6 + int newfd; /* storing new descriptor between listen and accept */ + int blocking; /* is this link (supposed to be) blocking? */ + unsigned io_pending; /* flag to signal read / write op is incomplete */ + int event; /* current event */ +#define CS_NONE 0 +#define CS_CONNECT 1 +#define CS_DISCON 2 +#define CS_LISTEN 3 +#define CS_DATA 4 + enum oid_proto protocol; /* what application protocol are we talking? */ + int (*f_put)(COMSTACK handle, char *buf, int size); + int (*f_get)(COMSTACK handle, char **buf, int *bufsize); + int (*f_more)(COMSTACK handle); + int (*f_connect)(COMSTACK handle, void *address); + int (*f_rcvconnect)(COMSTACK handle); + int (*f_bind)(COMSTACK handle, void *address, int mode); +#define CS_CLIENT 0 +#define CS_SERVER 1 + int (*f_listen)(COMSTACK h, char *raddr, int *addrlen, + int (*check_ip)(void *cd, const char *a, int len, int type), + void *cd); + COMSTACK (*f_accept)(COMSTACK handle); + int (*f_close)(COMSTACK handle); + char *(*f_addrstr)(COMSTACK handle); + void *(*f_straddr)(COMSTACK handle, const char *str); + int (*f_set_blocking)(COMSTACK handle, int blocking); + void *user; /* user defined data associated with COMSTACK */ +}; + +#define cs_put(handle, buf, size) ((*(handle)->f_put)(handle, buf, size)) +#define cs_get(handle, buf, size) ((*(handle)->f_get)(handle, buf, size)) +#define cs_more(handle) ((*(handle)->f_more)(handle)) +#define cs_connect(handle, address) ((*(handle)->f_connect)(handle, address)) +#define cs_rcvconnect(handle) ((*(handle)->f_rcvconnect)(handle)) +#define cs_bind(handle, ad, mo) ((*(handle)->f_bind)(handle, ad, mo)) +#define cs_listen(handle, ap, al) ((*(handle)->f_listen)(handle, ap, al, 0, 0)) +#define cs_listen_check(handle, ap, al, cf, cd) ((*(handle)->f_listen)(handle, ap, al, cf, cd)) +#define cs_accept(handle) ((*(handle)->f_accept)(handle)) +#define cs_close(handle) ((*(handle)->f_close)(handle)) +#define cs_create(type, blocking, proto) ((*type)(-1, blocking, proto, 0)) +#define cs_createbysocket(sock, type, blocking, proto) \ + ((*type)(sock, blocking, proto, 0)) +#define cs_type(handle) ((handle)->type) +#define cs_fileno(handle) ((handle)->iofile) +#define cs_stackerr(handle) ((handle)->stackerr) +#define cs_getstate(handle) ((handle)->getstate) +#define cs_errno(handle) ((handle)->cerrno) +#define cs_getproto(handle) ((handle)->protocol) +#define cs_addrstr(handle) ((*(handle)->f_addrstr)(handle)) +#define cs_straddr(handle, str) ((*(handle)->f_straddr)(handle, str)) +#define cs_want_read(handle) ((handle)->io_pending & CS_WANT_READ) +#define cs_want_write(handle) ((handle)->io_pending & CS_WANT_WRITE) +#define cs_set_blocking(handle,blocking) ((handle)->f_set_blocking(handle, blocking)) + +#define CS_WANT_READ 1 +#define CS_WANT_WRITE 2 + +YAZ_EXPORT int cs_look (COMSTACK); +YAZ_EXPORT const char *cs_strerror(COMSTACK h); +YAZ_EXPORT const char *cs_errmsg(int n); +YAZ_EXPORT COMSTACK cs_create_host(const char *type_and_host, + int blocking, void **vp); +YAZ_EXPORT void cs_get_host_args(const char *type_and_host, const char **args); +YAZ_EXPORT int cs_complete_auto(const unsigned char *buf, int len); +YAZ_EXPORT void *cs_get_ssl(COMSTACK cs); +YAZ_EXPORT int cs_set_ssl_ctx(COMSTACK cs, void *ctx); +YAZ_EXPORT int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname); +YAZ_EXPORT int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len); +YAZ_EXPORT void cs_set_max_recv_bytes(COMSTACK cs, int max_recv_bytes); + +/* + * error management. + */ + +#define CSNONE 0 +#define CSYSERR 1 +#define CSOUTSTATE 2 +#define CSNODATA 3 +#define CSWRONGBUF 4 +#define CSDENY 5 +#define CSERRORSSL 6 +#define CSBUFSIZE 7 +#define CSLASTERROR CSBUFSIZE /* must be the value of last CS error */ + +/* backwards compatibility */ +#define CS_SR PROTO_SR +#define CS_Z3950 PROTO_Z3950 + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/cql.h b/dependencies/yaz-2.1.28/include/yaz/cql.h new file mode 100644 index 0000000..08a02e2 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/cql.h @@ -0,0 +1,309 @@ +/* $Id: cql.h,v 1.13 2005/06/27 22:03:59 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE. +*/ + +/** \file cql.h + \brief Header with public definitions about CQL. +*/ + +#ifndef CQL_H_INCLUDED +#define CQL_H_INCLUDED +#include +#include + +YAZ_BEGIN_CDECL + +/** CQL parser handle */ +typedef struct cql_parser *CQL_parser; + +/** + * Creates a CQL parser. + * Returns CQL parser handle or NULL if parser could not be created. + */ +YAZ_EXPORT +CQL_parser cql_parser_create(void); + +/** + * Destroys a CQL parser. + * + * This function does nothing if NULL if received. + */ +YAZ_EXPORT +void cql_parser_destroy(CQL_parser cp); + +/** + * Parses a CQL string query. + * + * Returns 0 if on success; non-zero (error code) on failure. + */ +YAZ_EXPORT +int cql_parser_string(CQL_parser cp, const char *str); + +/** + * Parses a CQL query - streamed query. + * + * This function is similar to cql_parser_string but takes a + * functions to read each query character from a stream. + * + * The functions pointers getbytes, ungetbyte are similar to + * that known from stdios getc, ungetc. + * + * Returns 0 if on success; non-zero (error code) on failure. + */ +YAZ_EXPORT +int cql_parser_stream(CQL_parser cp, + int (*getbyte)(void *client_data), + void (*ungetbyte)(int b, void *client_data), + void *client_data); + +/** + * Parses a CQL query from a FILE handle. + * + * This function is similar to cql_parser_string but reads from + * stdio FILE handle instead. + * + * Returns 0 if on success; non-zero (error code) on failure. + */ +YAZ_EXPORT +int cql_parser_stdio(CQL_parser cp, FILE *f); + +/** + * The node in a CQL parse tree. + */ +#define CQL_NODE_ST 1 +#define CQL_NODE_BOOL 2 +struct cql_node { + /** node type */ + int which; + union { + /** which == CQL_NODE_ST */ + struct { + /** CQL index */ + char *index; + /** CQL index URI or NULL if no URI */ + char *index_uri; + /** Search term */ + char *term; + /** relation */ + char *relation; + /** relation URL or NULL if no relation URI) */ + char *relation_uri; + /** relation modifiers */ + struct cql_node *modifiers; + } st; + /** which == CQL_NODE_BOOL */ + struct { + /** operator name "and", "or", ... */ + char *value; + /** left operand */ + struct cql_node *left; + /** right operand */ + struct cql_node *right; + /** modifiers (NULL for no list) */ + struct cql_node *modifiers; + } boolean; + } u; +}; + +/** + * Private structure that describes the CQL properties (profile) + */ +struct cql_properties; + +/** + * Structure used by cql_buf_write_handlre + */ +struct cql_buf_write_info { + int max; + int off; + char *buf; +}; + +/** + * Handler for cql_buf_write_info * + */ +YAZ_EXPORT +void cql_buf_write_handler (const char *b, void *client_data); + +/** + * Prints a CQL node and all sub nodes. Hence this function + * prints the parse tree which is as returned by cql_parser_result. + */ +YAZ_EXPORT +void cql_node_print(struct cql_node *cn); + +/** + * This function creates a search clause node (st). + */ +YAZ_EXPORT +struct cql_node *cql_node_mk_sc(NMEM nmem, const char *index, + const char *relation, const char *term); + +/** + * This function applies a prefix+uri to "unresolved" index and relation + * URIs. + * + * "unresolved" URIs are those nodes where member index_uri / relation_uri + * is NULL. + */ +YAZ_EXPORT +struct cql_node *cql_apply_prefix(NMEM nmem, struct cql_node *cn, + const char *prefix, const char *uri); + +/** + * This function creates a boolean node. + */ +YAZ_EXPORT +struct cql_node *cql_node_mk_boolean(NMEM nmem, const char *op); + +/** + * Destroys a node and its children. + */ +YAZ_EXPORT +void cql_node_destroy(struct cql_node *cn); + +/** + * Duplicate a node (returns a copy of supplied node) . + */ +YAZ_EXPORT +struct cql_node *cql_node_dup (NMEM nmem, struct cql_node *cp); + +/** + * This function returns the parse tree of the most recently parsed + * CQL query. + * + * The function returns NULL if most recently parse failed. + */ +YAZ_EXPORT +struct cql_node *cql_parser_result(CQL_parser cp); + +/** + * This function converts a CQL node tree to XCQL and writes the + * resulting XCQL to a user-defined output stream. + */ +YAZ_EXPORT +void cql_to_xml(struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data); +/** + * This function converts a CQL node tree to XCQL and writes the + * resulting XCQL to a FILE handle (stdio) + */ +YAZ_EXPORT +void cql_to_xml_stdio(struct cql_node *cn, FILE *f); + +/** + * This function converts a CQL node tree to XCQL and writes + * the resulting XCQL to a buffer + */ +YAZ_EXPORT +int cql_to_xml_buf(struct cql_node *cn, char *out, int max); + +/** + * Utility function that prints to a FILE. + */ +YAZ_EXPORT +void cql_fputs(const char *buf, void *client_data); + +/** + * The CQL transform handle. The transform describes how to + * convert from CQL to PQF (Type-1 AKA RPN). + */ +typedef struct cql_transform_t_ *cql_transform_t; + +/** + * Creates a CQL transform handle. The transformation spec is read from + * a FILE handle (which is assumed opened in read mode). + */ +YAZ_EXPORT +cql_transform_t cql_transform_open_FILE (FILE *f); + +/** + * Creates a CQL transform handle. The transformation spec is read from + * a file with the filename given. + */ +YAZ_EXPORT +cql_transform_t cql_transform_open_fname(const char *fname); + +/** + * Destroys a CQL transform handle. + */ +YAZ_EXPORT +void cql_transform_close(cql_transform_t ct); + +/** + * Performs a CQL transform to PQF given a CQL node tree and a CQL + * transformation handle. The result is written to a user-defined stream. + */ +YAZ_EXPORT +void cql_transform_pr(cql_transform_t ct, + struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data); + +/** + * Performs a CQL transform to PQF given a CQL node tree and a CQL + * transformation handle. The result is written to a file specified by + * FILE handle (which must be opened for writing). + */ +YAZ_EXPORT +int cql_transform_FILE(cql_transform_t ct, + struct cql_node *cn, FILE *f); + +/** + * Performs a CQL transform to PQF given a CQL node tree and a CQL + * transformation handle. The result is written to a buffer. + */ +YAZ_EXPORT +int cql_transform_buf(cql_transform_t ct, + struct cql_node *cn, char *out, int max); +/** + * Returns error code and additional information from last transformation. + * Performs a CQL transform given a CQL node tree and a CQL transformation. + */ +YAZ_EXPORT +int cql_transform_error(cql_transform_t ct, const char **addinfo); + +/** + * Returns the CQL message corresponding to a given error code. + */ +YAZ_EXPORT +const char *cql_strerror(int code); + +/** + * Returns the standard CQL context set URI. + */ +YAZ_EXPORT +const char *cql_uri(); + +/** + * Compares two CQL strings (for relations, operators, etc) + * (unfortunately defined as case-insensitive unlike XML etc) + */ +YAZ_EXPORT +int cql_strcmp(const char *s1, const char *s2); + +/** + * Compares two CQL strings at most n bytes + * (unfortunately defined as case-insensitive unlike XML etc) + */ +YAZ_EXPORT +int cql_strncmp(const char *s1, const char *s2, size_t n); + +YAZ_END_CDECL + +#endif +/* CQL_H_INCLUDED */ +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/diagbib1.h b/dependencies/yaz-2.1.28/include/yaz/diagbib1.h new file mode 100644 index 0000000..9fe27fa --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/diagbib1.h @@ -0,0 +1,188 @@ +/** \file ./../include/yaz/diagbib1.h + \brief Diagnostics: Generated by csvtodiag.tcl from ./bib1.csv */ + +#include + +#ifndef YAZ_DIAG_bib1_H +#define YAZ_DIAG_bib1_H +YAZ_BEGIN_CDECL +YAZ_EXPORT const char *yaz_diag_bib1_str(int code); +YAZ_EXPORT const char *diagbib1_str(int code); +#define YAZ_BIB1_PERMANENT_SYSTEM_ERROR 1 +#define YAZ_BIB1_TEMPORARY_SYSTEM_ERROR 2 +#define YAZ_BIB1_UNSUPP_SEARCH 3 +#define YAZ_BIB1_TERMS_ONLY_EXCLUSION_STOP_WORDS 4 +#define YAZ_BIB1_TOO_MANY_ARGUMENT_WORDS 5 +#define YAZ_BIB1_TOO_MANY_BOOLEAN_OPERATORS 6 +#define YAZ_BIB1_TOO_MANY_TRUNCATED_WORDS 7 +#define YAZ_BIB1_TOO_MANY_INCOMPLETE_SUBFIELDS 8 +#define YAZ_BIB1_TRUNCATED_WORDS_TOO_SHORT 9 +#define YAZ_BIB1_INVALID_FORMAT_FOR_RECORD_NUMBER_SEARCH_TERM_ 10 +#define YAZ_BIB1_TOO_MANY_CHARS_IN_SEARCH_STATEMENT 11 +#define YAZ_BIB1_TOO_MANY_RECORDS_RETRIEVED 12 +#define YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE 13 +#define YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS 14 +#define YAZ_BIB1_RECORD_NO_AUTHORIZED_TO_BE_SENT_INTERSYSTEM 15 +#define YAZ_BIB1_RECORD_EXCEEDS_PREFERRED_MESSAGE_SIZE 16 +#define YAZ_BIB1_RECORD_EXCEEDS_MAXIMUM_RECORD_SIZE 17 +#define YAZ_BIB1_RESULT_SET_UNSUPP_AS_A_SEARCH_TERM 18 +#define YAZ_BIB1_ONLY_SINGLE_RESULT_SET_AS_SEARCH_TERM_SUPPORTED 19 +#define YAZ_BIB1_ONLY_ANDING_OF_A_SINGLE_RESULT_SET_AS_SEARCH_TERM_ 20 +#define YAZ_BIB1_RESULT_SET_EXISTS_AND_REPLACE_INDICATOR_OFF 21 +#define YAZ_BIB1_RESULT_SET_NAMING_UNSUPP 22 +#define YAZ_BIB1_COMBI_OF_SPECIFIED_DATABASES_UNSUPP 23 +#define YAZ_BIB1_ELEMENT_SET_NAMES_UNSUPP 24 +#define YAZ_BIB1_SPECIFIED_ELEMENT_SET_NAME_NOT_VALID_FOR_SPECIFIED_ 25 +#define YAZ_BIB1_ONLY_A_SINGLE_ELEMENT_SET_NAME_SUPPORTED 26 +#define YAZ_BIB1_RESULT_SET_NO_LONGER_EXISTS_UNILATERALLY_DELETED_BY_ 27 +#define YAZ_BIB1_RESULT_SET_IS_IN_USE 28 +#define YAZ_BIB1_ONE_OF_THE_SPECIFIED_DATABASES_IS_LOCKED 29 +#define YAZ_BIB1_SPECIFIED_RESULT_SET_DOES_NOT_EXIST 30 +#define YAZ_BIB1_RESOURCES_EXHAUSTED_NO_RESULTS_AVAILABLE 31 +#define YAZ_BIB1_RESOURCES_EXHAUSTED_UNPREDICTABLE_PARTIAL_RESULTS_ 32 +#define YAZ_BIB1_RESOURCES_EXHAUSTED_VALID_SUBSET_OF_RESULTS_AVAILABLE 33 +#define YAZ_BIB1_UNSPECIFIED_ERROR 100 +#define YAZ_BIB1_ACCESS_CONTROL_FAILURE 101 +#define YAZ_BIB1_SEC_CHAL_REQUIRED_BUT_COULDNT_BE_ISSUED_REQUEST_ 102 +#define YAZ_BIB1_SEC_CHAL_REQUIRED_BUT_COULDNT_BE_ISSUED_RECORD_NOT_ 103 +#define YAZ_BIB1_SEC_CHAL_FAILED_RECORD_NOT_INCLUDED 104 +#define YAZ_BIB1_TERMINATED_BY_NEGATIVE_CONTINUE_RESPONSE 105 +#define YAZ_BIB1_NO_ABSTRACT_SYNTAXES_AGREED_TO_FOR_THIS_RECORD 106 +#define YAZ_BIB1_QUERY_TYPE_UNSUPP 107 +#define YAZ_BIB1_MALFORMED_QUERY 108 +#define YAZ_BIB1_DATABASE_UNAVAILABLE 109 +#define YAZ_BIB1_OPERATOR_UNSUPP 110 +#define YAZ_BIB1_TOO_MANY_DATABASES_SPECIFIED 111 +#define YAZ_BIB1_TOO_MANY_RESULT_SETS_CREATED 112 +#define YAZ_BIB1_UNSUPP_ATTRIBUTE_TYPE 113 +#define YAZ_BIB1_UNSUPP_USE_ATTRIBUTE 114 +#define YAZ_BIB1_UNSUPP_VALUE_FOR_USE_ATTRIBUTE 115 +#define YAZ_BIB1_USE_ATTRIBUTE_REQUIRED_BUT_NOT_SUPPLIED 116 +#define YAZ_BIB1_UNSUPP_RELATION_ATTRIBUTE 117 +#define YAZ_BIB1_UNSUPP_STRUCTURE_ATTRIBUTE 118 +#define YAZ_BIB1_UNSUPP_POSITION_ATTRIBUTE 119 +#define YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE 120 +#define YAZ_BIB1_UNSUPP_ATTRIBUTE_SET 121 +#define YAZ_BIB1_UNSUPP_COMPLETENESS_ATTRIBUTE 122 +#define YAZ_BIB1_UNSUPP_ATTRIBUTE_COMBI 123 +#define YAZ_BIB1_UNSUPP_CODED_VALUE_FOR_TERM 124 +#define YAZ_BIB1_MALFORMED_SEARCH_TERM 125 +#define YAZ_BIB1_ILLEGAL_TERM_VALUE_FOR_ATTRIBUTE 126 +#define YAZ_BIB1_UNPARSABLE_FORMAT_FOR_UN_NORMALIZED_VALUE 127 +#define YAZ_BIB1_ILLEGAL_RESULT_SET_NAME 128 +#define YAZ_BIB1_PROX_SEARCH_OF_SETS_UNSUPP 129 +#define YAZ_BIB1_ILLEGAL_RESULT_SET_IN_PROX_SEARCH 130 +#define YAZ_BIB1_UNSUPP_PROX_RELATION 131 +#define YAZ_BIB1_UNSUPP_PROX_UNIT_CODE 132 +#define YAZ_BIB1_PROX_UNSUPP_WITH_THIS_ATTRIBUTE_COMBI 201 +#define YAZ_BIB1_UNSUPP_DISTANCE_FOR_PROX 202 +#define YAZ_BIB1_ORDERED_FLAG_UNSUPP_FOR_PROX 203 +#define YAZ_BIB1_ONLY_ZERO_STEP_SIZE_SUPPORTED_FOR_SCAN 205 +#define YAZ_BIB1_SPECIFIED_STEP_SIZE_UNSUPP_FOR_SCAN 206 +#define YAZ_BIB1_CANNOT_SORT_ACCORDING_TO_SEQUENCE 207 +#define YAZ_BIB1_NO_RESULT_SET_NAME_SUPPLIED_ON_SORT 208 +#define YAZ_BIB1_GENERIC_SORT_UNSUPP_DATABASE_SPECIFIC_SORT_ONLY_ 209 +#define YAZ_BIB1_DATABASE_SPECIFIC_SORT_UNSUPP 210 +#define YAZ_BIB1_TOO_MANY_SORT_KEYS 211 +#define YAZ_BIB1_DUP_SORT_KEYS 212 +#define YAZ_BIB1_UNSUPP_MISSING_DATA_ACTION 213 +#define YAZ_BIB1_ILLEGAL_SORT_RELATION 214 +#define YAZ_BIB1_ILLEGAL_CASE_VALUE 215 +#define YAZ_BIB1_ILLEGAL_MISSING_DATA_ACTION 216 +#define YAZ_BIB1_SEGMENTATION_CANNOT_GUARANTEE_RECORDS_WILL_FIT_IN_ 217 +#define YAZ_BIB1_ES_PACKAGE_NAME_ALREADY_IN_USE 218 +#define YAZ_BIB1_ES_NO_SUCH_PACKAGE_ON_MODIFY_DELETE 219 +#define YAZ_BIB1_ES_QUOTA_EXCEEDED 220 +#define YAZ_BIB1_ES_EXTENDED_SERVICE_TYPE_UNSUPP 221 +#define YAZ_BIB1_ES_PERMISSION_DENIED_ON_ES_ID_NOT_AUTHORIZED 222 +#define YAZ_BIB1_ES_PERMISSION_DENIED_ON_ES_CANNOT_MODIFY_OR_DELETE 223 +#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED 224 +#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_UNSUPP_FOR_THIS_SERVICE 225 +#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_UNSUPP_FOR_THESE_PARAMETERS 226 +#define YAZ_BIB1_NO_DATA_AVAILABLE_IN_REQUESTED_RECORD_SYNTAX 227 +#define YAZ_BIB1_SCAN_MALFORMED_SCAN 228 +#define YAZ_BIB1_TERM_TYPE_UNSUPP 229 +#define YAZ_BIB1_SORT_TOO_MANY_INPUT_RESULTS 230 +#define YAZ_BIB1_SORT_INCOMPATIBLE_RECORD_FORMATS 231 +#define YAZ_BIB1_SCAN_TERM_LIST_UNSUPP 232 +#define YAZ_BIB1_SCAN_UNSUPP_VALUE_OF_POSITION_IN_RESPONSE 233 +#define YAZ_BIB1_TOO_MANY_INDEX_TERMS_PROCESSED 234 +#define YAZ_BIB1_DATABASE_DOES_NOT_EXIST 235 +#define YAZ_BIB1_ACCESS_TO_SPECIFIED_DATABASE_DENIED 236 +#define YAZ_BIB1_SORT_ILLEGAL_SORT 237 +#define YAZ_BIB1_RECORD_NOT_AVAILABLE_IN_REQUESTED_SYNTAX 238 +#define YAZ_BIB1_RECORD_SYNTAX_UNSUPP 239 +#define YAZ_BIB1_SCAN_RESOURCES_EXHAUSTED_LOOKING_FOR_SATISFYING_TERMS 240 +#define YAZ_BIB1_SCAN_BEGINNING_OR_END_OF_TERM_LIST 241 +#define YAZ_BIB1_SEGMENTATION_MAX_SEGMENT_SIZE_TOO_SMALL_TO_SEGMENT_ 242 +#define YAZ_BIB1_PRESENT_ADDITIONAL_RANGES_PARAMETER_UNSUPP 243 +#define YAZ_BIB1_PRESENT_COMP_SPEC_PARAMETER_UNSUPP 244 +#define YAZ_BIB1_TYPE_1_QUERY_RESTRICTION_RESULTATTR_OPERAND_UNSUPP 245 +#define YAZ_BIB1_TYPE_1_QUERY_COMPLEX_ATTRIBUTEVALUE_UNSUPP 246 +#define YAZ_BIB1_TYPE_1_QUERY_ATTRIBUTESET_AS_PART_OF_ATTRIBUTEELEMENT_ 247 +#define YAZ_BIB1_MALFORMED_APDU 1001 +#define YAZ_BIB1_ES_EXTERNAL_FORM_OF_ITEM_ORDER_REQUEST_UNSUPP 1002 +#define YAZ_BIB1_ES_RESULT_SET_ITEM_FORM_OF_ITEM_ORDER_REQUEST_UNSUPP 1003 +#define YAZ_BIB1_ES_EXTENDED_SERVICES_UNSUPP_UNLESS_ACCESS_CONTROL_IS_IN_ 1004 +#define YAZ_BIB1_RESPONSE_RECORDS_IN_SEARCH_RESPONSE_UNSUPP 1005 +#define YAZ_BIB1_RESPONSE_RECORDS_IN_SEARCH_RESPONSE_NOT_POSSIBLE_FOR_ 1006 +#define YAZ_BIB1_NO_EXPLAIN_SERVER_ADDINFO_POINTERS_TO_SERVERS_THAT_HAVE_ 1007 +#define YAZ_BIB1_ES_MISSING_MANDATORY_PARAMETER_FOR_SPECIFIED_FUNCTION_ 1008 +#define YAZ_BIB1_ES_ITEM_ORDER_UNSUPP_OID_IN_ITEMREQUEST_ADDINFO_OID 1009 +#define YAZ_BIB1_INIT_AC_BAD_USERID 1010 +#define YAZ_BIB1_INIT_AC_BAD_USERID_AND_OR_PASSWORD 1011 +#define YAZ_BIB1_INIT_AC_NO_SEARCHES_REMAINING_PRE_PURCHASED_SEARCHES_ 1012 +#define YAZ_BIB1_INIT_AC_INCORRECT_INTERFACE_TYPE_SPECIFIED_ID_VALID_ 1013 +#define YAZ_BIB1_INIT_AC_AUTHENTICATION_SYSTEM_ERROR 1014 +#define YAZ_BIB1_INIT_AC_MAXIMUM_NUMBER_OF_SIMULTANEOUS_SESSIONS_FOR_ 1015 +#define YAZ_BIB1_INIT_AC_BLOCKED_NETWORK_ADDRESS 1016 +#define YAZ_BIB1_INIT_AC_NO_DATABASES_AVAILABLE_FOR_SPECIFIED_USERID 1017 +#define YAZ_BIB1_INIT_AC_SYSTEM_TEMPORARILY_OUT_OF_RESOURCES 1018 +#define YAZ_BIB1_INIT_AC_SYSTEM_NOT_AVAILABLE_DUE_TO_MAINTENANCE 1019 +#define YAZ_BIB1_INIT_AC_SYSTEM_TEMPORARILY_UNAVAILABLE_ADDINFO_WHEN_IT_ 1020 +#define YAZ_BIB1_INIT_AC_ACCOUNT_HAS_EXPIRED 1021 +#define YAZ_BIB1_INIT_AC_PASSWORD_HAS_EXPIRED_SO_A_NEW_ONE_MUST_BE_ 1022 +#define YAZ_BIB1_INIT_AC_PASSWORD_HAS_BEEN_CHANGED_BY_AN_ADMINISTRATOR_ 1023 +#define YAZ_BIB1_UNSUPP_ATTRIBUTE 1024 +#define YAZ_BIB1_SERVICE_UNSUPP_FOR_THIS_DATABASE 1025 +#define YAZ_BIB1_RECORD_CANNOT_BE_OPENED_BECAUSE_IT_IS_LOCKED 1026 +#define YAZ_BIB1_SQL_ERROR 1027 +#define YAZ_BIB1_RECORD_DELETED 1028 +#define YAZ_BIB1_SCAN_TOO_MANY_TERMS_REQUESTED_ADDINFO_MAX_TERMS_ 1029 +#define YAZ_BIB1_ES_INVALID_FUNCTION 1040 +#define YAZ_BIB1_ES_ERROR_IN_RETENTION_TIME 1041 +#define YAZ_BIB1_ES_PERMISSIONS_DATA_NOT_UNDERSTOOD 1042 +#define YAZ_BIB1_ES_INVALID_OID_FOR_TASK_SPECIFIC_PARAMETERS 1043 +#define YAZ_BIB1_ES_INVALID_ACTION 1044 +#define YAZ_BIB1_ES_UNKNOWN_SCHEMA 1045 +#define YAZ_BIB1_ES_TOO_MANY_RECORDS_IN_PACKAGE 1046 +#define YAZ_BIB1_ES_INVALID_WAIT_ACTION 1047 +#define YAZ_BIB1_ES_CANNOT_CREATE_TASK_PACKAGE__EXCEEDS_MAXIMUM_ 1048 +#define YAZ_BIB1_ES_CANNOT_RETURN_TASK_PACKAGE__EXCEEDS_MAXIMUM_ 1049 +#define YAZ_BIB1_ES_EXTENDED_SERVICES_REQUEST_TOO_LARGE 1050 +#define YAZ_BIB1_SCAN_ATTRIBUTE_SET_ID_REQUIRED__NOT_SUPPLIED 1051 +#define YAZ_BIB1_ES_CANNOT_PROCESS_TASK_PACKAGE_RECORD__EXCEEDS_MAXIMUM_ 1052 +#define YAZ_BIB1_ES_CANNOT_RETURN_TASK_PACKAGE_RECORD__EXCEEDS_MAXIMUM_ 1053 +#define YAZ_BIB1_INIT_REQUIRED_NEGOTIATION_RECORD_NOT_INCLUDED 1054 +#define YAZ_BIB1_INIT_NEGOTIATION_OPTION_REQUIRED 1055 +#define YAZ_BIB1_ATTRIBUTE_UNSUPP_FOR_DATABASE 1056 +#define YAZ_BIB1_ES_UNSUPP_VALUE_OF_TASK_PACKAGE_PARAMETER 1057 +#define YAZ_BIB1_DUP_DETECTION_CANNOT_DEDUP_ON_REQUESTED_RECORD_PORTION 1058 +#define YAZ_BIB1_DUP_DETECTION_REQUESTED_DETECTION_CRITERION_UNSUPP 1059 +#define YAZ_BIB1_DUP_DETECTION_REQUESTED_LEVEL_OF_MATCH_UNSUPP 1060 +#define YAZ_BIB1_DUP_DETECTION_REQUESTED_REGULAR_EXPRESSION_UNSUPP 1061 +#define YAZ_BIB1_DUP_DETECTION_CANNOT_DO_CLUSTERING 1062 +#define YAZ_BIB1_DUP_DETECTION_RETENTION_CRITERION_UNSUPP 1063 +#define YAZ_BIB1_DUP_DETECTION_REQUESTED_NUMBER_OR_PERCENTAGE_OF_ENTRIES_ 1064 +#define YAZ_BIB1_DUP_DETECTION_REQUESTED_SORT_CRITERION_UNSUPP 1065 +#define YAZ_BIB1_COMPSPEC_UNKNOWN_SCHEMA_OR_SCHEMA_UNSUPP_ 1066 +#define YAZ_BIB1_ENCAPSULATION_ENCAPSULATED_SEQUENCE_OF_PDUS_UNSUPP 1067 +#define YAZ_BIB1_ENCAPSULATION_BASE_OPERATION_AND_ENCAPSULATED_PDUS_NOT_ 1068 +#define YAZ_BIB1_NO_SYNTAXES_AVAILABLE_FOR_THIS_REQUEST 1069 +#define YAZ_BIB1_USER_NOT_AUTHORIZED_TO_RECEIVE_RECORD_S_IN_REQUESTED_ 1070 +#define YAZ_BIB1_PREFERREDRECORDSYNTAX_NOT_SUPPLIED 1071 +#define YAZ_BIB1_QUERY_TERM_INCLUDES_CHARS_THAT_DO_NOT_TRANSLATE_INTO_ 1072 + +YAZ_END_CDECL +#endif + diff --git a/dependencies/yaz-2.1.28/include/yaz/diagsrw.h b/dependencies/yaz-2.1.28/include/yaz/diagsrw.h new file mode 100644 index 0000000..aee45e4 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/diagsrw.h @@ -0,0 +1,106 @@ +/** \file ./../include/yaz/diagsrw.h + \brief Diagnostics: Generated by csvtodiag.tcl from ./srw.csv */ + +#include + +#ifndef YAZ_DIAG_srw_H +#define YAZ_DIAG_srw_H +YAZ_BEGIN_CDECL +YAZ_EXPORT const char *yaz_diag_srw_str(int code); +#define YAZ_SRW_PERMANENT_SYSTEM_ERROR 1 +#define YAZ_SRW_SYSTEM_TEMPORARILY_UNAVAILABLE 2 +#define YAZ_SRW_AUTHENTICATION_ERROR 3 +#define YAZ_SRW_UNSUPP_OPERATION 4 +#define YAZ_SRW_UNSUPP_VERSION 5 +#define YAZ_SRW_UNSUPP_PARAMETER_VALUE 6 +#define YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED 7 +#define YAZ_SRW_UNSUPP_PARAMETER 8 +#define YAZ_SRW_QUERY_SYNTAX_ERROR 10 +#define YAZ_SRW_UNSUPP_QUERY_TYPE 11 +#define YAZ_SRW_TOO_MANY_CHARS_IN_QUERY 12 +#define YAZ_SRW_INVALID_OR_UNSUPP_USE_OF_PARENTHESES 13 +#define YAZ_SRW_INVALID_OR_UNSUPP_USE_OF_QUOTES 14 +#define YAZ_SRW_UNSUPP_CONTEXT_SET 15 +#define YAZ_SRW_UNSUPP_INDEX 16 +#define YAZ_SRW_UNSUPP_COMBI_OF_INDEX_AND_CONTEXT_SET 17 +#define YAZ_SRW_UNSUPP_COMBI_OF_INDEXES 18 +#define YAZ_SRW_UNSUPP_RELATION 19 +#define YAZ_SRW_UNSUPP_RELATION_MODIFIER 20 +#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_MODIFERS 21 +#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_AND_INDEX 22 +#define YAZ_SRW_TOO_MANY_CHARS_IN_TERM 23 +#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_AND_TERM 24 +#define YAZ_SRW_SPECIAL_CHARS_NOT_QUOTED_IN_TERM 25 +#define YAZ_SRW_NON_SPECIAL_CHAR_ESCAPED_IN_TERM 26 +#define YAZ_SRW_EMPTY_TERM_UNSUPP 27 +#define YAZ_SRW_MASKING_CHAR_UNSUPP 28 +#define YAZ_SRW_MASKED_WORDS_TOO_SHORT 29 +#define YAZ_SRW_TOO_MANY_MASKING_CHARS_IN_TERM 30 +#define YAZ_SRW_ANCHORING_CHAR_UNSUPP 31 +#define YAZ_SRW_ANCHORING_CHAR_IN_UNSUPP_POSITION 32 +#define YAZ_SRW_COMBI_OF_PROX_ADJACENCY_AND_MASKING_CHARS_UNSUPP 33 +#define YAZ_SRW_COMBI_OF_PROX_ADJACENCY_AND_ANCHORING_CHARS_UNSUPP 34 +#define YAZ_SRW_TERMS_ONLY_EXCLUSION_STOPWORDS 35 +#define YAZ_SRW_TERM_IN_INVALID_FORMAT_FOR_INDEX_OR_RELATION 36 +#define YAZ_SRW_UNSUPP_BOOLEAN_OPERATOR 37 +#define YAZ_SRW_TOO_MANY_BOOLEAN_OPERATORS_IN_QUERY 38 +#define YAZ_SRW_PROX_UNSUPP 39 +#define YAZ_SRW_UNSUPP_PROX_RELATION 40 +#define YAZ_SRW_UNSUPP_PROX_DISTANCE 41 +#define YAZ_SRW_UNSUPP_PROX_UNIT 42 +#define YAZ_SRW_UNSUPP_PROX_ORDERING 43 +#define YAZ_SRW_UNSUPP_COMBI_OF_PROX_MODIFIERS 44 +#define YAZ_SRW_PREFIX_ASSIGNED_TO_MULTIPLE_IDENTIFIERS 45 +#define YAZ_SRW_UNSUPP_BOOLEAN_MODIFIER 46 +#define YAZ_SRW_CANNOT_PROCESS_QUERY_REASON_UNKNOWN 47 +#define YAZ_SRW_QUERY_FEATURE_UNSUPP 48 +#define YAZ_SRW_MASKING_CHAR_IN_UNSUPP_POSITION 49 +#define YAZ_SRW_RESULT_SETS_UNSUPP 50 +#define YAZ_SRW_RESULT_SET_DOES_NOT_EXIST 51 +#define YAZ_SRW_RESULT_SET_TEMPORARILY_UNAVAILABLE 52 +#define YAZ_SRW_RESULT_SETS_ONLY_SUPPORTED_FOR_RETRIEVAL 53 +#define YAZ_SRW_RETRIEVAL_MAY_ONLY_OCCUR_FROM_AN_EXISTING_RESULT_SET 54 +#define YAZ_SRW_COMBI_OF_RESULT_SETS_WITH_SEARCH_TERMS_UNSUPP 55 +#define YAZ_SRW_ONLY_COMBI_OF_SINGLE_RESULT_SET_WITH_SEARCH_TERMS_ 56 +#define YAZ_SRW_RESULT_SET_CREATED_BUT_NO_RECORDS_AVAILABLE 57 +#define YAZ_SRW_RESULT_SET_CREATED_WITH_UNPREDICTABLE_PARTIAL_RESULTS_ 58 +#define YAZ_SRW_RESULT_SET_CREATED_WITH_VALID_PARTIAL_RESULTS_AVAILABLE 59 +#define YAZ_SRW_RESULT_SET_NO_CREATED_TOO_MANY_RECORDS_RETRIEVED 60 +#define YAZ_SRW_FIRST_RECORD_POSITION_OUT_OF_RANGE 61 +#define YAZ_SRW_NEGATIVE_NUMBER_OF_RECORDS_REQUESTED 62 +#define YAZ_SRW_SYSTEM_ERROR_IN_RETRIEVING_RECORDS 63 +#define YAZ_SRW_RECORD_TEMPORARILY_UNAVAILABLE 64 +#define YAZ_SRW_RECORD_DOES_NOT_EXIST 65 +#define YAZ_SRW_UNKNOWN_SCHEMA_FOR_RETRIEVAL 66 +#define YAZ_SRW_RECORD_NOT_AVAILABLE_IN_THIS_SCHEMA 67 +#define YAZ_SRW_NOT_AUTHORISED_TO_SEND_RECORD 68 +#define YAZ_SRW_NOT_AUTHORISED_TO_SEND_RECORD_IN_THIS_SCHEMA 69 +#define YAZ_SRW_RECORD_TOO_LARGE_TO_SEND 70 +#define YAZ_SRW_UNSUPP_RECORD_PACKING 71 +#define YAZ_SRW_XPATH_RETRIEVAL_UNSUPP 72 +#define YAZ_SRW_XPATH_EXPRESSION_CONTAINS_UNSUPP_FEATURE 73 +#define YAZ_SRW_UNABLE_TO_EVALUATE_XPATH_EXPRESSION 74 +#define YAZ_SRW_SORT_UNSUPP 80 +#define YAZ_SRW_UNSUPP_SORT_TYPE 81 +#define YAZ_SRW_UNSUPP_SORT_SEQUENCE 82 +#define YAZ_SRW_TOO_MANY_RECORDS_TO_SORT 83 +#define YAZ_SRW_TOO_MANY_SORT_KEYS_TO_SORT 84 +#define YAZ_SRW_DUP_SORT_KEYS 85 +#define YAZ_SRW_CANNOT_SORT_INCOMPATIBLE_RECORD_FORMATS 86 +#define YAZ_SRW_UNSUPP_SCHEMA_FOR_SORT 87 +#define YAZ_SRW_UNSUPP_PATH_FOR_SORT 88 +#define YAZ_SRW_PATH_UNSUPP_FOR_SCHEMA 89 +#define YAZ_SRW_UNSUPP_DIRECTION_VALUE 90 +#define YAZ_SRW_UNSUPP_CASE_VALUE 91 +#define YAZ_SRW_UNSUPP_MISSING_VALUE_ACTION 92 +#define YAZ_SRW_EXPLAIN_UNSUPP 100 +#define YAZ_SRW_EXPLAIN_REQUEST_TYPE_UNSUPP_SOAP_VS_GET_ 101 +#define YAZ_SRW_EXPLAIN_RECORD_TEMPORARILY_UNAVAILABLE 102 +#define YAZ_SRW_STYLESHEETS_UNSUPP 110 +#define YAZ_SRW_UNSUPP_STYLESHEET 111 +#define YAZ_SRW_RESPONSE_POSITION_OUT_OF_RANGE 120 +#define YAZ_SRW_TOO_MANY_TERMS_REQUESTED 121 + +YAZ_END_CDECL +#endif + diff --git a/dependencies/yaz-2.1.28/include/yaz/ill-core.h b/dependencies/yaz-2.1.28/include/yaz/ill-core.h new file mode 100644 index 0000000..43b48e6 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/ill-core.h @@ -0,0 +1,1332 @@ +/** \file ill-core.h + \brief ASN.1 Module ISO-10161-ILL-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef ill_core_H +#define ill_core_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + + + +typedef struct ILL_APDU ILL_APDU; +YAZ_EXPORT int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name); + +typedef struct ILL_Request ILL_Request; +YAZ_EXPORT int ill_Request (ODR o, ILL_Request **p, int opt, const char *name); + +typedef struct ILL_Forward_Notification ILL_Forward_Notification; +YAZ_EXPORT int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name); + +typedef struct ILL_Shipped ILL_Shipped; +YAZ_EXPORT int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name); + +typedef struct ILL_Answer ILL_Answer; +YAZ_EXPORT int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name); + +typedef struct ILL_Conditional_Reply ILL_Conditional_Reply; +YAZ_EXPORT int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name); + +typedef struct ILL_Cancel ILL_Cancel; +YAZ_EXPORT int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name); + +typedef struct ILL_Cancel_Reply ILL_Cancel_Reply; +YAZ_EXPORT int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name); + +typedef struct ILL_Received ILL_Received; +YAZ_EXPORT int ill_Received (ODR o, ILL_Received **p, int opt, const char *name); + +typedef struct ILL_Recall ILL_Recall; +YAZ_EXPORT int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name); + +typedef struct ILL_Returned ILL_Returned; +YAZ_EXPORT int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name); + +typedef struct ILL_Checked_In ILL_Checked_In; +YAZ_EXPORT int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name); + +typedef struct ILL_Overdue_ExtensionS ILL_Overdue_ExtensionS; +YAZ_EXPORT int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name); + +typedef struct ILL_Overdue ILL_Overdue; +YAZ_EXPORT int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name); + +typedef struct ILL_Renew ILL_Renew; +YAZ_EXPORT int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name); + +typedef struct ILL_Renew_Answer ILL_Renew_Answer; +YAZ_EXPORT int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name); + +typedef struct ILL_Lost ILL_Lost; +YAZ_EXPORT int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name); + +typedef struct ILL_Damaged ILL_Damaged; +YAZ_EXPORT int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name); + +typedef struct ILL_Message ILL_Message; +YAZ_EXPORT int ill_Message (ODR o, ILL_Message **p, int opt, const char *name); + +typedef struct ILL_Status_Query ILL_Status_Query; +YAZ_EXPORT int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name); + +typedef struct ILL_Status_Or_Error_Report ILL_Status_Or_Error_Report; +YAZ_EXPORT int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name); + +typedef struct ILL_Expired ILL_Expired; +YAZ_EXPORT int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name); + +typedef struct ILL_Already_Forwarded ILL_Already_Forwarded; +YAZ_EXPORT int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name); + +typedef struct ILL_Already_Tried_List_Type ILL_Already_Tried_List_Type; +YAZ_EXPORT int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name); + +typedef struct ILL_Amount ILL_Amount; +YAZ_EXPORT int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name); + +typedef char ILL_AmountString; +YAZ_EXPORT int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name); + +typedef struct ILL_Client_Id ILL_Client_Id; +YAZ_EXPORT int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name); + +typedef struct ILL_Conditional_Results ILL_Conditional_Results; +YAZ_EXPORT int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name); + +typedef struct ILL_Cost_Info_Type ILL_Cost_Info_Type; +YAZ_EXPORT int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name); + +typedef int ILL_Current_State; +YAZ_EXPORT int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name); + +typedef struct ILL_Damaged_DetailsSpecific_units ILL_Damaged_DetailsSpecific_units; +YAZ_EXPORT int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name); + +typedef struct ILL_Damaged_Details ILL_Damaged_Details; +YAZ_EXPORT int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name); + +typedef struct ILL_Date_Due ILL_Date_Due; +YAZ_EXPORT int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name); + +typedef struct ILL_Delivery_Address ILL_Delivery_Address; +YAZ_EXPORT int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name); + +typedef struct ILL_Delivery_ServiceElectronic_delivery ILL_Delivery_ServiceElectronic_delivery; +YAZ_EXPORT int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name); + +typedef struct ILL_Delivery_Service ILL_Delivery_Service; +YAZ_EXPORT int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name); + +typedef struct ILL_Electronic_Delivery_Service_0 ILL_Electronic_Delivery_Service_0; +YAZ_EXPORT int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name); + +typedef struct ILL_Electronic_Delivery_Service_1 ILL_Electronic_Delivery_Service_1; +YAZ_EXPORT int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name); + +typedef struct ILL_Electronic_Delivery_Service ILL_Electronic_Delivery_Service; +YAZ_EXPORT int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name); + +typedef struct ILL_Error_Report ILL_Error_Report; +YAZ_EXPORT int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name); + +typedef struct ILL_Estimate_Results ILL_Estimate_Results; +YAZ_EXPORT int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name); + +typedef struct ILL_Extension ILL_Extension; +YAZ_EXPORT int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name); + +typedef int ILL_General_Problem; +YAZ_EXPORT int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name); + +typedef struct ILL_History_Report ILL_History_Report; +YAZ_EXPORT int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name); + +typedef struct ILL_Hold_Placed_Results ILL_Hold_Placed_Results; +YAZ_EXPORT int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name); + +typedef int ILL_APDU_Type; +YAZ_EXPORT int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name); + +typedef int ILL_Service_Type; +YAZ_EXPORT int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name); + +typedef struct ILL_String ILL_String; +YAZ_EXPORT int ill_String (ODR o, ILL_String **p, int opt, const char *name); + +typedef ILL_String ILL_Account_Number; +YAZ_EXPORT int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name); + +typedef int ILL_Intermediary_Problem; +YAZ_EXPORT int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name); + +typedef char ILL_ISO_Date; +YAZ_EXPORT int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name); + +typedef char ILL_ISO_Time; +YAZ_EXPORT int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name); + +typedef struct ILL_Item_Id ILL_Item_Id; +YAZ_EXPORT int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name); + +typedef struct ILL_Location_Info ILL_Location_Info; +YAZ_EXPORT int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name); + +typedef struct ILL_Locations_Results ILL_Locations_Results; +YAZ_EXPORT int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name); + +typedef int ILL_Medium_Type; +YAZ_EXPORT int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name); + +typedef struct ILL_Name_Of_Person_Or_Institution ILL_Name_Of_Person_Or_Institution; +YAZ_EXPORT int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name); + +typedef struct ILL_Person_Or_Institution_Symbol ILL_Person_Or_Institution_Symbol; +YAZ_EXPORT int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name); + +typedef int ILL_Place_On_Hold_Type; +YAZ_EXPORT int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name); + +typedef struct ILL_Postal_Address ILL_Postal_Address; +YAZ_EXPORT int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name); + +typedef struct ILL_Provider_Error_Report ILL_Provider_Error_Report; +YAZ_EXPORT int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name); + +typedef int ILL_Reason_Locs_Provided; +YAZ_EXPORT int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name); + +typedef int ILL_Reason_No_Report; +YAZ_EXPORT int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name); + +typedef int ILL_Reason_Unfilled; +YAZ_EXPORT int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name); + +typedef int ILL_Report_Source; +YAZ_EXPORT int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name); + +typedef struct ILL_Requester_Optional_Messages_Type ILL_Requester_Optional_Messages_Type; +YAZ_EXPORT int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name); + +typedef struct ILL_Responder_Optional_Messages_Type ILL_Responder_Optional_Messages_Type; +YAZ_EXPORT int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name); + +typedef struct ILL_Retry_Results ILL_Retry_Results; +YAZ_EXPORT int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name); + +typedef struct ILL_Search_Type ILL_Search_Type; +YAZ_EXPORT int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name); + +typedef ILL_String ILL_Security_Problem; +YAZ_EXPORT int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name); + +typedef struct ILL_Send_To_List_Type_s ILL_Send_To_List_Type_s; +YAZ_EXPORT int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name); + +typedef struct ILL_Send_To_List_Type ILL_Send_To_List_Type; +YAZ_EXPORT int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name); + +typedef struct ILL_Service_Date_this ILL_Service_Date_this; +YAZ_EXPORT int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name); + +typedef struct ILL_Service_Date_original ILL_Service_Date_original; +YAZ_EXPORT int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name); + +typedef struct ILL_Service_Date_Time ILL_Service_Date_Time; +YAZ_EXPORT int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name); + +typedef ILL_Service_Type ILL_Shipped_Service_Type; +YAZ_EXPORT int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name); + +typedef struct ILL_State_Transition_Prohibited ILL_State_Transition_Prohibited; +YAZ_EXPORT int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name); + +typedef struct ILL_Status_Report ILL_Status_Report; +YAZ_EXPORT int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name); + +typedef struct ILL_Supplemental_Item_Description ILL_Supplemental_Item_Description; +YAZ_EXPORT int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name); + +typedef struct ILL_Supply_Details ILL_Supply_Details; +YAZ_EXPORT int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name); + +typedef struct ILL_Supply_Medium_Info_Type ILL_Supply_Medium_Info_Type; +YAZ_EXPORT int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name); + +typedef int ILL_Supply_Medium_Type; +YAZ_EXPORT int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name); + +typedef struct ILL_System_Address ILL_System_Address; +YAZ_EXPORT int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name); + +typedef struct ILL_System_Id ILL_System_Id; +YAZ_EXPORT int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name); + +typedef struct ILL_Third_Party_Info_Type ILL_Third_Party_Info_Type; +YAZ_EXPORT int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name); + +typedef struct ILL_Transaction_Id ILL_Transaction_Id; +YAZ_EXPORT int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name); + +typedef int ILL_Transaction_Id_Problem; +YAZ_EXPORT int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name); + +typedef int ILL_Transaction_Results; +YAZ_EXPORT int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name); + +typedef int ILL_Transaction_Type; +YAZ_EXPORT int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name); + +typedef ILL_String ILL_Transportation_Mode; +YAZ_EXPORT int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name); + +typedef int ILL_Unable_To_Perform; +YAZ_EXPORT int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name); + +typedef struct ILL_Unfilled_Results ILL_Unfilled_Results; +YAZ_EXPORT int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name); + +typedef struct ILL_Units_Per_Medium_Type ILL_Units_Per_Medium_Type; +YAZ_EXPORT int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name); + +typedef struct ILL_User_Error_Report ILL_User_Error_Report; +YAZ_EXPORT int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name); + +typedef struct ILL_Will_Supply_Results ILL_Will_Supply_Results; +YAZ_EXPORT int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name); + +typedef char ILL_EDIFACTString; +YAZ_EXPORT int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct ILL_APDU { + int which; + union { + ILL_Request *illRequest; + ILL_Forward_Notification *Forward_Notification; + ILL_Shipped *Shipped; + ILL_Answer *illAnswer; + ILL_Conditional_Reply *Conditional_Reply; + ILL_Cancel *Cancel; + ILL_Cancel_Reply *Cancel_Reply; + ILL_Received *Received; + ILL_Recall *Recall; + ILL_Returned *Returned; + ILL_Checked_In *Checked_In; + ILL_Overdue *Overdue; + ILL_Renew *Renew; + ILL_Renew_Answer *Renew_Answer; + ILL_Lost *Lost; + ILL_Damaged *Damaged; + ILL_Message *Message; + ILL_Status_Query *Status_Query; + ILL_Status_Or_Error_Report *Status_Or_Error_Report; + ILL_Expired *Expired; +#define ILL_APDU_ILL_Request 1 +#define ILL_APDU_Forward_Notification 2 +#define ILL_APDU_Shipped 3 +#define ILL_APDU_ILL_Answer 4 +#define ILL_APDU_Conditional_Reply 5 +#define ILL_APDU_Cancel 6 +#define ILL_APDU_Cancel_Reply 7 +#define ILL_APDU_Received 8 +#define ILL_APDU_Recall 9 +#define ILL_APDU_Returned 10 +#define ILL_APDU_Checked_In 11 +#define ILL_APDU_Overdue 12 +#define ILL_APDU_Renew 13 +#define ILL_APDU_Renew_Answer 14 +#define ILL_APDU_Lost 15 +#define ILL_APDU_Damaged 16 +#define ILL_APDU_Message 17 +#define ILL_APDU_Status_Query 18 +#define ILL_APDU_Status_Or_Error_Report 19 +#define ILL_APDU_Expired 20 + } u; +}; + +struct ILL_Request { +#define ILL_Request_version_1 1 +#define ILL_Request_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Transaction_Type *transaction_type; + ILL_Delivery_Address *delivery_address; /* OPT */ + ILL_Delivery_Service *delivery_service; /* OPT */ + ILL_Delivery_Address *billing_address; /* OPT */ + int num_iLL_service_type; + ILL_Service_Type **iLL_service_type; + Odr_external *responder_specific_service; /* OPT */ + ILL_Requester_Optional_Messages_Type *requester_optional_messages; + ILL_Search_Type *search_type; /* OPT */ + int num_supply_medium_info_type; + ILL_Supply_Medium_Info_Type **supply_medium_info_type; /* OPT */ + ILL_Place_On_Hold_Type *place_on_hold; + ILL_Client_Id *client_id; /* OPT */ + ILL_Item_Id *item_id; + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_Cost_Info_Type *cost_info_type; /* OPT */ + ILL_String *copyright_compliance; /* OPT */ + ILL_Third_Party_Info_Type *third_party_info_type; /* OPT */ + bool_t *retry_flag; + bool_t *forward_flag; + ILL_String *requester_note; /* OPT */ + ILL_String *forward_note; /* OPT */ + int num_iLL_request_extensions; + ILL_Extension **iLL_request_extensions; /* OPT */ +}; + +struct ILL_Forward_Notification { +#define ILL_Forward_Notification_version_1 1 +#define ILL_Forward_Notification_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; + ILL_System_Address *responder_address; /* OPT */ + ILL_System_Id *intermediary_id; + ILL_String *notification_note; /* OPT */ + int num_forward_notification_extensions; + ILL_Extension **forward_notification_extensions; /* OPT */ +}; + +struct ILL_Shipped { +#define ILL_Shipped_version_1 1 +#define ILL_Shipped_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_System_Address *responder_address; /* OPT */ + ILL_System_Id *intermediary_id; /* OPT */ + ILL_System_Id *supplier_id; /* OPT */ + ILL_Client_Id *client_id; /* OPT */ + ILL_Transaction_Type *transaction_type; + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_Shipped_Service_Type *shipped_service_type; + ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */ + ILL_Supply_Details *supply_details; + ILL_Postal_Address *return_to_address; /* OPT */ + ILL_String *responder_note; /* OPT */ + int num_shipped_extensions; + ILL_Extension **shipped_extensions; /* OPT */ +}; + +struct ILL_Answer { +#define ILL_Answer_version_1 1 +#define ILL_Answer_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Transaction_Results *transaction_results; + int which; + union { + ILL_Conditional_Results *conditional_results; + ILL_Retry_Results *retry_results; + ILL_Unfilled_Results *unfilled_results; + ILL_Locations_Results *locations_results; + ILL_Will_Supply_Results *will_supply_results; + ILL_Hold_Placed_Results *hold_placed_results; + ILL_Estimate_Results *estimate_results; +#define ILL_Answer_conditional_results 1 +#define ILL_Answer_retry_results 2 +#define ILL_Answer_unfilled_results 3 +#define ILL_Answer_locations_results 4 +#define ILL_Answer_will_supply_results 5 +#define ILL_Answer_hold_placed_results 6 +#define ILL_Answer_estimate_results 7 + } u; /* OPT */ + Odr_external *responder_specific_results; /* OPT */ + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_Send_To_List_Type *send_to_list; /* OPT */ + ILL_Already_Tried_List_Type *already_tried_list; /* OPT */ + ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */ + ILL_String *responder_note; /* OPT */ + int num_ill_answer_extensions; + ILL_Extension **ill_answer_extensions; /* OPT */ +}; + +struct ILL_Conditional_Reply { +#define ILL_Conditional_Reply_version_1 1 +#define ILL_Conditional_Reply_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + bool_t *answer; + ILL_String *requester_note; /* OPT */ + int num_conditional_reply_extensions; + ILL_Extension **conditional_reply_extensions; /* OPT */ +}; + +struct ILL_Cancel { +#define ILL_Cancel_version_1 1 +#define ILL_Cancel_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_String *requester_note; /* OPT */ + int num_cancel_extensions; + ILL_Extension **cancel_extensions; /* OPT */ +}; + +struct ILL_Cancel_Reply { +#define ILL_Cancel_Reply_version_1 1 +#define ILL_Cancel_Reply_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + bool_t *answer; + ILL_String *responder_note; /* OPT */ + int num_cancel_reply_extensions; + ILL_Extension **cancel_reply_extensions; /* OPT */ +}; + +struct ILL_Received { +#define ILL_Received_version_1 1 +#define ILL_Received_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_System_Id *supplier_id; /* OPT */ + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_ISO_Date *date_received; + ILL_Shipped_Service_Type *shipped_service_type; + ILL_String *requester_note; /* OPT */ + int num_received_extensions; + ILL_Extension **received_extensions; /* OPT */ +}; + +struct ILL_Recall { +#define ILL_Recall_version_1 1 +#define ILL_Recall_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_String *responder_note; /* OPT */ + int num_recall_extensions; + ILL_Extension **recall_extensions; /* OPT */ +}; + +struct ILL_Returned { +#define ILL_Returned_version_1 1 +#define ILL_Returned_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_ISO_Date *date_returned; + ILL_Transportation_Mode *returned_via; /* OPT */ + ILL_Amount *insured_for; /* OPT */ + ILL_String *requester_note; /* OPT */ + int num_returned_extensions; + ILL_Extension **returned_extensions; /* OPT */ +}; + +struct ILL_Checked_In { +#define ILL_Checked_In_version_1 1 +#define ILL_Checked_In_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_ISO_Date *date_checked_in; + ILL_String *responder_note; /* OPT */ + int num_checked_in_extensions; + ILL_Extension **checked_in_extensions; /* OPT */ +}; + +struct ILL_Overdue_ExtensionS { + int num; + ILL_Extension **elements; +}; + +struct ILL_Overdue { +#define ILL_Overdue_version_1 1 +#define ILL_Overdue_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Date_Due *date_due; + ILL_String *responder_note; /* OPT */ + ILL_Overdue_ExtensionS *overdue_extensions; /* OPT */ +}; + +struct ILL_Renew { +#define ILL_Renew_version_1 1 +#define ILL_Renew_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_ISO_Date *desired_due_date; /* OPT */ + ILL_String *requester_note; /* OPT */ + int num_renew_extensions; + ILL_Extension **renew_extensions; /* OPT */ +}; + +struct ILL_Renew_Answer { +#define ILL_Renew_Answer_version_1 1 +#define ILL_Renew_Answer_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + bool_t *answer; + ILL_Date_Due *date_due; /* OPT */ + ILL_String *responder_note; /* OPT */ + int num_renew_answer_extensions; + ILL_Extension **renew_answer_extensions; /* OPT */ +}; + +struct ILL_Lost { +#define ILL_Lost_version_1 1 +#define ILL_Lost_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_String *note; /* OPT */ + int num_lost_extensions; + ILL_Extension **lost_extensions; /* OPT */ +}; + +struct ILL_Damaged { +#define ILL_Damaged_version_1 1 +#define ILL_Damaged_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Damaged_Details *damaged_details; /* OPT */ + ILL_String *note; /* OPT */ + int num_damaged_extensions; + ILL_Extension **damaged_extensions; /* OPT */ +}; + +struct ILL_Message { +#define ILL_Message_version_1 1 +#define ILL_Message_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_String *note; + int num_message_extensions; + ILL_Extension **message_extensions; /* OPT */ +}; + +struct ILL_Status_Query { +#define ILL_Status_Query_version_1 1 +#define ILL_Status_Query_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_String *note; /* OPT */ + int num_status_query_extensions; + ILL_Extension **status_query_extensions; /* OPT */ +}; + +struct ILL_Status_Or_Error_Report { +#define ILL_Status_Or_Error_Report_version_1 1 +#define ILL_Status_Or_Error_Report_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Reason_No_Report *reason_no_report; /* OPT */ + ILL_Status_Report *status_report; /* OPT */ + ILL_Error_Report *error_report; /* OPT */ + ILL_String *note; /* OPT */ + int num_status_or_error_report_extensions; + ILL_Extension **status_or_error_report_extensions; /* OPT */ +}; + +struct ILL_Expired { +#define ILL_Expired_version_1 1 +#define ILL_Expired_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; + ILL_Service_Date_Time *service_date_time; + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + int num_expired_extensions; + ILL_Extension **expired_extensions; /* OPT */ +}; + + + +struct ILL_Already_Forwarded { + ILL_System_Id *responder_id; + ILL_System_Address *responder_address; /* OPT */ +}; + +struct ILL_Already_Tried_List_Type { + int num; + ILL_System_Id **elements; +}; + +struct ILL_Amount { + char *currency_code; /* OPT */ + ILL_AmountString *monetary_value; +}; + + + +struct ILL_Client_Id { + ILL_String *client_name; /* OPT */ + ILL_String *client_status; /* OPT */ + ILL_String *client_identifier; /* OPT */ +}; + +struct ILL_Conditional_Results { +#define ILL_Conditional_Results_cost_exceeds_limit 13 +#define ILL_Conditional_Results_charges 14 +#define ILL_Conditional_Results_prepayment_required 15 +#define ILL_Conditional_Results_lacks_copyright_compliance 16 +#define ILL_Conditional_Results_library_use_only 22 +#define ILL_Conditional_Results_no_reproduction 23 +#define ILL_Conditional_Results_client_signature_required 24 +#define ILL_Conditional_Results_special_collections_supervision_required 25 +#define ILL_Conditional_Results_other 27 +#define ILL_Conditional_Results_responder_specific 28 +#define ILL_Conditional_Results_proposed_delivery_service 30 + int *conditions; + ILL_ISO_Date *date_for_reply; /* OPT */ + int num_locations; + ILL_Location_Info **locations; /* OPT */ + ILL_Delivery_Service *proposed_delivery_service; /* OPT */ +}; + +struct ILL_Cost_Info_Type { + ILL_Account_Number *account_number; /* OPT */ + ILL_Amount *maximum_cost; /* OPT */ + bool_t *reciprocal_agreement; + bool_t *will_pay_fee; + bool_t *payment_provided; +}; + +#define ILL_Current_State_nOT_SUPPLIED 1 +#define ILL_Current_State_pENDING 2 +#define ILL_Current_State_iN_PROCESS 3 +#define ILL_Current_State_fORWARD 4 +#define ILL_Current_State_cONDITIONAL 5 +#define ILL_Current_State_cANCEL_PENDING 6 +#define ILL_Current_State_cANCELLED 7 +#define ILL_Current_State_sHIPPED 8 +#define ILL_Current_State_rECEIVED 9 +#define ILL_Current_State_rENEW_PENDING 10 +#define ILL_Current_State_nOT_RECEIVED_OVERDUE 11 +#define ILL_Current_State_rENEW_OVERDUE 12 +#define ILL_Current_State_oVERDUE 13 +#define ILL_Current_State_rETURNED 14 +#define ILL_Current_State_cHECKED_IN 15 +#define ILL_Current_State_rECALL 16 +#define ILL_Current_State_lOST 17 +#define ILL_Current_State_uNKNOWN 18 + +struct ILL_Damaged_DetailsSpecific_units { + int num; + int **elements; +}; + +struct ILL_Damaged_Details { + Odr_oid *document_type_id; /* OPT */ + int which; + union { + Odr_null *complete_document; + ILL_Damaged_DetailsSpecific_units *specific_units; +#define ILL_Damaged_Details_complete_document 1 +#define ILL_Damaged_Details_specific_units 2 + } u; +}; + +struct ILL_Date_Due { + ILL_ISO_Date *date_due_field; + bool_t *renewable; +}; + +struct ILL_Delivery_Address { + ILL_Postal_Address *postal_address; /* OPT */ + ILL_System_Address *electronic_address; /* OPT */ +}; + +struct ILL_Delivery_ServiceElectronic_delivery { + int num; + ILL_Electronic_Delivery_Service **elements; +}; + +struct ILL_Delivery_Service { + int which; + union { + ILL_Transportation_Mode *physical_delivery; + ILL_Delivery_ServiceElectronic_delivery *electronic_delivery; +#define ILL_Delivery_Service_physical_delivery 1 +#define ILL_Delivery_Service_electronic_delivery 2 + } u; +}; + +struct ILL_Electronic_Delivery_Service_0 { + Odr_oid *e_delivery_mode; + Odr_any *e_delivery_parameters; +}; + +struct ILL_Electronic_Delivery_Service_1 { + Odr_oid *document_type_id; + Odr_any *document_type_parameters; +}; + +struct ILL_Electronic_Delivery_Service { + ILL_Electronic_Delivery_Service_0 *e_delivery_service; /* OPT */ + ILL_Electronic_Delivery_Service_1 *document_type; /* OPT */ + ILL_String *e_delivery_description; /* OPT */ + int which; + union { + ILL_System_Address *e_delivery_address; + ILL_System_Id *e_delivery_id; +#define ILL_Electronic_Delivery_Service_e_delivery_address 1 +#define ILL_Electronic_Delivery_Service_e_delivery_id 2 + } u; + ILL_String *name_or_code; /* OPT */ + ILL_ISO_Time *delivery_time; /* OPT */ +}; + +struct ILL_Error_Report { + ILL_String *correlation_information; + ILL_Report_Source *report_source; + ILL_User_Error_Report *user_error_report; /* OPT */ + ILL_Provider_Error_Report *provider_error_report; /* OPT */ +}; + +struct ILL_Estimate_Results { + ILL_String *cost_estimate; + int num_locations; + ILL_Location_Info **locations; /* OPT */ +}; + +struct ILL_Extension { + int *identifier; + bool_t *critical; + Odr_any *item; +}; + +#define ILL_General_Problem_unrecognized_APDU 1 +#define ILL_General_Problem_mistyped_APDU 2 +#define ILL_General_Problem_badly_structured_APDU 3 +#define ILL_General_Problem_protocol_version_not_supported 4 +#define ILL_General_Problem_other 5 + +struct ILL_History_Report { + ILL_ISO_Date *date_requested; /* OPT */ + ILL_String *author; /* OPT */ + ILL_String *title; /* OPT */ + ILL_String *author_of_article; /* OPT */ + ILL_String *title_of_article; /* OPT */ + ILL_ISO_Date *date_of_last_transition; +#define ILL_History_Report_iLL_REQUEST 1 +#define ILL_History_Report_fORWARD 21 +#define ILL_History_Report_fORWARD_NOTIFICATION 2 +#define ILL_History_Report_sHIPPED 3 +#define ILL_History_Report_iLL_ANSWER 4 +#define ILL_History_Report_cONDITIONAL_REPLY 5 +#define ILL_History_Report_cANCEL 6 +#define ILL_History_Report_cANCEL_REPLY 7 +#define ILL_History_Report_rECEIVED 8 +#define ILL_History_Report_rECALL 9 +#define ILL_History_Report_rETURNED 10 +#define ILL_History_Report_cHECKED_IN 11 +#define ILL_History_Report_rENEW_ANSWER 14 +#define ILL_History_Report_lOST 15 +#define ILL_History_Report_dAMAGED 16 +#define ILL_History_Report_mESSAGE 17 +#define ILL_History_Report_sTATUS_QUERY 18 +#define ILL_History_Report_sTATUS_OR_ERROR_REPORT 19 +#define ILL_History_Report_eXPIRED 20 + int *most_recent_service; + ILL_ISO_Date *date_of_most_recent_service; + ILL_System_Id *initiator_of_most_recent_service; + ILL_Shipped_Service_Type *shipped_service_type; /* OPT */ + ILL_Transaction_Results *transaction_results; /* OPT */ + ILL_String *most_recent_service_note; /* OPT */ +}; + +struct ILL_Hold_Placed_Results { + ILL_ISO_Date *estimated_date_available; + ILL_Medium_Type *hold_placed_medium_type; /* OPT */ + int num_locations; + ILL_Location_Info **locations; /* OPT */ +}; + +#define ILL_APDU_Type_iLL_REQUEST 1 +#define ILL_APDU_Type_fORWARD_NOTIFICATION 2 +#define ILL_APDU_Type_sHIPPED 3 +#define ILL_APDU_Type_iLL_ANSWER 4 +#define ILL_APDU_Type_cONDITIONAL_REPLY 5 +#define ILL_APDU_Type_cANCEL 6 +#define ILL_APDU_Type_cANCEL_REPLY 7 +#define ILL_APDU_Type_rECEIVED 8 +#define ILL_APDU_Type_rECALL 9 +#define ILL_APDU_Type_rETURNED 10 +#define ILL_APDU_Type_cHECKED_IN 11 +#define ILL_APDU_Type_oVERDUE 12 +#define ILL_APDU_Type_rENEW 13 +#define ILL_APDU_Type_rENEW_ANSWER 14 +#define ILL_APDU_Type_lOST 15 +#define ILL_APDU_Type_dAMAGED 16 +#define ILL_APDU_Type_mESSAGE 17 +#define ILL_APDU_Type_sTATUS_QUERY 18 +#define ILL_APDU_Type_sTATUS_OR_ERROR_REPORT 19 +#define ILL_APDU_Type_eXPIRED 20 + +#define ILL_Service_Type_loan 1 +#define ILL_Service_Type_copy_non_returnable 2 +#define ILL_Service_Type_locations 3 +#define ILL_Service_Type_estimate 4 +#define ILL_Service_Type_responder_specific 5 + +struct ILL_String { + int which; + union { + char *GeneralString; + ILL_EDIFACTString *EDIFACTString; +#define ILL_String_GeneralString 1 +#define ILL_String_EDIFACTString 2 + } u; +}; + +#define ILL_Intermediary_Problem_cannot_send_onward 1 + + + + + +struct ILL_Item_Id { +#define ILL_Item_Id_monograph 1 +#define ILL_Item_Id_serial 2 +#define ILL_Item_Id_other 3 + int *item_type; /* OPT */ + ILL_Medium_Type *held_medium_type; /* OPT */ + ILL_String *call_number; /* OPT */ + ILL_String *author; /* OPT */ + ILL_String *title; /* OPT */ + ILL_String *sub_title; /* OPT */ + ILL_String *sponsoring_body; /* OPT */ + ILL_String *place_of_publication; /* OPT */ + ILL_String *publisher; /* OPT */ + ILL_String *series_title_number; /* OPT */ + ILL_String *volume_issue; /* OPT */ + ILL_String *edition; /* OPT */ + ILL_String *publication_date; /* OPT */ + ILL_String *publication_date_of_component; /* OPT */ + ILL_String *author_of_article; /* OPT */ + ILL_String *title_of_article; /* OPT */ + ILL_String *pagination; /* OPT */ + Odr_external *national_bibliography_no; /* OPT */ + ILL_String *iSBN; /* OPT */ + ILL_String *iSSN; /* OPT */ + Odr_external *system_no; /* OPT */ + ILL_String *additional_no_letters; /* OPT */ + ILL_String *verification_reference_source; /* OPT */ +}; + +struct ILL_Location_Info { + ILL_System_Id *location_id; + ILL_System_Address *location_address; /* OPT */ + ILL_String *location_note; /* OPT */ +}; + +struct ILL_Locations_Results { + ILL_Reason_Locs_Provided *reason_locs_provided; /* OPT */ + int num_locations; + ILL_Location_Info **locations; +}; + +#define ILL_Medium_Type_printed 1 +#define ILL_Medium_Type_microform 3 +#define ILL_Medium_Type_film_or_video_recording 4 +#define ILL_Medium_Type_audio_recording 5 +#define ILL_Medium_Type_machine_readable 6 +#define ILL_Medium_Type_other 7 + +struct ILL_Name_Of_Person_Or_Institution { + int which; + union { + ILL_String *name_of_person; + ILL_String *name_of_institution; +#define ILL_Name_Of_Person_Or_Institution_name_of_person 1 +#define ILL_Name_Of_Person_Or_Institution_name_of_institution 2 + } u; +}; + +struct ILL_Person_Or_Institution_Symbol { + int which; + union { + ILL_String *person_symbol; + ILL_String *institution_symbol; +#define ILL_Person_Or_Institution_Symbol_person_symbol 1 +#define ILL_Person_Or_Institution_Symbol_institution_symbol 2 + } u; +}; + +#define ILL_Place_On_Hold_Type_yes 1 +#define ILL_Place_On_Hold_Type_no 2 +#define ILL_Place_On_Hold_Type_according_to_responder_policy 3 + +struct ILL_Postal_Address { + ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */ + ILL_String *extended_postal_delivery_address; /* OPT */ + ILL_String *street_and_number; /* OPT */ + ILL_String *post_office_box; /* OPT */ + ILL_String *city; /* OPT */ + ILL_String *region; /* OPT */ + ILL_String *country; /* OPT */ + ILL_String *postal_code; /* OPT */ +}; + +struct ILL_Provider_Error_Report { + int which; + union { + ILL_General_Problem *general_problem; + ILL_Transaction_Id_Problem *transaction_id_problem; + ILL_State_Transition_Prohibited *state_transition_prohibited; +#define ILL_Provider_Error_Report_general_problem 1 +#define ILL_Provider_Error_Report_transaction_id_problem 2 +#define ILL_Provider_Error_Report_state_transition_prohibited 3 + } u; +}; + +#define ILL_Reason_Locs_Provided_in_use_on_loan 1 +#define ILL_Reason_Locs_Provided_in_process 2 +#define ILL_Reason_Locs_Provided_lost 3 +#define ILL_Reason_Locs_Provided_non_circulating 4 +#define ILL_Reason_Locs_Provided_not_owned 5 +#define ILL_Reason_Locs_Provided_on_order 6 +#define ILL_Reason_Locs_Provided_volume_issue_not_yet_available 7 +#define ILL_Reason_Locs_Provided_at_bindery 8 +#define ILL_Reason_Locs_Provided_lacking 9 +#define ILL_Reason_Locs_Provided_not_on_shelf 10 +#define ILL_Reason_Locs_Provided_on_reserve 11 +#define ILL_Reason_Locs_Provided_poor_condition 12 +#define ILL_Reason_Locs_Provided_cost_exceeds_limit 13 +#define ILL_Reason_Locs_Provided_on_hold 19 +#define ILL_Reason_Locs_Provided_other 27 +#define ILL_Reason_Locs_Provided_responder_specific 28 + +#define ILL_Reason_No_Report_temporary 1 +#define ILL_Reason_No_Report_permanent 2 + +#define ILL_Reason_Unfilled_in_use_on_loan 1 +#define ILL_Reason_Unfilled_in_process 2 +#define ILL_Reason_Unfilled_lost 3 +#define ILL_Reason_Unfilled_non_circulating 4 +#define ILL_Reason_Unfilled_not_owned 5 +#define ILL_Reason_Unfilled_on_order 6 +#define ILL_Reason_Unfilled_volume_issue_not_yet_available 7 +#define ILL_Reason_Unfilled_at_bindery 8 +#define ILL_Reason_Unfilled_lacking 9 +#define ILL_Reason_Unfilled_not_on_shelf 10 +#define ILL_Reason_Unfilled_on_reserve 11 +#define ILL_Reason_Unfilled_poor_condition 12 +#define ILL_Reason_Unfilled_cost_exceeds_limit 13 +#define ILL_Reason_Unfilled_charges 14 +#define ILL_Reason_Unfilled_prepayment_required 15 +#define ILL_Reason_Unfilled_lacks_copyright_compliance 16 +#define ILL_Reason_Unfilled_not_found_as_cited 17 +#define ILL_Reason_Unfilled_locations_not_found 18 +#define ILL_Reason_Unfilled_on_hold 19 +#define ILL_Reason_Unfilled_policy_problem 20 +#define ILL_Reason_Unfilled_mandatory_messaging_not_supported 21 +#define ILL_Reason_Unfilled_expiry_not_supported 22 +#define ILL_Reason_Unfilled_requested_delivery_services_not_supported 23 +#define ILL_Reason_Unfilled_preferred_delivery_time_not_possible 24 +#define ILL_Reason_Unfilled_other 27 +#define ILL_Reason_Unfilled_responder_specific 28 + +#define ILL_Report_Source_user 1 +#define ILL_Report_Source_provider 2 + +struct ILL_Requester_Optional_Messages_Type { + bool_t *can_send_RECEIVED; + bool_t *can_send_RETURNED; +#define ILL_Requester_Optional_Messages_Type_requires 1 +#define ILL_Requester_Optional_Messages_Type_desires 2 +#define ILL_Requester_Optional_Messages_Type_neither 3 + int *requester_SHIPPED; +#define ILL_Requester_Optional_Messages_Type_requires 1 +#define ILL_Requester_Optional_Messages_Type_desires 2 +#define ILL_Requester_Optional_Messages_Type_neither 3 + int *requester_CHECKED_IN; +}; + +struct ILL_Responder_Optional_Messages_Type { + bool_t *can_send_SHIPPED; + bool_t *can_send_CHECKED_IN; +#define ILL_Responder_Optional_Messages_Type_requires 1 +#define ILL_Responder_Optional_Messages_Type_desires 2 +#define ILL_Responder_Optional_Messages_Type_neither 3 + int *responder_RECEIVED; +#define ILL_Responder_Optional_Messages_Type_requires 1 +#define ILL_Responder_Optional_Messages_Type_desires 2 +#define ILL_Responder_Optional_Messages_Type_neither 3 + int *responder_RETURNED; +}; + +struct ILL_Retry_Results { +#define ILL_Retry_Results_in_use_on_loan 1 +#define ILL_Retry_Results_in_process 2 +#define ILL_Retry_Results_on_order 6 +#define ILL_Retry_Results_volume_issue_not_yet_available 7 +#define ILL_Retry_Results_at_bindery 8 +#define ILL_Retry_Results_cost_exceeds_limit 13 +#define ILL_Retry_Results_charges 14 +#define ILL_Retry_Results_prepayment_required 15 +#define ILL_Retry_Results_lacks_copyright_compliance 16 +#define ILL_Retry_Results_not_found_as_cited 17 +#define ILL_Retry_Results_on_hold 19 +#define ILL_Retry_Results_other 27 +#define ILL_Retry_Results_responder_specific 28 + int *reason_not_available; /* OPT */ + ILL_ISO_Date *retry_date; /* OPT */ + int num_locations; + ILL_Location_Info **locations; /* OPT */ +}; + +struct ILL_Search_Type { + ILL_String *level_of_service; /* OPT */ + ILL_ISO_Date *need_before_date; /* OPT */ +#define ILL_Search_Type_need_Before_Date 1 +#define ILL_Search_Type_other_Date 2 +#define ILL_Search_Type_no_Expiry 3 + int *expiry_flag; + ILL_ISO_Date *expiry_date; /* OPT */ +}; + + + +struct ILL_Send_To_List_Type_s { + ILL_System_Id *system_id; + ILL_Account_Number *account_number; /* OPT */ + ILL_System_Address *system_address; /* OPT */ +}; + +struct ILL_Send_To_List_Type { + int num; + ILL_Send_To_List_Type_s **elements; +}; + +struct ILL_Service_Date_this { + ILL_ISO_Date *date; + ILL_ISO_Time *time; /* OPT */ +}; + +struct ILL_Service_Date_original { + ILL_ISO_Date *date; + ILL_ISO_Time *time; /* OPT */ +}; + +struct ILL_Service_Date_Time { + ILL_Service_Date_this *date_time_of_this_service; + ILL_Service_Date_original *date_time_of_original_service; /* OPT */ +}; + + + +struct ILL_State_Transition_Prohibited { + ILL_APDU_Type *aPDU_type; + ILL_Current_State *current_state; +}; + +struct ILL_Status_Report { + ILL_History_Report *user_status_report; + ILL_Current_State *provider_status_report; +}; + +struct ILL_Supplemental_Item_Description { + int num; + Odr_external **elements; +}; + +struct ILL_Supply_Details { + ILL_ISO_Date *date_shipped; /* OPT */ + ILL_Date_Due *date_due; /* OPT */ + int *chargeable_units; /* OPT */ + ILL_Amount *cost; /* OPT */ +#define ILL_Supply_Details_library_use_only 22 +#define ILL_Supply_Details_no_reproduction 23 +#define ILL_Supply_Details_client_signature_required 24 +#define ILL_Supply_Details_special_collections_supervision_required 25 +#define ILL_Supply_Details_other 27 + int *shipped_conditions; /* OPT */ + int which; + union { + ILL_Transportation_Mode *physical_delivery; + ILL_Electronic_Delivery_Service *electronic_delivery; +#define ILL_Supply_Details_physical_delivery 1 +#define ILL_Supply_Details_electronic_delivery 2 + } u; /* OPT */ + ILL_Amount *insured_for; /* OPT */ + ILL_Amount *return_insurance_require; /* OPT */ + int num_no_of_units_per_medium; + ILL_Units_Per_Medium_Type **no_of_units_per_medium; /* OPT */ +}; + +struct ILL_Supply_Medium_Info_Type { + ILL_Supply_Medium_Type *supply_medium_type; + ILL_String *medium_characteristics; /* OPT */ +}; + +#define ILL_Supply_Medium_Type_printed 1 +#define ILL_Supply_Medium_Type_photocopy 2 +#define ILL_Supply_Medium_Type_microform 3 +#define ILL_Supply_Medium_Type_film_or_video_recording 4 +#define ILL_Supply_Medium_Type_audio_recording 5 +#define ILL_Supply_Medium_Type_machine_readable 6 +#define ILL_Supply_Medium_Type_other 7 + +struct ILL_System_Address { + ILL_String *telecom_service_identifier; /* OPT */ + ILL_String *telecom_service_address; /* OPT */ +}; + +struct ILL_System_Id { + ILL_Person_Or_Institution_Symbol *person_or_institution_symbol; /* OPT */ + ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */ +}; + +struct ILL_Third_Party_Info_Type { + bool_t *permission_to_forward; + bool_t *permission_to_chain; + bool_t *permission_to_partition; + bool_t *permission_to_change_send_to_list; + ILL_System_Address *initial_requester_address; /* OPT */ +#define ILL_Third_Party_Info_Type_ordered 1 +#define ILL_Third_Party_Info_Type_unordered 2 + int *preference; + ILL_Send_To_List_Type *send_to_list; /* OPT */ + ILL_Already_Tried_List_Type *already_tried_list; /* OPT */ +}; + +struct ILL_Transaction_Id { + ILL_System_Id *initial_requester_id; /* OPT */ + ILL_String *transaction_group_qualifier; + ILL_String *transaction_qualifier; + ILL_String *sub_transaction_qualifier; /* OPT */ +}; + +#define ILL_Transaction_Id_Problem_duplicate_transaction_id 1 +#define ILL_Transaction_Id_Problem_invalid_transaction_id 2 +#define ILL_Transaction_Id_Problem_unknown_transaction_id 3 + +#define ILL_Transaction_Results_conditional 1 +#define ILL_Transaction_Results_retry 2 +#define ILL_Transaction_Results_unfilled 3 +#define ILL_Transaction_Results_locations_provided 4 +#define ILL_Transaction_Results_will_supply 5 +#define ILL_Transaction_Results_hold_placed 6 +#define ILL_Transaction_Results_estimate 7 + +#define ILL_Transaction_Type_simple 1 +#define ILL_Transaction_Type_chained 2 +#define ILL_Transaction_Type_partitioned 3 + + + +#define ILL_Unable_To_Perform_not_available 1 +#define ILL_Unable_To_Perform_resource_limitation 2 +#define ILL_Unable_To_Perform_other 3 + +struct ILL_Unfilled_Results { + ILL_Reason_Unfilled *reason_unfilled; + int num_locations; + ILL_Location_Info **locations; /* OPT */ +}; + +struct ILL_Units_Per_Medium_Type { + ILL_Supply_Medium_Type *medium; + int *no_of_units; +}; + +struct ILL_User_Error_Report { + int which; + union { + ILL_Already_Forwarded *already_forwarded; + ILL_Intermediary_Problem *intermediary_problem; + ILL_Security_Problem *security_problem; + ILL_Unable_To_Perform *unable_to_perform; +#define ILL_User_Error_Report_already_forwarded 1 +#define ILL_User_Error_Report_intermediary_problem 2 +#define ILL_User_Error_Report_security_problem 3 +#define ILL_User_Error_Report_unable_to_perform 4 + } u; +}; + +struct ILL_Will_Supply_Results { +#define ILL_Will_Supply_Results_in_use_on_loan 1 +#define ILL_Will_Supply_Results_in_process 2 +#define ILL_Will_Supply_Results_on_order 6 +#define ILL_Will_Supply_Results_at_bindery 8 +#define ILL_Will_Supply_Results_on_hold 19 +#define ILL_Will_Supply_Results_being_processed_for_supply 26 +#define ILL_Will_Supply_Results_other 27 +#define ILL_Will_Supply_Results_responder_specific 28 +#define ILL_Will_Supply_Results_electronic_delivery 30 + int *reason_will_supply; + ILL_ISO_Date *supply_date; /* OPT */ + ILL_Postal_Address *return_to_address; /* OPT */ + int num_locations; + ILL_Location_Info **locations; /* OPT */ + ILL_Electronic_Delivery_Service *electronic_delivery_service; /* OPT */ +}; + + + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/ill.h b/dependencies/yaz-2.1.28/include/yaz/ill.h new file mode 100644 index 0000000..700b831 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/ill.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ill.h,v 1.9 2006/04/20 20:50:51 adam Exp $ + */ + +/** + * \file ill.h + * \brief ILL Package utilities + */ + +#ifndef ILL_H +#define ILL_H + +#include +#include + +YAZ_BEGIN_CDECL + +struct ill_get_ctl { + ODR odr; + void *clientData; + const char *(*f)(void *clientData, const char *element); +}; + +YAZ_EXPORT ILL_ItemRequest *ill_get_ItemRequest ( + struct ill_get_ctl *gs, const char *name, const char *sub); + +YAZ_EXPORT ILL_Request *ill_get_ILLRequest ( + struct ill_get_ctl *gs, const char *name, const char *sub); + +YAZ_EXPORT ILL_Cancel *ill_get_Cancel ( + struct ill_get_ctl *gc, const char *name, const char *sub); + +YAZ_EXPORT ILL_APDU *ill_get_APDU ( + struct ill_get_ctl *gc, const char *name, const char *sub); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/item-req.h b/dependencies/yaz-2.1.28/include/yaz/item-req.h new file mode 100644 index 0000000..5e0352e --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/item-req.h @@ -0,0 +1,61 @@ +/** \file item-req.h + \brief ASN.1 Module Z39.50-extendedService-ItemOrder-ItemRequest-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef item_req_H +#define item_req_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ILL_ItemRequest ILL_ItemRequest; +YAZ_EXPORT int ill_ItemRequest (ODR o, ILL_ItemRequest **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct ILL_ItemRequest { +#define ILL_ItemRequest_version_1 1 +#define ILL_ItemRequest_version_2 2 + int *protocol_version_num; + ILL_Transaction_Id *transaction_id; /* OPT */ + ILL_Service_Date_Time *service_date_time; /* OPT */ + ILL_System_Id *requester_id; /* OPT */ + ILL_System_Id *responder_id; /* OPT */ + ILL_Transaction_Type *transaction_type; + ILL_Delivery_Address *delivery_address; /* OPT */ + ILL_Delivery_Service *delivery_service; /* OPT */ + ILL_Delivery_Address *billing_address; /* OPT */ + int num_iLL_service_type; + ILL_Service_Type **iLL_service_type; /* OPT */ + Odr_external *responder_specific_service; /* OPT */ + ILL_Requester_Optional_Messages_Type *requester_optional_messages; /* OPT */ + ILL_Search_Type *search_type; /* OPT */ + int num_supply_medium_info_type; + ILL_Supply_Medium_Info_Type **supply_medium_info_type; /* OPT */ + ILL_Place_On_Hold_Type *place_on_hold; + ILL_Client_Id *client_id; /* OPT */ + ILL_Item_Id *item_id; /* OPT */ + ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ + ILL_Cost_Info_Type *cost_info_type; /* OPT */ + ILL_String *copyright_compliance; /* OPT */ + ILL_Third_Party_Info_Type *third_party_info_type; /* OPT */ + bool_t *retry_flag; + bool_t *forward_flag; + ILL_String *requester_note; /* OPT */ + ILL_String *forward_note; /* OPT */ + int num_iLL_request_extensions; + ILL_Extension **iLL_request_extensions; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/libxml2_error.h b/dependencies/yaz-2.1.28/include/yaz/libxml2_error.h new file mode 100644 index 0000000..1811f2a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/libxml2_error.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: libxml2_error.h,v 1.1 2006/05/07 17:45:41 adam Exp $ + */ + +/** + * \file libxml2_error.h + * \brief Libxml2 error handler + */ + +#ifndef YAZ_LIBXML2_ERROR_H +#define YAZ_LIBXML2_ERROR_H + +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief direct Libxml2/Libxslt errors to yaz_log + \param level yaz_log level to use + \param lead_msg leading message (or NULL if none) + \retval 0 successful; libxml2 is present + \retval -1 failure; libxml2 is not present +*/ +YAZ_EXPORT +int libxml2_error_to_yazlog(int level, const char *lead_msg); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/log.h b/dependencies/yaz-2.1.28/include/yaz/log.h new file mode 100644 index 0000000..6b45450 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/log.h @@ -0,0 +1,254 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: log.h,v 1.38 2006/07/06 13:10:29 heikki Exp $ + */ + +/** + * \file log.h + * \brief Logging utility + */ + +#ifndef YAZ_LOG_H +#define YAZ_LOG_H + +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief log level: fatal */ +#define YLOG_FATAL 0x00000001 +/** \brief log level: debugging */ +#define YLOG_DEBUG 0x00000002 +/** \brief log level: warning */ +#define YLOG_WARN 0x00000004 +/** \brief log level: log (regular) */ +#define YLOG_LOG 0x00000008 +/** \brief log level: append system error message */ +#define YLOG_ERRNO 0x00000010 +/** \brief log level: application */ +#define YLOG_APP 0x00000040 +/** \brief log level: malloc debug */ +#define YLOG_MALLOC 0x00000080 +/** \brief log level: do not output date and time */ +#define YLOG_NOTIME 0x00000100 +/** \brief log level: application 2 */ +#define YLOG_APP2 0x00000200 +/** \brief log level: application 3 */ +#define YLOG_APP3 0x00000400 +/** \brief log level: flush */ +#define YLOG_FLUSH 0x00000800 +/** \brief dynamic log level start */ +#define YLOG_LOGLVL 0x00001000 /* log when modules query log levels */ + /* this has to be a hard-coded bit, not to loop*/ + +#define YLOG_ALL (0xffff&~YLOG_MALLOC&~YLOG_NOTIME) + +/** \brief default log level */ +#define YLOG_DEFAULT_LEVEL \ + (YLOG_FATAL | YLOG_ERRNO | YLOG_LOG | YLOG_WARN | YLOG_FLUSH) +/* not having flush here confuses Solaris users, who won't see any logs until + * (and if) the program exits normally */ + +/** \brief last bit for regular log bits . Rest are dynamic */ +#define YLOG_LAST_BIT YLOG_LOGLVL + +/** \brief sets level, prefix and filename for logging + \param level log level + \param prefix log message prefix + \param fname filename +*/ +YAZ_EXPORT void yaz_log_init(int level, const char *prefix, const char *fname); + +/** \brief sets log to a file + \param fname filename +*/ +YAZ_EXPORT void yaz_log_init_file(const char *fname); + +/** \brief sets log level + \param level (combination of YLOG_..) +*/ +YAZ_EXPORT void yaz_log_init_level(int level); + +/** \brief sets log message prefix + \param prefix log message prefix +*/ +YAZ_EXPORT void yaz_log_init_prefix(const char *prefix); + +/** \brief sets second log message prefix + \param prefix log message prefix +*/ +YAZ_EXPORT void yaz_log_init_prefix2(const char *prefix); + +/** \brief sets time format for log mesages + \param fmt format (strftime) + + Sets the format of the timestamp. See man 3 strftime. + Calling with "old" sets to the old format "11:55:06-02/11" + Calling with NULL or "" sets to the new format "20041102-115719" + If not called at all, the old format is used, for backward compatibility +*/ +YAZ_EXPORT void yaz_log_time_format(const char *fmt); + +/** \brief sets limit in bytes for size for log file + \param mx size in bytes + + Sets the max size for a log file. Zero means no limit. + Negative means built-in limit (1GB) +*/ +YAZ_EXPORT void yaz_log_init_max_size(int mx); + +/** \brief Writes log message + \param level log level mask + \param fmt format string ala printf + + Writes an entry in the log. Defaults to stderr if not initialized or + to a file with yaz_log_init_file(). The level must match the level set + via yaz_log_init_level(), optionally defined via yaz_log_mask_str(). +*/ +YAZ_EXPORT void yaz_log(int level, const char *fmt, ...) +#ifdef __GNUC__ + __attribute__ ((format (printf, 2, 3))) +#endif + ; + +/** \brief converts log level string to log level (integer) + \param str log level string + \return log level mask + + yaz_log_mask_str() converts a comma-separated list of log levels to a + bit mask. Starts from default level, and adds bits as specified, + unless 'none' is specified, which clears the list. If a name matches + the name of a YLOG_BIT above, that one is set. Otherwise a new value is + picked, and given to that name, to be found with yaz_log_module_level() +*/ +YAZ_EXPORT int yaz_log_mask_str(const char *str); + +/** \brief converts log level string to log level with "start" level + \param str log level string + \param level initialing log level + \return log level mask + + yaz_log_mask_str_x() is like yaz_log_mask_str(), but with a given start + value +*/ +YAZ_EXPORT int yaz_log_mask_str_x(const char *str, int level); + + +/** \brief returns level for module + \param name module name + + yaz_log_module_level() returns a log level mask corresponding to the + module name. If that had been specified on the -v arguments (that is + passed to yaz_log_mask_str()), then a non-zero mask is returned. If + not, we get a zero. This can later be used in yaz_log for the level + argument + */ +YAZ_EXPORT int yaz_log_module_level(const char *name); + +/** \brief returns FILE handle for log or NULL if no file is in use + \retval FILE FILE handle in use + \retval NULL log is currently not written to a file +*/ +YAZ_EXPORT FILE *yaz_log_file(void); + +/** \brief sets custom log handler + \param func custom log handler + \param info custom pointer to be passed to func handler + + Allows log output to be captured to something else.. The + func parameter takes a log level, a message + custom pointer +*/ +YAZ_EXPORT void yaz_log_set_handler(void (*func)(int, const char *, + void *), void *info); + +YAZ_EXPORT void yaz_log_reopen(void); + +/** \brief Truncate the log file */ +YAZ_EXPORT void yaz_log_trunc(void); + +YAZ_EXPORT void log_event_start(void (*func)(int level, const char *msg, + void *info), void *info); + +YAZ_EXPORT void log_event_end(void (*func)(int level, const char *msg, + void *info), void *info); + +#if YAZ_USE_NEW_LOG + +#else + +#include + +/** The old LOG_ bit names are here for compatibility only. They may + conflict with bits defined in syslog.h, or other places. 'LOG' + really is not such a good name. YLOG must be more unique +*/ + +/** \brief old log level */ +#define LOG_FATAL YLOG_FATAL +/** \brief old log level */ +#define LOG_DEBUG YLOG_DEBUG +/** \brief old log level */ +#define LOG_WARN YLOG_WARN +/** \brief old log level */ +#define LOG_LOG YLOG_LOG +/** \brief old log level */ +#define LOG_ERRNO YLOG_ERRNO +/** \brief old log level */ +#define LOG_FILE 0x00000020 +/** \brief old log level */ +#define LOG_APP YLOG_APP +/** \brief old log level */ +#define LOG_MALLOC YLOG_MALLOC +/** \brief old log level */ +#define LOG_NOTIME YLOG_NOTIME +/** \brief old log level */ +#define LOG_APP2 YLOG_APP2 +/** \brief old log level */ +#define LOG_APP3 YLOG_APP3 +/** \brief old log level */ +#define LOG_FLUSH YLOG_FLUSH +/** \brief old log level */ +#define LOG_ALL YLOG_ALL +/** \brief old log level */ +#define LOG_DEFAULT_LEVEL YLOG_DEFAULT_LEVEL + +/** \brief logf is deprecated, as it conflicts with a math function */ +#define logf yaz_log + +#endif /* if YAZ_USE_NEW_LOG */ + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/logrpn.h b/dependencies/yaz-2.1.28/include/yaz/logrpn.h new file mode 100644 index 0000000..fdd4687 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/logrpn.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: logrpn.h,v 1.10 2006/01/20 11:01:46 adam Exp $ + */ + +/** + * \file logrpn.h + * \brief Header for Z39.50 Query Printing + */ + +#ifndef YAZ_LOGRPN_H +#define YAZ_LOGRPN_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT void log_rpn_query(Z_RPNQuery *rpn); +YAZ_EXPORT void log_rpn_query_level(int loglevel, Z_RPNQuery *rpn); + +YAZ_EXPORT void log_scan_term(Z_AttributesPlusTerm *zapt, oid_value ast); +YAZ_EXPORT void log_scan_term_level(int loglevel, + Z_AttributesPlusTerm *zapt, oid_value ast); + +YAZ_EXPORT void yaz_log_zquery(Z_Query *q); +YAZ_EXPORT void yaz_log_zquery_level(int loglevel, Z_Query *q); + +YAZ_EXPORT void wrbuf_diags(WRBUF b, int num_diagnostics,Z_DiagRec **diags); +YAZ_EXPORT void wrbuf_put_zquery(WRBUF b, const Z_Query *q); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/marcdisp.h b/dependencies/yaz-2.1.28/include/yaz/marcdisp.h new file mode 100644 index 0000000..f098d3b --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/marcdisp.h @@ -0,0 +1,221 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: marcdisp.h,v 1.18 2006/08/28 14:18:20 adam Exp $ + */ + +/** + * \file marcdisp.h + * \brief MARC conversion + */ + +#ifndef MARCDISP_H +#define MARCDISP_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief a yaz_marc_t handle (private content) */ +typedef struct yaz_marc_t_ *yaz_marc_t; + +/** \brief construct yaz_marc_t handle */ +YAZ_EXPORT yaz_marc_t yaz_marc_create(void); + +/** \brief destroy yaz_marc_t handle */ +YAZ_EXPORT void yaz_marc_destroy(yaz_marc_t mt); + +/** \brief set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */ +YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode); + +/** \brief Output format: Line-format */ +#define YAZ_MARC_LINE 0 +/** \brief Output format: simplexml (no longer supported) */ +#define YAZ_MARC_SIMPLEXML 1 +/** \brief Output format: OAI-MARC (no longer supported) */ +#define YAZ_MARC_OAIMARC 2 +/** \brief Output format: MARCXML */ +#define YAZ_MARC_MARCXML 3 +/** \brief Output format: ISO2709 */ +#define YAZ_MARC_ISO2709 4 +/** \brief Output format: MarcXchange */ +#define YAZ_MARC_XCHANGE 5 + +/** \brief supply iconv handle for character set conversion .. */ +YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd); + +/** \brief set debug level + \param mt handle + \param level level, where 0=lowest, 1 more debug, 2 even more +*/ +YAZ_EXPORT void yaz_marc_debug(yaz_marc_t mt, int level); + +/** \brief decodes ISO2709 buffer using straight buffers + \param mt marc handle + \param buf input buffer + \param bsize size of buffer or (-1 if "any size") + \param result result to be stored here (allocate before use!) + \param rsize size of result (set before calling) + + Decodes MARC in buf of size bsize. + On success, result in *result with size *rsize. + Returns -1 on error, or size of input record (>0) if OK +*/ +YAZ_EXPORT int yaz_marc_decode_buf(yaz_marc_t mt, const char *buf, int bsize, + char **result, int *rsize); + +/** \brief decodes ISO2709/MARC buffer and stores result in WRBUF + \param mt handle + \param buf input buffer + \param bsize size of buffer (-1 if "any size") + \param wrbuf WRBUF for output + + Decodes MARC in buf of size bsize. + On success, result in wrbuf + Returns -1 on error, or size of input record (>0) if OK +*/ +YAZ_EXPORT int yaz_marc_decode_wrbuf(yaz_marc_t mt, const char *buf, + int bsize, WRBUF wrbuf); + +/** \brief depricated */ +YAZ_EXPORT int marc_display(const char *buf, FILE *outf); +/** \brief depricated */ +YAZ_EXPORT int marc_display_ex(const char *buf, FILE *outf, int debug); +/** \brief depricated */ +YAZ_EXPORT int marc_display_exl(const char *buf, FILE *outf, int debug, + int length); +/** \brief depricated */ +YAZ_EXPORT int marc_display_wrbuf(const char *buf, WRBUF wr, int debug, + int bsize); +/** \brief depricated */ +YAZ_EXPORT int yaz_marc_decode(const char *buf, WRBUF wr, + int debug, int bsize, int xml); + +YAZ_EXPORT void yaz_marc_subfield_str(yaz_marc_t mt, const char *s); +YAZ_EXPORT void yaz_marc_endline_str(yaz_marc_t mt, const char *s); + +/** \brief modifies part of the MARC leader */ +YAZ_EXPORT void yaz_marc_modify_leader(yaz_marc_t mt, size_t off, + const char *str); + +/** \brief like atoi(3) except that it reads exactly len characters */ +YAZ_EXPORT int atoi_n(const char *buf, int len); + +/** \brief MARC control char: record separator (29 Dec, 1D Hex) */ +#define ISO2709_RS 035 +/** \brief MARC control char: field separator (30 Dec, 1E Hex) */ +#define ISO2709_FS 036 +/** \brief MARC control char: identifier-field separator (31 Dec, 1F Hex) */ +#define ISO2709_IDFS 037 + +/** \brief read ISO2709/MARC record from buffer + \param mt handle + \param buf ISO2709 buffer of size bsize + \param bsize size of buffer (-1 for unlimited size) + + Parses ISO2709 record from supplied buffer + Returns > 0 for OK (same as length), -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_read_iso2709(yaz_marc_t mt, + const char *buf, int bsize); + +/** \brief parses MARCXML/MarcXchange record from xmlNode pointer + \param mt handle + \param xmlnode is a pointer to root xmlNode pointer + + Returns 0=OK, -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_read_xml(yaz_marc_t mt, const void *xmlnode); + +/** \brief writes record in line format + \param mt handle + \param wrbuf WRBUF for output + + Returns 0=OK, -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_write_line(yaz_marc_t mt, WRBUF wrbuf); + +/** \brief writes record in MARCXML format + \param mt handle + \param wrbuf WRBUF for output + + Sets leader[9]='a' . Returns 0=OK, -1=ERROR . +*/ + +YAZ_EXPORT int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wrbuf); + +/** \brief writes record in MarcXchange XML + \param mt handle + \param wrbuf WRBUF for output + \param format record format (e.g. "MARC21") + \param type record type (e.g. Bibliographic) + + Returns 0=OK, -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_write_marcxchange(yaz_marc_t mt, WRBUF wrbuf, + const char *format, + const char *type); + +/** \brief writes record in ISO2709 format + \param mt handle + \param wrbuf WRBUF for output + Returns 0=OK, -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wrbuf); + +/** \brief writes record in mode - given by yaz_marc_xml mode + \param mt handle + \param wrbuf WRBUF for output + This function calls yaz_marc_write_iso2709, yaz_marc_write_marcxml, + etc.. depending on mode given by yaz_marc_xml. + Returns 0=OK, -1=ERROR +*/ +YAZ_EXPORT int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wrbuf); + +/** \brief sets leader spec (for modifying bytes in 24 byte leader) + \param mt handle + \param leader_spec + \retval 0 OK + \retval -1 ERROR + + Spec takes form pos=val,pos=val,... + where value is either a number (decimal char value) or a + string in 'a', e.g. 9='a' + +*/ +YAZ_EXPORT int yaz_marc_leader_spec(yaz_marc_t mt, const char *leader_spec); +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/nfa.h b/dependencies/yaz-2.1.28/include/yaz/nfa.h new file mode 100644 index 0000000..7f984e0 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/nfa.h @@ -0,0 +1,548 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * $Id: nfa.h,v 1.10 2006/08/11 12:43:52 adam Exp $ + */ + +/** + * \file nfa.h + * \brief NFA for character set normalizing + * + * The NFA is a character mathcing device. It consists of states + * and transitions between them. Each transition has a condition, which + * is a range of values. + * + * When matching, we always start at the first state, and find the longest + * possible sequence of input characters that match the ranges in the + * conditions, and that leads into a terminal state. + * + * Separate from this we have converters. Those can often be used + * together with a NFA (think match-pattern and replace-pattern). + * + * A converter is a routine that produces some output. It can translate a + * range of characters into another range, emit a constant string, or + * something like that. + * + */ + +#ifndef YAZ_NFA_H +#define YAZ_NFA_H + +#include +#include + +YAZ_BEGIN_CDECL + +/** \name return codes and data types*/ +/* \{ */ +/** \brief Success */ +#define YAZ_NFA_SUCCESS 0 + +/** \brief no match found */ +#define YAZ_NFA_NOMATCH 1 + +/** \brief Need more input */ +#define YAZ_NFA_OVERRUN 2 + +/** \brief The NFA is looping */ +#define YAZ_NFA_LOOP 3 + +/** \brief no room in output buffer */ +#define YAZ_NFA_NOSPACE 4 + +/** \brief tryig to set a result when one already exists*/ +#define YAZ_NFA_ALREADY 5 + +/** \brief Attempting to set an end to a backref that has not been started */ +#define YAZ_NFA_NOSTART 6 + +/** \brief Asking for a non-existing backref */ +#define YAZ_NFA_NOSUCHBACKREF 7 + +/** \brief Internal error, should never happen */ +#define YAZ_NFA_INTERNAL 8 + + +/** \brief Internal character type. 32-bit unicode! */ +typedef unsigned int yaz_nfa_char; + + +/** \brief The NFA itself + * The internals are hidden in nfa.c */ +typedef struct yaz_nfa yaz_nfa; + +/** \brief A state of the NFA */ +typedef struct yaz_nfa_state yaz_nfa_state; + +/** \brief Transition from one state to another */ +typedef struct yaz_nfa_transition yaz_nfa_transition; + +/** \brief A converter produces some output to a buffer */ +typedef struct yaz_nfa_converter yaz_nfa_converter; + +/* \} */ + +/** \name Low-level interface to building the NFA */ +/* \{ */ + +/** \brief Initialize the NFA without any states in it + * + * \return a pointer to the newly created NFA + * + * */ +yaz_nfa *yaz_nfa_init(); + +/** \brief Destroy the whole thing */ +void yaz_nfa_destroy( + yaz_nfa *n /** the nfa to destroy */ + ); + +/** \brief Add a normal state to the NFA. + * + * The first state added will become the starting point. + * Returns a pointer to it, which you can safely ignore, or use in building + * transitions. + */ +yaz_nfa_state *yaz_nfa_add_state( + yaz_nfa *n /** The NFA to add the state to */ + ); + + +/** \brief Sets the result pointer to a state + * + * \param n the NFA itself + * \param s the state to which the result will be added + * \param result the result pointer + * + * Sets the result pointer of a state. If already set, returns an error. Call + * with a NULL pointer to clear the result, before setting a new one. + * + * \retval YAZ_NFA_SUCCESS ok + * \retval YAZ_NFA_ALREADY The state already has a result! + */ +int yaz_nfa_set_result( + yaz_nfa *n, + yaz_nfa_state *s, + void *result + ); + +/** \brief Gets the result pointer from a state + * + * \retval NULL if no result set + */ +void *yaz_nfa_get_result( + yaz_nfa *n /** The NFA itself */, + yaz_nfa_state *s /** The state whose result you want */); + +/** \brief Set a backref point to a state. + * + * Each state can be the beginning and/or ending point of a backref + * sequence. This call sets one of those flags in the state. After + * matching, we can get hold of the backrefs that matched, and use + * them in our translations. The numbering of backrefs start at 1, + * not zero! + * + * \param n the nfa + * \param s the state to add to + * \param backref_number is the number of the back reference. + * \param is_start is 1 for start of the backref, 0 for end + * + * \retval YAZ_NFA_SUCCESS for OK + * \retval YAZ_NFA_ALREADY if the backref is already set + * \retval YAZ_NFA_NOSTART for ending a backref that has not been started + * + */ + +int yaz_nfa_set_backref_point(yaz_nfa *n, yaz_nfa_state *s, + int backref_number, + int is_start ); + +/** \brief Get the backref point of a state + * + * \param n the nfa + * \param s the state to add to + * \param is_start is 1 for start of the backref, 0 for end + * \return the backref number associated with the state, or 0 if none. + */ + +int yaz_nfa_get_backref_point(yaz_nfa *n, yaz_nfa_state *s, + int is_start ); + +/** \brief Add a transition to the NFA. + * + * Add a transition between two existing states. The condition + * is (as always) a range of yaz_nfa_chars. + * \param n the nfa + * \param from_state which state the transition is from. null=initial + * \param to_state where the transition goes to + * \param range_start is the beginning of the range of values + * \param range_end is the end of the range of values + **/ +void yaz_nfa_add_transition(yaz_nfa *n, + yaz_nfa_state *from_state, + yaz_nfa_state *to_state, + yaz_nfa_char range_start, + yaz_nfa_char range_end); + +/** \brief Add an empty (epsilon) transition. + * + * \param n the nfa + * \param from_state which state the transition is from + * \param to_state where the transition goes to + **/ +void yaz_nfa_add_empty_transition( yaz_nfa *n, + yaz_nfa_state *from_state, + yaz_nfa_state *to_state); + +/** \brief Add a translation from a range to the NFA. + * + * \param n the nfa + * \param st the state to add this to. If null, adds to the initial state + * \param range_start is the beginning of the range of values + * \param range_end is the end of the range of values + * + * Checks if we already have a transition like this. If so, does not add + * a new one, but returns the target state. Otherwise creates a new state, + * and a transition to it. + */ +yaz_nfa_state *yaz_nfa_add_range( yaz_nfa *n, + yaz_nfa_state *st, + yaz_nfa_char range_start, + yaz_nfa_char range_end ); + +/** \brief Add a sequence of transitions and states. + * + * \param n the nfa + * \param s the state to add this to. If null, adds to the initial state + * \param seq is a sequence of yaz_fna_chars. + * \param seq_len is the length of the sequence + * \return the final state + * + * Starting from state s (or from the initial state, if s is + * null), finds as much of seq as possible and inserts the rest. + */ +yaz_nfa_state *yaz_nfa_add_sequence( yaz_nfa *n, + yaz_nfa_state *s, + yaz_nfa_char *seq, + size_t seq_len ); + +/** \} */ + +/** \name Low-level interface for mathcing the NFA. */ +/* + * These do the actual matching. They know nothing of + * the type of the result pointers + */ +/** \{ */ + +/** \brief Find the longest possible match. + * + * \param n the nfa itself + * \param inbuff buffer of input data. Will be incremented when match + * \param incharsleft max number of inchars to use from inbuff. decrements. + * \param result the result pointer from the nfa (what ever that is) + * + * In case of errors, returns the best match so far, + * which the caller is free to ignore. + * + * \retval YAZ_NFA_SUCCESS success + * \retval YAZ_NFA_NOMATCH no match found + * \retval YAZ_NFA_OVERRUN overrun of input buffer + * \retval YAZ_NFA_LOOP looping too far + * + */ + +int yaz_nfa_match(yaz_nfa *n, yaz_nfa_char **inbuff, size_t *incharsleft, + void **result ); + +/** \brief Get a back reference after a successfull match. + * + * \param n the nfa + * \param backref_no the number of the backref to get + * \param start beginning of the matching substring + * \param end end of the matching substring + * + * Returns pointers to the beginning and end of a backref, or null + * pointers if one endpoint not met. Those pointers point to the + * original buffer that was matched, so the caller will not have to + * worry about freeing anything special. + * + * It is technically possible to create NFAs that meet the start but + * not the end of a backref. It is up to the caller to decide how + * to handle such a situation. + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_NOMATCH The NFA hasn't matched anything, no backref + * \retval YAZ_NFA_NOSUCHBACKREF no such backref + */ + +int yaz_nfa_get_backref( yaz_nfa *n, + int backref_no, + yaz_nfa_char **start, + yaz_nfa_char **end ); + +/* \} */ + +/** \name Low-level interface to the converters */ +/* These produce some output text into a buffer. There are a few + * kinds of converters, each producing different type of output. + */ +/* \{ */ + +/** \brief Create a string converter. + * \param n the nfa + * \param string the string to output + * \param length how many chars in the string + * + * This converter produces a constant string in the output + */ +yaz_nfa_converter *yaz_nfa_create_string_converter ( + yaz_nfa *n, + yaz_nfa_char *string, + size_t length ); + +/** \brief Create a backref converter + * \param n the nfa + * \param backref_no The backreference to reproduce + * + * This converter copies a backref into the output buffer + */ +yaz_nfa_converter *yaz_nfa_create_backref_converter ( + yaz_nfa *n, int backref_no ); + + +/** \brief Create a charcater range converter + * \param n the nfa + * \param backref_no The backreference to reproduce + * \param from_char the first character of the original range + * \param to_char the first character of the target range + * + * This converter takes a backreference, and shifts the characters + * by a constant value. For example, translating a-z to A-Z. + * Note that backref 0 is always the last character that matched a + * range, even if no backrefs were defined in teh nfa. This makes + * it pretty useful with this converter. + * + */ +yaz_nfa_converter *yaz_nfa_create_range_converter ( + yaz_nfa *n, int backref_no, + yaz_nfa_char from_char, + yaz_nfa_char to_char); + + +/** \brief Connects converters in a chain. + * \param n the nfa (mostly for nmem access) + * \param startpoint the first converter in the chain + * \param newconverter + * + * Places the new converter at the end of the chain that starts from + * startpoint. + * + */ +void yaz_nfa_append_converter ( + yaz_nfa *n, + yaz_nfa_converter *startpoint, + yaz_nfa_converter *newconverter); + +/** brief Runs the chain of converters. + * \param n the nfa (mostly for nmem access) + * \param c the first converter in a chain + * \param outbuff buffer to write the output in. Increments the ptr. + * \param outcharsleft how many may we write + * + * Runs the converters in the chain, placing output into outbuff + * (and incrementing the pointer). + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_NOMATCH no match to get backrefs from + * \retval YAZ_NFA_NOSPACE no room in outbuf + * \retval YAZ_NFA_INTERNAL Should never happen + * + */ +int yaz_nfa_run_converters( + yaz_nfa *n, + yaz_nfa_converter *c, + yaz_nfa_char **outbuff, + size_t *outcharsleft); + +/** \} */ + +/** \name High-level interface to the NFA */ +/* This interface combines the NFA and converters, for ease of + * access. There are a few calls to build a complete system, and a call + * to do the actual conversion. + */ +/* \{ */ + +/** \brief Add a rule that converts one string to another ('IX' -> '9') + * + * \param n The nfa itself + * \param from_string the string to match + * \param from_length length of the from_string + * \param to_string the string to write in the output + * \param to_length length of the to_string + * + * Adds a matching rule and a string converter to the NFA. + * Can be used for converting strings into nothing, for example, + * to remove markup. + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_ALREADY Conflict with some other rule + * + */ +int yaz_nfa_add_string_rule( yaz_nfa *n, + yaz_nfa_char *from_string, + size_t from_length, + yaz_nfa_char *to_string, + size_t to_length); + +/** brief Just like yaz_nfa_add_string_rule, but takes the strings in ascii + * + * \param n The nfa itself + * \param from_string the string to match + * \param to_string the string to write in the output + * + * Like yaz_nfa_add_string_rule, this adds a rule to translate a string + * into another. The only difference is that this one takes the strings as + * normal char *, which means that no high-valued unicodes can be handled, + * and that this one uses null-terminated strings. In short, this is a + * simplified version mostly intended for tests and other small uses. + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_ALREADY Conflict with some other rule + */ +int yaz_nfa_add_ascii_string_rule( yaz_nfa *n, + char *from_string, + char *to_string); + + +/** \brief Add a rule that converts a character range + * + * \param n The nfa itself + * \param range_start Where the matching range starts + * \param range_end Where the matching range ends + * \param output_range_start Where the resulting range starts + * + * + * Adds a character range rule to the NFA. The range to be converted + * is defined by the range_start and range_end parameters. The output + * range starts at output_range_start, and is automatically as long + * as the input range. + * + * Useful for alphabet normalizing [a-z] -> [A-Z] + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_ALREADY Conflict with some other rule + */ +int yaz_nfa_add_char_range_rule (yaz_nfa *n, + yaz_nfa_char range_start, + yaz_nfa_char range_end, + yaz_nfa_char output_range_start); + +/** \brief Add a rule that converts a character range to a string + * + * \param n The nfa itself + * \param range_start Where the matching range starts + * \param range_end Where the matching range ends + * \param to_string the string to write in the output + * \param to_length length of the to_string + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_ALREADY Conflict with some other rule + * + * Adds a character range match rule, and a string converter. + * + * Useful in converting a range of special characters into (short?) + * strings of whitespace, or even to nothing at all. + */ +int yaz_nfa_add_char_string_rule (yaz_nfa *n, + yaz_nfa_char range_start, + yaz_nfa_char range_end, + yaz_nfa_char* to_string, + size_t to_length); + +/** \brief Converts one 'slice' that is, the best matching rule. + * + * \param n the nfa itself + * \param inbuff buffer of input data. Will be incremented when match + * \param incharsleft max number of inchars to use from inbuff. decrements. + * \param outbuff buffer for output data. Will be incremented when match + * \param outcharsleft max number of chars to write to outbuff. + * + * \retval YAZ_NFA_SUCCESS OK + * \retval YAZ_NFA_OVERRUN No more input data, some pattern could match + * \retval YAZ_NFA_NOSPACE No room in the putput buffer + * \retval YAZ_NFA_NOSUCHBACKREF NFA refers to a non-existing backref + * + * Finds the best match at the beginning of inbuf, and fires its converter(s) + * to produce output in outbuff. Increments both inbuf and outbuf pointers and + * decrements the *charsleft values, so all is ready for calling again, until + * the buffer is exhausted. That loop is left to the caller, so he can load + * more data in the buffer in good time. + * + * If no match is found, converts one character into itself. If the matcher + * returns any sort of error, leaves the pointers where they were. + */ +int yaz_nfa_convert_slice (yaz_nfa *n, + yaz_nfa_char **inbuff, + size_t *incharsleft, + yaz_nfa_char **outbuff, + size_t *outcharsleft); + + +/* \} */ + +/** \name Debug routines */ +/* These provide a method for traversing all the states defined + * in the NFA, for example to release memory allocated in the results, + * and a simple debug routine to dump the NFA */ +/* \{ */ + + +/** \brief Get the first state of the NFA. + * + * \param n the nfa + * + * Useful for iterating through all states, probably calling get_result + * for each, and doing something to the results (freeing memory?) + * + * \returns a pointer to the first state, or NULL if none. + */ +yaz_nfa_state *yaz_nfa_get_first(yaz_nfa *n); + +/** \brief Get the next state of the NFA. + * + * \param n the nfa + * \param s the state to add to + * \return the next state, or NULL if no more. + */ +yaz_nfa_state *yaz_nfa_get_next(yaz_nfa *n, yaz_nfa_state *s); + +/** \brief Dump the NFA into a file . + * + * \param F The file handle to dump into (null => stdout) + * \param n the nfa + * \param strfunc can be used for converting the resultinfo a string. + * + * strfunc is a function like + * char *f( void *result); + * it takes the result, and converts into a printable string (which + * must be allocated somewhere by the caller). If the results are + * already printable, passing a null pointer here prints them with a %s + * + */ +void yaz_nfa_dump(FILE *F, + yaz_nfa *n, + char *(*strfunc)(void *) ); + +/** \brief Helper to dump converters + * + */ +char *yaz_nfa_dump_converter(void *conv); + +/* \} */ + + + +YAZ_END_CDECL + +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/nfaxml.h b/dependencies/yaz-2.1.28/include/yaz/nfaxml.h new file mode 100644 index 0000000..3c4b07b --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/nfaxml.h @@ -0,0 +1,120 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * $Id: nfaxml.h,v 1.5 2006/07/14 13:06:37 heikki Exp $ + */ + +/** + * \file nfaxml.h + * \brief Routines for reading NFA specs from an XML file + * + * The xml file is something like this (using round brakcets + * on tags, not to confuse our documentation tools) + * (?xml ...) + * (ruleset) + * (rule) + * (fromstring) FOO (/fromstring) + * (tostring) BAR (/tostring) + * (/rule) + * (rule) + * (fromrange) a-z (/fromrange) + * (torange) A-Z (/torange) + * (/rule) + * ... + * + * The rules consist of two parts, 'from' and 'to'. + * From rules can be + * fromstring (which can be a single character) + * fromrange (like a-z) + * (later, perhaps a fromregexp) + * To rules can be + * tostring (which can be a single character) + * torange (only with a fromrange) + * (later, perhaps backrefs from regexps) + */ + +#ifndef YAZ_NFA_XML_H +#define YAZ_NFA_XML_H + +#if YAZ_HAVE_XML2 + +#include + +#include +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief Parse the NFA from a XML document + * + * \param doc the xml tree to parse + * \param filename used for info in error messages + * + * \returns either the NFA, or null in case of errors + * + * It is up to the caller to destroy the nfa when done. + * + * Does not expand XIncludes. + * + * In case of errors, returns a null pointer. You can then + * call xmlGetLastError() to get the details of the error, + * if you have a recent enough libxml2. Those are already + * logged in yazlog. + * + */ +yaz_nfa *yaz_nfa_parse_xml_doc(xmlDocPtr doc, const char *filename); + + +/** \brief Parse the NFA from a file + * + * \param filepath path to the xml file to parse + * \param error_info will be filled in case of errors + * + * \returns either the NFA, or null in case of errors + * + * It is up to the caller to destroy the nfa when done. + * + * This routine also expands XIncludes. + * + * In case of errors, returns a null pointer. You can then + * call xmlGetLastError() to get the details of the error, + * if you have a recent enough libxml2. Those are already + * logged in yazlog. + * + */ +yaz_nfa *yaz_nfa_parse_xml_file(const char *filepath); + + +/** \brief Parse the NFA from a memory buffer + * + * \param filepath path to the xml file to parse + * \param error_info will be filled in case of errors + * + * \returns either the NFA, or null in case of errors + * + * It is up to the caller to destroy the nfa when done. + * + * Does not expand XIncludes. + * + * In case of errors, returns a null pointer. You can then + * call xmlGetLastError() to get the details of the error, + * if you have a recent enough libxml2. Those are already + * logged in yazlog. + * + */ +yaz_nfa *yaz_nfa_parse_xml_memory(const char *xmlbuff, const char *filename); + + +YAZ_END_CDECL + +#endif /* YAZ_HAVE_XML2 */ +#endif /* YAZ_NFA_XML_H */ + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/nmem.h b/dependencies/yaz-2.1.28/include/yaz/nmem.h new file mode 100644 index 0000000..fc594d5 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/nmem.h @@ -0,0 +1,175 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: nmem.h,v 1.21 2006/08/13 17:30:57 adam Exp $ + */ + +/** + * \file nmem.h + * \brief Header for Nibble Memory functions + * + * This is a simple and fairly wasteful little module for nibble memory + * allocation. Evemtually we'll put in something better. + */ +#ifndef NMEM_H +#define NMEM_H + +#include +#include + +#if YAZ_HAVE_XML2 +#include +#endif + +#define NMEM_DEBUG 0 + +#ifndef NMEM_DEBUG +#define NMEM_DEBUG 0 +#endif + +YAZ_BEGIN_CDECL + +/** \brief NMEM/YAZ MUTEX opaque pointer */ +typedef struct nmem_mutex *NMEM_MUTEX; +/** \brief create Mutex */ +YAZ_EXPORT void nmem_mutex_create(NMEM_MUTEX *); +/** \brief enter critical section / AKA lock */ +YAZ_EXPORT void nmem_mutex_enter(NMEM_MUTEX); +/** \brief leave critical section / AKA unlock */ +YAZ_EXPORT void nmem_mutex_leave(NMEM_MUTEX); +/** \brief destroy MUTEX */ +YAZ_EXPORT void nmem_mutex_destroy(NMEM_MUTEX *); + +/** \brief NMEM handle (an opaque pointer to memory) */ +typedef struct nmem_control *NMEM; + +/** \brief release all memory associaged with an NMEM handle */ +YAZ_EXPORT void nmem_reset(NMEM n); +/** \brief returns size in bytes of memory for NMEM handle */ +YAZ_EXPORT int nmem_total(NMEM n); + +/** \brief allocates string on NMEM handle (similar strdup) */ +YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src); +/** \brief allocates string on NMEM handle - allows NULL ptr buffer */ +YAZ_EXPORT char *nmem_strdup_null (NMEM mem, const char *src); +/** \brief allocates string of certain size on NMEM handle */ +YAZ_EXPORT char *nmem_strdupn (NMEM mem, const char *src, size_t n); + +/** \brief allocates sub strings out of string using certain delimitors + \param nmem NMEM handle + \param delim delimitor chars (splits on each char in there) + \param dstr string to be split + \param darray result string array for each sub string + \param num number of result strings +*/ +YAZ_EXPORT void nmem_strsplit(NMEM nmem, const char *delim, + const char *dstr, + char ***darray, int *num); + +/** \brief splits string into sub strings delimited by blanks + \param nmem NMEM handle + \param dstr string to be split + \param darray result string array for each sub string + \param num number of result strings +*/ +YAZ_EXPORT void nmem_strsplit_blank(NMEM nmem, const char *dstr, + char ***darray, int *num); + +#if YAZ_HAVE_XML2 +/** \brief copies TEXT Libxml2 node data to NMEM */ +YAZ_EXPORT char *nmem_text_node_cdata(const xmlNode *ptr, NMEM nmem); +#endif + +/** \brief creates and allocates integer for NMEM */ +YAZ_EXPORT int *nmem_intdup (NMEM mem, int v); + +/** \brief transfers memory from one NMEM handle to another */ +YAZ_EXPORT void nmem_transfer (NMEM dst, NMEM src); + +/** \brief internal (do not use) */ +YAZ_EXPORT void nmem_critical_enter (void); +/** \brief internal (do not use) */ +YAZ_EXPORT void nmem_critical_leave (void); + +#if NMEM_DEBUG + +YAZ_EXPORT NMEM nmem_create_f(const char *file, int line); +YAZ_EXPORT void nmem_destroy_f(const char *file, int line, NMEM n); +YAZ_EXPORT void *nmem_malloc_f(const char *file, int line, NMEM n, int size); +#define nmem_create() nmem_create_f(__FILE__, __LINE__) +#define nmem_destroy(x) nmem_destroy_f(__FILE__, __LINE__, (x)) +#define nmem_malloc(x, y) nmem_malloc_f(__FILE__, __LINE__, (x), (y)) + +YAZ_EXPORT void nmem_print_list (void); +YAZ_EXPORT void nmem_print_list_l (int level); + +#else + +/** \brief returns new NMEM handle */ +YAZ_EXPORT NMEM nmem_create(void); + +/** \brief destroys NMEM handle and memory associated with it */ +YAZ_EXPORT void nmem_destroy(NMEM n); + +/** \brief allocate memory block on NMEM handle */ +YAZ_EXPORT void *nmem_malloc(NMEM n, int size); + +#define nmem_print_list() + +#endif + +/** \brief initializes NMEM system + This function increments a usage counter for NMEM.. Only + on first usage the system is initialized.. The \fn nmem_exit + decrements the counter. So these must be called in pairs +*/ +YAZ_EXPORT void nmem_init (void); + +/** \brief destroys NMEM system */ +YAZ_EXPORT void nmem_exit (void); + +YAZ_EXPORT int yaz_errno (void); +YAZ_EXPORT void yaz_set_errno (int v); +YAZ_EXPORT void yaz_strerror(char *buf, int max); + +/** \brief returns memory in use (by application) + \param p pointer to size (in bytes) + */ +YAZ_EXPORT void nmem_get_memory_in_use(size_t *p); +/** \brief returns memory in free (for later reuse) + */ +YAZ_EXPORT void nmem_get_memory_free(size_t *p); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/odr.h b/dependencies/yaz-2.1.28/include/yaz/odr.h new file mode 100644 index 0000000..8c9b9a4 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/odr.h @@ -0,0 +1,358 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: odr.h,v 1.23 2006/08/24 13:11:27 adam Exp $ + */ + +/** + * \file odr.h + * \brief Header for ODR (Open Data Representation) + */ + +#ifndef ODR_H +#define ODR_H + +#include +#include + +#include +#include + +YAZ_BEGIN_CDECL + +#ifndef bool_t +#define bool_t int +#endif + +/* + * Tag modes + */ +#define ODR_NONE -1 +#define ODR_IMPLICIT 0 +#define ODR_EXPLICIT 1 + +/* + * Classes + */ +#define ODR_UNIVERSAL 0 +#define ODR_APPLICATION 1 +#define ODR_CONTEXT 2 +#define ODR_PRIVATE 3 + +/* + * UNIVERSAL tags + */ +#define ODR_BOOLEAN 1 +#define ODR_INTEGER 2 +#define ODR_BITSTRING 3 +#define ODR_OCTETSTRING 4 +#define ODR_NULL 5 +#define ODR_OID 6 +#define ODR_ODESC 7 +#define ODR_EXTERNAL 8 +#define ODR_REAL 9 +#define ODR_ENUM 10 +#define ODR_SEQUENCE 16 +#define ODR_SET 17 +#define ODR_NUMERICSTRING 18 +#define ODR_PRINTABLESTRING 19 +#define ODR_GENERALIZEDTIME 24 +#define ODR_GRAPHICSTRING 25 +#define ODR_VISIBLESTRING 26 +#define ODR_GENERALSTRING 27 + +/* + * odr stream directions + */ +#define ODR_DECODE 0 +#define ODR_ENCODE 1 +#define ODR_PRINT 2 + +typedef struct odr_oct +{ + unsigned char *buf; + int len; + int size; +} Odr_oct; + +typedef void Odr_null; +extern Odr_null *ODR_NULLVAL; + +typedef Odr_oct Odr_any; + +typedef struct odr_bitmask +{ +#define ODR_BITMASK_SIZE 256 + unsigned char bits[ODR_BITMASK_SIZE]; + int top; +} Odr_bitmask; + +typedef int Odr_oid; /* terminate by -1 */ + +#define ODR_S_SET 0 +#define ODR_S_CUR 1 +#define ODR_S_END 2 + +typedef struct odr +{ + int direction; /* the direction of this stream */ + + int error; /* current error state (0==OK) */ + + int can_grow; /* are we allowed to reallocate */ + unsigned char *buf; /* memory handle */ + int size; /* current buffer size (encoding+decoding) */ + + int pos; /* current position (encoding) */ + int top; /* top of buffer (max pos when encoding) */ + + const unsigned char *bp; /* position in buffer (decoding) */ + + int t_class; /* implicit tagging (-1==default tag) */ + int t_tag; + + int enable_bias; /* force choice enable flag */ + int choice_bias; /* force choice */ + int lenlen; /* force length-of-lenght (odr_setlen()) */ + + FILE *print; /* output file handler for direction print */ + int indent; /* current indent level for printing */ + + NMEM mem; /* memory handle for decoding (primarily) */ + + struct Odr_private *op; +} *ODR; + +typedef int (*Odr_fun)(ODR, char **, int, const char *); + +typedef struct odr_arm +{ + int tagmode; + int zclass; + int tag; + int which; + Odr_fun fun; + char *name; +} Odr_arm; + +/* + * Error control. + */ +#define ONONE 0 +#define OMEMORY 1 +#define OSYSERR 2 +#define OSPACE 3 +#define OREQUIRED 4 +#define OUNEXPECTED 5 +#define OOTHER 6 +#define OPROTO 7 +#define ODATA 8 +#define OSTACK 9 +#define OCONLEN 10 +#define OLENOV 11 +#define OHTTP 12 + +extern char *odr_errlist[]; + +YAZ_EXPORT int odr_geterror(ODR o); +YAZ_EXPORT int odr_geterrorx(ODR o, int *x); +YAZ_EXPORT void odr_seterror(ODR o, int errorno, int errorid); +YAZ_EXPORT void odr_setelement(ODR o, const char *addinfo); +YAZ_EXPORT const char *odr_getelement(ODR o); +YAZ_EXPORT void odr_perror(ODR o, const char *message); +YAZ_EXPORT void odr_setprint(ODR o, FILE *file); +YAZ_EXPORT ODR odr_createmem(int direction); +YAZ_EXPORT void odr_reset(ODR o); +YAZ_EXPORT void odr_destroy(ODR o); +YAZ_EXPORT void odr_setbuf(ODR o, char *buf, int len, int can_grow); +YAZ_EXPORT char *odr_getbuf(ODR o, int *len, int *size); +YAZ_EXPORT void *odr_malloc(ODR o, int size); +YAZ_EXPORT char *odr_strdup(ODR o, const char *str); +YAZ_EXPORT char *odr_strdupn(ODR o, const char *str, size_t n); +YAZ_EXPORT int *odr_intdup(ODR o, int v); +YAZ_EXPORT Odr_oct *odr_create_Odr_oct(ODR o, const unsigned char *buf, + int sz); +YAZ_EXPORT NMEM odr_extract_mem(ODR o); +YAZ_EXPORT Odr_null *odr_nullval(void); +#define odr_release_mem(m) nmem_destroy(m) +#define ODR_MEM NMEM + +#define odr_implicit_tag(o, t, p, cl, tg, opt, name)\ + (odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), name) ) + +#define odr_explicit_tag(o, t, p, cl, tg, opt, name)\ + ((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \ + t ((o), (p), (opt), name) &&\ + odr_constructed_end(o) : odr_missing((o), opt, name))) + +#define ODR_MASK_ZERO(mask)\ + ((void) (memset((mask)->bits, 0, ODR_BITMASK_SIZE),\ + (mask)->top = -1)) + +#define ODR_MASK_SET(mask, num)\ + (((mask)->bits[(num) >> 3] |= 0X80 >> ((num) & 0X07)),\ + (mask)->top < (num) >> 3 ? ((mask)->top = (num) >> 3) : 0) + +#define ODR_MASK_CLEAR(mask, num)\ + ((mask)->bits[(num) >> 3] &= ~(0X80 >> ((num) & 0X07))) + +#define ODR_MASK_GET(mask, num) ( ((num) >> 3 <= (mask)->top) ? \ + ((mask)->bits[(num) >> 3] & (0X80 >> ((num) & 0X07)) ? 1 : 0) : 0) + + +#define odr_tell(o) ((o)->pos) +#define odr_offset(o) ((o)->bp - (o)->buf) +#define odr_ok(o) (!(o)->error) +#define odr_getmem(o) ((o)->mem) +#define odr_setmem(o, v) ((o)->mem = (v)) + +#define ODR_MAXNAME 256 + +YAZ_EXPORT int ber_boolean(ODR o, int *val); +YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag, + int *constructed, int opt, const char *name); +YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed); +YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass, + int *tag, int *constructed, int max); +YAZ_EXPORT int odr_bool(ODR o, int **p, int opt, const char *name); +YAZ_EXPORT int odr_integer(ODR o, int **p, int opt, const char *name); +YAZ_EXPORT int odr_enum(ODR o, int **p, int opt, const char *name); +YAZ_EXPORT int odr_implicit_settag(ODR o, int zclass, int tag); +YAZ_EXPORT int ber_enclen(ODR o, int len, int lenlen, int exact); +YAZ_EXPORT int ber_declen(const unsigned char *buf, int *len, int max); +YAZ_EXPORT void odr_prname(ODR o, const char *name); +YAZ_EXPORT int ber_null(ODR o); +YAZ_EXPORT int odr_null(ODR o, Odr_null **p, int opt, const char *name); +YAZ_EXPORT int ber_integer(ODR o, int *val); +YAZ_EXPORT int odr_constructed_begin(ODR o, void *p, int zclass, int tag, + const char *name); +YAZ_EXPORT int odr_constructed_end(ODR o); +YAZ_EXPORT int odr_sequence_begin(ODR o, void *p, int size, const char *name); +YAZ_EXPORT int odr_set_begin(ODR o, void *p, int size, const char *name); +YAZ_EXPORT int odr_sequence_end(ODR o); +YAZ_EXPORT int odr_set_end(ODR o); +YAZ_EXPORT int ber_octetstring(ODR o, Odr_oct *p, int cons); +YAZ_EXPORT int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name); +YAZ_EXPORT int odp_more_chunks(ODR o, const unsigned char *base, int len); +YAZ_EXPORT int odr_constructed_more(ODR o); +YAZ_EXPORT int odr_bitstring(ODR o, Odr_bitmask **p, int opt, + const char *name); +YAZ_EXPORT int ber_bitstring(ODR o, Odr_bitmask *p, int cons); +YAZ_EXPORT int odr_generalstring(ODR o, char **p, int opt, const char *name); +YAZ_EXPORT int ber_oidc(ODR o, Odr_oid *p, int max_oid_size); +YAZ_EXPORT int odr_oid(ODR o, Odr_oid **p, int opt, const char *name); +YAZ_EXPORT int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, + const char *name); +YAZ_EXPORT int odr_cstring(ODR o, char **p, int opt, const char *name); +YAZ_EXPORT int odr_iconv_string(ODR o, char **p, int opt, const char *name); +YAZ_EXPORT int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num, + const char *name); +YAZ_EXPORT int odr_set_of(ODR o, Odr_fun type, void *p, int *num, + const char *name); +YAZ_EXPORT int odr_any(ODR o, Odr_any **p, int opt, const char *name); + +YAZ_EXPORT int ber_any(ODR o, Odr_any **p); +/** \brief determine whether a buffer is a complete BER buffer + \param buf BER buffer + \param len length of buffer + \retval 0 package is incomplete + \retval >0 package is complete and length is return value +*/ +YAZ_EXPORT int completeBER(const unsigned char *buf, int len); + +YAZ_EXPORT void odr_begin(ODR o); +YAZ_EXPORT void odr_end(ODR o); +YAZ_EXPORT Odr_oid *odr_oiddup(ODR odr, Odr_oid *o); +YAZ_EXPORT Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o); +YAZ_EXPORT int odr_grow_block(ODR b, int min_bytes); +YAZ_EXPORT int odr_write(ODR o, unsigned char *buf, int bytes); +YAZ_EXPORT int odr_seek(ODR o, int whence, int offset); +YAZ_EXPORT int odr_dumpBER(FILE *f, const char *buf, int len); +YAZ_EXPORT void odr_choice_bias(ODR o, int what); +YAZ_EXPORT void odr_choice_enable_bias(ODR o, int mode); +YAZ_EXPORT int odr_total(ODR o); +YAZ_EXPORT char *odr_errmsg(int n); +YAZ_EXPORT Odr_oid *odr_getoidbystr(ODR o, const char *str); +YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, const char *str); + +YAZ_EXPORT int odr_initmember(ODR o, void *p, int size); +YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons); +YAZ_EXPORT void odr_setlenlen(ODR o, int len); +YAZ_EXPORT int odr_missing(ODR o, int opt, const char *name); +YAZ_EXPORT char *odr_prepend(ODR o, const char *prefix, const char *old); + +typedef struct Odr_external +{ + Odr_oid *direct_reference; /* OPTIONAL */ + int *indirect_reference; /* OPTIONAL */ + char *descriptor; /* OPTIONAL */ + int which; +#define ODR_EXTERNAL_single 0 +#define ODR_EXTERNAL_octet 1 +#define ODR_EXTERNAL_arbitrary 2 + union + { + Odr_any *single_ASN1_type; + Odr_oct *octet_aligned; + Odr_bitmask *arbitrary; /* we aren't really equipped for this*/ + } u; +} Odr_external; + +YAZ_EXPORT int odr_external(ODR o, Odr_external **p, int opt, + const char *name); +YAZ_EXPORT int odr_visiblestring(ODR o, char **p, int opt, + const char *name); +YAZ_EXPORT int odr_graphicstring(ODR o, char **p, int opt, + const char *name); +YAZ_EXPORT int odr_generalizedtime(ODR o, char **p, int opt, + const char *name); + +YAZ_EXPORT int odr_set_charset(ODR o, const char *to, const char *from); + +YAZ_EXPORT void odr_set_stream(ODR o, void *handle, + void (*stream_write)(ODR o, + void *handle, + int type, + const char *buf, + int len), + void (*stream_close)(void *handle)); + +YAZ_EXPORT void odr_printf(ODR o, const char *fmt, ...); + +YAZ_EXPORT const char **odr_get_element_path(ODR o); + +YAZ_END_CDECL + +#include + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/oid.h b/dependencies/yaz-2.1.28/include/yaz/oid.h new file mode 100644 index 0000000..b99388a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/oid.h @@ -0,0 +1,283 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: oid.h,v 1.28 2006/05/08 19:45:29 adam Exp $ + */ + +/** + * \file oid.h + * \brief Header for OID database + * + * More or less protocol-transparent OID database. + * We could (and should?) extend this so that the user app can add new + * entries to the list at initialization. + */ +#ifndef OID_H +#define OID_H + +#include + +YAZ_BEGIN_CDECL + +#define OID_SIZE 20 +#define OID_STR_MAX 256 + +typedef enum oid_proto +{ + PROTO_NOP=0, + PROTO_Z3950, + PROTO_SR, + PROTO_GENERAL, + PROTO_WAIS, + PROTO_HTTP +} oid_proto; + +typedef enum oid_class +{ + CLASS_NOP=0, + CLASS_APPCTX, + CLASS_ABSYN, + CLASS_ATTSET, + CLASS_TRANSYN, + CLASS_DIAGSET, + CLASS_RECSYN, + CLASS_RESFORM, + CLASS_ACCFORM, + CLASS_EXTSERV, + CLASS_USERINFO, + CLASS_ELEMSPEC, + CLASS_VARSET, + CLASS_SCHEMA, + CLASS_TAGSET, + CLASS_GENERAL, + CLASS_NEGOT +} oid_class; + +typedef enum oid_value +{ + VAL_NOP=0, + VAL_APDU, + VAL_BER, + VAL_BASIC_CTX, + VAL_BIB1, + + VAL_EXP1, + VAL_EXT1, + VAL_CCL1, + VAL_GILS, + VAL_WAIS, +/* 10 */ + VAL_STAS, + VAL_COLLECT1, + VAL_CIMI1, + VAL_GEO, + VAL_DIAG1, + + VAL_ISO2709, + VAL_UNIMARC, + VAL_INTERMARC, + VAL_CCF, + VAL_USMARC, +/* 20 */ + VAL_UKMARC, + VAL_NORMARC, + VAL_LIBRISMARC, + VAL_DANMARC, + VAL_FINMARC, + + VAL_MAB, + VAL_CANMARC, + VAL_SBN, + VAL_PICAMARC, + VAL_AUSMARC, +/* 30 */ + VAL_IBERMARC, + VAL_CATMARC, + VAL_MALMARC, + VAL_EXPLAIN, + VAL_SUTRS, + + VAL_OPAC, + VAL_SUMMARY, + VAL_GRS0, + VAL_GRS1, + VAL_EXTENDED, +/* 40 */ + VAL_FRAGMENT, + VAL_RESOURCE1, + VAL_RESOURCE2, + VAL_PROMPT1, + VAL_DES1, + + VAL_KRB1, + VAL_PRESSET, + VAL_PQUERY, + VAL_PCQUERY, + VAL_ITEMORDER, + +/* 50 */ + VAL_DBUPDATE0, + VAL_DBUPDATE, + VAL_EXPORTSPEC, + VAL_EXPORTINV, + VAL_NONE, + + VAL_SETM, + VAL_SETG, + VAL_VAR1, + VAL_ESPEC1, + VAL_SOIF, + +/* 60 */ + VAL_SEARCHRES1, + VAL_THESAURUS, + VAL_CHARLANG, + VAL_USERINFO1, + VAL_MULTISRCH1, + + VAL_MULTISRCH2, + VAL_DATETIME, + VAL_SQLRS, + VAL_PDF, + VAL_POSTSCRIPT, + +/* 70 */ + VAL_HTML, + VAL_TIFF, + VAL_GIF, + VAL_JPEG, + VAL_PNG, + + VAL_MPEG, + VAL_SGML, + VAL_TIFFB, + VAL_WAV, + VAL_UPDATEES, + +/* 80 */ + VAL_TEXT_XML, + VAL_APPLICATION_XML, + VAL_UNIVERSE_REPORT, + VAL_PROXY, + VAL_COOKIE, + + VAL_CLIENT_IP, + VAL_ISO_ILL_1, + VAL_ZBIG, + VAL_UTIL, + VAL_XD1, + +/* 90 */ + VAL_ZTHES, + VAL_FIN1, + VAL_DAN1, + VAL_DIAG_ES, + VAL_DIAG_GENERAL, + + VAL_JPMARC, + VAL_SWEMARC, + VAL_SIGLEMARC, + VAL_ISDSMARC, + VAL_RUSMARC, + +/* 100 */ + VAL_ADMINSERVICE, + VAL_HOLDINGS, + VAL_HUNMARC, + VAL_CHARNEG3, + VAL_LIB1, + + VAL_VIRT, + VAL_UCS2, + VAL_UCS4, + VAL_UTF16, + VAL_UTF8, +/* 110 */ + + VAL_IDXPATH, + VAL_BIB2, + VAL_ZEEREX, + VAL_CQL, + VAL_DBUPDATE1, + + VAL_OCLCUI, + VAL_ID_CHARSET, + VAL_EXTLITE, + VAL_NACSISCATP, + VAL_FINMARC2000, +/* 120 */ + + VAL_MARC21FIN, + VAL_CHARNEG4, + VAL_XMLES, + +/* VAL_DYNAMIC must have highest value */ + VAL_DYNAMIC, + VAL_MAX = VAL_DYNAMIC+30 +} oid_value; + +typedef struct oident +{ + oid_proto proto; + oid_class oclass; + oid_value value; + int oidsuffix[OID_SIZE]; + char *desc; +} oident; + +YAZ_EXPORT int *oid_getoidbyent(struct oident *ent); +YAZ_EXPORT int *oid_ent_to_oid(struct oident *ent, int *dst); +YAZ_EXPORT struct oident *oid_getentbyoid(int *o); +YAZ_EXPORT void oid_oidcpy(int *t, int *s); +YAZ_EXPORT void oid_oidcat(int *t, int *s); +YAZ_EXPORT int oid_oidcmp(int *o1, int *o2); +YAZ_EXPORT int oid_oidlen(int *o); +YAZ_EXPORT oid_value oid_getvalbyname(const char *name); +YAZ_EXPORT void oid_setprivateoids(oident *list); +YAZ_EXPORT struct oident *oid_addent (int *oid, enum oid_proto proto, + enum oid_class oclass, + const char *desc, int value); + +YAZ_EXPORT void oid_trav (void (*func)(struct oident *oidinfo, void *vp), + void *vp); + +YAZ_EXPORT void oid_init(void); +YAZ_EXPORT void oid_exit(void); +YAZ_EXPORT int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); +YAZ_EXPORT char *oid_to_dotstring(const int *oid, char *oidbuf); +YAZ_EXPORT char *oid_name_to_dotstring(oid_class oclass, const char *name, + char *oidbuf); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/options.h b/dependencies/yaz-2.1.28/include/yaz/options.h new file mode 100644 index 0000000..7929198 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/options.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: options.h,v 1.6 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file options.h + * \brief Header for command line options parsing utilities + */ + +#ifndef OPTIONS_H +#define OPTIONS_H +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT int options (const char *desc, char **argv, int argc, char **arg); + +YAZ_END_CDECL + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/otherinfo.h b/dependencies/yaz-2.1.28/include/yaz/otherinfo.h new file mode 100644 index 0000000..4ad49a9 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/otherinfo.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: otherinfo.h,v 1.5 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file otherinfo.h + * \brief Header for Z39.50 OtherInfo utilities + */ +#ifndef OTHERINFO_H +#define OTHERINFO_H + +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip); +YAZ_EXPORT Z_OtherInformationUnit *yaz_oi_update ( + Z_OtherInformation **otherInformationP, ODR odr, + int *oid, int categoryValue, int delete_flag); +YAZ_EXPORT void yaz_oi_set_string_oid ( + Z_OtherInformation **otherInformation, ODR odr, + int *oid, int categoryValue, + const char *str); +YAZ_EXPORT void yaz_oi_set_string_oidval ( + Z_OtherInformation **otherInformation, ODR odr, + int oidval, int categoryValue, + const char *str); +YAZ_EXPORT char *yaz_oi_get_string_oid ( + Z_OtherInformation **otherInformation, + int *oid, int categoryValue, int delete_flag); +YAZ_EXPORT char *yaz_oi_get_string_oidval( + Z_OtherInformation **otherInformation, + int oidval, int categoryValue, int delete_flag); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/pquery.h b/dependencies/yaz-2.1.28/include/yaz/pquery.h new file mode 100644 index 0000000..a1fd58a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/pquery.h @@ -0,0 +1,97 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: pquery.h,v 1.8 2006/04/01 11:45:23 adam Exp $ + */ +/** + * \file pquery.h + * \brief Header for PQF parsing + */ + +#ifndef PQUERY_H +#define PQUERY_H + +#include +#include + +YAZ_BEGIN_CDECL + +typedef struct yaz_pqf_parser *YAZ_PQF_Parser; + +YAZ_EXPORT Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf); + +YAZ_EXPORT Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto, + Odr_oid **attributeSetP, const char *qbuf); +YAZ_EXPORT int p_query_attset (const char *arg); + +YAZ_EXPORT YAZ_PQF_Parser yaz_pqf_create (void); +YAZ_EXPORT Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, + const char *qbuf); +YAZ_EXPORT Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o, + Odr_oid **attributeSetId, + const char *qbuf); +YAZ_EXPORT void yaz_pqf_destroy (YAZ_PQF_Parser p); + +YAZ_EXPORT int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off); + + +/* no error */ +#define YAZ_PQF_ERROR_NONE 0 + +/* extra token (end of query expected) */ +#define YAZ_PQF_ERROR_EXTRA 1 + +/* missing token (at least one token expected) */ +#define YAZ_PQF_ERROR_MISSING 2 + +/* bad attribute set (for @attr and @attrset) */ +#define YAZ_PQF_ERROR_ATTSET 3 + +/* too many items (limit reached - too many attributes, etc) */ +#define YAZ_PQF_ERROR_TOOMANY 4 + +/* bad format of attribute (missing =) */ +#define YAZ_PQF_ERROR_BADATTR 5 + +/* internal failure */ +#define YAZ_PQF_ERROR_INTERNAL 6 + +/* bad proximity args */ +#define YAZ_PQF_ERROR_PROXIMITY 7 + +/* bad unsigned integer */ +#define YAZ_PQF_ERROR_BAD_INTEGER 8 + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/proto.h b/dependencies/yaz-2.1.28/include/yaz/proto.h new file mode 100644 index 0000000..957c3ed --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/proto.h @@ -0,0 +1,175 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: proto.h,v 1.22 2006/03/30 14:15:20 adam Exp $ + */ +/** + * \file proto.h + * \brief Header for Z39.50 Protocol + */ +#ifndef Z_PROTO_H +#define Z_PROTO_H + +#define Z_95 1 +#define ASN_COMPILED 1 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +YAZ_BEGIN_CDECL + +#if 1 +#define Z_PRES_SUCCESS Z_PresentStatus_success +#define Z_PRES_PARTIAL_1 Z_PresentStatus_partial_1 +#define Z_PRES_PARTIAL_2 Z_PresentStatus_partial_2 +#define Z_PRES_PARTIAL_3 Z_PresentStatus_partial_3 +#define Z_PRES_PARTIAL_4 Z_PresentStatus_partial_4 +#define Z_PRES_FAILURE Z_PresentStatus_failure + +#define Z_RES_SUBSET Z_SearchResponse_subset +#define Z_RES_INTERIM Z_SearchResponse_interim +#define Z_RES_NONE Z_SearchResponse_none + +#define Z_SortStatus_success Z_SortResponse_success +#define Z_SortStatus_partial_1 Z_SortResponse_partial_1 +#define Z_SortStatus_failure Z_SortResponse_failure + +#define Z_SortRelation_ascending Z_SortKeySpec_ascending +#define Z_SortRelation_descending Z_SortKeySpec_descending +#define Z_SortRelation_ascendingByFreq Z_SortKeySpec_ascendingByFrequency +#define Z_SortRelation_descendingByFreq Z_SortKeySpec_descendingByfrequency + +#define Z_SortCase_caseSensitive Z_SortKeySpec_caseSensitive +#define Z_SortCase_caseInsensitive Z_SortKeySpec_caseInsensitive + +#define Z_TriggerResourceCtrl_resourceReport Z_TriggerResourceControlRequest_resourceReport +#define Z_TriggerResourceCtrl_resourceControl Z_TriggerResourceControlRequest_resourceControl +#define Z_TriggerResourceCtrl_cancel Z_TriggerResourceControlRequest_cancel + +#define Z_DeleteRequest_list Z_DeleteResultSetRequest_list +#define Z_DeleteRequest_all Z_DeleteResultSetRequest_all + +#define Z_AccessRequest_simpleForm Z_AccessControlRequest_simpleForm +#define Z_AccessRequest_externallyDefined Z_AccessControlRequest_externallyDefined + +#define Z_AccessResponse_simpleForm Z_AccessControlResponse_simpleForm +#define Z_AccessResponse_externallyDefined Z_AccessControlResponse_externallyDefined + +#define Z_ResourceReportStatus_success Z_ResourceReportResponse_success +#define Z_ResourceReportStatus_partial Z_ResourceReportResponse_partial +#define Z_ResourceReportStatus_failure_1 Z_ResourceReportResponse_failure_1 +#define Z_ResourceReportStatus_failure_2 Z_ResourceReportResponse_failure_2 +#define Z_ResourceReportStatus_failure_3 Z_ResourceReportResponse_failure_3 +#define Z_ResourceReportStatus_failure_4 Z_ResourceReportResponse_failure_4 +#define Z_ResourceReportStatus_failure_5 Z_ResourceReportResponse_failure_5 +#define Z_ResourceReportStatus_failure_6 Z_ResourceReportResponse_failure_6 + +#define Z_SortResultSetStatus_empty Z_SortResponse_empty +#define Z_SortResultSetStatus_interim Z_SortResponse_interim +#define Z_SortResultSetStatus_unchanged Z_SortResponse_unchanged +#define Z_SortResultSetStatus_none Z_SortResponse_none +#endif + +typedef Z_External Z_DatabaseRecord; +typedef struct Z_IOItemOrder Z_ItemOrder; + +YAZ_EXPORT Z_APDU *zget_APDU(ODR o, int which); +YAZ_EXPORT Z_Close *zget_Close (ODR o); +YAZ_EXPORT Odr_oid *yaz_oidval_to_z3950oid (ODR o, int oid_class, + int oid_value); +YAZ_EXPORT Odr_oid *yaz_str_to_z3950oid (ODR o, int oid_class, + const char *str); +YAZ_EXPORT const char *yaz_z3950oid_to_str (Odr_oid *oid, int *oid_class); + +YAZ_EXPORT const char* yaz_z3950_oid_value_to_str(oid_value ov, oid_class oc); + +/** \brief Performs "pretty" display of GRS-1 record to WRBUF */ +YAZ_EXPORT void yaz_display_grs1(WRBUF wrbuf, Z_GenericRecord *r, int flags); + +/** \brief Performs "pretty" display of OPAC record to WRBUF */ +YAZ_EXPORT void yaz_display_OPAC(WRBUF wrbuf, Z_OPACRecord *r, int flags); + +/** \brief Performs "pretty" display of OPAC record to WRBUF using marc_t */ +YAZ_EXPORT void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf); + +/** \brief Encodes Z39.50 Init OPtions based on string mnemonics */ +YAZ_EXPORT int yaz_init_opt_encode(Z_Options *opt, const char *opt_str, + int *error_pos); + +/** \brief Decodes Z39.50 Init Options - for printing */ +YAZ_EXPORT void yaz_init_opt_decode(Z_Options *opt, + void (*pr)(const char *name, + void *clientData), + void *clientData); +/** \brief Creates Default Diag Format Diagnostic */ +YAZ_EXPORT +Z_DefaultDiagFormat *zget_DefaultDiagFormat(ODR o, int error, + const char *addinfo); + +/** \brief Creates Surrogate Diagnostic Records */ +YAZ_EXPORT +Z_NamePlusRecord *zget_surrogateDiagRec(ODR o, const char *dbname, + int error, const char *addinfo); + +/** \brief Creates Initialize Response diagnostics */ +YAZ_EXPORT +Z_External *zget_init_diagnostics(ODR odr, int error, const char *addinfo); + +/** \brief Creates Initialize Response diagnostics (Octet-aligned EXTERNAL) */ +YAZ_EXPORT +Z_External *zget_init_diagnostics_octet(ODR odr, int error, const char *addinfo); + +/** \brief Creates Diagnostic record - Z_DiagRecs type */ +YAZ_EXPORT +Z_DiagRecs *zget_DiagRecs(ODR o, int error, const char *addinfo); + +/** \brief Creates Diagnostic record - Z_DiagRecs type */ +YAZ_EXPORT +Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo); + +YAZ_END_CDECL + +#include + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/prt-ext.h b/dependencies/yaz-2.1.28/include/yaz/prt-ext.h new file mode 100644 index 0000000..1f18a34 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/prt-ext.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: prt-ext.h,v 1.13 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file prt-ext.h + * \brief Header for utilities that handles Z39.50 EXTERNALs + */ + +/* + * Biased-choice External for Z39.50. + */ + +#ifndef PRT_EXT_H +#define PRT_EXT_H + +#include +#include + + +YAZ_BEGIN_CDECL + +/** + * Used to keep track of known External definitions (a loose approach + * to DEFINED_BY). + */ +typedef struct Z_ext_typeent +{ + oid_value dref; /* the direct-reference OID value. */ + int what; /* discriminator value for the external CHOICE */ + Odr_fun fun; /* decoder function */ +} Z_ext_typeent; + +/** \brief structure for all known EXTERNALs */ +struct Z_External +{ + Odr_oid *direct_reference; + int *indirect_reference; + char *descriptor; + int which; +/* Generic types */ +#define Z_External_single 0 +#define Z_External_octet 1 +#define Z_External_arbitrary 2 +/* Specific types */ +#define Z_External_sutrs 3 +#define Z_External_explainRecord 4 +#define Z_External_resourceReport1 5 +#define Z_External_resourceReport2 6 +#define Z_External_promptObject1 7 +#define Z_External_grs1 8 +#define Z_External_extendedService 9 +#define Z_External_itemOrder 10 +#define Z_External_diag1 11 +#define Z_External_espec1 12 +#define Z_External_summary 13 +#define Z_External_OPAC 14 +#define Z_External_searchResult1 15 +#define Z_External_update 16 +#define Z_External_dateTime 17 +#define Z_External_universeReport 18 +#define Z_External_ESAdmin 19 +#define Z_External_update0 20 +#define Z_External_userInfo1 21 +#define Z_External_charSetandLanguageNegotiation 22 +#define Z_External_acfPrompt1 23 +#define Z_External_acfDes1 24 +#define Z_External_acfKrb1 25 +#define Z_External_multisrch2 26 +#define Z_External_CQL 27 +#define Z_External_OCLCUserInfo 28 + union + { + /* Generic types */ + Odr_any *single_ASN1_type; + Odr_oct *octet_aligned; + Odr_bitmask *arbitrary; + + /* Specific types */ + Z_SUTRS *sutrs; + Z_ExplainRecord *explainRecord; + + Z_ResourceReport1 *resourceReport1; + Z_ResourceReport2 *resourceReport2; + Z_PromptObject1 *promptObject1; + Z_GenericRecord *grs1; + Z_TaskPackage *extendedService; + + Z_ItemOrder *itemOrder; + Z_DiagnosticFormat *diag1; + Z_Espec1 *espec1; + Z_BriefBib *summary; + Z_OPACRecord *opac; + + Z_SearchInfoReport *searchResult1; + Z_IUUpdate *update; + Z_DateTime *dateTime; + Z_UniverseReport *universeReport; + Z_Admin *adminService; + + Z_IU0Update *update0; + Z_OtherInformation *userInfo1; + Z_CharSetandLanguageNegotiation *charNeg3; + Z_PromptObject1 *acfPrompt1; + Z_DES_RN_Object *acfDes1; + + Z_KRBObject *acfKrb1; + Z_MultipleSearchTerms_2 *multipleSearchTerms_2; + Z_InternationalString *cql; + Z_OCLC_UserInformation *oclc; + } u; +}; + + +/** \brief codec for BER EXTERNAL */ +YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); +/** \brief returns type information for OID (NULL if not known) */ +YAZ_EXPORT Z_ext_typeent *z_ext_getentbyref(oid_value val); +/** \brief encodes EXTERNAL record based on OID (NULL if knot known) */ +YAZ_EXPORT Z_External *z_ext_record(ODR o, int format, const char *buf, + int len); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/querytowrbuf.h b/dependencies/yaz-2.1.28/include/yaz/querytowrbuf.h new file mode 100644 index 0000000..75668eb --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/querytowrbuf.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: querytowrbuf.h,v 1.1 2006/01/20 10:34:51 adam Exp $ + */ + +/** + * \file querytowrbuf.h + * \brief Query to WRBUF (to strings) + */ + +#ifndef YAZ_QUERYTOWRBUF_H +#define YAZ_QUERYTOWRBUF_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT void yaz_query_to_wrbuf(WRBUF b, const Z_Query *q); +YAZ_EXPORT void yaz_scan_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt, + oid_value ast); +YAZ_EXPORT void yaz_rpnquery_to_wrbuf(WRBUF b, const Z_RPNQuery *rpn); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/readconf.h b/dependencies/yaz-2.1.28/include/yaz/readconf.h new file mode 100644 index 0000000..1d4685f --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/readconf.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: readconf.h,v 1.5 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file readconf.h + * \brief Header for config file reading utilities + */ + +#ifndef READCONF_H +#define READCONF_H + +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT int readconf(char *name, void *rprivate, + int (*fun)(char *name, void *rprivate, + int argc, char *argv[])); + +YAZ_EXPORT int readconf_line(FILE *f, int *lineno, + char *line, int len, char *argv[], int num); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/record_conv.h b/dependencies/yaz-2.1.28/include/yaz/record_conv.h new file mode 100644 index 0000000..397b614 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/record_conv.h @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: record_conv.h,v 1.4 2006/05/07 14:48:24 adam Exp $ + */ +/** + * \file record_conv.h + * \brief Record Conversions Utility + */ + +#ifndef YAZ_RECORD_CONV_H +#define YAZ_RECORD_CONV_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +/** record conversion handle */ +typedef struct yaz_record_conv_struct *yaz_record_conv_t; + +/** creates record handle + \return record handle +*/ +YAZ_EXPORT yaz_record_conv_t yaz_record_conv_create(void); + +/** destroys record handle + \param p record conversion handle +*/ +YAZ_EXPORT void yaz_record_conv_destroy(yaz_record_conv_t p); + +/** configures record conversion + \param p record conversion handle + \param node xmlNode pointer (root element of XML config) + \retval 0 success + \retval -1 failure + + On failure, use yaz_record_conv_get_error to get error string. + + \verbatim + + + + + \endverbatim + + \verbatim + + + + + + \endverbatim + + +*/ +YAZ_EXPORT +int yaz_record_conv_configure(yaz_record_conv_t p, const void *node); + +/** performs record conversion + \param p record conversion handle + \param input_record_buf input record buffer + \param input_record_len length of input record buffer + \param output_record resultint record (WRBUF string) + \retval 0 success + \retval -1 failure + + On failure, use yaz_record_conv_get_error to get error string. +*/ +YAZ_EXPORT +int yaz_record_conv_record(yaz_record_conv_t p, const char *input_record_buf, + size_t input_record_len, + WRBUF output_record); + +/** returns error string (for last error) + \param p record conversion handle + \return error string +*/ +YAZ_EXPORT +const char *yaz_record_conv_get_error(yaz_record_conv_t p); + + +/** set path for opening stylesheets etc. + \param p record conversion handle + \param path file path (UNIX style with : / Windows with ;) +*/ +YAZ_EXPORT +void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/retrieval.h b/dependencies/yaz-2.1.28/include/yaz/retrieval.h new file mode 100644 index 0000000..a6b26c1 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/retrieval.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: retrieval.h,v 1.5 2006/05/09 13:39:46 adam Exp $ + */ +/** + * \file retrieval.h + * \brief Retrieval Utility + */ + +#ifndef YAZ_RETRIEVAL_H +#define YAZ_RETRIEVAL_H + +#include +#include +#include + +#include + +YAZ_BEGIN_CDECL + +/** retrieval handle */ +typedef struct yaz_retrieval_struct *yaz_retrieval_t; + +/** creates retrieval handle + \return retrieval handle +*/ +YAZ_EXPORT yaz_retrieval_t yaz_retrieval_create(void); + +/** destroys retrieval handle + \param p retrieval handle +*/ +YAZ_EXPORT void yaz_retrieval_destroy(yaz_retrieval_t p); + +/** configures retrieval + \param p retrieval handle + \param node xmlNode pointer (root element of XML config) + \retval 0 success + \retval -1 failure + + On failure, use yaz_retrieval_get_error to get error string. + + For retrieval: + \verbatim + + + MARCXML + + + + + + + + \endverbatim +*/ +YAZ_EXPORT +int yaz_retrieval_configure(yaz_retrieval_t p, const void *node); + + +/** performs retrieval request based on schema and format + \param p retrieval handle + \param schema record schema (SRU) / element set name (Z39.50) + \param syntax record syntax (format) + \param match_schema matched schema (if conversion was successful) + \param match_syntax matced syntax OID if conversion was successful) + \param rc record conversion reference (if conversion was successful) + \param backend_schema backend scchema (if conversion was successful) + \param backend_syntax backend syntax (if conversion was successful) + \retval 0 success, schema and syntax matches + \retval -1 failure, use yaz_retrieval_get_error() for reason + \retval 1 schema does not match + \retval 2 syntax does not match + \retval 3 both match but not together +*/ +YAZ_EXPORT +int yaz_retrieval_request(yaz_retrieval_t p, + const char *schema, int *syntax, + const char **match_schema, int **match_syntax, + yaz_record_conv_t *rc, + const char **backend_schema, + int **backend_syntax); + +/** returns error string (for last error) + \param p record conversion handle + \return error string +*/ +YAZ_EXPORT +const char *yaz_retrieval_get_error(yaz_retrieval_t p); + + +/** set path for opening stylesheets etc. + \param p record conversion handle + \param path file path (UNIX style with : / Windows with ;) +*/ +YAZ_EXPORT +void yaz_retrieval_set_path(yaz_retrieval_t p, const char *path); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/soap.h b/dependencies/yaz-2.1.28/include/yaz/soap.h new file mode 100644 index 0000000..3696962 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/soap.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: soap.h,v 1.10 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file soap.h + * \brief Header for SOAP + */ + +#ifndef YAZ_SOAP_H +#define YAZ_SOAP_H + +#include + +YAZ_BEGIN_CDECL + +typedef struct { + char *fault_code; + char *fault_string; + char *details; +} Z_SOAP_Fault; + +typedef struct { + int no; + char *ns; + void *p; +} Z_SOAP_Generic; + +#define Z_SOAP_fault 1 +#define Z_SOAP_generic 2 +#define Z_SOAP_error 3 +typedef struct { + int which; + union { + Z_SOAP_Fault *fault; + Z_SOAP_Generic *generic; + Z_SOAP_Fault *soap_error; + } u; + const char *ns; +} Z_SOAP; + +typedef int (*Z_SOAP_fun)(ODR o, void * ptr, void **handler_data, + void *client_data, const char *ns); +typedef struct { + char *ns; + void *client_data; + Z_SOAP_fun f; +} Z_SOAP_Handler; + +YAZ_EXPORT int z_soap_codec(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers); +YAZ_EXPORT int z_soap_codec_enc(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding); +YAZ_EXPORT int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding, + const char *stylesheet); + +YAZ_EXPORT int z_soap_error(ODR o, Z_SOAP *p, + const char *fault_code, const char *fault_string, + const char *details); + +YAZ_END_CDECL +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/sortspec.h b/dependencies/yaz-2.1.28/include/yaz/sortspec.h new file mode 100644 index 0000000..ad34dbd --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/sortspec.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: sortspec.h,v 1.4 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file sortspec.h + * \brief Header for SortSpec parsing. + */ +#ifndef SORTSPEC_H +#define SORTSPEC_H + +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg); + +YAZ_END_CDECL + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/srw.h b/dependencies/yaz-2.1.28/include/yaz/srw.h new file mode 100644 index 0000000..4fd7c5c --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/srw.h @@ -0,0 +1,244 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: srw.h,v 1.28 2006/08/16 22:47:09 adam Exp $ + */ +/** + * \file srw.h + * \brief Header for SRW/SRU + */ + +#ifndef YAZ_SRW_H +#define YAZ_SRW_H + +#include +#include +#include + +YAZ_BEGIN_CDECL + +typedef struct { + int type; + char *recordReviewCode; + char *recordReviewNote; + char *recordId; + char *nonDupRecordId; + char *recordLockStatus; + char *recordOldVersion; +} Z_SRW_extra_record; + +typedef struct { + char *recordSchema; + int recordPacking; +#define Z_SRW_recordPacking_string 0 +#define Z_SRW_recordPacking_XML 1 +#define Z_SRW_recordPacking_URL 2 + char *recordData_buf; + int recordData_len; + int *recordPosition; +} Z_SRW_record; + +typedef struct { + char *uri; + char *details; + char *message; +} Z_SRW_diagnostic; + +typedef struct { + +#define Z_SRW_query_type_cql 1 +#define Z_SRW_query_type_xcql 2 +#define Z_SRW_query_type_pqf 3 + int query_type; + union { + char *cql; + char *xcql; + char *pqf; + } query; + +#define Z_SRW_sort_type_none 1 +#define Z_SRW_sort_type_sort 2 +#define Z_SRW_sort_type_xSort 3 + int sort_type; + union { + char *none; + char *sortKeys; + char *xSortKeys; + } sort; + int *startRecord; + int *maximumRecords; + char *recordSchema; + char *recordPacking; + char *recordXPath; + char *database; + char *stylesheet; + int *resultSetTTL; +} Z_SRW_searchRetrieveRequest; + +typedef struct { + int * numberOfRecords; + char * resultSetId; + int * resultSetIdleTime; + + Z_SRW_record *records; + int num_records; + + Z_SRW_diagnostic *diagnostics; + int num_diagnostics; + int *nextRecordPosition; + + Z_SRW_extra_record **extra_records; /* of size num_records */ +} Z_SRW_searchRetrieveResponse; + +typedef struct { + char *recordPacking; + char *database; + char *stylesheet; +} Z_SRW_explainRequest; + +typedef struct { + Z_SRW_record record; + Z_SRW_diagnostic *diagnostics; + int num_diagnostics; + Z_SRW_extra_record *extra_record; +} Z_SRW_explainResponse; + +typedef struct { + int query_type; + union { + char *cql; + char *xcql; + char *pqf; + } scanClause; + int *responsePosition; + int *maximumTerms; + char *stylesheet; + char *database; +} Z_SRW_scanRequest; + +typedef struct { + char *value; + int *numberOfRecords; + char *displayTerm; + char *whereInList; +} Z_SRW_scanTerm; + +typedef struct { + Z_SRW_scanTerm *terms; + int num_terms; + Z_SRW_diagnostic *diagnostics; + int num_diagnostics; +} Z_SRW_scanResponse; + + +typedef struct { + char *database; + char *operation; + char *recordId; + char *recordVersion; + char *recordOldVersion; + Z_SRW_record record; + Z_SRW_extra_record *extra_record; + char *extraRequestData; + char *stylesheet; +} Z_SRW_updateRequest; + +typedef struct { + char *operationStatus; + char *recordId; + char *recordVersion; + char *recordChecksum; + char *extraResponseData; + Z_SRW_record record; + Z_SRW_extra_record *extra_record; + Z_SRW_diagnostic *diagnostics; + int num_diagnostics; +} Z_SRW_updateResponse; + +#define Z_SRW_searchRetrieve_request 1 +#define Z_SRW_searchRetrieve_response 2 +#define Z_SRW_explain_request 3 +#define Z_SRW_explain_response 4 +#define Z_SRW_scan_request 5 +#define Z_SRW_scan_response 6 +#define Z_SRW_update_request 7 +#define Z_SRW_update_response 8 + +typedef struct { + int which; + union { + Z_SRW_searchRetrieveRequest *request; + Z_SRW_searchRetrieveResponse *response; + Z_SRW_explainRequest *explain_request; + Z_SRW_explainResponse *explain_response; + Z_SRW_scanRequest *scan_request; + Z_SRW_scanResponse *scan_response; + Z_SRW_updateRequest *update_request; + Z_SRW_updateResponse *update_response; + } u; + char *srw_version; + char *username; /* From HTTP header or request */ + char *password; /* From HTTP header or request */ + char *extra_args; /* For SRU GET/POST only */ +} Z_SRW_PDU; + +YAZ_EXPORT int yaz_srw_codec(ODR o, void * pptr, + Z_SRW_PDU **handler_data, + void *client_data, const char *ns); +YAZ_EXPORT int yaz_ucp_codec(ODR o, void * pptr, + Z_SRW_PDU **handler_data, + void *client_data, const char *ns); +YAZ_EXPORT Z_SRW_PDU *yaz_srw_get_core_v_1_1(ODR o); +YAZ_EXPORT Z_SRW_PDU *yaz_srw_get(ODR o, int which); +YAZ_EXPORT Z_SRW_extra_record *yaz_srw_get_extra_record(ODR o); + +YAZ_EXPORT int yaz_diag_bib1_to_srw (int bib1_code); + +YAZ_EXPORT int yaz_diag_srw_to_bib1(int srw_code); + +YAZ_EXPORT char *yaz_uri_val(const char *path, const char *name, ODR o); +YAZ_EXPORT void yaz_uri_val_int(const char *path, const char *name, + ODR o, int **intp); +YAZ_EXPORT int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, + Z_SOAP **soap_package, ODR decode, char **charset); +YAZ_EXPORT int yaz_sru_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, + Z_SOAP **soap_package, ODR decode, + char **charset, + Z_SRW_diagnostic **, int *num_diagnostic); + +YAZ_EXPORT void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d, + int *num, int code, + const char *addinfo); + + +YAZ_EXPORT void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d, + int code, const char *details); + +YAZ_EXPORT void yaz_add_srw_diagnostic_uri(ODR o, Z_SRW_diagnostic **d, + int *num, const char *uri, + const char *message, + const char *details); + +YAZ_EXPORT void yaz_mk_srw_diagnostic(ODR o, Z_SRW_diagnostic *d, + const char *uri, const char *message, + const char *details); + +YAZ_EXPORT int yaz_sru_get_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR encode, const char *charset); +YAZ_EXPORT int yaz_sru_post_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR encode, const char *charset); +YAZ_EXPORT int yaz_sru_soap_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR odr, const char *charset); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/statserv.h b/dependencies/yaz-2.1.28/include/yaz/statserv.h new file mode 100644 index 0000000..dee291e --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/statserv.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: statserv.h,v 1.9 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file statserv.h + * \brief Header for GFS (Obsolete. Use yaz/backend.h) + */ + +#ifndef STATSERVER_H +#define STATSERVER_H + +#include +#include + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/tcpip.h b/dependencies/yaz-2.1.28/include/yaz/tcpip.h new file mode 100644 index 0000000..70beb9d --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/tcpip.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: tcpip.h,v 1.8 2006/08/30 18:58:58 adam Exp $ + */ +/** + * \file tcpip.h + * \brief Header for TCP/IP + SSL COMSTACK. + */ + +#ifndef TCPIP_H +#define TCPIP_H + +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT int completeWAIS(const unsigned char *buf, int len); +YAZ_EXPORT COMSTACK tcpip_type(int s, int blocking, int protocol, void *vp); +YAZ_EXPORT COMSTACK ssl_type(int s, int blocking, int protocol, void *vp); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/test.h b/dependencies/yaz-2.1.28/include/yaz/test.h new file mode 100644 index 0000000..aaf8d4e --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/test.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: test.h,v 1.9 2006/07/07 13:39:02 heikki Exp $ + */ + +/** \file test.h + \brief Unit Test for YAZ +*/ + +#ifndef YAZ_TEST_H +#define YAZ_TEST_H + +#include +#include + +/** \brief Get the verbosity level */ +int yaz_test_get_verbosity(); + +/** \brief Test OK */ +#define YAZ_TEST_TYPE_OK 1 +/** \brief Test failed */ +#define YAZ_TEST_TYPE_FAIL 2 + +/** \brief boolean test. as only evaluated once */ +#define YAZ_CHECK(as) { \ + if (as) { \ + yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, #as); \ + } else { \ + yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, #as); \ + } \ +} + +/** \brief a test we know will fail at this time. + * + * Later, when the bug is fixed, this test will suddenly pass, + * which will be reported as an error, to remind you to go and fix + * your tests. + */ + +#define YAZ_CHECK_TODO(as) { \ + yaz_check_inc_todo(); \ + if (!as) { \ + yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, "TODO: " #as); \ + } else { \ + yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, "TODO: "#as); \ + } \ +} + +/** \brief equality test. left, right only evaluated once */ +#define YAZ_CHECK_EQ(left, right) { \ + int lval = left; \ + int rval = right; \ + if (lval == rval) { \ + yaz_check_eq1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, \ + #left, #right, lval, rval); \ + } else { \ + yaz_check_eq1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, \ + #left, #right, lval, rval); \ + } \ +} + +/** \brief Macro to initialize the system (in start of main typically) */ +#define YAZ_CHECK_INIT(argc, argv) yaz_check_init1(&argc, &argv) +/** \brief Macro to terminate the system (end of main, normally) */ +#define YAZ_CHECK_TERM yaz_check_term1(); return 0 + +/** \brief Macro to enable and initialize the yaz_log(start of main) */ +#define YAZ_CHECK_LOG() yaz_check_init_log(argv[0]) + +YAZ_BEGIN_CDECL + +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_init1(int *argc, char ***argv); + +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_term1(void); + +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_init_log(const char *argv0); + +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_print1(int type, const char *file, int line, + const char *expr); +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_eq1(int type, const char *file, int line, + const char *left, const char *right, + int lval, int rval); +/** \brief used by macro. Should not be called directly */ +YAZ_EXPORT void yaz_check_inc_todo(void); +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/tpath.h b/dependencies/yaz-2.1.28/include/yaz/tpath.h new file mode 100644 index 0000000..dc07f59 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/tpath.h @@ -0,0 +1,104 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: tpath.h,v 1.11 2006/05/02 12:11:08 adam Exp $ + * + */ +/** + * \file tpath.h + * \brief File Path utilities + */ + +#ifndef TPATH_H +#define TPATH_H + +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief checks whether path is absolute + \param path path to checked + + Returns 1 if path is absolute, 0 if relative +*/ +YAZ_EXPORT int yaz_is_abspath (const char *path); + +/** \brief resolve file on path + \param fname "short" filename (without path) + \param path the path (dir1:dir2,..) - ala Unix + \param base can be added to relative paths (NULL for no append) + \param fullpath the full path to filename (if succesful) + + Returns 0/NULL if no fname could be found in path; + pointer to fullpath if fname could be found. + We assume fullpath is 1024 bytes in length! +*/ +YAZ_EXPORT char *yaz_filepath_resolve(const char *fname, const char *path, + const char *base, char *fullpath); + + +/** \brief opens first file in path in path + \param fname "short" filename (without path) + \param mode mode as in fopen(3) + \param path the path (dir1:dir2,..) - ala Unix + \param base can be added to relative paths (NULL for no append) + + Returns 0/NULL if no fname could be found in path; + FILE pointer if fname could be found. +*/ +YAZ_EXPORT FILE *yaz_fopen(const char *path, const char *fname, + const char *mode, const char *base); + +/** \brief opens first file in path in path + \param fname "short" filename (without path) + \param mode mode as in fopen(3) + \param path the path (dir1:dir2,..) - ala Unix + + Returns 0/NULL if no fname could be found in path; + FILE pointer if fname could be found. +*/ +YAZ_EXPORT FILE *yaz_path_fopen(const char *path, const char *fname, + const char *mode); + +/** \brief closes file + \param f FILE handle + + Returns -1 on failure; 0 on success +*/ +YAZ_EXPORT int yaz_fclose(FILE *f); + + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/unix.h b/dependencies/yaz-2.1.28/include/yaz/unix.h new file mode 100644 index 0000000..6f1a7aa --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/unix.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: unix.h,v 1.5 2005/06/25 15:46:03 adam Exp $ + * UNIX socket COMSTACK. By Morten Bøgeskov. + */ +/** + * \file unix.h + * \brief Header for UNIX domain socket COMSTACK + */ + +#ifndef UNIX_H +#define UNIX_H + +#ifndef WIN32 + +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT int completeWAIS(const unsigned char *buf, int len); +YAZ_EXPORT struct sockaddr_un *unix_strtoaddr(const char *str); +YAZ_EXPORT COMSTACK unix_type(int s, int blocking, int protocol, void *vp); + +YAZ_END_CDECL + +#endif + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/wrbuf.h b/dependencies/yaz-2.1.28/include/yaz/wrbuf.h new file mode 100644 index 0000000..6a2079f --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/wrbuf.h @@ -0,0 +1,91 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: wrbuf.h,v 1.19 2006/08/28 12:34:40 adam Exp $ + */ +/** + * \file wrbuf.h + * \brief Header for WRBUF (growing buffer) + */ + +#ifndef WRBUF_H +#define WRBUF_H + +#include +#include + +YAZ_BEGIN_CDECL + +typedef struct wrbuf +{ + char *buf; + int pos; + int size; +} wrbuf, *WRBUF; + +YAZ_EXPORT WRBUF wrbuf_alloc(void); +YAZ_EXPORT void wrbuf_free(WRBUF b, int free_buf); +YAZ_EXPORT void wrbuf_rewind(WRBUF b); +YAZ_EXPORT int wrbuf_grow(WRBUF b, int minsize); +YAZ_EXPORT int wrbuf_write(WRBUF b, const char *buf, int size); +YAZ_EXPORT int wrbuf_xmlputs_n(WRBUF b, const char *cp, int size); +YAZ_EXPORT int wrbuf_puts(WRBUF b, const char *buf); +YAZ_EXPORT int wrbuf_puts_replace_char(WRBUF b, const char *buf, + const char from, const char to); +YAZ_EXPORT int wrbuf_xmlputs(WRBUF b, const char *cp); +YAZ_EXPORT void wrbuf_printf(WRBUF b, const char *fmt, ...) +#ifdef __GNUC__ + __attribute__ ((format (printf, 2, 3))) +#endif + ; + +YAZ_EXPORT int wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, + int size); +YAZ_EXPORT int wrbuf_iconv_write_cdata(WRBUF b, yaz_iconv_t cd, + const char *buf, int size); +YAZ_EXPORT int wrbuf_iconv_puts(WRBUF b, yaz_iconv_t cd, const char *strz); + +YAZ_EXPORT int wrbuf_iconv_putchar(WRBUF b, yaz_iconv_t cd, int ch); + +YAZ_EXPORT void wrbuf_chop_right(WRBUF b); + +#define wrbuf_len(b) ((b)->pos) +#define wrbuf_buf(b) ((b)->buf) + +#define wrbuf_putc(b, c) \ + (((b)->pos >= (b)->size ? wrbuf_grow(b, 1) : 0), \ + (b)->buf[(b)->pos++] = (c), 0) + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/xmalloc.h b/dependencies/yaz-2.1.28/include/yaz/xmalloc.h new file mode 100644 index 0000000..5617ed8 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/xmalloc.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: xmalloc.h,v 1.7 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file xmalloc.h + * \brief Header for malloc interface. + */ + +#ifndef XMALLOC_H +#define XMALLOC_H + +#include + +#include + +YAZ_BEGIN_CDECL + +#define xrealloc(o, x) xrealloc_f(o, x, __FILE__, __LINE__) +#define xmalloc(x) xmalloc_f(x, __FILE__, __LINE__) +#define xcalloc(x,y) xcalloc_f(x,y, __FILE__, __LINE__) +#define xfree(x) xfree_f(x, __FILE__, __LINE__) +#define xstrdup(s) xstrdup_f(s, __FILE__, __LINE__) +#define xmalloc_trav(s) xmalloc_trav_f(s, __FILE__, __LINE__) + +YAZ_EXPORT void *xrealloc_f (void *o, size_t size, const char *file, int line); +YAZ_EXPORT void *xmalloc_f (size_t size, const char *file, int line); +YAZ_EXPORT void *xcalloc_f (size_t nmemb, size_t size, + const char *file, int line); +YAZ_EXPORT char *xstrdup_f (const char *p, const char *file, int line); +YAZ_EXPORT void xfree_f (void *p, const char *file, int line); +YAZ_EXPORT void xmalloc_trav_f(const char *s, const char *file, int line); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/xmlquery.h b/dependencies/yaz-2.1.28/include/yaz/xmlquery.h new file mode 100644 index 0000000..595519c --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/xmlquery.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: xmlquery.h,v 1.5 2006/07/06 10:17:52 adam Exp $ + */ + +/** \file xmlquery.h + \brief Query / XML conversions +*/ + +#ifndef YAZ_XMLQUERY_H +#define YAZ_XMLQUERY_H + +#if YAZ_HAVE_XML2 +#include +#include + +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT void yaz_query2xml(const Z_Query *q, xmlDocPtr *docp); +YAZ_EXPORT void yaz_rpnquery2xml(const Z_RPNQuery *rpn, xmlDocPtr *docp); + +YAZ_EXPORT void yaz_xml2query(const void *xmlnodep, Z_Query **query, ODR odr, + int *error_code, const char **addinfo); + +YAZ_END_CDECL + +#endif +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/yaz-ccl.h b/dependencies/yaz-2.1.28/include/yaz/yaz-ccl.h new file mode 100644 index 0000000..5efe558 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/yaz-ccl.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: yaz-ccl.h,v 1.9 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file yaz-ccl.h + * \brief Header for CCL node tree to RPN converson utilities. + */ + +#ifndef YAZ_CCL_H +#define YAZ_CCL_H + +#include +#include +#include +#include + +YAZ_BEGIN_CDECL + +YAZ_EXPORT Z_RPNQuery *ccl_rpn_query (ODR o, struct ccl_rpn_node *p); +YAZ_EXPORT Z_AttributesPlusTerm *ccl_scan_query (ODR o, struct ccl_rpn_node *p); +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/yaz-iconv.h b/dependencies/yaz-2.1.28/include/yaz/yaz-iconv.h new file mode 100644 index 0000000..f75f544 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/yaz-iconv.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: yaz-iconv.h,v 1.11 2006/08/24 10:01:03 adam Exp $ + */ +/** + * \file yaz-iconv.h + * \brief Header for YAZ iconv interface + */ + +#ifndef YAZ_ICONV_H +#define YAZ_ICONV_H + +#include +#include + +YAZ_BEGIN_CDECL + +/** \brief yaz_iconv handle (similar to iconv_t) */ +typedef struct yaz_iconv_struct *yaz_iconv_t; + +/** \brief error code: unknown */ +#define YAZ_ICONV_UNKNOWN 1 +/** \brief error code: Not sufficient room for output buffer */ +#define YAZ_ICONV_E2BIG 2 +/** \brief error code: Invalid sequence */ +#define YAZ_ICONV_EILSEQ 3 +/** \brief error code: An incomplete multibyte sequence is in input buffer */ +#define YAZ_ICONV_EINVAL 4 + +/** \brief just like iconv_open(3) */ +YAZ_EXPORT yaz_iconv_t yaz_iconv_open (const char *tocode, + const char *fromcode); +/** \brief just like iconv(3) */ +YAZ_EXPORT size_t yaz_iconv (yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft); +/** \brief returns last error - like errno for iconv(3) */ +YAZ_EXPORT int yaz_iconv_error (yaz_iconv_t cd); + +/** \brief just like iconv_close(3) */ +YAZ_EXPORT int yaz_iconv_close (yaz_iconv_t cd); + +/** \brief tests whether conversion is handled by YAZ' iconv or system iconv */ +YAZ_EXPORT int yaz_iconv_isbuiltin(yaz_iconv_t cd); + +YAZ_EXPORT int yaz_matchstr(const char *s1, const char *s2); + +YAZ_EXPORT int yaz_strcmp_del(const char *a, const char *b, const char *b_del); + +/** \brief decodes UTF-8 sequence + \param inp input buffer with UTF-8 bytes + \param inbytesleft length of input buffer + \param no_read holds number of bytes read if conversion is successful + \param error pointer to error code if error occurs + \retval 0 if error + \retval >0 if conversion is successful +*/ +YAZ_EXPORT unsigned long yaz_read_UTF8_char(unsigned char *inp, + size_t inbytesleft, + size_t *no_read, + int *error); + +/** \brief encodes UTF-8 sequence + \param x the UNICODE value + \param outbuf output buffer pointer, updated if conversion is successful + \param outbytesleft length of buffer, updated if conversino is successful + \param error pointer to error code if error occurs + \retval 0 if successful + \retval -1 for error +*/ +YAZ_EXPORT size_t yaz_write_UTF8_char(unsigned long x, + char **outbuf, size_t *outbytesleft, + int *error); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/yaz-util.h b/dependencies/yaz-2.1.28/include/yaz/yaz-util.h new file mode 100644 index 0000000..a52732f --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/yaz-util.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: yaz-util.h,v 1.16 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file yaz-util.h + * \brief Header for common YAZ utilities + */ + +#ifndef YAZ_UTIL_H +#define YAZ_UTIL_H + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/yaz-version.h b/dependencies/yaz-2.1.28/include/yaz/yaz-version.h new file mode 100644 index 0000000..7555019 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/yaz-version.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: yaz-version.h,v 1.90 2006/09/04 10:14:36 adam Exp $ + */ + +/** + * \file yaz-version.h + * \brief Defines YAZ version. + */ +#ifndef YAZ_VERSION + +#include + +#define YAZ_VERSION "2.1.28" +#define YAZ_VERSIONL 0x02011C + +#define YAZ_DATE 1 + +#ifdef WIN32 +#ifdef NDEBUG +#define YAZ_OS "WIN32 Release" +#else +#define YAZ_OS "WIN32 Debug" +#endif +#endif + +YAZ_BEGIN_CDECL + +YAZ_EXPORT unsigned long yaz_version(char *version_str, char *sys_str); + +YAZ_END_CDECL + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/yconfig.h b/dependencies/yaz-2.1.28/include/yaz/yconfig.h new file mode 100644 index 0000000..73389ab --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/yconfig.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: yconfig.h,v 1.9 2005/06/25 15:46:03 adam Exp $ + */ +/** + * \file yconfig.h + * \brief Header with fundamental macros + */ + +#ifndef YCONFIG_H +#define YCONFIG_H + +#ifndef YAZ_EXPORT +# ifdef WIN32 +# define YAZ_EXPORT __declspec(dllexport) +# else +# define YAZ_EXPORT +# endif +#endif + +#ifndef WIN32 +# ifndef O_BINARY +# define O_BINARY 0 +# endif +#endif + +#ifdef __cplusplus +#define YAZ_BEGIN_CDECL extern "C" { +#define YAZ_END_CDECL } +#else +#define YAZ_BEGIN_CDECL +#define YAZ_END_CDECL +#endif + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/z-accdes1.h b/dependencies/yaz-2.1.28/include/yaz/z-accdes1.h new file mode 100644 index 0000000..8e0bf0d --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-accdes1.h @@ -0,0 +1,45 @@ +/** \file z-accdes1.h + \brief ASN.1 Module AccessControlFormat-des-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_accdes1_H +#define z_accdes1_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_DES_RN_Object Z_DES_RN_Object; +YAZ_EXPORT int z_DES_RN_Object (ODR o, Z_DES_RN_Object **p, int opt, const char *name); + +typedef struct Z_DRNType Z_DRNType; +YAZ_EXPORT int z_DRNType (ODR o, Z_DRNType **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_DES_RN_Object { + int which; + union { + Z_DRNType *challenge; + Z_DRNType *response; +#define Z_DES_RN_Object_challenge 1 +#define Z_DES_RN_Object_response 2 + } u; +}; + +struct Z_DRNType { + Odr_oct *userId; /* OPT */ + Odr_oct *salt; /* OPT */ + Odr_oct *randomNumber; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-accform1.h b/dependencies/yaz-2.1.28/include/yaz/z-accform1.h new file mode 100644 index 0000000..25eca98 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-accform1.h @@ -0,0 +1,137 @@ +/** \file z-accform1.h + \brief ASN.1 Module AccessControlFormat-prompt-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_accform1_H +#define z_accform1_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_PromptObject1 Z_PromptObject1; +YAZ_EXPORT int z_PromptObject1 (ODR o, Z_PromptObject1 **p, int opt, const char *name); + +typedef struct Z_ChallengeUnit1 Z_ChallengeUnit1; +YAZ_EXPORT int z_ChallengeUnit1 (ODR o, Z_ChallengeUnit1 **p, int opt, const char *name); + +typedef struct Z_Challenge1 Z_Challenge1; +YAZ_EXPORT int z_Challenge1 (ODR o, Z_Challenge1 **p, int opt, const char *name); + +typedef struct Z_ResponseUnit1 Z_ResponseUnit1; +YAZ_EXPORT int z_ResponseUnit1 (ODR o, Z_ResponseUnit1 **p, int opt, const char *name); + +typedef struct Z_Response1 Z_Response1; +YAZ_EXPORT int z_Response1 (ODR o, Z_Response1 **p, int opt, const char *name); + +typedef struct Z_PromptIdEnumeratedPrompt Z_PromptIdEnumeratedPrompt; +YAZ_EXPORT int z_PromptIdEnumeratedPrompt (ODR o, Z_PromptIdEnumeratedPrompt **p, int opt, const char *name); + +typedef struct Z_PromptId Z_PromptId; +YAZ_EXPORT int z_PromptId (ODR o, Z_PromptId **p, int opt, const char *name); + +typedef struct Z_Encryption Z_Encryption; +YAZ_EXPORT int z_Encryption (ODR o, Z_Encryption **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_PromptObject1 { + int which; + union { + Z_Challenge1 *challenge; + Z_Response1 *response; +#define Z_PromptObject1_challenge 1 +#define Z_PromptObject1_response 2 + } u; +}; + +struct Z_ChallengeUnit1 { + Z_PromptId *promptId; + Z_InternationalString *defaultResponse; /* OPT */ + int which; + union { + Z_InternationalString *character; + Z_Encryption *encrypted; +#define Z_ChallengeUnit1_character 1 +#define Z_ChallengeUnit1_encrypted 2 + } u; /* OPT */ + Z_InternationalString *regExpr; /* OPT */ + Odr_null *responseRequired; /* OPT */ + int num_allowedValues; + Z_InternationalString **allowedValues; /* OPT */ + Odr_null *shouldSave; /* OPT */ +#define Z_ChallengeUnit1_integer 1 +#define Z_ChallengeUnit1_date 2 +#define Z_ChallengeUnit1_float 3 +#define Z_ChallengeUnit1_alphaNumeric 4 +#define Z_ChallengeUnit1_url_urn 5 +#define Z_ChallengeUnit1_boolean 6 + int *dataType; /* OPT */ + Z_External *diagnostic; /* OPT */ +}; + +struct Z_Challenge1 { + int num; + Z_ChallengeUnit1 **elements; +}; + +struct Z_ResponseUnit1 { + Z_PromptId *promptId; + int which; + union { + Z_InternationalString *string; + bool_t *accept; + Odr_null *acknowledge; + Z_DiagRec *diagnostic; + Z_Encryption *encrypted; +#define Z_ResponseUnit1_string 1 +#define Z_ResponseUnit1_accept 2 +#define Z_ResponseUnit1_acknowledge 3 +#define Z_ResponseUnit1_diagnostic 4 +#define Z_ResponseUnit1_encrypted 5 + } u; +}; + +struct Z_Response1 { + int num; + Z_ResponseUnit1 **elements; +}; + +struct Z_PromptIdEnumeratedPrompt { +#define Z_PromptIdEnumeratedPrompt_groupId 0 +#define Z_PromptIdEnumeratedPrompt_userId 1 +#define Z_PromptIdEnumeratedPrompt_password 2 +#define Z_PromptIdEnumeratedPrompt_newPassword 3 +#define Z_PromptIdEnumeratedPrompt_copyright 4 +#define Z_PromptIdEnumeratedPrompt_sessionId 5 + int *type; + Z_InternationalString *suggestedString; /* OPT */ +}; + +struct Z_PromptId { + int which; + union { + Z_PromptIdEnumeratedPrompt *enumeratedPrompt; + Z_InternationalString *nonEnumeratedPrompt; +#define Z_PromptId_enumeratedPrompt 1 +#define Z_PromptId_nonEnumeratedPrompt 2 + } u; +}; + +struct Z_Encryption { + Odr_oct *cryptType; /* OPT */ + Odr_oct *credential; /* OPT */ + Odr_oct *data; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-acckrb1.h b/dependencies/yaz-2.1.28/include/yaz/z-acckrb1.h new file mode 100644 index 0000000..ef9f351 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-acckrb1.h @@ -0,0 +1,54 @@ +/** \file z-acckrb1.h + \brief ASN.1 Module AccessControlFormat-krb-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_acckrb1_H +#define z_acckrb1_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_KRBObject Z_KRBObject; +YAZ_EXPORT int z_KRBObject (ODR o, Z_KRBObject **p, int opt, const char *name); + +typedef struct Z_KRBRequest Z_KRBRequest; +YAZ_EXPORT int z_KRBRequest (ODR o, Z_KRBRequest **p, int opt, const char *name); + +typedef struct Z_KRBResponse Z_KRBResponse; +YAZ_EXPORT int z_KRBResponse (ODR o, Z_KRBResponse **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_KRBObject { + int which; + union { + Z_KRBRequest *challenge; + Z_KRBResponse *response; +#define Z_KRBObject_challenge 1 +#define Z_KRBObject_response 2 + } u; +}; + +struct Z_KRBRequest { + Z_InternationalString *service; + Z_InternationalString *instance; /* OPT */ + Z_InternationalString *realm; /* OPT */ +}; + +struct Z_KRBResponse { + Z_InternationalString *userid; /* OPT */ + Odr_oct *ticket; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-charneg.h b/dependencies/yaz-2.1.28/include/yaz/z-charneg.h new file mode 100644 index 0000000..fd66380 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-charneg.h @@ -0,0 +1,189 @@ +/** \file z-charneg.h + \brief ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_charneg_H +#define z_charneg_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_CharSetandLanguageNegotiation Z_CharSetandLanguageNegotiation; +YAZ_EXPORT int z_CharSetandLanguageNegotiation (ODR o, Z_CharSetandLanguageNegotiation **p, int opt, const char *name); + +typedef struct Z_OriginProposal_0 Z_OriginProposal_0; +YAZ_EXPORT int z_OriginProposal_0 (ODR o, Z_OriginProposal_0 **p, int opt, const char *name); + +typedef struct Z_OriginProposal Z_OriginProposal; +YAZ_EXPORT int z_OriginProposal (ODR o, Z_OriginProposal **p, int opt, const char *name); + +typedef struct Z_TargetResponse Z_TargetResponse; +YAZ_EXPORT int z_TargetResponse (ODR o, Z_TargetResponse **p, int opt, const char *name); + +typedef struct Z_PrivateCharacterSetViaOid Z_PrivateCharacterSetViaOid; +YAZ_EXPORT int z_PrivateCharacterSetViaOid (ODR o, Z_PrivateCharacterSetViaOid **p, int opt, const char *name); + +typedef struct Z_PrivateCharacterSet Z_PrivateCharacterSet; +YAZ_EXPORT int z_PrivateCharacterSet (ODR o, Z_PrivateCharacterSet **p, int opt, const char *name); + +typedef struct Z_Iso2022OriginProposal Z_Iso2022OriginProposal; +YAZ_EXPORT int z_Iso2022OriginProposal (ODR o, Z_Iso2022OriginProposal **p, int opt, const char *name); + +typedef struct Z_Iso2022TargetResponse Z_Iso2022TargetResponse; +YAZ_EXPORT int z_Iso2022TargetResponse (ODR o, Z_Iso2022TargetResponse **p, int opt, const char *name); + +typedef struct Z_Iso2022 Z_Iso2022; +YAZ_EXPORT int z_Iso2022 (ODR o, Z_Iso2022 **p, int opt, const char *name); + +typedef struct Z_Environment Z_Environment; +YAZ_EXPORT int z_Environment (ODR o, Z_Environment **p, int opt, const char *name); + +typedef struct Z_InitialSet Z_InitialSet; +YAZ_EXPORT int z_InitialSet (ODR o, Z_InitialSet **p, int opt, const char *name); + +typedef struct Z_LeftAndRight Z_LeftAndRight; +YAZ_EXPORT int z_LeftAndRight (ODR o, Z_LeftAndRight **p, int opt, const char *name); + +typedef struct Z_Iso10646 Z_Iso10646; +YAZ_EXPORT int z_Iso10646 (ODR o, Z_Iso10646 **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_CharSetandLanguageNegotiation { + int which; + union { + Z_OriginProposal *proposal; + Z_TargetResponse *response; +#define Z_CharSetandLanguageNegotiation_proposal 1 +#define Z_CharSetandLanguageNegotiation_response 2 + } u; +}; + +struct Z_OriginProposal_0 { + int which; + union { + Z_Iso2022 *iso2022; + Z_Iso10646 *iso10646; + Z_PrivateCharacterSet *zprivate; +#define Z_OriginProposal_0_iso2022 1 +#define Z_OriginProposal_0_iso10646 2 +#define Z_OriginProposal_0_private 3 + } u; +}; + +struct Z_OriginProposal { + int num_proposedCharSets; + Z_OriginProposal_0 **proposedCharSets; /* OPT */ + int num_proposedlanguages; + Z_LanguageCode **proposedlanguages; /* OPT */ + bool_t *recordsInSelectedCharSets; /* OPT */ +}; + +struct Z_TargetResponse { + int which; + union { + Z_Iso2022 *iso2022; + Z_Iso10646 *iso10646; + Z_PrivateCharacterSet *zprivate; + Odr_null *none; +#define Z_TargetResponse_iso2022 1 +#define Z_TargetResponse_iso10646 2 +#define Z_TargetResponse_private 3 +#define Z_TargetResponse_none 4 + } u; /* OPT */ + Z_LanguageCode *selectedLanguage; /* OPT */ + bool_t *recordsInSelectedCharSets; /* OPT */ +}; + +struct Z_PrivateCharacterSetViaOid { + int num; + Odr_oid **elements; +}; + +struct Z_PrivateCharacterSet { + int which; + union { + Z_PrivateCharacterSetViaOid *viaOid; + Z_External *externallySpecified; + Odr_null *previouslyAgreedUpon; +#define Z_PrivateCharacterSet_viaOid 1 +#define Z_PrivateCharacterSet_externallySpecified 2 +#define Z_PrivateCharacterSet_previouslyAgreedUpon 3 + } u; +}; + +struct Z_Iso2022OriginProposal { + Z_Environment *proposedEnvironment; /* OPT */ + int num_proposedSets; + int **proposedSets; + int num_proposedInitialSets; + Z_InitialSet **proposedInitialSets; + Z_LeftAndRight *proposedLeftAndRight; +}; + +struct Z_Iso2022TargetResponse { + Z_Environment *selectedEnvironment; + int num_selectedSets; + int **selectedSets; + Z_InitialSet *selectedinitialSet; + Z_LeftAndRight *selectedLeftAndRight; +}; + +struct Z_Iso2022 { + int which; + union { + Z_Iso2022OriginProposal *originProposal; + Z_Iso2022TargetResponse *targetResponse; +#define Z_Iso2022_originProposal 1 +#define Z_Iso2022_targetResponse 2 + } u; +}; + +struct Z_Environment { + int which; + union { + Odr_null *sevenBit; + Odr_null *eightBit; +#define Z_Environment_sevenBit 1 +#define Z_Environment_eightBit 2 + } u; +}; + +struct Z_InitialSet { + int *g0; /* OPT */ + int *g1; /* OPT */ + int *g2; /* OPT */ + int *g3; /* OPT */ + int *c0; + int *c1; /* OPT */ +}; + +struct Z_LeftAndRight { +#define Z_LeftAndRight_g0 0 +#define Z_LeftAndRight_g1 1 +#define Z_LeftAndRight_g2 2 +#define Z_LeftAndRight_g3 3 + int *gLeft; +#define Z_LeftAndRight_g1 1 +#define Z_LeftAndRight_g2 2 +#define Z_LeftAndRight_g3 3 + int *gRight; /* OPT */ +}; + +struct Z_Iso10646 { + Odr_oid *collections; /* OPT */ + Odr_oid *encodingLevel; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-core.h b/dependencies/yaz-2.1.28/include/yaz/z-core.h new file mode 100644 index 0000000..94f6776 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-core.h @@ -0,0 +1,1341 @@ +/** \file z-core.h + \brief ASN.1 Module Z39-50-APDU-1995 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_core_H +#define z_core_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_External Z_External; +YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); + + +typedef struct Z_APDU Z_APDU; +YAZ_EXPORT int z_APDU (ODR o, Z_APDU **p, int opt, const char *name); + +typedef struct Z_InitRequest Z_InitRequest; +YAZ_EXPORT int z_InitRequest (ODR o, Z_InitRequest **p, int opt, const char *name); + +typedef struct Z_IdPass Z_IdPass; +YAZ_EXPORT int z_IdPass (ODR o, Z_IdPass **p, int opt, const char *name); + +typedef struct Z_IdAuthentication Z_IdAuthentication; +YAZ_EXPORT int z_IdAuthentication (ODR o, Z_IdAuthentication **p, int opt, const char *name); + +typedef struct Z_InitResponse Z_InitResponse; +YAZ_EXPORT int z_InitResponse (ODR o, Z_InitResponse **p, int opt, const char *name); + +typedef Odr_bitmask Z_ProtocolVersion; +YAZ_EXPORT int z_ProtocolVersion (ODR o, Z_ProtocolVersion **p, int opt, const char *name); + +typedef Odr_bitmask Z_Options; +YAZ_EXPORT int z_Options (ODR o, Z_Options **p, int opt, const char *name); + +typedef struct Z_SearchRequest Z_SearchRequest; +YAZ_EXPORT int z_SearchRequest (ODR o, Z_SearchRequest **p, int opt, const char *name); + +typedef struct Z_Query Z_Query; +YAZ_EXPORT int z_Query (ODR o, Z_Query **p, int opt, const char *name); + +typedef struct Z_RPNQuery Z_RPNQuery; +YAZ_EXPORT int z_RPNQuery (ODR o, Z_RPNQuery **p, int opt, const char *name); + +typedef struct Z_Complex Z_Complex; +YAZ_EXPORT int z_Complex (ODR o, Z_Complex **p, int opt, const char *name); + +typedef struct Z_RPNStructure Z_RPNStructure; +YAZ_EXPORT int z_RPNStructure (ODR o, Z_RPNStructure **p, int opt, const char *name); + +typedef struct Z_Operand Z_Operand; +YAZ_EXPORT int z_Operand (ODR o, Z_Operand **p, int opt, const char *name); + +typedef struct Z_AttributesPlusTerm Z_AttributesPlusTerm; +YAZ_EXPORT int z_AttributesPlusTerm (ODR o, Z_AttributesPlusTerm **p, int opt, const char *name); + +typedef struct Z_ResultSetPlusAttributes Z_ResultSetPlusAttributes; +YAZ_EXPORT int z_ResultSetPlusAttributes (ODR o, Z_ResultSetPlusAttributes **p, int opt, const char *name); + +typedef struct Z_AttributeList Z_AttributeList; +YAZ_EXPORT int z_AttributeList (ODR o, Z_AttributeList **p, int opt, const char *name); + +typedef struct Z_Term Z_Term; +YAZ_EXPORT int z_Term (ODR o, Z_Term **p, int opt, const char *name); + +typedef struct Z_Operator Z_Operator; +YAZ_EXPORT int z_Operator (ODR o, Z_Operator **p, int opt, const char *name); + +typedef struct Z_ComplexAttribute Z_ComplexAttribute; +YAZ_EXPORT int z_ComplexAttribute (ODR o, Z_ComplexAttribute **p, int opt, const char *name); + +typedef struct Z_AttributeElement Z_AttributeElement; +YAZ_EXPORT int z_AttributeElement (ODR o, Z_AttributeElement **p, int opt, const char *name); + +typedef struct Z_ProximityOperator Z_ProximityOperator; +YAZ_EXPORT int z_ProximityOperator (ODR o, Z_ProximityOperator **p, int opt, const char *name); + +typedef int Z_ProxUnit; +YAZ_EXPORT int z_ProxUnit (ODR o, Z_ProxUnit **p, int opt, const char *name); + +typedef struct Z_SearchResponse Z_SearchResponse; +YAZ_EXPORT int z_SearchResponse (ODR o, Z_SearchResponse **p, int opt, const char *name); + +typedef struct Z_RecordComposition Z_RecordComposition; +YAZ_EXPORT int z_RecordComposition (ODR o, Z_RecordComposition **p, int opt, const char *name); + +typedef struct Z_PresentRequest Z_PresentRequest; +YAZ_EXPORT int z_PresentRequest (ODR o, Z_PresentRequest **p, int opt, const char *name); + +typedef struct Z_Segment Z_Segment; +YAZ_EXPORT int z_Segment (ODR o, Z_Segment **p, int opt, const char *name); + +typedef struct Z_PresentResponse Z_PresentResponse; +YAZ_EXPORT int z_PresentResponse (ODR o, Z_PresentResponse **p, int opt, const char *name); + +typedef struct Z_NamePlusRecordList Z_NamePlusRecordList; +YAZ_EXPORT int z_NamePlusRecordList (ODR o, Z_NamePlusRecordList **p, int opt, const char *name); + +typedef struct Z_DiagRecs Z_DiagRecs; +YAZ_EXPORT int z_DiagRecs (ODR o, Z_DiagRecs **p, int opt, const char *name); + +typedef struct Z_Records Z_Records; +YAZ_EXPORT int z_Records (ODR o, Z_Records **p, int opt, const char *name); + +typedef struct Z_NamePlusRecord Z_NamePlusRecord; +YAZ_EXPORT int z_NamePlusRecord (ODR o, Z_NamePlusRecord **p, int opt, const char *name); + +typedef struct Z_FragmentSyntax Z_FragmentSyntax; +YAZ_EXPORT int z_FragmentSyntax (ODR o, Z_FragmentSyntax **p, int opt, const char *name); + +typedef struct Z_DiagRec Z_DiagRec; +YAZ_EXPORT int z_DiagRec (ODR o, Z_DiagRec **p, int opt, const char *name); + +typedef struct Z_DefaultDiagFormat Z_DefaultDiagFormat; +YAZ_EXPORT int z_DefaultDiagFormat (ODR o, Z_DefaultDiagFormat **p, int opt, const char *name); + +typedef struct Z_Range Z_Range; +YAZ_EXPORT int z_Range (ODR o, Z_Range **p, int opt, const char *name); + +typedef struct Z_DatabaseSpecificUnit Z_DatabaseSpecificUnit; +YAZ_EXPORT int z_DatabaseSpecificUnit (ODR o, Z_DatabaseSpecificUnit **p, int opt, const char *name); + +typedef struct Z_DatabaseSpecific Z_DatabaseSpecific; +YAZ_EXPORT int z_DatabaseSpecific (ODR o, Z_DatabaseSpecific **p, int opt, const char *name); + +typedef struct Z_ElementSetNames Z_ElementSetNames; +YAZ_EXPORT int z_ElementSetNames (ODR o, Z_ElementSetNames **p, int opt, const char *name); + +typedef int Z_PresentStatus; +YAZ_EXPORT int z_PresentStatus (ODR o, Z_PresentStatus **p, int opt, const char *name); + +typedef struct Z_DbSpecific Z_DbSpecific; +YAZ_EXPORT int z_DbSpecific (ODR o, Z_DbSpecific **p, int opt, const char *name); + +typedef struct Z_CompSpec Z_CompSpec; +YAZ_EXPORT int z_CompSpec (ODR o, Z_CompSpec **p, int opt, const char *name); + +typedef struct Z_ElementSpec Z_ElementSpec; +YAZ_EXPORT int z_ElementSpec (ODR o, Z_ElementSpec **p, int opt, const char *name); + +typedef struct Z_Specification Z_Specification; +YAZ_EXPORT int z_Specification (ODR o, Z_Specification **p, int opt, const char *name); + +typedef struct Z_DeleteResultSetRequest Z_DeleteResultSetRequest; +YAZ_EXPORT int z_DeleteResultSetRequest (ODR o, Z_DeleteResultSetRequest **p, int opt, const char *name); + +typedef struct Z_DeleteResultSetResponse Z_DeleteResultSetResponse; +YAZ_EXPORT int z_DeleteResultSetResponse (ODR o, Z_DeleteResultSetResponse **p, int opt, const char *name); + +typedef struct Z_ListStatus Z_ListStatus; +YAZ_EXPORT int z_ListStatus (ODR o, Z_ListStatus **p, int opt, const char *name); + +typedef struct Z_ListStatuses Z_ListStatuses; +YAZ_EXPORT int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt, const char *name); + +typedef int Z_DeleteStatus; +YAZ_EXPORT int z_DeleteStatus (ODR o, Z_DeleteStatus **p, int opt, const char *name); + +typedef struct Z_AccessControlRequest Z_AccessControlRequest; +YAZ_EXPORT int z_AccessControlRequest (ODR o, Z_AccessControlRequest **p, int opt, const char *name); + +typedef struct Z_AccessControlResponse Z_AccessControlResponse; +YAZ_EXPORT int z_AccessControlResponse (ODR o, Z_AccessControlResponse **p, int opt, const char *name); + +typedef struct Z_ResourceControlRequest Z_ResourceControlRequest; +YAZ_EXPORT int z_ResourceControlRequest (ODR o, Z_ResourceControlRequest **p, int opt, const char *name); + +typedef struct Z_ResourceControlResponse Z_ResourceControlResponse; +YAZ_EXPORT int z_ResourceControlResponse (ODR o, Z_ResourceControlResponse **p, int opt, const char *name); + +typedef struct Z_TriggerResourceControlRequest Z_TriggerResourceControlRequest; +YAZ_EXPORT int z_TriggerResourceControlRequest (ODR o, Z_TriggerResourceControlRequest **p, int opt, const char *name); + +typedef struct Z_ResourceReportRequest Z_ResourceReportRequest; +YAZ_EXPORT int z_ResourceReportRequest (ODR o, Z_ResourceReportRequest **p, int opt, const char *name); + +typedef struct Z_ResourceReportResponse Z_ResourceReportResponse; +YAZ_EXPORT int z_ResourceReportResponse (ODR o, Z_ResourceReportResponse **p, int opt, const char *name); + +typedef Z_External Z_ResourceReport; +YAZ_EXPORT int z_ResourceReport (ODR o, Z_ResourceReport **p, int opt, const char *name); + +typedef Odr_oid Z_ResourceReportId; +YAZ_EXPORT int z_ResourceReportId (ODR o, Z_ResourceReportId **p, int opt, const char *name); + +typedef struct Z_ScanRequest Z_ScanRequest; +YAZ_EXPORT int z_ScanRequest (ODR o, Z_ScanRequest **p, int opt, const char *name); + +typedef struct Z_ScanResponse Z_ScanResponse; +YAZ_EXPORT int z_ScanResponse (ODR o, Z_ScanResponse **p, int opt, const char *name); + +typedef struct Z_ListEntries Z_ListEntries; +YAZ_EXPORT int z_ListEntries (ODR o, Z_ListEntries **p, int opt, const char *name); + +typedef struct Z_Entry Z_Entry; +YAZ_EXPORT int z_Entry (ODR o, Z_Entry **p, int opt, const char *name); + +typedef struct Z_TermInfo Z_TermInfo; +YAZ_EXPORT int z_TermInfo (ODR o, Z_TermInfo **p, int opt, const char *name); + +typedef struct Z_byDatabaseList_s Z_byDatabaseList_s; +YAZ_EXPORT int z_byDatabaseList_s (ODR o, Z_byDatabaseList_s **p, int opt, const char *name); + +typedef struct Z_byDatabaseList Z_byDatabaseList; +YAZ_EXPORT int z_byDatabaseList (ODR o, Z_byDatabaseList **p, int opt, const char *name); + +typedef struct Z_OccurrenceByAttributesElem Z_OccurrenceByAttributesElem; +YAZ_EXPORT int z_OccurrenceByAttributesElem (ODR o, Z_OccurrenceByAttributesElem **p, int opt, const char *name); + +typedef struct Z_OccurrenceByAttributes Z_OccurrenceByAttributes; +YAZ_EXPORT int z_OccurrenceByAttributes (ODR o, Z_OccurrenceByAttributes **p, int opt, const char *name); + +typedef struct Z_SortKeySpecList Z_SortKeySpecList; +YAZ_EXPORT int z_SortKeySpecList (ODR o, Z_SortKeySpecList **p, int opt, const char *name); + +typedef struct Z_SortRequest Z_SortRequest; +YAZ_EXPORT int z_SortRequest (ODR o, Z_SortRequest **p, int opt, const char *name); + +typedef struct Z_SortResponse Z_SortResponse; +YAZ_EXPORT int z_SortResponse (ODR o, Z_SortResponse **p, int opt, const char *name); + +typedef struct Z_SortKeySpec Z_SortKeySpec; +YAZ_EXPORT int z_SortKeySpec (ODR o, Z_SortKeySpec **p, int opt, const char *name); + +typedef struct Z_SortDbSpecificList_s Z_SortDbSpecificList_s; +YAZ_EXPORT int z_SortDbSpecificList_s (ODR o, Z_SortDbSpecificList_s **p, int opt, const char *name); + +typedef struct Z_SortDbSpecificList Z_SortDbSpecificList; +YAZ_EXPORT int z_SortDbSpecificList (ODR o, Z_SortDbSpecificList **p, int opt, const char *name); + +typedef struct Z_SortElement Z_SortElement; +YAZ_EXPORT int z_SortElement (ODR o, Z_SortElement **p, int opt, const char *name); + +typedef struct Z_SortAttributes Z_SortAttributes; +YAZ_EXPORT int z_SortAttributes (ODR o, Z_SortAttributes **p, int opt, const char *name); + +typedef struct Z_SortKey Z_SortKey; +YAZ_EXPORT int z_SortKey (ODR o, Z_SortKey **p, int opt, const char *name); + +typedef struct Z_ExtendedServicesRequest Z_ExtendedServicesRequest; +YAZ_EXPORT int z_ExtendedServicesRequest (ODR o, Z_ExtendedServicesRequest **p, int opt, const char *name); + +typedef struct Z_ExtendedServicesResponse Z_ExtendedServicesResponse; +YAZ_EXPORT int z_ExtendedServicesResponse (ODR o, Z_ExtendedServicesResponse **p, int opt, const char *name); + +typedef struct Z_Permissions_s Z_Permissions_s; +YAZ_EXPORT int z_Permissions_s (ODR o, Z_Permissions_s **p, int opt, const char *name); + +typedef struct Z_Permissions Z_Permissions; +YAZ_EXPORT int z_Permissions (ODR o, Z_Permissions **p, int opt, const char *name); + +typedef struct Z_Close Z_Close; +YAZ_EXPORT int z_Close (ODR o, Z_Close **p, int opt, const char *name); + +typedef int Z_CloseReason; +YAZ_EXPORT int z_CloseReason (ODR o, Z_CloseReason **p, int opt, const char *name); + +typedef struct Z_DuplicateDetectionRequest Z_DuplicateDetectionRequest; +YAZ_EXPORT int z_DuplicateDetectionRequest (ODR o, Z_DuplicateDetectionRequest **p, int opt, const char *name); + +typedef struct Z_DuplicateDetectionCriterion Z_DuplicateDetectionCriterion; +YAZ_EXPORT int z_DuplicateDetectionCriterion (ODR o, Z_DuplicateDetectionCriterion **p, int opt, const char *name); + +typedef struct Z_RetentionCriterion Z_RetentionCriterion; +YAZ_EXPORT int z_RetentionCriterion (ODR o, Z_RetentionCriterion **p, int opt, const char *name); + +typedef struct Z_SortCriterionPreferredDatabases Z_SortCriterionPreferredDatabases; +YAZ_EXPORT int z_SortCriterionPreferredDatabases (ODR o, Z_SortCriterionPreferredDatabases **p, int opt, const char *name); + +typedef struct Z_SortCriterion Z_SortCriterion; +YAZ_EXPORT int z_SortCriterion (ODR o, Z_SortCriterion **p, int opt, const char *name); + +typedef struct Z_DuplicateDetectionResponse Z_DuplicateDetectionResponse; +YAZ_EXPORT int z_DuplicateDetectionResponse (ODR o, Z_DuplicateDetectionResponse **p, int opt, const char *name); + +typedef Odr_oct Z_ReferenceId; +YAZ_EXPORT int z_ReferenceId (ODR o, Z_ReferenceId **p, int opt, const char *name); + +typedef Odr_oid Z_AttributeSetId; +YAZ_EXPORT int z_AttributeSetId (ODR o, Z_AttributeSetId **p, int opt, const char *name); + +typedef struct Z_OtherInformationUnit Z_OtherInformationUnit; +YAZ_EXPORT int z_OtherInformationUnit (ODR o, Z_OtherInformationUnit **p, int opt, const char *name); + +typedef struct Z_OtherInformation Z_OtherInformation; +YAZ_EXPORT int z_OtherInformation (ODR o, Z_OtherInformation **p, int opt, const char *name); + +typedef struct Z_InfoCategory Z_InfoCategory; +YAZ_EXPORT int z_InfoCategory (ODR o, Z_InfoCategory **p, int opt, const char *name); + +typedef struct Z_IntUnit Z_IntUnit; +YAZ_EXPORT int z_IntUnit (ODR o, Z_IntUnit **p, int opt, const char *name); + +typedef struct Z_Unit Z_Unit; +YAZ_EXPORT int z_Unit (ODR o, Z_Unit **p, int opt, const char *name); + +typedef char Z_InternationalString; +YAZ_EXPORT int z_InternationalString (ODR o, Z_InternationalString **p, int opt, const char *name); + +typedef Z_InternationalString Z_ResultSetId; +YAZ_EXPORT int z_ResultSetId (ODR o, Z_ResultSetId **p, int opt, const char *name); + +typedef Z_InternationalString Z_ElementSetName; +YAZ_EXPORT int z_ElementSetName (ODR o, Z_ElementSetName **p, int opt, const char *name); + +typedef Z_InternationalString Z_DatabaseName; +YAZ_EXPORT int z_DatabaseName (ODR o, Z_DatabaseName **p, int opt, const char *name); + +typedef struct Z_StringOrNumeric Z_StringOrNumeric; +YAZ_EXPORT int z_StringOrNumeric (ODR o, Z_StringOrNumeric **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_APDU { + int which; + union { + Z_InitRequest *initRequest; + Z_InitResponse *initResponse; + Z_SearchRequest *searchRequest; + Z_SearchResponse *searchResponse; + Z_PresentRequest *presentRequest; + Z_PresentResponse *presentResponse; + Z_DeleteResultSetRequest *deleteResultSetRequest; + Z_DeleteResultSetResponse *deleteResultSetResponse; + Z_AccessControlRequest *accessControlRequest; + Z_AccessControlResponse *accessControlResponse; + Z_ResourceControlRequest *resourceControlRequest; + Z_ResourceControlResponse *resourceControlResponse; + Z_TriggerResourceControlRequest *triggerResourceControlRequest; + Z_ResourceReportRequest *resourceReportRequest; + Z_ResourceReportResponse *resourceReportResponse; + Z_ScanRequest *scanRequest; + Z_ScanResponse *scanResponse; + Z_SortRequest *sortRequest; + Z_SortResponse *sortResponse; + Z_Segment *segmentRequest; + Z_ExtendedServicesRequest *extendedServicesRequest; + Z_ExtendedServicesResponse *extendedServicesResponse; + Z_Close *close; + Z_DuplicateDetectionRequest *duplicateDetectionRequest; + Z_DuplicateDetectionResponse *duplicateDetectionResponse; +#define Z_APDU_initRequest 1 +#define Z_APDU_initResponse 2 +#define Z_APDU_searchRequest 3 +#define Z_APDU_searchResponse 4 +#define Z_APDU_presentRequest 5 +#define Z_APDU_presentResponse 6 +#define Z_APDU_deleteResultSetRequest 7 +#define Z_APDU_deleteResultSetResponse 8 +#define Z_APDU_accessControlRequest 9 +#define Z_APDU_accessControlResponse 10 +#define Z_APDU_resourceControlRequest 11 +#define Z_APDU_resourceControlResponse 12 +#define Z_APDU_triggerResourceControlRequest 13 +#define Z_APDU_resourceReportRequest 14 +#define Z_APDU_resourceReportResponse 15 +#define Z_APDU_scanRequest 16 +#define Z_APDU_scanResponse 17 +#define Z_APDU_sortRequest 18 +#define Z_APDU_sortResponse 19 +#define Z_APDU_segmentRequest 20 +#define Z_APDU_extendedServicesRequest 21 +#define Z_APDU_extendedServicesResponse 22 +#define Z_APDU_close 23 +#define Z_APDU_duplicateDetectionRequest 24 +#define Z_APDU_duplicateDetectionResponse 25 + } u; +}; + +struct Z_InitRequest { + Z_ReferenceId *referenceId; /* OPT */ + Z_ProtocolVersion *protocolVersion; + Z_Options *options; + int *preferredMessageSize; + int *maximumRecordSize; + Z_IdAuthentication *idAuthentication; /* OPT */ + Z_InternationalString *implementationId; /* OPT */ + Z_InternationalString *implementationName; /* OPT */ + Z_InternationalString *implementationVersion; /* OPT */ + Z_External *userInformationField; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_IdPass { + Z_InternationalString *groupId; /* OPT */ + Z_InternationalString *userId; /* OPT */ + Z_InternationalString *password; /* OPT */ +}; + +struct Z_IdAuthentication { + int which; + union { + char *open; + Z_IdPass *idPass; + Odr_null *anonymous; + Z_External *other; +#define Z_IdAuthentication_open 1 +#define Z_IdAuthentication_idPass 2 +#define Z_IdAuthentication_anonymous 3 +#define Z_IdAuthentication_other 4 + } u; +}; + +struct Z_InitResponse { + Z_ReferenceId *referenceId; /* OPT */ + Z_ProtocolVersion *protocolVersion; + Z_Options *options; + int *preferredMessageSize; + int *maximumRecordSize; + bool_t *result; + Z_InternationalString *implementationId; /* OPT */ + Z_InternationalString *implementationName; /* OPT */ + Z_InternationalString *implementationVersion; /* OPT */ + Z_External *userInformationField; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +#define Z_ProtocolVersion_1 0 +#define Z_ProtocolVersion_2 1 +#define Z_ProtocolVersion_3 2 + +#define Z_Options_search 0 +#define Z_Options_present 1 +#define Z_Options_delSet 2 +#define Z_Options_resourceReport 3 +#define Z_Options_triggerResourceCtrl 4 +#define Z_Options_resourceCtrl 5 +#define Z_Options_accessCtrl 6 +#define Z_Options_scan 7 +#define Z_Options_sort 8 +#define Z_Options_extendedServices 10 +#define Z_Options_level_1Segmentation 11 +#define Z_Options_level_2Segmentation 12 +#define Z_Options_concurrentOperations 13 +#define Z_Options_namedResultSets 14 +#define Z_Options_encapsulation 15 +#define Z_Options_resultCount 16 +#define Z_Options_negotiationModel 17 +#define Z_Options_duplicateDetection 18 +#define Z_Options_queryType104 19 +#define Z_Options_pQESCorrection 20 +#define Z_Options_stringSchema 21 + +struct Z_SearchRequest { + Z_ReferenceId *referenceId; /* OPT */ + int *smallSetUpperBound; + int *largeSetLowerBound; + int *mediumSetPresentNumber; + bool_t *replaceIndicator; + Z_InternationalString *resultSetName; + int num_databaseNames; + Z_DatabaseName **databaseNames; + Z_ElementSetNames *smallSetElementSetNames; /* OPT */ + Z_ElementSetNames *mediumSetElementSetNames; /* OPT */ + Odr_oid *preferredRecordSyntax; /* OPT */ + Z_Query *query; + Z_OtherInformation *additionalSearchInfo; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_Query { + int which; + union { + void *type_0; + Z_RPNQuery *type_1; + Odr_oct *type_2; + Odr_oct *type_100; + Z_RPNQuery *type_101; + Odr_oct *type_102; + Z_External *type_104; +#define Z_Query_type_0 1 +#define Z_Query_type_1 2 +#define Z_Query_type_2 3 +#define Z_Query_type_100 4 +#define Z_Query_type_101 5 +#define Z_Query_type_102 6 +#define Z_Query_type_104 7 + } u; +}; + +struct Z_RPNQuery { + Z_AttributeSetId *attributeSetId; + Z_RPNStructure *RPNStructure; +}; + +struct Z_Complex { + Z_RPNStructure *s1; + Z_RPNStructure *s2; + Z_Operator *roperator; +}; + +struct Z_RPNStructure { + int which; + union { + Z_Operand *simple; + Z_Complex *complex; +#define Z_RPNStructure_simple 1 +#define Z_RPNStructure_complex 2 + } u; +}; + +struct Z_Operand { + int which; + union { + Z_AttributesPlusTerm *attributesPlusTerm; + Z_ResultSetId *resultSetId; + Z_ResultSetPlusAttributes *resultAttr; +#define Z_Operand_APT 1 +#define Z_Operand_resultSetId 2 +#define Z_Operand_resultAttr 3 + } u; +}; + +struct Z_AttributesPlusTerm { + Z_AttributeList *attributes; + Z_Term *term; +}; + +struct Z_ResultSetPlusAttributes { + Z_ResultSetId *resultSet; + Z_AttributeList *attributes; +}; + +struct Z_AttributeList { + int num_attributes; + Z_AttributeElement **attributes; +}; + +struct Z_Term { + int which; + union { + Odr_oct *general; + int *numeric; + Z_InternationalString *characterString; + Odr_oid *oid; + char *dateTime; + Z_External *external; + Z_IntUnit *integerAndUnit; + Odr_null *null; +#define Z_Term_general 1 +#define Z_Term_numeric 2 +#define Z_Term_characterString 3 +#define Z_Term_oid 4 +#define Z_Term_dateTime 5 +#define Z_Term_external 6 +#define Z_Term_integerAndUnit 7 +#define Z_Term_null 8 + } u; +}; + +struct Z_Operator { + int which; + union { + Odr_null *op_and; + Odr_null *op_or; + Odr_null *and_not; + Z_ProximityOperator *prox; +#define Z_Operator_and 1 +#define Z_Operator_or 2 +#define Z_Operator_and_not 3 +#define Z_Operator_prox 4 + } u; +}; + +struct Z_ComplexAttribute { + int num_list; + Z_StringOrNumeric **list; + int num_semanticAction; + int **semanticAction; /* OPT */ +}; + +struct Z_AttributeElement { + Z_AttributeSetId *attributeSet; /* OPT */ + int *attributeType; + int which; + union { + int *numeric; + Z_ComplexAttribute *complex; +#define Z_AttributeValue_numeric 1 +#define Z_AttributeValue_complex 2 + } value; +}; + +struct Z_ProximityOperator { + bool_t *exclusion; /* OPT */ + int *distance; + bool_t *ordered; +#define Z_ProximityOperator_Prox_lessThan 1 +#define Z_ProximityOperator_Prox_lessThanOrEqual 2 +#define Z_ProximityOperator_Prox_equal 3 +#define Z_ProximityOperator_Prox_greaterThanOrEqual 4 +#define Z_ProximityOperator_Prox_greaterThan 5 +#define Z_ProximityOperator_Prox_notEqual 6 + int *relationType; + int which; + union { + Z_ProxUnit *known; + int *zprivate; +#define Z_ProximityOperator_known 1 +#define Z_ProximityOperator_private 2 + } u; +}; + +#define Z_ProxUnit_character 1 +#define Z_ProxUnit_word 2 +#define Z_ProxUnit_sentence 3 +#define Z_ProxUnit_paragraph 4 +#define Z_ProxUnit_section 5 +#define Z_ProxUnit_chapter 6 +#define Z_ProxUnit_document 7 +#define Z_ProxUnit_element 8 +#define Z_ProxUnit_subelement 9 +#define Z_ProxUnit_elementType 10 +#define Z_ProxUnit_byte 11 + +struct Z_SearchResponse { + Z_ReferenceId *referenceId; /* OPT */ + int *resultCount; + int *numberOfRecordsReturned; + int *nextResultSetPosition; + bool_t *searchStatus; +#define Z_SearchResponse_subset 1 +#define Z_SearchResponse_interim 2 +#define Z_SearchResponse_none 3 + int *resultSetStatus; /* OPT */ + Z_PresentStatus *presentStatus; /* OPT */ + Z_Records *records; /* OPT */ + Z_OtherInformation *additionalSearchInfo; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_RecordComposition { + int which; + union { + Z_ElementSetNames *simple; + Z_CompSpec *complex; +#define Z_RecordComp_simple 1 +#define Z_RecordComp_complex 2 + } u; +}; + +struct Z_PresentRequest { + Z_ReferenceId *referenceId; /* OPT */ + Z_ResultSetId *resultSetId; + int *resultSetStartPoint; + int *numberOfRecordsRequested; + int num_ranges; + Z_Range **additionalRanges; /* OPT */ + Z_RecordComposition *recordComposition; /* OPT */ + Odr_oid *preferredRecordSyntax; /* OPT */ + int *maxSegmentCount; /* OPT */ + int *maxRecordSize; /* OPT */ + int *maxSegmentSize; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_Segment { + Z_ReferenceId *referenceId; /* OPT */ + int *numberOfRecordsReturned; + int num_segmentRecords; + Z_NamePlusRecord **segmentRecords; + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_PresentResponse { + Z_ReferenceId *referenceId; /* OPT */ + int *numberOfRecordsReturned; + int *nextResultSetPosition; + Z_PresentStatus *presentStatus; + Z_Records *records; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_NamePlusRecordList { + int num_records; + Z_NamePlusRecord **records; +}; + +struct Z_DiagRecs { + int num_diagRecs; + Z_DiagRec **diagRecs; +}; + +struct Z_Records { + int which; + union { + Z_NamePlusRecordList *databaseOrSurDiagnostics; + Z_DefaultDiagFormat *nonSurrogateDiagnostic; + Z_DiagRecs *multipleNonSurDiagnostics; +#define Z_Records_DBOSD 1 +#define Z_Records_NSD 2 +#define Z_Records_multipleNSD 3 + } u; +}; + +struct Z_NamePlusRecord { + Z_DatabaseName *databaseName; /* OPT */ + int which; + union { + Z_External *databaseRecord; + Z_DiagRec *surrogateDiagnostic; + Z_FragmentSyntax *startingFragment; + Z_FragmentSyntax *intermediateFragment; + Z_FragmentSyntax *finalFragment; +#define Z_NamePlusRecord_databaseRecord 1 +#define Z_NamePlusRecord_surrogateDiagnostic 2 +#define Z_NamePlusRecord_startingFragment 3 +#define Z_NamePlusRecord_intermediateFragment 4 +#define Z_NamePlusRecord_finalFragment 5 + } u; +}; + +struct Z_FragmentSyntax { + int which; + union { + Z_External *externallyTagged; + Odr_oct *notExternallyTagged; +#define Z_FragmentSyntax_externallyTagged 1 +#define Z_FragmentSyntax_notExternallyTagged 2 + } u; +}; + +struct Z_DiagRec { + int which; + union { + Z_DefaultDiagFormat *defaultFormat; + Z_External *externallyDefined; +#define Z_DiagRec_defaultFormat 1 +#define Z_DiagRec_externallyDefined 2 + } u; +}; + +struct Z_DefaultDiagFormat { + Odr_oid *diagnosticSetId; + int *condition; + int which; + union { + char *v2Addinfo; + Z_InternationalString *v3Addinfo; +#define Z_DefaultDiagFormat_v2Addinfo 1 +#define Z_DefaultDiagFormat_v3Addinfo 2 + } u; +}; + +struct Z_Range { + int *startingPosition; + int *numberOfRecords; +}; + +struct Z_DatabaseSpecificUnit { + Z_DatabaseName *dbName; + Z_ElementSetName *esn; +}; + +struct Z_DatabaseSpecific { + int num; + Z_DatabaseSpecificUnit **elements; +}; + +struct Z_ElementSetNames { + int which; + union { + Z_InternationalString *generic; + Z_DatabaseSpecific *databaseSpecific; +#define Z_ElementSetNames_generic 1 +#define Z_ElementSetNames_databaseSpecific 2 + } u; +}; + +#define Z_PresentStatus_success 0 +#define Z_PresentStatus_partial_1 1 +#define Z_PresentStatus_partial_2 2 +#define Z_PresentStatus_partial_3 3 +#define Z_PresentStatus_partial_4 4 +#define Z_PresentStatus_failure 5 + +struct Z_DbSpecific { + Z_DatabaseName *db; + Z_Specification *spec; +}; + +struct Z_CompSpec { + bool_t *selectAlternativeSyntax; + Z_Specification *generic; /* OPT */ + int num_dbSpecific; + Z_DbSpecific **dbSpecific; /* OPT */ + int num_recordSyntax; + Odr_oid **recordSyntax; /* OPT */ +}; + +struct Z_ElementSpec { + int which; + union { + Z_InternationalString *elementSetName; + Z_External *externalSpec; +#define Z_ElementSpec_elementSetName 1 +#define Z_ElementSpec_externalSpec 2 + } u; +}; + +struct Z_Specification { + int which; + union { + Odr_oid *oid; + Z_InternationalString *uri; +#define Z_Schema_oid 1 +#define Z_Schema_uri 2 + } schema; /* OPT */ + Z_ElementSpec *elementSpec; /* OPT */ +}; + +struct Z_DeleteResultSetRequest { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_DeleteResultSetRequest_list 0 +#define Z_DeleteResultSetRequest_all 1 + int *deleteFunction; + int num_resultSetList; + Z_ResultSetId **resultSetList; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_DeleteResultSetResponse { + Z_ReferenceId *referenceId; /* OPT */ + Z_DeleteStatus *deleteOperationStatus; + Z_ListStatuses *deleteListStatuses; /* OPT */ + int *numberNotDeleted; /* OPT */ + Z_ListStatuses *bulkStatuses; /* OPT */ + Z_InternationalString *deleteMessage; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ListStatus { + Z_ResultSetId *id; + Z_DeleteStatus *status; +}; + +struct Z_ListStatuses { + int num; + Z_ListStatus **elements; +}; + +#define Z_DeleteStatus_success 0 +#define Z_DeleteStatus_resultSetDidNotExist 1 +#define Z_DeleteStatus_previouslyDeletedByTarget 2 +#define Z_DeleteStatus_systemProblemAtTarget 3 +#define Z_DeleteStatus_accessNotAllowed 4 +#define Z_DeleteStatus_resourceControlAtOrigin 5 +#define Z_DeleteStatus_resourceControlAtTarget 6 +#define Z_DeleteStatus_bulkDeleteNotSupported 7 +#define Z_DeleteStatus_notAllRsltSetsDeletedOnBulkDlte 8 +#define Z_DeleteStatus_notAllRequestedResultSetsDeleted 9 +#define Z_DeleteStatus_resultSetInUse 10 + +struct Z_AccessControlRequest { + Z_ReferenceId *referenceId; /* OPT */ + int which; + union { + Odr_oct *simpleForm; + Z_External *externallyDefined; +#define Z_AccessControlRequest_simpleForm 1 +#define Z_AccessControlRequest_externallyDefined 2 + } u; + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_AccessControlResponse { + Z_ReferenceId *referenceId; /* OPT */ + int which; + union { + Odr_oct *simpleForm; + Z_External *externallyDefined; +#define Z_AccessControlResponse_simpleForm 1 +#define Z_AccessControlResponse_externallyDefined 2 + } u; /* OPT */ + Z_DiagRec *diagnostic; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ResourceControlRequest { + Z_ReferenceId *referenceId; /* OPT */ + bool_t *suspendedFlag; /* OPT */ + Z_ResourceReport *resourceReport; /* OPT */ +#define Z_ResourceControlRequest_subset 1 +#define Z_ResourceControlRequest_interim 2 +#define Z_ResourceControlRequest_none 3 + int *partialResultsAvailable; /* OPT */ + bool_t *responseRequired; + bool_t *triggeredRequestFlag; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ResourceControlResponse { + Z_ReferenceId *referenceId; /* OPT */ + bool_t *continueFlag; + bool_t *resultSetWanted; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_TriggerResourceControlRequest { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_TriggerResourceControlRequest_resourceReport 1 +#define Z_TriggerResourceControlRequest_resourceControl 2 +#define Z_TriggerResourceControlRequest_cancel 3 + int *requestedAction; + Z_ResourceReportId *prefResourceReportFormat; /* OPT */ + bool_t *resultSetWanted; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ResourceReportRequest { + Z_ReferenceId *referenceId; /* OPT */ + Z_ReferenceId *opId; /* OPT */ + Z_ResourceReportId *prefResourceReportFormat; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ResourceReportResponse { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_ResourceReportResponse_success 0 +#define Z_ResourceReportResponse_partial 1 +#define Z_ResourceReportResponse_failure_1 2 +#define Z_ResourceReportResponse_failure_2 3 +#define Z_ResourceReportResponse_failure_3 4 +#define Z_ResourceReportResponse_failure_4 5 +#define Z_ResourceReportResponse_failure_5 6 +#define Z_ResourceReportResponse_failure_6 7 + int *resourceReportStatus; + Z_ResourceReport *resourceReport; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + + + + + +struct Z_ScanRequest { + Z_ReferenceId *referenceId; /* OPT */ + int num_databaseNames; + Z_DatabaseName **databaseNames; + Z_AttributeSetId *attributeSet; /* OPT */ + Z_AttributesPlusTerm *termListAndStartPoint; + int *stepSize; /* OPT */ + int *numberOfTermsRequested; + int *preferredPositionInResponse; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ScanResponse { + Z_ReferenceId *referenceId; /* OPT */ + int *stepSize; /* OPT */ +#define Z_Scan_success 0 +#define Z_Scan_partial_1 1 +#define Z_Scan_partial_2 2 +#define Z_Scan_partial_3 3 +#define Z_Scan_partial_4 4 +#define Z_Scan_partial_5 5 +#define Z_Scan_failure 6 + int *scanStatus; + int *numberOfEntriesReturned; + int *positionOfTerm; /* OPT */ + Z_ListEntries *entries; /* OPT */ + Z_AttributeSetId *attributeSet; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ListEntries { + int num_entries; + Z_Entry **entries; /* OPT */ + int num_nonsurrogateDiagnostics; + Z_DiagRec **nonsurrogateDiagnostics; /* OPT */ +}; + +struct Z_Entry { + int which; + union { + Z_TermInfo *termInfo; + Z_DiagRec *surrogateDiagnostic; +#define Z_Entry_termInfo 1 +#define Z_Entry_surrogateDiagnostic 2 + } u; +}; + +struct Z_TermInfo { + Z_Term *term; + Z_InternationalString *displayTerm; /* OPT */ + Z_AttributeList *suggestedAttributes; /* OPT */ + int num_alternativeTerm; + Z_AttributesPlusTerm **alternativeTerm; /* OPT */ + int *globalOccurrences; /* OPT */ + Z_OccurrenceByAttributes *byAttributes; /* OPT */ + Z_OtherInformation *otherTermInfo; /* OPT */ +}; + +struct Z_byDatabaseList_s { + Z_DatabaseName *db; + int *num; /* OPT */ + Z_OtherInformation *otherDbInfo; /* OPT */ +}; + +struct Z_byDatabaseList { + int num; + Z_byDatabaseList_s **elements; +}; + +struct Z_OccurrenceByAttributesElem { + Z_AttributeList *attributes; + int which; + union { + int *global; + Z_byDatabaseList *byDatabase; +#define Z_OccurrenceByAttributesElem_global 1 +#define Z_OccurrenceByAttributesElem_byDatabase 2 + } u; /* OPT */ + Z_OtherInformation *otherOccurInfo; /* OPT */ +}; + +struct Z_OccurrenceByAttributes { + int num; + Z_OccurrenceByAttributesElem **elements; +}; + +struct Z_SortKeySpecList { + int num_specs; + Z_SortKeySpec **specs; +}; + +struct Z_SortRequest { + Z_ReferenceId *referenceId; /* OPT */ + int num_inputResultSetNames; + Z_InternationalString **inputResultSetNames; + Z_InternationalString *sortedResultSetName; + Z_SortKeySpecList *sortSequence; + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_SortResponse { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_SortResponse_success 0 +#define Z_SortResponse_partial_1 1 +#define Z_SortResponse_failure 2 + int *sortStatus; +#define Z_SortResponse_empty 1 +#define Z_SortResponse_interim 2 +#define Z_SortResponse_unchanged 3 +#define Z_SortResponse_none 4 + int *resultSetStatus; /* OPT */ + int num_diagnostics; + Z_DiagRec **diagnostics; /* OPT */ + int *resultCount; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_SortKeySpec { + Z_SortElement *sortElement; +#define Z_SortKeySpec_ascending 0 +#define Z_SortKeySpec_descending 1 +#define Z_SortKeySpec_ascendingByFrequency 3 +#define Z_SortKeySpec_descendingByfrequency 4 + int *sortRelation; +#define Z_SortKeySpec_caseSensitive 0 +#define Z_SortKeySpec_caseInsensitive 1 + int *caseSensitivity; + int which; + union { + Odr_null *abort; + Odr_null *null; + Odr_oct *missingValueData; +#define Z_SortKeySpec_abort 1 +#define Z_SortKeySpec_null 2 +#define Z_SortKeySpec_missingValueData 3 + } u; /* OPT */ +}; + +struct Z_SortDbSpecificList_s { + Z_DatabaseName *databaseName; + Z_SortKey *dbSort; +}; + +struct Z_SortDbSpecificList { + int num; + Z_SortDbSpecificList_s **elements; +}; + +struct Z_SortElement { + int which; + union { + Z_SortKey *generic; + Z_SortDbSpecificList *databaseSpecific; +#define Z_SortElement_generic 1 +#define Z_SortElement_databaseSpecific 2 + } u; +}; + +struct Z_SortAttributes { + Z_AttributeSetId *id; + Z_AttributeList *list; +}; + +struct Z_SortKey { + int which; + union { + Z_InternationalString *sortField; + Z_Specification *elementSpec; + Z_SortAttributes *sortAttributes; +#define Z_SortKey_sortField 1 +#define Z_SortKey_elementSpec 2 +#define Z_SortKey_sortAttributes 3 + } u; +}; + +struct Z_ExtendedServicesRequest { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_ExtendedServicesRequest_create 1 +#define Z_ExtendedServicesRequest_delete 2 +#define Z_ExtendedServicesRequest_modify 3 + int *function; + Odr_oid *packageType; + Z_InternationalString *packageName; /* OPT */ + Z_InternationalString *userId; /* OPT */ + Z_IntUnit *retentionTime; /* OPT */ + Z_Permissions *permissions; /* OPT */ + Z_InternationalString *description; /* OPT */ + Z_External *taskSpecificParameters; /* OPT */ +#define Z_ExtendedServicesRequest_wait 1 +#define Z_ExtendedServicesRequest_waitIfPossible 2 +#define Z_ExtendedServicesRequest_dontWait 3 +#define Z_ExtendedServicesRequest_dontReturnPackage 4 + int *waitAction; + Z_ElementSetName *elements; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_ExtendedServicesResponse { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_ExtendedServicesResponse_done 1 +#define Z_ExtendedServicesResponse_accepted 2 +#define Z_ExtendedServicesResponse_failure 3 + int *operationStatus; + int num_diagnostics; + Z_DiagRec **diagnostics; /* OPT */ + Z_External *taskPackage; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_Permissions_s { + Z_InternationalString *userId; +#define Z_Permissions_s_delete 1 +#define Z_Permissions_s_modifyContents 2 +#define Z_Permissions_s_modifyPermissions 3 +#define Z_Permissions_s_present 4 +#define Z_Permissions_s_invoke 5 + int num_allowableFunctions; + int **allowableFunctions; +}; + +struct Z_Permissions { + int num; + Z_Permissions_s **elements; +}; + +struct Z_Close { + Z_ReferenceId *referenceId; /* OPT */ + Z_CloseReason *closeReason; + Z_InternationalString *diagnosticInformation; /* OPT */ + Z_ResourceReportId *resourceReportFormat; /* OPT */ + Z_ResourceReport *resourceReport; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +#define Z_Close_finished 0 +#define Z_Close_shutdown 1 +#define Z_Close_systemProblem 2 +#define Z_Close_costLimit 3 +#define Z_Close_resources 4 +#define Z_Close_securityViolation 5 +#define Z_Close_protocolError 6 +#define Z_Close_lackOfActivity 7 +#define Z_Close_peerAbort 8 +#define Z_Close_unspecified 9 + +struct Z_DuplicateDetectionRequest { + Z_ReferenceId *referenceId; /* OPT */ + int num_inputResultSetIds; + Z_InternationalString **inputResultSetIds; + Z_InternationalString *outputResultSetName; + Z_External *applicablePortionOfRecord; /* OPT */ + int num_duplicateDetectionCriteria; + Z_DuplicateDetectionCriterion **duplicateDetectionCriteria; /* OPT */ + bool_t *clustering; /* OPT */ + int num_retentionCriteria; + Z_RetentionCriterion **retentionCriteria; + int num_sortCriteria; + Z_SortCriterion **sortCriteria; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_DuplicateDetectionCriterion { + int which; + union { + int *levelOfMatch; + Odr_null *caseSensitive; + Odr_null *punctuationSensitive; + Z_External *regularExpression; + Odr_null *rsDuplicates; +#define Z_DuplicateDetectionCriterion_levelOfMatch 1 +#define Z_DuplicateDetectionCriterion_caseSensitive 2 +#define Z_DuplicateDetectionCriterion_punctuationSensitive 3 +#define Z_DuplicateDetectionCriterion_regularExpression 4 +#define Z_DuplicateDetectionCriterion_rsDuplicates 5 + } u; +}; + +struct Z_RetentionCriterion { + int which; + union { + int *numberOfEntries; + int *percentOfEntries; + Odr_null *duplicatesOnly; + Odr_null *discardRsDuplicates; +#define Z_RetentionCriterion_numberOfEntries 1 +#define Z_RetentionCriterion_percentOfEntries 2 +#define Z_RetentionCriterion_duplicatesOnly 3 +#define Z_RetentionCriterion_discardRsDuplicates 4 + } u; +}; + +struct Z_SortCriterionPreferredDatabases { + int num; + Z_InternationalString **elements; +}; + +struct Z_SortCriterion { + int which; + union { + Odr_null *mostComprehensive; + Odr_null *leastConmprehensive; + Odr_null *mostRecent; + Odr_null *oldest; + Odr_null *leastCost; + Z_SortCriterionPreferredDatabases *preferredDatabases; +#define Z_SortCriterion_mostComprehensive 1 +#define Z_SortCriterion_leastConmprehensive 2 +#define Z_SortCriterion_mostRecent 3 +#define Z_SortCriterion_oldest 4 +#define Z_SortCriterion_leastCost 5 +#define Z_SortCriterion_preferredDatabases 6 + } u; +}; + +struct Z_DuplicateDetectionResponse { + Z_ReferenceId *referenceId; /* OPT */ +#define Z_DuplicateDetectionResponse_success 0 +#define Z_DuplicateDetectionResponse_failure 1 + int *status; + int *resultSetCount; /* OPT */ + int num_diagnostics; + Z_DiagRec **diagnostics; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + + + + + + + + + + + +struct Z_OtherInformationUnit { + Z_InfoCategory *category; /* OPT */ + int which; + union { + Z_InternationalString *characterInfo; + Odr_oct *binaryInfo; + Z_External *externallyDefinedInfo; + Odr_oid *oid; +#define Z_OtherInfo_characterInfo 1 +#define Z_OtherInfo_binaryInfo 2 +#define Z_OtherInfo_externallyDefinedInfo 3 +#define Z_OtherInfo_oid 4 + } information; +}; + +struct Z_OtherInformation { + int num_elements; + Z_OtherInformationUnit **list; +}; + +struct Z_InfoCategory { + Odr_oid *categoryTypeId; /* OPT */ + int *categoryValue; +}; + +struct Z_IntUnit { + int *value; + Z_Unit *unitUsed; +}; + +struct Z_Unit { + Z_InternationalString *unitSystem; /* OPT */ + Z_StringOrNumeric *unitType; /* OPT */ + Z_StringOrNumeric *unit; /* OPT */ + int *scaleFactor; /* OPT */ +}; + + + +struct Z_StringOrNumeric { + int which; + union { + Z_InternationalString *string; + int *numeric; +#define Z_StringOrNumeric_string 1 +#define Z_StringOrNumeric_numeric 2 + } u; +}; + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +int z_ANY_type_0 (ODR o, void **p, int opt); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-date.h b/dependencies/yaz-2.1.28/include/yaz/z-date.h new file mode 100644 index 0000000..424bd55 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-date.h @@ -0,0 +1,137 @@ +/** \file z-date.h + \brief ASN.1 Module UserInfoFormat-dateTime + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_date_H +#define z_date_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_DateTime Z_DateTime; +YAZ_EXPORT int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name); + +typedef struct Z_DateMonthAndDay Z_DateMonthAndDay; +YAZ_EXPORT int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name); + +typedef struct Z_DateQuarter Z_DateQuarter; +YAZ_EXPORT int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name); + +typedef struct Z_DateSeason Z_DateSeason; +YAZ_EXPORT int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name); + +typedef struct Z_Era Z_Era; +YAZ_EXPORT int z_Era (ODR o, Z_Era **p, int opt, const char *name); + +typedef struct Z_DateFlags Z_DateFlags; +YAZ_EXPORT int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name); + +typedef struct Z_Date Z_Date; +YAZ_EXPORT int z_Date (ODR o, Z_Date **p, int opt, const char *name); + +typedef struct Z_Time Z_Time; +YAZ_EXPORT int z_Time (ODR o, Z_Time **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_DateTime { + Z_Date *date; /* OPT */ + Z_Time *time; /* OPT */ +}; + +struct Z_DateMonthAndDay { + int *month; + int *day; /* OPT */ +}; + +struct Z_DateQuarter { + int which; + union { + Odr_null *first; + Odr_null *second; + Odr_null *third; + Odr_null *fourth; +#define Z_DateQuarter_first 1 +#define Z_DateQuarter_second 2 +#define Z_DateQuarter_third 3 +#define Z_DateQuarter_fourth 4 + } u; +}; + +struct Z_DateSeason { + int which; + union { + Odr_null *winter; + Odr_null *spring; + Odr_null *summer; + Odr_null *autumn; +#define Z_DateSeason_winter 1 +#define Z_DateSeason_spring 2 +#define Z_DateSeason_summer 3 +#define Z_DateSeason_autumn 4 + } u; +}; + +struct Z_Era { + int which; + union { + Odr_null *decade; + Odr_null *century; + Odr_null *millennium; +#define Z_Era_decade 1 +#define Z_Era_century 2 +#define Z_Era_millennium 3 + } u; +}; + +struct Z_DateFlags { + Odr_null *circa; /* OPT */ + Z_Era *era; /* OPT */ +}; + +struct Z_Date { + int *year; + int which; + union { + Z_DateMonthAndDay *monthAndDay; + int *julianDay; + int *weekNumber; + Z_DateQuarter *quarter; + Z_DateSeason *season; +#define Z_Date_monthAndDay 1 +#define Z_Date_julianDay 2 +#define Z_Date_weekNumber 3 +#define Z_Date_quarter 4 +#define Z_Date_season 5 + } u; /* OPT */ + Z_DateFlags *flags; /* OPT */ +}; + +struct Z_Time { + int *hour; + int *minute; /* OPT */ + int *second; /* OPT */ + Z_IntUnit *partOfSecond; /* OPT */ + int which; + union { + Odr_null *local; + Odr_null *utc; + int *utcOffset; +#define Z_Time_local 1 +#define Z_Time_utc 2 +#define Z_Time_utcOffset 3 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-diag1.h b/dependencies/yaz-2.1.28/include/yaz/z-diag1.h new file mode 100644 index 0000000..0b1c154 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-diag1.h @@ -0,0 +1,357 @@ +/** \file z-diag1.h + \brief ASN.1 Module DiagnosticFormatDiag1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_diag1_H +#define z_diag1_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_DiagnosticFormat_s Z_DiagnosticFormat_s; +YAZ_EXPORT int z_DiagnosticFormat_s (ODR o, Z_DiagnosticFormat_s **p, int opt, const char *name); + +typedef struct Z_DiagnosticFormat Z_DiagnosticFormat; +YAZ_EXPORT int z_DiagnosticFormat (ODR o, Z_DiagnosticFormat **p, int opt, const char *name); + +typedef struct Z_TooMany Z_TooMany; +YAZ_EXPORT int z_TooMany (ODR o, Z_TooMany **p, int opt, const char *name); + +typedef struct Z_BadSpec Z_BadSpec; +YAZ_EXPORT int z_BadSpec (ODR o, Z_BadSpec **p, int opt, const char *name); + +typedef struct Z_DbUnavail_0 Z_DbUnavail_0; +YAZ_EXPORT int z_DbUnavail_0 (ODR o, Z_DbUnavail_0 **p, int opt, const char *name); + +typedef struct Z_DbUnavail Z_DbUnavail; +YAZ_EXPORT int z_DbUnavail (ODR o, Z_DbUnavail **p, int opt, const char *name); + +typedef struct Z_Attribute Z_Attribute; +YAZ_EXPORT int z_Attribute (ODR o, Z_Attribute **p, int opt, const char *name); + +typedef struct Z_AttCombo Z_AttCombo; +YAZ_EXPORT int z_AttCombo (ODR o, Z_AttCombo **p, int opt, const char *name); + +typedef struct Z_DiagTerm Z_DiagTerm; +YAZ_EXPORT int z_DiagTerm (ODR o, Z_DiagTerm **p, int opt, const char *name); + +typedef struct Z_Proximity Z_Proximity; +YAZ_EXPORT int z_Proximity (ODR o, Z_Proximity **p, int opt, const char *name); + +typedef struct Z_AttrListList Z_AttrListList; +YAZ_EXPORT int z_AttrListList (ODR o, Z_AttrListList **p, int opt, const char *name); + +typedef struct Z_Scan Z_Scan; +YAZ_EXPORT int z_Scan (ODR o, Z_Scan **p, int opt, const char *name); + +typedef struct Z_StringList Z_StringList; +YAZ_EXPORT int z_StringList (ODR o, Z_StringList **p, int opt, const char *name); + +typedef struct Z_Sort Z_Sort; +YAZ_EXPORT int z_Sort (ODR o, Z_Sort **p, int opt, const char *name); + +typedef struct Z_Segmentation Z_Segmentation; +YAZ_EXPORT int z_Segmentation (ODR o, Z_Segmentation **p, int opt, const char *name); + +typedef struct Z_ExtServices Z_ExtServices; +YAZ_EXPORT int z_ExtServices (ODR o, Z_ExtServices **p, int opt, const char *name); + +typedef struct Z_OidList Z_OidList; +YAZ_EXPORT int z_OidList (ODR o, Z_OidList **p, int opt, const char *name); + +typedef struct Z_AltOidList Z_AltOidList; +YAZ_EXPORT int z_AltOidList (ODR o, Z_AltOidList **p, int opt, const char *name); + +typedef struct Z_AccessCtrl Z_AccessCtrl; +YAZ_EXPORT int z_AccessCtrl (ODR o, Z_AccessCtrl **p, int opt, const char *name); + +typedef struct Z_RecordSyntax Z_RecordSyntax; +YAZ_EXPORT int z_RecordSyntax (ODR o, Z_RecordSyntax **p, int opt, const char *name); + +typedef struct Z_DiagFormat Z_DiagFormat; +YAZ_EXPORT int z_DiagFormat (ODR o, Z_DiagFormat **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_DiagnosticFormat_s { + int which; + union { + Z_DefaultDiagFormat *defaultDiagRec; + Z_DiagFormat *explicitDiagnostic; +#define Z_DiagnosticFormat_s_defaultDiagRec 1 +#define Z_DiagnosticFormat_s_explicitDiagnostic 2 + } u; /* OPT */ + Z_InternationalString *message; /* OPT */ +}; + +struct Z_DiagnosticFormat { + int num; + Z_DiagnosticFormat_s **elements; +}; + +struct Z_TooMany { +#define Z_TooMany_argumentWords 1 +#define Z_TooMany_truncatedWords 2 +#define Z_TooMany_booleanOperators 3 +#define Z_TooMany_incompleteSubfields 4 +#define Z_TooMany_characters 5 +#define Z_TooMany_recordsRetrieved 6 +#define Z_TooMany_dataBasesSpecified 7 +#define Z_TooMany_resultSetsCreated 8 +#define Z_TooMany_indexTermsProcessed 9 + int *tooManyWhat; + int *max; /* OPT */ +}; + +struct Z_BadSpec { + Z_Specification *spec; + Z_DatabaseName *db; /* OPT */ + int num_goodOnes; + Z_Specification **goodOnes; /* OPT */ +}; + +struct Z_DbUnavail_0 { +#define Z_DbUnavail_0_doesNotExist 0 +#define Z_DbUnavail_0_existsButUnavail 1 +#define Z_DbUnavail_0_locked 2 +#define Z_DbUnavail_0_accessDenied 3 + int *reasonCode; /* OPT */ + Z_InternationalString *message; /* OPT */ +}; + +struct Z_DbUnavail { + Z_DatabaseName *db; + Z_DbUnavail_0 *why; +}; + +struct Z_Attribute { + Odr_oid *id; + int *type; /* OPT */ + int *value; /* OPT */ + Z_Term *term; /* OPT */ +}; + +struct Z_AttCombo { + Z_AttributeList *unsupportedCombination; + int num_recommendedAlternatives; + Z_AttributeList **recommendedAlternatives; /* OPT */ +}; + +struct Z_DiagTerm { +#define Z_DiagTerm_codedValue 1 +#define Z_DiagTerm_unparsable 2 +#define Z_DiagTerm_tooShort 3 +#define Z_DiagTerm_type 4 + int *problem; /* OPT */ + Z_Term *term; +}; + +struct Z_Proximity { + int which; + union { + Odr_null *resultSets; + Z_InternationalString *badSet; + int *relation; + int *unit; + int *distance; + Z_AttributeList *attributes; + Odr_null *ordered; + Odr_null *exclusion; +#define Z_Proximity_resultSets 1 +#define Z_Proximity_badSet 2 +#define Z_Proximity_relation 3 +#define Z_Proximity_unit 4 +#define Z_Proximity_distance 5 +#define Z_Proximity_attributes 6 +#define Z_Proximity_ordered 7 +#define Z_Proximity_exclusion 8 + } u; +}; + +struct Z_AttrListList { + int num; + Z_AttributeList **elements; +}; + +struct Z_Scan { + int which; + union { + Odr_null *nonZeroStepSize; + Odr_null *specifiedStepSize; + Odr_null *termList1; + Z_AttrListList *termList2; +#define Z_Scan_mustBeOne 1 +#define Z_Scan_mustBePositive 2 +#define Z_Scan_mustBeNonNegative 3 +#define Z_Scan_other 4 + int *posInResponse; + Odr_null *resources; + Odr_null *endOfList; +#define Z_Scan_nonZeroStepSize 1 +#define Z_Scan_specifiedStepSize 2 +#define Z_Scan_termList1 3 +#define Z_Scan_termList2 4 +#define Z_Scan_posInResponse 5 +#define Z_Scan_resources 6 +#define Z_Scan_endOfList 7 + } u; +}; + +struct Z_StringList { + int num; + Z_InternationalString **elements; +}; + +struct Z_Sort { + int which; + union { + Odr_null *sequence; + Odr_null *noRsName; + int *tooMany; + Odr_null *incompatible; + Odr_null *generic; + Odr_null *dbSpecific; + Z_SortElement *sortElement; +#define Z_Sort_tooMany 1 +#define Z_Sort_duplicate 2 + int *key; + Odr_null *action; +#define Z_Sort_relation 1 +#define Z_Sort_case 2 +#define Z_Sort_action 3 +#define Z_Sort_sort 4 + int *illegal; + Z_StringList *inputTooLarge; + Odr_null *aggregateTooLarge; +#define Z_SortD_sequence 1 +#define Z_SortD_noRsName 2 +#define Z_SortD_tooMany 3 +#define Z_SortD_incompatible 4 +#define Z_SortD_generic 5 +#define Z_SortD_dbSpecific 6 +#define Z_SortD_sortElement 7 +#define Z_SortD_key 8 +#define Z_SortD_action 9 +#define Z_SortD_illegal 10 +#define Z_SortD_inputTooLarge 11 +#define Z_SortD_aggregateTooLarge 12 + } u; +}; + +struct Z_Segmentation { + int which; + union { + Odr_null *segmentCount; + int *segmentSize; +#define Z_Segmentation_segmentCount 1 +#define Z_Segmentation_segmentSize 2 + } u; +}; + +struct Z_ExtServices { + int which; + union { +#define Z_ExtServices_nameInUse 1 +#define Z_ExtServices_noSuchName 2 +#define Z_ExtServices_quota 3 +#define Z_ExtServices_type 4 + int *req; +#define Z_ExtServices_id 1 +#define Z_ExtServices_modifyDelete 2 + int *permission; +#define Z_ExtServices_failed 1 +#define Z_ExtServices_service 2 +#define Z_ExtServices_parameters 3 + int *immediate; +#define Z_ExtServices_req 1 +#define Z_ExtServices_permission 2 +#define Z_ExtServices_immediate 3 + } u; +}; + +struct Z_OidList { + int num; + Odr_oid **elements; +}; + +struct Z_AltOidList { + int num; + Odr_oid **elements; +}; + +struct Z_AccessCtrl { + int which; + union { + Odr_null *noUser; + Odr_null *refused; + Odr_null *simple; + Z_OidList *oid; + Z_AltOidList *alternative; + Odr_null *pwdInv; + Odr_null *pwdExp; +#define Z_AccessCtrl_noUser 1 +#define Z_AccessCtrl_refused 2 +#define Z_AccessCtrl_simple 3 +#define Z_AccessCtrl_oid 4 +#define Z_AccessCtrl_alternative 5 +#define Z_AccessCtrl_pwdInv 6 +#define Z_AccessCtrl_pwdExp 7 + } u; +}; + +struct Z_RecordSyntax { + Odr_oid *unsupportedSyntax; + int num_suggestedAlternatives; + Odr_oid **suggestedAlternatives; /* OPT */ +}; + +struct Z_DiagFormat { + int which; + union { + Z_TooMany *tooMany; + Z_BadSpec *badSpec; + Z_DbUnavail *dbUnavail; +#define Z_DiagFormat_and 0 +#define Z_DiagFormat_or 1 +#define Z_DiagFormat_and_not 2 +#define Z_DiagFormat_prox 3 + int *unSupOp; + Z_Attribute *attribute; + Z_AttCombo *attCombo; + Z_DiagTerm *term; + Z_Proximity *proximity; + Z_Scan *scan; + Z_Sort *sort; + Z_Segmentation *segmentation; + Z_ExtServices *extServices; + Z_AccessCtrl *accessCtrl; + Z_RecordSyntax *recordSyntax; +#define Z_DiagFormat_tooMany 1 +#define Z_DiagFormat_badSpec 2 +#define Z_DiagFormat_dbUnavail 3 +#define Z_DiagFormat_unSupOp 4 +#define Z_DiagFormat_attribute 5 +#define Z_DiagFormat_attCombo 6 +#define Z_DiagFormat_term 7 +#define Z_DiagFormat_proximity 8 +#define Z_DiagFormat_scan 9 +#define Z_DiagFormat_sort 10 +#define Z_DiagFormat_segmentation 11 +#define Z_DiagFormat_extServices 12 +#define Z_DiagFormat_accessCtrl 13 +#define Z_DiagFormat_recordSyntax 14 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-espec1.h b/dependencies/yaz-2.1.28/include/yaz/z-espec1.h new file mode 100644 index 0000000..182cab8 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-espec1.h @@ -0,0 +1,145 @@ +/** \file z-espec1.h + \brief ASN.1 Module ElementSpecificationFormat-eSpec-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_espec1_H +#define z_espec1_H + +#include +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_Espec1 Z_Espec1; +YAZ_EXPORT int z_Espec1 (ODR o, Z_Espec1 **p, int opt, const char *name); + +typedef struct Z_ElementRequestCompositeElementPrimitives Z_ElementRequestCompositeElementPrimitives; +YAZ_EXPORT int z_ElementRequestCompositeElementPrimitives (ODR o, Z_ElementRequestCompositeElementPrimitives **p, int opt, const char *name); + +typedef struct Z_ElementRequestCompositeElementSpecs Z_ElementRequestCompositeElementSpecs; +YAZ_EXPORT int z_ElementRequestCompositeElementSpecs (ODR o, Z_ElementRequestCompositeElementSpecs **p, int opt, const char *name); + +typedef struct Z_ElementRequestCompositeElement Z_ElementRequestCompositeElement; +YAZ_EXPORT int z_ElementRequestCompositeElement (ODR o, Z_ElementRequestCompositeElement **p, int opt, const char *name); + +typedef struct Z_ElementRequest Z_ElementRequest; +YAZ_EXPORT int z_ElementRequest (ODR o, Z_ElementRequest **p, int opt, const char *name); + +typedef struct Z_SimpleElement Z_SimpleElement; +YAZ_EXPORT int z_SimpleElement (ODR o, Z_SimpleElement **p, int opt, const char *name); + +typedef struct Z_SpecificTag Z_SpecificTag; +YAZ_EXPORT int z_SpecificTag (ODR o, Z_SpecificTag **p, int opt, const char *name); + +typedef struct Z_ETagUnit Z_ETagUnit; +YAZ_EXPORT int z_ETagUnit (ODR o, Z_ETagUnit **p, int opt, const char *name); + +typedef struct Z_ETagPath Z_ETagPath; +YAZ_EXPORT int z_ETagPath (ODR o, Z_ETagPath **p, int opt, const char *name); + +typedef struct Z_OccurValues Z_OccurValues; +YAZ_EXPORT int z_OccurValues (ODR o, Z_OccurValues **p, int opt, const char *name); + +typedef struct Z_Occurrences Z_Occurrences; +YAZ_EXPORT int z_Occurrences (ODR o, Z_Occurrences **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_Espec1 { + int num_elementSetNames; + Z_InternationalString **elementSetNames; /* OPT */ + Odr_oid *defaultVariantSetId; /* OPT */ + Z_Variant *defaultVariantRequest; /* OPT */ + int *defaultTagType; /* OPT */ + int num_elements; + Z_ElementRequest **elements; /* OPT */ +}; + +struct Z_ElementRequestCompositeElementPrimitives { + int num; + Z_InternationalString **elements; +}; + +struct Z_ElementRequestCompositeElementSpecs { + int num; + Z_SimpleElement **elements; +}; + +struct Z_ElementRequestCompositeElement { + int which; + union { + Z_ElementRequestCompositeElementPrimitives *primitives; + Z_ElementRequestCompositeElementSpecs *specs; +#define Z_ElementRequestCompositeElement_primitives 1 +#define Z_ElementRequestCompositeElement_specs 2 + } u; + Z_ETagPath *deliveryTag; + Z_Variant *variantRequest; /* OPT */ +}; + +struct Z_ElementRequest { + int which; + union { + Z_SimpleElement *simpleElement; + Z_ElementRequestCompositeElement *compositeElement; +#define Z_ERequest_simpleElement 1 +#define Z_ERequest_compositeElement 2 + } u; +}; + +struct Z_SimpleElement { + Z_ETagPath *path; + Z_Variant *variantRequest; /* OPT */ +}; + +struct Z_SpecificTag { + int *tagType; /* OPT */ + Z_StringOrNumeric *tagValue; + Z_Occurrences *occurrences; /* OPT */ +}; + +struct Z_ETagUnit { + int which; + union { + Z_SpecificTag *specificTag; + Z_Occurrences *wildThing; + Odr_null *wildPath; +#define Z_ETagUnit_specificTag 1 +#define Z_ETagUnit_wildThing 2 +#define Z_ETagUnit_wildPath 3 + } u; +}; + +struct Z_ETagPath { + int num_tags; + Z_ETagUnit **tags; +}; + +struct Z_OccurValues { + int *start; + int *howMany; /* OPT */ +}; + +struct Z_Occurrences { + int which; + union { + Odr_null *all; + Odr_null *last; + Z_OccurValues *values; +#define Z_Occurrences_all 1 +#define Z_Occurrences_last 2 +#define Z_Occurrences_values 3 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-estask.h b/dependencies/yaz-2.1.28/include/yaz/z-estask.h new file mode 100644 index 0000000..1723364 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-estask.h @@ -0,0 +1,46 @@ +/** \file z-estask.h + \brief ASN.1 Module RecordSyntax-ESTaskPackage + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_estask_H +#define z_estask_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_TaskPackage Z_TaskPackage; +YAZ_EXPORT int z_TaskPackage (ODR o, Z_TaskPackage **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_TaskPackage { + Odr_oid *packageType; + Z_InternationalString *packageName; /* OPT */ + Z_InternationalString *userId; /* OPT */ + Z_IntUnit *retentionTime; /* OPT */ + Z_Permissions *permissions; /* OPT */ + Z_InternationalString *description; /* OPT */ + Odr_oct *targetReference; /* OPT */ + char *creationDateTime; /* OPT */ +#define Z_TaskPackage_pending 0 +#define Z_TaskPackage_active 1 +#define Z_TaskPackage_complete 2 +#define Z_TaskPackage_aborted 3 + int *taskStatus; + int num_packageDiagnostics; + Z_DiagRec **packageDiagnostics; /* OPT */ + Z_External *taskSpecificParameters; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-exp.h b/dependencies/yaz-2.1.28/include/yaz/z-exp.h new file mode 100644 index 0000000..8d7bb74 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-exp.h @@ -0,0 +1,1015 @@ +/** \file z-exp.h + \brief ASN.1 Module RecordSyntax-explain + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_exp_H +#define z_exp_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_ExplainRecord Z_ExplainRecord; +YAZ_EXPORT int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name); + +typedef struct Z_TargetInfo Z_TargetInfo; +YAZ_EXPORT int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name); + +typedef struct Z_DatabaseInfo Z_DatabaseInfo; +YAZ_EXPORT int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name); + +typedef struct Z_TagTypeMapping Z_TagTypeMapping; +YAZ_EXPORT int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name); + +typedef struct Z_SchemaInfo Z_SchemaInfo; +YAZ_EXPORT int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name); + +typedef struct Z_ElementInfo Z_ElementInfo; +YAZ_EXPORT int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name); + +typedef struct Z_PathUnit Z_PathUnit; +YAZ_EXPORT int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name); + +typedef struct Z_Path Z_Path; +YAZ_EXPORT int z_Path (ODR o, Z_Path **p, int opt, const char *name); + +typedef struct Z_ElementInfoList Z_ElementInfoList; +YAZ_EXPORT int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name); + +typedef struct Z_ElementDataType Z_ElementDataType; +YAZ_EXPORT int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name); + +typedef int Z_PrimitiveDataType; +YAZ_EXPORT int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name); + +typedef struct Z_TagSetElements Z_TagSetElements; +YAZ_EXPORT int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name); + +typedef struct Z_TagSetInfo Z_TagSetInfo; +YAZ_EXPORT int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name); + +typedef struct Z_RecordSyntaxInfo Z_RecordSyntaxInfo; +YAZ_EXPORT int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name); + +typedef struct Z_AttributeSetInfo Z_AttributeSetInfo; +YAZ_EXPORT int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name); + +typedef struct Z_AttributeType Z_AttributeType; +YAZ_EXPORT int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name); + +typedef struct Z_AttributeDescription Z_AttributeDescription; +YAZ_EXPORT int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name); + +typedef struct Z_TermListElement Z_TermListElement; +YAZ_EXPORT int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name); + +typedef struct Z_TermListInfo Z_TermListInfo; +YAZ_EXPORT int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name); + +typedef struct Z_ExtendedServicesInfo Z_ExtendedServicesInfo; +YAZ_EXPORT int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name); + +typedef struct Z_AttributeDetails Z_AttributeDetails; +YAZ_EXPORT int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name); + +typedef struct Z_AttributeSetDetails Z_AttributeSetDetails; +YAZ_EXPORT int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name); + +typedef struct Z_AttributeTypeDetails Z_AttributeTypeDetails; +YAZ_EXPORT int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name); + +typedef struct Z_OmittedAttributeInterpretation Z_OmittedAttributeInterpretation; +YAZ_EXPORT int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name); + +typedef struct Z_AttributeValue Z_AttributeValue; +YAZ_EXPORT int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name); + +typedef struct Z_EScanInfo Z_EScanInfo; +YAZ_EXPORT int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name); + +typedef struct Z_TermListDetails Z_TermListDetails; +YAZ_EXPORT int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name); + +typedef struct Z_ElementSetDetails Z_ElementSetDetails; +YAZ_EXPORT int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name); + +typedef struct Z_RetrievalRecordDetails Z_RetrievalRecordDetails; +YAZ_EXPORT int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name); + +typedef struct Z_PerElementDetails Z_PerElementDetails; +YAZ_EXPORT int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name); + +typedef struct Z_RecordTag Z_RecordTag; +YAZ_EXPORT int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name); + +typedef struct Z_SortDetails Z_SortDetails; +YAZ_EXPORT int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name); + +typedef struct Z_SortKeyDetails Z_SortKeyDetails; +YAZ_EXPORT int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name); + +typedef struct Z_ProcessingInformation Z_ProcessingInformation; +YAZ_EXPORT int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name); + +typedef struct Z_VariantSetInfo Z_VariantSetInfo; +YAZ_EXPORT int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name); + +typedef struct Z_VariantClass Z_VariantClass; +YAZ_EXPORT int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name); + +typedef struct Z_VariantType Z_VariantType; +YAZ_EXPORT int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name); + +typedef struct Z_VariantValue Z_VariantValue; +YAZ_EXPORT int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name); + +typedef struct Z_ValueSetEnumerated Z_ValueSetEnumerated; +YAZ_EXPORT int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name); + +typedef struct Z_ValueSet Z_ValueSet; +YAZ_EXPORT int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name); + +typedef struct Z_ValueRange Z_ValueRange; +YAZ_EXPORT int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name); + +typedef struct Z_ValueDescription Z_ValueDescription; +YAZ_EXPORT int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name); + +typedef struct Z_UnitInfo Z_UnitInfo; +YAZ_EXPORT int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name); + +typedef struct Z_UnitType Z_UnitType; +YAZ_EXPORT int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name); + +typedef struct Z_Units Z_Units; +YAZ_EXPORT int z_Units (ODR o, Z_Units **p, int opt, const char *name); + +typedef struct Z_CategoryList Z_CategoryList; +YAZ_EXPORT int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name); + +typedef struct Z_CategoryInfo Z_CategoryInfo; +YAZ_EXPORT int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name); + +typedef struct Z_CommonInfo Z_CommonInfo; +YAZ_EXPORT int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name); + +typedef struct Z_HumanStringUnit Z_HumanStringUnit; +YAZ_EXPORT int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name); + +typedef struct Z_HumanString Z_HumanString; +YAZ_EXPORT int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name); + +typedef struct Z_IconObjectUnit Z_IconObjectUnit; +YAZ_EXPORT int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name); + +typedef struct Z_IconObject Z_IconObject; +YAZ_EXPORT int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name); + +typedef Z_InternationalString Z_LanguageCode; +YAZ_EXPORT int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name); + +typedef struct Z_ContactInfo Z_ContactInfo; +YAZ_EXPORT int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name); + +typedef struct Z_NetworkAddressIA Z_NetworkAddressIA; +YAZ_EXPORT int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name); + +typedef struct Z_NetworkAddressOPA Z_NetworkAddressOPA; +YAZ_EXPORT int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name); + +typedef struct Z_NetworkAddressOther Z_NetworkAddressOther; +YAZ_EXPORT int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name); + +typedef struct Z_NetworkAddress Z_NetworkAddress; +YAZ_EXPORT int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name); + +typedef struct Z_AccessInfo Z_AccessInfo; +YAZ_EXPORT int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name); + +typedef struct Z_QueryTypeDetails Z_QueryTypeDetails; +YAZ_EXPORT int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name); + +typedef struct Z_PrivateCapOperator Z_PrivateCapOperator; +YAZ_EXPORT int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name); + +typedef struct Z_PrivateCapabilities Z_PrivateCapabilities; +YAZ_EXPORT int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name); + +typedef struct Z_RpnCapabilities Z_RpnCapabilities; +YAZ_EXPORT int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name); + +typedef struct Z_Iso8777Capabilities Z_Iso8777Capabilities; +YAZ_EXPORT int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name); + +typedef struct Z_ProxSupportPrivate Z_ProxSupportPrivate; +YAZ_EXPORT int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name); + +typedef struct Z_ProxSupportUnit Z_ProxSupportUnit; +YAZ_EXPORT int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name); + +typedef struct Z_ProximitySupport Z_ProximitySupport; +YAZ_EXPORT int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name); + +typedef struct Z_SearchKey Z_SearchKey; +YAZ_EXPORT int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name); + +typedef struct Z_AccessRestrictionsUnit Z_AccessRestrictionsUnit; +YAZ_EXPORT int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name); + +typedef struct Z_AccessRestrictions Z_AccessRestrictions; +YAZ_EXPORT int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name); + +typedef struct Z_CostsOtherCharge Z_CostsOtherCharge; +YAZ_EXPORT int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name); + +typedef struct Z_Costs Z_Costs; +YAZ_EXPORT int z_Costs (ODR o, Z_Costs **p, int opt, const char *name); + +typedef struct Z_Charge Z_Charge; +YAZ_EXPORT int z_Charge (ODR o, Z_Charge **p, int opt, const char *name); + +typedef struct Z_DatabaseList Z_DatabaseList; +YAZ_EXPORT int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name); + +typedef struct Z_AttributeCombinations Z_AttributeCombinations; +YAZ_EXPORT int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name); + +typedef struct Z_AttributeCombination Z_AttributeCombination; +YAZ_EXPORT int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name); + +typedef struct Z_AttributeValueList Z_AttributeValueList; +YAZ_EXPORT int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name); + +typedef struct Z_AttributeOccurrence Z_AttributeOccurrence; +YAZ_EXPORT int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_ExplainRecord { + int which; + union { + Z_TargetInfo *targetInfo; + Z_DatabaseInfo *databaseInfo; + Z_SchemaInfo *schemaInfo; + Z_TagSetInfo *tagSetInfo; + Z_RecordSyntaxInfo *recordSyntaxInfo; + Z_AttributeSetInfo *attributeSetInfo; + Z_TermListInfo *termListInfo; + Z_ExtendedServicesInfo *extendedServicesInfo; + Z_AttributeDetails *attributeDetails; + Z_TermListDetails *termListDetails; + Z_ElementSetDetails *elementSetDetails; + Z_RetrievalRecordDetails *retrievalRecordDetails; + Z_SortDetails *sortDetails; + Z_ProcessingInformation *processing; + Z_VariantSetInfo *variants; + Z_UnitInfo *units; + Z_CategoryList *categoryList; +#define Z_Explain_targetInfo 1 +#define Z_Explain_databaseInfo 2 +#define Z_Explain_schemaInfo 3 +#define Z_Explain_tagSetInfo 4 +#define Z_Explain_recordSyntaxInfo 5 +#define Z_Explain_attributeSetInfo 6 +#define Z_Explain_termListInfo 7 +#define Z_Explain_extendedServicesInfo 8 +#define Z_Explain_attributeDetails 9 +#define Z_Explain_termListDetails 10 +#define Z_Explain_elementSetDetails 11 +#define Z_Explain_retrievalRecordDetails 12 +#define Z_Explain_sortDetails 13 +#define Z_Explain_processing 14 +#define Z_Explain_variants 15 +#define Z_Explain_units 16 +#define Z_Explain_categoryList 17 + } u; +}; + +struct Z_TargetInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Z_InternationalString *name; + Z_HumanString *recentNews; /* OPT */ + Z_IconObject *icon; /* OPT */ + bool_t *namedResultSets; + bool_t *multipleDBsearch; + int *maxResultSets; /* OPT */ + int *maxResultSize; /* OPT */ + int *maxTerms; /* OPT */ + Z_IntUnit *timeoutInterval; /* OPT */ + Z_HumanString *welcomeMessage; /* OPT */ + Z_ContactInfo *contactInfo; /* OPT */ + Z_HumanString *description; /* OPT */ + int num_nicknames; + Z_InternationalString **nicknames; /* OPT */ + Z_HumanString *usageRest; /* OPT */ + Z_HumanString *paymentAddr; /* OPT */ + Z_HumanString *hours; /* OPT */ + int num_dbCombinations; + Z_DatabaseList **dbCombinations; /* OPT */ + int num_addresses; + Z_NetworkAddress **addresses; /* OPT */ + int num_languages; + Z_InternationalString **languages; /* OPT */ + Z_AccessInfo *commonAccessInfo; /* OPT */ +}; + +struct Z_DatabaseInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *name; + Odr_null *explainDatabase; /* OPT */ + int num_nicknames; + Z_DatabaseName **nicknames; /* OPT */ + Z_IconObject *icon; /* OPT */ + bool_t *userFee; + bool_t *available; + Z_HumanString *titleString; /* OPT */ + int num_keywords; + Z_HumanString **keywords; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_DatabaseList *associatedDbs; /* OPT */ + Z_DatabaseList *subDbs; /* OPT */ + Z_HumanString *disclaimers; /* OPT */ + Z_HumanString *news; /* OPT */ + int which; + union { + int *actualNumber; + int *approxNumber; +#define Z_DatabaseInfo_actualNumber 1 +#define Z_DatabaseInfo_approxNumber 2 + } u; /* OPT */ + Z_HumanString *defaultOrder; /* OPT */ + int *avRecordSize; /* OPT */ + int *maxRecordSize; /* OPT */ + Z_HumanString *hours; /* OPT */ + Z_HumanString *bestTime; /* OPT */ + char *lastUpdate; /* OPT */ + Z_IntUnit *updateInterval; /* OPT */ + Z_HumanString *coverage; /* OPT */ + bool_t *proprietary; /* OPT */ + Z_HumanString *copyrightText; /* OPT */ + Z_HumanString *copyrightNotice; /* OPT */ + Z_ContactInfo *producerContactInfo; /* OPT */ + Z_ContactInfo *supplierContactInfo; /* OPT */ + Z_ContactInfo *submissionContactInfo; /* OPT */ + Z_AccessInfo *accessInfo; /* OPT */ +}; + +struct Z_TagTypeMapping { + int *tagType; + Odr_oid *tagSet; /* OPT */ + Odr_null *defaultTagType; /* OPT */ +}; + +struct Z_SchemaInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Odr_oid *schema; + Z_InternationalString *name; + Z_HumanString *description; /* OPT */ + int num_tagTypeMapping; + Z_TagTypeMapping **tagTypeMapping; /* OPT */ + int num_recordStructure; + Z_ElementInfo **recordStructure; /* OPT */ +}; + +struct Z_ElementInfo { + Z_InternationalString *elementName; + Z_Path *elementTagPath; + Z_ElementDataType *dataType; /* OPT */ + bool_t *required; + bool_t *repeatable; + Z_HumanString *description; /* OPT */ +}; + +struct Z_PathUnit { + int *tagType; + Z_StringOrNumeric *tagValue; +}; + +struct Z_Path { + int num; + Z_PathUnit **elements; +}; + +struct Z_ElementInfoList { + int num; + Z_ElementInfo **elements; +}; + +struct Z_ElementDataType { + int which; + union { + Z_PrimitiveDataType *primitive; + Z_ElementInfoList *structured; +#define Z_ElementDataType_primitive 1 +#define Z_ElementDataType_structured 2 + } u; +}; + +#define Z_PrimitiveDataType_octetString 0 +#define Z_PrimitiveDataType_numeric 1 +#define Z_PrimitiveDataType_date 2 +#define Z_PrimitiveDataType_external 3 +#define Z_PrimitiveDataType_string 4 +#define Z_PrimitiveDataType_trueOrFalse 5 +#define Z_PrimitiveDataType_oid 6 +#define Z_PrimitiveDataType_intUnit 7 +#define Z_PrimitiveDataType_empty 8 +#define Z_PrimitiveDataType_noneOfTheAbove 100 + +struct Z_TagSetElements { + Z_InternationalString *elementname; + int num_nicknames; + Z_InternationalString **nicknames; /* OPT */ + Z_StringOrNumeric *elementTag; + Z_HumanString *description; /* OPT */ + Z_PrimitiveDataType *dataType; /* OPT */ + Z_OtherInformation *otherTagInfo; /* OPT */ +}; + +struct Z_TagSetInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Odr_oid *tagSet; + Z_InternationalString *name; + Z_HumanString *description; /* OPT */ + int num_elements; + Z_TagSetElements **elements; /* OPT */ +}; + +struct Z_RecordSyntaxInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Odr_oid *recordSyntax; + Z_InternationalString *name; + int num_transferSyntaxes; + Odr_oid **transferSyntaxes; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_InternationalString *asn1Module; /* OPT */ + int num_abstractStructure; + Z_ElementInfo **abstractStructure; /* OPT */ +}; + +struct Z_AttributeSetInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Z_AttributeSetId *attributeSet; + Z_InternationalString *name; + int num_attributes; + Z_AttributeType **attributes; /* OPT */ + Z_HumanString *description; /* OPT */ +}; + +struct Z_AttributeType { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + int *attributeType; + int num_attributeValues; + Z_AttributeDescription **attributeValues; +}; + +struct Z_AttributeDescription { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_StringOrNumeric *attributeValue; + int num_equivalentAttributes; + Z_StringOrNumeric **equivalentAttributes; /* OPT */ +}; + +struct Z_TermListElement { + Z_InternationalString *name; + Z_HumanString *title; /* OPT */ +#define Z_TermListElement_optimized 0 +#define Z_TermListElement_normal 1 +#define Z_TermListElement_expensive 2 +#define Z_TermListElement_filter 3 + int *searchCost; /* OPT */ + bool_t *scanable; + int num_broader; + Z_InternationalString **broader; /* OPT */ + int num_narrower; + Z_InternationalString **narrower; /* OPT */ +}; + +struct Z_TermListInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; + int num_termLists; + Z_TermListElement **termLists; +}; + +struct Z_ExtendedServicesInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Odr_oid *type; + Z_InternationalString *name; /* OPT */ + bool_t *privateType; + bool_t *restrictionsApply; + bool_t *feeApply; + bool_t *available; + bool_t *retentionSupported; +#define Z_ExtendedServicesInfo_waitSupported 1 +#define Z_ExtendedServicesInfo_waitAlways 2 +#define Z_ExtendedServicesInfo_waitNotSupported 3 +#define Z_ExtendedServicesInfo_depends 4 +#define Z_ExtendedServicesInfo_notSaying 5 + int *waitAction; + Z_HumanString *description; /* OPT */ + Z_External *specificExplain; /* OPT */ + Z_InternationalString *esASN; /* OPT */ +}; + +struct Z_AttributeDetails { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; + int num_attributesBySet; + Z_AttributeSetDetails **attributesBySet; /* OPT */ + Z_AttributeCombinations *attributeCombinations; /* OPT */ +}; + +struct Z_AttributeSetDetails { + Z_AttributeSetId *attributeSet; + int num_attributesByType; + Z_AttributeTypeDetails **attributesByType; +}; + +struct Z_AttributeTypeDetails { + int *attributeType; + Z_OmittedAttributeInterpretation *defaultIfOmitted; /* OPT */ + int num_attributeValues; + Z_AttributeValue **attributeValues; /* OPT */ +}; + +struct Z_OmittedAttributeInterpretation { + Z_StringOrNumeric *defaultValue; /* OPT */ + Z_HumanString *defaultDescription; /* OPT */ +}; + +struct Z_AttributeValue { + Z_StringOrNumeric *value; + Z_HumanString *description; /* OPT */ + int num_subAttributes; + Z_StringOrNumeric **subAttributes; /* OPT */ + int num_superAttributes; + Z_StringOrNumeric **superAttributes; /* OPT */ + Odr_null *partialSupport; /* OPT */ +}; + +struct Z_EScanInfo { + int *maxStepSize; /* OPT */ + Z_HumanString *collatingSequence; /* OPT */ + bool_t *increasing; /* OPT */ +}; + +struct Z_TermListDetails { + Z_CommonInfo *commonInfo; /* OPT */ + Z_InternationalString *termListName; + Z_HumanString *description; /* OPT */ + Z_AttributeCombinations *attributes; /* OPT */ + Z_EScanInfo *scanInfo; /* OPT */ + int *estNumberTerms; /* OPT */ + int num_sampleTerms; + Z_Term **sampleTerms; /* OPT */ +}; + +struct Z_ElementSetDetails { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; + Z_ElementSetName *elementSetName; + Odr_oid *recordSyntax; + Odr_oid *schema; + Z_HumanString *description; /* OPT */ + int num_detailsPerElement; + Z_PerElementDetails **detailsPerElement; /* OPT */ +}; + +struct Z_RetrievalRecordDetails { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; + Odr_oid *schema; + Odr_oid *recordSyntax; + Z_HumanString *description; /* OPT */ + int num_detailsPerElement; + Z_PerElementDetails **detailsPerElement; /* OPT */ +}; + +struct Z_PerElementDetails { + Z_InternationalString *name; /* OPT */ + Z_RecordTag *recordTag; /* OPT */ + int num_schemaTags; + Z_Path **schemaTags; /* OPT */ + int *maxSize; /* OPT */ + int *minSize; /* OPT */ + int *avgSize; /* OPT */ + int *fixedSize; /* OPT */ + bool_t *repeatable; + bool_t *required; + Z_HumanString *description; /* OPT */ + Z_HumanString *contents; /* OPT */ + Z_HumanString *billingInfo; /* OPT */ + Z_HumanString *restrictions; /* OPT */ + int num_alternateNames; + Z_InternationalString **alternateNames; /* OPT */ + int num_genericNames; + Z_InternationalString **genericNames; /* OPT */ + Z_AttributeCombinations *searchAccess; /* OPT */ +}; + +struct Z_RecordTag { + Z_StringOrNumeric *qualifier; /* OPT */ + Z_StringOrNumeric *tagValue; +}; + +struct Z_SortDetails { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; + int num_sortKeys; + Z_SortKeyDetails **sortKeys; /* OPT */ +}; + +struct Z_SortKeyDetails { + Z_HumanString *description; /* OPT */ + int num_elementSpecifications; + Z_Specification **elementSpecifications; /* OPT */ + Z_AttributeCombinations *attributeSpecifications; /* OPT */ + int which; + union { + Odr_null *character; + Odr_null *numeric; + Z_HumanString *structured; +#define Z_SortKeyDetails_character 1 +#define Z_SortKeyDetails_numeric 2 +#define Z_SortKeyDetails_structured 3 + } u; /* OPT */ +#define Z_SortKeyDetails_always 0 +#define Z_SortKeyDetails_never 1 +#define Z_SortKeyDetails_default_yes 2 +#define Z_SortKeyDetails_default_no 3 + int *caseSensitivity; /* OPT */ +}; + +struct Z_ProcessingInformation { + Z_CommonInfo *commonInfo; /* OPT */ + Z_DatabaseName *databaseName; +#define Z_ProcessingInformation_access 0 +#define Z_ProcessingInformation_search 1 +#define Z_ProcessingInformation_retrieval 2 +#define Z_ProcessingInformation_record_presentation 3 +#define Z_ProcessingInformation_record_handling 4 + int *processingContext; + Z_InternationalString *name; + Odr_oid *oid; + Z_HumanString *description; /* OPT */ + Z_External *instructions; /* OPT */ +}; + +struct Z_VariantSetInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Odr_oid *variantSet; + Z_InternationalString *name; + int num_variants; + Z_VariantClass **variants; /* OPT */ +}; + +struct Z_VariantClass { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + int *variantClass; + int num_variantTypes; + Z_VariantType **variantTypes; +}; + +struct Z_VariantType { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + int *variantType; + Z_VariantValue *variantValue; /* OPT */ +}; + +struct Z_VariantValue { + Z_PrimitiveDataType *dataType; + Z_ValueSet *values; /* OPT */ +}; + +struct Z_ValueSetEnumerated { + int num; + Z_ValueDescription **elements; +}; + +struct Z_ValueSet { + int which; + union { + Z_ValueRange *range; + Z_ValueSetEnumerated *enumerated; +#define Z_ValueSet_range 1 +#define Z_ValueSet_enumerated 2 + } u; +}; + +struct Z_ValueRange { + Z_ValueDescription *lower; /* OPT */ + Z_ValueDescription *upper; /* OPT */ +}; + +struct Z_ValueDescription { + int which; + union { + int *integer; + Z_InternationalString *string; + Odr_oct *octets; + Odr_oid *oid; + Z_Unit *unit; + Z_IntUnit *valueAndUnit; +#define Z_ValueDescription_integer 1 +#define Z_ValueDescription_string 2 +#define Z_ValueDescription_octets 3 +#define Z_ValueDescription_oid 4 +#define Z_ValueDescription_unit 5 +#define Z_ValueDescription_valueAndUnit 6 + } u; +}; + +struct Z_UnitInfo { + Z_CommonInfo *commonInfo; /* OPT */ + Z_InternationalString *unitSystem; + Z_HumanString *description; /* OPT */ + int num_units; + Z_UnitType **units; /* OPT */ +}; + +struct Z_UnitType { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_StringOrNumeric *unitType; + int num_units; + Z_Units **units; +}; + +struct Z_Units { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_StringOrNumeric *unit; +}; + +struct Z_CategoryList { + Z_CommonInfo *commonInfo; /* OPT */ + int num_categories; + Z_CategoryInfo **categories; +}; + +struct Z_CategoryInfo { + Z_InternationalString *category; + Z_InternationalString *originalCategory; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_InternationalString *asn1Module; /* OPT */ +}; + +struct Z_CommonInfo { + char *dateAdded; /* OPT */ + char *dateChanged; /* OPT */ + char *expiry; /* OPT */ + Z_LanguageCode *humanStringLanguage; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_HumanStringUnit { + Z_LanguageCode *language; /* OPT */ + Z_InternationalString *text; +}; + +struct Z_HumanString { + int num_strings; + Z_HumanStringUnit **strings; +}; + +struct Z_IconObjectUnit { + int which; + union { + Z_InternationalString *ianaType; + Z_InternationalString *z3950type; + Z_InternationalString *otherType; +#define Z_IconObjectUnit_ianaType 1 +#define Z_IconObjectUnit_z3950type 2 +#define Z_IconObjectUnit_otherType 3 + } u; + Odr_oct *content; +}; + +struct Z_IconObject { + int num; + Z_IconObjectUnit **elements; +}; + + + +struct Z_ContactInfo { + Z_InternationalString *name; /* OPT */ + Z_HumanString *description; /* OPT */ + Z_HumanString *address; /* OPT */ + Z_InternationalString *email; /* OPT */ + Z_InternationalString *phone; /* OPT */ +}; + +struct Z_NetworkAddressIA { + Z_InternationalString *hostAddress; + int *port; +}; + +struct Z_NetworkAddressOPA { + Z_InternationalString *pSel; + Z_InternationalString *sSel; /* OPT */ + Z_InternationalString *tSel; /* OPT */ + Z_InternationalString *nSap; +}; + +struct Z_NetworkAddressOther { + Z_InternationalString *type; + Z_InternationalString *address; +}; + +struct Z_NetworkAddress { + int which; + union { + Z_NetworkAddressIA *internetAddress; + Z_NetworkAddressOPA *osiPresentationAddress; + Z_NetworkAddressOther *other; +#define Z_NetworkAddress_iA 1 +#define Z_NetworkAddress_oPA 2 +#define Z_NetworkAddress_other 3 + } u; +}; + +struct Z_AccessInfo { + int num_queryTypesSupported; + Z_QueryTypeDetails **queryTypesSupported; /* OPT */ + int num_diagnosticsSets; + Odr_oid **diagnosticsSets; /* OPT */ + int num_attributeSetIds; + Z_AttributeSetId **attributeSetIds; /* OPT */ + int num_schemas; + Odr_oid **schemas; /* OPT */ + int num_recordSyntaxes; + Odr_oid **recordSyntaxes; /* OPT */ + int num_resourceChallenges; + Odr_oid **resourceChallenges; /* OPT */ + Z_AccessRestrictions *restrictedAccess; /* OPT */ + Z_Costs *costInfo; /* OPT */ + int num_variantSets; + Odr_oid **variantSets; /* OPT */ + int num_elementSetNames; + Z_ElementSetName **elementSetNames; /* OPT */ + int num_unitSystems; + Z_InternationalString **unitSystems; +}; + +struct Z_QueryTypeDetails { + int which; + union { + Z_PrivateCapabilities *zprivate; + Z_RpnCapabilities *rpn; + Z_Iso8777Capabilities *iso8777; + Z_HumanString *z39_58; + Z_RpnCapabilities *erpn; + Z_HumanString *rankedList; +#define Z_QueryTypeDetails_private 1 +#define Z_QueryTypeDetails_rpn 2 +#define Z_QueryTypeDetails_iso8777 3 +#define Z_QueryTypeDetails_z39_58 4 +#define Z_QueryTypeDetails_erpn 5 +#define Z_QueryTypeDetails_rankedList 6 + } u; +}; + +struct Z_PrivateCapOperator { + Z_InternationalString *roperator; + Z_HumanString *description; /* OPT */ +}; + +struct Z_PrivateCapabilities { + int num_operators; + Z_PrivateCapOperator **operators; /* OPT */ + int num_searchKeys; + Z_SearchKey **searchKeys; /* OPT */ + int num_description; + Z_HumanString **description; /* OPT */ +}; + +struct Z_RpnCapabilities { + int num_operators; + int **operators; /* OPT */ + bool_t *resultSetAsOperandSupported; + bool_t *restrictionOperandSupported; + Z_ProximitySupport *proximity; /* OPT */ +}; + +struct Z_Iso8777Capabilities { + int num_searchKeys; + Z_SearchKey **searchKeys; + Z_HumanString *restrictions; /* OPT */ +}; + +struct Z_ProxSupportPrivate { + int *unit; + Z_HumanString *description; /* OPT */ +}; + +struct Z_ProxSupportUnit { + int which; + union { + int *known; + Z_ProxSupportPrivate *zprivate; +#define Z_ProxSupportUnit_known 1 +#define Z_ProxSupportUnit_private 2 + } u; +}; + +struct Z_ProximitySupport { + bool_t *anySupport; + int num_unitsSupported; + Z_ProxSupportUnit **unitsSupported; /* OPT */ +}; + +struct Z_SearchKey { + Z_InternationalString *searchKey; + Z_HumanString *description; /* OPT */ +}; + +struct Z_AccessRestrictionsUnit { +#define Z_AccessRestrictionsUnit_any 0 +#define Z_AccessRestrictionsUnit_search 1 +#define Z_AccessRestrictionsUnit_present 2 +#define Z_AccessRestrictionsUnit_specific_elements 3 +#define Z_AccessRestrictionsUnit_extended_services 4 +#define Z_AccessRestrictionsUnit_by_database 5 + int *accessType; + Z_HumanString *accessText; /* OPT */ + int num_accessChallenges; + Odr_oid **accessChallenges; /* OPT */ +}; + +struct Z_AccessRestrictions { + int num; + Z_AccessRestrictionsUnit **elements; +}; + +struct Z_CostsOtherCharge { + Z_HumanString *forWhat; + Z_Charge *charge; +}; + +struct Z_Costs { + Z_Charge *connectCharge; /* OPT */ + Z_Charge *connectTime; /* OPT */ + Z_Charge *displayCharge; /* OPT */ + Z_Charge *searchCharge; /* OPT */ + Z_Charge *subscriptCharge; /* OPT */ + int num_otherCharges; + Z_CostsOtherCharge **otherCharges; /* OPT */ +}; + +struct Z_Charge { + Z_IntUnit *cost; + Z_Unit *perWhat; /* OPT */ + Z_HumanString *text; /* OPT */ +}; + +struct Z_DatabaseList { + int num_databases; + Z_DatabaseName **databases; +}; + +struct Z_AttributeCombinations { + Z_AttributeSetId *defaultAttributeSet; + int num_legalCombinations; + Z_AttributeCombination **legalCombinations; +}; + +struct Z_AttributeCombination { + int num_occurrences; + Z_AttributeOccurrence **occurrences; +}; + +struct Z_AttributeValueList { + int num_attributes; + Z_StringOrNumeric **attributes; +}; + +struct Z_AttributeOccurrence { + Z_AttributeSetId *attributeSet; /* OPT */ + int *attributeType; + Odr_null *mustBeSupplied; /* OPT */ + int which; + union { + Odr_null *any_or_none; + Z_AttributeValueList *specific; +#define Z_AttributeOcc_any_or_none 1 +#define Z_AttributeOcc_specific 2 + } attributeValues; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-grs.h b/dependencies/yaz-2.1.28/include/yaz/z-grs.h new file mode 100644 index 0000000..d092bf0 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-grs.h @@ -0,0 +1,181 @@ +/** \file z-grs.h + \brief ASN.1 Module RecordSyntax-generic + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_grs_H +#define z_grs_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_GenericRecord Z_GenericRecord; +YAZ_EXPORT int z_GenericRecord (ODR o, Z_GenericRecord **p, int opt, const char *name); + +typedef struct Z_TaggedElement Z_TaggedElement; +YAZ_EXPORT int z_TaggedElement (ODR o, Z_TaggedElement **p, int opt, const char *name); + +typedef struct Z_ElementData Z_ElementData; +YAZ_EXPORT int z_ElementData (ODR o, Z_ElementData **p, int opt, const char *name); + +typedef struct Z_ElementMetaData Z_ElementMetaData; +YAZ_EXPORT int z_ElementMetaData (ODR o, Z_ElementMetaData **p, int opt, const char *name); + +typedef struct Z_TagPath_s Z_TagPath_s; +YAZ_EXPORT int z_TagPath_s (ODR o, Z_TagPath_s **p, int opt, const char *name); + +typedef struct Z_TagPath Z_TagPath; +YAZ_EXPORT int z_TagPath (ODR o, Z_TagPath **p, int opt, const char *name); + +typedef struct Z_Order Z_Order; +YAZ_EXPORT int z_Order (ODR o, Z_Order **p, int opt, const char *name); + +typedef struct Z_Usage Z_Usage; +YAZ_EXPORT int z_Usage (ODR o, Z_Usage **p, int opt, const char *name); + +typedef struct Z_HitVector Z_HitVector; +YAZ_EXPORT int z_HitVector (ODR o, Z_HitVector **p, int opt, const char *name); + +typedef struct Z_Triple Z_Triple; +YAZ_EXPORT int z_Triple (ODR o, Z_Triple **p, int opt, const char *name); + +typedef struct Z_Variant Z_Variant; +YAZ_EXPORT int z_Variant (ODR o, Z_Variant **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_GenericRecord { + int num_elements; + Z_TaggedElement **elements; +}; + +struct Z_TaggedElement { + int *tagType; /* OPT */ + Z_StringOrNumeric *tagValue; + int *tagOccurrence; /* OPT */ + Z_ElementData *content; + Z_ElementMetaData *metaData; /* OPT */ + Z_Variant *appliedVariant; /* OPT */ +}; + +struct Z_ElementData { + int which; + union { + Odr_oct *octets; + int *numeric; + char *date; + Z_External *ext; + Z_InternationalString *string; + bool_t *trueOrFalse; + Odr_oid *oid; + Z_IntUnit *intUnit; + Odr_null *elementNotThere; + Odr_null *elementEmpty; + Odr_null *noDataRequested; + Z_External *diagnostic; + Z_GenericRecord *subtree; +#define Z_ElementData_octets 1 +#define Z_ElementData_numeric 2 +#define Z_ElementData_date 3 +#define Z_ElementData_ext 4 +#define Z_ElementData_string 5 +#define Z_ElementData_trueOrFalse 6 +#define Z_ElementData_oid 7 +#define Z_ElementData_intUnit 8 +#define Z_ElementData_elementNotThere 9 +#define Z_ElementData_elementEmpty 10 +#define Z_ElementData_noDataRequested 11 +#define Z_ElementData_diagnostic 12 +#define Z_ElementData_subtree 13 + } u; +}; + +struct Z_ElementMetaData { + Z_Order *seriesOrder; /* OPT */ + Z_Usage *usageRight; /* OPT */ + int num_hits; + Z_HitVector **hits; /* OPT */ + Z_InternationalString *displayName; /* OPT */ + int num_supportedVariants; + Z_Variant **supportedVariants; /* OPT */ + Z_InternationalString *message; /* OPT */ + Odr_oct *elementDescriptor; /* OPT */ + Z_TagPath *surrogateFor; /* OPT */ + Z_TagPath *surrogateElement; /* OPT */ + Z_External *other; /* OPT */ +}; + +struct Z_TagPath_s { + int *tagType; /* OPT */ + Z_StringOrNumeric *tagValue; + int *tagOccurrence; /* OPT */ +}; + +struct Z_TagPath { + int num; + Z_TagPath_s **elements; +}; + +struct Z_Order { + bool_t *ascending; + int *order; +}; + +struct Z_Usage { +#define Z_Usage_redistributable 1 +#define Z_Usage_restricted 2 +#define Z_Usage_licensePointer 3 + int *type; + Z_InternationalString *restriction; /* OPT */ +}; + +struct Z_HitVector { + Z_Term *satisfier; /* OPT */ + Z_IntUnit *offsetIntoElement; /* OPT */ + Z_IntUnit *length; /* OPT */ + int *hitRank; /* OPT */ + Odr_oct *targetToken; /* OPT */ +}; + +struct Z_Triple { + Odr_oid *variantSetId; /* OPT */ + int *zclass; + int *type; + int which; + union { + int *integer; + Z_InternationalString *internationalString; + Odr_oct *octetString; + Odr_oid *objectIdentifier; + bool_t *boolean; + Odr_null *null; + Z_Unit *unit; + Z_IntUnit *valueAndUnit; +#define Z_Triple_integer 1 +#define Z_Triple_internationalString 2 +#define Z_Triple_octetString 3 +#define Z_Triple_objectIdentifier 4 +#define Z_Triple_boolean 5 +#define Z_Triple_null 6 +#define Z_Triple_unit 7 +#define Z_Triple_valueAndUnit 8 + } value; +}; + +struct Z_Variant { + Odr_oid *globalVariantSetId; /* OPT */ + int num_triples; + Z_Triple **triples; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-mterm2.h b/dependencies/yaz-2.1.28/include/yaz/z-mterm2.h new file mode 100644 index 0000000..40edd39 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-mterm2.h @@ -0,0 +1,40 @@ +/** \file z-mterm2.h + \brief ASN.1 Module UserInfoFormat-multipleSearchTerms-2 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_mterm2_H +#define z_mterm2_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_MultipleSearchTerms_2_s Z_MultipleSearchTerms_2_s; +YAZ_EXPORT int z_MultipleSearchTerms_2_s (ODR o, Z_MultipleSearchTerms_2_s **p, int opt, const char *name); + +typedef struct Z_MultipleSearchTerms_2 Z_MultipleSearchTerms_2; +YAZ_EXPORT int z_MultipleSearchTerms_2 (ODR o, Z_MultipleSearchTerms_2 **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_MultipleSearchTerms_2_s { + Z_Term *term; + bool_t *flag; /* OPT */ +}; + +struct Z_MultipleSearchTerms_2 { + int num; + Z_MultipleSearchTerms_2_s **elements; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-oclcui.h b/dependencies/yaz-2.1.28/include/yaz/z-oclcui.h new file mode 100644 index 0000000..98ee5c9 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-oclcui.h @@ -0,0 +1,40 @@ +/** \file z-oclcui.h + \brief ASN.1 Module UserInfoFormat-oclcUserInformation + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_oclcui_H +#define z_oclcui_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_OCLC_UserInformation Z_OCLC_UserInformation; +YAZ_EXPORT int z_OCLC_UserInformation (ODR o, Z_OCLC_UserInformation **p, int opt, const char *name); + +typedef char Z_DBName; +YAZ_EXPORT int z_DBName (ODR o, Z_DBName **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_OCLC_UserInformation { + char *motd; /* OPT */ + int num_dblist; + Z_DBName **dblist; /* OPT */ + bool_t *failReason; /* OPT */ + int *code; /* OPT */ + char *text; /* OPT */ +}; + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-opac.h b/dependencies/yaz-2.1.28/include/yaz/z-opac.h new file mode 100644 index 0000000..34fac31 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-opac.h @@ -0,0 +1,98 @@ +/** \file z-opac.h + \brief ASN.1 Module RecordSyntax-opac + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_opac_H +#define z_opac_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_OPACRecord Z_OPACRecord; +YAZ_EXPORT int z_OPACRecord (ODR o, Z_OPACRecord **p, int opt, const char *name); + +typedef struct Z_HoldingsRecord Z_HoldingsRecord; +YAZ_EXPORT int z_HoldingsRecord (ODR o, Z_HoldingsRecord **p, int opt, const char *name); + +typedef struct Z_HoldingsAndCircData Z_HoldingsAndCircData; +YAZ_EXPORT int z_HoldingsAndCircData (ODR o, Z_HoldingsAndCircData **p, int opt, const char *name); + +typedef struct Z_Volume Z_Volume; +YAZ_EXPORT int z_Volume (ODR o, Z_Volume **p, int opt, const char *name); + +typedef struct Z_CircRecord Z_CircRecord; +YAZ_EXPORT int z_CircRecord (ODR o, Z_CircRecord **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_OPACRecord { + Z_External *bibliographicRecord; /* OPT */ + int num_holdingsData; + Z_HoldingsRecord **holdingsData; /* OPT */ +}; + +struct Z_HoldingsRecord { + int which; + union { + Z_External *marcHoldingsRecord; + Z_HoldingsAndCircData *holdingsAndCirc; +#define Z_HoldingsRecord_marcHoldingsRecord 1 +#define Z_HoldingsRecord_holdingsAndCirc 2 + } u; +}; + +struct Z_HoldingsAndCircData { + Z_InternationalString *typeOfRecord; /* OPT */ + Z_InternationalString *encodingLevel; /* OPT */ + Z_InternationalString *format; /* OPT */ + Z_InternationalString *receiptAcqStatus; /* OPT */ + Z_InternationalString *generalRetention; /* OPT */ + Z_InternationalString *completeness; /* OPT */ + Z_InternationalString *dateOfReport; /* OPT */ + Z_InternationalString *nucCode; /* OPT */ + Z_InternationalString *localLocation; /* OPT */ + Z_InternationalString *shelvingLocation; /* OPT */ + Z_InternationalString *callNumber; /* OPT */ + Z_InternationalString *shelvingData; /* OPT */ + Z_InternationalString *copyNumber; /* OPT */ + Z_InternationalString *publicNote; /* OPT */ + Z_InternationalString *reproductionNote; /* OPT */ + Z_InternationalString *termsUseRepro; /* OPT */ + Z_InternationalString *enumAndChron; /* OPT */ + int num_volumes; + Z_Volume **volumes; /* OPT */ + int num_circulationData; + Z_CircRecord **circulationData; /* OPT */ +}; + +struct Z_Volume { + Z_InternationalString *enumeration; /* OPT */ + Z_InternationalString *chronology; /* OPT */ + Z_InternationalString *enumAndChron; /* OPT */ +}; + +struct Z_CircRecord { + bool_t *availableNow; + Z_InternationalString *availablityDate; /* OPT */ + Z_InternationalString *availableThru; /* OPT */ + Z_InternationalString *restrictions; /* OPT */ + Z_InternationalString *itemId; /* OPT */ + bool_t *renewable; + bool_t *onHold; + Z_InternationalString *enumAndChron; /* OPT */ + Z_InternationalString *midspine; /* OPT */ + Z_InternationalString *temporaryLocation; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-rrf1.h b/dependencies/yaz-2.1.28/include/yaz/z-rrf1.h new file mode 100644 index 0000000..b787cf5 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-rrf1.h @@ -0,0 +1,62 @@ +/** \file z-rrf1.h + \brief ASN.1 Module ResourceReport-Format-Resource-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_rrf1_H +#define z_rrf1_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_ResourceReport1 Z_ResourceReport1; +YAZ_EXPORT int z_ResourceReport1 (ODR o, Z_ResourceReport1 **p, int opt, const char *name); + +typedef struct Z_Estimate1 Z_Estimate1; +YAZ_EXPORT int z_Estimate1 (ODR o, Z_Estimate1 **p, int opt, const char *name); + +typedef int Z_EstimateType; +YAZ_EXPORT int z_EstimateType (ODR o, Z_EstimateType **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_ResourceReport1 { + int num_estimates; + Z_Estimate1 **estimates; + Z_InternationalString *message; +}; + +struct Z_Estimate1 { + Z_EstimateType *type; + int *value; + int *currency_code; /* OPT */ +}; + +#define Z_EstimateType_currentSearchRecords 1 +#define Z_EstimateType_finalSearchRecords 2 +#define Z_EstimateType_currentPresentRecords 3 +#define Z_EstimateType_finalPresentRecords 4 +#define Z_EstimateType_currentOpTimeProcessing 5 +#define Z_EstimateType_finalOpTimeProcessing 6 +#define Z_EstimateType_currentAssocTime 7 +#define Z_EstimateType_currentOperationCost 8 +#define Z_EstimateType_finalOperationCost 9 +#define Z_EstimateType_currentAssocCost 10 +#define Z_EstimateType_finalOpTimeElapsed 11 +#define Z_EstimateType_percentComplete 12 +#define Z_EstimateType_currentSearchAssocCost 13 +#define Z_EstimateType_currentPresentAssocCost 14 +#define Z_EstimateType_currentConnectAssocCost 15 +#define Z_EstimateType_currentOtherAssocCost 16 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-rrf2.h b/dependencies/yaz-2.1.28/include/yaz/z-rrf2.h new file mode 100644 index 0000000..d9f98d1 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-rrf2.h @@ -0,0 +1,41 @@ +/** \file z-rrf2.h + \brief ASN.1 Module ResourceReport-Format-Resource-2 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_rrf2_H +#define z_rrf2_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_ResourceReport2 Z_ResourceReport2; +YAZ_EXPORT int z_ResourceReport2 (ODR o, Z_ResourceReport2 **p, int opt, const char *name); + +typedef struct Z_Estimate2 Z_Estimate2; +YAZ_EXPORT int z_Estimate2 (ODR o, Z_Estimate2 **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_ResourceReport2 { + int num_estimates; + Z_Estimate2 **estimates; /* OPT */ + Z_InternationalString *message; /* OPT */ +}; + +struct Z_Estimate2 { + Z_StringOrNumeric *type; + Z_IntUnit *value; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-sum.h b/dependencies/yaz-2.1.28/include/yaz/z-sum.h new file mode 100644 index 0000000..0f8d57d --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-sum.h @@ -0,0 +1,54 @@ +/** \file z-sum.h + \brief ASN.1 Module RecordSyntax-summary + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_sum_H +#define z_sum_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_BriefBib Z_BriefBib; +YAZ_EXPORT int z_BriefBib (ODR o, Z_BriefBib **p, int opt, const char *name); + +typedef struct Z_FormatSpec Z_FormatSpec; +YAZ_EXPORT int z_FormatSpec (ODR o, Z_FormatSpec **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_BriefBib { + Z_InternationalString *title; + Z_InternationalString *author; /* OPT */ + Z_InternationalString *callNumber; /* OPT */ + Z_InternationalString *recordType; /* OPT */ + Z_InternationalString *bibliographicLevel; /* OPT */ + int num_format; + Z_FormatSpec **format; /* OPT */ + Z_InternationalString *publicationPlace; /* OPT */ + Z_InternationalString *publicationDate; /* OPT */ + Z_InternationalString *targetSystemKey; /* OPT */ + Z_InternationalString *satisfyingElement; /* OPT */ + int *rank; /* OPT */ + Z_InternationalString *documentId; /* OPT */ + Z_InternationalString *abstract; /* OPT */ + Z_OtherInformation *otherInfo; /* OPT */ +}; + +struct Z_FormatSpec { + Z_InternationalString *type; + int *size; /* OPT */ + int *bestPosn; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-sutrs.h b/dependencies/yaz-2.1.28/include/yaz/z-sutrs.h new file mode 100644 index 0000000..cd1b6bf --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-sutrs.h @@ -0,0 +1,39 @@ +/** \file z-sutrs.h + \brief ASN.1 Module RecordSyntax-SUTRS + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_sutrs_H +#define z_sutrs_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef Odr_oct Z_SUTRS; +YAZ_EXPORT int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name); + +#ifdef __cplusplus +} +#endif +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef Z_InternationalString Z_SutrsRecord; +YAZ_EXPORT int z_SutrsRecord (ODR o, Z_SutrsRecord **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-uifr1.h b/dependencies/yaz-2.1.28/include/yaz/z-uifr1.h new file mode 100644 index 0000000..d7e8b1f --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-uifr1.h @@ -0,0 +1,98 @@ +/** \file z-uifr1.h + \brief ASN.1 Module UserInfoFormat-searchResult-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_uifr1_H +#define z_uifr1_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_SearchInfoReport_s Z_SearchInfoReport_s; +YAZ_EXPORT int z_SearchInfoReport_s (ODR o, Z_SearchInfoReport_s **p, int opt, const char *name); + +typedef struct Z_SearchInfoReport Z_SearchInfoReport; +YAZ_EXPORT int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt, const char *name); + +typedef struct Z_ResultsByDB_sList Z_ResultsByDB_sList; +YAZ_EXPORT int z_ResultsByDB_sList (ODR o, Z_ResultsByDB_sList **p, int opt, const char *name); + +typedef struct Z_ResultsByDB_s Z_ResultsByDB_s; +YAZ_EXPORT int z_ResultsByDB_s (ODR o, Z_ResultsByDB_s **p, int opt, const char *name); + +typedef struct Z_ResultsByDB Z_ResultsByDB; +YAZ_EXPORT int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name); + +typedef struct Z_QueryExpressionTerm Z_QueryExpressionTerm; +YAZ_EXPORT int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt, const char *name); + +typedef struct Z_QueryExpression Z_QueryExpression; +YAZ_EXPORT int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_SearchInfoReport_s { + Z_InternationalString *subqueryId; /* OPT */ + bool_t *fullQuery; + Z_QueryExpression *subqueryExpression; /* OPT */ + Z_QueryExpression *subqueryInterpretation; /* OPT */ + Z_QueryExpression *subqueryRecommendation; /* OPT */ + int *subqueryCount; /* OPT */ + Z_IntUnit *subqueryWeight; /* OPT */ + Z_ResultsByDB *resultsByDB; /* OPT */ +}; + +struct Z_SearchInfoReport { + int num; + Z_SearchInfoReport_s **elements; +}; + +struct Z_ResultsByDB_sList { + int num; + Z_DatabaseName **elements; +}; + +struct Z_ResultsByDB_s { + int which; + union { + Odr_null *all; + Z_ResultsByDB_sList *list; +#define Z_ResultsByDB_s_all 1 +#define Z_ResultsByDB_s_list 2 + } u; + int *count; /* OPT */ + Z_InternationalString *resultSetName; /* OPT */ +}; + +struct Z_ResultsByDB { + int num; + Z_ResultsByDB_s **elements; +}; + +struct Z_QueryExpressionTerm { + Z_Term *queryTerm; + Z_InternationalString *termComment; /* OPT */ +}; + +struct Z_QueryExpression { + int which; + union { + Z_QueryExpressionTerm *term; + Z_Query *query; +#define Z_QueryExpression_term 1 +#define Z_QueryExpression_query 2 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/z-univ.h b/dependencies/yaz-2.1.28/include/yaz/z-univ.h new file mode 100644 index 0000000..1b67b6a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/z-univ.h @@ -0,0 +1,53 @@ +/** \file z-univ.h + \brief ASN.1 Module ResourceReport-Format-Universe-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef z_univ_H +#define z_univ_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_UniverseReportHits Z_UniverseReportHits; +YAZ_EXPORT int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt, const char *name); + +typedef struct Z_UniverseReportDuplicate Z_UniverseReportDuplicate; +YAZ_EXPORT int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt, const char *name); + +typedef struct Z_UniverseReport Z_UniverseReport; +YAZ_EXPORT int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_UniverseReportHits { + Z_StringOrNumeric *database; + Z_StringOrNumeric *hits; +}; + +struct Z_UniverseReportDuplicate { + Z_StringOrNumeric *hitno; +}; + +struct Z_UniverseReport { + int *totalHits; + int which; + union { + Z_UniverseReportHits *databaseHits; + Z_UniverseReportDuplicate *duplicate; +#define Z_UniverseReport_databaseHits 1 +#define Z_UniverseReport_duplicate 2 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-admin.h b/dependencies/yaz-2.1.28/include/yaz/zes-admin.h new file mode 100644 index 0000000..2be03ef --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-admin.h @@ -0,0 +1,113 @@ +/** \file zes-admin.h + \brief ASN.1 Module ESFormat-Admin + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_admin_H +#define zes_admin_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_AdminEsRequest Z_AdminEsRequest; +YAZ_EXPORT int z_AdminEsRequest (ODR o, Z_AdminEsRequest **p, int opt, const char *name); + +typedef struct Z_AdminTaskPackage Z_AdminTaskPackage; +YAZ_EXPORT int z_AdminTaskPackage (ODR o, Z_AdminTaskPackage **p, int opt, const char *name); + +typedef struct Z_Admin Z_Admin; +YAZ_EXPORT int z_Admin (ODR o, Z_Admin **p, int opt, const char *name); + +typedef struct Z_ESAdminOriginPartToKeep Z_ESAdminOriginPartToKeep; +YAZ_EXPORT int z_ESAdminOriginPartToKeep (ODR o, Z_ESAdminOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_ESAdminOriginPartNotToKeep Z_ESAdminOriginPartNotToKeep; +YAZ_EXPORT int z_ESAdminOriginPartNotToKeep (ODR o, Z_ESAdminOriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_ESAdminTargetPart Z_ESAdminTargetPart; +YAZ_EXPORT int z_ESAdminTargetPart (ODR o, Z_ESAdminTargetPart **p, int opt, const char *name); + +typedef struct Z_ImportParameters Z_ImportParameters; +YAZ_EXPORT int z_ImportParameters (ODR o, Z_ImportParameters **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_AdminEsRequest { + Z_ESAdminOriginPartToKeep *toKeep; + Z_ESAdminOriginPartNotToKeep *notToKeep; +}; + +struct Z_AdminTaskPackage { + Z_ESAdminOriginPartToKeep *originPart; + Z_ESAdminTargetPart *targetPart; +}; + +struct Z_Admin { + int which; + union { + Z_AdminEsRequest *esRequest; + Z_AdminTaskPackage *taskPackage; +#define Z_Admin_esRequest 1 +#define Z_Admin_taskPackage 2 + } u; +}; + +struct Z_ESAdminOriginPartToKeep { + int which; + union { + Odr_null *reIndex; + Odr_null *truncate; + Odr_null *drop; + Odr_null *create; + Z_ImportParameters *import; + Odr_null *refresh; + Odr_null *commit; + Odr_null *shutdown; + Odr_null *start; +#define Z_ESAdminOriginPartToKeep_reIndex 1 +#define Z_ESAdminOriginPartToKeep_truncate 2 +#define Z_ESAdminOriginPartToKeep_drop 3 +#define Z_ESAdminOriginPartToKeep_create 4 +#define Z_ESAdminOriginPartToKeep_import 5 +#define Z_ESAdminOriginPartToKeep_refresh 6 +#define Z_ESAdminOriginPartToKeep_commit 7 +#define Z_ESAdminOriginPartToKeep_shutdown 8 +#define Z_ESAdminOriginPartToKeep_start 9 + } u; + Z_InternationalString *databaseName; /* OPT */ +}; + +struct Z_ESAdminOriginPartNotToKeep { + int which; + union { + Z_Segment *records; + Odr_null *recordsWillFollow; +#define Z_ESAdminOriginPartNotToKeep_records 1 +#define Z_ESAdminOriginPartNotToKeep_recordsWillFollow 2 + } u; +}; + +struct Z_ESAdminTargetPart { +#define Z_ESAdminTargetPart_success 1 +#define Z_ESAdminTargetPart_partial 2 +#define Z_ESAdminTargetPart_failure 3 + int *updateStatus; + int num_globalDiagnostics; + Z_DiagRec **globalDiagnostics; /* OPT */ +}; + +struct Z_ImportParameters { + Z_InternationalString *recordType; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-expi.h b/dependencies/yaz-2.1.28/include/yaz/zes-expi.h new file mode 100644 index 0000000..87b9e41 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-expi.h @@ -0,0 +1,108 @@ +/** \file zes-expi.h + \brief ASN.1 Module ESFormat-ExportInvocation + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_expi_H +#define zes_expi_H + +#include +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_EIExportInvocationEsRequest Z_EIExportInvocationEsRequest; +YAZ_EXPORT int z_EIExportInvocationEsRequest (ODR o, Z_EIExportInvocationEsRequest **p, int opt, const char *name); + +typedef struct Z_EIExportInvocationTaskPackage Z_EIExportInvocationTaskPackage; +YAZ_EXPORT int z_EIExportInvocationTaskPackage (ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name); + +typedef struct Z_EIExportInvocation Z_EIExportInvocation; +YAZ_EXPORT int z_EIExportInvocation (ODR o, Z_EIExportInvocation **p, int opt, const char *name); + +typedef struct Z_EIOriginPartToKeep Z_EIOriginPartToKeep; +YAZ_EXPORT int z_EIOriginPartToKeep (ODR o, Z_EIOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_EIOriginPartNotToKeepRanges_s Z_EIOriginPartNotToKeepRanges_s; +YAZ_EXPORT int z_EIOriginPartNotToKeepRanges_s (ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name); + +typedef struct Z_EIOriginPartNotToKeepRanges Z_EIOriginPartNotToKeepRanges; +YAZ_EXPORT int z_EIOriginPartNotToKeepRanges (ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name); + +typedef struct Z_EIOriginPartNotToKeep Z_EIOriginPartNotToKeep; +YAZ_EXPORT int z_EIOriginPartNotToKeep (ODR o, Z_EIOriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_EITargetPart Z_EITargetPart; +YAZ_EXPORT int z_EITargetPart (ODR o, Z_EITargetPart **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_EIExportInvocationEsRequest { + Z_EIOriginPartToKeep *toKeep; + Z_EIOriginPartNotToKeep *notToKeep; +}; + +struct Z_EIExportInvocationTaskPackage { + Z_EIOriginPartToKeep *originPart; + Z_EITargetPart *targetPart; /* OPT */ +}; + +struct Z_EIExportInvocation { + int which; + union { + Z_EIExportInvocationEsRequest *esRequest; + Z_EIExportInvocationTaskPackage *taskPackage; +#define Z_EIExportInvocation_esRequest 1 +#define Z_EIExportInvocation_taskPackage 2 + } u; +}; + +struct Z_EIOriginPartToKeep { + int which; + union { + Z_InternationalString *packageName; + Z_ESExportSpecification *packageSpec; +#define Z_EIOriginPartToKeep_packageName 1 +#define Z_EIOriginPartToKeep_packageSpec 2 + } u; + int *numberOfCopies; +}; + +struct Z_EIOriginPartNotToKeepRanges_s { + int *start; + int *count; /* OPT */ +}; + +struct Z_EIOriginPartNotToKeepRanges { + int num; + Z_EIOriginPartNotToKeepRanges_s **elements; +}; + +struct Z_EIOriginPartNotToKeep { + Z_InternationalString *resultSetId; + int which; + union { + Odr_null *all; + Z_EIOriginPartNotToKeepRanges *ranges; +#define Z_EIOriginPartNotToKeep_all 1 +#define Z_EIOriginPartNotToKeep_ranges 2 + } u; +}; + +struct Z_EITargetPart { + Z_IntUnit *estimatedQuantity; /* OPT */ + Z_IntUnit *quantitySoFar; /* OPT */ + Z_IntUnit *estimatedCost; /* OPT */ + Z_IntUnit *costSoFar; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-exps.h b/dependencies/yaz-2.1.28/include/yaz/zes-exps.h new file mode 100644 index 0000000..04fe0ef --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-exps.h @@ -0,0 +1,96 @@ +/** \file zes-exps.h + \brief ASN.1 Module ESFormat-ExportSpecification + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_exps_H +#define zes_exps_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_ESExportSpecificationEsRequest Z_ESExportSpecificationEsRequest; +YAZ_EXPORT int z_ESExportSpecificationEsRequest (ODR o, Z_ESExportSpecificationEsRequest **p, int opt, const char *name); + +typedef struct Z_ESExportSpecificationTaskPackage Z_ESExportSpecificationTaskPackage; +YAZ_EXPORT int z_ESExportSpecificationTaskPackage (ODR o, Z_ESExportSpecificationTaskPackage **p, int opt, const char *name); + +typedef struct Z_ESExportSpecification Z_ESExportSpecification; +YAZ_EXPORT int z_ESExportSpecification (ODR o, Z_ESExportSpecification **p, int opt, const char *name); + +typedef struct Z_ESOriginPartToKeep Z_ESOriginPartToKeep; +YAZ_EXPORT int z_ESOriginPartToKeep (ODR o, Z_ESOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_ESDestinationOther Z_ESDestinationOther; +YAZ_EXPORT int z_ESDestinationOther (ODR o, Z_ESDestinationOther **p, int opt, const char *name); + +typedef struct Z_ESDestination Z_ESDestination; +YAZ_EXPORT int z_ESDestination (ODR o, Z_ESDestination **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_ESExportSpecificationEsRequest { + Z_ESOriginPartToKeep *toKeep; + Odr_null *notToKeep; +}; + +struct Z_ESExportSpecificationTaskPackage { + Z_ESOriginPartToKeep *originPart; + Odr_null *targetPart; +}; + +struct Z_ESExportSpecification { + int which; + union { + Z_ESExportSpecificationEsRequest *esRequest; + Z_ESExportSpecificationTaskPackage *taskPackage; +#define Z_ESExportSpecification_esRequest 1 +#define Z_ESExportSpecification_taskPackage 2 + } u; +}; + +struct Z_ESOriginPartToKeep { + Z_CompSpec *composition; + Z_ESDestination *exportDestination; +}; + +struct Z_ESDestinationOther { + Z_InternationalString *vehicle; /* OPT */ + Z_InternationalString *destination; +}; + +struct Z_ESDestination { + int which; + union { + Z_InternationalString *phoneNumber; + Z_InternationalString *faxNumber; + Z_InternationalString *x400address; + Z_InternationalString *emailAddress; + Z_InternationalString *pagerNumber; + Z_InternationalString *ftpAddress; + Z_InternationalString *ftamAddress; + Z_InternationalString *printerAddress; + Z_ESDestinationOther *other; +#define Z_ESDestination_phoneNumber 1 +#define Z_ESDestination_faxNumber 2 +#define Z_ESDestination_x400address 3 +#define Z_ESDestination_emailAddress 4 +#define Z_ESDestination_pagerNumber 5 +#define Z_ESDestination_ftpAddress 6 +#define Z_ESDestination_ftamAddress 7 +#define Z_ESDestination_printerAddress 8 +#define Z_ESDestination_other 9 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-order.h b/dependencies/yaz-2.1.28/include/yaz/zes-order.h new file mode 100644 index 0000000..3de2359 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-order.h @@ -0,0 +1,135 @@ +/** \file zes-order.h + \brief ASN.1 Module ESFormat-ItemOrder + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_order_H +#define zes_order_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_IORequest Z_IORequest; +YAZ_EXPORT int z_IORequest (ODR o, Z_IORequest **p, int opt, const char *name); + +typedef struct Z_IOTaskPackage Z_IOTaskPackage; +YAZ_EXPORT int z_IOTaskPackage (ODR o, Z_IOTaskPackage **p, int opt, const char *name); + +typedef struct Z_IOItemOrder Z_IOItemOrder; +YAZ_EXPORT int z_IOItemOrder (ODR o, Z_IOItemOrder **p, int opt, const char *name); + +typedef struct Z_IOContact Z_IOContact; +YAZ_EXPORT int z_IOContact (ODR o, Z_IOContact **p, int opt, const char *name); + +typedef struct Z_IOBilling Z_IOBilling; +YAZ_EXPORT int z_IOBilling (ODR o, Z_IOBilling **p, int opt, const char *name); + +typedef struct Z_IOOriginPartToKeep Z_IOOriginPartToKeep; +YAZ_EXPORT int z_IOOriginPartToKeep (ODR o, Z_IOOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_IOCreditCardInfo Z_IOCreditCardInfo; +YAZ_EXPORT int z_IOCreditCardInfo (ODR o, Z_IOCreditCardInfo **p, int opt, const char *name); + +typedef struct Z_IOResultSetItem Z_IOResultSetItem; +YAZ_EXPORT int z_IOResultSetItem (ODR o, Z_IOResultSetItem **p, int opt, const char *name); + +typedef struct Z_IOOriginPartNotToKeep Z_IOOriginPartNotToKeep; +YAZ_EXPORT int z_IOOriginPartNotToKeep (ODR o, Z_IOOriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_IOTargetPart Z_IOTargetPart; +YAZ_EXPORT int z_IOTargetPart (ODR o, Z_IOTargetPart **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_IORequest { + Z_IOOriginPartToKeep *toKeep; /* OPT */ + Z_IOOriginPartNotToKeep *notToKeep; +}; + +struct Z_IOTaskPackage { + Z_IOOriginPartToKeep *originPart; /* OPT */ + Z_IOTargetPart *targetPart; +}; + +struct Z_IOItemOrder { + int which; + union { + Z_IORequest *esRequest; + Z_IOTaskPackage *taskPackage; +#define Z_IOItemOrder_esRequest 1 +#define Z_IOItemOrder_taskPackage 2 + } u; +}; + +struct Z_IOContact { + Z_InternationalString *name; /* OPT */ + Z_InternationalString *phone; /* OPT */ + Z_InternationalString *email; /* OPT */ +}; + +struct Z_IOBilling { + int which; + union { + Odr_null *billInvoice; + Odr_null *prepay; + Odr_null *depositAccount; + Z_IOCreditCardInfo *creditCard; + Odr_null *cardInfoPreviouslySupplied; + Odr_null *privateKnown; + Z_External *privateNotKnown; +#define Z_IOBilling_billInvoice 1 +#define Z_IOBilling_prepay 2 +#define Z_IOBilling_depositAccount 3 +#define Z_IOBilling_creditCard 4 +#define Z_IOBilling_cardInfoPreviouslySupplied 5 +#define Z_IOBilling_privateKnown 6 +#define Z_IOBilling_privateNotKnown 7 + } u; + Z_InternationalString *customerReference; /* OPT */ + Z_InternationalString *customerPONumber; /* OPT */ +}; + +struct Z_IOOriginPartToKeep { + Z_External *supplDescription; /* OPT */ + Z_IOContact *contact; /* OPT */ + Z_IOBilling *addlBilling; /* OPT */ +}; + +struct Z_IOCreditCardInfo { + Z_InternationalString *nameOnCard; + Z_InternationalString *expirationDate; + Z_InternationalString *cardNumber; +}; + +struct Z_IOResultSetItem { + Z_InternationalString *resultSetId; + int *item; +}; + +struct Z_IOOriginPartNotToKeep { + Z_IOResultSetItem *resultSetItem; /* OPT */ + Z_External *itemRequest; /* OPT */ +}; + +struct Z_IOTargetPart { + Z_External *itemRequest; /* OPT */ + Z_External *statusOrErrorReport; /* OPT */ +#define Z_IOTargetPart_notReceived 1 +#define Z_IOTargetPart_loanQueue 2 +#define Z_IOTargetPart_forwarded 3 +#define Z_IOTargetPart_unfilledCopyright 4 +#define Z_IOTargetPart_filledCopyright 5 + int *auxiliaryStatus; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-pquery.h b/dependencies/yaz-2.1.28/include/yaz/zes-pquery.h new file mode 100644 index 0000000..ff0c6d5 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-pquery.h @@ -0,0 +1,80 @@ +/** \file zes-pquery.h + \brief ASN.1 Module ESFormat-PersistentQuery + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_pquery_H +#define zes_pquery_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_PQueryPersistentQueryEsRequest Z_PQueryPersistentQueryEsRequest; +YAZ_EXPORT int z_PQueryPersistentQueryEsRequest (ODR o, Z_PQueryPersistentQueryEsRequest **p, int opt, const char *name); + +typedef struct Z_PQueryPersistentQueryTaskPackage Z_PQueryPersistentQueryTaskPackage; +YAZ_EXPORT int z_PQueryPersistentQueryTaskPackage (ODR o, Z_PQueryPersistentQueryTaskPackage **p, int opt, const char *name); + +typedef struct Z_PQueryPersistentQuery Z_PQueryPersistentQuery; +YAZ_EXPORT int z_PQueryPersistentQuery (ODR o, Z_PQueryPersistentQuery **p, int opt, const char *name); + +typedef struct Z_PQueryOriginPartToKeep Z_PQueryOriginPartToKeep; +YAZ_EXPORT int z_PQueryOriginPartToKeep (ODR o, Z_PQueryOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_PQueryOriginPartNotToKeep Z_PQueryOriginPartNotToKeep; +YAZ_EXPORT int z_PQueryOriginPartNotToKeep (ODR o, Z_PQueryOriginPartNotToKeep **p, int opt, const char *name); + +typedef Z_Query Z_PQueryTargetPart; +YAZ_EXPORT int z_PQueryTargetPart (ODR o, Z_PQueryTargetPart **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_PQueryPersistentQueryEsRequest { + Z_PQueryOriginPartToKeep *toKeep; /* OPT */ + Z_PQueryOriginPartNotToKeep *notToKeep; +}; + +struct Z_PQueryPersistentQueryTaskPackage { + Z_PQueryOriginPartToKeep *originPart; /* OPT */ + Z_PQueryTargetPart *targetPart; +}; + +struct Z_PQueryPersistentQuery { + int which; + union { + Z_PQueryPersistentQueryEsRequest *esRequest; + Z_PQueryPersistentQueryTaskPackage *taskPackage; +#define Z_PQueryPersistentQuery_esRequest 1 +#define Z_PQueryPersistentQuery_taskPackage 2 + } u; +}; + +struct Z_PQueryOriginPartToKeep { + int num_dbNames; + Z_InternationalString **dbNames; /* OPT */ + Z_OtherInformation *additionalSearchInfo; /* OPT */ +}; + +struct Z_PQueryOriginPartNotToKeep { + int which; + union { + Z_InternationalString *package; + Z_Query *query; +#define Z_PQueryOriginPartNotToKeep_package 1 +#define Z_PQueryOriginPartNotToKeep_query 2 + } u; +}; + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-psched.h b/dependencies/yaz-2.1.28/include/yaz/zes-psched.h new file mode 100644 index 0000000..46243a7 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-psched.h @@ -0,0 +1,121 @@ +/** \file zes-psched.h + \brief ASN.1 Module ESFormat-PeriodicQuerySchedule + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_psched_H +#define zes_psched_H + +#include +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_PQSPeriodicQueryScheduleEsRequest Z_PQSPeriodicQueryScheduleEsRequest; +YAZ_EXPORT int z_PQSPeriodicQueryScheduleEsRequest (ODR o, Z_PQSPeriodicQueryScheduleEsRequest **p, int opt, const char *name); + +typedef struct Z_PQSPeriodicQueryScheduleTaskPackage Z_PQSPeriodicQueryScheduleTaskPackage; +YAZ_EXPORT int z_PQSPeriodicQueryScheduleTaskPackage (ODR o, Z_PQSPeriodicQueryScheduleTaskPackage **p, int opt, const char *name); + +typedef struct Z_PQSPeriodicQuerySchedule Z_PQSPeriodicQuerySchedule; +YAZ_EXPORT int z_PQSPeriodicQuerySchedule (ODR o, Z_PQSPeriodicQuerySchedule **p, int opt, const char *name); + +typedef struct Z_PQSOriginPartToKeep Z_PQSOriginPartToKeep; +YAZ_EXPORT int z_PQSOriginPartToKeep (ODR o, Z_PQSOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_PQSOriginPartNotToKeep Z_PQSOriginPartNotToKeep; +YAZ_EXPORT int z_PQSOriginPartNotToKeep (ODR o, Z_PQSOriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_PQSTargetPart Z_PQSTargetPart; +YAZ_EXPORT int z_PQSTargetPart (ODR o, Z_PQSTargetPart **p, int opt, const char *name); + +typedef struct Z_PQSPeriod Z_PQSPeriod; +YAZ_EXPORT int z_PQSPeriod (ODR o, Z_PQSPeriod **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_PQSPeriodicQueryScheduleEsRequest { + Z_PQSOriginPartToKeep *toKeep; + Z_PQSOriginPartNotToKeep *notToKeep; +}; + +struct Z_PQSPeriodicQueryScheduleTaskPackage { + Z_PQSOriginPartToKeep *originPart; + Z_PQSTargetPart *targetPart; +}; + +struct Z_PQSPeriodicQuerySchedule { + int which; + union { + Z_PQSPeriodicQueryScheduleEsRequest *esRequest; + Z_PQSPeriodicQueryScheduleTaskPackage *taskPackage; +#define Z_PQSPeriodicQuerySchedule_esRequest 1 +#define Z_PQSPeriodicQuerySchedule_taskPackage 2 + } u; +}; + +struct Z_PQSOriginPartToKeep { + bool_t *activeFlag; + int num_databaseNames; + Z_InternationalString **databaseNames; /* OPT */ +#define Z_PQSOriginPartToKeep_replace 1 +#define Z_PQSOriginPartToKeep_append 2 +#define Z_PQSOriginPartToKeep_createNew 3 + int *resultSetDisposition; /* OPT */ + Z_ESDestination *alertDestination; /* OPT */ + int which; + union { + Z_InternationalString *packageName; + Z_ESExportSpecification *exportPackage; +#define Z_PQSOriginPartToKeep_packageName 1 +#define Z_PQSOriginPartToKeep_exportPackage 2 + } u; /* OPT */ +}; + +struct Z_PQSOriginPartNotToKeep { + int which; + union { + Z_Query *actualQuery; + Z_InternationalString *packageName; +#define Z_PQSOriginPartNotToKeep_actualQuery 1 +#define Z_PQSOriginPartNotToKeep_packageName 2 + } u; /* OPT */ + Z_PQSPeriod *originSuggestedPeriod; /* OPT */ + char *expiration; /* OPT */ + Z_InternationalString *resultSetPackage; /* OPT */ +}; + +struct Z_PQSTargetPart { + Z_Query *actualQuery; + Z_PQSPeriod *targetStatedPeriod; + char *expiration; /* OPT */ + Z_InternationalString *resultSetPackage; /* OPT */ + char *lastQueryTime; + int *lastResultNumber; + int *numberSinceModify; /* OPT */ +}; + +struct Z_PQSPeriod { + int which; + union { + Z_IntUnit *unit; + Odr_null *businessDaily; + Odr_null *continuous; + Z_InternationalString *other; +#define Z_PQSPeriod_unit 1 +#define Z_PQSPeriod_businessDaily 2 +#define Z_PQSPeriod_continuous 3 +#define Z_PQSPeriod_other 4 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-pset.h b/dependencies/yaz-2.1.28/include/yaz/zes-pset.h new file mode 100644 index 0000000..497b49a --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-pset.h @@ -0,0 +1,71 @@ +/** \file zes-pset.h + \brief ASN.1 Module ESFormat-PersistentResultSet + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_pset_H +#define zes_pset_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_PRPersistentResultSetEsRequest Z_PRPersistentResultSetEsRequest; +YAZ_EXPORT int z_PRPersistentResultSetEsRequest (ODR o, Z_PRPersistentResultSetEsRequest **p, int opt, const char *name); + +typedef struct Z_PRPersistentResultSetTaskPackage Z_PRPersistentResultSetTaskPackage; +YAZ_EXPORT int z_PRPersistentResultSetTaskPackage (ODR o, Z_PRPersistentResultSetTaskPackage **p, int opt, const char *name); + +typedef struct Z_PRPersistentResultSet Z_PRPersistentResultSet; +YAZ_EXPORT int z_PRPersistentResultSet (ODR o, Z_PRPersistentResultSet **p, int opt, const char *name); + +typedef struct Z_PROriginPartNotToKeep Z_PROriginPartNotToKeep; +YAZ_EXPORT int z_PROriginPartNotToKeep (ODR o, Z_PROriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_PRTargetPart Z_PRTargetPart; +YAZ_EXPORT int z_PRTargetPart (ODR o, Z_PRTargetPart **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_PRPersistentResultSetEsRequest { + Odr_null *toKeep; + Z_PROriginPartNotToKeep *notToKeep; /* OPT */ +}; + +struct Z_PRPersistentResultSetTaskPackage { + Odr_null *originPart; + Z_PRTargetPart *targetPart; /* OPT */ +}; + +struct Z_PRPersistentResultSet { + int which; + union { + Z_PRPersistentResultSetEsRequest *esRequest; + Z_PRPersistentResultSetTaskPackage *taskPackage; +#define Z_PRPersistentResultSet_esRequest 1 +#define Z_PRPersistentResultSet_taskPackage 2 + } u; +}; + +struct Z_PROriginPartNotToKeep { + Z_InternationalString *originSuppliedResultSet; /* OPT */ +#define Z_PROriginPartNotToKeep_replace 1 +#define Z_PROriginPartNotToKeep_append 2 + int *replaceOrAppend; /* OPT */ +}; + +struct Z_PRTargetPart { + Z_InternationalString *targetSuppliedResultSet; /* OPT */ + int *numberOfRecords; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-update.h b/dependencies/yaz-2.1.28/include/yaz/zes-update.h new file mode 100644 index 0000000..9916a5c --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-update.h @@ -0,0 +1,166 @@ +/** \file zes-update.h + \brief ASN.1 Module ESFormat-Update + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_update_H +#define zes_update_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_IUUpdateEsRequest Z_IUUpdateEsRequest; +YAZ_EXPORT int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt, const char *name); + +typedef struct Z_IUUpdateTaskPackage Z_IUUpdateTaskPackage; +YAZ_EXPORT int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt, const char *name); + +typedef struct Z_IUUpdate Z_IUUpdate; +YAZ_EXPORT int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt, const char *name); + +typedef struct Z_IUOriginPartToKeep Z_IUOriginPartToKeep; +YAZ_EXPORT int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_IUTargetPart Z_IUTargetPart; +YAZ_EXPORT int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt, const char *name); + +typedef struct Z_IUSuppliedRecordsId Z_IUSuppliedRecordsId; +YAZ_EXPORT int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt, const char *name); + +typedef struct Z_IUSuppliedRecords_elem Z_IUSuppliedRecords_elem; +YAZ_EXPORT int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt, const char *name); + +typedef struct Z_IUSuppliedRecords Z_IUSuppliedRecords; +YAZ_EXPORT int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt, const char *name); + +typedef Z_IUSuppliedRecords Z_IUOriginPartNotToKeep; +YAZ_EXPORT int z_IUOriginPartNotToKeep (ODR o, Z_IUOriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_IUCorrelationInfo Z_IUCorrelationInfo; +YAZ_EXPORT int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt, const char *name); + +typedef struct Z_IUTaskPackageRecordStructureSurrogateDiagnostics Z_IUTaskPackageRecordStructureSurrogateDiagnostics; +YAZ_EXPORT int z_IUTaskPackageRecordStructureSurrogateDiagnostics (ODR o, Z_IUTaskPackageRecordStructureSurrogateDiagnostics **p, int opt, const char *name); + +typedef struct Z_IUTaskPackageRecordStructure Z_IUTaskPackageRecordStructure; +YAZ_EXPORT int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_IUUpdateEsRequest { + Z_IUOriginPartToKeep *toKeep; + Z_IUOriginPartNotToKeep *notToKeep; +}; + +struct Z_IUUpdateTaskPackage { + Z_IUOriginPartToKeep *originPart; + Z_IUTargetPart *targetPart; +}; + +struct Z_IUUpdate { + int which; + union { + Z_IUUpdateEsRequest *esRequest; + Z_IUUpdateTaskPackage *taskPackage; +#define Z_IUUpdate_esRequest 1 +#define Z_IUUpdate_taskPackage 2 + } u; +}; + +struct Z_IUOriginPartToKeep { +#define Z_IUOriginPartToKeep_recordInsert 1 +#define Z_IUOriginPartToKeep_recordReplace 2 +#define Z_IUOriginPartToKeep_recordDelete 3 +#define Z_IUOriginPartToKeep_elementUpdate 4 +#define Z_IUOriginPartToKeep_specialUpdate 5 + int *action; + Z_InternationalString *databaseName; + Odr_oid *schema; /* OPT */ + Z_InternationalString *elementSetName; /* OPT */ + Z_External *actionQualifier; /* OPT */ +}; + + + +struct Z_IUTargetPart { +#define Z_IUTargetPart_success 1 +#define Z_IUTargetPart_partial 2 +#define Z_IUTargetPart_failure 3 + int *updateStatus; + int num_globalDiagnostics; + Z_DiagRec **globalDiagnostics; /* OPT */ + int num_taskPackageRecords; + Z_IUTaskPackageRecordStructure **taskPackageRecords; +}; + +struct Z_IUSuppliedRecordsId { + int which; + union { + char *timeStamp; + Z_InternationalString *versionNumber; + Z_External *previousVersion; +#define Z_IUSuppliedRecordsId_timeStamp 1 +#define Z_IUSuppliedRecordsId_versionNumber 2 +#define Z_IUSuppliedRecordsId_previousVersion 3 + } u; +}; + +struct Z_IUSuppliedRecords_elem { + int which; + union { + int *number; + Z_InternationalString *string; + Odr_oct *opaque; +#define Z_IUSuppliedRecords_elem_number 1 +#define Z_IUSuppliedRecords_elem_string 2 +#define Z_IUSuppliedRecords_elem_opaque 3 + } u; /* OPT */ + Z_IUSuppliedRecordsId *supplementalId; /* OPT */ + Z_IUCorrelationInfo *correlationInfo; /* OPT */ + Z_External *record; +}; + +struct Z_IUSuppliedRecords { + int num; + Z_IUSuppliedRecords_elem **elements; +}; + +struct Z_IUCorrelationInfo { + Z_InternationalString *note; /* OPT */ + int *id; /* OPT */ +}; + +struct Z_IUTaskPackageRecordStructureSurrogateDiagnostics { + int num; + Z_DiagRec **elements; +}; + +struct Z_IUTaskPackageRecordStructure { + int which; + union { + Z_External *record; + Z_IUTaskPackageRecordStructureSurrogateDiagnostics *surrogateDiagnostics; +#define Z_IUTaskPackageRecordStructure_record 1 +#define Z_IUTaskPackageRecordStructure_surrogateDiagnostics 2 + } u; /* OPT */ + Z_IUCorrelationInfo *correlationInfo; /* OPT */ +#define Z_IUTaskPackageRecordStructure_success 1 +#define Z_IUTaskPackageRecordStructure_queued 2 +#define Z_IUTaskPackageRecordStructure_inProcess 3 +#define Z_IUTaskPackageRecordStructure_failure 4 + int *recordStatus; + int num_supplementalDiagnostics; + Z_DiagRec **supplementalDiagnostics; /* OPT */ +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zes-update0.h b/dependencies/yaz-2.1.28/include/yaz/zes-update0.h new file mode 100644 index 0000000..3e02972 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zes-update0.h @@ -0,0 +1,154 @@ +/** \file zes-update0.h + \brief ASN.1 Module ESFormat-Update0 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef zes_update0_H +#define zes_update0_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_IU0UpdateEsRequest Z_IU0UpdateEsRequest; +YAZ_EXPORT int z_IU0UpdateEsRequest (ODR o, Z_IU0UpdateEsRequest **p, int opt, const char *name); + +typedef struct Z_IU0UpdateTaskPackage Z_IU0UpdateTaskPackage; +YAZ_EXPORT int z_IU0UpdateTaskPackage (ODR o, Z_IU0UpdateTaskPackage **p, int opt, const char *name); + +typedef struct Z_IU0Update Z_IU0Update; +YAZ_EXPORT int z_IU0Update (ODR o, Z_IU0Update **p, int opt, const char *name); + +typedef struct Z_IU0OriginPartToKeep Z_IU0OriginPartToKeep; +YAZ_EXPORT int z_IU0OriginPartToKeep (ODR o, Z_IU0OriginPartToKeep **p, int opt, const char *name); + +typedef struct Z_IU0TargetPart Z_IU0TargetPart; +YAZ_EXPORT int z_IU0TargetPart (ODR o, Z_IU0TargetPart **p, int opt, const char *name); + +typedef struct Z_IU0SuppliedRecordsId Z_IU0SuppliedRecordsId; +YAZ_EXPORT int z_IU0SuppliedRecordsId (ODR o, Z_IU0SuppliedRecordsId **p, int opt, const char *name); + +typedef struct Z_IU0SuppliedRecords_elem Z_IU0SuppliedRecords_elem; +YAZ_EXPORT int z_IU0SuppliedRecords_elem (ODR o, Z_IU0SuppliedRecords_elem **p, int opt, const char *name); + +typedef struct Z_IU0SuppliedRecords Z_IU0SuppliedRecords; +YAZ_EXPORT int z_IU0SuppliedRecords (ODR o, Z_IU0SuppliedRecords **p, int opt, const char *name); + +typedef Z_IU0SuppliedRecords Z_IU0OriginPartNotToKeep; +YAZ_EXPORT int z_IU0OriginPartNotToKeep (ODR o, Z_IU0OriginPartNotToKeep **p, int opt, const char *name); + +typedef struct Z_IU0CorrelationInfo Z_IU0CorrelationInfo; +YAZ_EXPORT int z_IU0CorrelationInfo (ODR o, Z_IU0CorrelationInfo **p, int opt, const char *name); + +typedef struct Z_IU0TaskPackageRecordStructure Z_IU0TaskPackageRecordStructure; +YAZ_EXPORT int z_IU0TaskPackageRecordStructure (ODR o, Z_IU0TaskPackageRecordStructure **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_IU0UpdateEsRequest { + Z_IU0OriginPartToKeep *toKeep; + Z_IU0OriginPartNotToKeep *notToKeep; +}; + +struct Z_IU0UpdateTaskPackage { + Z_IU0OriginPartToKeep *originPart; + Z_IU0TargetPart *targetPart; +}; + +struct Z_IU0Update { + int which; + union { + Z_IU0UpdateEsRequest *esRequest; + Z_IU0UpdateTaskPackage *taskPackage; +#define Z_IU0Update_esRequest 1 +#define Z_IU0Update_taskPackage 2 + } u; +}; + +struct Z_IU0OriginPartToKeep { +#define Z_IU0OriginPartToKeep_recordInsert 1 +#define Z_IU0OriginPartToKeep_recordReplace 2 +#define Z_IU0OriginPartToKeep_recordDelete 3 +#define Z_IU0OriginPartToKeep_elementUpdate 4 + int *action; + Z_InternationalString *databaseName; + Odr_oid *schema; /* OPT */ + Z_InternationalString *elementSetName; /* OPT */ +}; + + + +struct Z_IU0TargetPart { +#define Z_IU0TargetPart_success 1 +#define Z_IU0TargetPart_partial 2 +#define Z_IU0TargetPart_failure 3 + int *updateStatus; + int num_globalDiagnostics; + Z_DiagRec **globalDiagnostics; /* OPT */ + int num_taskPackageRecords; + Z_IU0TaskPackageRecordStructure **taskPackageRecords; +}; + +struct Z_IU0SuppliedRecordsId { + int which; + union { + char *timeStamp; + Z_InternationalString *versionNumber; + Z_External *previousVersion; +#define Z_IU0SuppliedRecordsId_timeStamp 1 +#define Z_IU0SuppliedRecordsId_versionNumber 2 +#define Z_IU0SuppliedRecordsId_previousVersion 3 + } u; +}; + +struct Z_IU0SuppliedRecords_elem { + int which; + union { + int *number; + Z_InternationalString *string; + Odr_oct *opaque; +#define Z_IU0SuppliedRecords_elem_number 1 +#define Z_IU0SuppliedRecords_elem_string 2 +#define Z_IU0SuppliedRecords_elem_opaque 3 + } u; /* OPT */ + Z_IU0SuppliedRecordsId *supplementalId; /* OPT */ + Z_IU0CorrelationInfo *correlationInfo; /* OPT */ + Z_External *record; +}; + +struct Z_IU0SuppliedRecords { + int num; + Z_IU0SuppliedRecords_elem **elements; +}; + +struct Z_IU0CorrelationInfo { + Z_InternationalString *note; /* OPT */ + int *id; /* OPT */ +}; + +struct Z_IU0TaskPackageRecordStructure { + int which; + union { + Z_External *record; + Z_DiagRec *diagnostic; +#define Z_IU0TaskPackageRecordStructure_record 1 +#define Z_IU0TaskPackageRecordStructure_diagnostic 2 + } u; /* OPT */ + Z_IU0CorrelationInfo *correlationInfo; /* OPT */ +#define Z_IU0TaskPackageRecordStructure_success 1 +#define Z_IU0TaskPackageRecordStructure_queued 2 +#define Z_IU0TaskPackageRecordStructure_inProcess 3 +#define Z_IU0TaskPackageRecordStructure_failure 4 + int *recordStatus; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/include/yaz/zgdu.h b/dependencies/yaz-2.1.28/include/yaz/zgdu.h new file mode 100644 index 0000000..c997bef --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zgdu.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zgdu.h,v 1.7 2006/06/02 13:08:27 adam Exp $ + */ + +/** + * \file zgdu.h + * \brief Header for the Z_GDU (HTTP or Z39.50 package) + */ + +#ifndef Z_GDU_H +#define Z_GDU_H + +#include + +YAZ_BEGIN_CDECL + +typedef struct Z_HTTP_Header Z_HTTP_Header; + +struct Z_HTTP_Header { + char *name; + char *value; + Z_HTTP_Header *next; +}; + +typedef struct { + char *method; + char *version; + char *path; + Z_HTTP_Header *headers; + char *content_buf; + int content_len; +} Z_HTTP_Request; + +typedef struct { + int code; + char *version; + Z_HTTP_Header *headers; + char *content_buf; + int content_len; +} Z_HTTP_Response; + +#define Z_GDU_Z3950 1 +#define Z_GDU_HTTP_Request 2 +#define Z_GDU_HTTP_Response 3 +typedef struct { + int which; + union { + Z_APDU *z3950; + Z_HTTP_Request *HTTP_Request; + Z_HTTP_Response *HTTP_Response; + } u; +} Z_GDU ; +YAZ_EXPORT int z_GDU (ODR o, Z_GDU **p, int opt, const char *name); +YAZ_EXPORT void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, + const char *v); +YAZ_EXPORT void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, + const char *content_type, + const char *charset); + +YAZ_EXPORT const char *z_HTTP_header_lookup(Z_HTTP_Header *hp, const char *n); + +YAZ_EXPORT const char *z_HTTP_errmsg(int code); + +YAZ_EXPORT Z_GDU *z_get_HTTP_Response(ODR o, int code); +YAZ_EXPORT Z_GDU *z_get_HTTP_Request(ODR o); +YAZ_EXPORT Z_GDU *z_get_HTTP_Request_host_path(ODR odr, + const char *host, + const char *path); + +YAZ_END_CDECL + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/include/yaz/zoom.h b/dependencies/yaz-2.1.28/include/yaz/zoom.h new file mode 100644 index 0000000..f9fd7a9 --- /dev/null +++ b/dependencies/yaz-2.1.28/include/yaz/zoom.h @@ -0,0 +1,332 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zoom.h,v 1.36 2006/06/15 10:34:16 adam Exp $ + */ +/** + * \file zoom.h + * \brief Header for ZOOM + */ + +#include +#include + +#define ZOOM_BEGIN_CDECL YAZ_BEGIN_CDECL +#define ZOOM_END_CDECL YAZ_END_CDECL + +#ifdef WIN32 +# define ZOOM_API(x) __declspec(dllexport) x __stdcall +#else +# define ZOOM_API(x) x +# endif + +ZOOM_BEGIN_CDECL + +/* ----------------------------------------------------------- */ +/* the types we use */ + +typedef struct ZOOM_options_p *ZOOM_options; +typedef struct ZOOM_query_p *ZOOM_query; +typedef struct ZOOM_connection_p *ZOOM_connection; +typedef struct ZOOM_resultset_p *ZOOM_resultset; +typedef struct ZOOM_record_p *ZOOM_record; +typedef struct ZOOM_scanset_p *ZOOM_scanset; +typedef struct ZOOM_package_p *ZOOM_package; + +typedef const char *(*ZOOM_options_callback)(void *handle, const char *name); + +/* ----------------------------------------------------------- */ +/* connections */ + +/* create connection, connect to host, if portnum is 0, then port is +read from host string (e.g. myhost:9821) */ +ZOOM_API(ZOOM_connection) +ZOOM_connection_new (const char *host, int portnum); + +/* create connection, don't connect, apply options */ +ZOOM_API(ZOOM_connection) +ZOOM_connection_create (ZOOM_options options); + +/* connect given existing connection */ +ZOOM_API(void) +ZOOM_connection_connect(ZOOM_connection c, const char *host, + int portnum); + +/* destroy connection (close connection also) */ +ZOOM_API(void) +ZOOM_connection_destroy (ZOOM_connection c); + +/* get/set option for connection */ +ZOOM_API(const char *) +ZOOM_connection_option_get (ZOOM_connection c, const char *key); + +ZOOM_API(const char *) +ZOOM_connection_option_getl (ZOOM_connection c, const char *key, int *lenp); + +ZOOM_API(void) +ZOOM_connection_option_set (ZOOM_connection c, const char *key, + const char *val); + +ZOOM_API(void) +ZOOM_connection_option_setl (ZOOM_connection c, const char *key, + const char *val, int len); + +/* return error code (0 == success, failure otherwise). cp + holds error string on failure, addinfo holds addititional info (if any) +*/ +ZOOM_API(int) +ZOOM_connection_error (ZOOM_connection c, const char **cp, + const char **addinfo); + +ZOOM_API(int) +ZOOM_connection_error_x (ZOOM_connection c, const char **cp, + const char **addinfo, const char **diagset); + +/* returns error code */ +ZOOM_API(int) +ZOOM_connection_errcode (ZOOM_connection c); +/* returns error message */ +ZOOM_API(const char *) +ZOOM_connection_errmsg (ZOOM_connection c); +/* returns additional info */ +ZOOM_API(const char *) +ZOOM_connection_addinfo (ZOOM_connection c); +/* returns diagnostic set */ +ZOOM_API(const char *) +ZOOM_connection_diagset (ZOOM_connection c); +/* translates error code into human-readable string */ +ZOOM_API(const char *) +ZOOM_diag_str (int error); + +#define ZOOM_ERROR_NONE 0 +#define ZOOM_ERROR_CONNECT 10000 +#define ZOOM_ERROR_MEMORY 10001 +#define ZOOM_ERROR_ENCODE 10002 +#define ZOOM_ERROR_DECODE 10003 +#define ZOOM_ERROR_CONNECTION_LOST 10004 +#define ZOOM_ERROR_INIT 10005 +#define ZOOM_ERROR_INTERNAL 10006 +#define ZOOM_ERROR_TIMEOUT 10007 +#define ZOOM_ERROR_UNSUPPORTED_PROTOCOL 10008 +#define ZOOM_ERROR_UNSUPPORTED_QUERY 10009 +#define ZOOM_ERROR_INVALID_QUERY 10010 +#define ZOOM_ERROR_CQL_PARSE 10011 +#define ZOOM_ERROR_CQL_TRANSFORM 10012 +#define ZOOM_ERROR_CCL_CONFIG 10013 +#define ZOOM_ERROR_CCL_PARSE 10014 + +ZOOM_API(int) +ZOOM_connection_last_event(ZOOM_connection cs); + +#define ZOOM_EVENT_NONE 0 +#define ZOOM_EVENT_CONNECT 1 +#define ZOOM_EVENT_SEND_DATA 2 +#define ZOOM_EVENT_RECV_DATA 3 +#define ZOOM_EVENT_TIMEOUT 4 +#define ZOOM_EVENT_UNKNOWN 5 +#define ZOOM_EVENT_SEND_APDU 6 +#define ZOOM_EVENT_RECV_APDU 7 +#define ZOOM_EVENT_RECV_RECORD 8 +#define ZOOM_EVENT_RECV_SEARCH 9 +#define ZOOM_EVENT_END 10 + +/* ----------------------------------------------------------- */ +/* result sets */ + +/* create result set given a search */ +ZOOM_API(ZOOM_resultset) +ZOOM_connection_search(ZOOM_connection, ZOOM_query q); +/* create result set given PQF query */ +ZOOM_API(ZOOM_resultset) +ZOOM_connection_search_pqf(ZOOM_connection c, const char *q); + +/* destroy result set */ +ZOOM_API(void) +ZOOM_resultset_destroy(ZOOM_resultset r); + +/* result set option */ +ZOOM_API(const char *) +ZOOM_resultset_option_get (ZOOM_resultset r, const char *key); +ZOOM_API(void) +ZOOM_resultset_option_set (ZOOM_resultset r, const char *key, const char *val); + +/* return size of result set (alias hit count AKA result count) */ +ZOOM_API(size_t) +ZOOM_resultset_size (ZOOM_resultset r); + +/* retrieve records */ +ZOOM_API(void) +ZOOM_resultset_records (ZOOM_resultset r, ZOOM_record *recs, + size_t start, size_t count); + +/* return record object at pos. Returns 0 if unavailable */ +ZOOM_API(ZOOM_record) +ZOOM_resultset_record (ZOOM_resultset s, size_t pos); + +/* like ZOOM_resultset_record - but never blocks .. */ +ZOOM_API(ZOOM_record) +ZOOM_resultset_record_immediate (ZOOM_resultset s, size_t pos); + +/* reset record cache for result set */ +ZOOM_API(void) +ZOOM_resultset_cache_reset(ZOOM_resultset r); + +/* ----------------------------------------------------------- */ +/* records */ + +/* get record information, in a form given by type */ +ZOOM_API(const char *) +ZOOM_record_get (ZOOM_record rec, const char *type, int *len); + +/* destroy record */ +ZOOM_API(void) +ZOOM_record_destroy (ZOOM_record rec); + +/* return copy of record */ +ZOOM_API(ZOOM_record) +ZOOM_record_clone (ZOOM_record srec); + +/* ----------------------------------------------------------- */ +/* queries */ + +/* create search object */ +ZOOM_API(ZOOM_query) +ZOOM_query_create(void); +/* destroy it */ +ZOOM_API(void) +ZOOM_query_destroy(ZOOM_query s); +/* CQL */ +ZOOM_API(int) +ZOOM_query_cql(ZOOM_query s, const char *str); +/* CQL translated client-side into RPN: `conn' is optional for diagnostics */ +ZOOM_API(int) +ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn); +/* CCL translated client-side into RPN: `conn' is optional for diagnostics */ +ZOOM_API(int) +ZOOM_query_ccl2rpn(ZOOM_query s, const char *query_str, + const char *config, + int *ccl_error, const char **error_string, int *error_pos); +/* PQF */ +ZOOM_API(int) +ZOOM_query_prefix(ZOOM_query s, const char *str); +/* specify sort criteria for search */ +ZOOM_API(int) +ZOOM_query_sortby(ZOOM_query s, const char *criteria); + +/* ----------------------------------------------------------- */ +/* scan */ +ZOOM_API(ZOOM_scanset) +ZOOM_connection_scan (ZOOM_connection c, const char *startterm); + +ZOOM_API(ZOOM_scanset) +ZOOM_connection_scan1 (ZOOM_connection c, ZOOM_query startterm); + +ZOOM_API(const char *) +ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, + int *occ, int *len); + +ZOOM_API(const char *) +ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, + int *occ, int *len); + +ZOOM_API(size_t) +ZOOM_scanset_size(ZOOM_scanset scan); + +ZOOM_API(void) +ZOOM_scanset_destroy (ZOOM_scanset scan); + +ZOOM_API(const char *) + ZOOM_scanset_option_get (ZOOM_scanset scan, const char *key); + +ZOOM_API(void) + ZOOM_scanset_option_set (ZOOM_scanset scan, const char *key, + const char *val); +/* ----------------------------------------------------------- */ +/* Extended Services Packages */ + +ZOOM_API(ZOOM_package) + ZOOM_connection_package (ZOOM_connection c, ZOOM_options options); + +ZOOM_API(void) + ZOOM_package_destroy(ZOOM_package p); + +ZOOM_API(void) + ZOOM_package_send (ZOOM_package p, const char *type); + +ZOOM_API(const char *) + ZOOM_package_option_get (ZOOM_package p, const char *key); + +ZOOM_API(void) + ZOOM_package_option_set (ZOOM_package p, const char *key, + const char *val); + +/* ----------------------------------------------------------- */ +/* Sort. First function is deprecated, use second instead */ +ZOOM_API(void) + ZOOM_resultset_sort(ZOOM_resultset r, + const char *sort_type, const char *sort_spec); +ZOOM_API(int) + ZOOM_resultset_sort1(ZOOM_resultset r, + const char *sort_type, const char *sort_spec); + +/* ----------------------------------------------------------- */ +/* options */ + +ZOOM_API(ZOOM_options_callback) + ZOOM_options_set_callback (ZOOM_options opt, + ZOOM_options_callback c, + void *handle); +ZOOM_API(ZOOM_options) +ZOOM_options_create (void); + +ZOOM_API(ZOOM_options) +ZOOM_options_create_with_parent (ZOOM_options parent); + +ZOOM_API(ZOOM_options) + ZOOM_options_create_with_parent2 (ZOOM_options parent1, + ZOOM_options parent2); + +ZOOM_API(const char *) +ZOOM_options_get (ZOOM_options opt, const char *name); + +ZOOM_API(const char *) +ZOOM_options_getl (ZOOM_options opt, const char *name, int *lenp); + +ZOOM_API(void) +ZOOM_options_set (ZOOM_options opt, const char *name, const char *v); + +ZOOM_API(void) +ZOOM_options_setl (ZOOM_options opt, const char *name, const char *value, + int len); + +ZOOM_API(void) +ZOOM_options_destroy (ZOOM_options opt); + +ZOOM_API(int) +ZOOM_options_get_bool (ZOOM_options opt, const char *name, int defa); + +ZOOM_API(int) +ZOOM_options_get_int (ZOOM_options opt, const char *name, int defa); + +ZOOM_API(void) +ZOOM_options_set_int(ZOOM_options opt, const char *name, int value); + +/* ----------------------------------------------------------- */ +/* events */ +/* poll for events on a number of connections. Returns positive + integer if event occurred ; zero if none occurred and no more + events are pending. The positive integer specifies the + connection for which the event occurred. */ +ZOOM_API(int) +ZOOM_event (int no, ZOOM_connection *cs); + +ZOOM_END_CDECL +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/m4/yaz.m4 b/dependencies/yaz-2.1.28/m4/yaz.m4 new file mode 100644 index 0000000..4626bc6 --- /dev/null +++ b/dependencies/yaz-2.1.28/m4/yaz.m4 @@ -0,0 +1,149 @@ +# Use this m4 function for autoconf if you use YAZ in your own +# configure script. + +dnl ----- Setup Docbook documentation for YAZ +AC_DEFUN([YAZ_DOC], +[ +AC_SUBST(XSLTPROC_COMPILE) +XSLTPROC_COMPILE='xsltproc -path ".:$(srcdir)"' +AC_SUBST(MAN_COMPILE) +MAN_COMPILE='$(XSLTPROC_COMPILE) common/id.man.xsl' +AC_SUBST(HTML_COMPILE) +HTML_COMPILE='$(XSLTPROC_COMPILE) common/id.htmlhelp.xsl' +AC_SUBST(TKL_COMPILE) +TKL_COMPILE='$(XSLTPROC_COMPILE) common/id.tkl.xsl' + +AC_SUBST(DTD_DIR) +AC_ARG_WITH(docbook-dtd,[[ --with-docbook-dtd=DIR use docbookx.dtd in DIR]], +[ + if test -f "$withval/docbookx.dtd"; then + DTD_DIR=$withval + fi +],[ + AC_MSG_CHECKING(for docbookx.dtd) + DTD_DIR="" + for d in /usr/lib/sgml/dtd/docbook-xml \ + /usr/share/sgml/docbook/dtd/4.2 \ + /usr/share/sgml/docbook/dtd/xml/4.* \ + /usr/share/sgml/docbook/xml-dtd-4.* \ + /usr/local/share/xml/docbook/4.* + do + if test -f $d/docbookx.dtd; then + DTD_DIR=$d + fi + done + if test -z "$DTD_DIR"; then + AC_MSG_RESULT(Not found) + else + AC_MSG_RESULT($d) + fi +]) +AC_SUBST(DSSSL_DIR) +AC_ARG_WITH(docbook-dsssl,[[ --with-docbook-dsssl=DIR use Docbook DSSSL in DIR/{html,print}/docbook.dsl]], +[ + if test -f "$withval/html/docbook.dsl"; then + DSSSL_DIR=$withval + fi +],[ + AC_MSG_CHECKING(for docbook.dsl) + DSSSL_DIR="" + for d in /usr/share/sgml/docbook/stylesheet/dsssl/modular \ + /usr/share/sgml/docbook/dsssl-stylesheets-1.* \ + /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh \ + /usr/local/share/sgml/docbook/dsssl/modular + do + if test -f $d/html/docbook.dsl; then + AC_MSG_RESULT($d) + DSSSL_DIR=$d + break + fi + done + if test -z "$DSSSL_DIR"; then + AC_MSG_RESULT(Not found) + fi +]) +AC_SUBST(XSL_DIR) +AC_ARG_WITH(docbook-xsl,[[ --with-docbook-xsl=DIR use Docbook XSL in DIR/{htmlhelp,xhtml}]], +[ + if test -f "$withval/htmlhelp/htmlhelp.xsl"; then + XSL_DIR=$withval + fi +],[ + AC_MSG_CHECKING(for htmlhelp.xsl) + for d in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh \ + /usr/local/share/xsl/docbook \ + /usr/share/sgml/docbook/xsl-stylesheets-1.* + do + if test -f $d/htmlhelp/htmlhelp.xsl; then + AC_MSG_RESULT($d) + XSL_DIR=$d + break + fi + done + if test -z "$XSL_DIR"; then + AC_MSG_RESULT(Not found) + fi +]) +]) + +AC_DEFUN([YAZ_INIT], +[ + AC_SUBST(YAZLIB) + AC_SUBST(YAZLALIB) + AC_SUBST(YAZINC) + AC_SUBST(YAZVERSION) + yazconfig=NONE + yazpath=NONE + AC_ARG_WITH(yaz, [ --with-yaz=DIR use yaz-config in DIR (example /home/yaz-1.7)], [yazpath=$withval]) + if test "x$yazpath" != "xNONE"; then + yazconfig=$yazpath/yaz-config + else + if test "x$srcdir" = "x"; then + yazsrcdir=. + else + yazsrcdir=$srcdir + fi + for i in ${yazsrcdir}/../../yaz ${yazsrcdir}/../yaz-* ${yazsrcdir}/../yaz; do + if test -d $i; then + if test -r $i/yaz-config; then + yazconfig=$i/yaz-config + fi + fi + done + if test "x$yazconfig" = "xNONE"; then + AC_PATH_PROG(yazconfig, yaz-config, NONE) + fi + fi + AC_MSG_CHECKING(for YAZ) + if $yazconfig --version >/dev/null 2>&1; then + YAZLIB=`$yazconfig --libs $1` + # if this is empty, it's a simple version YAZ 1.6 script + # so we have to source it instead... + if test "X$YAZLIB" = "X"; then + . $yazconfig + else + YAZLALIB=`$yazconfig --lalibs $1` + YAZINC=`$yazconfig --cflags $1` + YAZVERSION=`$yazconfig --version` + fi + AC_MSG_RESULT([$yazconfig]) + else + AC_MSG_RESULT(Not found) + YAZVERSION=NONE + fi + if test "X$YAZVERSION" != "XNONE"; then + AC_MSG_CHECKING([for YAZ version]) + AC_MSG_RESULT([$YAZVERSION]) + if test "$2"; then + have_yaz_version=`echo "$YAZVERSION" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'` + req_yaz_version=`echo "$2" | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'` + if test "$have_yaz_version" -lt "$req_yaz_version"; then + AC_MSG_ERROR([$YAZVERSION. Requires YAZ $2 or later]) + fi + if test "$req_yaz_version" -gt "2000028"; then + YAZINC="$YAZINC -DYAZ_USE_NEW_LOG=1" + fi + fi + fi +]) + diff --git a/dependencies/yaz-2.1.28/m4/yaz_libxml2.m4 b/dependencies/yaz-2.1.28/m4/yaz_libxml2.m4 new file mode 100644 index 0000000..9153a4b --- /dev/null +++ b/dependencies/yaz-2.1.28/m4/yaz_libxml2.m4 @@ -0,0 +1,146 @@ +AC_DEFUN([YAZ_LIBXML2],[ +AC_PATH_PROG(pkgconfigpath, pkg-config, NONE) +xml2dir=default +XML2_VER="" +AC_ARG_WITH(xml2,[[ --with-xml2[=PREFIX] use libxml2 in PREFIX]],xml2dir=$withval) +dnl -- if no PREFIX or not specified we just search in default locations +dnl -- try pkg-config. If not found, use xml2-config +if test "$xml2dir" = "yes" -o "$xml2dir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists libxml-2.0; then + pkgmodule="libxml-2.0" + fi + fi + if test -z "$pkgmodule"; then + for d in /usr /usr/local; do + if test -x $d/bin/xml2-config; then + xml2dir=$d + fi + done + fi +fi +dnl --- do the real check (pkg-config, xml2-config, not-found) +if test "$xml2dir" != "no"; then + AC_MSG_CHECKING(for libXML2) + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + XML2_VER=`$pkgconfigpath --modversion $pkgmodule` + AC_MSG_RESULT($XML2_VER) + m4_default([$1],[AC_DEFINE(HAVE_XML2)]) + elif test -x $xml2dir/bin/xml2-config; then + XML2_LIBS=`$xml2dir/bin/xml2-config --libs` + XML2_CFLAGS=`$xml2dir/bin/xml2-config --cflags` + XML2_VER=`$xml2dir/bin/xml2-config --version` + AC_MSG_RESULT($XML2_VER) + m4_default([$1],[AC_DEFINE(HAVE_XML2)]) + else + AC_MSG_RESULT(Not found) + if test "$xml2dir" = "default"; then + AC_MSG_WARN([libxml2 development libraries not found.]) + AC_MSG_WARN([There will be no support for SRU.]) + else + AC_MSG_ERROR([libxml2 development libraries not found.]) + fi + fi +fi +]) + +AC_DEFUN([YAZ_LIBXSLT],[ + xsltdir=default +pkgmodule="" +XSLT_VER="" +AC_ARG_WITH(xslt,[[ --with-xslt[=PREFIX] use libXSLT in PREFIX]],xsltdir=$withval) + +dnl -- if no PREFIX or not specified we just search in default locations +dnl -- try pkg-config. If not found, use xslt-config +if test "$xsltdir" = "yes" -o "$xsltdir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + # pkg-config on woody reports bad CFLAGS which does + # not include libxml2 CFLAGS, so avoid it.. + if $pkgconfigpath --atleast-version 1.1.0 libxslt; then + pkgmodule="libxslt" + fi + fi + if test -z "$pkgmodule"; then + for d in /usr /usr/local; do + if test -x $d/bin/xslt-config; then + xsltdir=$d + fi + done + fi +fi +dnl --- do the real check (pkg-config, xslt-config, not-found) +if test "$xsltdir" != "no"; then + AC_MSG_CHECKING(for libXSLT) + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + XSLT_VER=`$pkgconfigpath --modversion $pkgmodule` + AC_MSG_RESULT($XSLT_VER) + m4_default([$1],[AC_DEFINE(HAVE_XSLT)]) + elif test -x $xsltdir/bin/xslt-config; then + XML2_LIBS=`$xsltdir/bin/xslt-config --libs` + XML2_CFLAGS=`$xsltdir/bin/xslt-config --cflags` + XSLT_VER=`$xsltdir/bin/xslt-config --version` + AC_MSG_RESULT($XSLT_VER) + m4_default([$1],[AC_DEFINE(HAVE_XSLT)]) + else + AC_MSG_RESULT(Not found) + + if test "$xsltdir" = "default"; then + AC_MSG_WARN([libXSLT development libraries not found.]) + else + AC_MSG_ERROR([libXSLT development libraries not found.]) + fi + fi +fi +]) + +dnl -- get libEXSLT. xslt-config is no good. So use pkg-config only +AC_DEFUN([YAZ_LIBEXSLT],[ +exsltdir=default +pkgmodule="" +EXSLT_VER="" +AC_ARG_WITH(exslt,[[ --with-exslt[=PREFIX] use libEXSLT in PREFIX]],exsltdir=$withval) +if test "$exsltdir" = "yes" -o "$exsltdir" = "default"; then + if test "$pkgconfigpath" != "NONE"; then + if $pkgconfigpath --exists libexslt; then + pkgmodule="libexslt" + fi + fi +fi +if test "$exsltdir" != "no"; then + AC_MSG_CHECKING(for libEXSLT) + if test "$pkgmodule"; then + XML2_LIBS=`$pkgconfigpath --libs $pkgmodule` + XML2_CFLAGS=`$pkgconfigpath --cflags $pkgmodule` + EXSLT_VER=`$pkgconfigpath --modversion $pkgmodule` + AC_MSG_RESULT($EXSLT_VER) + m4_default([$1],[AC_DEFINE(HAVE_EXSLT)]) + else + AC_MSG_RESULT(Not found) + + if test "$pkgconfigpath" = "NONE"; then + extra="libEXSLT not enabled. pkg-config not found." + else + extra="libEXSLT development libraries not found." + fi + + if test "$exsltdir" = "default"; then + AC_MSG_WARN([$extra]) + else + AC_MSG_ERROR([$extra]) + fi + fi +fi +OLIBS=$LIBS +LIBS="$LIBS $XML2_LIBS" +AC_CHECK_FUNCS([xsltSaveResultToString]) +LIBS=$OLIBS +]) +dnl Local Variables: +dnl mode:shell-script +dnl sh-indentation: 2 +dnl sh-basic-offset: 4 +dnl End: diff --git a/dependencies/yaz-2.1.28/src/Makefile.am b/dependencies/yaz-2.1.28/src/Makefile.am new file mode 100644 index 0000000..20622af --- /dev/null +++ b/dependencies/yaz-2.1.28/src/Makefile.am @@ -0,0 +1,163 @@ +## This file is part of the YAZ toolkit. +## Copyright (C) 1994-2006, Index Data, All rights reserved. +## $Id: Makefile.am,v 1.40 2006/07/04 12:59:56 heikki Exp $ + +YAZ_VERSION_INFO=2:1:0 + +lib_LTLIBRARIES = libyaz.la libyazthread.la +# noinst_PROGRAMS = cqlparse + +dist-hook: + test -f $(srcdir)/cql.c || exit 1 + +tabdatadir = $(pkgdatadir)/z39.50 +tabdata_DATA=datetime.asn esupdate.asn univres.asn z3950v3.asn z.tcl \ + esadmin.asn charneg-3.asn mterm2.asn oclcui.asn + +illdatadir=$(pkgdatadir)/ill +illdata_DATA=ill9702.asn item-req.asn ill.tcl + +EXTRA_DIST=$(tabdata_DATA) $(illdata_DATA) \ + charconv.tcl codetables.xml \ + csvtodiag.tcl csvtobib1.tcl csvtosrw.tcl bib1.csv srw.csv + +YAZCOMP=$(top_srcdir)/util/yaz-asncomp +YAZCOMP_Z = $(YAZCOMP) -d $(srcdir)/z.tcl -i yaz -I$(top_srcdir)/include +YAZCOMP_I = $(YAZCOMP) -d $(srcdir)/ill.tcl -i yaz -I$(top_srcdir)/include + +AM_CFLAGS=$(THREAD_CFLAGS) +AM_CPPFLAGS=-I$(top_srcdir)/include $(XML2_CFLAGS) $(SSL_CFLAGS) + +AM_YFLAGS=-p cql_ + +# MARC8->UTF8 conversion is generated from codetables.xml +marc8.c: charconv.tcl codetables.xml + $(TCLSH) $(srcdir)/charconv.tcl -p marc8 $(srcdir)/codetables.xml -o marc8.c + +# UTF-8->MARC8 conversion is generated from codetables.xml +marc8r.c: charconv.tcl codetables.xml + $(TCLSH) $(srcdir)/charconv.tcl -r -p marc8r $(srcdir)/codetables.xml -o marc8r.c + +# Generate diagnostics from CSVs +diagbib1.c $(top_srcdir)/include/yaz/diagbib1.h: csvtobib1.tcl bib1.csv + $(TCLSH) $(srcdir)/csvtobib1.tcl $(srcdir) + +diagsrw.c $(top_srcdir)/include/yaz/diagsrw.h: csvtosrw.tcl srw.csv + $(TCLSH) $(srcdir)/csvtosrw.tcl $(srcdir) + +libyaz_la_SOURCES=version.c options.c log.c marcdisp.c oid.c wrbuf.c \ + nmemsdup.c xmalloc.c readconf.c tpath.c nmem.c matchstr.c atoin.c \ + siconv.c marc8.c marc8r.c \ + odr_bool.c ber_bool.c ber_len.c ber_tag.c odr_util.c \ + odr_null.c ber_null.c odr_int.c ber_int.c odr_tag.c odr_cons.c \ + odr_seq.c odr_oct.c ber_oct.c odr_bit.c ber_bit.c odr_oid.c \ + ber_oid.c odr_use.c odr_choice.c odr_any.c ber_any.c odr.c odr_mem.c \ + dumpber.c odr_enum.c odr-priv.h libxml2_error.c \ + comstack.c tcpip.c waislen.c unix.c \ + z-accdes1.c z-accform1.c z-acckrb1.c z-core.c \ + z-diag1.c z-espec1.c z-estask.c z-exp.c z-grs.c z-mterm2.c z-opac.c \ + z-uifr1.c z-rrf1.c z-rrf2.c z-sum.c z-sutrs.c z-oclcui.c\ + zes-expi.c zes-exps.c zes-order.c zes-pquery.c zes-psched.c \ + zes-pset.c zes-update0.c z-date.c z-univ.c zes-update.c zes-admin.c \ + z-charneg.c \ + prt-ext.c \ + ill-core.c item-req.c ill-get.c \ + zget.c yaz-ccl.c diag-entry.c diag-entry.h diagbib1.c diagsrw.c logrpn.c \ + otherinfo.c pquery.c sortspec.c z3950oid.c charneg.c initopt.c \ + zoom-c.c zoom-opt.c zoom-p.h grs1disp.c zgdu.c soap.c srw.c srwutil.c \ + opacdisp.c cclfind.c ccltoken.c cclerrms.c cclqual.c cclptree.c \ + cclqfile.c cclstr.c \ + cql.y cqlstdio.c cqltransform.c cqlutil.c xcqlutil.c cqlstring.c \ + cqlstrer.c querytowrbuf.c \ + eventl.c seshigh.c statserv.c requestq.c tcpdchk.c \ + eventl.h service.c service.h session.h test.c \ + xmlquery.c \ + mime.c mime.h \ + nfa.c nfaxml.c \ + record_conv.c retrieval.c + +libyaz_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO) + +# This library is only built and installed for backwards +# compatibility (older libs depend on it). The libyaz.la is now threaded +# by itself.. +libyazthread_la_SOURCES=version.c +libyazthread_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO) + +# Rules for Z39.50 V3 +z-accdes1.c \ +z-accform1.c \ +z-acckrb1.c \ +z-core.c \ +z-diag1.c \ +z-espec1.c \ +z-estask.c \ +z-exp.c \ +z-grs.c \ +z-opac.c \ +z-uifr1.c \ +z-rrf1.c \ +z-rrf2.c \ +z-sum.c \ +z-sutrs.c \ +zes-expi.c \ +zes-exps.c \ +zes-order.c \ +zes-pquery.c \ +zes-psched.c \ +zes-pset.c \ +zes-update0.c \ +$(top_srcdir)/include/yaz/z-accdes1.h \ +$(top_srcdir)/include/yaz/z-core.h: \ +$(srcdir)/z.tcl $(srcdir)/z3950v3.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/z3950v3.asn + +# Date extension +z-date.c \ +$(top_srcdir)/include/yaz/z-date.h: $(srcdir)/z.tcl $(srcdir)/datetime.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/datetime.asn + +# UNIverse extension +z-univ.c \ +$(top_srcdir)/include/yaz/z-univ.h: \ +$(srcdir)/z.tcl $(srcdir)/univres.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/univres.asn + +# New Update extended service +zes-update.c \ +$(top_srcdir)/include/yaz/zes-update.h: \ +$(srcdir)/z.tcl $(srcdir)/esupdate.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/esupdate.asn + +# Admin extended service +zes-admin.c \ +$(top_srcdir)/include/yaz/zes-admin.h: \ +$(srcdir)/z.tcl $(srcdir)/esadmin.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/esadmin.asn + +# Charset negotiation +z-charneg.c: $(srcdir)/z.tcl $(srcdir)/charneg-3.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/charneg-3.asn + +# UserInfoFormat-multipleSearchTerms-2 +z-mterm2.c: $(srcdir)/z.tcl $(srcdir)/mterm2.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/mterm2.asn + +# UserInfoFormat-multipleSearchTerms-2 +z-oclcui.c: $(srcdir)/z.tcl $(srcdir)/oclcui.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/oclcui.asn + +# ILL protocol +ill-core.c \ +$(top_srcdir)/include/yaz/ill-core.h: \ +$(srcdir)/ill.tcl $(srcdir)/ill9702.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_I) $(srcdir)/ill9702.asn + +# Item Request +item-req.c \ +$(top_srcdir)/include/yaz/item-req.h: \ +$(srcdir)/ill.tcl $(srcdir)/item-req.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_I) $(srcdir)/item-req.asn + +# cqlparse_SOURCES = cqlstd.y + diff --git a/dependencies/yaz-2.1.28/src/Makefile.in b/dependencies/yaz-2.1.28/src/Makefile.in new file mode 100644 index 0000000..be73eb6 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/Makefile.in @@ -0,0 +1,913 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +SOURCES = $(libyaz_la_SOURCES) $(libyazthread_la_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +subdir = src +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in cql.c +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(illdatadir)" "$(DESTDIR)$(tabdatadir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) +libyaz_la_LIBADD = +am_libyaz_la_OBJECTS = version.lo options.lo log.lo marcdisp.lo oid.lo \ + wrbuf.lo nmemsdup.lo xmalloc.lo readconf.lo tpath.lo nmem.lo \ + matchstr.lo atoin.lo siconv.lo marc8.lo marc8r.lo odr_bool.lo \ + ber_bool.lo ber_len.lo ber_tag.lo odr_util.lo odr_null.lo \ + ber_null.lo odr_int.lo ber_int.lo odr_tag.lo odr_cons.lo \ + odr_seq.lo odr_oct.lo ber_oct.lo odr_bit.lo ber_bit.lo \ + odr_oid.lo ber_oid.lo odr_use.lo odr_choice.lo odr_any.lo \ + ber_any.lo odr.lo odr_mem.lo dumpber.lo odr_enum.lo \ + libxml2_error.lo comstack.lo tcpip.lo waislen.lo unix.lo \ + z-accdes1.lo z-accform1.lo z-acckrb1.lo z-core.lo z-diag1.lo \ + z-espec1.lo z-estask.lo z-exp.lo z-grs.lo z-mterm2.lo \ + z-opac.lo z-uifr1.lo z-rrf1.lo z-rrf2.lo z-sum.lo z-sutrs.lo \ + z-oclcui.lo zes-expi.lo zes-exps.lo zes-order.lo zes-pquery.lo \ + zes-psched.lo zes-pset.lo zes-update0.lo z-date.lo z-univ.lo \ + zes-update.lo zes-admin.lo z-charneg.lo prt-ext.lo ill-core.lo \ + item-req.lo ill-get.lo zget.lo yaz-ccl.lo diag-entry.lo \ + diagbib1.lo diagsrw.lo logrpn.lo otherinfo.lo pquery.lo \ + sortspec.lo z3950oid.lo charneg.lo initopt.lo zoom-c.lo \ + zoom-opt.lo grs1disp.lo zgdu.lo soap.lo srw.lo srwutil.lo \ + opacdisp.lo cclfind.lo ccltoken.lo cclerrms.lo cclqual.lo \ + cclptree.lo cclqfile.lo cclstr.lo cql.lo cqlstdio.lo \ + cqltransform.lo cqlutil.lo xcqlutil.lo cqlstring.lo \ + cqlstrer.lo querytowrbuf.lo eventl.lo seshigh.lo statserv.lo \ + requestq.lo tcpdchk.lo service.lo test.lo xmlquery.lo mime.lo \ + nfa.lo nfaxml.lo record_conv.lo retrieval.lo +libyaz_la_OBJECTS = $(am_libyaz_la_OBJECTS) +libyazthread_la_LIBADD = +am_libyazthread_la_OBJECTS = version.lo +libyazthread_la_OBJECTS = $(am_libyazthread_la_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/atoin.Plo ./$(DEPDIR)/ber_any.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ber_bit.Plo ./$(DEPDIR)/ber_bool.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ber_int.Plo ./$(DEPDIR)/ber_len.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ber_null.Plo ./$(DEPDIR)/ber_oct.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ber_oid.Plo ./$(DEPDIR)/ber_tag.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cclerrms.Plo ./$(DEPDIR)/cclfind.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cclptree.Plo ./$(DEPDIR)/cclqfile.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cclqual.Plo ./$(DEPDIR)/cclstr.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ccltoken.Plo ./$(DEPDIR)/charneg.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/comstack.Plo ./$(DEPDIR)/cql.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cqlstdio.Plo ./$(DEPDIR)/cqlstrer.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cqlstring.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cqltransform.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/cqlutil.Plo ./$(DEPDIR)/diag-entry.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/diagbib1.Plo ./$(DEPDIR)/diagsrw.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/dumpber.Plo ./$(DEPDIR)/eventl.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/grs1disp.Plo ./$(DEPDIR)/ill-core.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/ill-get.Plo ./$(DEPDIR)/initopt.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/item-req.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/libxml2_error.Plo ./$(DEPDIR)/log.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/logrpn.Plo ./$(DEPDIR)/marc8.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/marc8r.Plo ./$(DEPDIR)/marcdisp.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/matchstr.Plo ./$(DEPDIR)/mime.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/nfa.Plo ./$(DEPDIR)/nfaxml.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/nmem.Plo ./$(DEPDIR)/nmemsdup.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr.Plo ./$(DEPDIR)/odr_any.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_bit.Plo ./$(DEPDIR)/odr_bool.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_choice.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_cons.Plo ./$(DEPDIR)/odr_enum.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_int.Plo ./$(DEPDIR)/odr_mem.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_null.Plo ./$(DEPDIR)/odr_oct.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_oid.Plo ./$(DEPDIR)/odr_seq.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_tag.Plo ./$(DEPDIR)/odr_use.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/odr_util.Plo ./$(DEPDIR)/oid.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/opacdisp.Plo ./$(DEPDIR)/options.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/otherinfo.Plo ./$(DEPDIR)/pquery.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/prt-ext.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/querytowrbuf.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/readconf.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/record_conv.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/requestq.Plo ./$(DEPDIR)/retrieval.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/service.Plo ./$(DEPDIR)/seshigh.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/siconv.Plo ./$(DEPDIR)/soap.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/sortspec.Plo ./$(DEPDIR)/srw.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/srwutil.Plo ./$(DEPDIR)/statserv.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/tcpdchk.Plo ./$(DEPDIR)/tcpip.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/test.Plo ./$(DEPDIR)/tpath.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/unix.Plo ./$(DEPDIR)/version.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/waislen.Plo ./$(DEPDIR)/wrbuf.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/xcqlutil.Plo ./$(DEPDIR)/xmalloc.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/xmlquery.Plo ./$(DEPDIR)/yaz-ccl.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-accdes1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-accform1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-acckrb1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-charneg.Plo ./$(DEPDIR)/z-core.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-date.Plo ./$(DEPDIR)/z-diag1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-espec1.Plo ./$(DEPDIR)/z-estask.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-exp.Plo ./$(DEPDIR)/z-grs.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-mterm2.Plo ./$(DEPDIR)/z-oclcui.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-opac.Plo ./$(DEPDIR)/z-rrf1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-rrf2.Plo ./$(DEPDIR)/z-sum.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-sutrs.Plo ./$(DEPDIR)/z-uifr1.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/z-univ.Plo ./$(DEPDIR)/z3950oid.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-admin.Plo ./$(DEPDIR)/zes-expi.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-exps.Plo ./$(DEPDIR)/zes-order.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-pquery.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-psched.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-pset.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-update.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zes-update0.Plo ./$(DEPDIR)/zgdu.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zget.Plo ./$(DEPDIR)/zoom-c.Plo \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoom-opt.Plo +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) +LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \ + $(AM_YFLAGS) +SOURCES = $(libyaz_la_SOURCES) $(libyazthread_la_SOURCES) +DIST_SOURCES = $(libyaz_la_SOURCES) $(libyazthread_la_SOURCES) +illdataDATA_INSTALL = $(INSTALL_DATA) +tabdataDATA_INSTALL = $(INSTALL_DATA) +DATA = $(illdata_DATA) $(tabdata_DATA) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +YAZ_VERSION_INFO = 2:1:0 +lib_LTLIBRARIES = libyaz.la libyazthread.la +tabdatadir = $(pkgdatadir)/z39.50 +tabdata_DATA = datetime.asn esupdate.asn univres.asn z3950v3.asn z.tcl \ + esadmin.asn charneg-3.asn mterm2.asn oclcui.asn + +illdatadir = $(pkgdatadir)/ill +illdata_DATA = ill9702.asn item-req.asn ill.tcl +EXTRA_DIST = $(tabdata_DATA) $(illdata_DATA) \ + charconv.tcl codetables.xml \ + csvtodiag.tcl csvtobib1.tcl csvtosrw.tcl bib1.csv srw.csv + +YAZCOMP = $(top_srcdir)/util/yaz-asncomp +YAZCOMP_Z = $(YAZCOMP) -d $(srcdir)/z.tcl -i yaz -I$(top_srcdir)/include +YAZCOMP_I = $(YAZCOMP) -d $(srcdir)/ill.tcl -i yaz -I$(top_srcdir)/include +AM_CFLAGS = $(THREAD_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include $(XML2_CFLAGS) $(SSL_CFLAGS) +AM_YFLAGS = -p cql_ +libyaz_la_SOURCES = version.c options.c log.c marcdisp.c oid.c wrbuf.c \ + nmemsdup.c xmalloc.c readconf.c tpath.c nmem.c matchstr.c atoin.c \ + siconv.c marc8.c marc8r.c \ + odr_bool.c ber_bool.c ber_len.c ber_tag.c odr_util.c \ + odr_null.c ber_null.c odr_int.c ber_int.c odr_tag.c odr_cons.c \ + odr_seq.c odr_oct.c ber_oct.c odr_bit.c ber_bit.c odr_oid.c \ + ber_oid.c odr_use.c odr_choice.c odr_any.c ber_any.c odr.c odr_mem.c \ + dumpber.c odr_enum.c odr-priv.h libxml2_error.c \ + comstack.c tcpip.c waislen.c unix.c \ + z-accdes1.c z-accform1.c z-acckrb1.c z-core.c \ + z-diag1.c z-espec1.c z-estask.c z-exp.c z-grs.c z-mterm2.c z-opac.c \ + z-uifr1.c z-rrf1.c z-rrf2.c z-sum.c z-sutrs.c z-oclcui.c\ + zes-expi.c zes-exps.c zes-order.c zes-pquery.c zes-psched.c \ + zes-pset.c zes-update0.c z-date.c z-univ.c zes-update.c zes-admin.c \ + z-charneg.c \ + prt-ext.c \ + ill-core.c item-req.c ill-get.c \ + zget.c yaz-ccl.c diag-entry.c diag-entry.h diagbib1.c diagsrw.c logrpn.c \ + otherinfo.c pquery.c sortspec.c z3950oid.c charneg.c initopt.c \ + zoom-c.c zoom-opt.c zoom-p.h grs1disp.c zgdu.c soap.c srw.c srwutil.c \ + opacdisp.c cclfind.c ccltoken.c cclerrms.c cclqual.c cclptree.c \ + cclqfile.c cclstr.c \ + cql.y cqlstdio.c cqltransform.c cqlutil.c xcqlutil.c cqlstring.c \ + cqlstrer.c querytowrbuf.c \ + eventl.c seshigh.c statserv.c requestq.c tcpdchk.c \ + eventl.h service.c service.h session.h test.c \ + xmlquery.c \ + mime.c mime.h \ + nfa.c nfaxml.c \ + record_conv.c retrieval.c + +libyaz_la_LDFLAGS = -version-info $(YAZ_VERSION_INFO) + +# This library is only built and installed for backwards +# compatibility (older libs depend on it). The libyaz.la is now threaded +# by itself.. +libyazthread_la_SOURCES = version.c +libyazthread_la_LDFLAGS = -version-info $(YAZ_VERSION_INFO) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj .y +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libyaz.la: $(libyaz_la_OBJECTS) $(libyaz_la_DEPENDENCIES) + $(LINK) -rpath $(libdir) $(libyaz_la_LDFLAGS) $(libyaz_la_OBJECTS) $(libyaz_la_LIBADD) $(LIBS) +libyazthread.la: $(libyazthread_la_OBJECTS) $(libyazthread_la_DEPENDENCIES) + $(LINK) -rpath $(libdir) $(libyazthread_la_LDFLAGS) $(libyazthread_la_OBJECTS) $(libyazthread_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atoin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_any.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_bit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_bool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_int.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_len.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_null.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_oct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_oid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ber_tag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclerrms.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclfind.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclptree.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclqfile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclqual.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclstr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ccltoken.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/charneg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comstack.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cql.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cqlstdio.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cqlstrer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cqlstring.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cqltransform.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cqlutil.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diag-entry.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diagbib1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diagsrw.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dumpber.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grs1disp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ill-core.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ill-get.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initopt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/item-req.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libxml2_error.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logrpn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marc8.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marc8r.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marcdisp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/matchstr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mime.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfa.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfaxml.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nmem.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nmemsdup.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_any.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_bit.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_bool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_choice.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_cons.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_enum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_int.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_mem.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_null.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_oct.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_oid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_seq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_tag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_use.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odr_util.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opacdisp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otherinfo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pquery.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prt-ext.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/querytowrbuf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readconf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/record_conv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/requestq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/retrieval.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/service.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seshigh.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siconv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/soap.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sortspec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srw.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srwutil.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/statserv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpdchk.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcpip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tpath.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waislen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wrbuf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xcqlutil.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmlquery.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yaz-ccl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-accdes1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-accform1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-acckrb1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-charneg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-core.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-date.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-diag1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-espec1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-estask.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-exp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-grs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-mterm2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-oclcui.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-opac.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-rrf1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-rrf2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-sum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-sutrs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-uifr1.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z-univ.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/z3950oid.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-admin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-expi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-exps.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-order.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-pquery.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-psched.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-pset.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-update.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zes-update0.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zgdu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zget.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoom-c.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoom-opt.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +.y.c: + $(YACCCOMPILE) $< + if test -f y.tab.h; then \ + to=`echo "$*_H" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ + sed "/^#/ s/Y_TAB_H/$$to/g" y.tab.h >$*.ht; \ + rm -f y.tab.h; \ + if cmp -s $*.ht $*.h; then \ + rm -f $*.ht ;\ + else \ + mv $*.ht $*.h; \ + fi; \ + fi + if test -f y.output; then \ + mv y.output $*.output; \ + fi + sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@ + rm -f y.tab.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-illdataDATA: $(illdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(illdatadir)" || $(mkdir_p) "$(DESTDIR)$(illdatadir)" + @list='$(illdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(illdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(illdatadir)/$$f'"; \ + $(illdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(illdatadir)/$$f"; \ + done + +uninstall-illdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(illdata_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(illdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(illdatadir)/$$f"; \ + done +install-tabdataDATA: $(tabdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(tabdatadir)" || $(mkdir_p) "$(DESTDIR)$(tabdatadir)" + @list='$(tabdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(tabdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(tabdatadir)/$$f'"; \ + $(tabdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(tabdatadir)/$$f"; \ + done + +uninstall-tabdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(tabdata_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f '$(DESTDIR)$(tabdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(tabdatadir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(illdatadir)" "$(DESTDIR)$(tabdatadir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -rm -f cql.c +clean: clean-am + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-illdataDATA install-tabdataDATA + +install-exec-am: install-libLTLIBRARIES + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-illdataDATA uninstall-info-am \ + uninstall-libLTLIBRARIES uninstall-tabdataDATA + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-illdataDATA install-info \ + install-info-am install-libLTLIBRARIES install-man \ + install-strip install-tabdataDATA installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-illdataDATA uninstall-info-am \ + uninstall-libLTLIBRARIES uninstall-tabdataDATA + +# noinst_PROGRAMS = cqlparse + +dist-hook: + test -f $(srcdir)/cql.c || exit 1 + +# MARC8->UTF8 conversion is generated from codetables.xml +marc8.c: charconv.tcl codetables.xml + $(TCLSH) $(srcdir)/charconv.tcl -p marc8 $(srcdir)/codetables.xml -o marc8.c + +# UTF-8->MARC8 conversion is generated from codetables.xml +marc8r.c: charconv.tcl codetables.xml + $(TCLSH) $(srcdir)/charconv.tcl -r -p marc8r $(srcdir)/codetables.xml -o marc8r.c + +# Generate diagnostics from CSVs +diagbib1.c $(top_srcdir)/include/yaz/diagbib1.h: csvtobib1.tcl bib1.csv + $(TCLSH) $(srcdir)/csvtobib1.tcl $(srcdir) + +diagsrw.c $(top_srcdir)/include/yaz/diagsrw.h: csvtosrw.tcl srw.csv + $(TCLSH) $(srcdir)/csvtosrw.tcl $(srcdir) + +# Rules for Z39.50 V3 +z-accdes1.c \ +z-accform1.c \ +z-acckrb1.c \ +z-core.c \ +z-diag1.c \ +z-espec1.c \ +z-estask.c \ +z-exp.c \ +z-grs.c \ +z-opac.c \ +z-uifr1.c \ +z-rrf1.c \ +z-rrf2.c \ +z-sum.c \ +z-sutrs.c \ +zes-expi.c \ +zes-exps.c \ +zes-order.c \ +zes-pquery.c \ +zes-psched.c \ +zes-pset.c \ +zes-update0.c \ +$(top_srcdir)/include/yaz/z-accdes1.h \ +$(top_srcdir)/include/yaz/z-core.h: \ +$(srcdir)/z.tcl $(srcdir)/z3950v3.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/z3950v3.asn + +# Date extension +z-date.c \ +$(top_srcdir)/include/yaz/z-date.h: $(srcdir)/z.tcl $(srcdir)/datetime.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/datetime.asn + +# UNIverse extension +z-univ.c \ +$(top_srcdir)/include/yaz/z-univ.h: \ +$(srcdir)/z.tcl $(srcdir)/univres.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/univres.asn + +# New Update extended service +zes-update.c \ +$(top_srcdir)/include/yaz/zes-update.h: \ +$(srcdir)/z.tcl $(srcdir)/esupdate.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/esupdate.asn + +# Admin extended service +zes-admin.c \ +$(top_srcdir)/include/yaz/zes-admin.h: \ +$(srcdir)/z.tcl $(srcdir)/esadmin.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/esadmin.asn + +# Charset negotiation +z-charneg.c: $(srcdir)/z.tcl $(srcdir)/charneg-3.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/charneg-3.asn + +# UserInfoFormat-multipleSearchTerms-2 +z-mterm2.c: $(srcdir)/z.tcl $(srcdir)/mterm2.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/mterm2.asn + +# UserInfoFormat-multipleSearchTerms-2 +z-oclcui.c: $(srcdir)/z.tcl $(srcdir)/oclcui.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_Z) $(srcdir)/oclcui.asn + +# ILL protocol +ill-core.c \ +$(top_srcdir)/include/yaz/ill-core.h: \ +$(srcdir)/ill.tcl $(srcdir)/ill9702.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_I) $(srcdir)/ill9702.asn + +# Item Request +item-req.c \ +$(top_srcdir)/include/yaz/item-req.h: \ +$(srcdir)/ill.tcl $(srcdir)/item-req.asn $(YAZCOMP) + $(TCLSH) $(YAZCOMP_I) $(srcdir)/item-req.asn + +# cqlparse_SOURCES = cqlstd.y +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/src/atoin.c b/dependencies/yaz-2.1.28/src/atoin.c new file mode 100644 index 0000000..2b4fb27 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/atoin.c @@ -0,0 +1,44 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: atoin.c,v 1.7 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file atoin.c + * \brief Implements atoi_n function. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +/** + * atoi_n: like atoi but reads at most len characters. + */ +int atoi_n (const char *buf, int len) +{ + int val = 0; + + while (--len >= 0) + { + if (isdigit (*(const unsigned char *) buf)) + val = val*10 + (*buf - '0'); + buf++; + } + return val; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_any.c b/dependencies/yaz-2.1.28/src/ber_any.c new file mode 100644 index 0000000..6c9b8d4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_any.c @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_any.c,v 1.5 2006/08/24 13:10:03 adam Exp $ + */ + +/** + * \file ber_any.c + * \brief Implements BER ANY encoding and decoding. + * + * This source file implements BER encoding and decoding of + * the ANY type. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +int ber_any(ODR o, Odr_any **p) +{ + int res; + + switch (o->direction) + { + case ODR_DECODE: + if ((res = completeBER(o->bp, odr_max(o))) <= 0) /* FIX THIS */ + { + odr_seterror(o, OPROTO, 2); + return 0; + } + (*p)->buf = (unsigned char *)odr_malloc(o, res); + memcpy((*p)->buf, o->bp, res); + (*p)->len = (*p)->size = res; + o->bp += res; + return 1; + case ODR_ENCODE: + if (odr_write(o, (*p)->buf, (*p)->len) < 0) + return 0; + return 1; + default: odr_seterror(o, OOTHER, 3); return 0; + } +} + +#define BER_ANY_DEBUG 0 + +int completeBER_n(const unsigned char *buf, int len, int level) +{ + int res, ll, zclass, tag, cons; + const unsigned char *b = buf; + + if (level > 1000) + { +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "completeBER lev=%d len=%d", level, len); +#endif + return -2; + } + if (len < 2) + return 0; + if (!buf[0] && !buf[1]) + return -2; + if ((res = ber_dectag(b, &zclass, &tag, &cons, len)) <= 0) + return 0; + b += res; + len -= res; + assert (len >= 0); + res = ber_declen(b, &ll, len); + if (res == -2) + { +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "<<<<<<<<< return1 lev=%d res=%d", level, res); +#endif + return -1; /* error */ + } + if (res == -1) + { +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "<<<<<<<<< return2 lev=%d res=%d", level, res); +#endif + return 0; /* incomplete length */ + } + b += res; + len -= res; + if (ll >= 0) + { /* definite length */ + if (len < ll) + { +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "<<<<<<<<< return5 lev=%d len=%d ll=%d", + level, len, ll); +#endif + return 0; + } + return ll + (b-buf); + } + /* indefinite length */ + if (!cons) + { /* if primitive, it's an error */ +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "<<<<<<<<< return6 lev=%d ll=%d len=%d res=%d", + level, ll, len, res); +#endif + return -1; /* error */ + } + /* constructed - cycle through children */ + while (len >= 2) + { + if (b[0] == 0 && b[1] == 0) + break; + if (!(res = completeBER_n(b, len, level+1))) + return 0; + if (res == -1) + return -1; + b += res; + len -= res; + } + if (len < 2) + return 0; + return (b - buf) + 2; +} + +int completeBER(const unsigned char *buf, int len) +{ + int res = completeBER_n(buf, len, 0); +#if BER_ANY_DEBUG + yaz_log(YLOG_LOG, "completeBER len=%d res=%d", len, res); +#endif + if (res < 0) + return len; + return res; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_bit.c b/dependencies/yaz-2.1.28/src/ber_bit.c new file mode 100644 index 0000000..e5d5eaa --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_bit.c @@ -0,0 +1,92 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_bit.c,v 1.4 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file ber_bit.c + * \brief Implements BER BITSTRING encoding and decoding. + * + * This source file implements BER encoding and decoding of + * the BITSTRING type. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int ber_bitstring(ODR o, Odr_bitmask *p, int cons) +{ + int res, len; + const unsigned char *base; + + switch (o->direction) + { + case ODR_DECODE: + if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) + { + odr_seterror(o, OPROTO, 4); + return 0; + } + o->bp += res; + if (cons) /* fetch component strings */ + { + base = o->bp; + while (odp_more_chunks(o, base, len)) + if (!odr_bitstring(o, &p, 0, 0)) + return 0; + return 1; + } + /* primitive bitstring */ + if (len < 0) + { + odr_seterror(o, OOTHER, 5); + return 0; + } + if (len == 0) + return 1; + if (len - 1 > ODR_BITMASK_SIZE) + { + odr_seterror(o, OOTHER, 6); + return 0; + } + if (len > odr_max(o)) + { + odr_seterror(o, OOTHER, 7); + return 0; + } + o->bp++; /* silently ignore the unused-bits field */ + len--; + memcpy(p->bits + p->top + 1, o->bp, len); + p->top += len; + o->bp += len; + return 1; + case ODR_ENCODE: + if ((res = ber_enclen(o, p->top + 2, 5, 0)) < 0) + return 0; + if (odr_putc(o, 0) < 0) /* no unused bits here */ + return 0; + if (p->top < 0) + return 1; + if (odr_write(o, p->bits, p->top + 1) < 0) + return 0; + return 1; + case ODR_PRINT: + return 1; + default: + odr_seterror(o, OOTHER, 8); + return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_bool.c b/dependencies/yaz-2.1.28/src/ber_bool.c new file mode 100644 index 0000000..e754e1c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_bool.c @@ -0,0 +1,62 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_bool.c,v 1.5 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file ber_bool.c + * \brief Implements BER BOOLEAN encoding and decoding + * + * This source file implements BER encoding and decoding of + * the BOOLEAN type. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +int ber_boolean(ODR o, int *val) +{ + int res, len; + + switch (o->direction) + { + case ODR_ENCODE: + if (ber_enclen(o, 1, 1, 1) != 1) + return 0; + if (odr_putc(o, *val) < 0) + return 0; + return 1; + case ODR_DECODE: + if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) + { + odr_seterror(o, OPROTO, 9); + return 0; + } + o->bp+= res; + if (len != 1 || odr_max(o) < len) + { + odr_seterror(o, OPROTO, 10); + return 0; + } + *val = *o->bp; + o->bp++; + return 1; + case ODR_PRINT: + return 1; + default: odr_seterror(o, OOTHER, 11); return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_int.c b/dependencies/yaz-2.1.28/src/ber_int.c new file mode 100644 index 0000000..3444428 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_int.c @@ -0,0 +1,120 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_int.c,v 1.6 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file ber_int.c + * \brief Implements BER INTEGER encoding and decoding. + * + * This source file implements BER encoding and decoding of + * the INTEGER type. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include + +#if HAVE_SYS_TYPES_H +#include +#endif + +#ifdef WIN32 +#include +#else +#include +#endif + +#include "odr-priv.h" + +static int ber_encinteger(ODR o, int val); +static int ber_decinteger(const unsigned char *buf, int *val, int max); + +int ber_integer(ODR o, int *val) +{ + int res; + + switch (o->direction) + { + case ODR_DECODE: + if ((res = ber_decinteger(o->bp, val, odr_max(o))) <= 0) + { + odr_seterror(o, OPROTO, 50); + return 0; + } + o->bp += res; + return 1; + case ODR_ENCODE: + if ((res = ber_encinteger(o, *val)) < 0) + return 0; + return 1; + case ODR_PRINT: + return 1; + default: + odr_seterror(o, OOTHER, 51); return 0; + } +} + +/* + * Returns: number of bytes written or -1 for error (out of bounds). + */ +int ber_encinteger(ODR o, int val) +{ + int a, len; + union { int i; unsigned char c[sizeof(int)]; } tmp; + + tmp.i = htonl(val); /* ensure that that we're big-endian */ + for (a = 0; a < (int) sizeof(int) - 1; a++) /* skip superfluous octets */ + if (!((tmp.c[a] == 0 && !(tmp.c[a+1] & 0X80)) || + (tmp.c[a] == 0XFF && (tmp.c[a+1] & 0X80)))) + break; + len = sizeof(int) - a; + if (ber_enclen(o, len, 1, 1) != 1) + return -1; + if (odr_write(o, (unsigned char*) tmp.c + a, len) < 0) + return -1; + return 0; +} + +/* + * Returns: Number of bytes read or 0 if no match, -1 if error. + */ +int ber_decinteger(const unsigned char *buf, int *val, int max) +{ + const unsigned char *b = buf; + unsigned char fill; + int res, len, remains; + union { int i; unsigned char c[sizeof(int)]; } tmp; + + if ((res = ber_declen(b, &len, max)) < 0) + return -1; + if (len+res > max || len < 0) /* out of bounds or indefinite encoding */ + return -1; + if (len > (int) sizeof(int)) /* let's be reasonable, here */ + return -1; + b+= res; + + remains = sizeof(int) - len; + memcpy(tmp.c + remains, b, len); + if (*b & 0X80) + fill = 0XFF; + else + fill = 0X00; + memset(tmp.c, fill, remains); + *val = ntohl(tmp.i); + + b += len; + return b - buf; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_len.c b/dependencies/yaz-2.1.28/src/ber_len.c new file mode 100644 index 0000000..cc47761 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_len.c @@ -0,0 +1,136 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_len.c,v 1.5 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file ber_len.c + * \brief Implements BER length octet encoding and decoding + * + * This source file implements BER encoding and decoding of + * the length octets. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +/** + * ber_enclen: + * Encode BER length octets. If exact, lenlen is the exact desired + * encoding size, else, lenlen is the max available space. Len < 0 = + * Indefinite encoding. + * Returns: >0 success, number of bytes encoded. + * Returns: =0 success, indefinite start-marker set. 1 byte encoded. + * Returns: -1 failure, out of bounds. + */ +int ber_enclen(ODR o, int len, int lenlen, int exact) +{ + unsigned char octs[sizeof(int)]; + int n = 0; + int lenpos, end; + + if (len < 0) /* Indefinite */ + { + if (odr_putc(o, 0x80) < 0) + return 0; + return 0; + } + if (len <= 127 && (lenlen == 1 || !exact)) /* definite short form */ + { + if (odr_putc(o, (unsigned char) len) < 0) + return 0; + return 1; + } + if (lenlen == 1) + { + if (odr_putc(o, 0x80) < 0) + return 0; + return 0; + } + /* definite long form */ + do + { + octs[n++] = len; + len >>= 8; + } + while (len); + if (n >= lenlen) + return -1; + lenpos = odr_tell(o); /* remember length-of-length position */ + if (odr_putc(o, 0) < 0) /* dummy */ + return 0; + if (exact) + while (n < --lenlen) /* pad length octets */ + if (odr_putc(o, 0) < 0) + return 0; + while (n--) + if (odr_putc(o, octs[n]) < 0) + return 0; + /* set length of length */ + end = odr_tell(o); + odr_seek(o, ODR_S_SET, lenpos); + if (odr_putc(o, (end - lenpos - 1) | 0X80) < 0) + return 0; + odr_seek(o, ODR_S_END, 0); + return odr_tell(o) - lenpos; +} + +/** + * ber_declen: + * Decode BER length octets. Returns + * > 0 : number of bytes read + * -1 : not enough room to read bytes within max bytes + * -2 : other error + * + * After return: + * len = -1 indefinite length. + * len >= 0 definite length + */ +int ber_declen(const unsigned char *buf, int *len, int max) +{ + const unsigned char *b = buf; + int n; + + if (max < 1) + return -1; + if (*b == 0X80) /* Indefinite */ + { + *len = -1; + return 1; + } + if (!(*b & 0X80)) /* Definite short form */ + { + *len = (int) *b; + return 1; + } + if (*b == 0XFF) /* reserved value */ + return -2; + /* indefinite long form */ + n = *b & 0X7F; + if (n >= max) + return -1; + *len = 0; + b++; + while (--n >= 0) + { + *len <<= 8; + *len |= *(b++); + } + if (*len < 0) + return -2; + return (b - buf); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_null.c b/dependencies/yaz-2.1.28/src/ber_null.c new file mode 100644 index 0000000..f37a788 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_null.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_null.c,v 1.5 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file ber_null.c + * \brief Implements ber_null + * + * This source file implements BER encoding and decoding of + * the NULL type. + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/** + * ber_null: BER-en/decoder for NULL type. + */ +int ber_null(ODR o) +{ + switch (o->direction) + { + case ODR_ENCODE: + if (odr_putc(o, 0X00) < 0) + return 0; + return 1; + case ODR_DECODE: + if (odr_max(o) < 1) + { + odr_seterror(o, OPROTO, 39); + return 0; + } + if (*(o->bp++) != 0X00) + { + odr_seterror(o, OPROTO, 12); + return 0; + } + return 1; + case ODR_PRINT: + return 1; + default: + odr_seterror(o, OOTHER, 13); + return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_oct.c b/dependencies/yaz-2.1.28/src/ber_oct.c new file mode 100644 index 0000000..8720b9e --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_oct.c @@ -0,0 +1,94 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_oct.c,v 1.4 2005/06/25 15:46:03 adam Exp $ + */ + +/** + * \file ber_oct.c + * \brief Implements ber_octetstring + * + * This source file implements BER encoding and decoding of + * the OCTETSTRING type. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int ber_octetstring(ODR o, Odr_oct *p, int cons) +{ + int res, len; + const unsigned char *base; + unsigned char *c; + + switch (o->direction) + { + case ODR_DECODE: + if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) + { + odr_seterror(o, OPROTO, 14); + return 0; + } + o->bp += res; + if (cons) /* fetch component strings */ + { + base = o->bp; + while (odp_more_chunks(o, base, len)) + if (!odr_octetstring(o, &p, 0, 0)) + return 0; + return 1; + } + /* primitive octetstring */ + if (len < 0) + { + odr_seterror(o, OOTHER, 15); + return 0; + } + if (len > odr_max(o)) + { + odr_seterror(o, OOTHER, 16); + return 0; + } + if (len + 1 > p->size - p->len) + { + c = (unsigned char *)odr_malloc(o, p->size += len + 1); + if (p->len) + memcpy(c, p->buf, p->len); + p->buf = c; + } + if (len) + memcpy(p->buf + p->len, o->bp, len); + p->len += len; + o->bp += len; + /* the final null is really not part of the buffer, but */ + /* it helps somes applications that assumes C strings */ + if (len) + p->buf[p->len] = '\0'; + return 1; + case ODR_ENCODE: + if ((res = ber_enclen(o, p->len, 5, 0)) < 0) + return 0; + if (p->len == 0) + return 1; + if (odr_write(o, p->buf, p->len) < 0) + return 0; + return 1; + case ODR_PRINT: + return 1; + default: + odr_seterror(o, OOTHER, 17); + return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_oid.c b/dependencies/yaz-2.1.28/src/ber_oid.c new file mode 100644 index 0000000..c024fd3 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_oid.c @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_oid.c,v 1.8 2006/04/17 07:40:15 adam Exp $ + */ + +/** + * \file ber_oid.c + * \brief Implements BER OID encoding and decoding + * + * This source file implements BER encoding and decoding of + * the OID type. + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int ber_oidc(ODR o, Odr_oid *p, int max_oid_size) +{ + int len, lenp, end; + int pos, n, res, id; + unsigned char octs[8]; + + switch (o->direction) + { + case ODR_DECODE: + if ((res = ber_declen(o->bp, &len, odr_max(o))) < 1) + { + odr_seterror(o, OPROTO, 18); + return 0; + } + if (len < 0) + { + odr_seterror(o, OPROTO, 19); + return 0; + } + o->bp += res; + if (len > odr_max(o)) + { + odr_seterror(o, OPROTO, 20); + return 0; + } + pos = 0; + while (len) + { + int id = 0; + do + { + if (!len) + { + odr_seterror(o, OPROTO, 21); + return 0; + } + id <<= 7; + id |= *o->bp & 0X7F; + len--; + } + while (*(o->bp++) & 0X80); + + if (id < 0) + { + odr_seterror(o, ODATA, 23); + return 0; + } + if (pos > 0) + p[pos++] = id; + else + { + p[0] = id / 40; + if (p[0] > 2) + p[0] = 2; + p[1] = id - p[0] * 40; + pos = 2; + } + if (pos >= max_oid_size) + { + odr_seterror(o, OPROTO, 55); + return 0; + } + } + if (pos < 2 || p[0] < 0 || p[1] < 0) + { + odr_seterror(o, ODATA, 23); + return 0; + } + p[pos] = -1; + return 1; + case ODR_ENCODE: + /* we'll allow ourselves the quiet luxury of only doing encodings + shorter than 127 */ + lenp = odr_tell(o); + if (odr_putc(o, 0) < 0) /* dummy */ + return 0; + if (p[0] < 0 || p[1] < 0) + { + odr_seterror(o, ODATA, 23); + return 0; + } + for (pos = 1; p[pos] != -1; pos++) + { + n = 0; + if (pos == 1) + id = p[0]*40 + p[1]; + else + id = p[pos]; + do + { + octs[n++] = id & 0X7F; + id >>= 7; + } + while (id); + while (n--) + { + unsigned char p; + + p = octs[n] | ((n > 0) << 7); + if (odr_putc(o, p) < 0) + return 0; + } + } + end = odr_tell(o); + odr_seek(o, ODR_S_SET, lenp); + if (ber_enclen(o, (end - lenp) - 1, 1, 1) != 1) + { + odr_seterror(o, OOTHER, 52); + return 0; + } + odr_seek(o, ODR_S_END, 0); + return 1; + default: + odr_seterror(o, OOTHER, 22); + return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ber_tag.c b/dependencies/yaz-2.1.28/src/ber_tag.c new file mode 100644 index 0000000..e7fd801 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ber_tag.c @@ -0,0 +1,197 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ber_tag.c,v 1.6 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file ber_tag.c + * \brief Implements BER tags encoding and decoding + * + * This source file implements BER encoding and decoding of + * the tags. + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +/** + * \brief Encode/decode BER tags + * + * On encoding: + * \verbatim + * if p: write tag. return 1 (success) or -1 (error). + * if !p: return 0. + * \endverbatim + * On decoding: + * \verbatim + * if tag && zclass match up, advance pointer and return 1. set cons. + * else leave pointer unchanged. Return 0. + * \endverbatim + */ +int ber_tag(ODR o, void *p, int zclass, int tag, int *constructed, int opt, + const char *name) +{ + struct Odr_ber_tag *odr_ber_tag = &o->op->odr_ber_tag; + int rd; + char **pp = (char **)p; + + if (o->direction == ODR_DECODE) + *pp = 0; + o->t_class = -1; + if (ODR_STACK_EMPTY(o)) + { + odr_seek(o, ODR_S_SET, 0); + o->top = 0; + o->bp = o->buf; + odr_ber_tag->lclass = -1; + } + switch (o->direction) + { + case ODR_ENCODE: + if (!*pp) + { + if (!opt) + { + odr_seterror(o, OREQUIRED, 24); + odr_setelement (o, name); + } + return 0; + } + if ((rd = ber_enctag(o, zclass, tag, *constructed)) < 0) + return -1; + return 1; + case ODR_DECODE: + if (ODR_STACK_NOT_EMPTY(o) && !odr_constructed_more(o)) + { + if (!opt) + { + odr_seterror(o, OREQUIRED, 25); + odr_setelement(o, name); + } + return 0; + } + if (odr_ber_tag->lclass < 0) + { + if ((odr_ber_tag->br = + ber_dectag(o->bp, &odr_ber_tag->lclass, + &odr_ber_tag->ltag, &odr_ber_tag->lcons, + odr_max(o))) <= 0) + { + odr_seterror(o, OPROTO, 26); + odr_setelement(o, name); + return 0; + } + } + if (zclass == odr_ber_tag->lclass && tag == odr_ber_tag->ltag) + { + o->bp += odr_ber_tag->br; + *constructed = odr_ber_tag->lcons; + odr_ber_tag->lclass = -1; + return 1; + } + else + { + if (!opt) + { + odr_seterror(o, OREQUIRED, 27); + odr_setelement(o, name); + } + return 0; + } + case ODR_PRINT: + if (!*pp && !opt) + { + odr_seterror(o,OREQUIRED, 28); + odr_setelement(o, name); + } + return *pp != 0; + default: + odr_seterror(o, OOTHER, 29); + odr_setelement(o, name); + return 0; + } +} + +/** + * \brief BER-encode a zclass/tag/constructed package (identifier octets). + * + * Return number of bytes encoded, or -1 if out of bounds. + */ +int ber_enctag(ODR o, int zclass, int tag, int constructed) +{ + int cons = (constructed ? 1 : 0), n = 0; + unsigned char octs[sizeof(int)], b; + + b = (zclass << 6) & 0XC0; + b |= (cons << 5) & 0X20; + if (tag <= 30) + { + b |= tag & 0X1F; + if (odr_putc(o, b) < 0) + return -1; + return 1; + } + else + { + b |= 0X1F; + if (odr_putc(o, b) < 0) + return -1; + do + { + octs[n++] = tag & 0X7F; + tag >>= 7; + } + while (tag); + while (n--) + { + unsigned char oo; + + oo = octs[n] | ((n > 0) << 7); + if (odr_putc(o, oo) < 0) + return -1; + } + return 0; + } +} + +/** + * \brief Decodes BER identifier octets. + * + * Returns number of bytes read or -1 for error. + */ +int ber_dectag(const unsigned char *b, int *zclass, int *tag, + int *constructed, int max) +{ + int l = 1; + + if (l > max) + return -1; + + *zclass = *b >> 6; + *constructed = (*b >> 5) & 0X01; + if ((*tag = *b & 0x1F) <= 30) + return 1; + *tag = 0; + do + { + if (l >= max) + return -1; + *tag <<= 7; + *tag |= b[l] & 0X7F; + } + while (b[l++] & 0X80); + return l; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/bib1.csv b/dependencies/yaz-2.1.28/src/bib1.csv new file mode 100644 index 0000000..ba0345f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/bib1.csv @@ -0,0 +1,176 @@ +"$Id: bib1.csv,v 1.1 2005/04/22 08:27:58 adam Exp $" +1, "Permanent system error" +2, "Temporary system error" +3, "Unsupported search" +4, "Terms only exclusion (stop) words" +5, "Too many argument words" +6, "Too many boolean operators" +7, "Too many truncated words" +8, "Too many incomplete subfields" +9, "Truncated words too short" +10, "Invalid format for record number (search term)" +11, "Too many characters in search statement" +12, "Too many records retrieved" +13, "Present request out of range" +14, "System error in presenting records" +15, "Record no authorized to be sent intersystem" +16, "Record exceeds Preferred-message-size" +17, "Record exceeds Maximum-record-size" +18, "Result set not supported as a search term" +19, "Only single result set as search term supported" +20, "Only ANDing of a single result set as search term supported" +21, "Result set exists and replace indicator off" +22, "Result set naming not supported" +23, "Combination of specified databases not supported" +24, "Element set names not supported" +25, "Specified element set name not valid for specified database" +26, "Only a single element set name supported" +27, "Result set no longer exists - unilaterally deleted by target" +28, "Result set is in use" +29, "One of the specified databases is locked" +30, "Specified result set does not exist" +31, "Resources exhausted - no results available" +32, "Resources exhausted - unpredictable partial results available" +33, "Resources exhausted - valid subset of results available" +100, "Unspecified error" +101, "Access-control failure" +102, "Security challenge required but could not be issued - request terminated" +103, "Security challenge required but could not be issued - record not included" +104, "Security challenge failed - record not included" +105, "Terminated by negative continue response" +106, "No abstract syntaxes agreed to for this record" +107, "Query type not supported" +108, "Malformed query" +109, "Database unavailable" +110, "Operator unsupported" +111, "Too many databases specified" +112, "Too many result sets created" +113, "Unsupported attribute type" +114, "Unsupported Use attribute" +115, "Unsupported value for Use attribute" +116, "Use attribute required but not supplied" +117, "Unsupported Relation attribute" +118, "Unsupported Structure attribute" +119, "Unsupported Position attribute" +120, "Unsupported Truncation attribute" +121, "Unsupported Attribute Set" +122, "Unsupported Completeness attribute" +123, "Unsupported attribute combination" +124, "Unsupported coded value for term" +125, "Malformed search term" +126, "Illegal term value for attribute" +127, "Unparsable format for un-normalized value" +128, "Illegal result set name" +129, "Proximity search of sets not supported" +130, "Illegal result set in proximity search" +131, "Unsupported proximity relation" +132, "Unsupported proximity unit code" +201, "Proximity not supported with this attribute combination" +202, "Unsupported distance for proximity" +203, "Ordered flag not supported for proximity" +205, "Only zero step size supported for Scan" +206, "Specified step size not supported for Scan" +207, "Cannot sort according to sequence" +208, "No result set name supplied on Sort" +209, "Generic sort not supported (database-specific sort only supported)" +210, "Database specific sort not supported" +211, "Too many sort keys" +212, "Duplicate sort keys" +213, "Unsupported missing data action" +214, "Illegal sort relation" +215, "Illegal case value" +216, "Illegal missing data action" +217, "Segmentation: Cannot guarantee records will fit in specified segments" +218, "ES: Package name already in use" +219, "ES: no such package, on modify/delete" +220, "ES: quota exceeded" +221, "ES: extended service type not supported" +222, "ES: permission denied on ES - id not authorized" +223, "ES: permission denied on ES - cannot modify or delete" +224, "ES: immediate execution failed" +225, "ES: immediate execution not supported for this service" +226, "ES: immediate execution not supported for these parameters" +227, "No data available in requested record syntax" +228, "Scan: malformed scan" +229, "Term type not supported" +230, "Sort: too many input results" +231, "Sort: incompatible record formats" +232, "Scan: term list not supported" +233, "Scan: unsupported value of position-in-response" +234, "Too many index terms processed" +235, "Database does not exist" +236, "Access to specified database denied" +237, "Sort: illegal sort" +238, "Record not available in requested syntax" +239, "Record syntax not supported" +240, "Scan: Resources exhausted looking for satisfying terms" +241, "Scan: Beginning or end of term list" +242, "Segmentation: max-segment-size too small to segment record" +243, "Present: additional-ranges parameter not supported" +244, "Present: comp-spec parameter not supported" +245, "Type-1 query: restriction ('resultAttr') operand not supported" +246, "Type-1 query: 'complex' attributeValue not supported" +247, "Type-1 query: 'attributeSet' as part of AttributeElement not supported" +1001, "Malformed APDU" +1002, "ES: EXTERNAL form of Item Order request not supported" +1003, "ES: Result set item form of Item Order request not supported" +1004, "ES: Extended services not supported unless access control is in effect" +1005, "Response records in Search response not supported" +1006, "Response records in Search response not possible for specified database (or database combination)" +1007, "No Explain server. Addinfo: pointers to servers that have a surrogate Explain database for this server" +1008, "ES: missing mandatory parameter for specified function. Addinfo: parameter" +1009, "ES: Item Order, unsupported OID in itemRequest. Addinfo: OID" +1010, "Init/AC: Bad Userid" +1011, "Init/AC: Bad Userid and/or Password" +1012, "Init/AC: No searches remaining (pre-purchased searches exhausted)" +1013, "Init/AC: Incorrect interface type (specified id valid only when used with a particular access method or client)" +1014, "Init/AC: Authentication System error" +1015, "Init/AC: Maximum number of simultaneous sessions for Userid" +1016, "Init/AC: Blocked network address" +1017, "Init/AC: No databases available for specified userId" +1018, "Init/AC: System temporarily out of resources" +1019, "Init/AC: System not available due to maintenance" +1020, "Init/AC: System temporarily unavailable (Addinfo: when it's expected back up)" +1021, "Init/AC: Account has expired" +1022, "Init/AC: Password has expired so a new one must be supplied" +1023, "Init/AC: Password has been changed by an administrator so a new one must be supplied" +1024, "Unsupported Attribute" +1025, "Service not supported for this database" +1026, "Record cannot be opened because it is locked" +1027, "SQL error" +1028, "Record deleted" +1029, "Scan: too many terms requested. Addinfo: max terms supported" +1040, "ES: Invalid function" +1041, "ES: Error in retention time" +1042, "ES: Permissions data not understood" +1043, "ES: Invalid OID for task specific parameters" +1044, "ES: Invalid action" +1045, "ES: Unknown schema" +1046, "ES: Too many records in package" +1047, "ES: Invalid wait action" +1048, "ES: Cannot create task package -- exceeds maximum permissable size" +1049, "ES: Cannot return task package -- exceeds maximum permissable size" +1050, "ES: Extended services request too large" +1051, "Scan: Attribute set id required -- not supplied" +1052, "ES: Cannot process task package record -- exceeds maximum permissible record size for ES" +1053, "ES: Cannot return task package record -- exceeds maximum permissible record size for ES response" +1054, "Init: Required negotiation record not included" +1055, "Init: negotiation option required" +1056, "Attribute not supported for database" +1057, "ES: Unsupported value of task package parameter" +1058, "Duplicate Detection: Cannot dedup on requested record portion" +1059, "Duplicate Detection: Requested detection criterion not supported" +1060, "Duplicate Detection: Requested level of match not supported" +1061, "Duplicate Detection: Requested regular expression not supported" +1062, "Duplicate Detection: Cannot do clustering" +1063, "Duplicate Detection: Retention criterion not supported" +1064, "Duplicate Detection: Requested number (or percentage) of entries " + "for retention too large" +1065, "Duplicate Detection: Requested sort criterion not supported" +1066, "CompSpec: Unknown schema, or schema not supported." +1067, "Encapsulation: Encapsulated sequence of PDUs not supported" +1068, "Encapsulation: Base operation (and encapsulated PDUs) not executed based on pre-screening analysis" +1069, "No syntaxes available for this request" +1070, "user not authorized to receive record(s) in requested syntax" +1071, "preferredRecordSyntax not supplied" +1072, "Query term includes characters that do not translate into the target character set" diff --git a/dependencies/yaz-2.1.28/src/cclerrms.c b/dependencies/yaz-2.1.28/src/cclerrms.c new file mode 100644 index 0000000..7c54085 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclerrms.c @@ -0,0 +1,118 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +/** + * \file cclerrms.c + * \brief Implements CCL error code to error string map. + * + * This source file implements mapping between CCL error code and + * their string equivalents. + */ + + +/* + * Europagate, 1995 + * + * $Id: cclerrms.c,v 1.3 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.8 1995/05/16 09:39:25 adam + * LICENSE. + * + * Revision 1.7 1995/04/17 09:31:40 adam + * Improved handling of qualifiers. Aliases or reserved words. + * + * Revision 1.6 1995/02/23 08:31:59 adam + * Changed header. + * + * Revision 1.4 1995/02/14 16:20:54 adam + * Qualifiers are read from a file now. + * + * Revision 1.3 1995/02/14 10:25:56 adam + * The constructions 'qualifier rel term ...' implemented. + * + * Revision 1.2 1995/02/13 15:15:06 adam + * Added handling of qualifiers. Not finished yet. + * + * Revision 1.1 1995/02/13 12:35:20 adam + * First version of CCL. Qualifiers aren't handled yet. + * + */ + +#include + +static char *err_msg_array[] = { + "Ok", + "Search word expected", + "')' expected", + "Set name expected", + "Operator expected", + "Unbalanced ')'", + "Unknown qualifier", + "Qualifiers applied twice", + "'=' expected", + "Bad relation", + "Left truncation not supported", + "Both left - and right truncation not supported", + "Right truncation not supported" +}; + +/* + * ccl_err_msg: return name of CCL error + * ccl_errno: Error no. + * return: Name of error. + */ +const char *ccl_err_msg (int ccl_errno) +{ + return err_msg_array[ccl_errno]; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cclfind.c b/dependencies/yaz-2.1.28/src/cclfind.c new file mode 100644 index 0000000..a6619fb --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclfind.c @@ -0,0 +1,1207 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +/** + * \file cclfind.c + * \brief Implements parsing of a CCL FIND query. + * + * This source file implements parsing of a CCL Query (ISO8777). + * The parser uses predictive parsing, but it does several tokens + * of lookahead in the handling of relational operations.. So + * it's not really pure. + */ + + +/* CCL find (to rpn conversion) + * Europagate, 1995 + * + * $Id: cclfind.c,v 1.8 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate log: + * + * Revision 1.16 1996/01/08 08:41:13 adam + * Removed unused function. + * + * Revision 1.15 1995/07/20 08:14:34 adam + * Qualifiers were observed too often. Instead tokens are treated as + * qualifiers only when separated by comma. + * + * Revision 1.14 1995/05/16 09:39:26 adam + * LICENSE. + * + * Revision 1.13 1995/04/17 09:31:42 adam + * Improved handling of qualifiers. Aliases or reserved words. + * + * Revision 1.12 1995/03/20 15:27:43 adam + * Minor changes. + * + * Revision 1.11 1995/02/23 08:31:59 adam + * Changed header. + * + * Revision 1.9 1995/02/16 13:20:06 adam + * Spell fix. + * + * Revision 1.8 1995/02/14 19:59:42 adam + * Removed a syntax error. + * + * Revision 1.7 1995/02/14 19:55:10 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * Node kind(s) in ccl_rpn_node have changed names. + * + * Revision 1.6 1995/02/14 16:20:55 adam + * Qualifiers are read from a file now. + * + * Revision 1.5 1995/02/14 14:12:41 adam + * Ranges for ordered qualfiers implemented (e.g. pd=1980-1990). + * + * Revision 1.4 1995/02/14 13:16:29 adam + * Left and/or right truncation implemented. + * + * Revision 1.3 1995/02/14 10:25:56 adam + * The constructions 'qualifier rel term ...' implemented. + * + * Revision 1.2 1995/02/13 15:15:07 adam + * Added handling of qualifiers. Not finished yet. + * + * Revision 1.1 1995/02/13 12:35:20 adam + * First version of CCL. Qualifiers aren't handled yet. + * + */ + +#include +#include + +#include + +/* returns type of current lookahead */ +#define KIND (cclp->look_token->kind) + +/* move one token forward */ +#define ADVANCE cclp->look_token = cclp->look_token->next + +/** + * qual_val_type: test for existance of attribute type/value pair. + * qa: Attribute array + * type: Type of attribute to search for + * value: Value of attribute to seach for + * return: 1 if found; 0 otherwise. + */ +static int qual_val_type (struct ccl_rpn_attr **qa, int type, int value, + char **attset) +{ + int i; + struct ccl_rpn_attr *q; + + if (!qa) + return 0; + for (i = 0; (q=qa[i]); i++) + while (q) + { + if (q->type == type && q->kind == CCL_RPN_ATTR_NUMERIC && + q->value.numeric == value) + { + if (attset) + *attset = q->set; + return 1; + } + q = q->next; + } + return 0; +} + +/** + * strxcat: concatenate strings. + * n: Null-terminated Destination string + * src: Source string to be appended (not null-terminated) + * len: Length of source string. + */ +static void strxcat (char *n, const char *src, int len) +{ + while (*n) + n++; + while (--len >= 0) + *n++ = *src++; + *n = '\0'; +} + +/** + * copy_token_name: Return copy of CCL token name + * tp: Pointer to token info. + * return: malloc(3) allocated copy of token name. + */ +static char *copy_token_name (struct ccl_token *tp) +{ + char *str = (char *)xmalloc (tp->len + 1); + ccl_assert (str); + memcpy (str, tp->name, tp->len); + str[tp->len] = '\0'; + return str; +} + +/** + * mk_node: Create RPN node. + * kind: Type of node. + * return: pointer to allocated node. + */ +static struct ccl_rpn_node *mk_node (int kind) +{ + struct ccl_rpn_node *p; + p = (struct ccl_rpn_node *)xmalloc (sizeof(*p)); + ccl_assert (p); + p->kind = kind; + return p; +} + +/** + * ccl_rpn_delete: Delete RPN tree. + * rpn: Pointer to tree. + */ +void ccl_rpn_delete (struct ccl_rpn_node *rpn) +{ + struct ccl_rpn_attr *attr, *attr1; + if (!rpn) + return; + switch (rpn->kind) + { + case CCL_RPN_AND: + case CCL_RPN_OR: + case CCL_RPN_NOT: + ccl_rpn_delete (rpn->u.p[0]); + ccl_rpn_delete (rpn->u.p[1]); + break; + case CCL_RPN_TERM: + xfree (rpn->u.t.term); + for (attr = rpn->u.t.attr_list; attr; attr = attr1) + { + attr1 = attr->next; + if (attr->kind == CCL_RPN_ATTR_STRING) + xfree(attr->value.str); + if (attr->set) + xfree (attr->set); + xfree (attr); + } + break; + case CCL_RPN_SET: + xfree (rpn->u.setname); + break; + case CCL_RPN_PROX: + ccl_rpn_delete (rpn->u.p[0]); + ccl_rpn_delete (rpn->u.p[1]); + ccl_rpn_delete (rpn->u.p[2]); + break; + } + xfree (rpn); +} + +static struct ccl_rpn_node *find_spec (CCL_parser cclp, + struct ccl_rpn_attr **qa); + +static int is_term_ok (int look, int *list) +{ + for (;*list >= 0; list++) + if (look == *list) + return 1; + return 0; +} + +static struct ccl_rpn_node *search_terms (CCL_parser cclp, + struct ccl_rpn_attr **qa); + +static struct ccl_rpn_attr *add_attr_node (struct ccl_rpn_node *p, + const char *set, int type) +{ + struct ccl_rpn_attr *n; + + n = (struct ccl_rpn_attr *)xmalloc (sizeof(*n)); + ccl_assert (n); + if (set) + { + n->set = (char*) xmalloc (strlen(set)+1); + strcpy (n->set, set); + } + else + n->set = 0; + n->type = type; + n->next = p->u.t.attr_list; + p->u.t.attr_list = n; + + n->kind = CCL_RPN_ATTR_NUMERIC; + n->value.numeric = 0; + return n; +} + +/** + * add_attr_numeric: Add attribute (type/value) to RPN term node. + * p: RPN node of type term. + * type: Type of attribute + * value: Value of attribute + * set: Attribute set name + */ +static void add_attr_numeric (struct ccl_rpn_node *p, const char *set, + int type, int value) +{ + struct ccl_rpn_attr *n; + + n = add_attr_node(p, set, type); + n->kind = CCL_RPN_ATTR_NUMERIC; + n->value.numeric = value; +} + +static void add_attr_string (struct ccl_rpn_node *p, const char *set, + int type, char *value) +{ + struct ccl_rpn_attr *n; + + n = add_attr_node(p, set, type); + n->kind = CCL_RPN_ATTR_STRING; + n->value.str = xstrdup(value); +} + + +/** + * search_term: Parse CCL search term. + * cclp: CCL Parser + * qa: Qualifier attributes already applied. + * term_list: tokens we accept as terms in context + * multi: whether we accept "multiple" tokens + * return: pointer to node(s); NULL on error. + */ +static struct ccl_rpn_node *search_term_x (CCL_parser cclp, + struct ccl_rpn_attr **qa, + int *term_list, int multi) +{ + struct ccl_rpn_node *p_top = 0; + struct ccl_token *lookahead = cclp->look_token; + int and_list = 0; + int or_list = 0; + char *attset; + const char *truncation_aliases; + + truncation_aliases = + ccl_qual_search_special(cclp->bibset, "truncation"); + if (!truncation_aliases) + truncation_aliases = "?"; + + if (qual_val_type (qa, CCL_BIB1_STR, CCL_BIB1_STR_AND_LIST, 0)) + and_list = 1; + if (qual_val_type (qa, CCL_BIB1_STR, CCL_BIB1_STR_OR_LIST, 0)) + or_list = 1; + while (1) + { + struct ccl_rpn_node *p; + size_t no, i; + int no_spaces = 0; + int left_trunc = 0; + int right_trunc = 0; + int mid_trunc = 0; + int relation_value = -1; + int position_value = -1; + int structure_value = -1; + int truncation_value = -1; + int completeness_value = -1; + int len = 0; + size_t max = 200; + if (and_list || or_list || !multi) + max = 1; + + /* ignore commas when dealing with and-lists .. */ + if (and_list && lookahead && lookahead->kind == CCL_TOK_COMMA) + { + lookahead = lookahead->next; + ADVANCE; + continue; + } + /* go through each TERM token. If no truncation attribute is yet + met, then look for left/right truncation markers (?) and + set left_trunc/right_trunc/mid_trunc accordingly */ + for (no = 0; no < max && is_term_ok(lookahead->kind, term_list); no++) + { + for (i = 0; ilen; i++) + if (lookahead->name[i] == ' ') + no_spaces++; + else if (strchr(truncation_aliases, lookahead->name[i])) + { + if (no == 0 && i == 0 && lookahead->len >= 1) + left_trunc = 1; + else if (!is_term_ok(lookahead->next->kind, term_list) && + i == lookahead->len-1 && i >= 1) + right_trunc = 1; + else + mid_trunc = 1; + } + len += 1+lookahead->len+lookahead->ws_prefix_len; + lookahead = lookahead->next; + } + + if (len == 0) + break; /* no more terms . stop . */ + + + if (p_top) + { + if (or_list) + p = mk_node (CCL_RPN_OR); + else if (and_list) + p = mk_node (CCL_RPN_AND); + else + p = mk_node (CCL_RPN_AND); + p->u.p[0] = p_top; + p_top = p; + } + + /* create the term node, but wait a moment before adding the term */ + p = mk_node (CCL_RPN_TERM); + p->u.t.attr_list = NULL; + p->u.t.term = NULL; + + /* make the top node point to us.. */ + if (p_top) + p_top->u.p[1] = p; + else + p_top = p; + + + /* go through all attributes and add them to the attribute list */ + for (i=0; qa && qa[i]; i++) + { + struct ccl_rpn_attr *attr; + + for (attr = qa[i]; attr; attr = attr->next) + switch(attr->kind) + { + case CCL_RPN_ATTR_STRING: + add_attr_string(p, attr->set, attr->type, + attr->value.str); + break; + case CCL_RPN_ATTR_NUMERIC: + if (attr->value.numeric > 0) + { /* deal only with REAL attributes (positive) */ + switch (attr->type) + { + case CCL_BIB1_REL: + if (relation_value != -1) + continue; + relation_value = attr->value.numeric; + break; + case CCL_BIB1_POS: + if (position_value != -1) + continue; + position_value = attr->value.numeric; + break; + case CCL_BIB1_STR: + if (structure_value != -1) + continue; + structure_value = attr->value.numeric; + break; + case CCL_BIB1_TRU: + if (truncation_value != -1) + continue; + truncation_value = attr->value.numeric; + left_trunc = right_trunc = mid_trunc = 0; + break; + case CCL_BIB1_COM: + if (completeness_value != -1) + continue; + completeness_value = attr->value.numeric; + break; + } + add_attr_numeric(p, attr->set, attr->type, + attr->value.numeric); + } + } + } + /* len now holds the number of characters in the RPN term */ + /* no holds the number of CCL tokens (1 or more) */ + + if (structure_value == -1 && + qual_val_type (qa, CCL_BIB1_STR, CCL_BIB1_STR_WP, &attset)) + { /* no structure attribute met. Apply either structure attribute + WORD or PHRASE depending on number of CCL tokens */ + if (no == 1 && no_spaces == 0) + add_attr_numeric (p, attset, CCL_BIB1_STR, 2); + else + add_attr_numeric (p, attset, CCL_BIB1_STR, 1); + } + + /* make the RPN token */ + p->u.t.term = (char *)xmalloc (len); + ccl_assert (p->u.t.term); + p->u.t.term[0] = '\0'; + for (i = 0; ilook_token->name; + int src_len = cclp->look_token->len; + + if (i == 0 && left_trunc) + { + src_len--; + src_str++; + } + if (i == no-1 && right_trunc) + src_len--; + if (i && cclp->look_token->ws_prefix_len) + { + size_t len = strlen(p->u.t.term); + memcpy(p->u.t.term + len, cclp->look_token->ws_prefix_buf, + cclp->look_token->ws_prefix_len); + p->u.t.term[len + cclp->look_token->ws_prefix_len] = '\0'; + } + strxcat (p->u.t.term, src_str, src_len); + ADVANCE; + } + if (left_trunc && right_trunc) + { + if (!qual_val_type (qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_BOTH, + &attset)) + { + cclp->error_code = CCL_ERR_TRUNC_NOT_BOTH; + ccl_rpn_delete (p); + return NULL; + } + add_attr_numeric (p, attset, CCL_BIB1_TRU, 3); + } + else if (right_trunc) + { + if (!qual_val_type (qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_RIGHT, + &attset)) + { + cclp->error_code = CCL_ERR_TRUNC_NOT_RIGHT; + ccl_rpn_delete (p); + return NULL; + } + add_attr_numeric (p, attset, CCL_BIB1_TRU, 1); + } + else if (left_trunc) + { + if (!qual_val_type (qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_LEFT, + &attset)) + { + cclp->error_code = CCL_ERR_TRUNC_NOT_LEFT; + ccl_rpn_delete (p); + return NULL; + } + add_attr_numeric (p, attset, CCL_BIB1_TRU, 2); + } + else + { + if (qual_val_type (qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_NONE, + &attset)) + add_attr_numeric (p, attset, CCL_BIB1_TRU, 100); + } + if (!multi) + break; + } + if (!p_top) + cclp->error_code = CCL_ERR_TERM_EXPECTED; + return p_top; +} + +static struct ccl_rpn_node *search_term (CCL_parser cclp, + struct ccl_rpn_attr **qa) +{ + static int list[] = {CCL_TOK_TERM, CCL_TOK_COMMA, -1}; + return search_term_x(cclp, qa, list, 0); +} + +static +struct ccl_rpn_node *qualifiers_order (CCL_parser cclp, + struct ccl_rpn_attr **ap, char *attset) +{ + int rel = 0; + struct ccl_rpn_node *p; + + if (cclp->look_token->len == 1) + { + if (cclp->look_token->name[0] == '<') + rel = 1; + else if (cclp->look_token->name[0] == '=') + rel = 3; + else if (cclp->look_token->name[0] == '>') + rel = 5; + } + else if (cclp->look_token->len == 2) + { + if (!memcmp (cclp->look_token->name, "<=", 2)) + rel = 2; + else if (!memcmp (cclp->look_token->name, ">=", 2)) + rel = 4; + else if (!memcmp (cclp->look_token->name, "<>", 2)) + rel = 6; + } + if (!rel) + { + cclp->error_code = CCL_ERR_BAD_RELATION; + return NULL; + } + ADVANCE; /* skip relation */ + if (rel == 3 && + qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_PORDER, 0)) + { + /* allow - inside term and treat it as range _always_ */ + /* relation is =. Extract "embedded" - to separate terms */ + if (KIND == CCL_TOK_TERM) + { + size_t i; + for (i = 0; ilook_token->len; i++) + { + if (cclp->look_token->name[i] == '-') + break; + } + + if (cclp->look_token->len > 1 && i == 0) + { /* -xx*/ + struct ccl_token *ntoken = ccl_token_add (cclp->look_token); + + ntoken->kind = CCL_TOK_TERM; + ntoken->name = cclp->look_token->name + 1; + ntoken->len = cclp->look_token->len - 1; + + cclp->look_token->len = 1; + cclp->look_token->name = "-"; + } + else if (cclp->look_token->len > 1 && i == cclp->look_token->len-1) + { /* xx- */ + struct ccl_token *ntoken = ccl_token_add (cclp->look_token); + + ntoken->kind = CCL_TOK_TERM; + ntoken->name = "-"; + ntoken->len = 1; + + (cclp->look_token->len)--; + } + else if (cclp->look_token->len > 2 && i < cclp->look_token->len) + { /* xx-yy */ + struct ccl_token *ntoken1 = ccl_token_add (cclp->look_token); + struct ccl_token *ntoken2 = ccl_token_add (ntoken1); + + ntoken1->kind = CCL_TOK_TERM; /* generate - */ + ntoken1->name = "-"; + ntoken1->len = 1; + + ntoken2->kind = CCL_TOK_TERM; /* generate yy */ + ntoken2->name = cclp->look_token->name + (i+1); + ntoken2->len = cclp->look_token->len - (i+1); + + cclp->look_token->len = i; /* adjust xx */ + } + else if (i == cclp->look_token->len && + cclp->look_token->next && + cclp->look_token->next->kind == CCL_TOK_TERM && + cclp->look_token->next->len > 1 && + cclp->look_token->next->name[0] == '-') + + { /* xx -yy */ + /* we _know_ that xx does not have - in it */ + struct ccl_token *ntoken = ccl_token_add (cclp->look_token); + + ntoken->kind = CCL_TOK_TERM; /* generate - */ + ntoken->name = "-"; + ntoken->len = 1; + + (ntoken->next->name)++; /* adjust yy */ + (ntoken->next->len)--; + } + } + } + + if (rel == 3 && + KIND == CCL_TOK_TERM && + cclp->look_token->next && cclp->look_token->next->len == 1 && + cclp->look_token->next->name[0] == '-') + { + struct ccl_rpn_node *p1; + if (!(p1 = search_term (cclp, ap))) + return NULL; + ADVANCE; /* skip '-' */ + if (KIND == CCL_TOK_TERM) /* = term - term ? */ + { + struct ccl_rpn_node *p2; + + if (!(p2 = search_term (cclp, ap))) + { + ccl_rpn_delete (p1); + return NULL; + } + p = mk_node (CCL_RPN_AND); + p->u.p[0] = p1; + add_attr_numeric (p1, attset, CCL_BIB1_REL, 4); + p->u.p[1] = p2; + add_attr_numeric (p2, attset, CCL_BIB1_REL, 2); + return p; + } + else /* = term - */ + { + add_attr_numeric (p1, attset, CCL_BIB1_REL, 4); + return p1; + } + } + else if (rel == 3 && + cclp->look_token->len == 1 && + cclp->look_token->name[0] == '-') /* = - term ? */ + { + ADVANCE; + if (!(p = search_term (cclp, ap))) + return NULL; + add_attr_numeric (p, attset, CCL_BIB1_REL, 2); + return p; + } + else if (KIND == CCL_TOK_LP) + { + ADVANCE; + if (!(p = find_spec (cclp, ap))) + return NULL; + if (KIND != CCL_TOK_RP) + { + cclp->error_code = CCL_ERR_RP_EXPECTED; + ccl_rpn_delete (p); + return NULL; + } + ADVANCE; + return p; + } + else + { + if (!(p = search_terms (cclp, ap))) + return NULL; + add_attr_numeric (p, attset, CCL_BIB1_REL, rel); + return p; + } + cclp->error_code = CCL_ERR_TERM_EXPECTED; + return NULL; +} + +static +struct ccl_rpn_node *qualifiers2 (CCL_parser cclp, struct ccl_rpn_attr **ap) +{ + char *attset; + struct ccl_rpn_node *p; + + if (qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_ORDER, &attset) + || qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_PORDER, &attset)) + return qualifiers_order(cclp, ap, attset); + + /* unordered relation */ + if (KIND != CCL_TOK_EQ) + { + cclp->error_code = CCL_ERR_EQ_EXPECTED; + return NULL; + } + ADVANCE; + if (KIND == CCL_TOK_LP) + { + ADVANCE; + if (!(p = find_spec (cclp, ap))) + { + return NULL; + } + if (KIND != CCL_TOK_RP) + { + cclp->error_code = CCL_ERR_RP_EXPECTED; + ccl_rpn_delete (p); + return NULL; + } + ADVANCE; + } + else + p = search_terms (cclp, ap); + return p; +} + +/** + * qualifiers1: Parse CCL qualifiers and search terms. + * cclp: CCL Parser + * la: Token pointer to RELATION token. + * qa: Qualifier attributes already applied. + * return: pointer to node(s); NULL on error. + */ +static struct ccl_rpn_node *qualifiers1 (CCL_parser cclp, struct ccl_token *la, + struct ccl_rpn_attr **qa) +{ + struct ccl_token *lookahead = cclp->look_token; + struct ccl_token *look_start = cclp->look_token; + struct ccl_rpn_attr **ap; + struct ccl_rpn_node *node = 0; + const char *field_str; + int no = 0; + int seq = 0; + int i; + int mode_merge = 1; +#if 0 + if (qa) + { + cclp->error_code = CCL_ERR_DOUBLE_QUAL; + return NULL; + } +#endif + for (lookahead = cclp->look_token; lookahead != la; + lookahead=lookahead->next) + no++; + if (qa) + for (i=0; qa[i]; i++) + no++; + ap = (struct ccl_rpn_attr **)xmalloc ((no ? (no+1) : 2) * sizeof(*ap)); + ccl_assert (ap); + + field_str = ccl_qual_search_special(cclp->bibset, "field"); + if (field_str) + { + if (!strcmp (field_str, "or")) + mode_merge = 0; + else if (!strcmp (field_str, "merge")) + mode_merge = 1; + } + if (!mode_merge) + { + /* consider each field separately and OR */ + lookahead = look_start; + while (lookahead != la) + { + ap[1] = 0; + seq = 0; + while ((ap[0] = ccl_qual_search (cclp, lookahead->name, + lookahead->len, seq)) != 0) + { + struct ccl_rpn_node *node_sub; + cclp->look_token = la; + + node_sub = qualifiers2(cclp, ap); + if (!node_sub) + { + ccl_rpn_delete (node); + xfree (ap); + return 0; + } + if (node) + { + struct ccl_rpn_node *node_this = mk_node(CCL_RPN_OR); + node_this->u.p[0] = node; + node_this->u.p[1] = node_sub; + node = node_this; + } + else + node = node_sub; + seq++; + } + if (seq == 0) + { + cclp->look_token = lookahead; + cclp->error_code = CCL_ERR_UNKNOWN_QUAL; + xfree (ap); + return NULL; + } + lookahead = lookahead->next; + if (lookahead->kind == CCL_TOK_COMMA) + lookahead = lookahead->next; + } + } + else + { + /* merge attributes from ALL fields - including inherited ones */ + while (1) + { + struct ccl_rpn_node *node_sub; + int found = 0; + lookahead = look_start; + for (i = 0; lookahead != la; i++) + { + ap[i] = ccl_qual_search (cclp, lookahead->name, + lookahead->len, seq); + if (ap[i]) + found++; + if (!ap[i] && seq > 0) + ap[i] = ccl_qual_search (cclp, lookahead->name, + lookahead->len, 0); + if (!ap[i]) + { + cclp->look_token = lookahead; + cclp->error_code = CCL_ERR_UNKNOWN_QUAL; + xfree (ap); + return NULL; + } + lookahead = lookahead->next; + if (lookahead->kind == CCL_TOK_COMMA) + lookahead = lookahead->next; + } + if (qa) + { + struct ccl_rpn_attr **qa0 = qa; + + while (*qa0) + ap[i++] = *qa0++; + } + ap[i] = NULL; + + if (!found) + break; + + cclp->look_token = lookahead; + + node_sub = qualifiers2(cclp, ap); + if (!node_sub) + { + ccl_rpn_delete (node); + break; + } + if (node) + { + struct ccl_rpn_node *node_this = mk_node(CCL_RPN_OR); + node_this->u.p[0] = node; + node_this->u.p[1] = node_sub; + node = node_this; + } + else + node = node_sub; + seq++; + } + } + xfree (ap); + return node; +} + + +/** + * search_terms: Parse CCL search terms - including proximity. + * cclp: CCL Parser + * qa: Qualifier attributes already applied. + * return: pointer to node(s); NULL on error. + */ +static struct ccl_rpn_node *search_terms (CCL_parser cclp, + struct ccl_rpn_attr **qa) +{ + static int list[] = { + CCL_TOK_TERM, CCL_TOK_COMMA,CCL_TOK_EQ, CCL_TOK_REL, CCL_TOK_SET, -1}; + struct ccl_rpn_node *p1, *p2, *pn; + p1 = search_term_x (cclp, qa, list, 1); + if (!p1) + return NULL; + while (1) + { + if (KIND == CCL_TOK_PROX) + { + struct ccl_rpn_node *p_prox = 0; + /* ! word order specified */ + /* % word order not specified */ + p_prox = mk_node(CCL_RPN_TERM); + p_prox->u.t.term = (char *) xmalloc(1 + cclp->look_token->len); + memcpy(p_prox->u.t.term, cclp->look_token->name, + cclp->look_token->len); + p_prox->u.t.term[cclp->look_token->len] = 0; + p_prox->u.t.attr_list = 0; + + ADVANCE; + p2 = search_term_x (cclp, qa, list, 1); + if (!p2) + { + ccl_rpn_delete (p1); + return NULL; + } + pn = mk_node (CCL_RPN_PROX); + pn->u.p[0] = p1; + pn->u.p[1] = p2; + pn->u.p[2] = p_prox; + p1 = pn; + } + else if (is_term_ok(KIND, list)) + { + p2 = search_term_x (cclp, qa, list, 1); + if (!p2) + { + ccl_rpn_delete (p1); + return NULL; + } + pn = mk_node (CCL_RPN_PROX); + pn->u.p[0] = p1; + pn->u.p[1] = p2; + pn->u.p[2] = 0; + p1 = pn; + } + else + break; + } + return p1; +} + +/** + * search_elements: Parse CCL search elements + * cclp: CCL Parser + * qa: Qualifier attributes already applied. + * return: pointer to node(s); NULL on error. + */ +static struct ccl_rpn_node *search_elements (CCL_parser cclp, + struct ccl_rpn_attr **qa) +{ + struct ccl_rpn_node *p1; + struct ccl_token *lookahead; + if (KIND == CCL_TOK_LP) + { + ADVANCE; + p1 = find_spec (cclp, qa); + if (!p1) + return NULL; + if (KIND != CCL_TOK_RP) + { + cclp->error_code = CCL_ERR_RP_EXPECTED; + ccl_rpn_delete (p1); + return NULL; + } + ADVANCE; + return p1; + } + else if (KIND == CCL_TOK_SET) + { + ADVANCE; + if (KIND == CCL_TOK_EQ) + ADVANCE; + if (KIND != CCL_TOK_TERM) + { + cclp->error_code = CCL_ERR_SETNAME_EXPECTED; + return NULL; + } + p1 = mk_node (CCL_RPN_SET); + p1->u.setname = copy_token_name (cclp->look_token); + ADVANCE; + return p1; + } + lookahead = cclp->look_token; + + while (lookahead->kind==CCL_TOK_TERM) + { + lookahead = lookahead->next; + if (lookahead->kind == CCL_TOK_REL || lookahead->kind == CCL_TOK_EQ) + return qualifiers1 (cclp, lookahead, qa); + if (lookahead->kind != CCL_TOK_COMMA) + break; + lookahead = lookahead->next; + } + if (qa) + return search_terms (cclp, qa); + else + { + struct ccl_rpn_attr *qa[2]; + struct ccl_rpn_node *node = 0; + int seq; + lookahead = cclp->look_token; + + qa[1] = 0; + for(seq = 0; ;seq++) + { + struct ccl_rpn_node *node_sub; + qa[0] = ccl_qual_search(cclp, "term", 4, seq); + if (!qa[0]) + break; + + cclp->look_token = lookahead; + + node_sub = search_terms (cclp, qa); + if (!node_sub) + { + ccl_rpn_delete (node); + return 0; + } + if (node) + { + struct ccl_rpn_node *node_this = mk_node(CCL_RPN_OR); + node_this->u.p[0] = node; + node_this->u.p[1] = node_sub; + node_this->u.p[2] = 0; + node = node_this; + } + else + node = node_sub; + } + if (!node) + node = search_terms (cclp, 0); + return node; + } +} + +/** + * find_spec: Parse CCL find specification + * cclp: CCL Parser + * qa: Qualifier attributes already applied. + * return: pointer to node(s); NULL on error. + */ +static struct ccl_rpn_node *find_spec (CCL_parser cclp, + struct ccl_rpn_attr **qa) +{ + struct ccl_rpn_node *p1, *p2, *pn; + if (!(p1 = search_elements (cclp, qa))) + return NULL; + while (1) + { + switch (KIND) + { + case CCL_TOK_AND: + ADVANCE; + p2 = search_elements (cclp, qa); + if (!p2) + { + ccl_rpn_delete (p1); + return NULL; + } + pn = mk_node (CCL_RPN_AND); + pn->u.p[0] = p1; + pn->u.p[1] = p2; + pn->u.p[2] = 0; + p1 = pn; + continue; + case CCL_TOK_OR: + ADVANCE; + p2 = search_elements (cclp, qa); + if (!p2) + { + ccl_rpn_delete (p1); + return NULL; + } + pn = mk_node (CCL_RPN_OR); + pn->u.p[0] = p1; + pn->u.p[1] = p2; + pn->u.p[2] = 0; + p1 = pn; + continue; + case CCL_TOK_NOT: + ADVANCE; + p2 = search_elements (cclp, qa); + if (!p2) + { + ccl_rpn_delete (p1); + return NULL; + } + pn = mk_node (CCL_RPN_NOT); + pn->u.p[0] = p1; + pn->u.p[1] = p2; + pn->u.p[2] = 0; + p1 = pn; + continue; + } + break; + } + return p1; +} + +struct ccl_rpn_node *ccl_parser_find (CCL_parser cclp, struct ccl_token *list) +{ + struct ccl_rpn_node *p; + + cclp->look_token = list; + p = find_spec (cclp, NULL); + if (p && KIND != CCL_TOK_EOL) + { + if (KIND == CCL_TOK_RP) + cclp->error_code = CCL_ERR_BAD_RP; + else + cclp->error_code = CCL_ERR_OP_EXPECTED; + ccl_rpn_delete (p); + p = NULL; + } + cclp->error_pos = cclp->look_token->name; + if (p) + cclp->error_code = CCL_ERR_OK; + else + cclp->error_code = cclp->error_code; + return p; +} + +/** + * ccl_find: Parse CCL find - token representation + * bibset: Bibset to be used for the parsing + * list: List of tokens + * error: Pointer to integer. Holds error no. on completion. + * pos: Pointer to char position. Holds approximate error position. + * return: RPN tree on successful completion; NULL otherwise. + */ +struct ccl_rpn_node *ccl_find (CCL_bibset bibset, struct ccl_token *list, + int *error, const char **pos) +{ + struct ccl_rpn_node *p; + CCL_parser cclp = ccl_parser_create (); + + cclp->bibset = bibset; + + p = ccl_parser_find (cclp, list); + + *error = cclp->error_code; + *pos = cclp->error_pos; + + ccl_parser_destroy (cclp); + + return p; +} + +/** + * ccl_find_str: Parse CCL find - string representation + * bibset: Bibset to be used for the parsing + * str: String to be parsed + * error: Pointer to integer. Holds error no. on completion. + * pos: Pointer to char position. Holds approximate error position. + * return: RPN tree on successful completion; NULL otherwise. + */ +struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str, + int *error, int *pos) +{ + CCL_parser cclp = ccl_parser_create (); + struct ccl_token *list; + struct ccl_rpn_node *p; + + cclp->bibset = bibset; + + list = ccl_parser_tokenize (cclp, str); + p = ccl_parser_find (cclp, list); + + *error = cclp->error_code; + if (*error) + *pos = cclp->error_pos - str; + ccl_parser_destroy (cclp); + ccl_token_del (list); + return p; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cclptree.c b/dependencies/yaz-2.1.28/src/cclptree.c new file mode 100644 index 0000000..e19be06 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclptree.c @@ -0,0 +1,282 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +/** + * \file cclptree.c + * \brief Implements CCL parse tree printing + * + * This source file implements functions to parse and print + * a CCL node tree (as a result of parsing). + */ + +/* CCL print rpn tree - infix notation + * Europagate, 1995 + * + * $Id: cclptree.c,v 1.6 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.6 1995/05/16 09:39:26 adam + * LICENSE. + * + * Revision 1.5 1995/02/23 08:31:59 adam + * Changed header. + * + * Revision 1.3 1995/02/15 17:42:16 adam + * Minor changes of the api of this module. FILE* argument added + * to ccl_pr_tree. + * + * Revision 1.2 1995/02/14 19:55:11 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * Node kind(s) in ccl_rpn_node have changed names. + * + * Revision 1.1 1995/02/14 10:25:56 adam + * The constructions 'qualifier rel term ...' implemented. + * + */ + +#include +#include +#include + +#include + +void fprintSpaces(int indent,FILE * fd_out) +{ + char buf[100]; + sprintf(buf,"%%%d.s",indent); + fprintf(fd_out,buf," "); +} + +void ccl_pr_tree_as_qrpn(struct ccl_rpn_node *rpn, FILE *fd_out, int indent) +{ + if(indent>0) + fprintSpaces(indent,fd_out); + switch (rpn->kind) + { + case CCL_RPN_TERM: + if (rpn->u.t.attr_list) + { + struct ccl_rpn_attr *attr; + for (attr = rpn->u.t.attr_list; attr; attr = attr->next) + { + if (attr->set) + fprintf(fd_out, "@attr %s ", attr->set); + else + fprintf(fd_out, "@attr "); + switch(attr->kind) + { + case CCL_RPN_ATTR_NUMERIC: + fprintf (fd_out, "%d=%d ", attr->type, + attr->value.numeric); + break; + case CCL_RPN_ATTR_STRING: + fprintf (fd_out, "%d=%s ", attr->type, + attr->value.str); + } + } + } + fprintf (fd_out, "\"%s\"\n", rpn->u.t.term); + break; + case CCL_RPN_AND: + fprintf (fd_out, "@and \n"); + ccl_pr_tree_as_qrpn (rpn->u.p[0], fd_out,indent+2); + ccl_pr_tree_as_qrpn (rpn->u.p[1], fd_out,indent+2); + break; + case CCL_RPN_OR: + fprintf (fd_out, "@or \n"); + ccl_pr_tree_as_qrpn (rpn->u.p[0], fd_out,indent+2); + ccl_pr_tree_as_qrpn (rpn->u.p[1], fd_out,indent+2); + break; + case CCL_RPN_NOT: + fprintf (fd_out, "@not "); + ccl_pr_tree_as_qrpn (rpn->u.p[0], fd_out,indent+2); + ccl_pr_tree_as_qrpn (rpn->u.p[1], fd_out,indent+2); + break; + case CCL_RPN_SET: + fprintf (fd_out, "set=%s ", rpn->u.setname); + break; + case CCL_RPN_PROX: + if (rpn->u.p[2] && rpn->u.p[2]->kind == CCL_RPN_TERM) + { + const char *cp = rpn->u.p[2]->u.t.term; + /* exlusion distance ordered relation which-code unit-code */ + if (*cp == '!') + { + /* word order specified */ + if (isdigit(((const unsigned char *) cp)[1])) + fprintf(fd_out, "@prox 0 %s 1 2 known 2", cp+1); + else + fprintf(fd_out, "@prox 0 1 1 2 known 2"); + } + else if (*cp == '%') + { + /* word order not specified */ + if (isdigit(((const unsigned char *) cp)[1])) + fprintf(fd_out, "@prox 0 %s 0 2 known 2", cp+1); + else + fprintf(fd_out, "@prox 0 1 0 2 known 2"); + } + } + ccl_pr_tree_as_qrpn (rpn->u.p[0], fd_out,indent+2); + ccl_pr_tree_as_qrpn (rpn->u.p[1], fd_out,indent+2); + break; + default: + fprintf(stderr,"Internal Error Unknown ccl_rpn node type %d\n",rpn->kind); + } +} + + +void ccl_pr_tree (struct ccl_rpn_node *rpn, FILE *fd_out) +{ + ccl_pr_tree_as_qrpn(rpn,fd_out,0); +} + + +static void ccl_pquery_complex (WRBUF w, struct ccl_rpn_node *p) +{ + switch (p->kind) + { + case CCL_RPN_AND: + wrbuf_puts(w, "@and "); + break; + case CCL_RPN_OR: + wrbuf_puts(w, "@or "); + break; + case CCL_RPN_NOT: + wrbuf_puts(w, "@not "); + break; + case CCL_RPN_PROX: + if (p->u.p[2] && p->u.p[2]->kind == CCL_RPN_TERM) + { + const char *cp = p->u.p[2]->u.t.term; + /* exlusion distance ordered relation which-code unit-code */ + if (*cp == '!') + { + /* word order specified */ + if (isdigit(((const unsigned char *) cp)[1])) + wrbuf_printf(w, "@prox 0 %s 1 2 k 2 ", cp+1); + else + wrbuf_printf(w, "@prox 0 1 1 2 k 2 "); + } + else if (*cp == '%') + { + /* word order not specified */ + if (isdigit(((const unsigned char *) cp)[1])) + wrbuf_printf(w, "@prox 0 %s 0 2 k 2 ", cp+1); + else + wrbuf_printf(w, "@prox 0 1 0 2 k 2 "); + } + } + else + wrbuf_puts(w, "@prox 0 2 0 1 k 2 "); + break; + default: + wrbuf_puts(w, "@ bad op (unknown) "); + } + ccl_pquery(w, p->u.p[0]); + ccl_pquery(w, p->u.p[1]); +} + +void ccl_pquery (WRBUF w, struct ccl_rpn_node *p) +{ + struct ccl_rpn_attr *att; + const char *cp; + + switch (p->kind) + { + case CCL_RPN_AND: + case CCL_RPN_OR: + case CCL_RPN_NOT: + case CCL_RPN_PROX: + ccl_pquery_complex (w, p); + break; + case CCL_RPN_SET: + wrbuf_puts (w, "@set "); + wrbuf_puts (w, p->u.setname); + wrbuf_puts (w, " "); + break; + case CCL_RPN_TERM: + for (att = p->u.t.attr_list; att; att = att->next) + { + char tmpattr[128]; + wrbuf_puts (w, "@attr "); + if (att->set) + { + wrbuf_puts (w, att->set); + wrbuf_puts (w, " "); + } + switch(att->kind) + { + case CCL_RPN_ATTR_NUMERIC: + sprintf(tmpattr, "%d=%d ", att->type, att->value.numeric); + wrbuf_puts (w, tmpattr); + break; + case CCL_RPN_ATTR_STRING: + sprintf(tmpattr, "%d=", att->type); + wrbuf_puts (w, tmpattr); + wrbuf_puts(w, att->value.str); + wrbuf_puts (w, " "); + break; + } + } + for (cp = p->u.t.term; *cp; cp++) + { + if (*cp == ' ' || *cp == '\\') + wrbuf_putc (w, '\\'); + wrbuf_putc (w, *cp); + } + wrbuf_puts (w, " "); + break; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cclqfile.c b/dependencies/yaz-2.1.28/src/cclqfile.c new file mode 100644 index 0000000..015115b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclqfile.c @@ -0,0 +1,303 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/** + * \file cclqfile.c + * \brief Implements parsing of CCL qualifier specs in files + */ +/* CCL qualifiers + * Europagate, 1995 + * + * $Id: cclqfile.c,v 1.7 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.3 1995/05/16 09:39:26 adam + * LICENSE. + * + * Revision 1.2 1995/05/11 14:03:56 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + * Revision 1.1 1995/04/17 09:31:45 adam + * Improved handling of qualifiers. Aliases or reserved words. + * + */ + +#include +#include +#include + +#include + +void ccl_qual_field (CCL_bibset bibset, const char *cp, const char *qual_name) +{ + char qual_spec[128]; + int type_ar[128]; + int value_ar[128]; + char *svalue_ar[128]; + char *attsets[128]; + int pair_no = 0; + + while (pair_no < 128) + { + char *qual_value, *qual_type; + char *split, *setp; + int no_scan = 0; + + if (sscanf (cp, "%100s%n", qual_spec, &no_scan) < 1) + break; + + if (!(split = strchr (qual_spec, '='))) + { + /* alias specification .. */ + if (pair_no == 0) + { + ccl_qual_add_combi (bibset, qual_name, cp); + return; + } + break; + } + /* [set,]type=value ... */ + cp += no_scan; + + *split++ = '\0'; + + setp = strchr (qual_spec, ','); + if (setp) + { + /* set,type=value ... */ + *setp++ = '\0'; + qual_type = setp; + } + else + { + /* type=value ... */ + qual_type = qual_spec; + } + while (pair_no < 128) + { + int type, value; + + qual_value = split; + if ((split = strchr (qual_value, ','))) + *split++ = '\0'; + + value = 0; + switch (qual_type[0]) + { + case 'u': + case 'U': + type = CCL_BIB1_USE; + break; + case 'r': + case 'R': + type = CCL_BIB1_REL; + if (!ccl_stricmp (qual_value, "o")) + value = CCL_BIB1_REL_ORDER; + else if (!ccl_stricmp (qual_value, "r")) + value = CCL_BIB1_REL_PORDER; + break; + case 'p': + case 'P': + type = CCL_BIB1_POS; + break; + case 's': + case 'S': + type = CCL_BIB1_STR; + if (!ccl_stricmp (qual_value, "pw")) + value = CCL_BIB1_STR_WP; + if (!ccl_stricmp (qual_value, "al")) + value = CCL_BIB1_STR_AND_LIST; + if (!ccl_stricmp (qual_value, "ol")) + value = CCL_BIB1_STR_OR_LIST; + break; + case 't': + case 'T': + type = CCL_BIB1_TRU; + if (!ccl_stricmp (qual_value, "l")) + value = CCL_BIB1_TRU_CAN_LEFT; + else if (!ccl_stricmp (qual_value, "r")) + value = CCL_BIB1_TRU_CAN_RIGHT; + else if (!ccl_stricmp (qual_value, "b")) + value = CCL_BIB1_TRU_CAN_BOTH; + else if (!ccl_stricmp (qual_value, "n")) + value = CCL_BIB1_TRU_CAN_NONE; + break; + case 'c': + case 'C': + type = CCL_BIB1_COM; + break; + default: + type = atoi (qual_type); + } + + type_ar[pair_no] = type; + + if (value) + { + value_ar[pair_no] = value; + svalue_ar[pair_no] = 0; + } + else if (*qual_value >= '0' && *qual_value <= '9') + { + value_ar[pair_no] = atoi (qual_value); + svalue_ar[pair_no] = 0; + } + else + { + size_t len; + if (split) + len = split - qual_value; + else + len = strlen(qual_value); + svalue_ar[pair_no] = (char *) xmalloc(len+1); + memcpy(svalue_ar[pair_no], qual_value, len); + svalue_ar[pair_no][len] = '\0'; + } + if (setp) + { + attsets[pair_no] = (char*) xmalloc (strlen(qual_spec)+1); + strcpy (attsets[pair_no], qual_spec); + } + else + attsets[pair_no] = 0; + pair_no++; + if (!split) + break; + } + } + ccl_qual_add_set (bibset, qual_name, pair_no, type_ar, value_ar, svalue_ar, + attsets); +} + +void ccl_qual_fitem (CCL_bibset bibset, const char *cp, const char *qual_name) +{ + if (*qual_name == '@') + ccl_qual_add_special(bibset, qual_name+1, cp); + else + ccl_qual_field(bibset, cp, qual_name); +} + +void ccl_qual_buf(CCL_bibset bibset, const char *buf) +{ + const char *cp1 = buf; + char line[256]; + while (1) + { + const char *cp2 = cp1; + int len; + while (*cp2 && !strchr("\r\n", *cp2)) + cp2++; + len = cp2 - cp1; + if (len > 0) + { + if (len >= (sizeof(line)-1)) + len = sizeof(line)-1; + memcpy(line, cp1, len); + line[len] = '\0'; + ccl_qual_line(bibset, line); + } + if (!*cp2) + break; + cp1 = cp2+1; + } +} + +void ccl_qual_line(CCL_bibset bibset, char *line) +{ + int no_scan = 0; + char qual_name[128]; + char *cp1, *cp = line; + + if (*cp == '#') + return; /* ignore lines starting with # */ + if (sscanf (cp, "%100s%n", qual_name, &no_scan) < 1) + return; /* also ignore empty lines */ + cp += no_scan; + cp1 = strchr(cp, '#'); + if (cp1) + *cp1 = '\0'; + ccl_qual_fitem (bibset, cp, qual_name); +} + +/* + * ccl_qual_file: Read bibset definition from file. + * bibset: Bibset + * inf: FILE pointer. + * + * Each line format is: + * = = .... + * Where is name of qualifier; + * = is a attribute definition pair where is one of: + * u(use), r(relation), p(position), t(truncation), c(completeness) + * or plain integer. + * is an integer or special pseudo-value. + */ +void ccl_qual_file (CCL_bibset bibset, FILE *inf) +{ + char line[256]; + + while (fgets (line, 255, inf)) + ccl_qual_line(bibset, line); +} + +int ccl_qual_fname (CCL_bibset bibset, const char *fname) +{ + FILE *inf; + inf = fopen (fname, "r"); + if (!inf) + return -1; + ccl_qual_file (bibset, inf); + fclose (inf); + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cclqual.c b/dependencies/yaz-2.1.28/src/cclqual.c new file mode 100644 index 0000000..12e5c14 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclqual.c @@ -0,0 +1,383 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/** + * \file cclqual.c + * \brief Implements CCL qualifier utilities + */ +/* CCL qualifiers + * Europagate, 1995 + * + * $Id: cclqual.c,v 1.3 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.9 1995/05/16 09:39:27 adam + * LICENSE. + * + * Revision 1.8 1995/05/11 14:03:57 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + * Revision 1.7 1995/04/17 09:31:46 adam + * Improved handling of qualifiers. Aliases or reserved words. + * + * Revision 1.6 1995/02/23 08:32:00 adam + * Changed header. + * + * Revision 1.4 1995/02/14 19:55:12 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * Node kind(s) in ccl_rpn_node have changed names. + * + * Revision 1.3 1995/02/14 16:20:56 adam + * Qualifiers are read from a file now. + * + * Revision 1.2 1995/02/14 10:25:56 adam + * The constructions 'qualifier rel term ...' implemented. + * + * Revision 1.1 1995/02/13 15:15:07 adam + * Added handling of qualifiers. Not finished yet. + * + */ + +#include +#include +#include + +#include + +/** Definition of CCL_bibset pointer */ +struct ccl_qualifiers { + struct ccl_qualifier *list; + struct ccl_qualifier_special *special; +}; + + +/** CCL Qualifier special */ +struct ccl_qualifier_special { + char *name; + char *value; + struct ccl_qualifier_special *next; +}; + + +static struct ccl_qualifier *ccl_qual_lookup (CCL_bibset b, + const char *n, size_t len) +{ + struct ccl_qualifier *q; + for (q = b->list; q; q = q->next) + if (len == strlen(q->name) && !memcmp (q->name, n, len)) + break; + return q; +} + + +void ccl_qual_add_special (CCL_bibset bibset, const char *n, const char *v) +{ + struct ccl_qualifier_special *p; + const char *pe; + + for (p = bibset->special; p && strcmp(p->name, n); p = p->next) + ; + if (p) + xfree (p->value); + else + { + p = (struct ccl_qualifier_special *) xmalloc (sizeof(*p)); + p->name = ccl_strdup (n); + p->value = 0; + p->next = bibset->special; + bibset->special = p; + } + while (strchr(" \t", *v)) + ++v; + for (pe = v + strlen(v); pe != v; --pe) + if (!strchr(" \n\r\t", pe[-1])) + break; + p->value = (char*) xmalloc (pe - v + 1); + if (pe - v) + memcpy (p->value, v, pe - v); + p->value[pe - v] = '\0'; +} + +static int next_token(const char **cpp, const char **dst) +{ + int len = 0; + const char *cp = *cpp; + while (*cp && strchr(" \r\n\t\f", *cp)) + cp++; + if (dst) + *dst = cp; + len = 0; + while (*cp && !strchr(" \r\n\t\f", *cp)) + { + cp++; + len++; + } + *cpp = cp; + return len; +} + +void ccl_qual_add_combi (CCL_bibset b, const char *n, const char *names) +{ + const char *cp, *cp1; + int i, len; + struct ccl_qualifier *q; + for (q = b->list; q && strcmp(q->name, n); q = q->next) + ; + if (q) + return ; + q = (struct ccl_qualifier *) xmalloc (sizeof(*q)); + q->name = ccl_strdup (n); + q->attr_list = 0; + q->next = b->list; + b->list = q; + + cp = names; + for (i = 0; next_token(&cp, 0); i++) + ; + q->no_sub = i; + q->sub = (struct ccl_qualifier **) xmalloc (sizeof(*q->sub) * + (1+q->no_sub)); + cp = names; + for (i = 0; (len = next_token(&cp, &cp1)); i++) + { + q->sub[i] = ccl_qual_lookup (b, cp1, len); + } +} + +/** + * ccl_qual_add: Add qualifier to Bibset. If qualifier already + * exists, then attributes are appendend to old + * definition. + * name: name of qualifier + * no: No of attribute type/value pairs. + * pairs: Attributes. pairs[0] first type, pair[1] first value, + * ... pair[2*no-2] last type, pair[2*no-1] last value. + */ + +void ccl_qual_add_set (CCL_bibset b, const char *name, int no, + int *type_ar, int *value_ar, char **svalue_ar, + char **attsets) +{ + struct ccl_qualifier *q; + struct ccl_rpn_attr **attrp; + + ccl_assert (b); + for (q = b->list; q; q = q->next) + if (!strcmp (name, q->name)) + break; + if (!q) + { + struct ccl_qualifier *new_qual = + (struct ccl_qualifier *)xmalloc (sizeof(*new_qual)); + ccl_assert (new_qual); + + new_qual->next = b->list; + b->list = new_qual; + + new_qual->name = ccl_strdup (name); + attrp = &new_qual->attr_list; + + new_qual->no_sub = 0; + new_qual->sub = 0; + } + else + { + if (q->sub) /* suspect.. */ + xfree (q->sub); + attrp = &q->attr_list; + while (*attrp) + attrp = &(*attrp)->next; + } + while (--no >= 0) + { + struct ccl_rpn_attr *attr; + + attr = (struct ccl_rpn_attr *)xmalloc (sizeof(*attr)); + ccl_assert (attr); + attr->set = *attsets++; + attr->type = *type_ar++; + if (*svalue_ar) + { + attr->kind = CCL_RPN_ATTR_STRING; + attr->value.str = *svalue_ar; + } + else + { + attr->kind = CCL_RPN_ATTR_NUMERIC; + attr->value.numeric = *value_ar; + } + svalue_ar++; + value_ar++; + *attrp = attr; + attrp = &attr->next; + } + *attrp = NULL; +} + +/** + * ccl_qual_mk: Make new (empty) bibset. + * return: empty bibset. + */ +CCL_bibset ccl_qual_mk (void) +{ + CCL_bibset b = (CCL_bibset)xmalloc (sizeof(*b)); + ccl_assert (b); + b->list = NULL; + b->special = NULL; + return b; +} + +/** + * ccl_qual_rm: Delete bibset. + * b: pointer to bibset + */ +void ccl_qual_rm (CCL_bibset *b) +{ + struct ccl_qualifier *q, *q1; + struct ccl_qualifier_special *sp, *sp1; + + if (!*b) + return; + for (q = (*b)->list; q; q = q1) + { + struct ccl_rpn_attr *attr, *attr1; + + for (attr = q->attr_list; attr; attr = attr1) + { + attr1 = attr->next; + if (attr->set) + xfree(attr->set); + if (attr->kind == CCL_RPN_ATTR_STRING) + xfree(attr->value.str); + xfree (attr); + } + q1 = q->next; + xfree (q->name); + if (q->sub) + xfree (q->sub); + xfree (q); + } + for (sp = (*b)->special; sp; sp = sp1) + { + sp1 = sp->next; + xfree (sp->name); + xfree (sp->value); + xfree (sp); + } + xfree (*b); + *b = NULL; +} + +/** + * ccl_qual_search: Search for qualifier in bibset. + * b: Bibset + * name: Name of qualifier to search for (need no null-termination) + * len: Length of name. + * return: Attribute info. NULL if not found. + */ +struct ccl_rpn_attr *ccl_qual_search (CCL_parser cclp, + const char *name, size_t len, + int seq) +{ + struct ccl_qualifier *q; + const char *aliases; + int case_sensitive = cclp->ccl_case_sensitive; + + ccl_assert (cclp); + if (!cclp->bibset) + return NULL; + + aliases = ccl_qual_search_special(cclp->bibset, "case"); + if (aliases) + case_sensitive = atoi(aliases); + + for (q = cclp->bibset->list; q; q = q->next) + if (strlen(q->name) == len) + { + if (case_sensitive) + { + if (!memcmp (name, q->name, len)) + break; + } + else + { + if (!ccl_memicmp (name, q->name, len)) + break; + } + } + if (q) + { + if (q->attr_list && seq == 0) + return q->attr_list; + if (seq < q->no_sub && q->sub[seq]) + { + return q->sub[seq]->attr_list; + } + } + return 0; +} + +const char *ccl_qual_search_special (CCL_bibset b, + const char *name) +{ + struct ccl_qualifier_special *q; + if (!b) + return 0; + for (q = b->special; q && strcmp(q->name, name); q = q->next) + ; + if (q) + return q->value; + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cclstr.c b/dependencies/yaz-2.1.28/src/cclstr.c new file mode 100644 index 0000000..9865651 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cclstr.c @@ -0,0 +1,122 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/** + * \file cclstr.c + * \brief Implements CCL string compare utilities + */ +/* CCL string compare utilities + * Europagate, 1995 + * + * $Id: cclstr.c,v 1.3 2005/06/25 15:46:03 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.3 1996/01/24 10:11:19 adam + * Added include of stdlib.h. + * + * Revision 1.2 1995/05/16 09:39:27 adam + * LICENSE. + * + * Revision 1.1 1995/05/11 14:03:57 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + */ +#include +#include +#include + +#include + +static int ccli_toupper (int c) +{ + return toupper (c); +} + +int (*ccl_toupper)(int c) = NULL; + +int ccl_stricmp (const char *s1, const char *s2) +{ + if (!ccl_toupper) + ccl_toupper = ccli_toupper; + while (*s1 && *s2) + { + int c1, c2; + c1 = (*ccl_toupper)(*s1); + c2 = (*ccl_toupper)(*s2); + if (c1 != c2) + return c1 - c2; + s1++; + s2++; + } + return (*ccl_toupper)(*s1) - (*ccl_toupper)(*s2); +} + +int ccl_memicmp (const char *s1, const char *s2, size_t n) +{ + if (!ccl_toupper) + ccl_toupper = ccli_toupper; + while (1) + { + int c1, c2; + + c1 = (*ccl_toupper)(*s1); + c2 = (*ccl_toupper)(*s2); + if (n <= 1 || c1 != c2) + return c1 - c2; + s1++; + s2++; + --n; + } +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ccltoken.c b/dependencies/yaz-2.1.28/src/ccltoken.c new file mode 100644 index 0000000..f888a8d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ccltoken.c @@ -0,0 +1,394 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/** + * \file ccltoken.c + * \brief Implements CCL lexical analyzer (scanner) + */ +/* CCL - lexical analysis + * Europagate, 1995 + * + * $Id: ccltoken.c,v 1.9 2005/08/22 20:34:21 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.10 1995/07/11 12:28:31 adam + * New function: ccl_token_simple (split into simple tokens) and + * ccl_token_del (delete tokens). + * + * Revision 1.9 1995/05/16 09:39:28 adam + * LICENSE. + * + * Revision 1.8 1995/05/11 14:03:57 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + * Revision 1.7 1995/04/19 12:11:24 adam + * Minor change. + * + * Revision 1.6 1995/04/17 09:31:48 adam + * Improved handling of qualifiers. Aliases or reserved words. + * + * Revision 1.5 1995/02/23 08:32:00 adam + * Changed header. + * + * Revision 1.3 1995/02/15 17:42:16 adam + * Minor changes of the api of this module. FILE* argument added + * to ccl_pr_tree. + * + * Revision 1.2 1995/02/14 19:55:13 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * Node kind(s) in ccl_rpn_node have changed names. + * + * Revision 1.1 1995/02/13 12:35:21 adam + * First version of CCL. Qualifiers aren't handled yet. + * + */ + +#include +#include +#include + +#include + +/* + * token_cmp: Compare token with keyword(s) + * kw: Keyword list. Each keyword is separated by space. + * token: CCL token. + * return: 1 if token string matches one of the keywords in list; + * 0 otherwise. + */ +static int token_cmp (CCL_parser cclp, const char *kw, struct ccl_token *token) +{ + const char *cp1 = kw; + const char *cp2; + const char *aliases; + int case_sensitive = cclp->ccl_case_sensitive; + + aliases = ccl_qual_search_special(cclp->bibset, "case"); + if (aliases) + case_sensitive = atoi(aliases); + if (!kw) + return 0; + while ((cp2 = strchr (cp1, ' '))) + { + if (token->len == (size_t) (cp2-cp1)) + { + if (case_sensitive) + { + if (!memcmp (cp1, token->name, token->len)) + return 1; + } + else + { + if (!ccl_memicmp (cp1, token->name, token->len)) + return 1; + } + } + cp1 = cp2+1; + } + if (case_sensitive) + return token->len == strlen(cp1) + && !memcmp (cp1, token->name, token->len); + return token->len == strlen(cp1) && + !ccl_memicmp (cp1, token->name, token->len); +} + +/* + * ccl_tokenize: tokenize CCL command string. + * return: CCL token list. + */ +struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command) +{ + const char *aliases; + const unsigned char *cp = (const unsigned char *) command; + struct ccl_token *first = NULL; + struct ccl_token *last = NULL; + + while (1) + { + const unsigned char *cp0 = cp; + while (*cp && strchr (" \t\r\n", *cp)) + cp++; + if (!first) + { + first = last = (struct ccl_token *)xmalloc (sizeof (*first)); + ccl_assert (first); + last->prev = NULL; + } + else + { + last->next = (struct ccl_token *)xmalloc (sizeof(*first)); + ccl_assert (last->next); + last->next->prev = last; + last = last->next; + } + last->ws_prefix_buf = (const char *) cp0; + last->ws_prefix_len = cp - cp0; + last->next = NULL; + last->name = (const char *) cp; + last->len = 1; + switch (*cp++) + { + case '\0': + last->kind = CCL_TOK_EOL; + return first; + case '(': + last->kind = CCL_TOK_LP; + break; + case ')': + last->kind = CCL_TOK_RP; + break; + case ',': + last->kind = CCL_TOK_COMMA; + break; + case '%': + case '!': + last->kind = CCL_TOK_PROX; + while (isdigit(*cp)) + { + ++ last->len; + cp++; + } + break; + case '>': + case '<': + case '=': + if (*cp == '=' || *cp == '<' || *cp == '>') + { + cp++; + last->kind = CCL_TOK_REL; + ++ last->len; + } + else if (cp[-1] == '=') + last->kind = CCL_TOK_EQ; + else + last->kind = CCL_TOK_REL; + break; + case '\"': + last->kind = CCL_TOK_TERM; + last->name = (const char *) cp; + last->len = 0; + while (*cp && *cp != '\"') + { + cp++; + ++ last->len; + } + if (*cp == '\"') + cp++; + break; + default: + if (!strchr ("(),%!><= \t\n\r", cp[-1])) + { + while (*cp && !strchr ("(),%!><= \t\n\r", *cp)) + { + cp++; + ++ last->len; + } + } + last->kind = CCL_TOK_TERM; + + aliases = ccl_qual_search_special(cclp->bibset, "and"); + if (!aliases) + aliases = cclp->ccl_token_and; + if (token_cmp (cclp, aliases, last)) + last->kind = CCL_TOK_AND; + + aliases = ccl_qual_search_special(cclp->bibset, "or"); + if (!aliases) + aliases = cclp->ccl_token_or; + if (token_cmp (cclp, aliases, last)) + last->kind = CCL_TOK_OR; + + aliases = ccl_qual_search_special(cclp->bibset, "not"); + if (!aliases) + aliases = cclp->ccl_token_not; + if (token_cmp (cclp, aliases, last)) + last->kind = CCL_TOK_NOT; + + aliases = ccl_qual_search_special(cclp->bibset, "set"); + if (!aliases) + aliases = cclp->ccl_token_set; + + if (token_cmp (cclp, aliases, last)) + last->kind = CCL_TOK_SET; + } + } + return first; +} + +struct ccl_token *ccl_token_add (struct ccl_token *at) +{ + struct ccl_token *n = (struct ccl_token *)xmalloc (sizeof(*n)); + ccl_assert(n); + n->next = at->next; + n->prev = at; + at->next = n; + if (n->next) + n->next->prev = n; + + n->kind = CCL_TOK_TERM; + n->name = 0; + n->len = 0; + n->ws_prefix_buf = 0; + n->ws_prefix_len = 0; + return n; +} + +struct ccl_token *ccl_tokenize (const char *command) +{ + CCL_parser cclp = ccl_parser_create (); + struct ccl_token *list; + + list = ccl_parser_tokenize (cclp, command); + + ccl_parser_destroy (cclp); + return list; +} + +/* + * ccl_token_del: delete CCL tokens + */ +void ccl_token_del (struct ccl_token *list) +{ + struct ccl_token *list1; + + while (list) + { + list1 = list->next; + xfree (list); + list = list1; + } +} + +char *ccl_strdup (const char *str) +{ + int len = strlen(str); + char *p = (char*) xmalloc (len+1); + strcpy (p, str); + return p; +} + +CCL_parser ccl_parser_create (void) +{ + CCL_parser p = (CCL_parser)xmalloc (sizeof(*p)); + if (!p) + return p; + p->look_token = NULL; + p->error_code = 0; + p->error_pos = NULL; + p->bibset = NULL; + + p->ccl_token_and = ccl_strdup("and"); + p->ccl_token_or = ccl_strdup("or"); + p->ccl_token_not = ccl_strdup("not andnot"); + p->ccl_token_set = ccl_strdup("set"); + p->ccl_case_sensitive = 1; + + return p; +} + +void ccl_parser_destroy (CCL_parser p) +{ + if (!p) + return; + xfree (p->ccl_token_and); + xfree (p->ccl_token_or); + xfree (p->ccl_token_not); + xfree (p->ccl_token_set); + xfree (p); +} + +void ccl_parser_set_op_and (CCL_parser p, const char *op) +{ + if (p && op) + { + if (p->ccl_token_and) + xfree (p->ccl_token_and); + p->ccl_token_and = ccl_strdup (op); + } +} + +void ccl_parser_set_op_or (CCL_parser p, const char *op) +{ + if (p && op) + { + if (p->ccl_token_or) + xfree (p->ccl_token_or); + p->ccl_token_or = ccl_strdup (op); + } +} +void ccl_parser_set_op_not (CCL_parser p, const char *op) +{ + if (p && op) + { + if (p->ccl_token_not) + xfree (p->ccl_token_not); + p->ccl_token_not = ccl_strdup (op); + } +} +void ccl_parser_set_op_set (CCL_parser p, const char *op) +{ + if (p && op) + { + if (p->ccl_token_set) + xfree (p->ccl_token_set); + p->ccl_token_set = ccl_strdup (op); + } +} + +void ccl_parser_set_case (CCL_parser p, int case_sensitivity_flag) +{ + if (p) + p->ccl_case_sensitive = case_sensitivity_flag; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/charconv.tcl b/dependencies/yaz-2.1.28/src/charconv.tcl new file mode 100755 index 0000000..42d5644 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/charconv.tcl @@ -0,0 +1,407 @@ +#!/bin/sh +# the next line restarts using tclsh \ +if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi +# +# $Id: charconv.tcl,v 1.17 2006/08/30 20:40:18 adam Exp $ + +proc usage {} { + puts {charconv.tcl: [-p prefix] [-s split] [-o ofile] file ... } + exit 1 +} + +proc preamble_trie {ofilehandle ifiles ofile} { + set f $ofilehandle + + set totype {unsigned } + + puts $f "/** \\file $ofile" + puts $f " \\brief Character conversion, generated from [lindex $ifiles 0]" + puts $f "" + puts $f " Generated automatically by charconv.tcl" + puts $f "*/" + puts $f "\#include " + puts $f " + struct yaz_iconv_trie_flat { + char from\[6\]; + unsigned combining : 1; + $totype to : 24; + }; + struct yaz_iconv_trie_dir { + int ptr : 15; + unsigned combining : 1; + $totype to : 24; + }; + + struct yaz_iconv_trie { + struct yaz_iconv_trie_flat *flat; + struct yaz_iconv_trie_dir *dir; + }; + " + puts $f { + static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, + size_t inbytesleft, size_t *no_read, int *combining) + { + struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; + if (!t || inbytesleft < 1) + return 0; + if (t->dir) + { + size_t ch = inp[0] & 0xff; + unsigned long code = + lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); + if (code) + { + (*no_read)++; + return code; + } + if (t->dir[ch].to) + { + code = t->dir[ch].to; + *combining = t->dir[ch].combining; + *no_read = 1; + return code; + } + } + else + { + struct yaz_iconv_trie_flat *flat = t->flat; + while (flat->to) + { + size_t len = strlen(flat->from); + if (len <= inbytesleft) + { + if (memcmp(flat->from, inp, len) == 0) + { + *no_read = len; + *combining = flat->combining; + return flat->to; + } + } + flat++; + } + } + return 0; + } + } +} + +proc reset_trie {} { + global trie + + foreach x [array names trie] { + unset trie($x) + } + + set trie(no) 1 + set trie(size) 0 + set trie(max) 0 + set trie(split) 50 + set trie(prefix) {} +} + +proc ins_trie {from to combining codename} { + global trie + if {![info exists trie(no)]} { + set trie(no) 1 + set trie(size) 0 + set trie(max) 0 + } + if {$trie(max) < $to} { + set trie(max) $to + } + incr trie(size) + ins_trie_r [split $from] $to $combining $codename 0 +} + +proc split_trie {this} { + global trie + set trie($this,type) d + foreach e $trie($this,content) { + set from [lindex $e 0] + set to [lindex $e 1] + set combining [lindex $e 2] + set codename [lindex $e 3] + + set ch [lindex $from 0] + set rest [lrange $from 1 end] + + if {[llength $rest]} { + if {![info exist trie($this,ptr,$ch)]} { + set trie($this,ptr,$ch) $trie(no) + incr trie(no) + } + ins_trie_r $rest $to $combining $codename $trie($this,ptr,$ch) + } else { + set trie($this,to,$ch) $to + set trie($this,combining,$ch) $combining + set trie($this,codename,$ch) $codename + } + } + set trie($this,content) missing +} + +proc ins_trie_r {from to combining codename this} { + global trie + + if {![info exist trie($this,type)]} { + set trie($this,type) f + } + if {$trie($this,type) == "f"} { + lappend trie($this,content) [list $from $to $combining $codename] + + # split ? + if {[llength $trie($this,content)] > $trie(split)} { + split_trie $this + return [ins_trie_r $from $to $combining $codename $this] + } + } else { + set ch [lindex $from 0] + set rest [lrange $from 1 end] + + if {[llength $rest]} { + if {![info exist trie($this,ptr,$ch)]} { + set trie($this,ptr,$ch) $trie(no) + incr trie(no) + } + ins_trie_r $rest $to $combining $codename $trie($this,ptr,$ch) + } else { + if {![info exist trie($this,to,$ch)]} { + set trie($this,to,$ch) $to + set trie($this,combining,$ch) $combining + set trie($this,codename,$ch) $codename + } + } + } +} + +proc dump_trie {ofilehandle} { + global trie + + set f $ofilehandle + + puts $f "/* TRIE: size $trie(size) */" + + set this $trie(no) + while { [incr this -1] >= 0 } { + puts $f "/* PAGE $this */" + if {$trie($this,type) == "f"} { + puts $f "struct yaz_iconv_trie_flat $trie(prefix)page${this}_flat\[\] = \{" + foreach m $trie($this,content) { + puts -nonewline $f " \{\"" + foreach d [lindex $m 0] { + puts -nonewline $f "\\x$d" + } + puts -nonewline $f "\", [lindex $m 2], 0x[lindex $m 1]" + set v [lindex $m 3] + puts $f "\}, /* $v */" + } + puts $f " \{\"\", 0\}" + puts $f "\};" + puts $f "struct yaz_iconv_trie $trie(prefix)page${this} = \{" + puts $f " $trie(prefix)page${this}_flat, 0" + puts $f "\};" + } else { + puts $f "struct yaz_iconv_trie_dir $trie(prefix)page${this}_dir\[256\] = \{" + for {set i 0} {$i < 256} {incr i} { + puts -nonewline $f " \{" + set ch [format %02X $i] + set null 1 + if {[info exist trie($this,ptr,$ch)]} { + puts -nonewline $f "[expr $trie($this,ptr,$ch)+1], " + set null 0 + } else { + puts -nonewline $f "0, " + } + if {[info exist trie($this,combining,$ch)]} { + puts -nonewline $f "$trie($this,combining,$ch), " + } else { + puts -nonewline $f "0, " + } + if {[info exist trie($this,to,$ch)]} { + puts -nonewline $f "0x$trie($this,to,$ch)\}" + set null 0 + } else { + puts -nonewline $f "0\}" + } + if {[info exist trie($this,codename,$ch)]} { + set v $trie($this,codename,$ch) + puts -nonewline $f " /* $v */" + } + if {$i < 255} { + puts $f "," + } else { + puts $f "" + } + } + puts $f "\};" + puts $f "struct yaz_iconv_trie $trie(prefix)page${this} = \{" + puts $f " 0, $trie(prefix)page${this}_dir" + puts $f "\};" + } + } + + puts $f "struct yaz_iconv_trie *$trie(prefix)ptrs \[\] = {" + for {set this 0} {$this < $trie(no)} {incr this} { + puts $f " &$trie(prefix)page$this," + } + puts $f "0, };" + puts $f "" + + puts $f "unsigned long yaz_$trie(prefix)_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup($trie(prefix)ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + " +} + +proc readfile {fname ofilehandle prefix omits reverse} { + global trie + + set marc_lines 0 + set ucs_lines 0 + set utf_lines 0 + set codename_lines 0 + set lineno 0 + set f [open $fname r] + set tablenumber x + set combining 0 + set codename {} + while {1} { + incr lineno + set cnt [gets $f line] + if {$cnt < 0} { + break + } + if {[regexp {} $line s]} { + reset_trie + set trie(prefix) "${prefix}" + } elseif {[regexp {} $line s]} { + dump_trie $ofilehandle + } elseif {[regexp {([0-9A-Fa-f]*)} $line s hex ucs]} { + ins_trie $hex $ucs $combining {} + unset hex + } elseif {[regexp {} $line s]} { + if {[lsearch $omits $tablenumber] == -1} { + dump_trie $ofilehandle + } + } elseif {[regexp {} $line s]} { + if {[string length $ucs]} { + if {$reverse} { + for {set i 0} {$i < [string length $utf]} {incr i 2} { + lappend hex [string range $utf $i [expr $i+1]] + } + # puts "ins_trie $hex $marc + ins_trie $hex $marc $combining $codename + unset hex + } else { + for {set i 0} {$i < [string length $marc]} {incr i 2} { + lappend hex [string range $marc $i [expr $i+1]] + } + # puts "ins_trie $hex $ucs" + ins_trie $hex $ucs $combining $codename + unset hex + } + } + set marc {} + set uni {} + set codename {} + set combining 0 + } elseif {[regexp {([0-9A-Fa-f]*)} $line s marc]} { + incr marc_lines + } elseif {[regexp {(.*)} $line s codename]} { + incr codename_lines + } elseif {[regexp {(.*)} $line s codename]} { + incr codename_lines + incr lineno + set cnt [gets $f line] + if {$cnt < 0} { + break + } + if {[regexp {(.*)} $line s codename_ex]} { + set codename "${codename} ${codename_ex}" + } + } elseif {[regexp {true} $line s]} { + set combining 1 + } elseif {[regexp {([0-9A-Fa-f]*)} $line s ucs]} { + incr ucs_lines + } elseif {[regexp {([0-9A-Fa-f]*)} $line s utf]} { + incr utf_lines + } + } + close $f +} + +set verbose 0 +set ifile {} +set ofile out.c +set prefix {c} +set reverse_map 0 +# Parse command line +set l [llength $argv] +set i 0 +set omits {} +while {$i < $l} { + set arg [lindex $argv $i] + switch -glob -- $arg { + -v { + incr verbose + } + -s { + if {[string length $arg]} { + set arg [lindex $argv [incr i]] + } + set trie(split) $arg + } + -p { + if {[string length $arg]} { + set arg [lindex $argv [incr i]] + } + set prefix $arg + } + -o { + if {[string length $arg]} { + set arg [lindex $argv [incr i]] + } + set ofile $arg + } + -O { + if {[string length $arg]} { + set arg [lindex $argv [incr i]] + } + lappend omits $arg + } + -r { + set reverse_map 1 + } + default { + lappend ifiles $arg + } + } + incr i +} +if {![info exists ifiles]} { + puts "charconv.tcl: missing input file(s)" + usage +} + +set ofilehandle [open $ofile w] +preamble_trie $ofilehandle $ifiles $ofile + +foreach ifile $ifiles { + readfile $ifile $ofilehandle $prefix $omits $reverse_map +} +close $ofilehandle + + diff --git a/dependencies/yaz-2.1.28/src/charneg-3.asn b/dependencies/yaz-2.1.28/src/charneg-3.asn new file mode 100644 index 0000000..d178e3a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/charneg-3.asn @@ -0,0 +1,212 @@ +NegotiationRecordDefinition-charSetandLanguageNegotiation-3 +{Z39-50-negotiationRecordDefinition CharSetandLanguageNegotiation-3 (3)} +DEFINITIONS ::= BEGIN +IMPORTS LanguageCode FROM RecordSyntax-explain; + +CharSetandLanguageNegotiation ::= CHOICE{ + proposal [1] IMPLICIT OriginProposal, + response [2] IMPLICIT TargetResponse} +-- +-- For character sets: +-- Origin proposes one, two, or all three of the following, in order of +-- preference: +-- (a) 2022 character sets. +-- (b) 10646 character set. +-- (c) Private character set. +-- +-- The target responds with one of (a), (b), or (c), indicating the +-- character set(s) to be supported for all name and message strings. +-- +-- If the origin includes (a), +-- the origin proposes: +-- (1) A proposed environment: 7-bit, 8-bit, or no-preference. +-- (2) A set of iso 2022 registration numbers. +-- (3) One or more proposed initial sets of registration numbers, +-- for c0, c1, g0, g1, g2 and g3. These must come from (2). +-- (4) The proposed encoding level. +-- And if the target selects (a), it responds with: +-- (1) A selected environment: 7-bit or 8-bit. +-- (2) A subset of the set of iso 2022 registration numbers proposed +-- by the origin. +-- (3) The initial set of registrations, which must come from (2) +-- but need not be from the set of initial registrations proposed +-- by the origin. +-- (4) The encoding level; less than or equal to that proposed. +-- +-- If the origin includes (b), +-- The origin proposes: +-- (1) (optionally) A list of collections (i.e. subsets of characters from the +-- complete 10646 definition). +-- (2) An implementation level. +-- (3) Syntax/form: e.g. ucs-2, ucs-4, utf-8, utf-16. +-- And if the target selects (b), it responds by choosing a subset of the +-- collections proposed by the origin in (1) and an implementation level less +-- than or equal to that proposed by the origin in (2). +-- +-- If the origin includes (c), the origin proposes one of the following: +-- (1) A list of private character sets, by one or more object +-- identifiers. +-- (2) A list of private character sets, by an EXTERNAL. +-- (3) An indication to use a private, previously agreed upon +-- character set. +-- And if the target selects (c): +-- - If the origin proposed (1), the target should respond with (1), and +-- the list of object identifiers should be a subset of the list that +-- the origin included. +-- - If the origin proposed (2), the target should respond with (2), using +-- the same EXTERNAL definition (but not necessarily the same content) +-- used by the origin. +-- - If the origin proposed (3), the target should respond with (3). +-- +-- For Languages: +-- The origin optionally proposes one or more language codes. The target +-- response may include a single language code, which indicates the +-- language to be used for all message strings. The target may include or +-- omit this, whether or not the origin included a proposed set, and the +-- language code indicated need not be from among those proposed. +-- +-- + +OriginProposal ::= SEQUENCE { + proposedCharSets [1] IMPLICIT SEQUENCE OF CHOICE{ + -- Each should occur at most once, and in order of preference + -- (the "order of preference" is the reason why this is + -- "SEQUENCE OF CHOICE" rather than just "SEQUENCE") + iso2022 [1] Iso2022, + iso10646 [2] IMPLICIT Iso10646, + private [3] PrivateCharacterSet} OPTIONAL, + -- proposedCharSets must be omitted + -- if origin proposes version 2 + proposedlanguages [2] IMPLICIT SEQUENCE OF LanguageCode OPTIONAL, + recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL + -- default 'false'. See rule 6 above. + } + +TargetResponse ::= SEQUENCE{ + selectedCharSets [1] CHOICE{ + iso2022 [1] Iso2022, + iso10646 [2] IMPLICIT Iso10646, + private [3] PrivateCharacterSet, + none [4] IMPLICIT NULL + -- If selected, no negotiation + -- is assumed to be in force + -- for character sets. + } OPTIONAL, + -- Omitted if and only if proposedCharSets + -- was Omitted in the request. + selectedLanguage [2] IMPLICIT LanguageCode OPTIONAL, + recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL + -- Omitted if and only if 'recordsInSelectedCharSets' was omitted + -- in the request. See rule 6 above. + } + + +PrivateCharacterSet ::= CHOICE{ + viaOid [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, + externallySpecified [2] IMPLICIT EXTERNAL, + previouslyAgreedUpon [3] IMPLICIT NULL} + +-- IMPORTED +-- LanguageCode ::= GeneralString -- from ANSI Z39.53-1994 + +-- Definition of ISO2022 +-- For ISO 2022, the following is negotiated: +-- 1) The environment: 7-bit or 8-bit; +-- 2) a set of registration numbers (from the ISO Register of coded +-- character sets) for graphical and control character sets; +-- 3) g0, g1, g2, g3, c0, c1, the registration numbers of the graphical and +-- control character sets that are initially designated to g0, g1, etc. +-- The origin submits one or more sequences of values for +-- g0, g1, g2, g3, c0, c1 (for each sequence: at least one of +-- g0 and g1 must be included; g2 and g3 are optional and +-- may be included only if g1 is included; +-- c0 should be included; and c1 is optional); the target +-- selects one of the proposed sequences. +-- 4) gleft: which of g0, g1, g2 or g3, initially has GL shift status in +-- an 8-bit environment or has shift status in a 7-bit environment; and +-- 5) gright: which of g1, g2 or g3 initially has GR shift status in an +-- 8-bit environment. + +Iso2022 ::= CHOICE{ + originProposal [1] IMPLICIT SEQUENCE{ + proposedEnvironment [0] Environment OPTIONAL, + -- omitted means no preference + proposedSets [1] IMPLICIT SEQUENCE OF INTEGER, + proposedInitialSets [2] IMPLICIT SEQUENCE OF + InitialSet, + proposedLeftAndRight [3] IMPLICIT LeftAndRight}, + targetResponse [2] IMPLICIT SEQUENCE{ + selectedEnvironment [0] Environment, + selectedSets [1] IMPLICIT SEQUENCE OF INTEGER, + selectedinitialSet [2] IMPLICIT InitialSet, + selectedLeftAndRight [3] IMPLICIT LeftAndRight}} + +Environment ::= CHOICE{ + sevenBit [1] IMPLICIT NULL, + eightBit [2] IMPLICIT NULL} + +InitialSet::= SEQUENCE{ + g0 [0] IMPLICIT INTEGER OPTIONAL, + g1 [1] IMPLICIT INTEGER OPTIONAL, + -- one of g0 and g1 must be included + g2 [2] IMPLICIT INTEGER OPTIONAL, + g3 [3] IMPLICIT INTEGER OPTIONAL, + --g2 and/or g3 may be included + -- only if g1 was included + c0 [4] IMPLICIT INTEGER, + c1 [5] IMPLICIT INTEGER OPTIONAL} + +LeftAndRight ::= SEQUENCE{ + gLeft [3] IMPLICIT INTEGER{ + g0 (0), + g1 (1), + g2 (2), + g3 (3)}, + gRight [4] IMPLICIT INTEGER{ + g1 (1), + g2 (2), + g3 (3)} OPTIONAL} + +-- Definition of Iso10646 +-- +-- The 10646 object identifier looks like: +-- 1.0.10646.1.implementationLevel.repertoireSubset.arc1.arc2. .... +-- +-- (The second '1' is for "part 1" of 10646.) +-- +-- ImplementationLevel is 1-3 +-- +-- repertoireSubset is 0 or 1, for 'all' or 'collections'. +-- The arcs are present only if repertoireSubset is 'collections', +-- in which case arc1, arc2, etc., are the +-- identifiers of collections of character repertoires. +-- +-- There is a second 10646 oid, for specifying syntax/form: +-- 1.0.10646.1.0.form +-- +-- (The second '0' represents "transfer syntax".) +-- +-- where values of form include: +-- 2: ucs-2 +-- 4: ucs-4 +-- 5: utf-16 +-- 8: utf-8 + +Iso10646 ::= SEQUENCE{ + collections [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + --oid of form 1.0.10646.1.implementationLevel + -- .repertoireSubset.arc1.arc2. .... + -- Target to choose a subset of the collections + -- proposed by the origin, and an implementation level + -- less than or equal to that proposed. + -- + -- when 'collections' is omitted, + -- 'implementationLevel' defaults to 3. + -- + encodingLevel [2] IMPLICIT OBJECT IDENTIFIER + -- oid of form 1.0.10646.1.0.form + -- where value of 'form' is 2, 4, 5, or 8 + -- for ucs-2, ucs-4, utf-16, utf-8 + } +END + diff --git a/dependencies/yaz-2.1.28/src/charneg.c b/dependencies/yaz-2.1.28/src/charneg.c new file mode 100644 index 0000000..af3b0ce --- /dev/null +++ b/dependencies/yaz-2.1.28/src/charneg.c @@ -0,0 +1,453 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: charneg.c,v 1.6 2006/03/31 09:51:22 adam Exp $ + */ + +/** + * \file charneg.c + * \brief Implements Z39.50 Charset negotiation utilities + * + * Helper functions for Character Set and Language Negotiation - 3 + */ +#include +#include +#include +#include +#include + +static Z_External* z_ext_record2(ODR o, int oid_class, int oid_value, + const char *buf) +{ + Z_External *p; + oident oid; + int len = strlen(buf); + + if (!(p = (Z_External *)odr_malloc(o, sizeof(*p)))) return 0; + + p->descriptor = 0; + p->indirect_reference = 0; + + oid.proto = PROTO_Z3950; + oid.oclass = (enum oid_class) oid_class; + oid.value = (enum oid_value) oid_value; + p->direct_reference = odr_oiddup(o, oid_getoidbyent(&oid)); + + p->which = Z_External_octet; + if (!(p->u.octet_aligned = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)))) { + return 0; + } + if (!(p->u.octet_aligned->buf = (unsigned char *)odr_malloc(o, len))) { + return 0; + } + p->u.octet_aligned->len = p->u.octet_aligned->size = len; + memcpy(p->u.octet_aligned->buf, buf, len); + + return p; +} + +static int get_form(const char *charset) +{ + int form = -1; + + + if (!yaz_matchstr(charset, "UCS-2")) + form = 2; + if (!yaz_matchstr(charset, "UCS-4")) + form = 4; + if (!yaz_matchstr(charset, "UTF-16")) + form = 5; + if (!yaz_matchstr(charset, "UTF-8")) + form = 8; + + return form; +} + +static char *set_form (Odr_oid *encoding) +{ + static char *charset = 0; + if ( oid_oidlen(encoding) != 6) + return 0; + if (encoding[5] == 2) + charset = "UCS-2"; + if (encoding[5] == 4) + charset = "UCS-4"; + if (encoding[5] == 5) + charset = "UTF-16"; + if (encoding[5] == 8) + charset = "UTF-8"; + return charset; +} + +static Z_OriginProposal_0 *z_get_OriginProposal_0(ODR o, const char *charset) +{ + int form = get_form (charset); + Z_OriginProposal_0 *p0 = + (Z_OriginProposal_0*)odr_malloc(o, sizeof(*p0)); + + memset(p0, 0, sizeof(*p0)); + + if (form > 0) + { /* ISO 10646 (UNICODE) */ + char oidname[20]; + + Z_Iso10646 *is = (Z_Iso10646 *) odr_malloc (o, sizeof(*is)); + p0->which = Z_OriginProposal_0_iso10646; + p0->u.iso10646 = is; + is->collections = 0; + sprintf (oidname, "1.0.10646.1.0.%d", form); + is->encodingLevel = odr_getoidbystr (o, oidname); + } + else + { /* private ones */ + Z_PrivateCharacterSet *pc = + (Z_PrivateCharacterSet *)odr_malloc(o, sizeof(*pc)); + + memset(pc, 0, sizeof(*pc)); + + p0->which = Z_OriginProposal_0_private; + p0->u.zprivate = pc; + + pc->which = Z_PrivateCharacterSet_externallySpecified; + pc->u.externallySpecified = + z_ext_record2(o, CLASS_NEGOT, VAL_ID_CHARSET, charset); + } + return p0; +} + +static Z_OriginProposal *z_get_OriginProposal( + ODR o, const char **charsets, int num_charsets, + const char **langs, int num_langs, int selected) +{ + int i; + Z_OriginProposal *p = (Z_OriginProposal *) odr_malloc(o, sizeof(*p)); + + memset(p, 0, sizeof(*p)); + + p->recordsInSelectedCharSets = (bool_t *)odr_malloc(o, sizeof(bool_t)); + *p->recordsInSelectedCharSets = (selected) ? 1:0; + + if (charsets && num_charsets) { + + p->num_proposedCharSets = num_charsets; + p->proposedCharSets = + (Z_OriginProposal_0**) + odr_malloc(o, num_charsets*sizeof(Z_OriginProposal_0*)); + + for (i = 0; iproposedCharSets[i] = + z_get_OriginProposal_0(o, charsets[i]); + } + if (langs && num_langs) { + + p->num_proposedlanguages = num_langs; + + p->proposedlanguages = + (char **) odr_malloc(o, num_langs*sizeof(char *)); + + for (i = 0; iproposedlanguages[i] = (char *)langs[i]; + + } + } + return p; +} + +static Z_CharSetandLanguageNegotiation *z_get_CharSetandLanguageNegotiation( + ODR o) +{ + Z_CharSetandLanguageNegotiation *p = + (Z_CharSetandLanguageNegotiation *) odr_malloc(o, sizeof(*p)); + + memset(p, 0, sizeof(*p)); + + return p; +} + +/* Create EXTERNAL for negotation proposal. Client side */ +Z_External *yaz_set_proposal_charneg(ODR o, + const char **charsets, int num_charsets, + const char **langs, int num_langs, + int selected) +{ + Z_External *p = (Z_External *)odr_malloc(o, sizeof(*p)); + oident oid; + + p->descriptor = 0; + p->indirect_reference = 0; + + oid.proto = PROTO_Z3950; + oid.oclass = CLASS_NEGOT; + oid.value = VAL_CHARNEG3; + p->direct_reference = odr_oiddup(o, oid_getoidbyent(&oid)); + + p->which = Z_External_charSetandLanguageNegotiation; + p->u.charNeg3 = z_get_CharSetandLanguageNegotiation(o); + p->u.charNeg3->which = Z_CharSetandLanguageNegotiation_proposal; + p->u.charNeg3->u.proposal = + z_get_OriginProposal(o, charsets, num_charsets, + langs, num_langs, selected); + + return p; +} + +Z_External *yaz_set_proposal_charneg_list(ODR o, + const char *delim, + const char *charset_list, + const char *lang_list, + int selected) +{ + char **charsets_addresses = 0; + char **langs_addresses = 0; + int charsets_count = 0; + int langs_count = 0; + + if (charset_list) + nmem_strsplit(o->mem, delim, charset_list, + &charsets_addresses, &charsets_count); + if (lang_list) + nmem_strsplit(o->mem, delim, lang_list, + &langs_addresses, &langs_count); + return yaz_set_proposal_charneg(o, + (const char **) charsets_addresses, + charsets_count, + (const char **) langs_addresses, + langs_count, + selected); +} + + +/* used by yaz_set_response_charneg */ +static Z_TargetResponse *z_get_TargetResponse(ODR o, const char *charset, + const char *lang, int selected) +{ + Z_TargetResponse *p = (Z_TargetResponse *) odr_malloc(o, sizeof(*p)); + int form = get_form(charset); + + memset(p, 0, sizeof(*p)); + + if (form > 0) + { + char oidname[20]; + + Z_Iso10646 *is = (Z_Iso10646 *) odr_malloc (o, sizeof(*is)); + p->which = Z_TargetResponse_iso10646; + p->u.iso10646 = is; + is->collections = 0; + sprintf (oidname, "1.0.10646.1.0.%d", form); + is->encodingLevel = odr_getoidbystr (o, oidname); + } + else + { + Z_PrivateCharacterSet *pc = + (Z_PrivateCharacterSet *)odr_malloc(o, sizeof(*pc)); + + memset(pc, 0, sizeof(*pc)); + + p->which = Z_TargetResponse_private; + p->u.zprivate = pc; + + pc->which = Z_PrivateCharacterSet_externallySpecified; + pc->u.externallySpecified = + z_ext_record2(o, CLASS_NEGOT, VAL_ID_CHARSET, charset); + } + p->recordsInSelectedCharSets = (bool_t *)odr_malloc(o, sizeof(bool_t)); + *p->recordsInSelectedCharSets = (selected) ? 1:0; + + p->selectedLanguage = lang ? (char *)odr_strdup(o, lang) : 0; + return p; +} + +/* Create charset response. Server side */ +Z_External *yaz_set_response_charneg(ODR o, const char *charset, + const char *lang, int selected) +{ + Z_External *p = (Z_External *)odr_malloc(o, sizeof(*p)); + oident oid; + + p->descriptor = 0; + p->indirect_reference = 0; + + oid.proto = PROTO_Z3950; + oid.oclass = CLASS_NEGOT; + oid.value = VAL_CHARNEG3; + p->direct_reference = odr_oiddup(o, oid_getoidbyent(&oid)); + + p->which = Z_External_charSetandLanguageNegotiation; + p->u.charNeg3 = z_get_CharSetandLanguageNegotiation(o); + p->u.charNeg3->which = Z_CharSetandLanguageNegotiation_response; + p->u.charNeg3->u.response = z_get_TargetResponse(o, charset, lang, selected); + + return p; +} + +/* Get negotiation from OtherInformation. Client&Server side */ +Z_CharSetandLanguageNegotiation *yaz_get_charneg_record(Z_OtherInformation *p) +{ + int i; + + if (!p) + return 0; + + for (i = 0; i < p->num_elements; i++) { + Z_External *pext; + if ((p->list[i]->which == Z_OtherInfo_externallyDefinedInfo) && + (pext = p->list[i]->information.externallyDefinedInfo)) { + + oident *ent = oid_getentbyoid(pext->direct_reference); + + if (ent && ent->value == VAL_CHARNEG3 + && ent->oclass == CLASS_NEGOT + && pext->which == Z_External_charSetandLanguageNegotiation) + { + return pext->u.charNeg3; + } + } + } + return 0; +} + +/* Delete negotiation from OtherInformation. Client&Server side */ +int yaz_del_charneg_record(Z_OtherInformation **p) +{ + int i; + + if (!*p) + return 0; + + for (i = 0; i < (*p)->num_elements; i++) { + Z_External *pext; + if (((*p)->list[i]->which == Z_OtherInfo_externallyDefinedInfo) && + (pext = (*p)->list[i]->information.externallyDefinedInfo)) { + + oident *ent = oid_getentbyoid(pext->direct_reference); + + if (ent && ent->value == VAL_CHARNEG3 + && ent->oclass == CLASS_NEGOT + && pext->which == Z_External_charSetandLanguageNegotiation) + { + --((*p)->num_elements); + if ((*p)->num_elements == 0) + *p = 0; + else + { + for(; i < (*p)->num_elements; i++) + (*p)->list[i] = (*p)->list[i+1]; + } + return 1; + } + } + } + return 0; +} + + +/* Get charsets, langs, selected from negotiation.. Server side */ +void yaz_get_proposal_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, + char ***charsets, int *num_charsets, + char ***langs, int *num_langs, int *selected) +{ + int i; + Z_OriginProposal *pro = p->u.proposal; + + if (num_charsets && charsets) + { + if (pro->num_proposedCharSets) + { + *num_charsets = pro->num_proposedCharSets; + + (*charsets) = (char **) + nmem_malloc(mem, pro->num_proposedCharSets * sizeof(char *)); + + for (i=0; inum_proposedCharSets; i++) + { + (*charsets)[i] = 0; + + if (pro->proposedCharSets[i]->which == + Z_OriginProposal_0_private && + pro->proposedCharSets[i]->u.zprivate->which == + Z_PrivateCharacterSet_externallySpecified) { + + Z_External *pext = + pro->proposedCharSets[i]->u.zprivate->u.externallySpecified; + + if (pext->which == Z_External_octet) { + + (*charsets)[i] = (char *) + nmem_malloc(mem, (1+pext->u.octet_aligned->len) * + sizeof(char)); + + memcpy ((*charsets)[i], pext->u.octet_aligned->buf, + pext->u.octet_aligned->len); + (*charsets)[i][pext->u.octet_aligned->len] = 0; + + } + } + else if (pro->proposedCharSets[i]->which == + Z_OriginProposal_0_iso10646) + (*charsets)[i] = set_form ( + pro->proposedCharSets[i]->u.iso10646->encodingLevel); + } + } + else + *num_charsets = 0; + } + + if (langs && num_langs) + { + if (pro->num_proposedlanguages) + { + *num_langs = pro->num_proposedlanguages; + + (*langs) = (char **) + nmem_malloc(mem, pro->num_proposedlanguages * sizeof(char *)); + + for (i=0; inum_proposedlanguages; i++) + (*langs)[i] = nmem_strdup(mem, pro->proposedlanguages[i]); + } + else + *num_langs = 0; + } + + if(pro->recordsInSelectedCharSets && selected) + *selected = *pro->recordsInSelectedCharSets; +} + +/* Return charset, lang, selected from negotiation.. Client side */ +void yaz_get_response_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, + char **charset, char **lang, int *selected) +{ + Z_TargetResponse *res = p->u.response; + + if (charset && res->which == Z_TargetResponse_private && + res->u.zprivate->which == Z_PrivateCharacterSet_externallySpecified) { + + Z_External *pext = res->u.zprivate->u.externallySpecified; + + if (pext->which == Z_External_octet) { + + *charset = (char *) + nmem_malloc(mem, (1+pext->u.octet_aligned->len)*sizeof(char)); + memcpy (*charset, pext->u.octet_aligned->buf, + pext->u.octet_aligned->len); + (*charset)[pext->u.octet_aligned->len] = 0; + } + } + if (charset && res->which == Z_TargetResponse_iso10646) + *charset = set_form (res->u.iso10646->encodingLevel); + if (lang && res->selectedLanguage) + *lang = nmem_strdup (mem, res->selectedLanguage); + + if(selected && res->recordsInSelectedCharSets) + *selected = *res->recordsInSelectedCharSets; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/codetables.xml b/dependencies/yaz-2.1.28/src/codetables.xml new file mode 100644 index 0000000..343ee1d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/codetables.xml @@ -0,0 +1,98946 @@ + + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character as coming from the G0 graphic set, the second column + contains the MARC-8 code (in hex) for the character as coming from the G1 + graphic set, the third column contains the UCS/Unicode 16-bit code (in + hex), the fourth column contains the UTF-8 code (in hex) for the UCS + characters, the fifth column contains a representation of the character (where possible), + the sixth column contains the MARC character name, followed + by the UCS name. If the MARC name is the same as or very similar to the + UCS name, only the UCS name is given. For some tables alternate encodings + in Unicode and UTF-8 are given. When that occurs the alternate Unicode and + alternate UTF-8 columns follow the character name. + + + 1B + 001B + 1B + ESCAPE (Unlikely to occur in UCS/Unicode) + + + 1D + 001D + 1D + RECORD TERMINATOR / GROUP SEPARATOR + + + 1E + 001E + 1E + FIELD TERMINATOR / RECORD SEPARATOR + + + 1F + 001F + 1F + SUBFIELD DELIMITER / UNIT SEPARATOR + + + 20 + 0020 + 20 + SPACE, BLANK / SPACE + + + 21 + 0021 + 21 + EXCLAMATION MARK + + + 22 + 0022 + 22 + QUOTATION MARK + + + 23 + 0023 + 23 + NUMBER SIGN + + + 24 + 0024 + 24 + DOLLAR SIGN + + + 25 + 0025 + 25 + PERCENT SIGN + + + 26 + 0026 + 26 + AMPERSAND + + + 27 + 0027 + 27 + APOSTROPHE + + + 28 + 0028 + 28 + OPENING PARENTHESIS / LEFT PARENTHESIS + + + 29 + 0029 + 29 + CLOSING PARENTHESIS / CLOSING PARENTHESIS + + + 2A + 002A + 2A + ASTERISK + + + 2B + 002B + 2B + PLUS SIGN + + + 2C + 002C + 2C + COMMA + + + 2D + 002D + 2D + HYPHEN-MINUS + + + 2E + 002E + 2E + PERIOD, DECIMAL POINT / FULL STOP + + + 2F + 002F + 2F + SLASH / SOLIDUS + + + 30 + 0030 + 30 + DIGIT ZERO + + + 31 + 0031 + 31 + DIGIT ONE + + + 32 + 0032 + 32 + DIGIT TWO + + + 33 + 0033 + 33 + DIGIT THREE + + + 34 + 0034 + 34 + DIGIT FOUR + + + 35 + 0035 + 35 + DIGIT FIVE + + + 36 + 0036 + 36 + DIGIT SIX + + + 37 + 0037 + 37 + DIGIT SEVEN + + + 38 + 0038 + 38 + DIGIT EIGHT + + + 39 + 0039 + 39 + DIGIT NINE + + + 3A + 003A + 3A + COLON + + + 3B + 003B + 3B + SEMICOLON + + + 3C + 003C + 3C + LESS-THAN SIGN + + + 3D + 003D + 3D + EQUALS SIGN + + + 3E + 003E + 3E + GREATER-THAN SIGN + + + 3F + 003F + 3F + QUESTION MARK + + + 40 + 0040 + 40 + COMMERCIAL AT + + + 41 + 0041 + 41 + LATIN CAPITAL LETTER A + + + 42 + 0042 + 42 + LATIN CAPITAL LETTER B + + + 43 + 0043 + 43 + LATIN CAPITAL LETTER C + + + 44 + 0044 + 44 + LATIN CAPITAL LETTER D + + + 45 + 0045 + 45 + LATIN CAPITAL LETTER E + + + 46 + 0046 + 46 + LATIN CAPITAL LETTER F + + + 47 + 0047 + 47 + LATIN CAPITAL LETTER G + + + 48 + 0048 + 48 + LATIN CAPITAL LETTER H + + + 49 + 0049 + 49 + LATIN CAPITAL LETTER I + + + 4A + 004A + 4A + LATIN CAPITAL LETTER J + + + 4B + 004B + 4B + LATIN CAPITAL LETTER K + + + 4C + 004C + 4C + LATIN CAPITAL LETTER L + + + 4D + 004D + 4D + LATIN CAPITAL LETTER M + + + 4E + 004E + 4E + LATIN CAPITAL LETTER N + + + 4F + 004F + 4F + LATIN CAPITAL LETTER O + + + 50 + 0050 + 50 + LATIN CAPITAL LETTER P + + + 51 + 0051 + 51 + LATIN CAPITAL LETTER Q + + + 52 + 0052 + 52 + LATIN CAPITAL LETTER R + + + 53 + 0053 + 53 + LATIN CAPITAL LETTER S + + + 54 + 0054 + 54 + LATIN CAPITAL LETTER T + + + 55 + 0055 + 55 + LATIN CAPITAL LETTER U + + + 56 + 0056 + 56 + LATIN CAPITAL LETTER V + + + 57 + 0057 + 57 + LATIN CAPITAL LETTER W + + + 58 + 0058 + 58 + LATIN CAPITAL LETTER X + + + 59 + 0059 + 59 + LATIN CAPITAL LETTER Y + + + 5A + 005A + 5A + LATIN CAPITAL LETTER Z + + + 5B + 005B + 5B + OPENING SQUARE BRACKET / LEFT SQUARE +BRACKET + + + 5C + 005C + 5C + REVERSE SLASH / REVERSE SOLIDUS + + + 5D + 005D + 5D + CLOSING SQUARE BRACKET / RIGHT SQUARE +BRACKET + + + 5E + 005E + 5E + SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT + + + 5F + 005F + 5F + SPACING UNDERSCORE / LOW LINE + + + 60 + 0060 + 60 + SPACING GRAVE / GRAVE ACCENT + + + 61 + 0061 + 61 + LATIN SMALL LETTER A + + + 62 + 0062 + 62 + LATIN SMALL LETTER B + + + 63 + 0063 + 63 + LATIN SMALL LETTER C + + + 64 + 0064 + 64 + LATIN SMALL LETTER D + + + 65 + 0065 + 65 + LATIN SMALL LETTER E + + + 66 + 0066 + 66 + LATIN SMALL LETTER F + + + 67 + 0067 + 67 + LATIN SMALL LETTER G + + + 68 + 0068 + 68 + LATIN SMALL LETTER H + + + 69 + 0069 + 69 + LATIN SMALL LETTER I + + + 6A + 006A + 6A + LATIN SMALL LETTER J + + + 6B + 006B + 6B + LATIN SMALL LETTER K + + + 6C + 006C + 6C + LATIN SMALL LETTER L + + + 6D + 006D + 6D + LATIN SMALL LETTER M + + + 6E + 006E + 6E + LATIN SMALL LETTER N + + + 6F + 006F + 6F + LATIN SMALL LETTER O + + + 70 + 0070 + 70 + LATIN SMALL LETTER P + + + 71 + 0071 + 71 + LATIN SMALL LETTER Q + + + 72 + 0072 + 72 + LATIN SMALL LETTER R + + + 73 + 0073 + 73 + LATIN SMALL LETTER S + + + 74 + 0074 + 74 + LATIN SMALL LETTER T + + + 75 + 0075 + 75 + LATIN SMALL LETTER U + + + 76 + 0076 + 76 + LATIN SMALL LETTER V + + + 77 + 0077 + 77 + LATIN SMALL LETTER W + + + 78 + 0078 + 78 + LATIN SMALL LETTER X + + + 79 + 0079 + 79 + LATIN SMALL LETTER Y + + + 7A + 007A + 7A + LATIN SMALL LETTER Z + + + 7B + 007B + 7B + OPENING CURLY BRACKET / LEFT CURLY +BRACKET + + + 7C + 007C + 7C + VERTICAL BAR (FILL) / VERTICAL LINE + + + 7D + 007D + 7D + CLOSING CURLY BRACKET / RIGHT CURLY +BRACKET + + + 7E + 007E + 7E + SPACING TILDE / TILDE + + + + Revised June 2004 to add the Eszett (M+C7) and the + Euro Sign (M+C8) to the MARC-8 set. + + Revised September 2004 to change the mapping from + MARC-8 to Unicode for the Ligature (M+EB and M+EC) from U+FE20 and U+FE21 + to U+0361. + Revised September 2004 to change the mapping from + MARC-8 to Unicode for the Double Tilde (M+FA and M+FB) from U+FE22 and U+FE23 + to U+0360. + Revised March 2005 to change the mapping from MARC-8 to Unicode + for the Alif (M+2E) from U+02BE to U+02BC. + + 88 + 0098 + C298 + NON-SORT BEGIN / START OF STRING + + + 89 + 009C + C29C + NON-SORT END / STRING TERMINATOR + + + 8D + 200D + E2808D + JOINER / ZERO WIDTH JOINER + + + 8E + 200C + E2808C + NON-JOINER / ZERO WIDTH NON-JOINER + + + A1 + 0141 + C581 + UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH +STROKE + + + A2 + 00D8 + C398 + UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER +O WITH STROKE + + + A3 + 0110 + C490 + UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER +D WITH STROKE + + + A4 + 00DE + C39E + UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER +THORN (Icelandic) + + + A5 + 00C6 + C386 + UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE +AE + + + A6 + 0152 + C592 + UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE +OE + + + A7 + 02B9 + CAB9 + SOFT SIGN, PRIME / MODIFIER LETTER PRIME + + + A8 + 00B7 + C2B7 + MIDDLE DOT + + + A9 + 266D + E299AD + MUSIC FLAT SIGN + + + AA + 00AE + C2AE + PATENT MARK / REGISTERED SIGN + + + AB + 00B1 + C2B1 + PLUS OR MINUS / PLUS-MINUS SIGN + + + AC + 01A0 + C6A0 + UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH +HORN + + + AD + 01AF + C6AF + UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH +HORN + + + AE + 02BC + CABC + ALIF / MODIFIER LETTER APOSTROPHE + + + B0 + 02BB + CABB + AYN / MODIFIER LETTER TURNED COMMA + + + B1 + 0142 + C582 + LOWERCASE POLISH L / LATIN SMALL LETTER L WITH +STROKE + + + B2 + 00F8 + C3B8 + LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O +WITH STROKE + + + B3 + 0111 + C491 + LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER +D WITH STROKE + + + B4 + 00FE + C3BE + LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER +THORN (Icelandic) + + + B5 + 00E6 + C3A6 + LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE +AE + + + B6 + 0153 + C593 + LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE +OE + + + B7 + 02BA + CABA + HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE +PRIME + + + B8 + 0131 + C4B1 + LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS +I + + + B9 + 00A3 + C2A3 + BRITISH POUND / POUND SIGN + + + BA + 00F0 + C3B0 + LOWERCASE ETH / LATIN SMALL LETTER ETH +(Icelandic) + + + BC + 01A1 + C6A1 + LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH +HORN + + + BD + 01B0 + C6B0 + LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH +HORN + + + C0 + 00B0 + C2B0 + DEGREE SIGN + + + C1 + 2113 + E28493 + SCRIPT SMALL L + + + C2 + 2117 + E28497 + SOUND RECORDING COPYRIGHT + + + C3 + 00A9 + C2A9 + COPYRIGHT SIGN + + + C4 + 266F + E299AF + MUSIC SHARP SIGN + + + C5 + 00BF + C2BF + INVERTED QUESTION MARK + + + C6 + 00A1 + C2A1 + INVERTED EXCLAMATION MARK + + + C7 + 00DF + C39F + ESZETT SYMBOL + + + C8 + 20AC + E282AC + EURO SIGN + + + true + E0 + 0309 + CC89 + PSEUDO QUESTION MARK / COMBINING HOOK +ABOVE + + + true + E1 + 0300 + CC80 + GRAVE / COMBINING GRAVE ACCENT (Varia) + + + true + E2 + 0301 + CC81 + ACUTE / COMBINING ACUTE ACCENT (Oxia) + + + true + E3 + 0302 + CC82 + CIRCUMFLEX / COMBINING CIRCUMFLEX +ACCENT + + + true + E4 + 0303 + CC83 + TILDE / COMBINING TILDE + + + true + E5 + 0304 + CC84 + MACRON / COMBINING MACRON + + + true + E6 + 0306 + CC86 + BREVE / COMBINING BREVE (Vrachy) + + + true + E7 + 0307 + CC87 + SUPERIOR DOT / COMBINING DOT ABOVE + + + true + E8 + 0308 + CC88 + UMLAUT, DIAERESIS / COMBINING DIAERESIS +(Dialytika) + + + true + E9 + 030C + CC8C + HACEK / COMBINING CARON + + + true + EA + 030A + CC8A + CIRCLE ABOVE, ANGSTROM / COMBINING RING +ABOVE + + + true + EB + 0361 + CDA1 + FE20 + EFB8A0 + LIGATURE, FIRST HALF / COMBINING DOUBLE + INVERTED BREVE + + + true + EC + + + FE21 + EFB8A1 + LIGATURE, SECOND HALF / COMBINING LIGATURE RIGHT HALF + The Ligature that spans two characters + is constructed of two halves in MARC-8: EB + (Ligature, first half) and EC (Ligature, second + half). The preferred Unicode/UTF-8 mapping is to + the single character Ligature that spans two characters, + U+0361. The single character Ligature is encoded + following the second of the two characters to be spanned. + The two half Ligatures in Unicode, to which the + Ligature has been mapped since 1996, are indicted + in the mapping as alternatives, but their use is not + recommended. It is expected that font support for + the single character Ligature mark will be more + easily obtained than for the two halves. + + + true + ED + 0315 + CC95 + HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE +RIGHT + + + true + EE + 030B + CC8B + DOUBLE ACUTE / COMBINING DOUBLE ACUTE +ACCENT + + + true + EF + 0310 + CC90 + CANDRABINDU / COMBINING CANDRABINDU + + + true + F0 + 0327 + CCA7 + CEDILLA / COMBINING CEDILLA + + + true + F1 + 0328 + CCA8 + RIGHT HOOK, OGONEK / COMBINING OGONEK + + + true + F2 + 0323 + CCA3 + DOT BELOW / COMBINING DOT BELOW + + + true + F3 + 0324 + CCA4 + DOUBLE DOT BELOW / COMBINING DIAERESIS +BELOW + + + true + F4 + 0325 + CCA5 + CIRCLE BELOW / COMBINING RING BELOW + + + true + F5 + 0333 + CCB3 + DOUBLE UNDERSCORE / COMBINING DOUBLE LOW +LINE + + + true + F6 + 0332 + CCB2 + UNDERSCORE / COMBINING LOW LINE + + + true + F7 + 0326 + CCA6 + LEFT HOOK (COMMA BELOW) / COMBINING COMMA +BELOW + + + true + F8 + 031C + CC9C + RIGHT CEDILLA / COMBINING LEFT HALF RING +BELOW + + + true + F9 + 032E + CCAE + UPADHMANIYA / COMBINING BREVE BELOW + + + true + FA + 0360 + CDA0 + FE22 + EFB8A2 + DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE + + + true + FB + + + FE23 + EFB8A3 + DOUBLE TILDE, SECOND HALF / COMBINING DOUBLE TILDE RIGHT HALF + The Double Tilde that spans two characters is + constructed of two halves in MARC-8: FA (Double + Tilde, first half) and FB (Double Tilde, second + half). The preferred Unicode/UTF-8 mapping + is to the single character Double Tilde that + spans two characters, U+0360. The single + character Double Tilde is encoded following + the second of the two characters to be spanned. + The two half Double Tildes in Unicode, to + which the MARC8 Double Tilde has been + mapped since 1996, are indicted in the + mapping as alternatives, but their use is not + recommended. It is expected that font support + for the single character Double Tilde mark will + be more easily obtained than for the two halves. + + + true + FE + 0313 + CC93 + HIGH COMMA, CENTERED / COMBINING COMMA ABOVE +(Psili) + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character, the second column contains the UCS/Unicode 16-bit code (in + hex), the third column contains the UTF-8 code (in hex) for the UCS + character, the fourth column contains a representation of the character (where possible), + the fifth column contains the MARC character name, followed by + the UCS name. If the MARC name is the same as or very similar to the UCS + name, only the UCS name is given. + Note added September 2004: The alpha, beta and gamma symbols that have been part of a + special extension of the MARC8 character set since 1970 do not + have reversible mappings to Unicode since they duplicate + characters in the Greek script set. These special characters + map to the Greek set in Unicode, thus when being remapped to + MARC-8 they go to the MARC-8 Greek set, not the special + extension to the Latin set. It is recommended that the + spelling out of the characters be used when the Latin + extension Greek characters would formerly have been used, + i.e., when they occur in Latin text. The following + substitutions would be made: [alpha], [beta], and [gamma]. + + + 61 + 03B1 + CEB1 + GREEK SMALL LETTER ALPHA + + + 62 + 03B2 + CEB2 + GREEK SMALL LETTER BETA + + + 63 + 03B3 + CEB3 + GREEK SMALL LETTER GAMMA + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character, the second column contains the UCS/Unicode 16-bit code (in + hex), the third column contains the UTF-8 code (in hex) for the UCS + character, the fourth column contains a representation of the character (where possible), + the fifth column contains the MARC character name, followed by + the UCS name. If the MARC name is the same as or very similar to the UCS + name, only the UCS name is given. + + + 28 + 208D + E2828D + SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT +PARENTHESIS + + + 29 + 208E + E2828E + SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT +PARENTHESIS + + + 2B + 208A + E2828A + SUBSCRIPT PLUS SIGN + + + 2D + 208B + E2828B + SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS + + + 30 + 2080 + E28280 + SUBSCRIPT DIGIT ZERO + + + 31 + 2081 + E28281 + SUBSCRIPT DIGIT ONE + + + 32 + 2082 + E28282 + SUBSCRIPT DIGIT TWO + + + 33 + 2083 + E28283 + SUBSCRIPT DIGIT THREE + + + 34 + 2084 + E28284 + SUBSCRIPT DIGIT FOUR + + + 35 + 2085 + E28285 + SUBSCRIPT DIGIT FIVE + + + 36 + 2086 + E28286 + SUBSCRIPT DIGIT SIX + + + 37 + 2087 + E28287 + SUBSCRIPT DIGIT SEVEN + + + 38 + 2088 + E28288 + SUBSCRIPT DIGIT EIGHT + + + 39 + 2089 + E28289 + SUBSCRIPT DIGIT NINE + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character, the second column contains the UCS/Unicode 16-bit code (in + hex), the third column contains the UTF-8 code (in hex) for the UCS + character, the fourth column contains a representation of the character (where possible), + the fifth column conatins the MARC character name, followed by + the UCS name. If the MARC name is the same as or very similar to the UCS + name, only the UCS name is given. + + + 28 + 207D + E281BD + SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT +PARENTHESIS + + + 29 + 207E + E281BE + SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT +RIGHT PARENTHESIS + + + 2B + 207A + E281BA + SUPERSCRIPT PLUS SIGN + + + 2D + 207B + E281BB + SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT +MINUS + + + 30 + 2070 + E281B0 + SUPERSCRIPT DIGIT ZERO + + + 31 + 00B9 + C2B9 + SUPERSCRIPT DIGIT ONE + + + 32 + 00B2 + C2B2 + SUPERSCRIPT DIGIT TWO + + + 33 + 00B3 + C2B3 + SUPERSCRIPT DIGIT THREE + + + 34 + 2074 + E281B4 + SUPERSCRIPT DIGIT FOUR + + + 35 + 2075 + E281B5 + SUPERSCRIPT DIGIT FIVE + + + 36 + 2076 + E281B6 + SUPERSCRIPT DIGIT SIX + + + 37 + 2077 + E281B7 + SUPERSCRIPT DIGIT SEVEN + + + 38 + 2078 + E281B8 + SUPERSCRIPT DIGIT EIGHT + + + 39 + 2079 + E281B9 + SUPERSCRIPT DIGIT NINE + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character as coming from the G0 graphic set, the second column + contains the MARC-8 code (in hex) for the character as coming from the G1 + graphic set, the third column contains the UCS/Unicode 16-bit code (in + hex), the fourth column contains the UTF-8 code (in hex) for the UCS + characters, the fifth column contains a representation of the character (where possible), + the sixth column contains the MARC character name, followed + by the UCS name. If the MARC name is the same as or very similar to the + UCS name, only the UCS name is given. + + + 21 + 0021 + 21 + EXCLAMATION MARK + + + 22 + 05F4 + D7B4 + QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION +GERSHAYIM + + + 23 + 0023 + 23 + NUMBER SIGN + + + 24 + 0024 + 24 + DOLLAR SIGN + + + 25 + 0025 + 25 + PERCENT SIGN + + + 26 + 0026 + 26 + AMPERSAND + + + 27 + 05F3 + D7B3 + APOSTROPHE, GERESH / HEBREW PUNCTUATION +GERESH + + + 28 + 0028 + 28 + OPENING PARENTHESIS / LEFT PARENTHESIS + + + 29 + 0029 + 29 + CLOSING PARENTHESIS / RIGHT PARENTHESIS + + + 2A + 002A + 2A + ASTERISK + + + 2B + 002B + 2B + PLUS SIGN + + + 2C + 002C + 2C + COMMA + + + 2D + 05BE + D6BE + HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION +MAQAF + + + 2E + 002E + 2E + PERIOD, DECIMAL POINT / FULL STOP + + + 2F + 002F + 2F + SLASH / SOLIDUS + + + 30 + 0030 + 30 + DIGIT ZERO + + + 31 + 0031 + 31 + DIGIT ONE + + + 32 + 0032 + 32 + DIGIT TWO + + + 33 + 0033 + 33 + DIGIT THREE + + + 34 + 0034 + 34 + DIGIT FOUR + + + 35 + 0035 + 35 + DIGIT FIVE + + + 36 + 0036 + 36 + DIGIT SIX + + + 37 + 0037 + 37 + DIGIT SEVEN + + + 38 + 0038 + 38 + DIGIT EIGHT + + + 39 + 0039 + 39 + DIGIT NINE + + + 3A + 003A + 3A + COLON + + + 3B + 003B + 3B + SEMICOLON + + + 3C + 003C + 3C + LESS-THAN SIGN + + + 3D + 003D + 3D + EQUALS SIGN + + + 3E + 003E + 3E + GREATER-THAN SIGN + + + 3F + 003F + 3F + QUESTION MARK + + + true + 40 + 05B7 + D6B7 + HEBREW POINT PATAH + + + true + 41 + 05B8 + D6B8 + KAMATS / HEBREW POINT QAMATS + + + true + 42 + 05B6 + D6B6 + HEBREW POINT SEGOL + + + true + 43 + 05B5 + D6B5 + TSEREH / HEBREW POINT TSERE + + + true + 44 + 05B4 + D6B4 + HIRIK / HEBREW POINT HIRIQ + + + true + 45 + 05B9 + D6B9 + HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM + + + true + 46 + 05BB + D6BB + KUBUTS / HEBREW POINT QUBUTS + + + true + 47 + 05B0 + D6B0 + HEBREW POINT SHEVA + + + true + 48 + 05B2 + D6B2 + HEBREW POINT HATAF PATAH + + + true + 49 + 05B3 + D6B3 + HATAF KAMATS / HEBREW POINT HATAF QAMATS + + + true + 4A + 05B1 + D6B1 + HEBREW POINT HATAF SEGOL + + + true + 4B + 05BC + D6BC + HEBREW POINT DAGESH OR MAPIQ + + + true + 4C + 05BF + D6BF + RAFEH / HEBREW POINT RAFE + + + true + 4D + 05C1 + D781 + RIGHT SHIN DOT / HEBREW POINT SHIN DOT + + + true + 4E + FB1E + EFAC9E + VARIKA / HEBREW POINT JUDEO-SPANISH +VARIKA + + + 5B + 005B + 5B + OPENING SQUARE BRACKET / LEFT SQUARE +BRACKET + + + 5D + 005D + 5D + CLOSING SQUARE BRACKET / RIGHT SQUARE +BRACKET + + + 60 + 05D0 + D790 + HEBREW LETTER ALEF + + + 61 + 05D1 + D791 + HEBREW LETTER BET + + + 62 + 05D2 + D792 + HEBREW LETTER GIMEL + + + 63 + 05D3 + D793 + HEBREW LETTER DALET + + + 64 + 05D4 + D794 + HEBREW LETTER HE + + + 65 + 05D5 + D795 + HEBREW LETTER VAV + + + 66 + 05D6 + D796 + HEBREW LETTER ZAYIN + + + 67 + 05D7 + D797 + HEBREW LETTER HET + + + 68 + 05D8 + D798 + HEBREW LETTER TET + + + 69 + 05D9 + D799 + HEBREW LETTER YOD + + + 6A + 05DA + D79A + HEBREW LETTER FINAL KAF + + + 6B + 05DB + D79B + HEBREW LETTER KAF + + + 6C + 05DC + D79C + HEBREW LETTER LAMED + + + 6D + 05DD + D79D + HEBREW LETTER FINAL MEM + + + 6E + 05DE + D79E + HEBREW LETTER MEM + + + 6F + 05DF + D79F + HEBREW LETTER FINAL NUN + + + 70 + 05E0 + D7A0 + HEBREW LETTER NUN + + + 71 + 05E1 + D7A1 + HEBREW LETTER SAMEKH + + + 72 + 05E2 + D7A2 + HEBREW LETTER AYIN + + + 73 + 05E3 + D7A3 + HEBREW LETTER FINAL PE + + + 74 + 05E4 + D7A4 + HEBREW LETTER PE + + + 75 + 05E5 + D7A5 + HEBREW LETTER FINAL TSADI + + + 76 + 05E6 + D7A6 + HEBREW LETTER TSADI + + + 77 + 05E7 + D7A7 + HEBREW LETTER QOF / KOF + + + 78 + 05E8 + D7A8 + HEBREW LETTER RESH + + + 79 + 05E9 + D7A9 + HEBREW LETTER SHIN + + + 7A + 05EA + D7AA + HEBREW LETTER TAV + + + 7B + 05F0 + D7B0 + HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY +VOVN + + + 7C + 05F1 + D7B1 + HEBREW LIGATURE YIDDISH VAV YOD / VOV +YUD + + + 7D + 05F2 + D7B2 + HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY +YUDN + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character as coming from the G0 graphic set, the second column + contains the MARC-8 code (in hex) for the character as coming from the G1 + graphic set, the third column contains the UCS/Unicode 16-bit code (in + hex), the fourth column contains the UTF-8 code (in hex) for the UCS + characters, the fifth column contains a representation of the character (where possible), + the sixth column contains the MARC character name, followed + by the UCS name. If the MARC name is the same as or very similar to the + UCS name, only the UCS name is given. + + + 21 + 0021 + 21 + EXCLAMATION MARK + + + 22 + 0022 + 22 + QUOTATION MARK + + + 23 + 0023 + 23 + NUMBER SIGN + + + 24 + 0024 + 24 + DOLLAR SIGN + + + 25 + 0025 + 25 + PERCENT SIGN + + + 26 + 0026 + 26 + AMPERSAND + + + 27 + 0027 + 27 + APOSTROPHE + + + 28 + 0028 + 28 + OPENING PARENTHESIS / LEFT PARENTHESIS + + + 29 + 0029 + 29 + CLOSING PARENTHESIS / RIGHT PARENTHESIS + + + 2A + 002A + 2A + ASTERISK + + + 2B + 002B + 2B + PLUS SIGN + + + 2C + 002C + 2C + COMMA + + + 2D + 002D + 2D + HYPHEN-MINUS + + + 2E + 002E + 2E + PERIOD, DECIMAL POINT / FULL STOP + + + 2F + 002F + 2F + SLASH / SOLIDUS + + + 30 + 0030 + 30 + DIGIT ZERO + + + 31 + 0031 + 31 + DIGIT ONE + + + 32 + 0032 + 32 + DIGIT TWO + + + 33 + 0033 + 33 + DIGIT THREE + + + 34 + 0034 + 34 + DIGIT FOUR + + + 35 + 0035 + 35 + DIGIT FIVE + + + 36 + 0036 + 36 + DIGIT SIX + + + 37 + 0037 + 37 + DIGIT SEVEN + + + 38 + 0038 + 38 + DIGIT EIGHT + + + 39 + 0039 + 39 + DIGIT NINE + + + 3A + 003A + 3A + COLON + + + 3B + 003B + 3B + SEMICOLON + + + 3C + 003C + 3C + LESS-THAN SIGN + + + 3D + 003D + 3D + EQUALS SIGN + + + 3E + 003E + 3E + GREATER-THAN SIGN + + + 3F + 003F + 3F + QUESTION MARK + + + 40 + 044E + D18E + LOWERCASE IU / CYRILLIC SMALL LETTER YU + + + 41 + 0430 + D0B0 + CYRILLIC SMALL LETTER A + + + 42 + 0431 + D0B1 + CYRILLIC SMALL LETTER BE + + + 43 + 0446 + D186 + CYRILLIC SMALL LETTER TSE + + + 44 + 0434 + D0B4 + CYRILLIC SMALL LETTER DE + + + 45 + 0435 + D0B5 + CYRILLIC SMALL LETTER IE + + + 46 + 0444 + D184 + CYRILLIC SMALL LETTER EF + + + 47 + 0433 + D0B3 + LOWERCASE GE / CYRILLIC SMALL LETTER GHE + + + 48 + 0445 + D185 + LOWERCASE KHA / CYRILLIC SMALL LETTER HA + + + 49 + 0438 + D0B8 + LOWERCASE II / CYRILLIC SMALL LETTER I + + + 4A + 0439 + D0B9 + LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT +I + + + 4B + 043A + D0BA + CYRILLIC SMALL LETTER KA + + + 4C + 043B + D0BB + CYRILLIC SMALL LETTER EL + + + 4D + 043C + D0BC + CYRILLIC SMALL LETTER EM + + + 4E + 043D + D0BD + CYRILLIC SMALL LETTER EN + + + 4F + 043E + D0BE + CYRILLIC SMALL LETTER O + + + 50 + 043F + D0BF + CYRILLIC SMALL LETTER PE + + + 51 + 044F + D18F + LOWERCASE IA / CYRILLIC SMALL LETTER YA + + + 52 + 0440 + D180 + CYRILLIC SMALL LETTER ER + + + 53 + 0441 + D181 + CYRILLIC SMALL LETTER ES + + + 54 + 0442 + D182 + CYRILLIC SMALL LETTER TE + + + 55 + 0443 + D183 + CYRILLIC SMALL LETTER U + + + 56 + 0436 + D0B6 + CYRILLIC SMALL LETTER ZHE + + + 57 + 0432 + D0B2 + CYRILLIC SMALL LETTER VE + + + 58 + 044C + D18C + CYRILLIC SMALL LETTER SOFT SIGN + + + 59 + 044B + D18B + LOWERCASE YERI / CYRILLIC SMALL LETTER +YERI + + + 5A + 0437 + D0B7 + CYRILLIC SMALL LETTER ZE + + + 5B + 0448 + D188 + CYRILLIC SMALL LETTER SHA + + + 5C + 044D + D18D + LOWERCASE REVERSED E / CYRILLIC SMALL LETTER +E + + + 5D + 0449 + D189 + CYRILLIC SMALL LETTER SHCHA + + + 5E + 0447 + D187 + CYRILLIC SMALL LETTER CHE + + + 5F + 044A + D18A + CYRILLIC SMALL LETTER HARD SIGN + + + 60 + 042E + D0AE + UPPERCASE IU / CYRILLIC CAPITAL LETTER YU + + + 61 + 0410 + D090 + CYRILLIC CAPITAL LETTER A + + + 62 + 0411 + D091 + CYRILLIC CAPITAL LETTER BE + + + 63 + 0426 + D0A6 + CYRILLIC CAPITAL LETTER TSE + + + 64 + 0414 + D094 + CYRILLIC CAPITAL LETTER DE + + + 65 + 0415 + D095 + CYRILLIC CAPITAL LETTER IE + + + 66 + 0424 + D0A4 + CYRILLIC CAPITAL LETTER EF + + + 67 + 0413 + D093 + UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE + + + 68 + 0425 + D0A5 + UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA + + + 69 + 0418 + D098 + UPPERCASE II / CYRILLIC CAPITAL LETTER I + + + 6A + 0419 + D099 + UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT +I + + + 6B + 041A + D09A + CYRILLIC CAPITAL LETTER KA + + + 6C + 041B + D09B + CYRILLIC CAPITAL LETTER EL + + + 6D + 041C + D09C + CYRILLIC CAPITAL LETTER EM + + + 6E + 041D + D09D + CYRILLIC CAPITAL LETTER EN + + + 6F + 041E + D09E + CYRILLIC CAPITAL LETTER O + + + 70 + 041F + D09F + CYRILLIC CAPITAL LETTER PE + + + 71 + 042F + D0AF + UPPERCASE IA / CYRILLIC CAPITAL LETTER YA + + + 72 + 0420 + D0A0 + CYRILLIC CAPITAL LETTER ER + + + 73 + 0421 + D0A1 + CYRILLIC CAPITAL LETTER ES + + + 74 + 0422 + D0A2 + CYRILLIC CAPITAL LETTER TE + + + 75 + 0423 + D0A3 + CYRILLIC CAPITAL LETTER U + + + 76 + 0416 + D096 + CYRILLIC CAPITAL LETTER ZHE + + + 77 + 0412 + D092 + CYRILLIC CAPITAL LETTER VE + + + 78 + 042C + D0AC + CYRILLIC CAPITAL LETTER SOFT SIGN + + + 79 + 042B + D0AB + UPPERCASE YERI / CYRILLIC CAPITAL LETTER +YERI + + + 7A + 0417 + D097 + CYRILLIC CAPITAL LETTER ZE + + + 7B + 0428 + D0A8 + CYRILLIC CAPITAL LETTER SHA + + + 7C + 042D + D0AD + CYRILLIC CAPITAL LETTER E + + + 7D + 0429 + D0A9 + CYRILLIC CAPITAL LETTER SHCHA + + + 7E + 0427 + D0A7 + CYRILLIC CAPITAL LETTER CHE + + + + + C0 + 0491 + D291 + LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER +GHE WITH UPTURN + + + C1 + 0452 + D192 + LOWERCASE DJE / CYRILLIC SMALL LETTER DJE +(Serbian) + + + C2 + 0453 + D193 + CYRILLIC SMALL LETTER GJE + + + C3 + 0454 + D194 + LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN +IE + + + C4 + 0451 + D191 + CYRILLIC SMALL LETTER IO + + + C5 + 0455 + D195 + CYRILLIC SMALL LETTER DZE + + + C6 + 0456 + D196 + LOWERCASE I / CYRILLIC SMALL LETTER +BYELORUSSIAN-UKRANIAN I + + + C7 + 0457 + D197 + LOWERCASE YI / CYRILLIC SMALL LETTER YI +(Ukrainian) + + + C8 + 0458 + D198 + CYRILLIC SMALL LETTER JE + + + C9 + 0459 + D199 + CYRILLIC SMALL LETTER LJE + + + CA + 045A + D19A + CYRILLIC SMALL LETTER NJE + + + CB + 045B + D19B + LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE +(Serbian) + + + CC + 045C + D19C + CYRILLIC SMALL LETTER KJE + + + CD + 045E + D19E + LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT +U (Byelorussian) + + + CE + 045F + D19F + CYRILLIC SMALL LETTER DZHE + + + D0 + 0463 + D1A3 + CYRILLIC SMALL LETTER YAT + + + D1 + 0473 + D1B3 + CYRILLIC SMALL LETTER FITA + + + D2 + 0475 + D1B5 + CYRILLIC SMALL LETTER IZHITSA + + + D3 + 046B + D1AB + CYRILLIC SMALL LETTER BIG YUS + + + DB + 005B + 5B + OPENING SQUARE BRACKET / LEFT SQUARE +BRACKET + + + DD + 005D + 5D + CLOSING SQUARE BRACKET / RIGHT SQUARE +BRACKET + + + DF + 005F + 5F + SPACING UNDERSCORE / LOW LINE + + + E0 + 0490 + D290 + UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL +LETTER GHE WITH UPTURN + + + E1 + 0402 + D082 + UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE +(Serbian) + + + E2 + 0403 + D083 + CYRILLIC CAPITAL LETTER GJE + + + E3 + 0404 + D084 + UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN +IE + + + E4 + 0401 + D081 + CYRILLIC CAPITAL LETTER IO + + + E5 + 0405 + D085 + CYRILLIC CAPITAL LETTER DZE + + + E6 + 0406 + D086 + UPPERCASE I / CYRILLIC CAPITAL LETTER +BYELORUSSIAN-UKRANIAN I + + + E7 + 0407 + D087 + UPPERCASE YI / CYRILLIC CAPITAL LETTER YI +(Ukrainian) + + + E8 + 0408 + D088 + CYRILLIC CAPITAL LETTER JE + + + E9 + 0409 + D089 + CYRILLIC CAPITAL LETTER LJE + + + EA + 040A + D08A + CYRILLIC CAPITAL LETTER NJE + + + EB + 040B + D08B + UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE +(Serbian) + + + EC + 040C + D08C + CYRILLIC CAPITAL LETTER KJE + + + ED + 040E + D08E + UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT +U (Byelorussian) + + + EE + 040F + D08F + CYRILLIC CAPITAL LETTER DZHE + + + EF + 042A + D0AA + CYRILLIC CAPITAL LETTER HARD SIGN + + + F0 + 0462 + D1A2 + CYRILLIC CAPITAL LETTER YAT + + + F1 + 0472 + D1B2 + CYRILLIC CAPITAL LETTER FITA + + + F2 + 0474 + D1B4 + CYRILLIC CAPITAL LETTER IZHITSA + + + F3 + 046A + D1AA + CYRILLIC CAPITAL LETTER BIG YUS + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character as coming from the G0 graphic set, the second column + contains the MARC-8 code (in hex) for the character as coming from the G1 + graphic set, the third column contains the UCS/Unicode 16-bit code (in + hex), the fourth column contains the UTF-8 code (in hex) for the UCS + characters, the fifth column contains a representation of the character (where possible), + the sixth column contains the MARC character name, followed + by the UCS name. If the MARC name is the same as or very similar to the + UCS name, only the UCS name is given. + + + 21 + 0021 + 21 + EXCLAMATION MARK + + + 22 + 0022 + 22 + QUOTATION MARK + + + 23 + 0023 + 23 + NUMBER SIGN + + + 24 + 0024 + 24 + DOLLAR SIGN + + + 25 + 066A + D9AA + PERCENT SIGN / ARABIC PERCENT SIGN + + + 26 + 0026 + 26 + AMPERSAND + + + 27 + 0027 + 27 + APOSTROPHE + + + 28 + 0028 + 28 + OPENING PARENTHESIS / LEFT PARENTHESIS + + + 29 + 0029 + 29 + CLOSING PARENTHESIS / RIGHT PARENTHESIS + + + 2A + 066D + D9AD + ASTERISK / ARABIC FIVE POINTED STAR + + + 2B + 002B + 2B + PLUS SIGN + + + 2C + 060C + D88C + ARABIC COMMA + + + 2D + 002D + 2D + HYPHEN-MINUS + + + 2E + 002E + 2E + PERIOD, DECIMAL POINT / FULL STOP + + + 2F + 002F + 2F + SLASH / SOLIDUS + + + 30 + 0660 + D9A0 + ARABIC-INDIC DIGIT ZERO + + + 31 + 0661 + D9A1 + ARABIC-INDIC DIGIT ONE + + + 32 + 0662 + D9A2 + ARABIC-INDIC DIGIT TWO + + + 33 + 0663 + D9A3 + ARABIC-INDIC DIGIT THREE + + + 34 + 0664 + D9A4 + ARABIC-INDIC DIGIT FOUR + + + 35 + 0665 + D9A5 + ARABIC-INDIC DIGIT FIVE + + + 36 + 0666 + D9A6 + ARABIC-INDIC DIGIT SIX + + + 37 + 0667 + D9A7 + ARABIC-INDIC DIGIT SEVEN + + + 38 + 0668 + D9A8 + ARABIC-INDIC DIGIT EIGHT + + + 39 + 0669 + D9A9 + ARABIC-INDIC DIGIT NINE + + + 3A + 003A + 3A + COLON + + + 3B + 061B + D89B + ARABIC SEMICOLON + + + 3C + 003C + 3C + LESS-THAN SIGN + + + 3D + 003D + 3D + EQUALS SIGN + + + 3E + 003E + 3E + GREATER-THAN SIGN + + + 3F + 061F + D89F + ARABIC QUESTION MARK + + + 41 + 0621 + D8A1 + HAMZAH / ARABIC LETTER HAMZA + + + 42 + 0622 + D8A2 + ARABIC LETTER ALEF WITH MADDA ABOVE + + + 43 + 0623 + D8A3 + ARABIC LETTER ALEF WITH HAMZA ABOVE + + + 44 + 0624 + D8A4 + ARABIC LETTER WAW WITH HAMZA ABOVE + + + 45 + 0625 + D8A5 + ARABIC LETTER ALEF WITH HAMZA BELOW + + + 46 + 0626 + D8A6 + ARABIC LETTER YEH WITH HAMZA ABOVE + + + 47 + 0627 + D8A7 + ARABIC LETTER ALEF + + + 48 + 0628 + D8A8 + ARABIC LETTER BEH + + + 49 + 0629 + D8A9 + ARABIC LETTER TEH MARBUTA + + + 4A + 062A + D8AA + ARABIC LETTER TEH + + + 4B + 062B + D8AB + ARABIC LETTER THEH + + + 4C + 062C + D8AC + ARABIC LETTER JEEM + + + 4D + 062D + D8AD + ARABIC LETTER HAH + + + 4E + 062E + D8AE + ARABIC LETTER KHAH + + + 4F + 062F + D8AF + ARABIC LETTER DAL + + + 50 + 0630 + D8B0 + ARABIC LETTER THAL + + + 51 + 0631 + D8B1 + ARABIC LETTER REH + + + 52 + 0632 + D8B2 + ARABIC LETTER ZAIN + + + 53 + 0633 + D8B3 + ARABIC LETTER SEEN + + + 54 + 0634 + D8B4 + ARABIC LETTER SHEEN + + + 55 + 0635 + D8B5 + ARABIC LETTER SAD + + + 56 + 0636 + D8B6 + ARABIC LETTER DAD + + + 57 + 0637 + D8B7 + ARABIC LETTER TAH + + + 58 + 0638 + D8B8 + ARABIC LETTER ZAH + + + 59 + 0639 + D8B9 + ARABIC LETTER AIN + + + 5A + 063A + D8BA + ARABIC LETTER GHAIN + + + 5B + 005B + 5B + OPENING SQUARE BRACKET / LEFT SQUARE +BRACKET + + + 5D + 005D + 5D + CLOSING SQUARE BRACKET / RIGHT SQUARE +BRACKET + + + 60 + 0640 + D980 + ARABIC TATWEEL + + + 61 + 0641 + D981 + ARABIC LETTER FEH + + + 62 + 0642 + D982 + ARABIC LETTER QAF + + + 63 + 0643 + D983 + ARABIC LETTER KAF + + + 64 + 0644 + D984 + ARABIC LETTER LAM + + + 65 + 0645 + D985 + ARABIC LETTER MEEM + + + 66 + 0646 + D986 + ARABIC LETTER NOON + + + 67 + 0647 + D987 + ARABIC LETTER HEH + + + 68 + 0648 + D988 + ARABIC LETTER WAW + + + 69 + 0649 + D989 + ARABIC LETTER ALEF MAKSURA + + + 6A + 064A + D98A + ARABIC LETTER YEH + + + true + 6B + 064B + D98B + ARABIC FATHATAN + + + true + 6C + 064C + D98C + ARABIC DAMMATAN + + + true + 6D + 064D + D98D + ARABIC KASRATAN + + + true + 6E + 064E + D98E + ARABIC FATHA + + + true + 6F + 064F + D98F + ARABIC DAMMA + + + true + 70 + 0650 + D990 + ARABIC KASRA + + + true + 71 + 0651 + D991 + ARABIC SHADDA + + + true + 72 + 0652 + D992 + ARABIC SUKUN + + + 73 + 0671 + D9B1 + ARABIC LETTER ALEF WASLA + + + 74 + 0670 + D9B0 + ARABIC LETTER SUPERSCRIPT ALEF + + + 78 + 066C + D9AC + ARABIC THOUSANDS SEPARATOR + + + 79 + 201D + E2809D + RIGHT DOUBLE QUOTATION MARK + + + 7A + 201C + E2809C + LEFT DOUBLE QUOTATION MARK + + + + + A1 + 06FD + DBBD + DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI +AMPERSAND + + + A2 + 0672 + D9B2 + ARABIC LETTER ALEF WITH WAVY HAMZA +ABOVE + + + A3 + 0673 + D9B3 + ARABIC LETTER ALEF WITH WAVY HAMZA +BELOW + + + A4 + 0679 + D9B9 + ARABIC LETTER TTEH + + + A5 + 067A + D9BA + ARABIC LETTER TTEHEH + + + A6 + 067B + D9BB + ARABIC LETTER BBEH + + + A7 + 067C + D9BC + ARABIC LETTER TEH WITH RING + + + A8 + 067D + D9BD + ARABIC LETTER TEH WITH THREE DOTS ABOVE +DOWNWARDS + + + A9 + 067E + D9BE + ARABIC LETTER PEH + + + AA + 067F + D9BF + ARABIC LETTER TEHEH + + + AB + 0680 + DA80 + ARABIC LETTER BEHEH + + + AC + 0681 + DA81 + ARABIC LETTER HAH WITH HAMZA ABOVE + + + AD + 0682 + DA82 + ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL +ABOVE + + + AE + 0683 + DA83 + ARABIC LETTER NYEH + + + AF + 0684 + DA84 + ARABIC LETTER DYEH + + + B0 + 0685 + DA85 + ARABIC LETTER HAH WITH THREE DOTS ABOVE + + + B1 + 0686 + DA86 + ARABIC LETTER TCHEH + + + B2 + 06BF + DABF + ARABIC LETTER TCHEH WITH DOT ABOVE + + + B3 + 0687 + DA87 + ARABIC LETTER TCHEHEH + + + B4 + 0688 + DA88 + ARABIC LETTER DDAL + + + B5 + 0689 + DA89 + ARABIC LETTER DAL WITH RING + + + B6 + 068A + DA8A + ARABIC LETTER DAL WITH DOT BELOW + + + B7 + 068B + DA8B + ARABIC LETTER DAL WITH DOT BELOW AND SMALL +TAH + + + B8 + 068C + DA8C + ARABIC LETTER DAHAL + + + B9 + 068D + DA8D + ARABIC LETTER DDAHAL + + + BA + 068E + DA8E + ARABIC LETTER DUL + + + BB + 068F + DA8F + ARABIC LETTER DAL WITH THREE DOTS ABOVE +DOWNWARDS + + + BC + 0690 + DA90 + ARABIC LETTER DAL WITH FOUR DOTS ABOVE + + + BD + 0691 + DA91 + ARABIC LETTER RREH + + + BE + 0692 + DA92 + ARABIC LETTER REH WITH SMALL V + + + BF + 0693 + DA93 + ARABIC LETTER REH WITH RING + + + C0 + 0694 + DA94 + ARABIC LETTER REH WITH DOT BELOW + + + C1 + 0695 + DA95 + ARABIC LETTER REH WITH SMALL V BELOW + + + C2 + 0696 + DA96 + ARABIC LETTER REH WITH DOT BELOW AND DOT +ABOVE + + + C3 + 0697 + DA97 + ARABIC LETTER REH WITH TWO DOTS ABOVE + + + C4 + 0698 + DA98 + ARABIC LETTER JEH + + + C5 + 0699 + DA99 + ARABIC LETTER REH WITH FOUR DOTS ABOVE + + + C6 + 069A + DA9A + ARABIC LETTER SEEN WITH DOT BELOW AND DOT +ABOVE + + + C7 + 069B + DA9B + ARABIC LETTER SEEN WITH THREE DOTS BELOW + + + C8 + 069C + DA9C + ARABIC LETTER SEEN WITH THREE DOTS BELOW AND +THREE DOTS ABOVE + + + C9 + 06FA + DBBA + ARABIC LETTER SHEEN WITH DOT BELOW + + + CA + 069D + DA9D + ARABIC LETTER SAD WITH TWO DOTS BELOW + + + CB + 069E + DA9E + ARABIC LETTER SAD WITH THREE DOTS ABOVE + + + CC + 06FB + DBBB + ARABIC LETTER DAD WITH DOT BELOW + + + CD + 069F + DA9F + ARABIC LETTER TAH WITH THREE DOTS ABOVE + + + CE + 06A0 + DAA0 + ARABIC LETTER AIN WITH THREE DOTS ABOVE + + + CF + 06FC + DBBC + ARABIC LETTER GHAIN WITH DOT BELOW + + + D0 + 06A1 + DAA1 + ARABIC LETTER DOTLESS FEH + + + D1 + 06A2 + DAA2 + ARABIC LETTER FEH WITH DOT MOVED BELOW + + + D2 + 06A3 + DAA3 + ARABIC LETTER FEH WITH DOT BELOW + + + D3 + 06A4 + DAA4 + ARABIC LETTER VEH + + + D4 + 06A5 + DAA5 + ARABIC LETTER FEH WITH THREE DOTS BELOW + + + D5 + 06A6 + DAA6 + ARABIC LETTER PEHEH + + + D6 + 06A7 + DAA7 + ARABIC LETTER QAF WITH DOT ABOVE + + + D7 + 06A8 + DAA8 + ARABIC LETTER QAF WITH THREE DOTS ABOVE + + + D8 + 06A9 + DAA9 + ARABIC LETTER KEHEH + + + D9 + 06AA + DAAA + ARABIC LETTER SWASH KAF + + + DA + 06AB + DAAB + ARABIC LETTER KAF WITH RING + + + DB + 06AC + DAAC + ARABIC LETTER KAF WITH DOT ABOVE + + + DC + 06AD + DAAD + ARABIC LETTER NG + + + DD + 06AE + DAAE + ARABIC LETTER KAF WITH THREE DOTS BELOW + + + DE + 06AF + DAAF + ARABIC LETTER GAF + + + DF + 06B0 + DAB0 + ARABIC LETTER GAF WITH RING + + + E0 + 06B1 + DAB1 + ARABIC LETTER NGOEH + + + E1 + 06B2 + DAB2 + ARABIC LETTER GAF WITH TWO DOTS BELOW + + + E2 + 06B3 + DAB3 + ARABIC LETTER GUEH + + + E3 + 06B4 + DAB4 + ARABIC LETTER GAF WITH THREE DOTS ABOVE + + + E4 + 06B5 + DAB5 + ARABIC LETTER LAM WITH SMALL V + + + E5 + 06B6 + DAB6 + ARABIC LETTER LAM WITH DOT ABOVE + + + E6 + 06B7 + DAB7 + ARABIC LETTER LAM WITH THREE DOTS ABOVE + + + E7 + 06B8 + DAB8 + ARABIC LETTER LAM WITH THREE DOTS BELOW + + + E8 + 06BA + DABA + ARABIC LETTER NOON GHUNNA + + + E9 + 06BB + DABB + ARABIC LETTER RNOON + + + EA + 06BC + DABC + ARABIC LETTER NOON WITH RING + + + EB + 06BD + DABD + ARABIC LETTER NOON WITH THREE DOTS ABOVE + + + EC + 06B9 + DAB9 + ARABIC LETTER NOON WITH DOT BELOW + + + ED + 06BE + DABE + ARABIC LETTER HEH DOACHASHMEE + + + EE + 06C0 + DB80 + HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH +YEH ABOVE + + + EF + 06C4 + DB84 + ARABIC LETTER WAW WITH RING + + + F0 + 06C5 + DB85 + KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE + + + F1 + 06C6 + DB86 + ARABIC LETTER OE + + + F2 + 06CA + DB8A + ARABIC LETTER WAW WITH TWO DOTS ABOVE + + + F3 + 06CB + DB8B + ARABIC LETTER VE + + + F4 + 06CD + DB8D + ARABIC LETTER YEH WITH TAIL + + + F5 + 06CE + DB8E + ARABIC LETTER YEH WITH SMALL V + + + F6 + 06D0 + DB90 + ARABIC LETTER E + + + F7 + 06D2 + DB92 + ARABIC LETTER YEH BARREE + + + F8 + 06D3 + DB93 + ARABIC LETTER YEH BARREE WITH HAMZA +ABOVE + + + true + FD + 0306 + CC86 + SHORT E / COMBINING BREVE + + + true + FE + 030C + CC8C + SHORT U / COMBINING CARON + + + + + The first column in this table contains the MARC-8 code (in hex) for + the character as coming from the G0 graphic set, the second column + contains the MARC-8 code (in hex) for the character as coming from the G1 + graphic set, the third column contains the UCS/Unicode 16-bit code (in + hex), the fourth column contains the UTF-8 code (in hex) for the UCS + characters, the fifth column contains a representation of the character (where possible), + the sixth column contains the MARC character name, followed + by the UCS name. If the MARC name is the same as or very similar to the + UCS name, only the UCS name is given. + + + true + 21 + 0300 + CC80 + COMBINING GRAVE ACCENT + + + true + 22 + 0301 + CC81 + COMBINING ACUTE ACCENT + + + true + 23 + 0308 + CC88 + COMBINING DIAERESIS + + + true + 24 + 0342 + CD82 + COMBINING GREEK PERISPOMENI / CIRCUMFLEX + + + true + 25 + 0313 + CC93 + COMBINING COMMA ABOVE / SMOOTH +BREATHING + + + true + 26 + 0314 + CC94 + COMBINING REVERSED COMMA ABOVE / ROUGH +BREATHING + + + true + 27 + 0345 + CD85 + COMBINING GREEK YPOGEGRAMMENI / IOTA +SUBSCRIPT + + + 30 + 00AB + C2AB + LEFT-POINTING DOUBLE ANGLE QUOTATION +MARK + + + 31 + 00BB + C2BB + RIGHT-POINTING DOUBLE ANGLE QUOTATION +MARK + + + 32 + 201C + E2809C + LEFT DOUBLE QUOTATION MARK + + + 33 + 201D + E2809D + RIGHT DOUBLE QUOTATION MARK + + + 34 + 0374 + CDB4 + GREEK NUMERAL SIGN / UPPER PRIME + + + 35 + 0375 + CDB5 + GREEK LOWER NUMERAL SIGN / LOWER PRIME + + + 3B + 0387 + CE87 + GREEK ANO TELEIA / RAISED DOT, GREEK +SEMICOLON + + + 3F + 037E + CDBE + GREEK QUESTION MARK + + + 41 + 0391 + CE91 + GREEK CAPITAL LETTER ALPHA + + + 42 + 0392 + CE92 + GREEK CAPITAL LETTER BETA + + + 44 + 0393 + CE93 + GREEK CAPITAL LETTER GAMMA + + + 45 + 0394 + CE94 + GREEK CAPITAL LETTER DELTA + + + 46 + 0395 + CE95 + GREEK CAPITAL LETTER EPSILON + + + 47 + 03DA + CF9A + GREEK LETTER STIGMA + + + 48 + 03DC + CF9C + GREEK LETTER DIGAMMA + + + 49 + 0396 + CE96 + GREEK CAPITAL LETTER ZETA + + + 4A + 0397 + CE97 + GREEK CAPITAL LETTER ETA + + + 4B + 0398 + CE98 + GREEK CAPITAL LETTER THETA + + + 4C + 0399 + CE99 + GREEK CAPITAL LETTER IOTA + + + 4D + 039A + CE9A + GREEK CAPITAL LETTER KAPPA + + + 4E + 039B + CE9B + GREEK CAPITAL LETTER LAMDA + + + 4F + 039C + CE9C + GREEK CAPITAL LETTER MU + + + 50 + 039D + CE9D + GREEK CAPITAL LETTER NU + + + 51 + 039E + CE9E + GREEK CAPITAL LETTER XI + + + 52 + 039F + CE9F + GREEK CAPITAL LETTER OMICRON + + + 53 + 03A0 + CEA0 + GREEK CAPITAL LETTER PI + + + 54 + 03DE + CF9E + GREEK LETTER KOPPA + + + 55 + 03A1 + CEA1 + GREEK CAPITAL LETTER RHO + + + 56 + 03A3 + CEA3 + GREEK CAPITAL LETTER SIGMA + + + 58 + 03A4 + CEA4 + GREEK CAPITAL LETTER TAU + + + 59 + 03A5 + CEA5 + GREEK CAPITAL LETTER UPSILON + + + 5A + 03A6 + CEA6 + GREEK CAPITAL LETTER PHI + + + 5B + 03A7 + CEA7 + GREEK CAPITAL LETTER CHI + + + 5C + 03A8 + CEA8 + GREEK CAPITAL LETTER PSI + + + 5D + 03A9 + CEA9 + GREEK CAPITAL LETTER OMEGA + + + 5E + 03E0 + CFA0 + GREEK LETTER SAMPI + + + 61 + 03B1 + CEB1 + GREEK SMALL LETTER ALPHA + + + 62 + 03B2 + CEB2 + GREEK SMALL LETTER BETA / SMALL LETTER BETA +BEGINNING OF WORD + + + 63 + 03D0 + CF90 + GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF +WORD + + + 64 + 03B3 + CEB3 + GREEK SMALL LETTER GAMMA + + + 65 + 03B4 + CEB4 + GREEK SMALL LETTER DELTA + + + 66 + 03B5 + CEB5 + GREEK SMALL LETTER EPSILON + + + 67 + 03DB + CF9B + GREEK SMALL LETTER STIGMA + + + 68 + 03DD + CF9D + GREEK SMALL LETTER DIGAMMA + + + 69 + 03B6 + CEB6 + GREEK SMALL LETTER ZETA + + + 6A + 03B7 + CEB7 + GREEK SMALL LETTER ETA + + + 6B + 03B8 + CEB8 + GREEK SMALL LETTER THETA + + + 6C + 03B9 + CEB9 + GREEK SMALL LETTER IOTA + + + 6D + 03BA + CEBA + GREEK SMALL LETTER KAPPA + + + 6E + 03BB + CEBB + GREEK SMALL LETTER LAMDA + + + 6F + 03BC + CEBC + GREEK SMALL LETTER MU + + + 70 + 03BD + CEBD + GREEK SMALL LETTER NU + + + 71 + 03BE + CEBE + GREEK SMALL LETTER XI + + + 72 + 03BF + CEBF + GREEK SMALL LETTER OMICRON + + + 73 + 03C0 + CF80 + GREEK SMALL LETTER PI + + + 74 + 03DF + CF9F + GREEK SMALL LETTER KOPPA + + + 75 + 03C1 + CF81 + GREEK SMALL LETTER RHO + + + 76 + 03C3 + CF83 + GREEK SMALL LETTER SIGMA + + + 77 + 03C2 + CF82 + GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER +SIGMA END OF WORD + + + 78 + 03C4 + CF84 + GREEK SMALL LETTER TAU + + + 79 + 03C5 + CF85 + GREEK SMALL LETTER UPSILON + + + 7A + 03C6 + CF86 + GREEK SMALL LETTER PHI + + + 7B + 03C7 + CF87 + GREEK SMALL LETTER CHI + + + 7C + 03C8 + CF88 + GREEK SMALL LETTER PSI + + + 7D + 03C9 + CF89 + GREEK SMALL LETTER OMEGA + + + 7E + 03E1 + CFA1 + GREEK SMALL LETTER SAMPI + + + + + + + +

This table contains 13,478 mappings of character encodings for + East Asian ideographs from the East Asian Coded Character set (ANSI/NISO + Z39.64, or "EACC", including 10 "Version J" additions that did not appear + in the published standard) to character encodings in the Universal + Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes are given in + hexadecimal notation. Each character is presented on a separate row.

+

The first column contains the MARC-8 EACC 24-bit code (in hex), the + second column contains the corresponding UCS/Unicode 16-bit code (in hex), + the third column contains the UTF-8 code (in hex) for the UCS character, + the fourth column contains a representation of the character (where possible), + the fifth column + contains a character name or + description. Most East Asian ideographs are not given unique names in the + MARC-8 or UCS/Unicode.

+

The characters in this table are sorted in EACC character code + order.

+
+ + 212F30 + 3007 + E38087 + East Asian ideograph (number zero) + + + 213021 + 4E00 + E4B880 + East Asian ideograph + + + 213022 + 4E01 + E4B881 + East Asian ideograph + + + 213023 + 4E03 + E4B883 + East Asian ideograph + + + 213024 + 4E09 + E4B889 + East Asian ideograph + + + 213025 + 4E0B + E4B88B + East Asian ideograph + + + 213026 + 4E0A + E4B88A + East Asian ideograph + + + 213027 + 4E08 + E4B888 + East Asian ideograph + + + 213029 + 4E10 + E4B890 + East Asian ideograph + + + 21302A + 4E0D + E4B88D + East Asian ideograph + + + 21302B + 4E14 + E4B894 + East Asian ideograph + + + 21302C + 4E19 + E4B899 + East Asian ideograph + + + 21302D + 4E16 + E4B896 + East Asian ideograph + + + 21302E + 4E15 + E4B895 + East Asian ideograph + + + 21302F + 4E18 + E4B898 + East Asian ideograph + + + 213030 + 4E22 + E4B8A2 + East Asian ideograph + + + 213031 + 4E1E + E4B89E + East Asian ideograph + + + 213032 + 4E26 + E4B8A6 + East Asian ideograph + + + 213034 + 4E2D + E4B8AD + East Asian ideograph + + + 213035 + 4E32 + E4B8B2 + East Asian ideograph + + + 213036 + 51E1 + E587A1 + East Asian ideograph + + + 213037 + 4E38 + E4B8B8 + East Asian ideograph + + + 213038 + 4E39 + E4B8B9 + East Asian ideograph + + + 213039 + 4E3B + E4B8BB + East Asian ideograph + + + 21303A + 4E43 + E4B983 + East Asian ideograph + + + 21303B + 4E45 + E4B985 + East Asian ideograph + + + 21303D + 4E4B + E4B98B + East Asian ideograph + + + 21303E + 5C39 + E5B0B9 + East Asian ideograph + + + 21303F + 4E4F + E4B98F + East Asian ideograph + + + 213040 + 4E4E + E4B98E + East Asian ideograph + + + 213041 + 4E4D + E4B98D + East Asian ideograph + + + 213042 + 4E52 + E4B992 + East Asian ideograph + + + 213043 + 4E53 + E4B993 + East Asian ideograph + + + 213044 + 4E56 + E4B996 + East Asian ideograph + + + 213045 + 4E58 + E4B998 + East Asian ideograph + + + 213046 + 4E59 + E4B999 + East Asian ideograph + + + 213047 + 4E5D + E4B99D + East Asian ideograph + + + 213048 + 4E5F + E4B99F + East Asian ideograph + + + 213049 + 4E5E + E4B99E + East Asian ideograph + + + 21304B + 4E73 + E4B9B3 + East Asian ideograph + + + 21304C + 4E7E + E4B9BE + East Asian ideograph + + + 21304D + 4E82 + E4BA82 + East Asian ideograph + + + 213050 + 4E8B + E4BA8B + East Asian ideograph + + + 213051 + 4E8C + E4BA8C + East Asian ideograph + + + 213052 + 4E8E + E4BA8E + East Asian ideograph + + + 213053 + 4E95 + E4BA95 + East Asian ideograph + + + 213054 + 4E94 + E4BA94 + East Asian ideograph + + + 213055 + 4E92 + E4BA92 + East Asian ideograph + + + 213057 + 4E99 + E4BA99 + East Asian ideograph (variant of EACC 4B3057) + + + 213058 + 4E9E + E4BA9E + East Asian ideograph + + + 213059 + 4E9B + E4BA9B + East Asian ideograph + + + 21305A + 4E9F + E4BA9F + East Asian ideograph + + + 21305B + 4EA1 + E4BAA1 + East Asian ideograph + + + 21305C + 4EA6 + E4BAA6 + East Asian ideograph + + + 21305D + 4EA5 + E4BAA5 + East Asian ideograph + + + 21305E + 4EA4 + E4BAA4 + East Asian ideograph + + + 21305F + 4EA8 + E4BAA8 + East Asian ideograph + + + 213060 + 4EAB + E4BAAB + East Asian ideograph + + + 213061 + 4EAC + E4BAAC + East Asian ideograph + + + 213062 + 4EAD + E4BAAD + East Asian ideograph + + + 213063 + 4EAE + E4BAAE + East Asian ideograph + + + 213064 + 4EBA + E4BABA + East Asian ideograph + + + 213065 + 4ECA + E4BB8A + East Asian ideograph + + + 213066 + 4EC1 + E4BB81 + East Asian ideograph + + + 213068 + 4EC3 + E4BB83 + East Asian ideograph + + + 213069 + 4EC4 + E4BB84 + East Asian ideograph + + + 21306B + 4ECD + E4BB8D + East Asian ideograph + + + 21306C + 4EC7 + E4BB87 + East Asian ideograph + + + 21306D + 4ECB + E4BB8B + East Asian ideograph + + + 21306E + 4EE4 + E4BBA4 + East Asian ideograph + + + 21306F + 4ED8 + E4BB98 + East Asian ideograph + + + 213070 + 4ED5 + E4BB95 + East Asian ideograph + + + 213071 + 4ED6 + E4BB96 + East Asian ideograph + + + 213072 + 4EDE + E4BB9E + East Asian ideograph + + + 213073 + 4EE3 + E4BBA3 + East Asian ideograph + + + 213074 + 4ED4 + E4BB94 + East Asian ideograph + + + 213075 + 4ED7 + E4BB97 + East Asian ideograph + + + 213076 + 4ED9 + E4BB99 + East Asian ideograph + + + 213077 + 4EE5 + E4BBA5 + East Asian ideograph + + + 213078 + 4EFF + E4BBBF + East Asian ideograph + + + 213079 + 4F09 + E4BC89 + East Asian ideograph + + + 21307C + 4EFB + E4BBBB + East Asian ideograph + + + 21307D + 4F0A + E4BC8A + East Asian ideograph + + + 21307E + 4F15 + E4BC95 + East Asian ideograph + + + 213121 + 4F11 + E4BC91 + East Asian ideograph + + + 213122 + 4F10 + E4BC90 + East Asian ideograph + + + 213123 + 4F0F + E4BC8F + East Asian ideograph + + + 213124 + 4EF2 + E4BBB2 + East Asian ideograph + + + 213125 + 4F01 + E4BC81 + East Asian ideograph + + + 213126 + 4EF3 + E4BBB3 + East Asian ideograph + + + 213127 + 4EF6 + E4BBB6 + East Asian ideograph + + + 213128 + 4EF0 + E4BBB0 + East Asian ideograph + + + 21312A + 4F4F + E4BD8F + East Asian ideograph + + + 21312B + 4F4D + E4BD8D + East Asian ideograph + + + 21312C + 4F34 + E4BCB4 + East Asian ideograph + + + 21312D + 4F47 + E4BD87 + East Asian ideograph + + + 21312E + 4F57 + E4BD97 + East Asian ideograph + + + 21312F + 4F3A + E4BCBA + East Asian ideograph + + + 213130 + 4F5E + E4BD9E + East Asian ideograph + + + 213132 + 4F5B + E4BD9B + East Asian ideograph + + + 213133 + 4F55 + E4BD95 + East Asian ideograph + + + 213134 + 4F30 + E4BCB0 + East Asian ideograph + + + 213135 + 4F50 + E4BD90 + East Asian ideograph + + + 213136 + 4F51 + E4BD91 + East Asian ideograph + + + 213137 + 4F3D + E4BCBD + East Asian ideograph + + + 213138 + 4F48 + E4BD88 + East Asian ideograph + + + 213139 + 4F46 + E4BD86 + East Asian ideograph + + + 21313A + 4F38 + E4BCB8 + East Asian ideograph + + + 21313B + 4F43 + E4BD83 + East Asian ideograph + + + 21313C + 4F54 + E4BD94 + East Asian ideograph + + + 21313D + 4F3C + E4BCBC + East Asian ideograph + + + 21313E + 4F63 + E4BDA3 + East Asian ideograph + + + 21313F + 4F5C + E4BD9C + East Asian ideograph + + + 213140 + 4F60 + E4BDA0 + East Asian ideograph + + + 213141 + 4F2F + E4BCAF + East Asian ideograph + + + 213142 + 4F4E + E4BD8E + East Asian ideograph + + + 213143 + 4F5D + E4BD9D + East Asian ideograph + + + 213144 + 4F36 + E4BCB6 + East Asian ideograph + + + 213145 + 4F9D + E4BE9D + East Asian ideograph + + + 213146 + 4F6F + E4BDAF + East Asian ideograph + + + 213147 + 4F75 + E4BDB5 + East Asian ideograph + + + 213148 + 4F8D + E4BE8D + East Asian ideograph + + + 213149 + 4F73 + E4BDB3 + East Asian ideograph + + + 21314A + 4F7F + E4BDBF + East Asian ideograph + + + 21314B + 4F9B + E4BE9B + East Asian ideograph + + + 21314C + 4F86 + E4BE86 + East Asian ideograph + + + 21314D + 4F6C + E4BDAC + East Asian ideograph + + + 21314E + 4F8B + E4BE8B + East Asian ideograph + + + 21314F + 4F96 + E4BE96 + East Asian ideograph + + + 213151 + 4F83 + E4BE83 + East Asian ideograph + + + 213152 + 4F7B + E4BDBB + East Asian ideograph + + + 213153 + 4F88 + E4BE88 + East Asian ideograph + + + 213154 + 4F69 + E4BDA9 + East Asian ideograph + + + 213155 + 4F8F + E4BE8F + East Asian ideograph + + + 213156 + 4F7E + E4BDBE + East Asian ideograph + + + 213157 + 4FE1 + E4BFA1 + East Asian ideograph + + + 213158 + 4FD1 + E4BF91 + East Asian ideograph + + + 213159 + 4FB5 + E4BEB5 + East Asian ideograph + + + 21315A + 4FAF + E4BEAF + East Asian ideograph + + + 21315B + 4FBF + E4BEBF + East Asian ideograph + + + 21315C + 4FDE + E4BF9E + East Asian ideograph + + + 21315D + 4FE0 + E4BFA0 + East Asian ideograph + + + 21315E + 4FCF + E4BF8F + East Asian ideograph + + + 21315F + 4FB6 + E4BEB6 + East Asian ideograph + + + 213160 + 4FDA + E4BF9A + East Asian ideograph + + + 213161 + 4FDD + E4BF9D + East Asian ideograph + + + 213162 + 4FC3 + E4BF83 + East Asian ideograph + + + 213163 + 4FD8 + E4BF98 + East Asian ideograph + + + 213164 + 4FDF + E4BF9F + East Asian ideograph + + + 213165 + 4FCA + E4BF8A + East Asian ideograph + + + 213166 + 4FAE + E4BEAE + East Asian ideograph + + + 213167 + 4FD0 + E4BF90 + East Asian ideograph + + + 213168 + 4FC4 + E4BF84 + East Asian ideograph + + + 213169 + 4FC2 + E4BF82 + East Asian ideograph + + + 21316A + 4FCE + E4BF8E + East Asian ideograph + + + 21316B + 4FD7 + E4BF97 + East Asian ideograph + + + 21316C + 5009 + E58089 + East Asian ideograph + + + 21316E + 500D + E5808D + East Asian ideograph + + + 21316F + 4FEF + E4BFAF + East Asian ideograph + + + 213170 + 5026 + E580A6 + East Asian ideograph + + + 213171 + 500C + E5808C + East Asian ideograph + + + 213172 + 5025 + E580A5 + East Asian ideograph + + + 213173 + 5011 + E58091 + East Asian ideograph + + + 213174 + 4FF8 + E4BFB8 + East Asian ideograph + + + 213175 + 5028 + E580A8 + East Asian ideograph + + + 213176 + 5014 + E58094 + East Asian ideograph + + + 213177 + 5016 + E58096 + East Asian ideograph + + + 213178 + 5029 + E580A9 + East Asian ideograph + + + 213179 + 5006 + E58086 + East Asian ideograph + + + 21317B + 5012 + E58092 + East Asian ideograph + + + 21317C + 503C + E580BC + East Asian ideograph + + + 21317D + 501A + E5809A + East Asian ideograph + + + 21317E + 4FFA + E4BFBA + East Asian ideograph + + + 213221 + 5018 + E58098 + East Asian ideograph + + + 213222 + 4FF1 + E4BFB1 + East Asian ideograph + + + 213223 + 5021 + E580A1 + East Asian ideograph + + + 213224 + 500B + E5808B + East Asian ideograph + + + 213225 + 5019 + E58099 + East Asian ideograph + + + 213226 + 5000 + E58080 + East Asian ideograph + + + 213227 + 4FEE + E4BFAE + East Asian ideograph + + + 213228 + 4FF3 + E4BFB3 + East Asian ideograph + + + 213229 + 502D + E580AD + East Asian ideograph + + + 21322A + 5003 + E58083 + East Asian ideograph + + + 21322B + 4FFE + E4BFBE + East Asian ideograph + + + 21322C + 502A + E580AA + East Asian ideograph + + + 21322D + 502B + E580AB + East Asian ideograph + + + 21322E + 505C + E5819C + East Asian ideograph + + + 21322F + 504F + E5818F + East Asian ideograph + + + 213230 + 5065 + E581A5 + East Asian ideograph + + + 213231 + 5047 + E58187 + East Asian ideograph + + + 213232 + 505A + E5819A + East Asian ideograph + + + 213233 + 5049 + E58189 + East Asian ideograph + + + 213234 + 5043 + E58183 + East Asian ideograph + + + 213235 + 5074 + E581B4 + East Asian ideograph + + + 213236 + 5076 + E581B6 + East Asian ideograph + + + 213237 + 504E + E5818E + East Asian ideograph + + + 213238 + 5075 + E581B5 + East Asian ideograph + + + 213239 + 504C + E5818C + East Asian ideograph + + + 21323A + 5055 + E58195 + East Asian ideograph + + + 21323B + 500F + E5808F + East Asian ideograph + + + 21323C + 5077 + E581B7 + East Asian ideograph + + + 21323D + 508D + E5828D + East Asian ideograph + + + 21323E + 50A2 + E582A2 + East Asian ideograph + + + 21323F + 5085 + E58285 + East Asian ideograph + + + 213240 + 5099 + E58299 + East Asian ideograph + + + 213241 + 5091 + E58291 + East Asian ideograph + + + 213242 + 5080 + E58280 + East Asian ideograph + + + 213243 + 5096 + E58296 + East Asian ideograph + + + 213244 + 5098 + E58298 + East Asian ideograph + + + 213245 + 50AD + E582AD + East Asian ideograph + + + 213246 + 50B3 + E582B3 + East Asian ideograph + + + 213247 + 50B5 + E582B5 + East Asian ideograph + + + 213248 + 50B2 + E582B2 + East Asian ideograph + + + 213249 + 50C5 + E58385 + East Asian ideograph + + + 21324A + 50BE + E582BE + East Asian ideograph + + + 21324B + 50AC + E582AC + East Asian ideograph + + + 21324C + 50B7 + E582B7 + East Asian ideograph + + + 21324D + 50AF + E582AF + East Asian ideograph + + + 21324E + 50E7 + E583A7 + East Asian ideograph + + + 21324F + 50EE + E583AE + East Asian ideograph + + + 213250 + 50F1 + E583B1 + East Asian ideograph + + + 213251 + 50E5 + E583A5 + East Asian ideograph + + + 213252 + 50D6 + E58396 + East Asian ideograph + + + 213253 + 50ED + E583AD + East Asian ideograph + + + 213254 + 50DA + E5839A + East Asian ideograph + + + 213255 + 50D5 + E58395 + East Asian ideograph + + + 213256 + 507D + E581BD + East Asian ideograph + + + 213257 + 50CF + E5838F + East Asian ideograph + + + 213258 + 50D1 + E58391 + East Asian ideograph + + + 213259 + 5100 + E58480 + East Asian ideograph + + + 21325A + 5104 + E58484 + East Asian ideograph + + + 21325B + 50FB + E583BB + East Asian ideograph + + + 21325C + 50F5 + E583B5 + East Asian ideograph + + + 21325D + 50F9 + E583B9 + East Asian ideograph + + + 21325E + 5102 + E58482 + East Asian ideograph + + + 21325F + 510D + E5848D + East Asian ideograph + + + 213260 + 5108 + E58488 + East Asian ideograph + + + 213261 + 5109 + E58489 + East Asian ideograph + + + 213262 + 5110 + E58490 + East Asian ideograph + + + 213263 + 5118 + E58498 + East Asian ideograph + + + 213264 + 5112 + E58492 + East Asian ideograph + + + 213265 + 5114 + E58494 + East Asian ideograph + + + 213266 + 512A + E584AA + East Asian ideograph + + + 213267 + 511F + E5849F + East Asian ideograph + + + 213268 + 5121 + E584A1 + East Asian ideograph + + + 213269 + 5132 + E584B2 + East Asian ideograph + + + 21326A + 5137 + E584B7 + East Asian ideograph + + + 21326B + 513C + E584BC + East Asian ideograph + + + 21326C + 5140 + E58580 + East Asian ideograph + + + 21326D + 5143 + E58583 + East Asian ideograph + + + 21326E + 5141 + E58581 + East Asian ideograph + + + 21326F + 5145 + E58585 + East Asian ideograph + + + 213270 + 5144 + E58584 + East Asian ideograph + + + 213271 + 5146 + E58586 + East Asian ideograph + + + 213272 + 5149 + E58589 + East Asian ideograph + + + 213273 + 5147 + E58587 + East Asian ideograph + + + 213274 + 5148 + E58588 + East Asian ideograph + + + 213275 + 514C + E5858C + East Asian ideograph + + + 213277 + 514D + E5858D + East Asian ideograph + + + 213278 + 5155 + E58595 + East Asian ideograph + + + 213279 + 5154 + E58594 + East Asian ideograph + + + 21327A + 5152 + E58592 + East Asian ideograph + + + 21327B + 5157 + E58597 + East Asian ideograph + + + 21327C + 515C + E5859C + East Asian ideograph + + + 21327D + 5162 + E585A2 + East Asian ideograph + + + 21327E + 5165 + E585A5 + East Asian ideograph + + + 213321 + 5167 + E585A7 + East Asian ideograph + + + 213322 + 5168 + E585A8 + East Asian ideograph + + + 213323 + 5169 + E585A9 + East Asian ideograph + + + 213324 + 516B + E585AB + East Asian ideograph + + + 213325 + 516D + E585AD + East Asian ideograph + + + 213326 + 516E + E585AE + East Asian ideograph + + + 213327 + 516C + E585AC + East Asian ideograph + + + 213328 + 5171 + E585B1 + East Asian ideograph + + + 213329 + 5175 + E585B5 + East Asian ideograph + + + 21332A + 5176 + E585B6 + East Asian ideograph + + + 21332B + 5177 + E585B7 + East Asian ideograph + + + 21332C + 5178 + E585B8 + East Asian ideograph + + + 21332D + 517C + E585BC + East Asian ideograph + + + 21332E + 5180 + E58680 + East Asian ideograph + + + 21332F + 5189 + E58689 + East Asian ideograph + + + 213330 + 518C + E5868C + East Asian ideograph + + + 213331 + 518D + E5868D + East Asian ideograph + + + 213332 + 5192 + E58692 + East Asian ideograph + + + 213333 + 5191 + E58691 + East Asian ideograph + + + 213334 + 5195 + E58695 + East Asian ideograph + + + 213335 + 6700 + E69C80 + East Asian ideograph + + + 213336 + 5197 + E58697 + East Asian ideograph + + + 213337 + 51A0 + E586A0 + East Asian ideograph + + + 213339 + 51A5 + E586A5 + East Asian ideograph + + + 21333C + 51B0 + E586B0 + East Asian ideograph + + + 21333D + 51B6 + E586B6 + East Asian ideograph + + + 21333E + 51B7 + E586B7 + East Asian ideograph + + + 213340 + 51CD + E5878D + East Asian ideograph + + + 213341 + 51CC + E5878C + East Asian ideograph + + + 213344 + 51DC + E5879C + East Asian ideograph + + + 213345 + 51DD + E5879D + East Asian ideograph + + + 213347 + 51F0 + E587B0 + East Asian ideograph + + + 213348 + 51F1 + E587B1 + East Asian ideograph + + + 213349 + 51F3 + E587B3 + East Asian ideograph + + + 21334B + 51FA + E587BA + East Asian ideograph + + + 21334C + 51F9 + E587B9 + East Asian ideograph + + + 21334D + 51F8 + E587B8 + East Asian ideograph + + + 21334E + 51FD + E587BD + East Asian ideograph + + + 21334F + 5200 + E58880 + East Asian ideograph + + + 213350 + 5201 + E58881 + East Asian ideograph + + + 213351 + 5203 + E58883 + East Asian ideograph + + + 213352 + 5207 + E58887 + East Asian ideograph + + + 213353 + 5206 + E58886 + East Asian ideograph + + + 213354 + 5208 + E58888 + East Asian ideograph + + + 213355 + 520A + E5888A + East Asian ideograph + + + 213356 + 5211 + E58891 + East Asian ideograph + + + 213357 + 5217 + E58897 + East Asian ideograph + + + 213359 + 520E + E5888E + East Asian ideograph + + + 21335A + 5224 + E588A4 + East Asian ideograph + + + 21335B + 5225 + E588A5 + East Asian ideograph + + + 21335C + 5220 + E588A0 + East Asian ideograph + + + 21335D + 5228 + E588A8 + East Asian ideograph + + + 21335E + 5229 + E588A9 + East Asian ideograph + + + 21335F + 5238 + E588B8 + East Asian ideograph + + + 213360 + 523B + E588BB + East Asian ideograph + + + 213361 + 5237 + E588B7 + East Asian ideograph + + + 213362 + 5230 + E588B0 + East Asian ideograph + + + 213363 + 523A + E588BA + East Asian ideograph + + + 213366 + 5241 + E58981 + East Asian ideograph + + + 213367 + 5239 + E588B9 + East Asian ideograph + + + 213368 + 5243 + E58983 + East Asian ideograph + + + 213369 + 524D + E5898D + East Asian ideograph + + + 21336A + 524C + E5898C + East Asian ideograph + + + 21336B + 524B + E5898B + East Asian ideograph + + + 21336C + 524A + E5898A + East Asian ideograph + + + 21336D + 5247 + E58987 + East Asian ideograph + + + 21336E + 525C + E5899C + East Asian ideograph + + + 21336F + 5256 + E58996 + East Asian ideograph + + + 213370 + 525B + E5899B + East Asian ideograph + + + 213371 + 5254 + E58994 + East Asian ideograph + + + 213372 + 525D + E5899D + East Asian ideograph + + + 213373 + 526A + E589AA + East Asian ideograph + + + 213374 + 526F + E589AF + East Asian ideograph + + + 213375 + 5272 + E589B2 + East Asian ideograph + + + 213376 + 5274 + E589B4 + East Asian ideograph + + + 213377 + 5269 + E589A9 + East Asian ideograph + + + 213378 + 5275 + E589B5 + East Asian ideograph + + + 21337A + 527D + E589BD + East Asian ideograph + + + 21337B + 527F + E589BF + East Asian ideograph + + + 21337C + 5283 + E58A83 + East Asian ideograph + + + 21337D + 5288 + E58A88 + East Asian ideograph + + + 21337E + 5287 + E58A87 + East Asian ideograph + + + 213421 + 528D + E58A8D + East Asian ideograph + + + 213422 + 5289 + E58A89 + East Asian ideograph + + + 213423 + 5291 + E58A91 + East Asian ideograph + + + 213424 + 529B + E58A9B + East Asian ideograph + + + 213425 + 529F + E58A9F + East Asian ideograph + + + 213426 + 52A0 + E58AA0 + East Asian ideograph + + + 213427 + 52A3 + E58AA3 + East Asian ideograph + + + 213428 + 52AB + E58AAB + East Asian ideograph + + + 213429 + 52A9 + E58AA9 + East Asian ideograph + + + 21342A + 52AC + E58AAC + East Asian ideograph + + + 21342B + 52AA + E58AAA + East Asian ideograph + + + 21342C + 52BE + E58ABE + East Asian ideograph + + + 21342D + 52C7 + E58B87 + East Asian ideograph + + + 21342E + 52C3 + E58B83 + East Asian ideograph + + + 21342F + 52C1 + E58B81 + East Asian ideograph + + + 213430 + 52C9 + E58B89 + East Asian ideograph + + + 213431 + 52D8 + E58B98 + East Asian ideograph + + + 213432 + 52D2 + E58B92 + East Asian ideograph + + + 213433 + 52D9 + E58B99 + East Asian ideograph + + + 213434 + 52D5 + E58B95 + East Asian ideograph + + + 213435 + 52DE + E58B9E + East Asian ideograph + + + 213436 + 52DB + E58B9B + East Asian ideograph + + + 213437 + 52DD + E58B9D + East Asian ideograph + + + 213438 + 52E2 + E58BA2 + East Asian ideograph + + + 213439 + 52E4 + E58BA4 + East Asian ideograph + + + 21343A + 52DF + E58B9F + East Asian ideograph + + + 21343C + 52F5 + E58BB5 + East Asian ideograph + + + 21343D + 52F8 + E58BB8 + East Asian ideograph + + + 21343E + 52FB + E58BBB + East Asian ideograph + + + 213440 + 52FF + E58BBF + East Asian ideograph + + + 213441 + 5305 + E58C85 + East Asian ideograph + + + 213442 + 5306 + E58C86 + East Asian ideograph + + + 213443 + 5308 + E58C88 + East Asian ideograph + + + 213444 + 530D + E58C8D + East Asian ideograph + + + 213445 + 5310 + E58C90 + East Asian ideograph + + + 213446 + 530F + E58C8F + East Asian ideograph + + + 213447 + 5315 + E58C95 + East Asian ideograph + + + 213448 + 5316 + E58C96 + East Asian ideograph + + + 213449 + 5317 + E58C97 + East Asian ideograph + + + 21344A + 5319 + E58C99 + East Asian ideograph + + + 21344B + 53F5 + E58FB5 + East Asian ideograph + + + 21344C + 531D + E58C9D + East Asian ideograph + + + 21344D + 5321 + E58CA1 + East Asian ideograph + + + 21344E + 5320 + E58CA0 + East Asian ideograph + + + 21344F + 5323 + E58CA3 + East Asian ideograph + + + 213450 + 532A + E58CAA + East Asian ideograph + + + 213451 + 532F + E58CAF + East Asian ideograph + + + 213452 + 5331 + E58CB1 + East Asian ideograph + + + 213453 + 5339 + E58CB9 + East Asian ideograph + + + 213454 + 533E + E58CBE + East Asian ideograph + + + 213455 + 5340 + E58D80 + East Asian ideograph + + + 213456 + 533F + E58CBF + East Asian ideograph + + + 213457 + 5341 + E58D81 + East Asian ideograph + + + 213458 + 5343 + E58D83 + East Asian ideograph + + + 213459 + 5345 + E58D85 + East Asian ideograph + + + 21345A + 5348 + E58D88 + East Asian ideograph + + + 21345B + 5347 + E58D87 + East Asian ideograph + + + 21345C + 534A + E58D8A + East Asian ideograph + + + 21345D + 5349 + E58D89 + East Asian ideograph (variant of EACC 2D345D) + + + 21345F + 5352 + E58D92 + East Asian ideograph + + + 213460 + 5354 + E58D94 + East Asian ideograph + + + 213461 + 5353 + E58D93 + East Asian ideograph + + + 213462 + 5351 + E58D91 + East Asian ideograph + + + 213463 + 5357 + E58D97 + East Asian ideograph + + + 213464 + 535A + E58D9A + East Asian ideograph + + + 213466 + 535E + E58D9E + East Asian ideograph + + + 213467 + 5361 + E58DA1 + East Asian ideograph + + + 213469 + 5366 + E58DA6 + East Asian ideograph + + + 21346A + 536F + E58DAF + East Asian ideograph + + + 21346B + 536E + E58DAE + East Asian ideograph + + + 21346C + 5370 + E58DB0 + East Asian ideograph + + + 21346D + 5371 + E58DB1 + East Asian ideograph + + + 21346E + 537D + E58DBD + East Asian ideograph + + + 21346F + 5375 + E58DB5 + East Asian ideograph + + + 213471 + 5378 + E58DB8 + East Asian ideograph + + + 213473 + 537B + E58DBB + East Asian ideograph + + + 213474 + 537F + E58DBF + East Asian ideograph + + + 213475 + 5384 + E58E84 + East Asian ideograph + + + 213476 + 539A + E58E9A + East Asian ideograph + + + 213477 + 539D + E58E9D + East Asian ideograph + + + 213478 + 539F + E58E9F + East Asian ideograph + + + 213479 + 53A5 + E58EA5 + East Asian ideograph + + + 21347A + 53AD + E58EAD + East Asian ideograph + + + 21347B + 53B2 + E58EB2 + East Asian ideograph + + + 21347C + 53BB + E58EBB + East Asian ideograph + + + 21347D + 53C3 + E58F83 + East Asian ideograph + + + 21347E + 53C8 + E58F88 + East Asian ideograph + + + 213521 + 53C9 + E58F89 + East Asian ideograph + + + 213522 + 53CB + E58F8B + East Asian ideograph + + + 213523 + 53CA + E58F8A + East Asian ideograph + + + 213524 + 53CD + E58F8D + East Asian ideograph + + + 213525 + 53D6 + E58F96 + East Asian ideograph + + + 213526 + 53D4 + E58F94 + East Asian ideograph + + + 213527 + 53D7 + E58F97 + East Asian ideograph + + + 213528 + 53DB + E58F9B + East Asian ideograph + + + 213529 + 53DF + E58F9F + East Asian ideograph + + + 21352A + 66FC + E69BBC + East Asian ideograph + + + 21352B + 53E2 + E58FA2 + East Asian ideograph + + + 21352C + 53E3 + E58FA3 + East Asian ideograph + + + 21352D + 53F8 + E58FB8 + East Asian ideograph + + + 21352E + 53E4 + E58FA4 + East Asian ideograph + + + 21352F + 53EE + E58FAE + East Asian ideograph + + + 213530 + 53EF + E58FAF + East Asian ideograph + + + 213531 + 53E9 + E58FA9 + East Asian ideograph + + + 213532 + 53F3 + E58FB3 + East Asian ideograph + + + 213533 + 53FC + E58FBC + East Asian ideograph + + + 213534 + 53E8 + E58FA8 + East Asian ideograph + + + 213535 + 53E6 + E58FA6 + East Asian ideograph + + + 213536 + 53EC + E58FAC + East Asian ideograph + + + 213537 + 53EB + E58FAB + East Asian ideograph + + + 213538 + 53F0 + E58FB0 + East Asian ideograph (duplicate simplified) + + + 213539 + 53E5 + E58FA5 + East Asian ideograph + + + 21353A + 53F1 + E58FB1 + East Asian ideograph + + + 21353B + 53ED + E58FAD + East Asian ideograph + + + 21353C + 53EA + E58FAA + East Asian ideograph + + + 21353D + 53F2 + E58FB2 + East Asian ideograph + + + 21353F + 540B + E5908B + East Asian ideograph + + + 213540 + 5409 + E59089 + East Asian ideograph + + + 213541 + 5410 + E59090 + East Asian ideograph + + + 213542 + 540F + E5908F + East Asian ideograph + + + 213543 + 540C + E5908C + East Asian ideograph + + + 213544 + 540A + E5908A + East Asian ideograph + + + 213545 + 540D + E5908D + East Asian ideograph + + + 213546 + 5404 + E59084 + East Asian ideograph + + + 213547 + 5403 + E59083 + East Asian ideograph + + + 213548 + 5412 + E59092 + East Asian ideograph + + + 21354A + 5406 + E59086 + East Asian ideograph + + + 21354D + 542D + E590AD + East Asian ideograph + + + 21354E + 541D + E5909D + East Asian ideograph + + + 21354F + 541E + E5909E + East Asian ideograph + + + 213550 + 541B + E5909B + East Asian ideograph + + + 213551 + 544E + E5918E + East Asian ideograph + + + 213552 + 543E + E590BE + East Asian ideograph + + + 213553 + 5427 + E590A7 + East Asian ideograph + + + 213554 + 5440 + E59180 + East Asian ideograph + + + 213555 + 5431 + E590B1 + East Asian ideograph + + + 213556 + 5446 + E59186 + East Asian ideograph + + + 213557 + 543C + E590BC + East Asian ideograph + + + 213558 + 5443 + E59183 + East Asian ideograph + + + 213559 + 5426 + E590A6 + East Asian ideograph + + + 21355A + 5420 + E590A0 + East Asian ideograph + + + 21355B + 5436 + E590B6 + East Asian ideograph + + + 21355C + 5433 + E590B3 + East Asian ideograph + + + 21355D + 5435 + E590B5 + East Asian ideograph + + + 21355E + 542E + E590AE + East Asian ideograph + + + 21355F + 544A + E5918A + East Asian ideograph + + + 213560 + 5448 + E59188 + East Asian ideograph + + + 213561 + 543B + E590BB + East Asian ideograph + + + 213562 + 5438 + E590B8 + East Asian ideograph + + + 213563 + 5439 + E590B9 + East Asian ideograph + + + 213564 + 5442 + E59182 + East Asian ideograph + + + 213565 + 542B + E590AB + East Asian ideograph + + + 213566 + 541F + E5909F + East Asian ideograph + + + 213567 + 5429 + E590A9 + East Asian ideograph + + + 213568 + 5473 + E591B3 + East Asian ideograph + + + 213569 + 5462 + E591A2 + East Asian ideograph + + + 21356A + 5475 + E591B5 + East Asian ideograph + + + 21356B + 5495 + E59295 + East Asian ideograph + + + 21356C + 5478 + E591B8 + East Asian ideograph + + + 21356D + 5496 + E59296 + East Asian ideograph + + + 21356E + 5477 + E591B7 + East Asian ideograph + + + 21356F + 547B + E591BB + East Asian ideograph + + + 213571 + 5492 + E59292 + East Asian ideograph + + + 213572 + 5484 + E59284 + East Asian ideograph + + + 213573 + 547C + E591BC + East Asian ideograph + + + 213574 + 5468 + E591A8 + East Asian ideograph + + + 213575 + 5486 + E59286 + East Asian ideograph + + + 213576 + 548B + E5928B + East Asian ideograph + + + 213577 + 548C + E5928C + East Asian ideograph + + + 213578 + 5490 + E59290 + East Asian ideograph + + + 213579 + 547D + E591BD + East Asian ideograph + + + 21357A + 5476 + E591B6 + East Asian ideograph + + + 21357B + 5471 + E591B1 + East Asian ideograph + + + 21357C + 549A + E5929A + East Asian ideograph + + + 21357D + 548E + E5928E + East Asian ideograph + + + 21357E + 54A9 + E592A9 + East Asian ideograph + + + 213621 + 54AA + E592AA + East Asian ideograph + + + 213622 + 54A8 + E592A8 + East Asian ideograph + + + 213623 + 54AC + E592AC + East Asian ideograph + + + 213624 + 54C0 + E59380 + East Asian ideograph + + + 213625 + 54B3 + E592B3 + East Asian ideograph + + + 213626 + 54A6 + E592A6 + East Asian ideograph + + + 213627 + 54AB + E592AB + East Asian ideograph + + + 213628 + 54C7 + E59387 + East Asian ideograph + + + 213629 + 54C9 + E59389 + East Asian ideograph + + + 21362A + 54C4 + E59384 + East Asian ideograph + + + 21362B + 54C2 + E59382 + East Asian ideograph + + + 21362D + 54C1 + E59381 + East Asian ideograph + + + 21362F + 54CE + E5938E + East Asian ideograph + + + 213630 + 54B1 + E592B1 + East Asian ideograph + + + 213631 + 54BB + E592BB + East Asian ideograph + + + 213632 + 54AF + E592AF + East Asian ideograph + + + 213633 + 54C8 + E59388 + East Asian ideograph + + + 213634 + 5501 + E59481 + East Asian ideograph + + + 213635 + 54FC + E593BC + East Asian ideograph + + + 213636 + 5510 + E59490 + East Asian ideograph + + + 213637 + 54EA + E593AA + East Asian ideograph + + + 213638 + 5514 + E59494 + East Asian ideograph + + + 213639 + 54FA + E593BA + East Asian ideograph + + + 21363A + 54E5 + E593A5 + East Asian ideograph + + + 21363B + 54EE + E593AE + East Asian ideograph + + + 21363C + 54F2 + E593B2 + East Asian ideograph + + + 21363D + 54E8 + E593A8 + East Asian ideograph + + + 21363E + 54E1 + E593A1 + East Asian ideograph + + + 21363F + 54E9 + E593A9 + East Asian ideograph + + + 213640 + 54ED + E593AD + East Asian ideograph + + + 213641 + 5506 + E59486 + East Asian ideograph + + + 213642 + 5509 + E59489 + East Asian ideograph + + + 213643 + 54E6 + E593A6 + East Asian ideograph + + + 213644 + 5556 + E59596 + East Asian ideograph + + + 213645 + 5533 + E594B3 + East Asian ideograph + + + 213646 + 5546 + E59586 + East Asian ideograph + + + 213647 + 5537 + E594B7 + East Asian ideograph (Version J extension) + + + 213648 + 554F + E5958F + East Asian ideograph + + + 213649 + 555E + E5959E + East Asian ideograph + + + 21364A + 5566 + E595A6 + East Asian ideograph + + + 21364B + 556A + E595AA + East Asian ideograph + + + 21364C + 554A + E5958A + East Asian ideograph + + + 21364D + 5544 + E59584 + East Asian ideograph + + + 21364E + 555C + E5959C + East Asian ideograph + + + 21364F + 5531 + E594B1 + East Asian ideograph + + + 213650 + 5543 + E59583 + East Asian ideograph + + + 213651 + 552C + E594AC + East Asian ideograph + + + 213652 + 5561 + E595A1 + East Asian ideograph + + + 213653 + 553E + E594BE + East Asian ideograph + + + 213654 + 5563 + E595A3 + East Asian ideograph + + + 213655 + 5555 + E59595 + East Asian ideograph + + + 213656 + 552F + E594AF + East Asian ideograph + + + 213657 + 552E + E594AE + East Asian ideograph + + + 213658 + 5564 + E595A4 + East Asian ideograph + + + 213659 + 5538 + E594B8 + East Asian ideograph + + + 21365A + 55A7 + E596A7 + East Asian ideograph + + + 21365B + 5580 + E59680 + East Asian ideograph + + + 21365C + 557B + E595BB + East Asian ideograph + + + 21365D + 557C + E595BC + East Asian ideograph + + + 21365E + 5527 + E594A7 + East Asian ideograph + + + 21365F + 5594 + E59694 + East Asian ideograph + + + 213660 + 5587 + E59687 + East Asian ideograph + + + 213661 + 559C + E5969C + East Asian ideograph + + + 213662 + 558B + E5968B + East Asian ideograph + + + 213663 + 55AA + E596AA + East Asian ideograph + + + 213664 + 55B3 + E596B3 + East Asian ideograph + + + 213665 + 558A + E5968A + East Asian ideograph + + + 213666 + 5583 + E59683 + East Asian ideograph + + + 213667 + 55B1 + E596B1 + East Asian ideograph + + + 213668 + 55AE + E596AE + East Asian ideograph + + + 213669 + 5582 + E59682 + East Asian ideograph + + + 21366A + 559F + E5969F + East Asian ideograph + + + 21366B + 559D + E5969D + East Asian ideograph + + + 21366C + 5598 + E59698 + East Asian ideograph + + + 21366D + 559A + E5969A + East Asian ideograph + + + 21366E + 557E + E595BE + East Asian ideograph + + + 21366F + 55AC + E596AC + East Asian ideograph + + + 213670 + 5589 + E59689 + East Asian ideograph + + + 213671 + 55B2 + E596B2 + East Asian ideograph + + + 213672 + 55BB + E596BB + East Asian ideograph + + + 213673 + 55E8 + E597A8 + East Asian ideograph + + + 213674 + 55DF + E5979F + East Asian ideograph + + + 213675 + 55D1 + E59791 + East Asian ideograph + + + 213676 + 55DC + E5979C + East Asian ideograph + + + 213677 + 55E6 + E597A6 + East Asian ideograph + + + 213678 + 55C7 + E59787 + East Asian ideograph + + + 213679 + 55D3 + E59793 + East Asian ideograph + + + 21367A + 55CE + E5978E + East Asian ideograph + + + 21367B + 55E3 + E597A3 + East Asian ideograph + + + 21367C + 55EF + E597AF + East Asian ideograph + + + 21367D + 55E4 + E597A4 + East Asian ideograph + + + 21367E + 55C5 + E59785 + East Asian ideograph + + + 213721 + 55DA + E5979A + East Asian ideograph + + + 213722 + 55C6 + E59786 + East Asian ideograph + + + 213723 + 55E1 + E597A1 + East Asian ideograph + + + 213724 + 5600 + E59880 + East Asian ideograph + + + 213725 + 561B + E5989B + East Asian ideograph + + + 213726 + 55FE + E597BE + East Asian ideograph + + + 213727 + 5616 + E59896 + East Asian ideograph + + + 213728 + 55F7 + E597B7 + East Asian ideograph + + + 213729 + 5608 + E59888 + East Asian ideograph + + + 21372A + 561F + E5989F + East Asian ideograph + + + 21372B + 55FD + E597BD + East Asian ideograph + + + 21372C + 5606 + E59886 + East Asian ideograph (variant of EACC 4B372C) + + + 21372D + 5609 + E59889 + East Asian ideograph + + + 21372E + 5614 + E59894 + East Asian ideograph + + + 21372F + 560E + E5988E + East Asian ideograph + + + 213730 + 5617 + E59897 + East Asian ideograph + + + 213731 + 560D + E5988D + East Asian ideograph + + + 213732 + 562E + E598AE + East Asian ideograph + + + 213733 + 562F + E598AF + East Asian ideograph + + + 213734 + 564E + E5998E + East Asian ideograph + + + 213735 + 5636 + E598B6 + East Asian ideograph + + + 213736 + 5632 + E598B2 + East Asian ideograph + + + 213737 + 563B + E598BB + East Asian ideograph + + + 213738 + 5639 + E598B9 + East Asian ideograph + + + 213739 + 5657 + E59997 + East Asian ideograph + + + 21373B + 5653 + E59993 + East Asian ideograph + + + 21373C + 563F + E598BF + East Asian ideograph + + + 21373D + 5634 + E598B4 + East Asian ideograph + + + 21373E + 5637 + E598B7 + East Asian ideograph + + + 21373F + 5659 + E59999 + East Asian ideograph + + + 213740 + 5630 + E598B0 + East Asian ideograph + + + 213741 + 566B + E599AB + East Asian ideograph + + + 213742 + 5664 + E599A4 + East Asian ideograph + + + 213743 + 5669 + E599A9 + East Asian ideograph + + + 213744 + 5678 + E599B8 + East Asian ideograph + + + 213745 + 5674 + E599B4 + East Asian ideograph + + + 213746 + 5679 + E599B9 + East Asian ideograph + + + 213747 + 5665 + E599A5 + East Asian ideograph + + + 213748 + 566A + E599AA + East Asian ideograph + + + 213749 + 5668 + E599A8 + East Asian ideograph + + + 21374A + 5671 + E599B1 + East Asian ideograph + + + 21374B + 566F + E599AF + East Asian ideograph + + + 21374C + 5662 + E599A2 + East Asian ideograph (variant of EACC 4B374C) + + + 21374D + 566C + E599AC + East Asian ideograph + + + 21374E + 5680 + E59A80 + East Asian ideograph + + + 21374F + 568E + E59A8E + East Asian ideograph + + + 213750 + 5685 + E59A85 + East Asian ideograph + + + 213751 + 5687 + E59A87 + East Asian ideograph + + + 213752 + 5690 + E59A90 + East Asian ideograph + + + 213753 + 568F + E59A8F + East Asian ideograph + + + 213754 + 5695 + E59A95 + East Asian ideograph + + + 213755 + 56AE + E59AAE + East Asian ideograph (variant of EACC 453755) + + + 213756 + 56A8 + E59AA8 + East Asian ideograph + + + 213757 + 56B0 + E59AB0 + East Asian ideograph + + + 213758 + 56A5 + E59AA5 + East Asian ideograph + + + 213759 + 56B7 + E59AB7 + East Asian ideograph + + + 21375A + 56B4 + E59AB4 + East Asian ideograph + + + 21375B + 56B6 + E59AB6 + East Asian ideograph + + + 21375C + 56C0 + E59B80 + East Asian ideograph + + + 21375D + 56C1 + E59B81 + East Asian ideograph + + + 21375E + 56C2 + E59B82 + East Asian ideograph + + + 21375F + 56BC + E59ABC + East Asian ideograph + + + 213760 + 56CA + E59B8A + East Asian ideograph + + + 213761 + 56C9 + E59B89 + East Asian ideograph + + + 213762 + 56C8 + E59B88 + East Asian ideograph + + + 213764 + 56D1 + E59B91 + East Asian ideograph + + + 213765 + 56DB + E59B9B + East Asian ideograph + + + 213766 + 56DA + E59B9A + East Asian ideograph + + + 213767 + 56E0 + E59BA0 + East Asian ideograph + + + 213768 + 56DE + E59B9E + East Asian ideograph + + + 213769 + 56E4 + E59BA4 + East Asian ideograph + + + 21376B + 56F1 + E59BB1 + East Asian ideograph + + + 21376C + 56FA + E59BBA + East Asian ideograph + + + 21376D + 5703 + E59C83 + East Asian ideograph + + + 21376E + 5708 + E59C88 + East Asian ideograph + + + 21376F + 570B + E59C8B + East Asian ideograph + + + 213770 + 570D + E59C8D + East Asian ideograph + + + 213771 + 5712 + E59C92 + East Asian ideograph + + + 213772 + 5713 + E59C93 + East Asian ideograph + + + 213773 + 5718 + E59C98 + East Asian ideograph + + + 213774 + 5716 + E59C96 + East Asian ideograph + + + 213775 + 571F + E59C9F + East Asian ideograph + + + 213777 + 572D + E59CAD + East Asian ideograph + + + 213778 + 572F + E59CAF + East Asian ideograph + + + 213779 + 5730 + E59CB0 + East Asian ideograph + + + 21377A + 5728 + E59CA8 + East Asian ideograph + + + 21377B + 5733 + E59CB3 + East Asian ideograph + + + 21377C + 5751 + E59D91 + East Asian ideograph + + + 21377D + 574A + E59D8A + East Asian ideograph + + + 213821 + 5740 + E59D80 + East Asian ideograph + + + 213822 + 5747 + E59D87 + East Asian ideograph + + + 213823 + 574D + E59D8D + East Asian ideograph + + + 213824 + 573E + E59CBE + East Asian ideograph + + + 213825 + 574E + E59D8E + East Asian ideograph + + + 213827 + 5783 + E59E83 + East Asian ideograph + + + 213828 + 576A + E59DAA + East Asian ideograph + + + 213829 + 5769 + E59DA9 + East Asian ideograph + + + 21382A + 5777 + E59DB7 + East Asian ideograph + + + 21382B + 5761 + E59DA1 + East Asian ideograph + + + 21382C + 5764 + E59DA4 + East Asian ideograph + + + 21382D + 5766 + E59DA6 + East Asian ideograph + + + 21382E + 5782 + E59E82 + East Asian ideograph + + + 21382F + 577C + E59DBC + East Asian ideograph + + + 213830 + 57A0 + E59EA0 + East Asian ideograph + + + 213831 + 578B + E59E8B + East Asian ideograph + + + 213832 + 57A3 + E59EA3 + East Asian ideograph + + + 213833 + 57AE + E59EAE + East Asian ideograph + + + 213834 + 57A2 + E59EA2 + East Asian ideograph + + + 213835 + 57D4 + E59F94 + East Asian ideograph + + + 213836 + 57C2 + E59F82 + East Asian ideograph + + + 213837 + 57CE + E59F8E + East Asian ideograph + + + 213838 + 57CB + E59F8B + East Asian ideograph + + + 213839 + 57C3 + E59F83 + East Asian ideograph + + + 21383A + 57F9 + E59FB9 + East Asian ideograph + + + 21383B + 57F7 + E59FB7 + East Asian ideograph + + + 21383C + 57FA + E59FBA + East Asian ideograph + + + 21383D + 57DF + E59F9F + East Asian ideograph + + + 21383E + 580A + E5A08A + East Asian ideograph + + + 21383F + 5805 + E5A085 + East Asian ideograph + + + 213840 + 5802 + E5A082 + East Asian ideograph + + + 213841 + 5806 + E5A086 + East Asian ideograph + + + 213842 + 57E4 + E59FA4 + East Asian ideograph + + + 213843 + 57E0 + E59FA0 + East Asian ideograph + + + 213844 + 5831 + E5A0B1 + East Asian ideograph + + + 213845 + 582F + E5A0AF + East Asian ideograph + + + 213846 + 5835 + E5A0B5 + East Asian ideograph + + + 213847 + 582A + E5A0AA + East Asian ideograph + + + 213848 + 5830 + E5A0B0 + East Asian ideograph + + + 213849 + 5824 + E5A0A4 + East Asian ideograph + + + 21384A + 5834 + E5A0B4 + East Asian ideograph + + + 21384B + 5821 + E5A0A1 + East Asian ideograph + + + 21384C + 585E + E5A19E + East Asian ideograph + + + 21384D + 5857 + E5A197 + East Asian ideograph + + + 21384E + 5858 + E5A198 + East Asian ideograph + + + 21384F + 5851 + E5A191 + East Asian ideograph + + + 213850 + 586B + E5A1AB + East Asian ideograph + + + 213851 + 584C + E5A18C + East Asian ideograph + + + 213852 + 585A + E5A19A + East Asian ideograph + + + 213853 + 586D + E5A1AD + East Asian ideograph + + + 213854 + 5854 + E5A194 + East Asian ideograph + + + 213855 + 5862 + E5A1A2 + East Asian ideograph + + + 213856 + 584A + E5A18A + East Asian ideograph + + + 213857 + 5883 + E5A283 + East Asian ideograph + + + 213858 + 587E + E5A1BE + East Asian ideograph + + + 213859 + 5875 + E5A1B5 + East Asian ideograph + + + 21385A + 588A + E5A28A + East Asian ideograph + + + 21385B + 5879 + E5A1B9 + East Asian ideograph + + + 21385C + 5885 + E5A285 + East Asian ideograph + + + 21385D + 5893 + E5A293 + East Asian ideograph + + + 21385E + 589E + E5A29E + East Asian ideograph + + + 21385F + 5880 + E5A280 + East Asian ideograph + + + 213860 + 58B3 + E5A2B3 + East Asian ideograph + + + 213861 + 589C + E5A29C + East Asian ideograph + + + 213862 + 58AE + E5A2AE + East Asian ideograph + + + 213863 + 589F + E5A29F + East Asian ideograph + + + 213864 + 58C7 + E5A387 + East Asian ideograph (variant of EACC 4B3864) + + + 213865 + 58C5 + E5A385 + East Asian ideograph + + + 213866 + 58C1 + E5A381 + East Asian ideograph + + + 213867 + 58BE + E5A2BE + East Asian ideograph + + + 213868 + 58D5 + E5A395 + East Asian ideograph + + + 213869 + 58D3 + E5A393 + East Asian ideograph + + + 21386A + 58D1 + E5A391 + East Asian ideograph + + + 21386B + 58D9 + E5A399 + East Asian ideograph + + + 21386C + 58D8 + E5A398 + East Asian ideograph + + + 21386D + 58DF + E5A39F + East Asian ideograph + + + 21386E + 58DE + E5A39E + East Asian ideograph + + + 21386F + 58E2 + E5A3A2 + East Asian ideograph + + + 213870 + 58E4 + E5A3A4 + East Asian ideograph + + + 213871 + 58E9 + E5A3A9 + East Asian ideograph + + + 213872 + 58EB + E5A3AB + East Asian ideograph + + + 213873 + 58EC + E5A3AC + East Asian ideograph + + + 213874 + 58EF + E5A3AF + East Asian ideograph + + + 213876 + 58FA + E5A3BA + East Asian ideograph + + + 213877 + 58FD + E5A3BD + East Asian ideograph + + + 213878 + 590F + E5A48F + East Asian ideograph + + + 213879 + 5914 + E5A494 + East Asian ideograph + + + 21387A + 5915 + E5A495 + East Asian ideograph + + + 21387B + 5916 + E5A496 + East Asian ideograph + + + 21387C + 5919 + E5A499 + East Asian ideograph + + + 21387D + 591A + E5A49A + East Asian ideograph + + + 21387E + 591C + E5A49C + East Asian ideograph + + + 213921 + 5920 + E5A4A0 + East Asian ideograph + + + 213922 + 5924 + E5A4A4 + East Asian ideograph + + + 213923 + 5925 + E5A4A5 + East Asian ideograph + + + 213924 + 5922 + E5A4A2 + East Asian ideograph + + + 213925 + 5927 + E5A4A7 + East Asian ideograph + + + 213926 + 592A + E5A4AA + East Asian ideograph + + + 213927 + 592B + E5A4AB + East Asian ideograph + + + 213928 + 5929 + E5A4A9 + East Asian ideograph + + + 213929 + 592D + E5A4AD + East Asian ideograph + + + 21392A + 592E + E5A4AE + East Asian ideograph + + + 21392B + 5931 + E5A4B1 + East Asian ideograph + + + 21392C + 5937 + E5A4B7 + East Asian ideograph + + + 21392E + 593E + E5A4BE + East Asian ideograph + + + 21392F + 5954 + E5A594 + East Asian ideograph + + + 213930 + 5949 + E5A589 + East Asian ideograph + + + 213931 + 5948 + E5A588 + East Asian ideograph + + + 213932 + 5947 + E5A587 + East Asian ideograph + + + 213933 + 5944 + E5A584 + East Asian ideograph + + + 213934 + 5955 + E5A595 + East Asian ideograph + + + 213935 + 5951 + E5A591 + East Asian ideograph + + + 213936 + 594E + E5A58E + East Asian ideograph + + + 213937 + 594F + E5A58F + East Asian ideograph + + + 213938 + 5950 + E5A590 + East Asian ideograph + + + 213939 + 5957 + E5A597 + East Asian ideograph + + + 21393A + 5958 + E5A598 + East Asian ideograph + + + 21393B + 595A + E5A59A + East Asian ideograph + + + 21393C + 5960 + E5A5A0 + East Asian ideograph + + + 21393D + 5962 + E5A5A2 + East Asian ideograph + + + 21393E + 5967 + E5A5A7 + East Asian ideograph + + + 21393F + 5969 + E5A5A9 + East Asian ideograph + + + 213940 + 596A + E5A5AA + East Asian ideograph + + + 213941 + 596E + E5A5AE + East Asian ideograph + + + 213942 + 5973 + E5A5B3 + East Asian ideograph + + + 213943 + 5974 + E5A5B4 + East Asian ideograph + + + 213944 + 5976 + E5A5B6 + East Asian ideograph + + + 213945 + 5984 + E5A684 + East Asian ideograph + + + 213946 + 5983 + E5A683 + East Asian ideograph + + + 213947 + 5978 + E5A5B8 + East Asian ideograph + + + 213948 + 597D + E5A5BD + East Asian ideograph + + + 213949 + 5979 + E5A5B9 + East Asian ideograph + + + 21394A + 5982 + E5A682 + East Asian ideograph + + + 21394B + 5981 + E5A681 + East Asian ideograph + + + 21394C + 59A8 + E5A6A8 + East Asian ideograph + + + 21394D + 5992 + E5A692 + East Asian ideograph + + + 21394F + 59A4 + E5A6A4 + East Asian ideograph + + + 213950 + 59A3 + E5A6A3 + East Asian ideograph + + + 213951 + 5993 + E5A693 + East Asian ideograph + + + 213952 + 599E + E5A69E + East Asian ideograph + + + 213953 + 599D + E5A69D + East Asian ideograph + + + 213954 + 5999 + E5A699 + East Asian ideograph + + + 213955 + 59A5 + E5A6A5 + East Asian ideograph + + + 213956 + 598A + E5A68A + East Asian ideograph + + + 213957 + 5996 + E5A696 + East Asian ideograph + + + 213958 + 59BE + E5A6BE + East Asian ideograph + + + 213959 + 59BB + E5A6BB + East Asian ideograph + + + 21395A + 59AE + E5A6AE + East Asian ideograph + + + 21395B + 59D1 + E5A791 + East Asian ideograph + + + 21395C + 59B9 + E5A6B9 + East Asian ideograph + + + 21395D + 59C6 + E5A786 + East Asian ideograph + + + 21395E + 59D0 + E5A790 + East Asian ideograph + + + 21395F + 59D7 + E5A797 + East Asian ideograph + + + 213960 + 59AF + E5A6AF + East Asian ideograph + + + 213961 + 59D2 + E5A792 + East Asian ideograph + + + 213962 + 59D3 + E5A793 + East Asian ideograph + + + 213963 + 59CA + E5A78A + East Asian ideograph + + + 213965 + 59CB + E5A78B + East Asian ideograph + + + 213966 + 59D4 + E5A794 + East Asian ideograph + + + 213967 + 59E3 + E5A7A3 + East Asian ideograph + + + 213969 + 59FF + E5A7BF + East Asian ideograph + + + 21396A + 59D8 + E5A798 + East Asian ideograph + + + 21396B + 5A03 + E5A883 + East Asian ideograph + + + 21396C + 59E8 + E5A7A8 + East Asian ideograph + + + 21396D + 59E5 + E5A7A5 + East Asian ideograph + + + 21396E + 59EA + E5A7AA + East Asian ideograph + + + 21396F + 5A01 + E5A881 + East Asian ideograph + + + 213970 + 59FB + E5A7BB + East Asian ideograph + + + 213971 + 59E6 + E5A7A6 + East Asian ideograph + + + 213972 + 59DA + E5A79A + East Asian ideograph + + + 213973 + 5A11 + E5A891 + East Asian ideograph + + + 213974 + 5A18 + E5A898 + East Asian ideograph + + + 213975 + 5A23 + E5A8A3 + East Asian ideograph + + + 213976 + 5A1C + E5A89C + East Asian ideograph + + + 213977 + 5A13 + E5A893 + East Asian ideograph + + + 213978 + 59EC + E5A7AC + East Asian ideograph + + + 213979 + 5A20 + E5A8A0 + East Asian ideograph + + + 21397A + 5A1F + E5A89F + East Asian ideograph + + + 21397B + 5A1B + E5A89B + East Asian ideograph + + + 21397C + 5A0C + E5A88C + East Asian ideograph + + + 21397D + 5A29 + E5A8A9 + East Asian ideograph + + + 21397E + 5A25 + E5A8A5 + East Asian ideograph + + + 213A21 + 5A46 + E5A986 + East Asian ideograph + + + 213A22 + 5A49 + E5A989 + East Asian ideograph + + + 213A23 + 5A6A + E5A9AA + East Asian ideograph + + + 213A24 + 5A36 + E5A8B6 + East Asian ideograph + + + 213A25 + 5A4A + E5A98A + East Asian ideograph + + + 213A26 + 5A40 + E5A980 + East Asian ideograph + + + 213A27 + 5A66 + E5A9A6 + East Asian ideograph + + + 213A28 + 5A41 + E5A981 + East Asian ideograph + + + 213A29 + 5A3C + E5A8BC + East Asian ideograph + + + 213A2A + 5A62 + E5A9A2 + East Asian ideograph + + + 213A2B + 5A5A + E5A99A + East Asian ideograph + + + 213A2C + 5A77 + E5A9B7 + East Asian ideograph + + + 213A2D + 5A9A + E5AA9A + East Asian ideograph + + + 213A2E + 5A92 + E5AA92 + East Asian ideograph + + + 213A2F + 5A7F + E5A9BF + East Asian ideograph + + + 213A30 + 5ABC + E5AABC + East Asian ideograph + + + 213A31 + 5A9B + E5AA9B + East Asian ideograph + + + 213A32 + 5ACC + E5AB8C + East Asian ideograph + + + 213A33 + 5AC1 + E5AB81 + East Asian ideograph + + + 213A34 + 5AC9 + E5AB89 + East Asian ideograph + + + 213A35 + 5ABE + E5AABE + East Asian ideograph + + + 213A36 + 5ABD + E5AABD + East Asian ideograph + + + 213A37 + 5AB2 + E5AAB2 + East Asian ideograph + + + 213A38 + 5AC2 + E5AB82 + East Asian ideograph + + + 213A39 + 5AB3 + E5AAB3 + East Asian ideograph + + + 213A3A + 5AE1 + E5ABA1 + East Asian ideograph + + + 213A3B + 5AD7 + E5AB97 + East Asian ideograph + + + 213A3C + 5AD6 + E5AB96 + East Asian ideograph + + + 213A3D + 5AE3 + E5ABA3 + East Asian ideograph + + + 213A3E + 5AE9 + E5ABA9 + East Asian ideograph + + + 213A3F + 5AD8 + E5AB98 + East Asian ideograph + + + 213A40 + 5AE6 + E5ABA6 + East Asian ideograph + + + 213A41 + 5AFB + E5ABBB + East Asian ideograph + + + 213A42 + 5B09 + E5AC89 + East Asian ideograph + + + 213A43 + 5B0B + E5AC8B + East Asian ideograph + + + 213A44 + 5B0C + E5AC8C + East Asian ideograph + + + 213A45 + 5AF5 + E5ABB5 + East Asian ideograph + + + 213A46 + 5B34 + E5ACB4 + East Asian ideograph + + + 213A47 + 5B1D + E5AC9D + East Asian ideograph + + + 213A48 + 5B2A + E5ACAA + East Asian ideograph + + + 213A49 + 5B24 + E5ACA4 + East Asian ideograph + + + 213A4A + 5B30 + E5ACB0 + East Asian ideograph + + + 213A4B + 5B38 + E5ACB8 + East Asian ideograph + + + 213A4C + 5B40 + E5AD80 + East Asian ideograph + + + 213A4D + 5B50 + E5AD90 + East Asian ideograph + + + 213A4E + 5B51 + E5AD91 + East Asian ideograph + + + 213A4F + 5B53 + E5AD93 + East Asian ideograph + + + 213A50 + 5B54 + E5AD94 + East Asian ideograph + + + 213A51 + 5B55 + E5AD95 + East Asian ideograph + + + 213A52 + 5B57 + E5AD97 + East Asian ideograph + + + 213A53 + 5B58 + E5AD98 + East Asian ideograph + + + 213A54 + 5B5D + E5AD9D + East Asian ideograph + + + 213A55 + 5B5C + E5AD9C + East Asian ideograph + + + 213A57 + 5B5F + E5AD9F + East Asian ideograph + + + 213A58 + 5B63 + E5ADA3 + East Asian ideograph + + + 213A59 + 5B64 + E5ADA4 + East Asian ideograph + + + 213A5A + 5B69 + E5ADA9 + East Asian ideograph + + + 213A5B + 5B6B + E5ADAB + East Asian ideograph + + + 213A5C + 5B70 + E5ADB0 + East Asian ideograph + + + 213A5D + 5B73 + E5ADB3 + East Asian ideograph + + + 213A5E + 5B71 + E5ADB1 + East Asian ideograph + + + 213A5F + 5B75 + E5ADB5 + East Asian ideograph + + + 213A60 + 5B78 + E5ADB8 + East Asian ideograph + + + 213A61 + 5B7A + E5ADBA + East Asian ideograph + + + 213A62 + 5B7D + E5ADBD + East Asian ideograph + + + 213A63 + 5B7F + E5ADBF + East Asian ideograph + + + 213A65 + 5B87 + E5AE87 + East Asian ideograph + + + 213A66 + 5B88 + E5AE88 + East Asian ideograph + + + 213A67 + 5B89 + E5AE89 + East Asian ideograph + + + 213A68 + 5B85 + E5AE85 + East Asian ideograph + + + 213A69 + 5B8C + E5AE8C + East Asian ideograph + + + 213A6A + 5B8B + E5AE8B + East Asian ideograph + + + 213A6B + 5B8F + E5AE8F + East Asian ideograph + + + 213A6C + 5B97 + E5AE97 + East Asian ideograph + + + 213A6D + 5B9A + E5AE9A + East Asian ideograph + + + 213A6E + 5B9C + E5AE9C + East Asian ideograph + + + 213A6F + 5B98 + E5AE98 + East Asian ideograph + + + 213A70 + 5B99 + E5AE99 + East Asian ideograph + + + 213A71 + 5B9B + E5AE9B + East Asian ideograph + + + 213A72 + 5BA5 + E5AEA5 + East Asian ideograph + + + 213A73 + 5BA3 + E5AEA3 + East Asian ideograph + + + 213A74 + 5BA6 + E5AEA6 + East Asian ideograph + + + 213A75 + 5BA4 + E5AEA4 + East Asian ideograph + + + 213A76 + 5BA2 + E5AEA2 + East Asian ideograph + + + 213A77 + 5BB0 + E5AEB0 + East Asian ideograph + + + 213A78 + 5BB8 + E5AEB8 + East Asian ideograph + + + 213A7A + 5BB5 + E5AEB5 + East Asian ideograph + + + 213A7B + 5BB4 + E5AEB4 + East Asian ideograph + + + 213A7C + 5BAE + E5AEAE + East Asian ideograph + + + 213A7D + 5BB9 + E5AEB9 + East Asian ideograph + + + 213A7E + 5BB3 + E5AEB3 + East Asian ideograph + + + 213B21 + 5BC6 + E5AF86 + East Asian ideograph + + + 213B22 + 5BC7 + E5AF87 + East Asian ideograph + + + 213B23 + 5BC5 + E5AF85 + East Asian ideograph + + + 213B24 + 5BC4 + E5AF84 + East Asian ideograph + + + 213B25 + 5BC2 + E5AF82 + East Asian ideograph + + + 213B26 + 5BBF + E5AEBF + East Asian ideograph + + + 213B27 + 5BCC + E5AF8C + East Asian ideograph + + + 213B28 + 5BD2 + E5AF92 + East Asian ideograph + + + 213B29 + 5BD0 + E5AF90 + East Asian ideograph + + + 213B2A + 5BD3 + E5AF93 + East Asian ideograph + + + 213B2B + 5BE1 + E5AFA1 + East Asian ideograph + + + 213B2C + 5BE5 + E5AFA5 + East Asian ideograph + + + 213B2D + 5BE8 + E5AFA8 + East Asian ideograph + + + 213B2E + 5BE2 + E5AFA2 + East Asian ideograph + + + 213B2F + 5BE4 + E5AFA4 + East Asian ideograph + + + 213B30 + 5BDE + E5AF9E + East Asian ideograph + + + 213B31 + 5BE6 + E5AFA6 + East Asian ideograph + + + 213B32 + 5BE7 + E5AFA7 + East Asian ideograph + + + 213B33 + 5BDF + E5AF9F + East Asian ideograph + + + 213B34 + 5BEE + E5AFAE + East Asian ideograph + + + 213B35 + 5BEC + E5AFAC + East Asian ideograph + + + 213B36 + 5BE9 + E5AFA9 + East Asian ideograph + + + 213B37 + 5BEB + E5AFAB + East Asian ideograph + + + 213B38 + 5BF5 + E5AFB5 + East Asian ideograph + + + 213B39 + 5BF6 + E5AFB6 + East Asian ideograph + + + 213B3A + 5BF8 + E5AFB8 + East Asian ideograph + + + 213B3B + 5BFA + E5AFBA + East Asian ideograph + + + 213B3C + 5C01 + E5B081 + East Asian ideograph + + + 213B3D + 5C04 + E5B084 + East Asian ideograph + + + 213B3E + 5C09 + E5B089 + East Asian ideograph + + + 213B3F + 5C08 + E5B088 + East Asian ideograph + + + 213B40 + 5C07 + E5B087 + East Asian ideograph + + + 213B41 + 5C0A + E5B08A + East Asian ideograph + + + 213B42 + 5C0B + E5B08B + East Asian ideograph + + + 213B43 + 5C0D + E5B08D + East Asian ideograph + + + 213B44 + 5C0E + E5B08E + East Asian ideograph + + + 213B45 + 5C0F + E5B08F + East Asian ideograph + + + 213B46 + 5C11 + E5B091 + East Asian ideograph + + + 213B47 + 5C16 + E5B096 + East Asian ideograph + + + 213B48 + 5C1A + E5B09A + East Asian ideograph + + + 213B49 + 5C24 + E5B0A4 + East Asian ideograph + + + 213B4A + 5C2C + E5B0AC + East Asian ideograph + + + 213B4B + 5C31 + E5B0B1 + East Asian ideograph + + + 213B4C + 5C37 + E5B0B7 + East Asian ideograph + + + 213B4D + 5C38 + E5B0B8 + East Asian ideograph + + + 213B4E + 5C3A + E5B0BA + East Asian ideograph + + + 213B4F + 5C3C + E5B0BC + East Asian ideograph + + + 213B50 + 5C40 + E5B180 + East Asian ideograph + + + 213B51 + 5C41 + E5B181 + East Asian ideograph + + + 213B52 + 5C3F + E5B0BF + East Asian ideograph + + + 213B53 + 5C3E + E5B0BE + East Asian ideograph + + + 213B54 + 5C46 + E5B186 + East Asian ideograph + + + 213B55 + 5C45 + E5B185 + East Asian ideograph + + + 213B56 + 5C48 + E5B188 + East Asian ideograph + + + 213B57 + 5C4E + E5B18E + East Asian ideograph + + + 213B58 + 5C4B + E5B18B + East Asian ideograph + + + 213B59 + 5C4D + E5B18D + East Asian ideograph + + + 213B5A + 5C55 + E5B195 + East Asian ideograph + + + 213B5B + 5C51 + E5B191 + East Asian ideograph + + + 213B5C + 5C50 + E5B190 + East Asian ideograph + + + 213B5D + 5C5B + E5B19B + East Asian ideograph + + + 213B5E + 5C60 + E5B1A0 + East Asian ideograph + + + 213B5F + 5C5C + E5B19C + East Asian ideograph + + + 213B60 + 5C62 + E5B1A2 + East Asian ideograph + + + 213B61 + 5C64 + E5B1A4 + East Asian ideograph (variant of EACC 4B3B61) + + + 213B62 + 5C65 + E5B1A5 + East Asian ideograph + + + 213B63 + 5C6C + E5B1AC + East Asian ideograph + + + 213B64 + 5C6F + E5B1AF + East Asian ideograph + + + 213B65 + 5C71 + E5B1B1 + East Asian ideograph + + + 213B66 + 5C79 + E5B1B9 + East Asian ideograph + + + 213B67 + 5C90 + E5B290 + East Asian ideograph + + + 213B68 + 5C8C + E5B28C + East Asian ideograph + + + 213B69 + 5C91 + E5B291 + East Asian ideograph + + + 213B6A + 5C94 + E5B294 + East Asian ideograph + + + 213B6B + 5CB7 + E5B2B7 + East Asian ideograph + + + 213B6C + 5CB8 + E5B2B8 + East Asian ideograph + + + 213B6E + 5CA1 + E5B2A1 + East Asian ideograph + + + 213B6F + 5CAB + E5B2AB + East Asian ideograph + + + 213B71 + 5CB1 + E5B2B1 + East Asian ideograph + + + 213B72 + 5CD9 + E5B399 + East Asian ideograph + + + 213B73 + 5D01 + E5B481 + East Asian ideograph + + + 213B74 + 5CFD + E5B3BD + East Asian ideograph + + + 213B75 + 5CED + E5B3AD + East Asian ideograph + + + 213B76 + 5CFB + E5B3BB + East Asian ideograph + + + 213B77 + 5CE8 + E5B3A8 + East Asian ideograph + + + 213B78 + 5CF0 + E5B3B0 + East Asian ideograph + + + 213B79 + 5CF6 + E5B3B6 + East Asian ideograph + + + 213B7A + 5CEA + E5B3AA + East Asian ideograph + + + 213B7B + 5D07 + E5B487 + East Asian ideograph + + + 213B7C + 5D06 + E5B486 + East Asian ideograph + + + 213B7D + 5D1B + E5B49B + East Asian ideograph + + + 213B7E + 5D16 + E5B496 + East Asian ideograph + + + 213C21 + 5D0E + E5B48E + East Asian ideograph + + + 213C22 + 5D11 + E5B491 + East Asian ideograph + + + 213C23 + 5D22 + E5B4A2 + East Asian ideograph + + + 213C24 + 5D29 + E5B4A9 + East Asian ideograph + + + 213C25 + 5D14 + E5B494 + East Asian ideograph + + + 213C26 + 5D19 + E5B499 + East Asian ideograph + + + 213C27 + 5D4C + E5B58C + East Asian ideograph + + + 213C28 + 5D50 + E5B590 + East Asian ideograph + + + 213C29 + 5D69 + E5B5A9 + East Asian ideograph + + + 213C2A + 5D84 + E5B684 + East Asian ideograph + + + 213C2B + 5D87 + E5B687 + East Asian ideograph + + + 213C2C + 5D9D + E5B69D + East Asian ideograph + + + 213C2D + 5DBC + E5B6BC + East Asian ideograph + + + 213C2E + 5DBD + E5B6BD + East Asian ideograph + + + 213C2F + 5DBA + E5B6BA + East Asian ideograph (variant of EACC 4B3C2F) + + + 213C30 + 5DCD + E5B78D + East Asian ideograph + + + 213C31 + 5DD2 + E5B792 + East Asian ideograph + + + 213C32 + 5DD4 + E5B794 + East Asian ideograph + + + 213C33 + 5DD6 + E5B796 + East Asian ideograph + + + 213C34 + 5DDD + E5B79D + East Asian ideograph + + + 213C35 + 5DDE + E5B79E + East Asian ideograph + + + 213C36 + 5DE2 + E5B7A2 + East Asian ideograph + + + 213C37 + 5DE5 + E5B7A5 + East Asian ideograph + + + 213C38 + 5DE8 + E5B7A8 + East Asian ideograph + + + 213C39 + 5DE7 + E5B7A7 + East Asian ideograph + + + 213C3A + 5DE6 + E5B7A6 + East Asian ideograph + + + 213C3B + 5DEB + E5B7AB + East Asian ideograph + + + 213C3C + 5DEE + E5B7AE + East Asian ideograph + + + 213C3D + 5DF1 + E5B7B1 + East Asian ideograph + + + 213C3E + 5DF2 + E5B7B2 + East Asian ideograph + + + 213C3F + 5DF3 + E5B7B3 + East Asian ideograph + + + 213C40 + 5DF4 + E5B7B4 + East Asian ideograph + + + 213C41 + 5DF7 + E5B7B7 + East Asian ideograph + + + 213C42 + 5DFD + E5B7BD + East Asian ideograph + + + 213C43 + 5DFE + E5B7BE + East Asian ideograph + + + 213C44 + 5E02 + E5B882 + East Asian ideograph + + + 213C46 + 5E06 + E5B886 + East Asian ideograph + + + 213C49 + 5E1A + E5B89A + East Asian ideograph + + + 213C4A + 5E16 + E5B896 + East Asian ideograph + + + 213C4B + 5E15 + E5B895 + East Asian ideograph + + + 213C4C + 5E1B + E5B89B + East Asian ideograph + + + 213C4D + 5E11 + E5B891 + East Asian ideograph + + + 213C4E + 5E1D + E5B89D + East Asian ideograph + + + 213C4F + 5E25 + E5B8A5 + East Asian ideograph + + + 213C51 + 5E2B + E5B8AB + East Asian ideograph + + + 213C52 + 5E33 + E5B8B3 + East Asian ideograph + + + 213C53 + 5E36 + E5B8B6 + East Asian ideograph + + + 213C54 + 5E38 + E5B8B8 + East Asian ideograph + + + 213C55 + 5E37 + E5B8B7 + East Asian ideograph + + + 213C56 + 5E45 + E5B985 + East Asian ideograph + + + 213C57 + 5E3D + E5B8BD + East Asian ideograph + + + 213C58 + 5E40 + E5B980 + East Asian ideograph + + + 213C59 + 5E4C + E5B98C + East Asian ideograph + + + 213C5A + 5E5B + E5B99B + East Asian ideograph + + + 213C5B + 5E54 + E5B994 + East Asian ideograph + + + 213C5C + 5E57 + E5B997 + East Asian ideograph + + + 213C5D + 5E55 + E5B995 + East Asian ideograph + + + 213C5E + 5E63 + E5B9A3 + East Asian ideograph + + + 213C5F + 5E62 + E5B9A2 + East Asian ideograph + + + 213C60 + 5E5F + E5B99F + East Asian ideograph + + + 213C61 + 5E6B + E5B9AB + East Asian ideograph + + + 213C63 + 5E73 + E5B9B3 + East Asian ideograph + + + 213C65 + 5E74 + E5B9B4 + East Asian ideograph + + + 213C68 + 5E7B + E5B9BB + East Asian ideograph + + + 213C69 + 5E7C + E5B9BC + East Asian ideograph + + + 213C6A + 5E7D + E5B9BD + East Asian ideograph + + + 213C6B + 5E7E + E5B9BE + East Asian ideograph + + + 213C6C + 5E8F + E5BA8F + East Asian ideograph + + + 213C6D + 5E87 + E5BA87 + East Asian ideograph + + + 213C6E + 5E8A + E5BA8A + East Asian ideograph + + + 213C6F + 5E9A + E5BA9A + East Asian ideograph + + + 213C70 + 5E97 + E5BA97 + East Asian ideograph + + + 213C71 + 5E96 + E5BA96 + East Asian ideograph + + + 213C72 + 5E9C + E5BA9C + East Asian ideograph + + + 213C73 + 5E95 + E5BA95 + East Asian ideograph + + + 213C74 + 5EA0 + E5BAA0 + East Asian ideograph + + + 213C75 + 5EA6 + E5BAA6 + East Asian ideograph + + + 213C76 + 5EAB + E5BAAB + East Asian ideograph + + + 213C77 + 5EA7 + E5BAA7 + East Asian ideograph + + + 213C78 + 5EAD + E5BAAD + East Asian ideograph + + + 213C79 + 5EB7 + E5BAB7 + East Asian ideograph + + + 213C7A + 5EB8 + E5BAB8 + East Asian ideograph + + + 213C7B + 5EB6 + E5BAB6 + East Asian ideograph + + + 213C7C + 5EB5 + E5BAB5 + East Asian ideograph + + + 213C7D + 5EC2 + E5BB82 + East Asian ideograph + + + 213C7E + 5EC1 + E5BB81 + East Asian ideograph + + + 213D21 + 5EBE + E5BABE + East Asian ideograph + + + 213D22 + 5ECA + E5BB8A + East Asian ideograph + + + 213D23 + 5EC9 + E5BB89 + East Asian ideograph + + + 213D24 + 5EC8 + E5BB88 + East Asian ideograph + + + 213D25 + 5ED3 + E5BB93 + East Asian ideograph + + + 213D26 + 5ED6 + E5BB96 + East Asian ideograph + + + 213D27 + 5EE2 + E5BBA2 + East Asian ideograph + + + 213D28 + 5EDA + E5BB9A + East Asian ideograph + + + 213D29 + 5EDD + E5BB9D + East Asian ideograph + + + 213D2A + 5EE3 + E5BBA3 + East Asian ideograph (variant of EACC 4B3D2A) + + + 213D2B + 5EDF + E5BB9F + East Asian ideograph + + + 213D2C + 5EE0 + E5BBA0 + East Asian ideograph + + + 213D2D + 9F90 + E9BE90 + East Asian ideograph + + + 213D2E + 5EEC + E5BBAC + East Asian ideograph + + + 213D2F + 5EF3 + E5BBB3 + East Asian ideograph + + + 213D30 + 5EF7 + E5BBB7 + East Asian ideograph + + + 213D32 + 5EF6 + E5BBB6 + East Asian ideograph + + + 213D33 + 5EFA + E5BBBA + East Asian ideograph + + + 213D34 + 5EFF + E5BBBF + East Asian ideograph + + + 213D36 + 5F04 + E5BC84 + East Asian ideograph + + + 213D37 + 5F08 + E5BC88 + East Asian ideograph + + + 213D38 + 5F0A + E5BC8A + East Asian ideograph + + + 213D39 + 5F0F + E5BC8F + East Asian ideograph + + + 213D3A + 5F12 + E5BC92 + East Asian ideograph + + + 213D3B + 5F13 + E5BC93 + East Asian ideograph + + + 213D3C + 5F15 + E5BC95 + East Asian ideograph + + + 213D3D + 5F14 + E5BC94 + East Asian ideograph + + + 213D3E + 5F18 + E5BC98 + East Asian ideograph + + + 213D3F + 5F17 + E5BC97 + East Asian ideograph + + + 213D40 + 5F1B + E5BC9B + East Asian ideograph + + + 213D41 + 5F1F + E5BC9F + East Asian ideograph + + + 213D42 + 5F26 + E5BCA6 + East Asian ideograph + + + 213D43 + 5F27 + E5BCA7 + East Asian ideograph + + + 213D44 + 5F29 + E5BCA9 + East Asian ideograph + + + 213D45 + 5F2D + E5BCAD + East Asian ideograph + + + 213D46 + 5F31 + E5BCB1 + East Asian ideograph + + + 213D47 + 5F35 + E5BCB5 + East Asian ideograph + + + 213D48 + 5F37 + E5BCB7 + East Asian ideograph + + + 213D49 + 5F3C + E5BCBC + East Asian ideograph + + + 213D4A + 5F46 + E5BD86 + East Asian ideograph + + + 213D4B + 5F48 + E5BD88 + East Asian ideograph + + + 213D4C + 5F4C + E5BD8C + East Asian ideograph + + + 213D4D + 5F4E + E5BD8E + East Asian ideograph + + + 213D4E + 5F57 + E5BD97 + East Asian ideograph + + + 213D4F + 5F59 + E5BD99 + East Asian ideograph + + + 213D50 + 5F5D + E5BD9D + East Asian ideograph + + + 213D51 + 5F62 + E5BDA2 + East Asian ideograph + + + 213D52 + 5F64 + E5BDA4 + East Asian ideograph + + + 213D53 + 5F65 + E5BDA5 + East Asian ideograph + + + 213D54 + 5F6C + E5BDAC + East Asian ideograph + + + 213D55 + 5F69 + E5BDA9 + East Asian ideograph + + + 213D57 + 5F6D + E5BDAD + East Asian ideograph + + + 213D58 + 5F70 + E5BDB0 + East Asian ideograph + + + 213D59 + 5F71 + E5BDB1 + East Asian ideograph + + + 213D5B + 5F79 + E5BDB9 + East Asian ideograph + + + 213D5C + 5F80 + E5BE80 + East Asian ideograph + + + 213D5E + 5F7F + E5BDBF + East Asian ideograph + + + 213D5F + 5F7C + E5BDBC + East Asian ideograph + + + 213D60 + 5F85 + E5BE85 + East Asian ideograph + + + 213D61 + 5F88 + E5BE88 + East Asian ideograph + + + 213D62 + 5F8B + E5BE8B + East Asian ideograph + + + 213D63 + 5F8A + E5BE8A + East Asian ideograph + + + 213D64 + 5F87 + E5BE87 + East Asian ideograph + + + 213D65 + 5F8C + E5BE8C + East Asian ideograph + + + 213D66 + 5F92 + E5BE92 + East Asian ideograph + + + 213D67 + 5F91 + E5BE91 + East Asian ideograph + + + 213D68 + 5F90 + E5BE90 + East Asian ideograph + + + 213D69 + 5F98 + E5BE98 + East Asian ideograph + + + 213D6A + 5F97 + E5BE97 + East Asian ideograph + + + 213D6B + 5F99 + E5BE99 + East Asian ideograph + + + 213D6C + 5F9E + E5BE9E + East Asian ideograph + + + 213D6F + 5FA9 + E5BEA9 + East Asian ideograph + + + 213D71 + 5FAA + E5BEAA + East Asian ideograph + + + 213D72 + 5FAC + E5BEAC + East Asian ideograph + + + 213D73 + 5FAE + E5BEAE + East Asian ideograph + + + 213D74 + 5FB9 + E5BEB9 + East Asian ideograph + + + 213D75 + 5FB7 + E5BEB7 + East Asian ideograph + + + 213D76 + 5FB5 + E5BEB5 + East Asian ideograph + + + 213D77 + 5FBD + E5BEBD + East Asian ideograph + + + 213D78 + 5FC3 + E5BF83 + East Asian ideograph + + + 213D79 + 5FC5 + E5BF85 + East Asian ideograph + + + 213D7A + 5FD9 + E5BF99 + East Asian ideograph + + + 213D7B + 5FD8 + E5BF98 + East Asian ideograph + + + 213D7C + 5FCC + E5BF8C + East Asian ideograph + + + 213D7D + 5FD6 + E5BF96 + East Asian ideograph + + + 213E21 + 5FCD + E5BF8D + East Asian ideograph + + + 213E22 + 5FEB + E5BFAB + East Asian ideograph + + + 213E23 + 5FE0 + E5BFA0 + East Asian ideograph + + + 213E24 + 5FF1 + E5BFB1 + East Asian ideograph + + + 213E25 + 5FFD + E5BFBD + East Asian ideograph + + + 213E26 + 5FDD + E5BF9D + East Asian ideograph + + + 213E27 + 5FF5 + E5BFB5 + East Asian ideograph + + + 213E28 + 5FFF + E5BFBF + East Asian ideograph + + + 213E29 + 6014 + E68094 + East Asian ideograph + + + 213E2A + 6035 + E680B5 + East Asian ideograph (variant of EACC 4B3E2A) + + + 213E2B + 602A + E680AA + East Asian ideograph + + + 213E2C + 602F + E680AF + East Asian ideograph + + + 213E2D + 6016 + E68096 + East Asian ideograph + + + 213E2E + 601D + E6809D + East Asian ideograph + + + 213E2F + 600F + E6808F + East Asian ideograph + + + 213E30 + 6021 + E680A1 + East Asian ideograph + + + 213E31 + 6020 + E680A0 + East Asian ideograph + + + 213E32 + 6028 + E680A8 + East Asian ideograph + + + 213E33 + 6025 + E680A5 + East Asian ideograph + + + 213E34 + 6027 + E680A7 + East Asian ideograph + + + 213E35 + 600E + E6808E + East Asian ideograph + + + 213E36 + 6015 + E68095 + East Asian ideograph + + + 213E37 + 6012 + E68092 + East Asian ideograph + + + 213E38 + 6059 + E68199 + East Asian ideograph + + + 213E39 + 6063 + E681A3 + East Asian ideograph + + + 213E3A + 6068 + E681A8 + East Asian ideograph + + + 213E3B + 6043 + E68183 + East Asian ideograph + + + 213E3C + 6065 + E681A5 + East Asian ideograph + + + 213E3D + 6050 + E68190 + East Asian ideograph + + + 213E3E + 606D + E681AD + East Asian ideograph + + + 213E3F + 6062 + E681A2 + East Asian ideograph + + + 213E40 + 6046 + E68186 + East Asian ideograph (variant of EACC 4B3E40) + + + 213E41 + 604D + E6818D + East Asian ideograph + + + 213E42 + 606B + E681AB + East Asian ideograph + + + 213E43 + 6069 + E681A9 + East Asian ideograph + + + 213E44 + 606C + E681AC + East Asian ideograph + + + 213E45 + 606F + E681AF + East Asian ideograph + + + 213E46 + 606A + E681AA + East Asian ideograph + + + 213E47 + 6064 + E681A4 + East Asian ideograph + + + 213E48 + 6070 + E681B0 + East Asian ideograph + + + 213E49 + 6055 + E68195 + East Asian ideograph + + + 213E4A + 608C + E6828C + East Asian ideograph + + + 213E4B + 60A6 + E682A6 + East Asian ideograph + + + 213E4C + 607F + E681BF + East Asian ideograph + + + 213E4D + 609F + E6829F + East Asian ideograph + + + 213E4E + 609A + E6829A + East Asian ideograph + + + 213E4F + 6096 + E68296 + East Asian ideograph + + + 213E50 + 6084 + E68284 + East Asian ideograph + + + 213E51 + 608D + E6828D + East Asian ideograph + + + 213E52 + 60A3 + E682A3 + East Asian ideograph + + + 213E53 + 6089 + E68289 + East Asian ideograph + + + 213E54 + 6094 + E68294 + East Asian ideograph + + + 213E55 + 60A0 + E682A0 + East Asian ideograph + + + 213E56 + 60A8 + E682A8 + East Asian ideograph + + + 213E57 + 60B4 + E682B4 + East Asian ideograph + + + 213E58 + 60E6 + E683A6 + East Asian ideograph + + + 213E59 + 60CB + E6838B + East Asian ideograph + + + 213E5B + 60C5 + E68385 + East Asian ideograph (variant of EACC 4B3E5B) + + + 213E5C + 60B6 + E682B6 + East Asian ideograph + + + 213E5D + 60D1 + E68391 + East Asian ideograph + + + 213E5E + 60B5 + E682B5 + East Asian ideograph + + + 213E5F + 60BB + E682BB + East Asian ideograph + + + 213E60 + 60E0 + E683A0 + East Asian ideograph + + + 213E61 + 60E1 + E683A1 + East Asian ideograph + + + 213E62 + 60DC + E6839C + East Asian ideograph + + + 213E63 + 60D8 + E68398 + East Asian ideograph + + + 213E64 + 60D5 + E68395 + East Asian ideograph + + + 213E65 + 60BC + E682BC + East Asian ideograph + + + 213E66 + 60B2 + E682B2 + East Asian ideograph + + + 213E67 + 60C6 + E68386 + East Asian ideograph + + + 213E68 + 60B8 + E682B8 + East Asian ideograph + + + 213E69 + 60DA + E6839A + East Asian ideograph + + + 213E6A + 60DF + E6839F + East Asian ideograph + + + 213E6B + 610F + E6848F + East Asian ideograph + + + 213E6C + 611C + E6849C + East Asian ideograph + + + 213E6D + 60F3 + E683B3 + East Asian ideograph + + + 213E6E + 611F + E6849F + East Asian ideograph + + + 213E6F + 60F0 + E683B0 + East Asian ideograph + + + 213E70 + 60FB + E683BB + East Asian ideograph + + + 213E71 + 60FA + E683BA + East Asian ideograph + + + 213E72 + 611A + E6849A + East Asian ideograph + + + 213E73 + 6115 + E68495 + East Asian ideograph + + + 213E74 + 60F9 + E683B9 + East Asian ideograph + + + 213E75 + 6123 + E684A3 + East Asian ideograph + + + 213E76 + 60F4 + E683B4 + East Asian ideograph + + + 213E77 + 611B + E6849B + East Asian ideograph + + + 213E78 + 610E + E6848E + East Asian ideograph + + + 213E79 + 6100 + E68480 + East Asian ideograph + + + 213E7A + 6101 + E68481 + East Asian ideograph + + + 213E7B + 60F6 + E683B6 + East Asian ideograph + + + 213E7C + 6109 + E68489 + East Asian ideograph + + + 213E7D + 6108 + E68488 + East Asian ideograph + + + 213E7E + 60F1 + E683B1 + East Asian ideograph + + + 213F21 + 6148 + E68588 + East Asian ideograph + + + 213F22 + 6168 + E685A8 + East Asian ideograph + + + 213F24 + 613C + E684BC + East Asian ideograph + + + 213F26 + 614C + E6858C + East Asian ideograph + + + 213F27 + 614D + E6858D + East Asian ideograph + + + 213F28 + 614B + E6858B + East Asian ideograph + + + 213F29 + 613E + E684BE + East Asian ideograph + + + 213F2A + 6127 + E684A7 + East Asian ideograph + + + 213F2B + 6134 + E684B4 + East Asian ideograph + + + 213F2C + 6147 + E68587 + East Asian ideograph + + + 213F2D + 6177 + E685B7 + East Asian ideograph + + + 213F2E + 6176 + E685B6 + East Asian ideograph + + + 213F2F + 6167 + E685A7 + East Asian ideograph + + + 213F30 + 6170 + E685B0 + East Asian ideograph + + + 213F31 + 615A + E6859A + East Asian ideograph + + + 213F32 + 615D + E6859D + East Asian ideograph + + + 213F33 + 6182 + E68682 + East Asian ideograph + + + 213F34 + 617C + E685BC + East Asian ideograph + + + 213F35 + 6162 + E685A2 + East Asian ideograph + + + 213F36 + 616E + E685AE + East Asian ideograph + + + 213F37 + 6155 + E68595 + East Asian ideograph + + + 213F38 + 6158 + E68598 + East Asian ideograph + + + 213F39 + 6163 + E685A3 + East Asian ideograph + + + 213F3A + 615F + E6859F + East Asian ideograph + + + 213F3B + 616B + E685AB + East Asian ideograph + + + 213F3C + 617E + E685BE + East Asian ideograph + + + 213F3D + 61A7 + E686A7 + East Asian ideograph + + + 213F3E + 61B2 + E686B2 + East Asian ideograph + + + 213F3F + 6191 + E68691 + East Asian ideograph + + + 213F40 + 618E + E6868E + East Asian ideograph + + + 213F41 + 61AB + E686AB + East Asian ideograph + + + 213F42 + 61A4 + E686A4 + East Asian ideograph + + + 213F43 + 61AC + E686AC + East Asian ideograph + + + 213F44 + 619A + E6869A + East Asian ideograph + + + 213F45 + 61A9 + E686A9 + East Asian ideograph + + + 213F46 + 6194 + E68694 + East Asian ideograph + + + 213F47 + 618A + E6868A + East Asian ideograph + + + 213F48 + 61B6 + E686B6 + East Asian ideograph + + + 213F49 + 61CD + E6878D + East Asian ideograph + + + 213F4A + 61C9 + E68789 + East Asian ideograph + + + 213F4B + 6190 + E68690 + East Asian ideograph + + + 213F4C + 61BE + E686BE + East Asian ideograph + + + 213F4D + 61C2 + E68782 + East Asian ideograph + + + 213F4E + 61C7 + E68787 + East Asian ideograph + + + 213F4F + 61C8 + E68788 + East Asian ideograph + + + 213F50 + 61CA + E6878A + East Asian ideograph + + + 213F51 + 61E3 + E687A3 + East Asian ideograph + + + 213F52 + 61E6 + E687A6 + East Asian ideograph + + + 213F53 + 61F2 + E687B2 + East Asian ideograph (variant of EACC 4B3F53) + + + 213F54 + 61F7 + E687B7 + East Asian ideograph + + + 213F55 + 61F6 + E687B6 + East Asian ideograph + + + 213F56 + 61F8 + E687B8 + East Asian ideograph + + + 213F57 + 61F5 + E687B5 + East Asian ideograph + + + 213F58 + 61FA + E687BA + East Asian ideograph + + + 213F59 + 61FE + E687BE + East Asian ideograph + + + 213F5A + 61FF + E687BF + East Asian ideograph + + + 213F5B + 61FC + E687BC + East Asian ideograph + + + 213F5C + 6200 + E68880 + East Asian ideograph + + + 213F5D + 6208 + E68888 + East Asian ideograph + + + 213F5E + 620A + E6888A + East Asian ideograph + + + 213F5F + 620E + E6888E + East Asian ideograph + + + 213F60 + 620D + E6888D + East Asian ideograph + + + 213F61 + 620C + E6888C + East Asian ideograph + + + 213F62 + 6210 + E68890 + East Asian ideograph + + + 213F63 + 6212 + E68892 + East Asian ideograph + + + 213F64 + 6211 + E68891 + East Asian ideograph + + + 213F65 + 6216 + E68896 + East Asian ideograph + + + 213F66 + 6215 + E68895 + East Asian ideograph + + + 213F67 + 621B + E6889B + East Asian ideograph + + + 213F68 + 621A + E6889A + East Asian ideograph + + + 213F69 + 621F + E6889F + East Asian ideograph + + + 213F6A + 6221 + E688A1 + East Asian ideograph + + + 213F6B + 6222 + E688A2 + East Asian ideograph + + + 213F6C + 622A + E688AA + East Asian ideograph + + + 213F6D + 622E + E688AE + East Asian ideograph + + + 213F6E + 6230 + E688B0 + East Asian ideograph + + + 213F6F + 6232 + E688B2 + East Asian ideograph + + + 213F70 + 6234 + E688B4 + East Asian ideograph + + + 213F71 + 6233 + E688B3 + East Asian ideograph + + + 213F72 + 6236 + E688B6 + East Asian ideograph + + + 213F73 + 623F + E688BF + East Asian ideograph + + + 213F74 + 623E + E688BE + East Asian ideograph + + + 213F75 + 6240 + E68980 + East Asian ideograph + + + 213F76 + 6241 + E68981 + East Asian ideograph + + + 213F78 + 6248 + E68988 + East Asian ideograph + + + 213F79 + 6249 + E68989 + East Asian ideograph + + + 213F7A + 624B + E6898B + East Asian ideograph + + + 213F7D + 6253 + E68993 + East Asian ideograph + + + 213F7E + 6254 + E68994 + East Asian ideograph + + + 214021 + 6252 + E68992 + East Asian ideograph + + + 214022 + 625B + E6899B + East Asian ideograph + + + 214023 + 6263 + E689A3 + East Asian ideograph + + + 214024 + 6258 + E68998 + East Asian ideograph + + + 214025 + 6296 + E68A96 + East Asian ideograph + + + 214026 + 6297 + E68A97 + East Asian ideograph + + + 214027 + 6292 + E68A92 + East Asian ideograph + + + 214028 + 6276 + E689B6 + East Asian ideograph + + + 214029 + 6289 + E68A89 + East Asian ideograph + + + 21402A + 627F + E689BF + East Asian ideograph + + + 21402B + 6279 + E689B9 + East Asian ideograph + + + 21402C + 6280 + E68A80 + East Asian ideograph + + + 21402D + 628A + E68A8A + East Asian ideograph + + + 21402E + 626D + E689AD + East Asian ideograph + + + 21402F + 627C + E689BC + East Asian ideograph + + + 214030 + 627E + E689BE + East Asian ideograph + + + 214031 + 626F + E689AF + East Asian ideograph + + + 214032 + 6284 + E68A84 + East Asian ideograph + + + 214033 + 6295 + E68A95 + East Asian ideograph + + + 214034 + 6291 + E68A91 + East Asian ideograph + + + 214035 + 6298 + E68A98 + East Asian ideograph + + + 214036 + 626E + E689AE + East Asian ideograph + + + 214037 + 6273 + E689B3 + East Asian ideograph + + + 214038 + 6293 + E68A93 + East Asian ideograph + + + 214039 + 62C9 + E68B89 + East Asian ideograph + + + 21403A + 62C4 + E68B84 + East Asian ideograph + + + 21403B + 62CC + E68B8C + East Asian ideograph + + + 21403C + 62A8 + E68AA8 + East Asian ideograph + + + 21403D + 62DC + E68B9C + East Asian ideograph + + + 21403E + 62BF + E68ABF + East Asian ideograph + + + 21403F + 62C2 + E68B82 + East Asian ideograph + + + 214040 + 62B9 + E68AB9 + East Asian ideograph + + + 214041 + 62D2 + E68B92 + East Asian ideograph + + + 214042 + 62D3 + E68B93 + East Asian ideograph + + + 214043 + 62DB + E68B9B + East Asian ideograph + + + 214044 + 62AB + E68AAB + East Asian ideograph + + + 214045 + 62CB + E68B8B + East Asian ideograph + + + 214046 + 62D4 + E68B94 + East Asian ideograph + + + 214047 + 62BD + E68ABD + East Asian ideograph + + + 214048 + 62BC + E68ABC + East Asian ideograph + + + 214049 + 62D0 + E68B90 + East Asian ideograph (variant of EACC 4B4049) + + + 21404A + 62C8 + E68B88 + East Asian ideograph + + + 21404B + 62D9 + E68B99 + East Asian ideograph + + + 21404C + 62DA + E68B9A + East Asian ideograph + + + 21404D + 62AC + E68AAC + East Asian ideograph + + + 21404E + 62C7 + E68B87 + East Asian ideograph + + + 21404F + 62B1 + E68AB1 + East Asian ideograph + + + 214050 + 62D6 + E68B96 + East Asian ideograph + + + 214051 + 62D8 + E68B98 + East Asian ideograph + + + 214052 + 62CD + E68B8D + East Asian ideograph + + + 214053 + 62B5 + E68AB5 + East Asian ideograph + + + 214054 + 62CE + E68B8E + East Asian ideograph + + + 214055 + 62D7 + E68B97 + East Asian ideograph + + + 214056 + 62C6 + E68B86 + East Asian ideograph + + + 214057 + 6309 + E68C89 + East Asian ideograph + + + 214058 + 6316 + E68C96 + East Asian ideograph + + + 214059 + 62FC + E68BBC + East Asian ideograph + + + 21405A + 62F3 + E68BB3 + East Asian ideograph + + + 21405B + 6308 + E68C88 + East Asian ideograph + + + 21405C + 62ED + E68BAD + East Asian ideograph + + + 21405D + 6301 + E68C81 + East Asian ideograph + + + 21405E + 62EE + E68BAE + East Asian ideograph + + + 21405F + 62EF + E68BAF + East Asian ideograph + + + 214060 + 62F7 + E68BB7 + East Asian ideograph + + + 214061 + 6307 + E68C87 + East Asian ideograph + + + 214062 + 62F1 + E68BB1 + East Asian ideograph + + + 214063 + 62FD + E68BBD + East Asian ideograph + + + 214064 + 6311 + E68C91 + East Asian ideograph + + + 214065 + 62EC + E68BAC + East Asian ideograph + + + 214066 + 62F4 + E68BB4 + East Asian ideograph (variant of EACC 4B4066) + + + 214067 + 62FF + E68BBF + East Asian ideograph + + + 214069 + 6342 + E68D82 + East Asian ideograph + + + 21406A + 632A + E68CAA + East Asian ideograph + + + 21406B + 6355 + E68D95 + East Asian ideograph + + + 21406C + 633E + E68CBE + East Asian ideograph + + + 21406D + 632F + E68CAF + East Asian ideograph + + + 21406E + 634E + E68D8E + East Asian ideograph + + + 21406F + 634F + E68D8F + East Asian ideograph + + + 214070 + 6350 + E68D90 + East Asian ideograph + + + 214071 + 6349 + E68D89 + East Asian ideograph + + + 214073 + 632B + E68CAB + East Asian ideograph + + + 214074 + 6328 + E68CA8 + East Asian ideograph + + + 214075 + 633A + E68CBA + East Asian ideograph + + + 214076 + 63A5 + E68EA5 + East Asian ideograph + + + 214077 + 6369 + E68DA9 + East Asian ideograph + + + 214078 + 63A0 + E68EA0 + East Asian ideograph + + + 214079 + 6396 + E68E96 + East Asian ideograph + + + 21407A + 63A7 + E68EA7 + East Asian ideograph + + + 21407B + 6372 + E68DB2 + East Asian ideograph + + + 21407C + 6377 + E68DB7 + East Asian ideograph + + + 21407D + 6383 + E68E83 + East Asian ideograph + + + 21407E + 636B + E68DAB + East Asian ideograph + + + 214121 + 6367 + E68DA7 + East Asian ideograph + + + 214122 + 6398 + E68E98 + East Asian ideograph + + + 214123 + 639B + E68E9B + East Asian ideograph + + + 214124 + 63AA + E68EAA + East Asian ideograph + + + 214125 + 6371 + E68DB1 + East Asian ideograph + + + 214126 + 63A9 + E68EA9 + East Asian ideograph + + + 214127 + 638C + E68E8C + East Asian ideograph + + + 214128 + 6389 + E68E89 + East Asian ideograph + + + 214129 + 63A2 + E68EA2 + East Asian ideograph + + + 21412A + 6399 + E68E99 + East Asian ideograph + + + 21412B + 63A1 + E68EA1 + East Asian ideograph + + + 21412C + 6388 + E68E88 + East Asian ideograph + + + 21412D + 63AC + E68EAC + East Asian ideograph + + + 21412E + 633D + E68CBD + East Asian ideograph + + + 21412F + 6392 + E68E92 + East Asian ideograph + + + 214130 + 63A3 + E68EA3 + East Asian ideograph + + + 214131 + 6376 + E68DB6 + East Asian ideograph + + + 214132 + 638F + E68E8F + East Asian ideograph + + + 214133 + 63A8 + E68EA8 + East Asian ideograph + + + 214134 + 637B + E68DBB + East Asian ideograph + + + 214135 + 6368 + E68DA8 + East Asian ideograph (variant of EACC 4B4135) + + + 214136 + 6384 + E68E84 + East Asian ideograph + + + 214137 + 6380 + E68E80 + East Asian ideograph + + + 214138 + 63C6 + E68F86 + East Asian ideograph + + + 214139 + 63C9 + E68F89 + East Asian ideograph + + + 21413A + 63CD + E68F8D + East Asian ideograph + + + 21413B + 63E1 + E68FA1 + East Asian ideograph + + + 21413C + 63C0 + E68F80 + East Asian ideograph + + + 21413D + 63E9 + E68FA9 + East Asian ideograph + + + 21413E + 63D0 + E68F90 + East Asian ideograph + + + 21413F + 63DA + E68F9A + East Asian ideograph + + + 214140 + 63D6 + E68F96 + East Asian ideograph + + + 214141 + 63ED + E68FAD + East Asian ideograph + + + 214142 + 63EE + E68FAE + East Asian ideograph + + + 214143 + 63CF + E68F8F + East Asian ideograph + + + 214144 + 63E3 + E68FA3 + East Asian ideograph + + + 214145 + 63F4 + E68FB4 + East Asian ideograph + + + 214146 + 63DB + E68F9B + East Asian ideograph (variant of EACC 454146) + + + 214147 + 63D2 + E68F92 + East Asian ideograph + + + 214148 + 63EA + E68FAA + East Asian ideograph + + + 214149 + 641E + E6909E + East Asian ideograph + + + 21414A + 642A + E690AA + East Asian ideograph + + + 21414B + 643E + E690BE + East Asian ideograph + + + 21414C + 6413 + E69093 + East Asian ideograph + + + 21414D + 640F + E6908F + East Asian ideograph + + + 21414E + 6414 + E69094 + East Asian ideograph + + + 21414F + 640D + E6908D + East Asian ideograph + + + 214150 + 642D + E690AD + East Asian ideograph + + + 214151 + 643D + E690BD + East Asian ideograph + + + 214152 + 6416 + E69096 + East Asian ideograph + + + 214153 + 6417 + E69097 + East Asian ideograph + + + 214154 + 641C + E6909C + East Asian ideograph + + + 214155 + 6436 + E690B6 + East Asian ideograph + + + 214156 + 642C + E690AC + East Asian ideograph + + + 214157 + 6458 + E69198 + East Asian ideograph + + + 214158 + 6469 + E691A9 + East Asian ideograph + + + 214159 + 6454 + E69194 + East Asian ideograph + + + 21415A + 6452 + E69192 + East Asian ideograph + + + 21415B + 646F + E691AF + East Asian ideograph + + + 21415C + 6478 + E691B8 + East Asian ideograph + + + 21415D + 6479 + E691B9 + East Asian ideograph + + + 21415E + 647A + E691BA + East Asian ideograph + + + 21415F + 645F + E6919F + East Asian ideograph + + + 214160 + 6451 + E69191 + East Asian ideograph + + + 214161 + 6467 + E691A7 + East Asian ideograph + + + 214162 + 649E + E6929E + East Asian ideograph + + + 214163 + 64A4 + E692A4 + East Asian ideograph + + + 214164 + 6487 + E69287 + East Asian ideograph + + + 214165 + 6488 + E69288 + East Asian ideograph + + + 214166 + 64A5 + E692A5 + East Asian ideograph + + + 214167 + 64B0 + E692B0 + East Asian ideograph + + + 214168 + 6493 + E69293 + East Asian ideograph + + + 214169 + 6495 + E69295 + East Asian ideograph + + + 21416A + 6492 + E69292 + East Asian ideograph + + + 21416B + 64A9 + E692A9 + East Asian ideograph + + + 21416C + 6491 + E69291 + East Asian ideograph + + + 21416D + 64AE + E692AE + East Asian ideograph + + + 21416E + 64B2 + E692B2 + East Asian ideograph + + + 21416F + 64AD + E692AD + East Asian ideograph + + + 214170 + 649A + E6929A + East Asian ideograph + + + 214171 + 64AB + E692AB + East Asian ideograph + + + 214172 + 64AC + E692AC + East Asian ideograph + + + 214173 + 64C5 + E69385 + East Asian ideograph + + + 214174 + 64C1 + E69381 + East Asian ideograph + + + 214175 + 64D8 + E69398 + East Asian ideograph + + + 214176 + 64CA + E6938A + East Asian ideograph + + + 214177 + 64BB + E692BB + East Asian ideograph + + + 214178 + 64C2 + E69382 + East Asian ideograph + + + 214179 + 64BC + E692BC + East Asian ideograph + + + 21417A + 64CB + E6938B + East Asian ideograph + + + 21417B + 64CD + E6938D + East Asian ideograph + + + 21417C + 64DA + E6939A + East Asian ideograph + + + 21417D + 64C4 + E69384 + East Asian ideograph + + + 21417E + 64C7 + E69387 + East Asian ideograph + + + 214221 + 64CE + E6938E + East Asian ideograph + + + 214222 + 64D4 + E69394 + East Asian ideograph + + + 214223 + 64D2 + E69392 + East Asian ideograph + + + 214224 + 64BF + E692BF + East Asian ideograph + + + 214225 + 64E0 + E693A0 + East Asian ideograph + + + 214226 + 64F0 + E693B0 + East Asian ideograph + + + 214227 + 64E6 + E693A6 + East Asian ideograph + + + 214228 + 64EC + E693AC + East Asian ideograph + + + 214229 + 64F1 + E693B1 + East Asian ideograph + + + 21422A + 64F4 + E693B4 + East Asian ideograph + + + 21422B + 64F2 + E693B2 + East Asian ideograph + + + 21422C + 6506 + E69486 + East Asian ideograph + + + 21422D + 6500 + E69480 + East Asian ideograph + + + 21422E + 64FE + E693BE + East Asian ideograph + + + 21422F + 64FB + E693BB + East Asian ideograph + + + 214230 + 64FA + E693BA + East Asian ideograph + + + 214231 + 650F + E6948F + East Asian ideograph + + + 214232 + 6518 + E69498 + East Asian ideograph + + + 214233 + 6514 + E69494 + East Asian ideograph + + + 214234 + 6519 + E69499 + East Asian ideograph + + + 214235 + 651D + E6949D + East Asian ideograph + + + 214236 + 651C + E6949C + East Asian ideograph + + + 214237 + 6523 + E694A3 + East Asian ideograph + + + 214238 + 6524 + E694A4 + East Asian ideograph + + + 214239 + 652B + E694AB + East Asian ideograph + + + 21423A + 652A + E694AA + East Asian ideograph + + + 21423B + 652C + E694AC + East Asian ideograph + + + 21423C + 652F + E694AF + East Asian ideograph + + + 21423D + 6536 + E694B6 + East Asian ideograph + + + 21423E + 6539 + E694B9 + East Asian ideograph + + + 21423F + 653B + E694BB + East Asian ideograph + + + 214240 + 653E + E694BE + East Asian ideograph + + + 214241 + 653F + E694BF + East Asian ideograph + + + 214242 + 6545 + E69585 + East Asian ideograph + + + 214243 + 6548 + E69588 + East Asian ideograph + + + 214244 + 654E + E6958E + East Asian ideograph + + + 214245 + 6556 + E69596 + East Asian ideograph + + + 214246 + 6551 + E69591 + East Asian ideograph + + + 214247 + 6557 + E69597 + East Asian ideograph + + + 214248 + 655D + E6959D + East Asian ideograph + + + 214249 + 6558 + E69598 + East Asian ideograph + + + 21424A + 654F + E6958F + East Asian ideograph + + + 21424B + 6566 + E695A6 + East Asian ideograph + + + 21424C + 6562 + E695A2 + East Asian ideograph + + + 21424D + 6563 + E695A3 + East Asian ideograph + + + 21424E + 655E + E6959E + East Asian ideograph + + + 21424F + 5553 + E59593 + East Asian ideograph + + + 214250 + 656C + E695AC + East Asian ideograph + + + 214251 + 6572 + E695B2 + East Asian ideograph + + + 214252 + 6575 + E695B5 + East Asian ideograph + + + 214253 + 6577 + E695B7 + East Asian ideograph + + + 214254 + 6578 + E695B8 + East Asian ideograph + + + 214255 + 6574 + E695B4 + East Asian ideograph + + + 214256 + 6582 + E69682 + East Asian ideograph + + + 214257 + 6583 + E69683 + East Asian ideograph + + + 214258 + 6587 + E69687 + East Asian ideograph + + + 214259 + 6591 + E69691 + East Asian ideograph + + + 21425A + 6590 + E69690 + East Asian ideograph + + + 21425C + 6599 + E69699 + East Asian ideograph + + + 21425D + 659C + E6969C + East Asian ideograph + + + 21425E + 659F + E6969F + East Asian ideograph + + + 21425F + 65A1 + E696A1 + East Asian ideograph + + + 214260 + 65A4 + E696A4 + East Asian ideograph + + + 214261 + 65A5 + E696A5 + East Asian ideograph + + + 214262 + 65A7 + E696A7 + East Asian ideograph + + + 214263 + 65AC + E696AC + East Asian ideograph + + + 214264 + 65AF + E696AF + East Asian ideograph + + + 214265 + 65B0 + E696B0 + East Asian ideograph + + + 214266 + 65B7 + E696B7 + East Asian ideograph + + + 214267 + 65B9 + E696B9 + East Asian ideograph + + + 214269 + 65BD + E696BD + East Asian ideograph + + + 21426A + 65C1 + E69781 + East Asian ideograph + + + 21426B + 65C5 + E69785 + East Asian ideograph + + + 21426C + 65CE + E6978E + East Asian ideograph + + + 21426D + 65CB + E6978B + East Asian ideograph + + + 21426E + 65CC + E6978C + East Asian ideograph + + + 21426F + 65CF + E6978F + East Asian ideograph + + + 214270 + 65D7 + E69797 + East Asian ideograph + + + 214271 + 65D6 + E69796 + East Asian ideograph + + + 214272 + 65E2 + E697A2 + East Asian ideograph + + + 214273 + 65E5 + E697A5 + East Asian ideograph + + + 214275 + 65E9 + E697A9 + East Asian ideograph + + + 214276 + 65EC + E697AC + East Asian ideograph + + + 214277 + 65ED + E697AD + East Asian ideograph + + + 214278 + 65E8 + E697A8 + East Asian ideograph + + + 214279 + 65F1 + E697B1 + East Asian ideograph + + + 21427A + 65FA + E697BA + East Asian ideograph + + + 21427B + 6606 + E69886 + East Asian ideograph + + + 21427C + 6614 + E69894 + East Asian ideograph + + + 21427D + 660C + E6988C + East Asian ideograph + + + 21427E + 6600 + E69880 + East Asian ideograph + + + 214321 + 660E + E6988E + East Asian ideograph + + + 214322 + 6613 + E69893 + East Asian ideograph + + + 214323 + 6602 + E69882 + East Asian ideograph + + + 214324 + 660F + E6988F + East Asian ideograph + + + 214325 + 6625 + E698A5 + East Asian ideograph + + + 214326 + 6627 + E698A7 + East Asian ideograph + + + 214327 + 662F + E698AF + East Asian ideograph + + + 214328 + 662D + E698AD + East Asian ideograph + + + 214329 + 6620 + E698A0 + East Asian ideograph + + + 21432A + 661F + E6989F + East Asian ideograph + + + 21432B + 6628 + E698A8 + East Asian ideograph + + + 21432C + 664F + E6998F + East Asian ideograph + + + 21432D + 6642 + E69982 + East Asian ideograph + + + 21432E + 6652 + E69992 + East Asian ideograph + + + 21432F + 6649 + E69989 + East Asian ideograph + + + 214330 + 6643 + E69983 + East Asian ideograph + + + 214331 + 664C + E6998C + East Asian ideograph + + + 214332 + 665D + E6999D + East Asian ideograph + + + 214333 + 6664 + E699A4 + East Asian ideograph + + + 214334 + 6668 + E699A8 + East Asian ideograph + + + 214335 + 6666 + E699A6 + East Asian ideograph + + + 214336 + 665A + E6999A + East Asian ideograph + + + 214337 + 666F + E699AF + East Asian ideograph + + + 214338 + 666E + E699AE + East Asian ideograph + + + 214339 + 6674 + E699B4 + East Asian ideograph (variant of EACC 4B4339) + + + 21433A + 6691 + E69A91 + East Asian ideograph + + + 21433B + 6670 + E699B0 + East Asian ideograph + + + 21433C + 6676 + E699B6 + East Asian ideograph + + + 21433D + 667A + E699BA + East Asian ideograph + + + 21433E + 6697 + E69A97 + East Asian ideograph + + + 21433F + 6687 + E69A87 + East Asian ideograph + + + 214340 + 6689 + E69A89 + East Asian ideograph + + + 214341 + 6688 + E69A88 + East Asian ideograph + + + 214342 + 6696 + E69A96 + East Asian ideograph + + + 214343 + 66A2 + E69AA2 + East Asian ideograph + + + 214344 + 66AB + E69AAB + East Asian ideograph + + + 214345 + 66B4 + E69AB4 + East Asian ideograph + + + 214346 + 66AE + E69AAE + East Asian ideograph + + + 214347 + 66C1 + E69B81 + East Asian ideograph + + + 214348 + 66C9 + E69B89 + East Asian ideograph + + + 214349 + 66C6 + E69B86 + East Asian ideograph + + + 21434A + 66B9 + E69AB9 + East Asian ideograph + + + 21434B + 66D6 + E69B96 + East Asian ideograph + + + 21434C + 66D9 + E69B99 + East Asian ideograph + + + 21434D + 66E0 + E69BA0 + East Asian ideograph + + + 21434E + 66DD + E69B9D + East Asian ideograph + + + 21434F + 66E6 + E69BA6 + East Asian ideograph + + + 214350 + 66F0 + E69BB0 + East Asian ideograph + + + 214351 + 66F2 + E69BB2 + East Asian ideograph + + + 214352 + 66F3 + E69BB3 + East Asian ideograph + + + 214353 + 66F4 + E69BB4 + East Asian ideograph + + + 214354 + 66F7 + E69BB7 + East Asian ideograph + + + 214355 + 66F8 + E69BB8 + East Asian ideograph + + + 214356 + 66F9 + E69BB9 + East Asian ideograph + + + 214357 + 52D7 + E58B97 + East Asian ideograph + + + 214358 + 66FE + E69BBE + East Asian ideograph + + + 214359 + 66FF + E69BBF + East Asian ideograph + + + 21435A + 6703 + E69C83 + East Asian ideograph + + + 21435B + 6708 + E69C88 + East Asian ideograph + + + 21435C + 6709 + E69C89 + East Asian ideograph + + + 21435D + 670D + E69C8D + East Asian ideograph + + + 21435E + 670B + E69C8B + East Asian ideograph + + + 21435F + 6717 + E69C97 + East Asian ideograph + + + 214360 + 6715 + E69C95 + East Asian ideograph + + + 214361 + 6714 + E69C94 + East Asian ideograph + + + 214362 + 671B + E69C9B + East Asian ideograph + + + 214363 + 671D + E69C9D + East Asian ideograph + + + 214364 + 671F + E69C9F + East Asian ideograph + + + 214366 + 6727 + E69CA7 + East Asian ideograph + + + 214367 + 6728 + E69CA8 + East Asian ideograph + + + 214369 + 672C + E69CAC + East Asian ideograph + + + 21436A + 672B + E69CAB + East Asian ideograph + + + 21436B + 672A + E69CAA + East Asian ideograph + + + 21436D + 673D + E69CBD + East Asian ideograph + + + 21436F + 6731 + E69CB1 + East Asian ideograph + + + 214370 + 6735 + E69CB5 + East Asian ideograph + + + 214371 + 675E + E69D9E + East Asian ideograph + + + 214372 + 6751 + E69D91 + East Asian ideograph + + + 214373 + 674E + E69D8E + East Asian ideograph + + + 214374 + 675C + E69D9C + East Asian ideograph + + + 214375 + 6750 + E69D90 + East Asian ideograph + + + 214376 + 6756 + E69D96 + East Asian ideograph + + + 214377 + 675F + E69D9F + East Asian ideograph + + + 214378 + 674F + E69D8F + East Asian ideograph + + + 214379 + 6749 + E69D89 + East Asian ideograph + + + 21437B + 676D + E69DAD + East Asian ideograph + + + 21437C + 678B + E69E8B + East Asian ideograph + + + 21437D + 6795 + E69E95 + East Asian ideograph + + + 21437E + 6789 + E69E89 + East Asian ideograph + + + 214421 + 6787 + E69E87 + East Asian ideograph + + + 214422 + 6777 + E69DB7 + East Asian ideograph + + + 214423 + 679D + E69E9D + East Asian ideograph + + + 214424 + 6797 + E69E97 + East Asian ideograph + + + 214425 + 676F + E69DAF + East Asian ideograph + + + 214426 + 6771 + E69DB1 + East Asian ideograph + + + 214427 + 6773 + E69DB3 + East Asian ideograph + + + 214428 + 679C + E69E9C + East Asian ideograph + + + 214429 + 6775 + E69DB5 + East Asian ideograph + + + 21442A + 679A + E69E9A + East Asian ideograph + + + 21442B + 6790 + E69E90 + East Asian ideograph + + + 21442D + 677E + E69DBE + East Asian ideograph + + + 21442E + 67D3 + E69F93 + East Asian ideograph + + + 21442F + 67F1 + E69FB1 + East Asian ideograph + + + 214430 + 67FF + E69FBF + East Asian ideograph + + + 214431 + 67D4 + E69F94 + East Asian ideograph + + + 214432 + 67C4 + E69F84 + East Asian ideograph + + + 214433 + 67AF + E69EAF + East Asian ideograph + + + 214434 + 67D0 + E69F90 + East Asian ideograph + + + 214435 + 67D1 + E69F91 + East Asian ideograph + + + 214436 + 67EF + E69FAF + East Asian ideograph + + + 214437 + 67E9 + E69FA9 + East Asian ideograph + + + 214438 + 67B6 + E69EB6 + East Asian ideograph + + + 214439 + 67EC + E69FAC + East Asian ideograph + + + 21443A + 67E5 + E69FA5 + East Asian ideograph + + + 21443B + 67FA + E69FBA + East Asian ideograph + + + 21443C + 67DA + E69F9A + East Asian ideograph + + + 21443D + 6805 + E6A085 + East Asian ideograph + + + 21443E + 67DE + E69F9E + East Asian ideograph + + + 21443F + 67B8 + E69EB8 + East Asian ideograph + + + 214440 + 67CF + E69F8F + East Asian ideograph + + + 214441 + 67F3 + E69FB3 + East Asian ideograph + + + 214442 + 6848 + E6A188 + East Asian ideograph + + + 214443 + 6821 + E6A0A1 + East Asian ideograph + + + 214444 + 6838 + E6A0B8 + East Asian ideograph + + + 214445 + 6853 + E6A193 + East Asian ideograph + + + 214446 + 6846 + E6A186 + East Asian ideograph + + + 214447 + 6842 + E6A182 + East Asian ideograph + + + 214448 + 6854 + E6A194 + East Asian ideograph + + + 214449 + 6817 + E6A097 + East Asian ideograph + + + 21444A + 683D + E6A0BD + East Asian ideograph + + + 21444B + 6851 + E6A191 + East Asian ideograph + + + 21444C + 6829 + E6A0A9 + East Asian ideograph + + + 21444D + 6850 + E6A190 + East Asian ideograph + + + 21444E + 6839 + E6A0B9 + East Asian ideograph + + + 214450 + 67F4 + E69FB4 + East Asian ideograph + + + 214451 + 6843 + E6A183 + East Asian ideograph + + + 214452 + 6840 + E6A180 + East Asian ideograph + + + 214453 + 682A + E6A0AA + East Asian ideograph + + + 214454 + 6845 + E6A185 + East Asian ideograph + + + 214455 + 683C + E6A0BC + East Asian ideograph + + + 214456 + 6813 + E6A093 + East Asian ideograph (variant of EACC 4B4456) + + + 214457 + 6881 + E6A281 + East Asian ideograph + + + 214458 + 6893 + E6A293 + East Asian ideograph + + + 214459 + 68AF + E6A2AF + East Asian ideograph + + + 21445A + 6876 + E6A1B6 + East Asian ideograph + + + 21445B + 68B0 + E6A2B0 + East Asian ideograph + + + 21445C + 68A7 + E6A2A7 + East Asian ideograph + + + 21445D + 6897 + E6A297 + East Asian ideograph + + + 21445E + 68B5 + E6A2B5 + East Asian ideograph + + + 21445F + 68B3 + E6A2B3 + East Asian ideograph + + + 214460 + 68A2 + E6A2A2 + East Asian ideograph + + + 214461 + 687F + E6A1BF + East Asian ideograph + + + 214462 + 68B1 + E6A2B1 + East Asian ideograph + + + 214463 + 689D + E6A29D + East Asian ideograph + + + 214464 + 68AD + E6A2AD + East Asian ideograph + + + 214465 + 6886 + E6A286 + East Asian ideograph + + + 214466 + 6885 + E6A285 + East Asian ideograph + + + 214467 + 68A8 + E6A2A8 + East Asian ideograph + + + 214468 + 689F + E6A29F + East Asian ideograph + + + 214469 + 6894 + E6A294 + East Asian ideograph + + + 21446A + 6883 + E6A283 + East Asian ideograph + + + 21446B + 68D5 + E6A395 + East Asian ideograph + + + 21446C + 68FA + E6A3BA + East Asian ideograph + + + 21446D + 68C4 + E6A384 + East Asian ideograph + + + 21446E + 68F2 + E6A3B2 + East Asian ideograph + + + 21446F + 68D2 + E6A392 + East Asian ideograph + + + 214470 + 68E3 + E6A3A3 + East Asian ideograph + + + 214471 + 68DF + E6A39F + East Asian ideograph + + + 214472 + 68CB + E6A38B + East Asian ideograph + + + 214473 + 68EE + E6A3AE + East Asian ideograph + + + 214474 + 690D + E6A48D + East Asian ideograph + + + 214475 + 6905 + E6A485 + East Asian ideograph + + + 214476 + 68E7 + E6A3A7 + East Asian ideograph + + + 214477 + 68E0 + E6A3A0 + East Asian ideograph + + + 214478 + 68F5 + E6A3B5 + East Asian ideograph + + + 214479 + 68CD + E6A38D + East Asian ideograph + + + 21447A + 68D7 + E6A397 + East Asian ideograph + + + 21447B + 68D8 + E6A398 + East Asian ideograph + + + 21447C + 6912 + E6A492 + East Asian ideograph + + + 21447D + 68F9 + E6A3B9 + East Asian ideograph + + + 21447E + 68DA + E6A39A + East Asian ideograph + + + 214521 + 690E + E6A48E + East Asian ideograph + + + 214522 + 68C9 + E6A389 + East Asian ideograph + + + 214523 + 6954 + E6A594 + East Asian ideograph + + + 214524 + 6930 + E6A4B0 + East Asian ideograph + + + 214525 + 6977 + E6A5B7 + East Asian ideograph + + + 214526 + 6975 + E6A5B5 + East Asian ideograph + + + 214527 + 695A + E6A59A + East Asian ideograph + + + 214528 + 6960 + E6A5A0 + East Asian ideograph + + + 214529 + 696B + E6A5AB + East Asian ideograph + + + 21452A + 694A + E6A58A + East Asian ideograph + + + 21452B + 6968 + E6A5A8 + East Asian ideograph + + + 21452C + 695E + E6A59E + East Asian ideograph + + + 21452D + 696D + E6A5AD + East Asian ideograph + + + 21452E + 6979 + E6A5B9 + East Asian ideograph + + + 21452F + 6953 + E6A593 + East Asian ideograph + + + 214530 + 6986 + E6A686 + East Asian ideograph + + + 214531 + 69A8 + E6A6A8 + East Asian ideograph + + + 214532 + 6995 + E6A695 + East Asian ideograph + + + 214533 + 699C + E6A69C + East Asian ideograph + + + 214534 + 6994 + E6A694 + East Asian ideograph + + + 214535 + 69C1 + E6A781 + East Asian ideograph + + + 214536 + 69B7 + E6A6B7 + East Asian ideograph + + + 214537 + 69AE + E6A6AE + East Asian ideograph + + + 214538 + 699B + E6A69B + East Asian ideograph + + + 214539 + 69CB + E6A78B + East Asian ideograph + + + 21453A + 69D3 + E6A793 + East Asian ideograph + + + 21453B + 69BB + E6A6BB + East Asian ideograph + + + 21453C + 69AB + E6A6AB + East Asian ideograph + + + 21453D + 69CC + E6A78C + East Asian ideograph + + + 21453E + 69AD + E6A6AD + East Asian ideograph + + + 21453F + 69D0 + E6A790 + East Asian ideograph + + + 214540 + 69CD + E6A78D + East Asian ideograph + + + 214541 + 69B4 + E6A6B4 + East Asian ideograph + + + 214542 + 6A1F + E6A89F + East Asian ideograph + + + 214543 + 69E8 + E6A7A8 + East Asian ideograph + + + 214544 + 6A23 + E6A8A3 + East Asian ideograph + + + 214545 + 69EA + E6A7AA + East Asian ideograph + + + 214546 + 6A01 + E6A881 + East Asian ideograph + + + 214547 + 6A19 + E6A899 + East Asian ideograph + + + 214548 + 69FD + E6A7BD + East Asian ideograph + + + 214549 + 6A1E + E6A89E + East Asian ideograph + + + 21454A + 6A13 + E6A893 + East Asian ideograph + + + 21454B + 6A21 + E6A8A1 + East Asian ideograph + + + 21454C + 69F3 + E6A7B3 + East Asian ideograph + + + 21454D + 6A0A + E6A88A + East Asian ideograph + + + 21454E + 6A02 + E6A882 + East Asian ideograph + + + 21454F + 6A05 + E6A885 + East Asian ideograph + + + 214550 + 6A3D + E6A8BD + East Asian ideograph + + + 214551 + 6A58 + E6A998 + East Asian ideograph + + + 214552 + 6A59 + E6A999 + East Asian ideograph + + + 214553 + 6A62 + E6A9A2 + East Asian ideograph + + + 214554 + 6A44 + E6A984 + East Asian ideograph + + + 214555 + 6A39 + E6A8B9 + East Asian ideograph + + + 214556 + 6A6B + E6A9AB + East Asian ideograph + + + 214557 + 6A3A + E6A8BA + East Asian ideograph + + + 214558 + 6A38 + E6A8B8 + East Asian ideograph + + + 214559 + 6A47 + E6A987 + East Asian ideograph + + + 21455A + 6A61 + E6A9A1 + East Asian ideograph + + + 21455B + 6A4B + E6A98B + East Asian ideograph + + + 21455C + 6A35 + E6A8B5 + East Asian ideograph + + + 21455D + 6A5F + E6A99F + East Asian ideograph + + + 21455E + 6A80 + E6AA80 + East Asian ideograph + + + 21455F + 6A94 + E6AA94 + East Asian ideograph + + + 214560 + 6A84 + E6AA84 + East Asian ideograph + + + 214561 + 6AA2 + E6AAA2 + East Asian ideograph + + + 214562 + 6A9C + E6AA9C + East Asian ideograph + + + 214563 + 6AB8 + E6AAB8 + East Asian ideograph + + + 214564 + 6AB3 + E6AAB3 + East Asian ideograph + + + 214565 + 6AC3 + E6AB83 + East Asian ideograph + + + 214566 + 6ABB + E6AABB + East Asian ideograph + + + 214568 + 6AAC + E6AAAC + East Asian ideograph + + + 214569 + 6AE5 + E6ABA5 + East Asian ideograph + + + 21456A + 6ADA + E6AB9A + East Asian ideograph + + + 21456B + 6ADD + E6AB9D + East Asian ideograph + + + 21456C + 6ADB + E6AB9B + East Asian ideograph + + + 21456D + 6AD3 + E6AB93 + East Asian ideograph + + + 21456E + 6B04 + E6AC84 + East Asian ideograph + + + 21456F + 6AFB + E6ABBB + East Asian ideograph + + + 214570 + 6B0A + E6AC8A + East Asian ideograph + + + 214571 + 6B16 + E6AC96 + East Asian ideograph + + + 214573 + 6B21 + E6ACA1 + East Asian ideograph + + + 214574 + 6B23 + E6ACA3 + East Asian ideograph + + + 214576 + 6B3E + E6ACBE + East Asian ideograph + + + 214577 + 6B3A + E6ACBA + East Asian ideograph + + + 214578 + 6B3D + E6ACBD + East Asian ideograph + + + 214579 + 6B47 + E6AD87 + East Asian ideograph + + + 21457A + 6B49 + E6AD89 + East Asian ideograph + + + 21457B + 6B4C + E6AD8C + East Asian ideograph + + + 21457C + 6B50 + E6AD90 + East Asian ideograph + + + 21457D + 6B59 + E6AD99 + East Asian ideograph + + + 21457E + 6B5F + E6AD9F + East Asian ideograph + + + 214621 + 6B61 + E6ADA1 + East Asian ideograph + + + 214623 + 6B63 + E6ADA3 + East Asian ideograph + + + 214624 + 6B64 + E6ADA4 + East Asian ideograph + + + 214625 + 6B65 + E6ADA5 + East Asian ideograph + + + 214627 + 6B66 + E6ADA6 + East Asian ideograph + + + 214628 + 6B6A + E6ADAA + East Asian ideograph + + + 214629 + 6B72 + E6ADB2 + East Asian ideograph + + + 21462A + 6B77 + E6ADB7 + East Asian ideograph + + + 21462B + 6B78 + E6ADB8 + East Asian ideograph + + + 21462C + 6B79 + E6ADB9 + East Asian ideograph + + + 21462D + 6B7B + E6ADBB + East Asian ideograph + + + 21462E + 6B7F + E6ADBF + East Asian ideograph + + + 21462F + 6B83 + E6AE83 + East Asian ideograph + + + 214630 + 6B86 + E6AE86 + East Asian ideograph + + + 214631 + 6B8A + E6AE8A + East Asian ideograph + + + 214632 + 6B89 + E6AE89 + East Asian ideograph + + + 214633 + 6B98 + E6AE98 + East Asian ideograph + + + 214634 + 6B96 + E6AE96 + East Asian ideograph + + + 214635 + 6BA4 + E6AEA4 + East Asian ideograph + + + 214636 + 6BAE + E6AEAE + East Asian ideograph + + + 214637 + 6BAF + E6AEAF + East Asian ideograph + + + 214638 + 6BB2 + E6AEB2 + East Asian ideograph + + + 214639 + 6BB5 + E6AEB5 + East Asian ideograph + + + 21463A + 6BB7 + E6AEB7 + East Asian ideograph + + + 21463B + 6BBA + E6AEBA + East Asian ideograph + + + 21463C + 6BBC + E6AEBC + East Asian ideograph + + + 21463D + 6BC0 + E6AF80 + East Asian ideograph + + + 21463E + 6BBF + E6AEBF + East Asian ideograph + + + 21463F + 6BC5 + E6AF85 + East Asian ideograph + + + 214640 + 6BC6 + E6AF86 + East Asian ideograph + + + 214641 + 6BCB + E6AF8B + East Asian ideograph + + + 214642 + 6BCD + E6AF8D + East Asian ideograph + + + 214643 + 6BCF + E6AF8F + East Asian ideograph + + + 214644 + 6BD2 + E6AF92 + East Asian ideograph + + + 214646 + 6BD4 + E6AF94 + East Asian ideograph + + + 214647 + 6BD7 + E6AF97 + East Asian ideograph + + + 214648 + 6BDB + E6AF9B + East Asian ideograph + + + 214649 + 6BEB + E6AFAB + East Asian ideograph + + + 21464A + 6BEF + E6AFAF + East Asian ideograph + + + 21464B + 6BFD + E6AFBD + East Asian ideograph + + + 21464C + 6C0F + E6B08F + East Asian ideograph + + + 21464D + 6C11 + E6B091 + East Asian ideograph + + + 21464E + 6C10 + E6B090 + East Asian ideograph + + + 21464F + 6C13 + E6B093 + East Asian ideograph + + + 214650 + 6C16 + E6B096 + East Asian ideograph + + + 214651 + 6C1B + E6B09B + East Asian ideograph + + + 214652 + 6C1F + E6B09F + East Asian ideograph + + + 214653 + 6C27 + E6B0A7 + East Asian ideograph + + + 214654 + 6C26 + E6B0A6 + East Asian ideograph + + + 214655 + 6C23 + E6B0A3 + East Asian ideograph + + + 214656 + 6C28 + E6B0A8 + East Asian ideograph + + + 214657 + 6C24 + E6B0A4 + East Asian ideograph + + + 214658 + 6C2B + E6B0AB + East Asian ideograph + + + 214659 + 6C2E + E6B0AE + East Asian ideograph + + + 21465A + 6C33 + E6B0B3 + East Asian ideograph + + + 21465B + 6C2F + E6B0AF + East Asian ideograph (variant of EACC 45465B) + + + 21465C + 6C34 + E6B0B4 + East Asian ideograph + + + 21465D + 6C38 + E6B0B8 + East Asian ideograph + + + 21465E + 6C41 + E6B181 + East Asian ideograph + + + 214660 + 6C40 + E6B180 + East Asian ideograph + + + 214661 + 6C42 + E6B182 + East Asian ideograph + + + 214662 + 6C5E + E6B19E + East Asian ideograph + + + 214663 + 6C57 + E6B197 + East Asian ideograph + + + 214664 + 6C5F + E6B19F + East Asian ideograph + + + 214665 + 6C59 + E6B199 + East Asian ideograph + + + 214666 + 6C60 + E6B1A0 + East Asian ideograph + + + 214667 + 6C55 + E6B195 + East Asian ideograph + + + 214668 + 6C50 + E6B190 + East Asian ideograph + + + 214669 + 6C5D + E6B19D + East Asian ideograph + + + 21466A + 6C9B + E6B29B + East Asian ideograph + + + 21466B + 6C81 + E6B281 + East Asian ideograph + + + 21466D + 6C7A + E6B1BA + East Asian ideograph + + + 21466E + 6C6A + E6B1AA + East Asian ideograph + + + 21466F + 6C8C + E6B28C + East Asian ideograph + + + 214670 + 6C90 + E6B290 + East Asian ideograph + + + 214671 + 6C72 + E6B1B2 + East Asian ideograph + + + 214672 + 6C70 + E6B1B0 + East Asian ideograph + + + 214673 + 6C68 + E6B1A8 + East Asian ideograph + + + 214674 + 6C96 + E6B296 + East Asian ideograph + + + 214676 + 6C89 + E6B289 + East Asian ideograph (variant of EACC 4B4676) + + + 214677 + 6C99 + E6B299 + East Asian ideograph + + + 214678 + 6C7E + E6B1BE + East Asian ideograph + + + 214679 + 6C7D + E6B1BD + East Asian ideograph + + + 21467A + 6C92 + E6B292 + East Asian ideograph + + + 21467B + 6C83 + E6B283 + East Asian ideograph + + + 21467C + 6CB1 + E6B2B1 + East Asian ideograph + + + 21467E + 6CF3 + E6B3B3 + East Asian ideograph + + + 214721 + 6CE3 + E6B3A3 + East Asian ideograph + + + 214722 + 6CF0 + E6B3B0 + East Asian ideograph + + + 214723 + 6CB8 + E6B2B8 + East Asian ideograph + + + 214724 + 6CD3 + E6B393 + East Asian ideograph + + + 214725 + 6CAB + E6B2AB + East Asian ideograph + + + 214726 + 6CE5 + E6B3A5 + East Asian ideograph + + + 214727 + 6CBD + E6B2BD + East Asian ideograph + + + 214728 + 6CB3 + E6B2B3 + East Asian ideograph + + + 214729 + 6CC4 + E6B384 + East Asian ideograph + + + 21472A + 6CD5 + E6B395 + East Asian ideograph + + + 21472B + 6CE2 + E6B3A2 + East Asian ideograph + + + 21472C + 6CBC + E6B2BC + East Asian ideograph + + + 21472D + 6CAE + E6B2AE + East Asian ideograph + + + 21472E + 6CB9 + E6B2B9 + East Asian ideograph + + + 21472F + 6CF1 + E6B3B1 + East Asian ideograph + + + 214730 + 6CC1 + E6B381 + East Asian ideograph + + + 214731 + 6CBE + E6B2BE + East Asian ideograph + + + 214732 + 6CC5 + E6B385 + East Asian ideograph + + + 214733 + 6CD7 + E6B397 + East Asian ideograph + + + 214734 + 6CBB + E6B2BB + East Asian ideograph + + + 214735 + 6CDB + E6B39B + East Asian ideograph + + + 214736 + 6CE1 + E6B3A1 + East Asian ideograph + + + 214737 + 6CBF + E6B2BF + East Asian ideograph + + + 214738 + 6CCA + E6B38A + East Asian ideograph + + + 214739 + 6CCC + E6B38C + East Asian ideograph + + + 21473A + 6CC9 + E6B389 + East Asian ideograph + + + 21473B + 6D41 + E6B581 + East Asian ideograph + + + 21473C + 6D0B + E6B48B + East Asian ideograph + + + 21473D + 6D32 + E6B4B2 + East Asian ideograph + + + 21473E + 6D25 + E6B4A5 + East Asian ideograph + + + 21473F + 6D31 + E6B4B1 + East Asian ideograph + + + 214740 + 6D2A + E6B4AA + East Asian ideograph + + + 214741 + 6D0C + E6B48C + East Asian ideograph + + + 214742 + 6D1E + E6B49E + East Asian ideograph + + + 214743 + 6D17 + E6B497 + East Asian ideograph + + + 214744 + 6D3B + E6B4BB + East Asian ideograph + + + 214745 + 6D1B + E6B49B + East Asian ideograph + + + 214746 + 6D36 + E6B4B6 + East Asian ideograph + + + 214747 + 6D3D + E6B4BD + East Asian ideograph + + + 214748 + 6D3E + E6B4BE + East Asian ideograph + + + 214749 + 6D6A + E6B5AA + East Asian ideograph + + + 21474A + 6D95 + E6B695 + East Asian ideograph + + + 21474B + 6D78 + E6B5B8 + East Asian ideograph + + + 21474C + 6D66 + E6B5A6 + East Asian ideograph + + + 21474D + 6D59 + E6B599 + East Asian ideograph + + + 21474E + 6D87 + E6B687 + East Asian ideograph + + + 21474F + 6D88 + E6B688 + East Asian ideograph + + + 214750 + 6D6C + E6B5AC + East Asian ideograph + + + 214751 + 6D93 + E6B693 + East Asian ideograph + + + 214752 + 6D89 + E6B689 + East Asian ideograph + + + 214753 + 6D6E + E6B5AE + East Asian ideograph + + + 214754 + 6D74 + E6B5B4 + East Asian ideograph + + + 214755 + 6D5A + E6B59A + East Asian ideograph + + + 214756 + 6D69 + E6B5A9 + East Asian ideograph + + + 214757 + 6D77 + E6B5B7 + East Asian ideograph + + + 214758 + 6DD9 + E6B799 + East Asian ideograph + + + 214759 + 6DDA + E6B79A + East Asian ideograph + + + 21475A + 6DF3 + E6B7B3 + East Asian ideograph + + + 21475B + 6DBC + E6B6BC + East Asian ideograph + + + 21475C + 6DE4 + E6B7A4 + East Asian ideograph + + + 21475D + 6DB2 + E6B6B2 + East Asian ideograph + + + 21475E + 6DE1 + E6B7A1 + East Asian ideograph + + + 21475F + 6DD2 + E6B792 + East Asian ideograph + + + 214760 + 6DAE + E6B6AE + East Asian ideograph + + + 214761 + 6DF8 + E6B7B8 + East Asian ideograph + + + 214762 + 6DC7 + E6B787 + East Asian ideograph + + + 214763 + 6DCB + E6B78B + East Asian ideograph + + + 214764 + 6DC5 + E6B785 + East Asian ideograph + + + 214765 + 6DDE + E6B79E + East Asian ideograph + + + 214766 + 6DAF + E6B6AF + East Asian ideograph + + + 214767 + 6DB5 + E6B6B5 + East Asian ideograph + + + 214768 + 6DFA + E6B7BA + East Asian ideograph + + + 214769 + 6DF9 + E6B7B9 + East Asian ideograph + + + 21476A + 6DCC + E6B78C + East Asian ideograph + + + 21476B + 6DF7 + E6B7B7 + East Asian ideograph + + + 21476C + 6DB8 + E6B6B8 + East Asian ideograph + + + 21476D + 6DD1 + E6B791 + East Asian ideograph + + + 21476E + 6DF1 + E6B7B1 + East Asian ideograph + + + 21476F + 6DE8 + E6B7A8 + East Asian ideograph + + + 214770 + 6DEB + E6B7AB + East Asian ideograph + + + 214771 + 6DD8 + E6B798 + East Asian ideograph + + + 214772 + 6DFB + E6B7BB + East Asian ideograph + + + 214773 + 6DEE + E6B7AE + East Asian ideograph + + + 214774 + 6DF5 + E6B7B5 + East Asian ideograph + + + 214775 + 6D8E + E6B68E + East Asian ideograph + + + 214776 + 6DC6 + E6B786 + East Asian ideograph + + + 214777 + 6DEA + E6B7AA + East Asian ideograph + + + 214778 + 6DC4 + E6B784 + East Asian ideograph + + + 214779 + 6E54 + E6B994 + East Asian ideograph + + + 21477A + 6E21 + E6B8A1 + East Asian ideograph + + + 21477B + 6E38 + E6B8B8 + East Asian ideograph + + + 21477C + 6E32 + E6B8B2 + East Asian ideograph + + + 21477D + 6E67 + E6B9A7 + East Asian ideograph + + + 21477E + 6E20 + E6B8A0 + East Asian ideograph + + + 214821 + 6E5B + E6B99B + East Asian ideograph + + + 214822 + 6E1A + E6B89A + East Asian ideograph + + + 214823 + 6E56 + E6B996 + East Asian ideograph + + + 214824 + 6E2F + E6B8AF + East Asian ideograph + + + 214825 + 6E6E + E6B9AE + East Asian ideograph + + + 214826 + 6E58 + E6B998 + East Asian ideograph + + + 214827 + 6E23 + E6B8A3 + East Asian ideograph + + + 214828 + 6E24 + E6B8A4 + East Asian ideograph + + + 214829 + 6E1B + E6B89B + East Asian ideograph + + + 21482A + 6E25 + E6B8A5 + East Asian ideograph + + + 21482B + 6E4A + E6B98A + East Asian ideograph + + + 21482C + 6E3A + E6B8BA + East Asian ideograph + + + 21482D + 6E6F + E6B9AF + East Asian ideograph + + + 21482E + 6E2D + E6B8AD + East Asian ideograph + + + 21482F + 6E34 + E6B8B4 + East Asian ideograph + + + 214830 + 6E2C + E6B8AC + East Asian ideograph + + + 214831 + 6E26 + E6B8A6 + East Asian ideograph + + + 214832 + 6E4D + E6B98D + East Asian ideograph + + + 214833 + 6E3E + E6B8BE + East Asian ideograph + + + 214834 + 6E43 + E6B983 + East Asian ideograph + + + 214835 + 6E19 + E6B899 + East Asian ideograph + + + 214836 + 6E1D + E6B89D + East Asian ideograph + + + 214837 + 6ED3 + E6BB93 + East Asian ideograph + + + 214838 + 6EB6 + E6BAB6 + East Asian ideograph + + + 214839 + 6EC2 + E6BB82 + East Asian ideograph + + + 21483B + 6EAF + E6BAAF + East Asian ideograph + + + 21483C + 6EA2 + E6BAA2 + East Asian ideograph + + + 21483D + 6E9D + E6BA9D + East Asian ideograph + + + 21483F + 6EA5 + E6BAA5 + East Asian ideograph + + + 214840 + 6E98 + E6BA98 + East Asian ideograph + + + 214841 + 6E90 + E6BA90 + East Asian ideograph + + + 214842 + 6EC5 + E6BB85 + East Asian ideograph + + + 214843 + 6EC7 + E6BB87 + East Asian ideograph + + + 214844 + 6EBC + E6BABC + East Asian ideograph + + + 214845 + 6EAB + E6BAAB + East Asian ideograph + + + 214846 + 6ED1 + E6BB91 + East Asian ideograph + + + 214847 + 6ECB + E6BB8B + East Asian ideograph + + + 214848 + 6EC4 + E6BB84 + East Asian ideograph + + + 214849 + 6ED4 + E6BB94 + East Asian ideograph + + + 21484A + 6EAA + E6BAAA + East Asian ideograph + + + 21484B + 6E96 + E6BA96 + East Asian ideograph + + + 21484C + 6E9C + E6BA9C + East Asian ideograph + + + 21484D + 6F33 + E6BCB3 + East Asian ideograph + + + 21484E + 6EF4 + E6BBB4 + East Asian ideograph + + + 21484F + 6EEC + E6BBAC + East Asian ideograph + + + 214850 + 6EFE + E6BBBE + East Asian ideograph + + + 214851 + 6F29 + E6BCA9 + East Asian ideograph + + + 214852 + 6F14 + E6BC94 + East Asian ideograph + + + 214853 + 6F3E + E6BCBE + East Asian ideograph + + + 214854 + 6F2C + E6BCAC + East Asian ideograph + + + 214855 + 6F32 + E6BCB2 + East Asian ideograph + + + 214856 + 6F0F + E6BC8F + East Asian ideograph + + + 214857 + 6F22 + E6BCA2 + East Asian ideograph (variant of EACC 4B4857) + + + 214858 + 6EFF + E6BBBF + East Asian ideograph + + + 214859 + 6F23 + E6BCA3 + East Asian ideograph + + + 21485A + 6F38 + E6BCB8 + East Asian ideograph + + + 21485B + 6F15 + E6BC95 + East Asian ideograph + + + 21485C + 6F31 + E6BCB1 + East Asian ideograph + + + 21485D + 6F02 + E6BC82 + East Asian ideograph + + + 21485E + 6F06 + E6BC86 + East Asian ideograph + + + 21485F + 6EEF + E6BBAF + East Asian ideograph + + + 214860 + 6F2B + E6BCAB + East Asian ideograph + + + 214861 + 6F2F + E6BCAF + East Asian ideograph + + + 214862 + 6F20 + E6BCA0 + East Asian ideograph + + + 214863 + 6F3F + E6BCBF + East Asian ideograph + + + 214864 + 6EF2 + E6BBB2 + East Asian ideograph + + + 214865 + 6F01 + E6BC81 + East Asian ideograph + + + 214866 + 6F11 + E6BC91 + East Asian ideograph + + + 214867 + 6ECC + E6BB8C + East Asian ideograph + + + 214868 + 6F2A + E6BCAA + East Asian ideograph + + + 214869 + 6F7C + E6BDBC + East Asian ideograph + + + 21486A + 6F88 + E6BE88 + East Asian ideograph + + + 21486B + 6F84 + E6BE84 + East Asian ideograph + + + 21486C + 6F51 + E6BD91 + East Asian ideograph + + + 21486D + 6F64 + E6BDA4 + East Asian ideograph + + + 21486E + 6F97 + E6BE97 + East Asian ideograph + + + 21486F + 6F54 + E6BD94 + East Asian ideograph + + + 214870 + 6F7A + E6BDBA + East Asian ideograph + + + 214871 + 6F86 + E6BE86 + East Asian ideograph + + + 214872 + 6F8E + E6BE8E + East Asian ideograph + + + 214873 + 6F6D + E6BDAD + East Asian ideograph + + + 214874 + 6F5B + E6BD9B + East Asian ideograph + + + 214875 + 6F6E + E6BDAE + East Asian ideograph + + + 214876 + 6F78 + E6BDB8 + East Asian ideograph + + + 214877 + 6F66 + E6BDA6 + East Asian ideograph + + + 214878 + 6F70 + E6BDB0 + East Asian ideograph + + + 214879 + 6F58 + E6BD98 + East Asian ideograph + + + 21487A + 6FC2 + E6BF82 + East Asian ideograph + + + 21487B + 6FB1 + E6BEB1 + East Asian ideograph + + + 21487C + 6FC3 + E6BF83 + East Asian ideograph + + + 21487D + 6FA7 + E6BEA7 + East Asian ideograph + + + 21487E + 6FA1 + E6BEA1 + East Asian ideograph + + + 214921 + 6FA4 + E6BEA4 + East Asian ideograph + + + 214922 + 6FC1 + E6BF81 + East Asian ideograph + + + 214924 + 6FC0 + E6BF80 + East Asian ideograph + + + 214925 + 6FB3 + E6BEB3 + East Asian ideograph + + + 214926 + 6FDF + E6BF9F + East Asian ideograph + + + 214927 + 6FD8 + E6BF98 + East Asian ideograph + + + 214928 + 6FF1 + E6BFB1 + East Asian ideograph + + + 214929 + 6FE0 + E6BFA0 + East Asian ideograph + + + 21492A + 6FEF + E6BFAF + East Asian ideograph + + + 21492B + 6FEB + E6BFAB + East Asian ideograph (variant of EACC 4B492B) + + + 21492C + 6FE1 + E6BFA1 + East Asian ideograph + + + 21492D + 6FE4 + E6BFA4 + East Asian ideograph + + + 21492E + 6F80 + E6BE80 + East Asian ideograph + + + 214931 + 700B + E7808B + East Asian ideograph + + + 214932 + 7009 + E78089 + East Asian ideograph + + + 214933 + 7006 + E78086 + East Asian ideograph + + + 214934 + 6FFA + E6BFBA + East Asian ideograph + + + 214935 + 7011 + E78091 + East Asian ideograph + + + 214936 + 6FFE + E6BFBE + East Asian ideograph + + + 214937 + 700F + E7808F + East Asian ideograph + + + 214938 + 701B + E7809B + East Asian ideograph + + + 214939 + 701A + E7809A + East Asian ideograph + + + 21493A + 7028 + E780A8 + East Asian ideograph + + + 21493B + 701D + E7809D + East Asian ideograph + + + 21493C + 7015 + E78095 + East Asian ideograph + + + 21493D + 701F + E7809F + East Asian ideograph + + + 21493F + 703E + E780BE + East Asian ideograph + + + 214940 + 704C + E7818C + East Asian ideograph + + + 214941 + 7051 + E78191 + East Asian ideograph + + + 214942 + 7058 + E78198 + East Asian ideograph + + + 214943 + 7063 + E781A3 + East Asian ideograph + + + 214944 + 7064 + E781A4 + East Asian ideograph + + + 214945 + 706B + E781AB + East Asian ideograph + + + 214946 + 7070 + E781B0 + East Asian ideograph + + + 214947 + 7076 + E781B6 + East Asian ideograph + + + 214948 + 707C + E781BC + East Asian ideograph + + + 214949 + 7078 + E781B8 + East Asian ideograph + + + 21494A + 707D + E781BD + East Asian ideograph + + + 21494B + 7095 + E78295 + East Asian ideograph + + + 21494C + 708E + E7828E + East Asian ideograph + + + 21494D + 7092 + E78292 + East Asian ideograph + + + 21494E + 7099 + E78299 + East Asian ideograph + + + 21494F + 708A + E7828A + East Asian ideograph + + + 214950 + 70AB + E782AB + East Asian ideograph + + + 214951 + 70BA + E782BA + East Asian ideograph + + + 214952 + 70AC + E782AC + East Asian ideograph + + + 214953 + 70B3 + E782B3 + East Asian ideograph + + + 214954 + 70AF + E782AF + East Asian ideograph + + + 214955 + 70AD + E782AD + East Asian ideograph + + + 214956 + 70AE + E782AE + East Asian ideograph + + + 214957 + 70B8 + E782B8 + East Asian ideograph + + + 214958 + 70CA + E7838A + East Asian ideograph + + + 214959 + 70E4 + E783A4 + East Asian ideograph + + + 21495A + 70D8 + E78398 + East Asian ideograph + + + 21495B + 70C8 + E78388 + East Asian ideograph + + + 21495C + 70D9 + E78399 + East Asian ideograph + + + 21495D + 70CF + E7838F + East Asian ideograph + + + 21495E + 70F9 + E783B9 + East Asian ideograph + + + 21495F + 7109 + E78489 + East Asian ideograph + + + 214960 + 710A + E7848A + East Asian ideograph + + + 214961 + 70FD + E783BD + East Asian ideograph + + + 214962 + 7119 + E78499 + East Asian ideograph + + + 214963 + 716E + E785AE + East Asian ideograph + + + 214964 + 711A + E7849A + East Asian ideograph + + + 214965 + 7136 + E784B6 + East Asian ideograph + + + 214966 + 7121 + E784A1 + East Asian ideograph + + + 214967 + 7130 + E784B0 + East Asian ideograph + + + 214968 + 7126 + E784A6 + East Asian ideograph + + + 214969 + 714E + E7858E + East Asian ideograph + + + 21496A + 7149 + E78589 + East Asian ideograph + + + 21496B + 7159 + E78599 + East Asian ideograph + + + 21496C + 7164 + E785A4 + East Asian ideograph + + + 21496D + 7169 + E785A9 + East Asian ideograph + + + 21496E + 715C + E7859C + East Asian ideograph + + + 21496F + 716C + E785AC + East Asian ideograph + + + 214970 + 7166 + E785A6 + East Asian ideograph + + + 214971 + 7167 + E785A7 + East Asian ideograph + + + 214972 + 715E + E7859E + East Asian ideograph + + + 214973 + 7165 + E785A5 + East Asian ideograph + + + 214974 + 714C + E7858C + East Asian ideograph + + + 214975 + 717D + E785BD + East Asian ideograph + + + 214977 + 7199 + E78699 + East Asian ideograph + + + 214978 + 718A + E7868A + East Asian ideograph + + + 214979 + 7184 + E78684 + East Asian ideograph + + + 21497A + 719F + E7869F + East Asian ideograph + + + 21497B + 71A8 + E786A8 + East Asian ideograph + + + 21497C + 71AC + E786AC + East Asian ideograph + + + 21497D + 71B1 + E786B1 + East Asian ideograph + + + 21497E + 71D9 + E78799 + East Asian ideograph + + + 214A21 + 71BE + E786BE + East Asian ideograph + + + 214A22 + 71C9 + E78789 + East Asian ideograph + + + 214A23 + 71D0 + E78790 + East Asian ideograph + + + 214A24 + 71C8 + E78788 + East Asian ideograph + + + 214A25 + 71DC + E7879C + East Asian ideograph + + + 214A26 + 71D2 + E78792 + East Asian ideograph + + + 214A27 + 71B9 + E786B9 + East Asian ideograph + + + 214A28 + 71D5 + E78795 + East Asian ideograph + + + 214A29 + 71CE + E7878E + East Asian ideograph + + + 214A2A + 71C3 + E78783 + East Asian ideograph + + + 214A2B + 71C4 + E78784 + East Asian ideograph + + + 214A2C + 71EE + E787AE + East Asian ideograph + + + 214A2D + 71E7 + E787A7 + East Asian ideograph + + + 214A2E + 71DF + E7879F + East Asian ideograph + + + 214A2F + 71E5 + E787A5 + East Asian ideograph + + + 214A30 + 71ED + E787AD + East Asian ideograph + + + 214A31 + 71E6 + E787A6 + East Asian ideograph + + + 214A32 + 71EC + E787AC + East Asian ideograph + + + 214A33 + 71F4 + E787B4 + East Asian ideograph + + + 214A34 + 71FB + E787BB + East Asian ideograph + + + 214A35 + 7206 + E78886 + East Asian ideograph + + + 214A36 + 720D + E7888D + East Asian ideograph + + + 214A37 + 7210 + E78890 + East Asian ideograph + + + 214A38 + 721B + E7889B + East Asian ideograph + + + 214A39 + 7228 + E788A8 + East Asian ideograph + + + 214A3A + 722A + E788AA + East Asian ideograph + + + 214A3B + 722D + E788AD + East Asian ideograph + + + 214A3C + 722C + E788AC + East Asian ideograph + + + 214A3D + 7230 + E788B0 + East Asian ideograph + + + 214A3E + 7235 + E788B5 + East Asian ideograph (variant of EACC 4B4A3E) + + + 214A3F + 7236 + E788B6 + East Asian ideograph + + + 214A40 + 7238 + E788B8 + East Asian ideograph + + + 214A41 + 7239 + E788B9 + East Asian ideograph + + + 214A42 + 723A + E788BA + East Asian ideograph + + + 214A43 + 723B + E788BB + East Asian ideograph + + + 214A44 + 723D + E788BD + East Asian ideograph + + + 214A45 + 723E + E788BE + East Asian ideograph + + + 214A46 + 7246 + E78986 + East Asian ideograph + + + 214A47 + 7247 + E78987 + East Asian ideograph + + + 214A48 + 7248 + E78988 + East Asian ideograph + + + 214A49 + 724C + E7898C + East Asian ideograph + + + 214A4A + 7252 + E78992 + East Asian ideograph + + + 214A4B + 7256 + E78996 + East Asian ideograph + + + 214A4C + 7258 + E78998 + East Asian ideograph + + + 214A4D + 7259 + E78999 + East Asian ideograph + + + 214A4E + 725B + E7899B + East Asian ideograph + + + 214A4F + 725F + E7899F + East Asian ideograph + + + 214A50 + 725D + E7899D + East Asian ideograph + + + 214A51 + 7262 + E789A2 + East Asian ideograph + + + 214A52 + 7261 + E789A1 + East Asian ideograph + + + 214A53 + 7260 + E789A0 + East Asian ideograph + + + 214A54 + 7267 + E789A7 + East Asian ideograph + + + 214A55 + 7269 + E789A9 + East Asian ideograph + + + 214A56 + 726F + E789AF + East Asian ideograph + + + 214A57 + 7272 + E789B2 + East Asian ideograph + + + 214A58 + 7274 + E789B4 + East Asian ideograph + + + 214A59 + 7279 + E789B9 + East Asian ideograph + + + 214A5A + 727D + E789BD + East Asian ideograph + + + 214A5B + 7281 + E78A81 + East Asian ideograph + + + 214A5C + 7280 + E78A80 + East Asian ideograph + + + 214A5D + 7284 + E78A84 + East Asian ideograph + + + 214A5E + 7296 + E78A96 + East Asian ideograph + + + 214A5F + 7292 + E78A92 + East Asian ideograph + + + 214A60 + 729B + E78A9B + East Asian ideograph + + + 214A61 + 72A2 + E78AA2 + East Asian ideograph + + + 214A62 + 72A7 + E78AA7 + East Asian ideograph + + + 214A63 + 72AC + E78AAC + East Asian ideograph + + + 214A64 + 72AF + E78AAF + East Asian ideograph + + + 214A65 + 72C4 + E78B84 + East Asian ideograph + + + 214A66 + 72C2 + E78B82 + East Asian ideograph + + + 214A67 + 72D9 + E78B99 + East Asian ideograph + + + 214A68 + 72C0 + E78B80 + East Asian ideograph + + + 214A69 + 72CE + E78B8E + East Asian ideograph + + + 214A6A + 72D7 + E78B97 + East Asian ideograph + + + 214A6B + 72D0 + E78B90 + East Asian ideograph + + + 214A6C + 72E1 + E78BA1 + East Asian ideograph + + + 214A6D + 72E9 + E78BA9 + East Asian ideograph + + + 214A6E + 72E0 + E78BA0 + East Asian ideograph + + + 214A6F + 72FC + E78BBC + East Asian ideograph + + + 214A70 + 72F9 + E78BB9 + East Asian ideograph + + + 214A72 + 72FD + E78BBD + East Asian ideograph + + + 214A73 + 72F7 + E78BB7 + East Asian ideograph + + + 214A74 + 731C + E78C9C + East Asian ideograph + + + 214A75 + 731B + E78C9B + East Asian ideograph + + + 214A76 + 7313 + E78C93 + East Asian ideograph + + + 214A77 + 7316 + E78C96 + East Asian ideograph + + + 214A78 + 7319 + E78C99 + East Asian ideograph + + + 214A79 + 7336 + E78CB6 + East Asian ideograph + + + 214A7A + 7337 + E78CB7 + East Asian ideograph + + + 214A7B + 7329 + E78CA9 + East Asian ideograph + + + 214A7C + 7325 + E78CA5 + East Asian ideograph + + + 214A7D + 7334 + E78CB4 + East Asian ideograph + + + 214A7E + 7344 + E78D84 + East Asian ideograph + + + 214B21 + 733F + E78CBF + East Asian ideograph + + + 214B22 + 733E + E78CBE + East Asian ideograph + + + 214B23 + 7345 + E78D85 + East Asian ideograph + + + 214B24 + 7350 + E78D90 + East Asian ideograph + + + 214B26 + 7357 + E78D97 + East Asian ideograph + + + 214B27 + 7368 + E78DA8 + East Asian ideograph + + + 214B28 + 7370 + E78DB0 + East Asian ideograph + + + 214B29 + 7372 + E78DB2 + East Asian ideograph + + + 214B2A + 7377 + E78DB7 + East Asian ideograph + + + 214B2B + 7378 + E78DB8 + East Asian ideograph + + + 214B2C + 7375 + E78DB5 + East Asian ideograph + + + 214B2D + 737A + E78DBA + East Asian ideograph + + + 214B2E + 737B + E78DBB + East Asian ideograph + + + 214B2F + 7380 + E78E80 + East Asian ideograph + + + 214B30 + 7384 + E78E84 + East Asian ideograph + + + 214B31 + 7387 + E78E87 + East Asian ideograph + + + 214B32 + 7389 + E78E89 + East Asian ideograph + + + 214B33 + 738B + E78E8B + East Asian ideograph + + + 214B34 + 7396 + E78E96 + East Asian ideograph + + + 214B35 + 739F + E78E9F + East Asian ideograph + + + 214B36 + 73A8 + E78EA8 + East Asian ideograph + + + 214B37 + 73A9 + E78EA9 + East Asian ideograph + + + 214B38 + 73AB + E78EAB + East Asian ideograph + + + 214B39 + 73BB + E78EBB + East Asian ideograph + + + 214B3A + 73CA + E78F8A + East Asian ideograph + + + 214B3B + 73B7 + E78EB7 + East Asian ideograph + + + 214B3C + 73C0 + E78F80 + East Asian ideograph + + + 214B3E + 73B2 + E78EB2 + East Asian ideograph + + + 214B3F + 73CD + E78F8D + East Asian ideograph + + + 214B40 + 73ED + E78FAD + East Asian ideograph + + + 214B41 + 73EE + E78FAE + East Asian ideograph + + + 214B42 + 73E0 + E78FA0 + East Asian ideograph + + + 214B43 + 7405 + E79085 + East Asian ideograph + + + 214B44 + 7409 + E79089 + East Asian ideograph + + + 214B45 + 7403 + E79083 + East Asian ideograph + + + 214B46 + 740A + E7908A + East Asian ideograph + + + 214B47 + 73FE + E78FBE + East Asian ideograph + + + 214B48 + 7406 + E79086 + East Asian ideograph + + + 214B49 + 740D + E7908D + East Asian ideograph + + + 214B4A + 743A + E790BA + East Asian ideograph + + + 214B4B + 7435 + E790B5 + East Asian ideograph + + + 214B4C + 7436 + E790B6 + East Asian ideograph + + + 214B4D + 7434 + E790B4 + East Asian ideograph + + + 214B4E + 742A + E790AA + East Asian ideograph + + + 214B4F + 7433 + E790B3 + East Asian ideograph + + + 214B50 + 7422 + E790A2 + East Asian ideograph + + + 214B51 + 7425 + E790A5 + East Asian ideograph + + + 214B53 + 7455 + E79195 + East Asian ideograph + + + 214B54 + 745F + E7919F + East Asian ideograph + + + 214B55 + 745A + E7919A + East Asian ideograph + + + 214B56 + 7441 + E79181 + East Asian ideograph + + + 214B57 + 743F + E790BF + East Asian ideograph + + + 214B58 + 745B + E7919B + East Asian ideograph + + + 214B59 + 745E + E7919E + East Asian ideograph + + + 214B5A + 745C + E7919C + East Asian ideograph + + + 214B5B + 7459 + E79199 + East Asian ideograph + + + 214B5C + 7483 + E79283 + East Asian ideograph + + + 214B5D + 7469 + E791A9 + East Asian ideograph + + + 214B5E + 746A + E791AA + East Asian ideograph + + + 214B5F + 7463 + E791A3 + East Asian ideograph + + + 214B60 + 7464 + E791A4 + East Asian ideograph + + + 214B61 + 7470 + E791B0 + East Asian ideograph + + + 214B62 + 748B + E7928B + East Asian ideograph + + + 214B63 + 749C + E7929C + East Asian ideograph (variant of EACC 4B4B63) + + + 214B64 + 74A3 + E792A3 + East Asian ideograph + + + 214B65 + 74A7 + E792A7 + East Asian ideograph + + + 214B66 + 74A9 + E792A9 + East Asian ideograph + + + 214B67 + 74B0 + E792B0 + East Asian ideograph + + + 214B68 + 74A6 + E792A6 + East Asian ideograph + + + 214B69 + 74BD + E792BD + East Asian ideograph + + + 214B6A + 74CA + E7938A + East Asian ideograph + + + 214B6B + 74CF + E7938F + East Asian ideograph + + + 214B6C + 74DC + E7939C + East Asian ideograph + + + 214B6D + 74E0 + E793A0 + East Asian ideograph + + + 214B6E + 74E2 + E793A2 + East Asian ideograph + + + 214B6F + 74E3 + E793A3 + East Asian ideograph + + + 214B70 + 74E6 + E793A6 + East Asian ideograph + + + 214B71 + 74F6 + E793B6 + East Asian ideograph + + + 214B72 + 74F7 + E793B7 + East Asian ideograph + + + 214B73 + 7504 + E79484 + East Asian ideograph + + + 214B74 + 750C + E7948C + East Asian ideograph + + + 214B75 + 7515 + E79495 + East Asian ideograph + + + 214B76 + 7518 + E79498 + East Asian ideograph + + + 214B77 + 751A + E7949A + East Asian ideograph + + + 214B78 + 751C + E7949C + East Asian ideograph + + + 214B79 + 751F + E7949F + East Asian ideograph + + + 214B7A + 7522 + E794A2 + East Asian ideograph + + + 214B7B + 7526 + E794A6 + East Asian ideograph + + + 214B7C + 7525 + E794A5 + East Asian ideograph + + + 214B7D + 7528 + E794A8 + East Asian ideograph + + + 214B7E + 7529 + E794A9 + East Asian ideograph + + + 214C21 + 752C + E794AC + East Asian ideograph + + + 214C22 + 752B + E794AB + East Asian ideograph + + + 214C23 + 752D + E794AD + East Asian ideograph + + + 214C24 + 7530 + E794B0 + East Asian ideograph + + + 214C25 + 7532 + E794B2 + East Asian ideograph + + + 214C26 + 7531 + E794B1 + East Asian ideograph + + + 214C27 + 7533 + E794B3 + East Asian ideograph + + + 214C28 + 7537 + E794B7 + East Asian ideograph + + + 214C29 + 7538 + E794B8 + East Asian ideograph + + + 214C2A + 753D + E794BD + East Asian ideograph + + + 214C2B + 754F + E7958F + East Asian ideograph + + + 214C2C + 754C + E7958C + East Asian ideograph + + + 214C2D + 755D + E7959D + East Asian ideograph + + + 214C2E + 755C + E7959C + East Asian ideograph + + + 214C2F + 7554 + E79594 + East Asian ideograph + + + 214C30 + 755A + E7959A + East Asian ideograph + + + 214C31 + 7559 + E79599 + East Asian ideograph + + + 214C32 + 7566 + E795A6 + East Asian ideograph + + + 214C33 + 7562 + E795A2 + East Asian ideograph + + + 214C34 + 7570 + E795B0 + East Asian ideograph + + + 214C35 + 7565 + E795A5 + East Asian ideograph + + + 214C36 + 756B + E795AB + East Asian ideograph + + + 214C37 + 756A + E795AA + East Asian ideograph + + + 214C38 + 7578 + E795B8 + East Asian ideograph + + + 214C39 + 7576 + E795B6 + East Asian ideograph + + + 214C3A + 7586 + E79686 + East Asian ideograph + + + 214C3B + 7587 + E79687 + East Asian ideograph + + + 214C3C + 758A + E7968A + East Asian ideograph + + + 214C3E + 758F + E7968F + East Asian ideograph + + + 214C3F + 7591 + E79691 + East Asian ideograph + + + 214C40 + 759D + E7969D + East Asian ideograph + + + 214C41 + 7599 + E79699 + East Asian ideograph + + + 214C42 + 759A + E7969A + East Asian ideograph + + + 214C43 + 75A4 + E796A4 + East Asian ideograph + + + 214C44 + 75AB + E796AB + East Asian ideograph + + + 214C45 + 75A5 + E796A5 + East Asian ideograph + + + 214C46 + 75C7 + E79787 + East Asian ideograph + + + 214C47 + 75C5 + E79785 + East Asian ideograph + + + 214C48 + 75B3 + E796B3 + East Asian ideograph + + + 214C49 + 75B2 + E796B2 + East Asian ideograph + + + 214C4A + 75BD + E796BD + East Asian ideograph + + + 214C4B + 75BE + E796BE + East Asian ideograph + + + 214C4C + 75BC + E796BC + East Asian ideograph + + + 214C4D + 75B9 + E796B9 + East Asian ideograph + + + 214C4E + 75D5 + E79795 + East Asian ideograph + + + 214C4F + 75D4 + E79794 + East Asian ideograph + + + 214C50 + 75B5 + E796B5 + East Asian ideograph + + + 214C51 + 75CA + E7978A + East Asian ideograph (variant of EACC 4B4C51) + + + 214C52 + 75DB + E7979B + East Asian ideograph + + + 214C53 + 75E3 + E797A3 + East Asian ideograph + + + 214C54 + 75D8 + E79798 + East Asian ideograph + + + 214C55 + 75DE + E7979E + East Asian ideograph + + + 214C56 + 75D9 + E79799 + East Asian ideograph + + + 214C57 + 75E2 + E797A2 + East Asian ideograph + + + 214C58 + 7601 + E79881 + East Asian ideograph + + + 214C59 + 7600 + E79880 + East Asian ideograph + + + 214C5A + 75F0 + E797B0 + East Asian ideograph + + + 214C5B + 75F2 + E797B2 + East Asian ideograph + + + 214C5C + 75F1 + E797B1 + East Asian ideograph + + + 214C5D + 75F4 + E797B4 + East Asian ideograph + + + 214C5E + 75FF + E797BF + East Asian ideograph + + + 214C5F + 75FA + E797BA + East Asian ideograph + + + 214C60 + 760D + E7988D + East Asian ideograph + + + 214C61 + 7627 + E798A7 + East Asian ideograph + + + 214C62 + 7613 + E79893 + East Asian ideograph + + + 214C63 + 760B + E7988B + East Asian ideograph + + + 214C65 + 7620 + E798A0 + East Asian ideograph + + + 214C66 + 7629 + E798A9 + East Asian ideograph + + + 214C67 + 761F + E7989F + East Asian ideograph + + + 214C68 + 7624 + E798A4 + East Asian ideograph + + + 214C69 + 7626 + E798A6 + East Asian ideograph + + + 214C6A + 7621 + E798A1 + East Asian ideograph + + + 214C6B + 7634 + E798B4 + East Asian ideograph + + + 214C6C + 7638 + E798B8 + East Asian ideograph + + + 214C6D + 7646 + E79986 + East Asian ideograph + + + 214C6E + 7642 + E79982 + East Asian ideograph + + + 214C6F + 764C + E7998C + East Asian ideograph + + + 214C70 + 7656 + E79996 + East Asian ideograph + + + 214C71 + 7658 + E79998 + East Asian ideograph + + + 214C73 + 7662 + E799A2 + East Asian ideograph + + + 214C74 + 7665 + E799A5 + East Asian ideograph + + + 214C75 + 7669 + E799A9 + East Asian ideograph + + + 214C76 + 766E + E799AE + East Asian ideograph + + + 214C77 + 766C + E799AC + East Asian ideograph + + + 214C78 + 7671 + E799B1 + East Asian ideograph + + + 214C79 + 7672 + E799B2 + East Asian ideograph (variant of EACC 4B4C79) + + + 214C7A + 7678 + E799B8 + East Asian ideograph + + + 214C7B + 767C + E799BC + East Asian ideograph + + + 214C7C + 767B + E799BB + East Asian ideograph + + + 214C7D + 767D + E799BD + East Asian ideograph + + + 214C7E + 767E + E799BE + East Asian ideograph + + + 214D21 + 7682 + E79A82 + East Asian ideograph + + + 214D22 + 7684 + E79A84 + East Asian ideograph + + + 214D23 + 7687 + E79A87 + East Asian ideograph + + + 214D24 + 7686 + E79A86 + East Asian ideograph + + + 214D26 + 768E + E79A8E + East Asian ideograph + + + 214D27 + 7696 + E79A96 + East Asian ideograph + + + 214D28 + 7693 + E79A93 + East Asian ideograph + + + 214D29 + 769A + E79A9A + East Asian ideograph + + + 214D2A + 76AE + E79AAE + East Asian ideograph + + + 214D2B + 76B0 + E79AB0 + East Asian ideograph + + + 214D2C + 76B4 + E79AB4 + East Asian ideograph + + + 214D2D + 76BA + E79ABA + East Asian ideograph + + + 214D2E + 76BF + E79ABF + East Asian ideograph + + + 214D2F + 76C2 + E79B82 + East Asian ideograph + + + 214D31 + 76C8 + E79B88 + East Asian ideograph + + + 214D32 + 76C6 + E79B86 + East Asian ideograph + + + 214D33 + 76CA + E79B8A + East Asian ideograph + + + 214D34 + 76CD + E79B8D + East Asian ideograph + + + 214D35 + 76CE + E79B8E + East Asian ideograph + + + 214D36 + 76D4 + E79B94 + East Asian ideograph + + + 214D37 + 76D2 + E79B92 + East Asian ideograph + + + 214D38 + 76DC + E79B9C + East Asian ideograph + + + 214D39 + 76DB + E79B9B + East Asian ideograph + + + 214D3A + 76DE + E79B9E + East Asian ideograph + + + 214D3B + 76DF + E79B9F + East Asian ideograph + + + 214D3C + 76E1 + E79BA1 + East Asian ideograph + + + 214D3D + 76E3 + E79BA3 + East Asian ideograph + + + 214D3E + 76E4 + E79BA4 + East Asian ideograph + + + 214D3F + 76E7 + E79BA7 + East Asian ideograph + + + 214D40 + 76E5 + E79BA5 + East Asian ideograph + + + 214D41 + 76EA + E79BAA + East Asian ideograph + + + 214D42 + 76EE + E79BAE + East Asian ideograph + + + 214D43 + 76EF + E79BAF + East Asian ideograph + + + 214D44 + 76F2 + E79BB2 + East Asian ideograph + + + 214D45 + 76F4 + E79BB4 + East Asian ideograph + + + 214D46 + 7709 + E79C89 + East Asian ideograph + + + 214D47 + 76F9 + E79BB9 + East Asian ideograph + + + 214D48 + 76F8 + E79BB8 + East Asian ideograph + + + 214D49 + 7701 + E79C81 + East Asian ideograph + + + 214D4A + 770B + E79C8B + East Asian ideograph + + + 214D4B + 76FC + E79BBC + East Asian ideograph + + + 214D4C + 76FE + E79BBE + East Asian ideograph + + + 214D4D + 7729 + E79CA9 + East Asian ideograph + + + 214D4E + 7720 + E79CA0 + East Asian ideograph + + + 214D4F + 771E + E79C9E + East Asian ideograph + + + 214D50 + 7728 + E79CA8 + East Asian ideograph + + + 214D51 + 7737 + E79CB7 + East Asian ideograph + + + 214D52 + 773C + E79CBC + East Asian ideograph + + + 214D53 + 7736 + E79CB6 + East Asian ideograph + + + 214D54 + 7738 + E79CB8 + East Asian ideograph + + + 214D55 + 773A + E79CBA + East Asian ideograph + + + 214D56 + 773E + E79CBE + East Asian ideograph + + + 214D57 + 774F + E79D8F + East Asian ideograph + + + 214D58 + 776B + E79DAB + East Asian ideograph + + + 214D59 + 775B + E79D9B + East Asian ideograph + + + 214D5A + 776A + E79DAA + East Asian ideograph + + + 214D5B + 7766 + E79DA6 + East Asian ideograph + + + 214D5C + 7779 + E79DB9 + East Asian ideograph + + + 214D5D + 775E + E79D9E + East Asian ideograph + + + 214D5E + 7763 + E79DA3 + East Asian ideograph + + + 214D5F + 775C + E79D9C + East Asian ideograph + + + 214D60 + 776C + E79DAC + East Asian ideograph + + + 214D61 + 7768 + E79DA8 + East Asian ideograph + + + 214D62 + 7765 + E79DA5 + East Asian ideograph + + + 214D63 + 777D + E79DBD + East Asian ideograph + + + 214D64 + 7771 + E79DB1 + East Asian ideograph + + + 214D65 + 777F + E79DBF + East Asian ideograph + + + 214D66 + 7784 + E79E84 + East Asian ideograph + + + 214D67 + 7761 + E79DA1 + East Asian ideograph + + + 214D68 + 7787 + E79E87 + East Asian ideograph + + + 214D69 + 778E + E79E8E + East Asian ideograph + + + 214D6A + 778C + E79E8C + East Asian ideograph + + + 214D6B + 7791 + E79E91 + East Asian ideograph + + + 214D6C + 779F + E79E9F + East Asian ideograph + + + 214D6D + 779E + E79E9E + East Asian ideograph + + + 214D6E + 77A0 + E79EA0 + East Asian ideograph + + + 214D6F + 77A5 + E79EA5 + East Asian ideograph + + + 214D70 + 77B3 + E79EB3 + East Asian ideograph + + + 214D71 + 77AA + E79EAA + East Asian ideograph + + + 214D72 + 77B0 + E79EB0 + East Asian ideograph + + + 214D73 + 77AD + E79EAD + East Asian ideograph + + + 214D74 + 77AC + E79EAC + East Asian ideograph + + + 214D75 + 77A7 + E79EA7 + East Asian ideograph + + + 214D76 + 77BD + E79EBD + East Asian ideograph + + + 214D77 + 77BF + E79EBF + East Asian ideograph + + + 214D78 + 77BB + E79EBB + East Asian ideograph + + + 214D7A + 77D3 + E79F93 + East Asian ideograph + + + 214D7B + 77D7 + E79F97 + East Asian ideograph + + + 214D7C + 77DA + E79F9A + East Asian ideograph + + + 214D7D + 77DB + E79F9B + East Asian ideograph + + + 214D7E + 77DC + E79F9C + East Asian ideograph + + + 214E21 + 77E2 + E79FA2 + East Asian ideograph + + + 214E22 + 77E3 + E79FA3 + East Asian ideograph + + + 214E23 + 77E5 + E79FA5 + East Asian ideograph + + + 214E24 + 77E9 + E79FA9 + East Asian ideograph + + + 214E25 + 77ED + E79FAD + East Asian ideograph + + + 214E26 + 77EE + E79FAE + East Asian ideograph + + + 214E27 + 77EF + E79FAF + East Asian ideograph + + + 214E28 + 77F3 + E79FB3 + East Asian ideograph + + + 214E29 + 77FD + E79FBD + East Asian ideograph + + + 214E2A + 7802 + E7A082 + East Asian ideograph + + + 214E2B + 780D + E7A08D + East Asian ideograph + + + 214E2C + 780C + E7A08C + East Asian ideograph + + + 214E2D + 65AB + E696AB + East Asian ideograph + + + 214E2E + 7830 + E7A0B0 + East Asian ideograph + + + 214E2F + 781D + E7A09D + East Asian ideograph + + + 214E30 + 7834 + E7A0B4 + East Asian ideograph + + + 214E31 + 7838 + E7A0B8 + East Asian ideograph + + + 214E32 + 7837 + E7A0B7 + East Asian ideograph + + + 214E33 + 7827 + E7A0A7 + East Asian ideograph + + + 214E34 + 782D + E7A0AD + East Asian ideograph + + + 214E35 + 7825 + E7A0A5 + East Asian ideograph + + + 214E36 + 786B + E7A1AB + East Asian ideograph + + + 214E37 + 784F + E7A18F + East Asian ideograph + + + 214E38 + 7843 + E7A183 + East Asian ideograph + + + 214E39 + 786C + E7A1AC + East Asian ideograph + + + 214E3A + 785D + E7A19D + East Asian ideograph + + + 214E3B + 786F + E7A1AF + East Asian ideograph + + + 214E3C + 78B0 + E7A2B0 + East Asian ideograph + + + 214E3D + 7897 + E7A297 + East Asian ideograph + + + 214E3E + 788E + E7A28E + East Asian ideograph + + + 214E3F + 7898 + E7A298 + East Asian ideograph + + + 214E40 + 7889 + E7A289 + East Asian ideograph + + + 214E41 + 7891 + E7A291 + East Asian ideograph + + + 214E42 + 787C + E7A1BC + East Asian ideograph + + + 214E43 + 788C + E7A28C + East Asian ideograph + + + 214E44 + 78A7 + E7A2A7 + East Asian ideograph + + + 214E45 + 78A9 + E7A2A9 + East Asian ideograph + + + 214E46 + 789F + E7A29F + East Asian ideograph + + + 214E47 + 78B3 + E7A2B3 + East Asian ideograph + + + 214E48 + 78CB + E7A38B + East Asian ideograph + + + 214E49 + 78BA + E7A2BA + East Asian ideograph + + + 214E4A + 78C1 + E7A381 + East Asian ideograph + + + 214E4B + 78C5 + E7A385 + East Asian ideograph + + + 214E4C + 78BC + E7A2BC + East Asian ideograph + + + 214E4D + 78D5 + E7A395 + East Asian ideograph + + + 214E4E + 78BE + E7A2BE + East Asian ideograph + + + 214E4F + 78CA + E7A38A + East Asian ideograph + + + 214E50 + 78D0 + E7A390 + East Asian ideograph + + + 214E51 + 78E8 + E7A3A8 + East Asian ideograph + + + 214E52 + 78EC + E7A3AC + East Asian ideograph + + + 214E53 + 78DA + E7A39A + East Asian ideograph + + + 214E54 + 78F7 + E7A3B7 + East Asian ideograph + + + 214E55 + 78F4 + E7A3B4 + East Asian ideograph + + + 214E56 + 78FA + E7A3BA + East Asian ideograph (variant of EACC 4B4E56) + + + 214E57 + 7901 + E7A481 + East Asian ideograph + + + 214E58 + 78EF + E7A3AF + East Asian ideograph + + + 214E59 + 790E + E7A48E + East Asian ideograph + + + 214E5A + 7919 + E7A499 + East Asian ideograph + + + 214E5B + 7926 + E7A4A6 + East Asian ideograph + + + 214E5C + 792C + E7A4AC + East Asian ideograph + + + 214E5D + 792A + E7A4AA + East Asian ideograph + + + 214E5E + 792B + E7A4AB + East Asian ideograph + + + 214E5F + 793A + E7A4BA + East Asian ideograph + + + 214E60 + 7940 + E7A580 + East Asian ideograph + + + 214E61 + 793E + E7A4BE + East Asian ideograph + + + 214E62 + 7941 + E7A581 + East Asian ideograph + + + 214E63 + 7945 + E7A585 + East Asian ideograph + + + 214E64 + 7949 + E7A589 + East Asian ideograph + + + 214E65 + 7948 + E7A588 + East Asian ideograph + + + 214E66 + 7947 + E7A587 + East Asian ideograph + + + 214E67 + 7955 + E7A595 + East Asian ideograph + + + 214E68 + 7960 + E7A5A0 + East Asian ideograph + + + 214E69 + 7950 + E7A590 + East Asian ideograph + + + 214E6A + 7956 + E7A596 + East Asian ideograph + + + 214E6B + 795E + E7A59E + East Asian ideograph + + + 214E6C + 795D + E7A59D + East Asian ideograph + + + 214E6D + 795F + E7A59F + East Asian ideograph + + + 214E6E + 795A + E7A59A + East Asian ideograph + + + 214E6F + 7957 + E7A597 + East Asian ideograph + + + 214E70 + 7965 + E7A5A5 + East Asian ideograph + + + 214E71 + 7968 + E7A5A8 + East Asian ideograph + + + 214E72 + 796D + E7A5AD + East Asian ideograph + + + 214E73 + 797A + E7A5BA + East Asian ideograph + + + 214E74 + 7981 + E7A681 + East Asian ideograph + + + 214E75 + 797F + E7A5BF + East Asian ideograph + + + 214E76 + 798F + E7A68F + East Asian ideograph + + + 214E77 + 798D + E7A68D + East Asian ideograph + + + 214E78 + 798E + E7A68E + East Asian ideograph + + + 214E79 + 79A6 + E7A6A6 + East Asian ideograph + + + 214E7A + 79A7 + E7A6A7 + East Asian ideograph + + + 214E7B + 79AA + E7A6AA + East Asian ideograph + + + 214E7C + 79AE + E7A6AE + East Asian ideograph + + + 214E7D + 79B1 + E7A6B1 + East Asian ideograph + + + 214E7E + 79B9 + E7A6B9 + East Asian ideograph + + + 214F21 + 79BD + E7A6BD + East Asian ideograph + + + 214F22 + 842C + E890AC + East Asian ideograph + + + 214F23 + 79BE + E7A6BE + East Asian ideograph + + + 214F24 + 79C0 + E7A780 + East Asian ideograph + + + 214F25 + 79C1 + E7A781 + East Asian ideograph + + + 214F26 + 79BF + E7A6BF + East Asian ideograph + + + 214F27 + 79C9 + E7A789 + East Asian ideograph + + + 214F28 + 79D1 + E7A791 + East Asian ideograph + + + 214F29 + 79CB + E7A78B + East Asian ideograph + + + 214F2A + 79D2 + E7A792 + East Asian ideograph + + + 214F2B + 79E4 + E7A7A4 + East Asian ideograph + + + 214F2C + 79E6 + E7A7A6 + East Asian ideograph + + + 214F2D + 79E3 + E7A7A3 + East Asian ideograph + + + 214F2E + 79DF + E7A79F + East Asian ideograph + + + 214F2F + 79E7 + E7A7A7 + East Asian ideograph + + + 214F30 + 79E9 + E7A7A9 + East Asian ideograph + + + 214F31 + 79FB + E7A7BB + East Asian ideograph + + + 214F32 + 7A05 + E7A885 + East Asian ideograph + + + 214F33 + 7A0D + E7A88D + East Asian ideograph + + + 214F34 + 7A08 + E7A888 + East Asian ideograph + + + 214F35 + 7A0B + E7A88B + East Asian ideograph + + + 214F36 + 7A00 + E7A880 + East Asian ideograph + + + 214F37 + 7A1F + E7A89F + East Asian ideograph + + + 214F39 + 7A20 + E7A8A0 + East Asian ideograph + + + 214F3A + 7A1A + E7A89A + East Asian ideograph + + + 214F3B + 7A14 + E7A894 + East Asian ideograph + + + 214F3C + 7A31 + E7A8B1 + East Asian ideograph + + + 214F3D + 7A2E + E7A8AE + East Asian ideograph + + + 214F3E + 7A3F + E7A8BF + East Asian ideograph + + + 214F3F + 7A3C + E7A8BC + East Asian ideograph + + + 214F40 + 7A40 + E7A980 + East Asian ideograph + + + 214F41 + 7A3D + E7A8BD + East Asian ideograph + + + 214F42 + 7A37 + E7A8B7 + East Asian ideograph + + + 214F43 + 7A3B + E7A8BB + East Asian ideograph + + + 214F44 + 7A4D + E7A98D + East Asian ideograph + + + 214F45 + 7A4E + E7A98E + East Asian ideograph + + + 214F46 + 7A4C + E7A98C + East Asian ideograph + + + 214F47 + 7A46 + E7A986 + East Asian ideograph + + + 214F48 + 7A57 + E7A997 + East Asian ideograph + + + 214F49 + 7A61 + E7A9A1 + East Asian ideograph + + + 214F4A + 7A62 + E7A9A2 + East Asian ideograph + + + 214F4B + 7A6B + E7A9AB + East Asian ideograph + + + 214F4C + 7A69 + E7A9A9 + East Asian ideograph + + + 214F4D + 7A74 + E7A9B4 + East Asian ideograph + + + 214F4E + 7A76 + E7A9B6 + East Asian ideograph + + + 214F4F + 7A79 + E7A9B9 + East Asian ideograph + + + 214F50 + 7A7A + E7A9BA + East Asian ideograph + + + 214F51 + 7A7F + E7A9BF + East Asian ideograph + + + 214F52 + 7A81 + E7AA81 + East Asian ideograph + + + 214F53 + 7A84 + E7AA84 + East Asian ideograph + + + 214F54 + 7A88 + E7AA88 + East Asian ideograph + + + 214F55 + 7A92 + E7AA92 + East Asian ideograph + + + 214F56 + 7A95 + E7AA95 + East Asian ideograph + + + 214F57 + 7A98 + E7AA98 + East Asian ideograph + + + 214F58 + 7A96 + E7AA96 + East Asian ideograph + + + 214F59 + 7A97 + E7AA97 + East Asian ideograph + + + 214F5A + 7A9F + E7AA9F + East Asian ideograph + + + 214F5B + 7AA0 + E7AAA0 + East Asian ideograph + + + 214F5C + 7AAA + E7AAAA + East Asian ideograph + + + 214F5D + 7AA9 + E7AAA9 + East Asian ideograph + + + 214F5E + 7AAF + E7AAAF + East Asian ideograph + + + 214F5F + 7AAE + E7AAAE + East Asian ideograph + + + 214F60 + 7ABA + E7AABA + East Asian ideograph + + + 214F61 + 7AC5 + E7AB85 + East Asian ideograph + + + 214F62 + 7AC4 + E7AB84 + East Asian ideograph + + + 214F63 + 7AC7 + E7AB87 + East Asian ideograph + + + 214F64 + 7ACA + E7AB8A + East Asian ideograph + + + 214F65 + 7ACB + E7AB8B + East Asian ideograph + + + 214F66 + 7AD9 + E7AB99 + East Asian ideograph + + + 214F67 + 7AE5 + E7ABA5 + East Asian ideograph + + + 214F68 + 7AE3 + E7ABA3 + East Asian ideograph + + + 214F69 + 7AED + E7ABAD + East Asian ideograph + + + 214F6A + 7AEF + E7ABAF + East Asian ideograph + + + 214F6B + 7AF6 + E7ABB6 + East Asian ideograph + + + 214F6C + 7AF9 + E7ABB9 + East Asian ideograph + + + 214F6D + 7AFA + E7ABBA + East Asian ideograph + + + 214F6E + 7AFF + E7ABBF + East Asian ideograph + + + 214F6F + 7AFD + E7ABBD + East Asian ideograph + + + 214F70 + 7B06 + E7AC86 + East Asian ideograph + + + 214F71 + 7B11 + E7AC91 + East Asian ideograph + + + 214F72 + 7B20 + E7ACA0 + East Asian ideograph + + + 214F73 + 7B2C + E7ACAC + East Asian ideograph + + + 214F74 + 7B28 + E7ACA8 + East Asian ideograph + + + 214F75 + 7B1B + E7AC9B + East Asian ideograph + + + 214F76 + 7B1E + E7AC9E + East Asian ideograph + + + 214F77 + 7B19 + E7AC99 + East Asian ideograph + + + 214F78 + 7B26 + E7ACA6 + East Asian ideograph + + + 214F79 + 7B46 + E7AD86 + East Asian ideograph + + + 214F7A + 7B49 + E7AD89 + East Asian ideograph + + + 214F7B + 7B50 + E7AD90 + East Asian ideograph + + + 214F7C + 7B56 + E7AD96 + East Asian ideograph + + + 214F7D + 7B52 + E7AD92 + East Asian ideograph + + + 214F7E + 7B4B + E7AD8B + East Asian ideograph + + + 215021 + 7B4D + E7AD8D + East Asian ideograph + + + 215022 + 7B4F + E7AD8F + East Asian ideograph + + + 215023 + 7B54 + E7AD94 + East Asian ideograph + + + 215024 + 7B60 + E7ADA0 + East Asian ideograph + + + 215025 + 7B77 + E7ADB7 + East Asian ideograph + + + 215026 + 7B75 + E7ADB5 + East Asian ideograph + + + 215027 + 7BA1 + E7AEA1 + East Asian ideograph + + + 215028 + 7B94 + E7AE94 + East Asian ideograph + + + 215029 + 7B95 + E7AE95 + East Asian ideograph + + + 21502A + 7B9D + E7AE9D + East Asian ideograph + + + 21502B + 7B8B + E7AE8B + East Asian ideograph + + + 21502C + 7B97 + E7AE97 + East Asian ideograph + + + 21502D + 7B8F + E7AE8F + East Asian ideograph + + + 21502E + 7BC7 + E7AF87 + East Asian ideograph + + + 21502F + 7BAD + E7AEAD + East Asian ideograph + + + 215030 + 7BC4 + E7AF84 + East Asian ideograph + + + 215031 + 7BB1 + E7AEB1 + East Asian ideograph + + + 215032 + 7BB4 + E7AEB4 + East Asian ideograph + + + 215033 + 7BC0 + E7AF80 + East Asian ideograph + + + 215034 + 7BC6 + E7AF86 + East Asian ideograph + + + 215035 + 7BC1 + E7AF81 + East Asian ideograph + + + 215036 + 7C11 + E7B091 + East Asian ideograph + + + 215037 + 7BD9 + E7AF99 + East Asian ideograph + + + 215038 + 7BDB + E7AF9B + East Asian ideograph + + + 215039 + 7BE4 + E7AFA4 + East Asian ideograph + + + 21503A + 7BC9 + E7AF89 + East Asian ideograph + + + 21503B + 7BE1 + E7AFA1 + East Asian ideograph + + + 21503C + 7BE9 + E7AFA9 + East Asian ideograph + + + 21503D + 7C07 + E7B087 + East Asian ideograph + + + 21503E + 7C0D + E7B08D + East Asian ideograph + + + 21503F + 7BFE + E7AFBE + East Asian ideograph + + + 215040 + 7BF7 + E7AFB7 + East Asian ideograph + + + 215041 + 7C21 + E7B0A1 + East Asian ideograph + + + 215042 + 7C2B + E7B0AB + East Asian ideograph + + + 215043 + 7C2A + E7B0AA + East Asian ideograph + + + 215044 + 7C27 + E7B0A7 + East Asian ideograph + + + 215045 + 7C1E + E7B09E + East Asian ideograph + + + 215046 + 7C23 + E7B0A3 + East Asian ideograph + + + 215047 + 7C3F + E7B0BF + East Asian ideograph + + + 215048 + 7C3E + E7B0BE + East Asian ideograph + + + 215049 + 7C38 + E7B0B8 + East Asian ideograph + + + 21504A + 7C37 + E7B0B7 + East Asian ideograph + + + 21504B + 7C3D + E7B0BD + East Asian ideograph + + + 21504C + 7C43 + E7B183 + East Asian ideograph + + + 21504D + 7C4C + E7B18C + East Asian ideograph + + + 21504E + 7C4D + E7B18D + East Asian ideograph + + + 21504F + 7C50 + E7B190 + East Asian ideograph + + + 215050 + 7C60 + E7B1A0 + East Asian ideograph + + + 215051 + 7C5F + E7B19F + East Asian ideograph + + + 215052 + 7C64 + E7B1A4 + East Asian ideograph + + + 215053 + 7C6C + E7B1AC + East Asian ideograph + + + 215054 + 7C6E + E7B1AE + East Asian ideograph + + + 215055 + 7C72 + E7B1B2 + East Asian ideograph + + + 215056 + 7C73 + E7B1B3 + East Asian ideograph + + + 215057 + 7C89 + E7B289 + East Asian ideograph + + + 215058 + 7C92 + E7B292 + East Asian ideograph + + + 215059 + 7C97 + E7B297 + East Asian ideograph + + + 21505A + 7C9F + E7B29F + East Asian ideograph + + + 21505B + 7CA5 + E7B2A5 + East Asian ideograph + + + 21505C + 7CA4 + E7B2A4 + East Asian ideograph + + + 21505D + 7CB1 + E7B2B1 + East Asian ideograph + + + 21505E + 7CB3 + E7B2B3 + East Asian ideograph + + + 21505F + 7CBD + E7B2BD + East Asian ideograph + + + 215060 + 7CB9 + E7B2B9 + East Asian ideograph + + + 215061 + 7CBE + E7B2BE + East Asian ideograph (variant of EACC 4B5061) + + + 215062 + 7CCA + E7B38A + East Asian ideograph + + + 215063 + 7CD6 + E7B396 + East Asian ideograph + + + 215064 + 7CD5 + E7B395 + East Asian ideograph + + + 215065 + 7CE0 + E7B3A0 + East Asian ideograph + + + 215066 + 7CDC + E7B39C + East Asian ideograph + + + 215067 + 7CDF + E7B39F + East Asian ideograph + + + 215068 + 7CDE + E7B39E + East Asian ideograph + + + 215069 + 7CE2 + E7B3A2 + East Asian ideograph + + + 21506A + 7CD9 + E7B399 + East Asian ideograph + + + 21506B + 7CE7 + E7B3A7 + East Asian ideograph + + + 21506C + 7CEF + E7B3AF + East Asian ideograph + + + 21506E + 7CFB + E7B3BB + East Asian ideograph + + + 21506F + 7CFE + E7B3BE + East Asian ideograph + + + 215070 + 7D00 + E7B480 + East Asian ideograph + + + 215071 + 7D02 + E7B482 + East Asian ideograph + + + 215072 + 7D05 + E7B485 + East Asian ideograph + + + 215073 + 7D09 + E7B489 + East Asian ideograph + + + 215074 + 7D04 + E7B484 + East Asian ideograph + + + 215075 + 7D07 + E7B487 + East Asian ideograph + + + 215076 + 7D21 + E7B4A1 + East Asian ideograph + + + 215077 + 7D0B + E7B48B + East Asian ideograph + + + 215078 + 7D0A + E7B48A + East Asian ideograph + + + 215079 + 7D20 + E7B4A0 + East Asian ideograph + + + 21507A + 7D1C + E7B49C + East Asian ideograph + + + 21507B + 7D22 + E7B4A2 + East Asian ideograph + + + 21507C + 7D15 + E7B495 + East Asian ideograph + + + 21507D + 7D14 + E7B494 + East Asian ideograph + + + 21507E + 7D10 + E7B490 + East Asian ideograph + + + 215121 + 7D17 + E7B497 + East Asian ideograph + + + 215122 + 7D0D + E7B48D + East Asian ideograph (variant of EACC 455122) + + + 215123 + 7D1A + E7B49A + East Asian ideograph + + + 215124 + 7D19 + E7B499 + East Asian ideograph + + + 215125 + 7D1B + E7B49B + East Asian ideograph + + + 215126 + 7D46 + E7B586 + East Asian ideograph + + + 215128 + 7D3C + E7B4BC + East Asian ideograph + + + 215129 + 7D2E + E7B4AE + East Asian ideograph + + + 21512A + 7D39 + E7B4B9 + East Asian ideograph + + + 21512B + 7D44 + E7B584 + East Asian ideograph + + + 21512C + 7D30 + E7B4B0 + East Asian ideograph + + + 21512D + 7D33 + E7B4B3 + East Asian ideograph + + + 21512E + 7D2F + E7B4AF + East Asian ideograph + + + 21512F + 7D40 + E7B580 + East Asian ideograph + + + 215130 + 7D42 + E7B582 + East Asian ideograph + + + 215131 + 7D71 + E7B5B1 + East Asian ideograph + + + 215132 + 7D5E + E7B59E + East Asian ideograph + + + 215133 + 7D68 + E7B5A8 + East Asian ideograph + + + 215134 + 7D50 + E7B590 + East Asian ideograph + + + 215135 + 7D2B + E7B4AB + East Asian ideograph + + + 215136 + 7D62 + E7B5A2 + East Asian ideograph + + + 215137 + 7D76 + E7B5B6 + East Asian ideograph + + + 215138 + 7D61 + E7B5A1 + East Asian ideograph + + + 215139 + 7D66 + E7B5A6 + East Asian ideograph + + + 21513A + 7D6E + E7B5AE + East Asian ideograph + + + 21513B + 7D72 + E7B5B2 + East Asian ideograph + + + 21513C + 7D93 + E7B693 + East Asian ideograph + + + 21513D + 7D91 + E7B691 + East Asian ideograph + + + 21513E + 7D79 + E7B5B9 + East Asian ideograph + + + 21513F + 7D8F + E7B68F + East Asian ideograph + + + 215140 + 7D81 + E7B681 + East Asian ideograph + + + 215141 + 7D9C + E7B69C + East Asian ideograph + + + 215142 + 7DBB + E7B6BB + East Asian ideograph + + + 215143 + 7DB0 + E7B6B0 + East Asian ideograph + + + 215144 + 7DCA + E7B78A + East Asian ideograph + + + 215145 + 7DBE + E7B6BE + East Asian ideograph + + + 215146 + 7DB4 + E7B6B4 + East Asian ideograph + + + 215147 + 7DBA + E7B6BA + East Asian ideograph + + + 215148 + 7DB2 + E7B6B2 + East Asian ideograph + + + 215149 + 7DB1 + E7B6B1 + East Asian ideograph + + + 21514A + 7DBD + E7B6BD + East Asian ideograph + + + 21514B + 7DB5 + E7B6B5 + East Asian ideograph + + + 21514C + 7DA0 + E7B6A0 + East Asian ideograph + + + 21514D + 7DA2 + E7B6A2 + East Asian ideograph + + + 21514E + 7DAD + E7B6AD + East Asian ideograph + + + 21514F + 7DBF + E7B6BF + East Asian ideograph + + + 215150 + 7DB8 + E7B6B8 + East Asian ideograph + + + 215151 + 7DC7 + E7B787 + East Asian ideograph + + + 215152 + 7DE0 + E7B7A0 + East Asian ideograph + + + 215153 + 7DEF + E7B7AF + East Asian ideograph + + + 215154 + 7DF4 + E7B7B4 + East Asian ideograph (variant of EACC 4B5154) + + + 215155 + 7DD6 + E7B796 + East Asian ideograph + + + 215156 + 7DD8 + E7B798 + East Asian ideograph + + + 215157 + 7DEC + E7B7AC + East Asian ideograph + + + 215158 + 7DDD + E7B79D + East Asian ideograph + + + 215159 + 7DE9 + E7B7A9 + East Asian ideograph + + + 21515A + 7DE3 + E7B7A3 + East Asian ideograph + + + 21515B + 7DE8 + E7B7A8 + East Asian ideograph + + + 21515C + 7DDA + E7B79A + East Asian ideograph + + + 21515D + 7D9E + E7B69E + East Asian ideograph + + + 21515E + 7DDE + E7B79E + East Asian ideograph + + + 21515F + 7E11 + E7B891 + East Asian ideograph + + + 215160 + 7E0A + E7B88A + East Asian ideograph + + + 215161 + 7E08 + E7B888 + East Asian ideograph + + + 215162 + 7E1B + E7B89B + East Asian ideograph + + + 215163 + 7DFB + E7B7BB + East Asian ideograph + + + 215164 + 7E23 + E7B8A3 + East Asian ideograph + + + 215165 + 7E2E + E7B8AE + East Asian ideograph + + + 215166 + 7E3E + E7B8BE + East Asian ideograph + + + 215167 + 7E46 + E7B986 + East Asian ideograph + + + 215168 + 7E37 + E7B8B7 + East Asian ideograph + + + 215169 + 7E32 + E7B8B2 + East Asian ideograph + + + 21516A + 7E43 + E7B983 + East Asian ideograph + + + 21516B + 7E41 + E7B981 + East Asian ideograph + + + 21516C + 7E2B + E7B8AB + East Asian ideograph + + + 21516D + 7E3D + E7B8BD + East Asian ideograph + + + 21516E + 7E31 + E7B8B1 + East Asian ideograph + + + 21516F + 7E45 + E7B985 + East Asian ideograph + + + 215170 + 7E55 + E7B995 + East Asian ideograph + + + 215171 + 7E54 + E7B994 + East Asian ideograph + + + 215172 + 7E61 + E7B9A1 + East Asian ideograph + + + 215173 + 7E5E + E7B99E + East Asian ideograph + + + 215174 + 7E5A + E7B99A + East Asian ideograph + + + 215175 + 7E6B + E7B9AB + East Asian ideograph + + + 215176 + 7E69 + E7B9A9 + East Asian ideograph + + + 215177 + 7E6D + E7B9AD + East Asian ideograph + + + 215178 + 7E79 + E7B9B9 + East Asian ideograph + + + 215179 + 7E6A + E7B9AA + East Asian ideograph + + + 21517A + 8FAE + E8BEAE + East Asian ideograph + + + 21517B + 7E7D + E7B9BD + East Asian ideograph + + + 21517C + 7E82 + E7BA82 + East Asian ideograph + + + 21517D + 7E7C + E7B9BC + East Asian ideograph + + + 21517E + 7E8F + E7BA8F + East Asian ideograph + + + 215221 + 7E8C + E7BA8C + East Asian ideograph + + + 215222 + 7E93 + E7BA93 + East Asian ideograph + + + 215223 + 7E96 + E7BA96 + East Asian ideograph + + + 215224 + 7E9C + E7BA9C + East Asian ideograph + + + 215226 + 7F38 + E7BCB8 + East Asian ideograph + + + 215227 + 7F3A + E7BCBA + East Asian ideograph + + + 215228 + 7F3D + E7BCBD + East Asian ideograph + + + 215229 + 7F44 + E7BD84 + East Asian ideograph + + + 21522B + 7F50 + E7BD90 + East Asian ideograph + + + 21522C + 7F55 + E7BD95 + East Asian ideograph + + + 21522D + 7F54 + E7BD94 + East Asian ideograph + + + 21522E + 7F5F + E7BD9F + East Asian ideograph + + + 21522F + 7F72 + E7BDB2 + East Asian ideograph + + + 215230 + 7F6E + E7BDAE + East Asian ideograph + + + 215231 + 7F69 + E7BDA9 + East Asian ideograph + + + 215232 + 7F6A + E7BDAA + East Asian ideograph + + + 215233 + 7F70 + E7BDB0 + East Asian ideograph + + + 215234 + 7F75 + E7BDB5 + East Asian ideograph + + + 215235 + 7F77 + E7BDB7 + East Asian ideograph + + + 215236 + 7F79 + E7BDB9 + East Asian ideograph + + + 215237 + 7F85 + E7BE85 + East Asian ideograph + + + 215238 + 7F88 + E7BE88 + East Asian ideograph + + + 215239 + 7F8A + E7BE8A + East Asian ideograph + + + 21523A + 7F8C + E7BE8C + East Asian ideograph + + + 21523B + 7F8E + E7BE8E + East Asian ideograph + + + 21523C + 7F94 + E7BE94 + East Asian ideograph + + + 21523D + 7F9E + E7BE9E + East Asian ideograph + + + 21523E + 7F9A + E7BE9A + East Asian ideograph + + + 21523F + 5584 + E59684 + East Asian ideograph + + + 215240 + 7FA8 + E7BEA8 + East Asian ideograph + + + 215241 + 7FA4 + E7BEA4 + East Asian ideograph + + + 215242 + 7FA9 + E7BEA9 + East Asian ideograph + + + 215243 + 7FAF + E7BEAF + East Asian ideograph + + + 215244 + 7FB2 + E7BEB2 + East Asian ideograph + + + 215245 + 7FB6 + E7BEB6 + East Asian ideograph + + + 215246 + 7FB8 + E7BEB8 + East Asian ideograph + + + 215247 + 7FB9 + E7BEB9 + East Asian ideograph + + + 215248 + 7FBD + E7BEBD + East Asian ideograph + + + 215249 + 7FBF + E7BEBF + East Asian ideograph + + + 21524A + 7FC5 + E7BF85 + East Asian ideograph + + + 21524B + 7FC1 + E7BF81 + East Asian ideograph + + + 21524C + 7FCC + E7BF8C + East Asian ideograph + + + 21524D + 7FD2 + E7BF92 + East Asian ideograph + + + 21524E + 7FCE + E7BF8E + East Asian ideograph (variant of EACC 4B524E) + + + 21524F + 7FD4 + E7BF94 + East Asian ideograph + + + 215250 + 7FD5 + E7BF95 + East Asian ideograph + + + 215251 + 7FE0 + E7BFA0 + East Asian ideograph + + + 215252 + 7FE1 + E7BFA1 + East Asian ideograph + + + 215253 + 7FDF + E7BF9F + East Asian ideograph + + + 215254 + 7FE9 + E7BFA9 + East Asian ideograph + + + 215255 + 7FF0 + E7BFB0 + East Asian ideograph + + + 215256 + 7FF3 + E7BFB3 + East Asian ideograph + + + 215257 + 7FFC + E7BFBC + East Asian ideograph + + + 215258 + 7FF9 + E7BFB9 + East Asian ideograph + + + 215259 + 7FFB + E7BFBB + East Asian ideograph + + + 21525A + 7FF1 + E7BFB1 + East Asian ideograph + + + 21525B + 8000 + E88080 + East Asian ideograph + + + 21525C + 8001 + E88081 + East Asian ideograph + + + 21525D + 8003 + E88083 + East Asian ideograph + + + 21525E + 8006 + E88086 + East Asian ideograph + + + 21525F + 8005 + E88085 + East Asian ideograph + + + 215260 + 800C + E8808C + East Asian ideograph + + + 215261 + 8010 + E88090 + East Asian ideograph + + + 215262 + 800D + E8808D + East Asian ideograph + + + 215263 + 8012 + E88092 + East Asian ideograph + + + 215264 + 8015 + E88095 + East Asian ideograph + + + 215265 + 8018 + E88098 + East Asian ideograph + + + 215266 + 8019 + E88099 + East Asian ideograph + + + 215267 + 8017 + E88097 + East Asian ideograph + + + 215268 + 801C + E8809C + East Asian ideograph + + + 215269 + 8033 + E880B3 + East Asian ideograph + + + 21526A + 8036 + E880B6 + East Asian ideograph + + + 21526B + 803F + E880BF + East Asian ideograph + + + 21526C + 803D + E880BD + East Asian ideograph + + + 21526D + 804A + E8818A + East Asian ideograph + + + 21526E + 8046 + E88186 + East Asian ideograph + + + 21526F + 8056 + E88196 + East Asian ideograph + + + 215270 + 8058 + E88198 + East Asian ideograph + + + 215271 + 805E + E8819E + East Asian ideograph + + + 215272 + 805A + E8819A + East Asian ideograph + + + 215273 + 8071 + E881B1 + East Asian ideograph + + + 215274 + 8072 + E881B2 + East Asian ideograph + + + 215275 + 8073 + E881B3 + East Asian ideograph + + + 215276 + 8070 + E881B0 + East Asian ideograph + + + 215277 + 806F + E881AF + East Asian ideograph + + + 215278 + 8077 + E881B7 + East Asian ideograph + + + 215279 + 8076 + E881B6 + East Asian ideograph + + + 21527A + 807E + E881BE + East Asian ideograph + + + 21527B + 807D + E881BD + East Asian ideograph + + + 21527C + 807F + E881BF + East Asian ideograph + + + 21527E + 8084 + E88284 + East Asian ideograph + + + 215321 + 8085 + E88285 + East Asian ideograph + + + 215322 + 8087 + E88287 + East Asian ideograph + + + 215323 + 8089 + E88289 + East Asian ideograph + + + 215324 + 808B + E8828B + East Asian ideograph + + + 215325 + 808C + E8828C + East Asian ideograph + + + 215326 + 8093 + E88293 + East Asian ideograph + + + 215327 + 809D + E8829D + East Asian ideograph + + + 215328 + 8098 + E88298 + East Asian ideograph + + + 215329 + 809B + E8829B + East Asian ideograph + + + 21532A + 809A + E8829A + East Asian ideograph + + + 21532B + 8096 + E88296 + East Asian ideograph + + + 21532C + 80B2 + E882B2 + East Asian ideograph + + + 21532D + 80AA + E882AA + East Asian ideograph + + + 21532E + 80BA + E882BA + East Asian ideograph + + + 21532F + 80A5 + E882A5 + East Asian ideograph + + + 215330 + 80A2 + E882A2 + East Asian ideograph + + + 215331 + 80AB + E882AB + East Asian ideograph + + + 215332 + 80B1 + E882B1 + East Asian ideograph + + + 215333 + 80AF + E882AF + East Asian ideograph + + + 215334 + 80A1 + E882A1 + East Asian ideograph + + + 215335 + 80A9 + E882A9 + East Asian ideograph + + + 215336 + 80B4 + E882B4 + East Asian ideograph + + + 215337 + 80D6 + E88396 + East Asian ideograph + + + 215338 + 80CC + E8838C + East Asian ideograph + + + 215339 + 80E5 + E883A5 + East Asian ideograph + + + 21533A + 80DA + E8839A + East Asian ideograph + + + 21533B + 80E1 + E883A1 + East Asian ideograph + + + 21533C + 80C3 + E88383 + East Asian ideograph + + + 21533D + 80DB + E8839B + East Asian ideograph + + + 21533E + 80C4 + E88384 + East Asian ideograph + + + 21533F + 80CE + E8838E + East Asian ideograph + + + 215340 + 80DE + E8839E + East Asian ideograph + + + 215341 + 80E4 + E883A4 + East Asian ideograph + + + 215342 + 80F0 + E883B0 + East Asian ideograph + + + 215343 + 8102 + E88482 + East Asian ideograph + + + 215344 + 8105 + E88485 + East Asian ideograph + + + 215345 + 80F1 + E883B1 + East Asian ideograph + + + 215346 + 80F4 + E883B4 + East Asian ideograph + + + 215347 + 80ED + E883AD + East Asian ideograph + + + 215348 + 80FD + E883BD + East Asian ideograph + + + 215349 + 8106 + E88486 + East Asian ideograph + + + 21534A + 80F3 + E883B3 + East Asian ideograph + + + 21534B + 80F8 + E883B8 + East Asian ideograph + + + 21534C + 810A + E8848A + East Asian ideograph + + + 21534D + 8108 + E88488 + East Asian ideograph + + + 21534E + 812B + E884AB + East Asian ideograph + + + 21534F + 812F + E884AF + East Asian ideograph + + + 215350 + 8116 + E88496 + East Asian ideograph + + + 215352 + 8129 + E884A9 + East Asian ideograph + + + 215353 + 8155 + E88595 + East Asian ideograph + + + 215354 + 8154 + E88594 + East Asian ideograph + + + 215355 + 814B + E8858B + East Asian ideograph + + + 215356 + 8151 + E88591 + East Asian ideograph + + + 215357 + 8150 + E88590 + East Asian ideograph + + + 215358 + 814E + E8858E + East Asian ideograph + + + 215359 + 8139 + E884B9 + East Asian ideograph + + + 21535A + 8146 + E88586 + East Asian ideograph + + + 21535B + 813E + E884BE + East Asian ideograph + + + 21535C + 8171 + E885B1 + East Asian ideograph + + + 21535D + 8170 + E885B0 + East Asian ideograph + + + 21535E + 8178 + E885B8 + East Asian ideograph + + + 21535F + 8165 + E885A5 + East Asian ideograph + + + 215360 + 816E + E885AE + East Asian ideograph + + + 215361 + 8173 + E885B3 + East Asian ideograph + + + 215362 + 816B + E885AB + East Asian ideograph + + + 215363 + 8179 + E885B9 + East Asian ideograph + + + 215364 + 817A + E885BA + East Asian ideograph + + + 215365 + 8166 + E885A6 + East Asian ideograph + + + 215366 + 8180 + E88680 + East Asian ideograph + + + 215367 + 818F + E8868F + East Asian ideograph + + + 215368 + 817F + E885BF + East Asian ideograph + + + 215369 + 818A + E8868A + East Asian ideograph + + + 21536A + 8188 + E88688 + East Asian ideograph + + + 21536B + 819D + E8869D + East Asian ideograph + + + 21536C + 81A0 + E886A0 + East Asian ideograph + + + 21536D + 819B + E8869B + East Asian ideograph + + + 21536E + 819A + E8869A + East Asian ideograph + + + 21536F + 819C + E8869C + East Asian ideograph + + + 215370 + 81B3 + E886B3 + East Asian ideograph + + + 215371 + 81A9 + E886A9 + East Asian ideograph + + + 215372 + 81A8 + E886A8 + East Asian ideograph + + + 215373 + 81C6 + E88786 + East Asian ideograph + + + 215374 + 81BA + E886BA + East Asian ideograph + + + 215375 + 81C3 + E88783 + East Asian ideograph + + + 215376 + 81C0 + E88780 + East Asian ideograph + + + 215377 + 81C2 + E88782 + East Asian ideograph + + + 215378 + 81BF + E886BF + East Asian ideograph + + + 215379 + 81BD + E886BD + East Asian ideograph + + + 21537A + 81C9 + E88789 + East Asian ideograph + + + 21537B + 81BE + E886BE + East Asian ideograph + + + 21537C + 81CD + E8878D + East Asian ideograph + + + 21537D + 81CF + E8878F + East Asian ideograph + + + 21537E + 81D8 + E88798 + East Asian ideograph + + + 215421 + 81DA + E8879A + East Asian ideograph + + + 215422 + 81DF + E8879F + East Asian ideograph + + + 215423 + 81E3 + E887A3 + East Asian ideograph + + + 215424 + 81E5 + E887A5 + East Asian ideograph + + + 215425 + 81E8 + E887A8 + East Asian ideograph + + + 215426 + 81EA + E887AA + East Asian ideograph + + + 215427 + 81EC + E887AC + East Asian ideograph + + + 215428 + 81ED + E887AD + East Asian ideograph + + + 215429 + 81F3 + E887B3 + East Asian ideograph + + + 21542B + 81FA + E887BA + East Asian ideograph + + + 21542C + 81FB + E887BB + East Asian ideograph + + + 21542D + 81FC + E887BC + East Asian ideograph + + + 21542E + 81FE + E887BE + East Asian ideograph + + + 21542F + 8200 + E88880 + East Asian ideograph + + + 215430 + 8202 + E88882 + East Asian ideograph + + + 215431 + 8205 + E88885 + East Asian ideograph + + + 215432 + 8207 + E88887 + East Asian ideograph + + + 215433 + 8208 + E88888 + East Asian ideograph + + + 215434 + 8209 + E88889 + East Asian ideograph + + + 215435 + 820A + E8888A + East Asian ideograph + + + 215436 + 820C + E8888C + East Asian ideograph + + + 215437 + 820D + E8888D + East Asian ideograph + + + 215438 + 8210 + E88890 + East Asian ideograph + + + 215439 + 8212 + E88892 + East Asian ideograph + + + 21543A + 8214 + E88894 + East Asian ideograph + + + 21543B + 821B + E8889B + East Asian ideograph + + + 21543C + 821C + E8889C + East Asian ideograph + + + 21543D + 821E + E8889E + East Asian ideograph + + + 21543E + 821F + E8889F + East Asian ideograph + + + 21543F + 8222 + E888A2 + East Asian ideograph + + + 215440 + 822A + E888AA + East Asian ideograph + + + 215441 + 822B + E888AB + East Asian ideograph + + + 215442 + 822C + E888AC + East Asian ideograph + + + 215443 + 8228 + E888A8 + East Asian ideograph + + + 215444 + 8237 + E888B7 + East Asian ideograph + + + 215445 + 8235 + E888B5 + East Asian ideograph + + + 215446 + 8239 + E888B9 + East Asian ideograph + + + 215447 + 8236 + E888B6 + East Asian ideograph + + + 215448 + 8247 + E88987 + East Asian ideograph + + + 215449 + 8258 + E88998 + East Asian ideograph + + + 21544A + 8259 + E88999 + East Asian ideograph + + + 21544B + 8266 + E889A6 + East Asian ideograph + + + 21544C + 826E + E889AE + East Asian ideograph + + + 21544D + 826F + E889AF + East Asian ideograph + + + 21544E + 8271 + E889B1 + East Asian ideograph + + + 21544F + 8272 + E889B2 + East Asian ideograph + + + 215450 + 827E + E889BE + East Asian ideograph + + + 215451 + 8292 + E88A92 + East Asian ideograph + + + 215452 + 828B + E88A8B + East Asian ideograph + + + 215453 + 828D + E88A8D + East Asian ideograph + + + 215454 + 82B3 + E88AB3 + East Asian ideograph + + + 215455 + 829D + E88A9D + East Asian ideograph + + + 215456 + 8299 + E88A99 + East Asian ideograph + + + 215457 + 82BD + E88ABD + East Asian ideograph + + + 215458 + 82AD + E88AAD + East Asian ideograph + + + 215459 + 82AC + E88AAC + East Asian ideograph + + + 21545A + 82A5 + E88AA5 + East Asian ideograph + + + 21545B + 829F + E88A9F + East Asian ideograph + + + 21545C + 82BB + E88ABB + East Asian ideograph + + + 21545D + 82B1 + E88AB1 + East Asian ideograph + + + 21545E + 82B9 + E88AB9 + East Asian ideograph + + + 215460 + 82E7 + E88BA7 + East Asian ideograph + + + 215461 + 8305 + E88C85 + East Asian ideograph + + + 215462 + 8309 + E88C89 + East Asian ideograph + + + 215463 + 82E3 + E88BA3 + East Asian ideograph + + + 215464 + 82DB + E88B9B + East Asian ideograph + + + 215465 + 82E6 + E88BA6 + East Asian ideograph + + + 215466 + 8304 + E88C84 + East Asian ideograph + + + 215467 + 82E5 + E88BA5 + East Asian ideograph + + + 215468 + 8302 + E88C82 + East Asian ideograph + + + 215469 + 82DC + E88B9C + East Asian ideograph + + + 21546A + 82D7 + E88B97 + East Asian ideograph + + + 21546B + 82F1 + E88BB1 + East Asian ideograph + + + 21546C + 8301 + E88C81 + East Asian ideograph + + + 21546D + 82D3 + E88B93 + East Asian ideograph + + + 21546E + 82D4 + E88B94 + East Asian ideograph + + + 21546F + 82D1 + E88B91 + East Asian ideograph + + + 215470 + 82DE + E88B9E + East Asian ideograph + + + 215471 + 82DF + E88B9F + East Asian ideograph + + + 215472 + 832B + E88CAB + East Asian ideograph + + + 215473 + 8352 + E88D92 + East Asian ideograph + + + 215474 + 834A + E88D8A + East Asian ideograph + + + 215475 + 8338 + E88CB8 + East Asian ideograph + + + 215476 + 8354 + E88D94 + East Asian ideograph + + + 215477 + 8350 + E88D90 + East Asian ideograph + + + 215478 + 8349 + E88D89 + East Asian ideograph + + + 215479 + 8335 + E88CB5 + East Asian ideograph + + + 21547A + 8334 + E88CB4 + East Asian ideograph + + + 21547B + 8336 + E88CB6 + East Asian ideograph + + + 21547C + 8331 + E88CB1 + East Asian ideograph + + + 21547D + 8340 + E88D80 + East Asian ideograph + + + 21547E + 8317 + E88C97 + East Asian ideograph + + + 215521 + 5179 + E585B9 + East Asian ideograph + + + 215522 + 834F + E88D8F + East Asian ideograph + + + 215523 + 8339 + E88CB9 + East Asian ideograph + + + 215524 + 838E + E88E8E + East Asian ideograph + + + 215525 + 8398 + E88E98 + East Asian ideograph + + + 215526 + 839E + E88E9E + East Asian ideograph + + + 215527 + 8378 + E88DB8 + East Asian ideograph + + + 215528 + 83A2 + E88EA2 + East Asian ideograph + + + 215529 + 8396 + E88E96 + East Asian ideograph + + + 21552A + 83A7 + E88EA7 + East Asian ideograph + + + 21552B + 83AB + E88EAB + East Asian ideograph + + + 21552C + 8392 + E88E92 + East Asian ideograph (variant of EACC 4B552C) + + + 21552D + 838A + E88E8A + East Asian ideograph + + + 21552E + 8393 + E88E93 + East Asian ideograph + + + 21552F + 83A0 + E88EA0 + East Asian ideograph + + + 215530 + 8389 + E88E89 + East Asian ideograph + + + 215531 + 8377 + E88DB7 + East Asian ideograph + + + 215532 + 837C + E88DBC + East Asian ideograph + + + 215533 + 837B + E88DBB + East Asian ideograph + + + 215534 + 840D + E8908D + East Asian ideograph + + + 215535 + 83E0 + E88FA0 + East Asian ideograph + + + 215536 + 83E9 + E88FA9 + East Asian ideograph + + + 215538 + 8403 + E89083 + East Asian ideograph + + + 215539 + 83C5 + E88F85 + East Asian ideograph + + + 21553A + 83C1 + E88F81 + East Asian ideograph + + + 21553B + 840B + E8908B + East Asian ideograph + + + 21553C + 83EF + E88FAF + East Asian ideograph + + + 21553E + 83F1 + E88FB1 + East Asian ideograph + + + 21553F + 83BD + E88EBD + East Asian ideograph + + + 215541 + 840A + E8908A + East Asian ideograph + + + 215542 + 840C + E8908C + East Asian ideograph + + + 215543 + 83CC + E88F8C + East Asian ideograph + + + 215544 + 83DC + E88F9C + East Asian ideograph + + + 215545 + 83CA + E88F8A + East Asian ideograph + + + 215546 + 83F2 + E88FB2 + East Asian ideograph + + + 215547 + 840E + E8908E + East Asian ideograph + + + 215548 + 8404 + E89084 + East Asian ideograph + + + 215549 + 843D + E890BD + East Asian ideograph + + + 21554A + 8482 + E89282 + East Asian ideograph + + + 21554B + 8431 + E890B1 + East Asian ideograph + + + 21554C + 8475 + E891B5 + East Asian ideograph + + + 21554D + 8466 + E891A6 + East Asian ideograph + + + 21554E + 8457 + E89197 + East Asian ideograph + + + 21554F + 8449 + E89189 + East Asian ideograph + + + 215550 + 846C + E891AC + East Asian ideograph + + + 215551 + 846B + E891AB + East Asian ideograph + + + 215552 + 845B + E8919B + East Asian ideograph + + + 215553 + 8477 + E891B7 + East Asian ideograph + + + 215554 + 843C + E890BC + East Asian ideograph + + + 215555 + 8435 + E890B5 + East Asian ideograph + + + 215556 + 8461 + E891A1 + East Asian ideograph + + + 215557 + 8463 + E891A3 + East Asian ideograph + + + 215558 + 8469 + E891A9 + East Asian ideograph + + + 215559 + 8438 + E890B8 + East Asian ideograph + + + 21555A + 84B2 + E892B2 + East Asian ideograph + + + 21555B + 849E + E8929E + East Asian ideograph + + + 21555C + 84BF + E892BF + East Asian ideograph + + + 21555D + 84C6 + E89386 + East Asian ideograph + + + 21555E + 84C4 + E89384 + East Asian ideograph + + + 21555F + 84C9 + E89389 + East Asian ideograph + + + 215560 + 849C + E8929C + East Asian ideograph + + + 215561 + 84CB + E8938B + East Asian ideograph + + + 215562 + 84B8 + E892B8 + East Asian ideograph + + + 215563 + 84C0 + E89380 + East Asian ideograph + + + 215564 + 8499 + E89299 + East Asian ideograph + + + 215565 + 84D3 + E89393 + East Asian ideograph + + + 215566 + 8490 + E89290 + East Asian ideograph + + + 215567 + 84BC + E892BC + East Asian ideograph + + + 215568 + 853D + E894BD + East Asian ideograph + + + 215569 + 84FF + E893BF + East Asian ideograph + + + 21556A + 8517 + E89497 + East Asian ideograph + + + 21556B + 851A + E8949A + East Asian ideograph + + + 21556C + 84EE + E893AE + East Asian ideograph + + + 21556D + 852C + E894AC + East Asian ideograph + + + 21556E + 852D + E894AD + East Asian ideograph + + + 21556F + 8513 + E89493 + East Asian ideograph + + + 215571 + 8523 + E894A3 + East Asian ideograph + + + 215572 + 8521 + E894A1 + East Asian ideograph + + + 215573 + 8514 + E89494 + East Asian ideograph + + + 215574 + 84EC + E893AC + East Asian ideograph + + + 215575 + 8525 + E894A5 + East Asian ideograph + + + 215576 + 8569 + E895A9 + East Asian ideograph + + + 215577 + 854A + E8958A + East Asian ideograph + + + 215578 + 8559 + E89599 + East Asian ideograph + + + 215579 + 8548 + E89588 + East Asian ideograph + + + 21557A + 8568 + E895A8 + East Asian ideograph + + + 21557B + 8543 + E89583 + East Asian ideograph + + + 21557C + 856A + E895AA + East Asian ideograph + + + 21557D + 8549 + E89589 + East Asian ideograph + + + 21557E + 8584 + E89684 + East Asian ideograph + + + 215621 + 85AA + E896AA + East Asian ideograph + + + 215622 + 856D + E895AD + East Asian ideograph + + + 215623 + 859B + E8969B + East Asian ideograph + + + 215624 + 8591 + E89691 + East Asian ideograph + + + 215625 + 857E + E895BE + East Asian ideograph + + + 215626 + 8594 + E89694 + East Asian ideograph + + + 215627 + 859C + E8969C + East Asian ideograph + + + 215628 + 8587 + E89687 + East Asian ideograph + + + 215629 + 85CD + E8978D + East Asian ideograph (variant of EACC 4B5629) + + + 21562A + 85A9 + E896A9 + East Asian ideograph + + + 21562B + 85CF + E8978F + East Asian ideograph + + + 21562C + 85AF + E896AF + East Asian ideograph + + + 21562D + 85D0 + E89790 + East Asian ideograph + + + 21562E + 85C9 + E89789 + East Asian ideograph + + + 21562F + 85B0 + E896B0 + East Asian ideograph + + + 215630 + 85E9 + E897A9 + East Asian ideograph + + + 215631 + 85DD + E8979D + East Asian ideograph + + + 215632 + 85EA + E897AA + East Asian ideograph + + + 215633 + 85E4 + E897A4 + East Asian ideograph + + + 215634 + 85D5 + E89795 + East Asian ideograph + + + 215635 + 85E5 + E897A5 + East Asian ideograph + + + 215636 + 85FB + E897BB + East Asian ideograph + + + 215637 + 85F9 + E897B9 + East Asian ideograph + + + 215638 + 8611 + E89891 + East Asian ideograph + + + 215639 + 85FA + E897BA + East Asian ideograph + + + 21563A + 8606 + E89886 + East Asian ideograph + + + 21563B + 860B + E8988B + East Asian ideograph + + + 21563C + 8607 + E89887 + East Asian ideograph + + + 21563D + 860A + E8988A + East Asian ideograph + + + 21563E + 862D + E898AD + East Asian ideograph + + + 21563F + 8617 + E89897 + East Asian ideograph + + + 215640 + 861A + E8989A + East Asian ideograph + + + 215641 + 8638 + E898B8 + East Asian ideograph + + + 215642 + 863F + E898BF + East Asian ideograph + + + 215643 + 864E + E8998E + East Asian ideograph + + + 215644 + 8650 + E89990 + East Asian ideograph + + + 215645 + 8654 + E89994 + East Asian ideograph + + + 215646 + 5F6A + E5BDAA + East Asian ideograph + + + 215647 + 8655 + E89995 + East Asian ideograph + + + 215648 + 865C + E8999C + East Asian ideograph + + + 215649 + 865B + E8999B + East Asian ideograph + + + 21564A + 865F + E8999F + East Asian ideograph + + + 21564B + 865E + E8999E + East Asian ideograph + + + 21564C + 8667 + E899A7 + East Asian ideograph + + + 21564F + 8679 + E899B9 + East Asian ideograph + + + 215650 + 86A9 + E89AA9 + East Asian ideograph + + + 215651 + 86AA + E89AAA + East Asian ideograph + + + 215652 + 868A + E89A8A + East Asian ideograph + + + 215653 + 8693 + E89A93 + East Asian ideograph + + + 215654 + 86A4 + E89AA4 + East Asian ideograph + + + 215655 + 868C + E89A8C + East Asian ideograph + + + 215656 + 86A3 + E89AA3 + East Asian ideograph + + + 215657 + 86C0 + E89B80 + East Asian ideograph + + + 215658 + 86C7 + E89B87 + East Asian ideograph + + + 215659 + 86B5 + E89AB5 + East Asian ideograph + + + 21565A + 86CB + E89B8B + East Asian ideograph + + + 21565B + 86B6 + E89AB6 + East Asian ideograph + + + 21565C + 86C4 + E89B84 + East Asian ideograph + + + 21565D + 86C6 + E89B86 + East Asian ideograph + + + 21565E + 86B1 + E89AB1 + East Asian ideograph + + + 21565F + 86AF + E89AAF + East Asian ideograph + + + 215660 + 86DF + E89B9F + East Asian ideograph + + + 215661 + 86D9 + E89B99 + East Asian ideograph + + + 215662 + 86ED + E89BAD + East Asian ideograph + + + 215663 + 86D4 + E89B94 + East Asian ideograph + + + 215664 + 86DB + E89B9B + East Asian ideograph + + + 215665 + 86E4 + E89BA4 + East Asian ideograph + + + 215666 + 86FB + E89BBB + East Asian ideograph + + + 215667 + 86F9 + E89BB9 + East Asian ideograph + + + 215668 + 8707 + E89C87 + East Asian ideograph + + + 215669 + 8703 + E89C83 + East Asian ideograph + + + 21566A + 8708 + E89C88 + East Asian ideograph + + + 21566B + 8700 + E89C80 + East Asian ideograph + + + 21566C + 86FE + E89BBE + East Asian ideograph + + + 21566D + 8713 + E89C93 + East Asian ideograph + + + 21566E + 8702 + E89C82 + East Asian ideograph + + + 21566F + 871C + E89C9C + East Asian ideograph + + + 215670 + 873F + E89CBF + East Asian ideograph + + + 215671 + 873B + E89CBB + East Asian ideograph + + + 215672 + 8722 + E89CA2 + East Asian ideograph + + + 215673 + 8725 + E89CA5 + East Asian ideograph + + + 215674 + 8734 + E89CB4 + East Asian ideograph + + + 215675 + 8718 + E89C98 + East Asian ideograph + + + 215676 + 8755 + E89D95 + East Asian ideograph + + + 215677 + 8760 + E89DA0 + East Asian ideograph + + + 215678 + 8776 + E89DB6 + East Asian ideograph + + + 215679 + 8774 + E89DB4 + East Asian ideograph + + + 21567A + 8766 + E89DA6 + East Asian ideograph + + + 21567B + 8778 + E89DB8 + East Asian ideograph + + + 21567C + 8768 + E89DA8 + East Asian ideograph + + + 21567D + 874C + E89D8C + East Asian ideograph + + + 21567E + 8757 + E89D97 + East Asian ideograph + + + 215721 + 8759 + E89D99 + East Asian ideograph + + + 215722 + 8783 + E89E83 + East Asian ideograph + + + 215723 + 8782 + E89E82 + East Asian ideograph + + + 215724 + 87A2 + E89EA2 + East Asian ideograph + + + 215725 + 879E + E89E9E + East Asian ideograph + + + 215726 + 878D + E89E8D + East Asian ideograph + + + 215727 + 879F + E89E9F + East Asian ideograph + + + 215728 + 87D1 + E89F91 + East Asian ideograph + + + 215729 + 87C0 + E89F80 + East Asian ideograph + + + 21572A + 87AB + E89EAB + East Asian ideograph + + + 21572B + 87B3 + E89EB3 + East Asian ideograph + + + 21572C + 87BB + E89EBB + East Asian ideograph + + + 21572D + 87C8 + E89F88 + East Asian ideograph + + + 21572E + 87D2 + E89F92 + East Asian ideograph + + + 21572F + 87BA + E89EBA + East Asian ideograph + + + 215730 + 87C6 + E89F86 + East Asian ideograph + + + 215731 + 87CB + E89F8B + East Asian ideograph + + + 215732 + 87EF + E89FAF + East Asian ideograph + + + 215733 + 87F2 + E89FB2 + East Asian ideograph + + + 215734 + 87EC + E89FAC + East Asian ideograph + + + 215735 + 87FB + E89FBB + East Asian ideograph + + + 215736 + 8805 + E8A085 + East Asian ideograph + + + 215737 + 880D + E8A08D + East Asian ideograph + + + 215738 + 87F9 + E89FB9 + East Asian ideograph + + + 215739 + 8814 + E8A094 + East Asian ideograph + + + 21573A + 8815 + E8A095 + East Asian ideograph + + + 21573B + 8822 + E8A0A2 + East Asian ideograph + + + 21573C + 8823 + E8A0A3 + East Asian ideograph + + + 21573D + 8821 + E8A0A1 + East Asian ideograph + + + 21573E + 881F + E8A09F + East Asian ideograph + + + 21573F + 8831 + E8A0B1 + East Asian ideograph + + + 215740 + 8839 + E8A0B9 + East Asian ideograph + + + 215741 + 8836 + E8A0B6 + East Asian ideograph + + + 215742 + 883B + E8A0BB + East Asian ideograph + + + 215743 + 8840 + E8A180 + East Asian ideograph + + + 215744 + 884C + E8A18C + East Asian ideograph + + + 215745 + 884D + E8A18D + East Asian ideograph + + + 215746 + 8853 + E8A193 + East Asian ideograph (variant of EACC 4B5746) + + + 215747 + 8857 + E8A197 + East Asian ideograph + + + 215748 + 8859 + E8A199 + East Asian ideograph + + + 215749 + 885B + E8A19B + East Asian ideograph + + + 21574A + 885D + E8A19D + East Asian ideograph + + + 21574B + 8861 + E8A1A1 + East Asian ideograph + + + 21574C + 8862 + E8A1A2 + East Asian ideograph + + + 21574D + 8863 + E8A1A3 + East Asian ideograph + + + 21574E + 521D + E5889D + East Asian ideograph + + + 21574F + 8868 + E8A1A8 + East Asian ideograph + + + 215750 + 886B + E8A1AB + East Asian ideograph + + + 215751 + 8882 + E8A282 + East Asian ideograph + + + 215752 + 8881 + E8A281 + East Asian ideograph + + + 215753 + 8870 + E8A1B0 + East Asian ideograph + + + 215754 + 8877 + E8A1B7 + East Asian ideograph + + + 215755 + 8888 + E8A288 + East Asian ideograph + + + 215756 + 88AB + E8A2AB + East Asian ideograph + + + 215757 + 8892 + E8A292 + East Asian ideograph + + + 215758 + 8896 + E8A296 + East Asian ideograph + + + 215759 + 888D + E8A28D + East Asian ideograph + + + 21575A + 888B + E8A28B + East Asian ideograph + + + 21575B + 889E + E8A29E + East Asian ideograph + + + 21575C + 88C1 + E8A381 + East Asian ideograph + + + 21575D + 88C2 + E8A382 + East Asian ideograph + + + 21575E + 88B1 + E8A2B1 + East Asian ideograph + + + 21575F + 88DF + E8A39F + East Asian ideograph + + + 215760 + 88D9 + E8A399 + East Asian ideograph + + + 215761 + 88D8 + E8A398 + East Asian ideograph + + + 215762 + 88DC + E8A39C + East Asian ideograph + + + 215763 + 88CF + E8A38F + East Asian ideograph + + + 215764 + 88D4 + E8A394 + East Asian ideograph + + + 215765 + 88DD + E8A39D + East Asian ideograph + + + 215766 + 88D5 + E8A395 + East Asian ideograph + + + 215767 + 8902 + E8A482 + East Asian ideograph + + + 215768 + 88F3 + E8A3B3 + East Asian ideograph + + + 215769 + 88F8 + E8A3B8 + East Asian ideograph + + + 21576A + 88F9 + E8A3B9 + East Asian ideograph + + + 21576B + 88F4 + E8A3B4 + East Asian ideograph + + + 21576C + 88FD + E8A3BD + East Asian ideograph + + + 21576D + 88E8 + E8A3A8 + East Asian ideograph + + + 21576E + 891A + E8A49A + East Asian ideograph + + + 21576F + 8910 + E8A490 + East Asian ideograph + + + 215771 + 8913 + E8A493 + East Asian ideograph + + + 215772 + 8912 + E8A492 + East Asian ideograph + + + 215773 + 8932 + E8A4B2 + East Asian ideograph + + + 215774 + 892A + E8A4AA + East Asian ideograph + + + 215775 + 8925 + E8A4A5 + East Asian ideograph + + + 215776 + 892B + E8A4AB + East Asian ideograph + + + 215777 + 893B + E8A4BB + East Asian ideograph + + + 215778 + 8936 + E8A4B6 + East Asian ideograph + + + 215779 + 8938 + E8A4B8 + East Asian ideograph + + + 21577A + 8944 + E8A584 + East Asian ideograph + + + 21577B + 895F + E8A59F + East Asian ideograph + + + 21577C + 8960 + E8A5A0 + East Asian ideograph + + + 21577D + 8956 + E8A596 + East Asian ideograph + + + 21577E + 8964 + E8A5A4 + East Asian ideograph + + + 215821 + 896A + E8A5AA + East Asian ideograph + + + 215822 + 896F + E8A5AF + East Asian ideograph + + + 215823 + 8972 + E8A5B2 + East Asian ideograph + + + 215824 + 897F + E8A5BF + East Asian ideograph + + + 215825 + 8981 + E8A681 + East Asian ideograph + + + 215826 + 8983 + E8A683 + East Asian ideograph + + + 215828 + 898B + E8A68B + East Asian ideograph + + + 215829 + 898F + E8A68F + East Asian ideograph + + + 21582A + 8993 + E8A693 + East Asian ideograph + + + 21582B + 8996 + E8A696 + East Asian ideograph + + + 21582C + 89AA + E8A6AA + East Asian ideograph + + + 21582D + 89A6 + E8A6A6 + East Asian ideograph + + + 21582E + 89AC + E8A6AC + East Asian ideograph + + + 21582F + 89B2 + E8A6B2 + East Asian ideograph + + + 215830 + 89BA + E8A6BA + East Asian ideograph + + + 215831 + 89BD + E8A6BD + East Asian ideograph + + + 215832 + 89C0 + E8A780 + East Asian ideograph + + + 215833 + 89D2 + E8A792 + East Asian ideograph + + + 215834 + 89E3 + E8A7A3 + East Asian ideograph + + + 215835 + 89F4 + E8A7B4 + East Asian ideograph + + + 215836 + 89F8 + E8A7B8 + East Asian ideograph + + + 215837 + 8A00 + E8A880 + East Asian ideograph + + + 215838 + 8A08 + E8A888 + East Asian ideograph + + + 215839 + 8A02 + E8A882 + East Asian ideograph + + + 21583A + 8A03 + E8A883 + East Asian ideograph + + + 21583B + 8A10 + E8A890 + East Asian ideograph + + + 21583C + 8A18 + E8A898 + East Asian ideograph + + + 21583D + 8A0E + E8A88E + East Asian ideograph + + + 21583E + 8A0C + E8A88C + East Asian ideograph + + + 21583F + 8A15 + E8A895 + East Asian ideograph + + + 215840 + 8A0A + E8A88A + East Asian ideograph + + + 215841 + 8A16 + E8A896 + East Asian ideograph + + + 215842 + 8A17 + E8A897 + East Asian ideograph + + + 215843 + 8A13 + E8A893 + East Asian ideograph + + + 215844 + 8A2A + E8A8AA + East Asian ideograph + + + 215845 + 8A23 + E8A8A3 + East Asian ideograph + + + 215846 + 8A1D + E8A89D + East Asian ideograph + + + 215847 + 8A25 + E8A8A5 + East Asian ideograph + + + 215848 + 8A31 + E8A8B1 + East Asian ideograph + + + 215849 + 8A2D + E8A8AD + East Asian ideograph + + + 21584A + 8A1B + E8A89B + East Asian ideograph + + + 21584B + 8A1F + E8A89F + East Asian ideograph + + + 21584C + 8A3B + E8A8BB + East Asian ideograph + + + 21584D + 8A60 + E8A9A0 + East Asian ideograph + + + 21584E + 8A55 + E8A995 + East Asian ideograph + + + 21584F + 8A5E + E8A99E + East Asian ideograph + + + 215851 + 8A41 + E8A981 + East Asian ideograph + + + 215852 + 8A54 + E8A994 + East Asian ideograph + + + 215853 + 8A5B + E8A99B + East Asian ideograph + + + 215854 + 8A50 + E8A990 + East Asian ideograph + + + 215855 + 8A46 + E8A986 + East Asian ideograph + + + 215856 + 8A34 + E8A8B4 + East Asian ideograph + + + 215857 + 8A3A + E8A8BA + East Asian ideograph + + + 215858 + 8A6B + E8A9AB + East Asian ideograph + + + 215859 + 8A72 + E8A9B2 + East Asian ideograph + + + 21585A + 8A73 + E8A9B3 + East Asian ideograph + + + 21585B + 8A66 + E8A9A6 + East Asian ideograph + + + 21585C + 8A69 + E8A9A9 + East Asian ideograph + + + 21585D + 8A70 + E8A9B0 + East Asian ideograph + + + 21585E + 8A63 + E8A9A3 + East Asian ideograph + + + 21585F + 8A7C + E8A9BC + East Asian ideograph + + + 215860 + 8AA0 + E8AAA0 + East Asian ideograph + + + 215861 + 8A87 + E8AA87 + East Asian ideograph + + + 215862 + 8A85 + E8AA85 + East Asian ideograph + + + 215863 + 8A6D + E8A9AD + East Asian ideograph + + + 215864 + 8A79 + E8A9B9 + East Asian ideograph + + + 215865 + 8A62 + E8A9A2 + East Asian ideograph + + + 215866 + 8A71 + E8A9B1 + East Asian ideograph + + + 215867 + 8A6E + E8A9AE + East Asian ideograph + + + 215868 + 8A6C + E8A9AC + East Asian ideograph + + + 215869 + 8AAA + E8AAAA + East Asian ideograph + + + 21586A + 8AA6 + E8AAA6 + East Asian ideograph + + + 21586B + 8AA1 + E8AAA1 + East Asian ideograph + + + 21586C + 8A9E + E8AA9E + East Asian ideograph + + + 21586D + 8A8C + E8AA8C + East Asian ideograph + + + 21586E + 8A93 + E8AA93 + East Asian ideograph + + + 21586F + 8AA3 + E8AAA3 + East Asian ideograph + + + 215870 + 8A8D + E8AA8D + East Asian ideograph + + + 215871 + 8AA4 + E8AAA4 + East Asian ideograph (variant of EACC 4B5871) + + + 215872 + 8AA8 + E8AAA8 + East Asian ideograph + + + 215873 + 8AA5 + E8AAA5 + East Asian ideograph + + + 215874 + 8A98 + E8AA98 + East Asian ideograph + + + 215875 + 8A91 + E8AA91 + East Asian ideograph + + + 215876 + 8ABC + E8AABC + East Asian ideograph + + + 215877 + 8AC4 + E8AB84 + East Asian ideograph + + + 215878 + 8AD2 + E8AB92 + East Asian ideograph + + + 215879 + 8AC7 + E8AB87 + East Asian ideograph + + + 21587A + 8ACB + E8AB8B + East Asian ideograph (variant of EACC 4B587A) + + + 21587B + 8AF8 + E8ABB8 + East Asian ideograph + + + 21587C + 8AB2 + E8AAB2 + East Asian ideograph + + + 21587D + 8ABF + E8AABF + East Asian ideograph + + + 21587E + 8AC9 + E8AB89 + East Asian ideograph + + + 215921 + 8AC2 + E8AB82 + East Asian ideograph + + + 215922 + 8AB0 + E8AAB0 + East Asian ideograph + + + 215923 + 8A95 + E8AA95 + East Asian ideograph + + + 215924 + 8AD6 + E8AB96 + East Asian ideograph + + + 215925 + 8AE6 + E8ABA6 + East Asian ideograph + + + 215926 + 8AFA + E8ABBA + East Asian ideograph + + + 215927 + 8AEB + E8ABAB + East Asian ideograph + + + 215928 + 8AF1 + E8ABB1 + East Asian ideograph + + + 215929 + 8AE7 + E8ABA7 + East Asian ideograph + + + 21592A + 8ADC + E8AB9C + East Asian ideograph + + + 21592B + 8B00 + E8AC80 + East Asian ideograph + + + 21592C + 8B01 + E8AC81 + East Asian ideograph (variant of EACC 2D592C) + + + 21592D + 8B02 + E8AC82 + East Asian ideograph + + + 21592E + 8AFE + E8ABBE + East Asian ideograph + + + 21592F + 8AF7 + E8ABB7 + East Asian ideograph + + + 215930 + 8AED + E8ABAD + East Asian ideograph + + + 215931 + 8B17 + E8AC97 + East Asian ideograph + + + 215932 + 8B19 + E8AC99 + East Asian ideograph + + + 215933 + 8B0E + E8AC8E + East Asian ideograph + + + 215934 + 8B1B + E8AC9B + East Asian ideograph + + + 215935 + 8B0A + E8AC8A + East Asian ideograph + + + 215936 + 8B21 + E8ACA1 + East Asian ideograph + + + 215937 + 8B04 + E8AC84 + East Asian ideograph + + + 215938 + 8B1D + E8AC9D + East Asian ideograph + + + 215939 + 8B39 + E8ACB9 + East Asian ideograph + + + 21593A + 8B2C + E8ACAC + East Asian ideograph + + + 21593B + 8B28 + E8ACA8 + East Asian ideograph + + + 21593C + 8B58 + E8AD98 + East Asian ideograph + + + 21593D + 8B5C + E8AD9C + East Asian ideograph + + + 21593E + 8B4E + E8AD8E + East Asian ideograph + + + 21593F + 8B49 + E8AD89 + East Asian ideograph + + + 215940 + 8B5A + E8AD9A + East Asian ideograph + + + 215941 + 8B41 + E8AD81 + East Asian ideograph + + + 215942 + 8B4F + E8AD8F + East Asian ideograph + + + 215943 + 8B70 + E8ADB0 + East Asian ideograph + + + 215944 + 8B6C + E8ADAC + East Asian ideograph + + + 215945 + 8B66 + E8ADA6 + East Asian ideograph + + + 215946 + 8B6F + E8ADAF + East Asian ideograph + + + 215947 + 8B74 + E8ADB4 + East Asian ideograph + + + 215948 + 8B77 + E8ADB7 + East Asian ideograph + + + 215949 + 8B7D + E8ADBD + East Asian ideograph + + + 21594A + 8B80 + E8AE80 + East Asian ideograph + + + 21594B + 8B8A + E8AE8A + East Asian ideograph + + + 21594C + 8B93 + E8AE93 + East Asian ideograph + + + 21594D + 8B96 + E8AE96 + East Asian ideograph + + + 21594E + 8B92 + E8AE92 + East Asian ideograph + + + 21594F + 8B9A + E8AE9A + East Asian ideograph + + + 215951 + 8C41 + E8B181 + East Asian ideograph + + + 215952 + 8C3F + E8B0BF + East Asian ideograph + + + 215953 + 8C46 + E8B186 + East Asian ideograph + + + 215954 + 8C48 + E8B188 + East Asian ideograph + + + 215955 + 8C49 + E8B189 + East Asian ideograph + + + 215956 + 8C4C + E8B18C + East Asian ideograph + + + 215957 + 8C4E + E8B18E + East Asian ideograph + + + 215958 + 8C50 + E8B190 + East Asian ideograph + + + 215959 + 8C54 + E8B194 + East Asian ideograph + + + 21595A + 8C5A + E8B19A + East Asian ideograph + + + 21595C + 8C62 + E8B1A2 + East Asian ideograph + + + 21595D + 8C6A + E8B1AA + East Asian ideograph + + + 21595E + 8C6B + E8B1AB + East Asian ideograph + + + 21595F + 8C6C + E8B1AC + East Asian ideograph + + + 215960 + 8C7A + E8B1BA + East Asian ideograph + + + 215961 + 8C79 + E8B1B9 + East Asian ideograph + + + 215962 + 8C82 + E8B282 + East Asian ideograph + + + 215963 + 8C8A + E8B28A + East Asian ideograph + + + 215964 + 8C89 + E8B289 + East Asian ideograph + + + 215965 + 8C8D + E8B28D + East Asian ideograph + + + 215966 + 8C8C + E8B28C + East Asian ideograph + + + 215967 + 8C93 + E8B293 + East Asian ideograph + + + 215968 + 8C9D + E8B29D + East Asian ideograph + + + 215969 + 8C9E + E8B29E + East Asian ideograph + + + 21596A + 8CA0 + E8B2A0 + East Asian ideograph + + + 21596B + 8CA2 + E8B2A2 + East Asian ideograph + + + 21596C + 8CA1 + E8B2A1 + East Asian ideograph + + + 21596D + 8CAC + E8B2AC + East Asian ideograph + + + 21596E + 8CAB + E8B2AB + East Asian ideograph + + + 21596F + 8CA8 + E8B2A8 + East Asian ideograph + + + 215970 + 8CAA + E8B2AA + East Asian ideograph + + + 215971 + 8CA7 + E8B2A7 + East Asian ideograph + + + 215972 + 8CA9 + E8B2A9 + East Asian ideograph + + + 215973 + 8CAF + E8B2AF + East Asian ideograph + + + 215975 + 8CBB + E8B2BB + East Asian ideograph + + + 215976 + 8CC1 + E8B381 + East Asian ideograph + + + 215977 + 8CC0 + E8B380 + East Asian ideograph + + + 215978 + 8CB4 + E8B2B4 + East Asian ideograph + + + 215979 + 8CBC + E8B2BC + East Asian ideograph + + + 21597A + 8CB7 + E8B2B7 + East Asian ideograph + + + 21597B + 8CB6 + E8B2B6 + East Asian ideograph + + + 21597C + 8CBD + E8B2BD + East Asian ideograph + + + 21597D + 8CB8 + E8B2B8 + East Asian ideograph + + + 21597E + 8CBF + E8B2BF + East Asian ideograph + + + 215A21 + 8CC5 + E8B385 + East Asian ideograph + + + 215A22 + 8CC7 + E8B387 + East Asian ideograph + + + 215A23 + 8CCA + E8B38A + East Asian ideograph + + + 215A24 + 8CC8 + E8B388 + East Asian ideograph + + + 215A25 + 8CC4 + E8B384 + East Asian ideograph + + + 215A26 + 8CB2 + E8B2B2 + East Asian ideograph + + + 215A27 + 8CC3 + E8B383 + East Asian ideograph + + + 215A28 + 8CC2 + E8B382 + East Asian ideograph + + + 215A29 + 8CD3 + E8B393 + East Asian ideograph + + + 215A2A + 8CD1 + E8B391 + East Asian ideograph + + + 215A2B + 8CD2 + E8B392 + East Asian ideograph + + + 215A2C + 8CE0 + E8B3A0 + East Asian ideograph + + + 215A2D + 8CE6 + E8B3A6 + East Asian ideograph + + + 215A2F + 8CE3 + E8B3A3 + East Asian ideograph + + + 215A30 + 8CE2 + E8B3A2 + East Asian ideograph + + + 215A31 + 8CE4 + E8B3A4 + East Asian ideograph + + + 215A32 + 8CDE + E8B39E + East Asian ideograph + + + 215A33 + 8CDC + E8B39C + East Asian ideograph + + + 215A34 + 8CEA + E8B3AA + East Asian ideograph + + + 215A35 + 8CED + E8B3AD + East Asian ideograph + + + 215A36 + 8CF4 + E8B3B4 + East Asian ideograph + + + 215A37 + 8CFD + E8B3BD + East Asian ideograph + + + 215A38 + 8CFA + E8B3BA + East Asian ideograph + + + 215A39 + 8D05 + E8B485 + East Asian ideograph + + + 215A3A + 8CFC + E8B3BC + East Asian ideograph + + + 215A3B + 8D08 + E8B488 + East Asian ideograph (variant of EACC 4B5A3B) + + + 215A3C + 8D0B + E8B48B + East Asian ideograph + + + 215A3D + 8D0A + E8B48A + East Asian ideograph + + + 215A3E + 8D0F + E8B48F + East Asian ideograph + + + 215A3F + 8D0D + E8B48D + East Asian ideograph + + + 215A40 + 8D13 + E8B493 + East Asian ideograph + + + 215A41 + 8D16 + E8B496 + East Asian ideograph + + + 215A42 + 8D1B + E8B49B + East Asian ideograph + + + 215A43 + 8D64 + E8B5A4 + East Asian ideograph + + + 215A44 + 8D67 + E8B5A7 + East Asian ideograph + + + 215A45 + 8D66 + E8B5A6 + East Asian ideograph + + + 215A46 + 8D6B + E8B5AB + East Asian ideograph + + + 215A47 + 8D6D + E8B5AD + East Asian ideograph + + + 215A48 + 8D70 + E8B5B0 + East Asian ideograph + + + 215A49 + 8D74 + E8B5B4 + East Asian ideograph + + + 215A4A + 8D73 + E8B5B3 + East Asian ideograph + + + 215A4B + 8D77 + E8B5B7 + East Asian ideograph + + + 215A4C + 8D85 + E8B685 + East Asian ideograph + + + 215A4D + 8D8A + E8B68A + East Asian ideograph + + + 215A4E + 8D81 + E8B681 + East Asian ideograph + + + 215A4F + 8D99 + E8B699 + East Asian ideograph + + + 215A50 + 8D95 + E8B695 + East Asian ideograph + + + 215A51 + 8DA3 + E8B6A3 + East Asian ideograph + + + 215A52 + 8D9F + E8B69F + East Asian ideograph + + + 215A53 + 8DA8 + E8B6A8 + East Asian ideograph + + + 215A54 + 8DB3 + E8B6B3 + East Asian ideograph + + + 215A55 + 8DB4 + E8B6B4 + East Asian ideograph + + + 215A56 + 8DBE + E8B6BE + East Asian ideograph + + + 215A57 + 8DCE + E8B78E + East Asian ideograph + + + 215A58 + 8DDD + E8B79D + East Asian ideograph + + + 215A59 + 8DDB + E8B79B + East Asian ideograph + + + 215A5A + 8DCB + E8B78B + East Asian ideograph + + + 215A5B + 8DDA + E8B79A + East Asian ideograph + + + 215A5C + 8DC6 + E8B786 + East Asian ideograph + + + 215A5D + 8DD1 + E8B791 + East Asian ideograph + + + 215A5E + 8DCC + E8B78C + East Asian ideograph + + + 215A5F + 8DE1 + E8B7A1 + East Asian ideograph + + + 215A60 + 8DDF + E8B79F + East Asian ideograph + + + 215A61 + 8DE8 + E8B7A8 + East Asian ideograph + + + 215A62 + 8DF3 + E8B7B3 + East Asian ideograph + + + 215A63 + 8DFA + E8B7BA + East Asian ideograph + + + 215A64 + 8DEA + E8B7AA + East Asian ideograph + + + 215A65 + 8DEF + E8B7AF + East Asian ideograph + + + 215A66 + 8DFC + E8B7BC + East Asian ideograph + + + 215A67 + 8E2B + E8B8AB + East Asian ideograph + + + 215A68 + 8E10 + E8B890 + East Asian ideograph + + + 215A69 + 8E22 + E8B8A2 + East Asian ideograph + + + 215A6A + 8E1D + E8B89D + East Asian ideograph + + + 215A6B + 8E0F + E8B88F + East Asian ideograph + + + 215A6C + 8E29 + E8B8A9 + East Asian ideograph + + + 215A6D + 8E1F + E8B89F + East Asian ideograph + + + 215A6E + 8E44 + E8B984 + East Asian ideograph + + + 215A6F + 8E31 + E8B8B1 + East Asian ideograph + + + 215A70 + 8E42 + E8B982 + East Asian ideograph + + + 215A71 + 8E34 + E8B8B4 + East Asian ideograph + + + 215A72 + 8E39 + E8B8B9 + East Asian ideograph + + + 215A73 + 8E35 + E8B8B5 + East Asian ideograph + + + 215A74 + 8E49 + E8B989 + East Asian ideograph + + + 215A75 + 8E4B + E8B98B + East Asian ideograph + + + 215A76 + 8E48 + E8B988 + East Asian ideograph + + + 215A77 + 8E4A + E8B98A + East Asian ideograph + + + 215A78 + 8E63 + E8B9A3 + East Asian ideograph + + + 215A79 + 8E59 + E8B999 + East Asian ideograph + + + 215A7A + 8E66 + E8B9A6 + East Asian ideograph + + + 215A7B + 8E64 + E8B9A4 + East Asian ideograph + + + 215A7C + 8E72 + E8B9B2 + East Asian ideograph + + + 215A7D + 8E6C + E8B9AC + East Asian ideograph + + + 215A7E + 8E7A + E8B9BA + East Asian ideograph + + + 215B21 + 8E76 + E8B9B6 + East Asian ideograph + + + 215B22 + 8E7C + E8B9BC + East Asian ideograph + + + 215B23 + 8E82 + E8BA82 + East Asian ideograph + + + 215B24 + 8E81 + E8BA81 + East Asian ideograph + + + 215B25 + 8E87 + E8BA87 + East Asian ideograph + + + 215B26 + 8E89 + E8BA89 + East Asian ideograph + + + 215B27 + 8E85 + E8BA85 + East Asian ideograph + + + 215B28 + 8E8A + E8BA8A + East Asian ideograph + + + 215B29 + 8E8D + E8BA8D + East Asian ideograph (variant of EACC 4B5B29) + + + 215B2A + 8E91 + E8BA91 + East Asian ideograph + + + 215B2B + 8EA1 + E8BAA1 + East Asian ideograph + + + 215B2C + 8EAA + E8BAAA + East Asian ideograph + + + 215B2D + 8EAB + E8BAAB + East Asian ideograph + + + 215B2E + 8EAC + E8BAAC + East Asian ideograph + + + 215B2F + 8EB2 + E8BAB2 + East Asian ideograph + + + 215B30 + 8EBA + E8BABA + East Asian ideograph + + + 215B31 + 8EC0 + E8BB80 + East Asian ideograph + + + 215B32 + 8ECA + E8BB8A + East Asian ideograph + + + 215B33 + 8ECB + E8BB8B + East Asian ideograph + + + 215B34 + 8ECD + E8BB8D + East Asian ideograph + + + 215B35 + 8ECC + E8BB8C + East Asian ideograph + + + 215B36 + 8ED2 + E8BB92 + East Asian ideograph + + + 215B37 + 8ED4 + E8BB94 + East Asian ideograph + + + 215B38 + 8EDF + E8BB9F + East Asian ideograph + + + 215B39 + 8EDB + E8BB9B + East Asian ideograph + + + 215B3A + 8EFB + E8BBBB + East Asian ideograph + + + 215B3B + 8EF8 + E8BBB8 + East Asian ideograph + + + 215B3C + 8EFC + E8BBBC + East Asian ideograph + + + 215B3D + 8F03 + E8BC83 + East Asian ideograph + + + 215B3E + 8EFE + E8BBBE + East Asian ideograph + + + 215B3F + 8F09 + E8BC89 + East Asian ideograph + + + 215B40 + 8F0A + E8BC8A + East Asian ideograph + + + 215B41 + 8F14 + E8BC94 + East Asian ideograph + + + 215B42 + 8F12 + E8BC92 + East Asian ideograph + + + 215B43 + 8F15 + E8BC95 + East Asian ideograph + + + 215B44 + 8F13 + E8BC93 + East Asian ideograph + + + 215B45 + 8F26 + E8BCA6 + East Asian ideograph + + + 215B46 + 8F1B + E8BC9B + East Asian ideograph + + + 215B47 + 8F1F + E8BC9F + East Asian ideograph + + + 215B48 + 8F1D + E8BC9D + East Asian ideograph + + + 215B49 + 8F29 + E8BCA9 + East Asian ideograph + + + 215B4A + 8F2A + E8BCAA + East Asian ideograph + + + 215B4B + 8F1C + E8BC9C + East Asian ideograph + + + 215B4C + 8F3B + E8BCBB + East Asian ideograph + + + 215B4D + 8F2F + E8BCAF + East Asian ideograph + + + 215B4E + 8F38 + E8BCB8 + East Asian ideograph + + + 215B4F + 8F44 + E8BD84 + East Asian ideograph + + + 215B50 + 8F3E + E8BCBE + East Asian ideograph + + + 215B51 + 8F45 + E8BD85 + East Asian ideograph + + + 215B52 + 8F42 + E8BD82 + East Asian ideograph (variant of EACC 4B5B52) + + + 215B53 + 8F3F + E8BCBF + East Asian ideograph + + + 215B54 + 8F4D + E8BD8D + East Asian ideograph + + + 215B55 + 8F49 + E8BD89 + East Asian ideograph + + + 215B56 + 8F54 + E8BD94 + East Asian ideograph + + + 215B57 + 8F4E + E8BD8E + East Asian ideograph + + + 215B58 + 8F5F + E8BD9F + East Asian ideograph + + + 215B59 + 8F61 + E8BDA1 + East Asian ideograph + + + 215B5A + 8F9B + E8BE9B + East Asian ideograph + + + 215B5B + 8F9C + E8BE9C + East Asian ideograph + + + 215B5C + 8F9F + E8BE9F + East Asian ideograph + + + 215B5D + 8FA3 + E8BEA3 + East Asian ideograph + + + 215B5E + 8FA8 + E8BEA8 + East Asian ideograph + + + 215B5F + 8FA6 + E8BEA6 + East Asian ideograph + + + 215B60 + 8FAD + E8BEAD + East Asian ideograph + + + 215B61 + 8FAF + E8BEAF + East Asian ideograph + + + 215B62 + 8FB0 + E8BEB0 + East Asian ideograph + + + 215B63 + 8FB1 + E8BEB1 + East Asian ideograph + + + 215B64 + 8FB2 + E8BEB2 + East Asian ideograph + + + 215B66 + 8FC6 + E8BF86 + East Asian ideograph + + + 215B67 + 8FC5 + E8BF85 + East Asian ideograph + + + 215B68 + 8FC4 + E8BF84 + East Asian ideograph + + + 215B69 + 5DE1 + E5B7A1 + East Asian ideograph + + + 215B6A + 8FCE + E8BF8E + East Asian ideograph + + + 215B6B + 8FD1 + E8BF91 + East Asian ideograph + + + 215B6C + 8FD4 + E8BF94 + East Asian ideograph + + + 215B6D + 8FF0 + E8BFB0 + East Asian ideograph (variant of EACC 275B6D) + + + 215B6E + 8FE6 + E8BFA6 + East Asian ideograph + + + 215B6F + 8FE2 + E8BFA2 + East Asian ideograph + + + 215B70 + 8FEA + E8BFAA + East Asian ideograph + + + 215B71 + 8FE5 + E8BFA5 + East Asian ideograph + + + 215B73 + 8FEB + E8BFAB + East Asian ideograph + + + 215B74 + 9001 + E98081 + East Asian ideograph + + + 215B75 + 9006 + E98086 + East Asian ideograph + + + 215B76 + 8FF7 + E8BFB7 + East Asian ideograph + + + 215B77 + 9000 + E98080 + East Asian ideograph + + + 215B7A + 9003 + E98083 + East Asian ideograph + + + 215B7B + 8FFD + E8BFBD + East Asian ideograph + + + 215B7C + 9005 + E98085 + East Asian ideograph + + + 215B7D + 9019 + E98099 + East Asian ideograph + + + 215B7E + 9023 + E980A3 + East Asian ideograph + + + 215C21 + 901F + E9809F + East Asian ideograph + + + 215C22 + 9017 + E98097 + East Asian ideograph + + + 215C23 + 901D + E9809D + East Asian ideograph + + + 215C24 + 9010 + E98090 + East Asian ideograph + + + 215C26 + 900D + E9808D + East Asian ideograph + + + 215C27 + 901E + E9809E + East Asian ideograph + + + 215C28 + 901A + E9809A + East Asian ideograph + + + 215C29 + 9020 + E980A0 + East Asian ideograph + + + 215C2A + 900F + E9808F + East Asian ideograph + + + 215C2B + 9022 + E980A2 + East Asian ideograph + + + 215C2C + 9016 + E98096 + East Asian ideograph + + + 215C2D + 901B + E9809B + East Asian ideograph + + + 215C2E + 9014 + E98094 + East Asian ideograph + + + 215C2F + 902E + E980AE + East Asian ideograph + + + 215C30 + 9035 + E980B5 + East Asian ideograph + + + 215C31 + 9031 + E980B1 + East Asian ideograph + + + 215C32 + 9038 + E980B8 + East Asian ideograph (variant of EACC 4B5C32) + + + 215C33 + 9032 + E980B2 + East Asian ideograph + + + 215C34 + 904B + E9818B + East Asian ideograph + + + 215C36 + 9053 + E98193 + East Asian ideograph + + + 215C37 + 9042 + E98182 + East Asian ideograph + + + 215C38 + 9050 + E98190 + East Asian ideograph + + + 215C39 + 9054 + E98194 + East Asian ideograph + + + 215C3A + 9055 + E98195 + East Asian ideograph + + + 215C3B + 903C + E980BC + East Asian ideograph + + + 215C3C + 9047 + E98187 + East Asian ideograph + + + 215C3D + 904F + E9818F + East Asian ideograph + + + 215C3E + 904E + E9818E + East Asian ideograph + + + 215C3F + 904D + E9818D + East Asian ideograph + + + 215C40 + 9051 + E98191 + East Asian ideograph + + + 215C41 + 9041 + E98181 + East Asian ideograph + + + 215C42 + 903E + E980BE + East Asian ideograph + + + 215C43 + 9058 + E98198 + East Asian ideograph + + + 215C44 + 9060 + E981A0 + East Asian ideograph + + + 215C45 + 905C + E9819C + East Asian ideograph + + + 215C46 + 9063 + E981A3 + East Asian ideograph + + + 215C47 + 9065 + E981A5 + East Asian ideograph + + + 215C48 + 905E + E9819E + East Asian ideograph + + + 215C49 + 9069 + E981A9 + East Asian ideograph + + + 215C4A + 906E + E981AE + East Asian ideograph + + + 215C4B + 9068 + E981A8 + East Asian ideograph + + + 215C4C + 906D + E981AD + East Asian ideograph + + + 215C4D + 9075 + E981B5 + East Asian ideograph + + + 215C4E + 9074 + E981B4 + East Asian ideograph + + + 215C4F + 9078 + E981B8 + East Asian ideograph + + + 215C50 + 9072 + E981B2 + East Asian ideograph + + + 215C51 + 9077 + E981B7 + East Asian ideograph + + + 215C52 + 907C + E981BC + East Asian ideograph + + + 215C53 + 907A + E981BA + East Asian ideograph + + + 215C54 + 907F + E981BF + East Asian ideograph + + + 215C55 + 907D + E981BD + East Asian ideograph + + + 215C56 + 9081 + E98281 + East Asian ideograph + + + 215C57 + 9084 + E98284 + East Asian ideograph + + + 215C58 + 9082 + E98282 + East Asian ideograph + + + 215C59 + 9080 + E98280 + East Asian ideograph + + + 215C5A + 9087 + E98287 + East Asian ideograph + + + 215C5B + 908A + E9828A + East Asian ideograph + + + 215C5C + 9090 + E98290 + East Asian ideograph + + + 215C5D + 908F + E9828F + East Asian ideograph + + + 215C5E + 9091 + E98291 + East Asian ideograph + + + 215C5F + 9095 + E98295 + East Asian ideograph + + + 215C60 + 90A3 + E982A3 + East Asian ideograph + + + 215C61 + 90A2 + E982A2 + East Asian ideograph + + + 215C62 + 90AA + E982AA + East Asian ideograph + + + 215C63 + 90A6 + E982A6 + East Asian ideograph + + + 215C64 + 90B5 + E982B5 + East Asian ideograph + + + 215C65 + 90B1 + E982B1 + East Asian ideograph + + + 215C66 + 90B8 + E982B8 + East Asian ideograph + + + 215C67 + 90CE + E9838E + East Asian ideograph + + + 215C68 + 90CA + E9838A + East Asian ideograph + + + 215C6A + 90E1 + E983A1 + East Asian ideograph + + + 215C6B + 90E8 + E983A8 + East Asian ideograph + + + 215C6C + 90ED + E983AD + East Asian ideograph + + + 215C6D + 90F5 + E983B5 + East Asian ideograph + + + 215C6E + 90FD + E983BD + East Asian ideograph + + + 215C6F + 9102 + E98482 + East Asian ideograph + + + 215C70 + 9109 + E98489 + East Asian ideograph + + + 215C71 + 9112 + E98492 + East Asian ideograph + + + 215C72 + 9119 + E98499 + East Asian ideograph + + + 215C73 + 912D + E984AD + East Asian ideograph + + + 215C74 + 9130 + E984B0 + East Asian ideograph + + + 215C75 + 9127 + E984A7 + East Asian ideograph + + + 215C76 + 9131 + E984B1 + East Asian ideograph + + + 215C77 + 9139 + E984B9 + East Asian ideograph (variant of EACC 4B5C77) + + + 215C78 + 9149 + E98589 + East Asian ideograph + + + 215C79 + 914B + E9858B + East Asian ideograph + + + 215C7A + 914A + E9858A + East Asian ideograph + + + 215C7B + 9152 + E98592 + East Asian ideograph + + + 215C7C + 914D + E9858D + East Asian ideograph + + + 215C7D + 914C + E9858C + East Asian ideograph + + + 215C7E + 9157 + E98597 + East Asian ideograph + + + 215D21 + 9163 + E985A3 + East Asian ideograph + + + 215D22 + 9165 + E985A5 + East Asian ideograph + + + 215D23 + 916C + E985AC + East Asian ideograph + + + 215D24 + 9169 + E985A9 + East Asian ideograph + + + 215D25 + 916A + E985AA + East Asian ideograph + + + 215D26 + 9175 + E985B5 + East Asian ideograph + + + 215D27 + 9178 + E985B8 + East Asian ideograph + + + 215D28 + 9177 + E985B7 + East Asian ideograph + + + 215D29 + 9187 + E98687 + East Asian ideograph + + + 215D2A + 9189 + E98689 + East Asian ideograph + + + 215D2B + 918B + E9868B + East Asian ideograph + + + 215D2C + 9183 + E98683 + East Asian ideograph + + + 215D2D + 9192 + E98692 + East Asian ideograph + + + 215D2E + 91A3 + E986A3 + East Asian ideograph + + + 215D2F + 919E + E9869E + East Asian ideograph + + + 215D30 + 919C + E9869C + East Asian ideograph + + + 215D31 + 91AB + E986AB + East Asian ideograph + + + 215D32 + 91AC + E986AC + East Asian ideograph + + + 215D33 + 91BA + E986BA + East Asian ideograph + + + 215D34 + 91C0 + E98780 + East Asian ideograph + + + 215D35 + 91C1 + E98781 + East Asian ideograph + + + 215D36 + 91C7 + E98787 + East Asian ideograph + + + 215D37 + 91C9 + E98789 + East Asian ideograph + + + 215D38 + 91CB + E9878B + East Asian ideograph + + + 215D3A + 91CD + E9878D + East Asian ideograph + + + 215D3B + 91CE + E9878E + East Asian ideograph + + + 215D3C + 91CF + E9878F + East Asian ideograph + + + 215D3D + 91D0 + E98790 + East Asian ideograph + + + 215D3E + 91D1 + E98791 + East Asian ideograph + + + 215D3F + 91DD + E9879D + East Asian ideograph + + + 215D40 + 91D8 + E98798 + East Asian ideograph + + + 215D41 + 91D7 + E98797 + East Asian ideograph + + + 215D42 + 91DC + E9879C + East Asian ideograph + + + 215D43 + 91F5 + E987B5 + East Asian ideograph + + + 215D44 + 91E6 + E987A6 + East Asian ideograph + + + 215D45 + 91E3 + E987A3 + East Asian ideograph + + + 215D46 + 91E7 + E987A7 + East Asian ideograph + + + 215D47 + 9223 + E988A3 + East Asian ideograph + + + 215D48 + 920D + E9888D + East Asian ideograph + + + 215D49 + 9215 + E98895 + East Asian ideograph + + + 215D4A + 9209 + E98889 + East Asian ideograph + + + 215D4B + 9214 + E98894 + East Asian ideograph + + + 215D4C + 921E + E9889E + East Asian ideograph + + + 215D4D + 9210 + E98890 + East Asian ideograph + + + 215D4F + 9237 + E988B7 + East Asian ideograph + + + 215D50 + 9238 + E988B8 + East Asian ideograph + + + 215D51 + 923D + E988BD + East Asian ideograph + + + 215D52 + 923E + E988BE + East Asian ideograph + + + 215D53 + 9240 + E98980 + East Asian ideograph + + + 215D54 + 924B + E9898B + East Asian ideograph + + + 215D55 + 925B + E9899B + East Asian ideograph + + + 215D56 + 9264 + E989A4 + East Asian ideograph + + + 215D57 + 9251 + E98991 + East Asian ideograph + + + 215D58 + 9234 + E988B4 + East Asian ideograph (variant of EACC 4B5D58) + + + 215D59 + 9278 + E989B8 + East Asian ideograph + + + 215D5A + 9280 + E98A80 + East Asian ideograph + + + 215D5B + 92AC + E98AAC + East Asian ideograph + + + 215D5C + 9285 + E98A85 + East Asian ideograph + + + 215D5D + 9298 + E98A98 + East Asian ideograph + + + 215D5E + 9296 + E98A96 + East Asian ideograph + + + 215D5F + 927B + E989BB + East Asian ideograph + + + 215D60 + 9293 + E98A93 + East Asian ideograph + + + 215D61 + 929C + E98A9C + East Asian ideograph + + + 215D62 + 92C5 + E98B85 + East Asian ideograph + + + 215D63 + 92BB + E98ABB + East Asian ideograph + + + 215D64 + 92B3 + E98AB3 + East Asian ideograph + + + 215D65 + 92EA + E98BAA + East Asian ideograph + + + 215D66 + 92B7 + E98AB7 + East Asian ideograph + + + 215D67 + 92C1 + E98B81 + East Asian ideograph + + + 215D68 + 92E4 + E98BA4 + East Asian ideograph + + + 215D69 + 92BC + E98ABC + East Asian ideograph + + + 215D6A + 92D2 + E98B92 + East Asian ideograph + + + 215D6B + 9320 + E98CA0 + East Asian ideograph + + + 215D6C + 9336 + E98CB6 + East Asian ideograph + + + 215D6D + 92F8 + E98BB8 + East Asian ideograph + + + 215D6E + 9333 + E98CB3 + East Asian ideograph + + + 215D6F + 932F + E98CAF + East Asian ideograph + + + 215D70 + 9322 + E98CA2 + East Asian ideograph + + + 215D71 + 92FC + E98BBC + East Asian ideograph + + + 215D72 + 932B + E98CAB + East Asian ideograph + + + 215D73 + 931A + E98C9A + East Asian ideograph + + + 215D74 + 9304 + E98C84 + East Asian ideograph + + + 215D75 + 9310 + E98C90 + East Asian ideograph + + + 215D76 + 9326 + E98CA6 + East Asian ideograph + + + 215D77 + 934D + E98D8D + East Asian ideograph + + + 215D78 + 9382 + E98E82 + East Asian ideograph + + + 215D79 + 9375 + E98DB5 + East Asian ideograph + + + 215D7A + 9365 + E98DA5 + East Asian ideograph + + + 215D7C + 934B + E98D8B + East Asian ideograph + + + 215D7D + 9328 + E98CA8 + East Asian ideograph + + + 215D7E + 9370 + E98DB0 + East Asian ideograph + + + 215E21 + 937E + E98DBE + East Asian ideograph + + + 215E22 + 9318 + E98C98 + East Asian ideograph + + + 215E23 + 936C + E98DAC + East Asian ideograph + + + 215E24 + 935B + E98D9B + East Asian ideograph + + + 215E25 + 938A + E98E8A + East Asian ideograph + + + 215E26 + 9394 + E98E94 + East Asian ideograph + + + 215E27 + 93AE + E98EAE + East Asian ideograph + + + 215E28 + 9396 + E98E96 + East Asian ideograph + + + 215E29 + 93A2 + E98EA2 + East Asian ideograph + + + 215E2A + 93B3 + E98EB3 + East Asian ideograph + + + 215E2B + 93E1 + E98FA1 + East Asian ideograph + + + 215E2C + 93D1 + E98F91 + East Asian ideograph + + + 215E2D + 93D6 + E98F96 + East Asian ideograph + + + 215E2E + 93C3 + E98F83 + East Asian ideograph + + + 215E2F + 93DF + E98F9F + East Asian ideograph + + + 215E30 + 93D7 + E98F97 + East Asian ideograph + + + 215E31 + 93C8 + E98F88 + East Asian ideograph + + + 215E32 + 93E2 + E98FA2 + East Asian ideograph + + + 215E33 + 93DC + E98F9C + East Asian ideograph + + + 215E34 + 93E4 + E98FA4 + East Asian ideograph + + + 215E35 + 93DD + E98F9D + East Asian ideograph + + + 215E36 + 93CD + E98F8D + East Asian ideograph + + + 215E37 + 93D8 + E98F98 + East Asian ideograph + + + 215E39 + 9403 + E99083 + East Asian ideograph + + + 215E3A + 942E + E990AE + East Asian ideograph + + + 215E3B + 93FD + E98FBD + East Asian ideograph + + + 215E3C + 9433 + E990B3 + East Asian ideograph + + + 215E3D + 9435 + E990B5 + East Asian ideograph + + + 215E3E + 943A + E990BA + East Asian ideograph + + + 215E3F + 9438 + E990B8 + East Asian ideograph + + + 215E40 + 9432 + E990B2 + East Asian ideograph + + + 215E42 + 9451 + E99191 + East Asian ideograph + + + 215E43 + 9444 + E99184 + East Asian ideograph + + + 215E44 + 9463 + E991A3 + East Asian ideograph + + + 215E45 + 9460 + E991A0 + East Asian ideograph + + + 215E46 + 9472 + E991B2 + East Asian ideograph + + + 215E47 + 9470 + E991B0 + East Asian ideograph + + + 215E48 + 947E + E991BE + East Asian ideograph + + + 215E49 + 947C + E991BC + East Asian ideograph + + + 215E4A + 947D + E991BD + East Asian ideograph + + + 215E4B + 947F + E991BF + East Asian ideograph + + + 215E4C + 9577 + E995B7 + East Asian ideograph + + + 215E4D + 9580 + E99680 + East Asian ideograph + + + 215E4E + 9582 + E99682 + East Asian ideograph + + + 215E4F + 9583 + E99683 + East Asian ideograph + + + 215E50 + 9589 + E99689 + East Asian ideograph + + + 215E51 + 9594 + E99694 + East Asian ideograph + + + 215E52 + 958F + E9968F + East Asian ideograph + + + 215E53 + 958B + E9968B + East Asian ideograph + + + 215E54 + 9591 + E99691 + East Asian ideograph + + + 215E55 + 9593 + E99693 + East Asian ideograph + + + 215E56 + 9592 + E99692 + East Asian ideograph + + + 215E57 + 9598 + E99698 + East Asian ideograph + + + 215E58 + 95A1 + E996A1 + East Asian ideograph + + + 215E59 + 95A8 + E996A8 + East Asian ideograph + + + 215E5A + 95A9 + E996A9 + East Asian ideograph + + + 215E5B + 95A3 + E996A3 + East Asian ideograph + + + 215E5C + 95A5 + E996A5 + East Asian ideograph + + + 215E5D + 95A4 + E996A4 + East Asian ideograph + + + 215E5E + 95B1 + E996B1 + East Asian ideograph + + + 215E5F + 95AD + E996AD + East Asian ideograph + + + 215E60 + 95BB + E996BB + East Asian ideograph + + + 215E61 + 95CA + E9978A + East Asian ideograph + + + 215E62 + 95CB + E9978B + East Asian ideograph + + + 215E63 + 95CC + E9978C + East Asian ideograph + + + 215E64 + 95C8 + E99788 + East Asian ideograph + + + 215E65 + 95C6 + E99786 + East Asian ideograph + + + 215E67 + 95D6 + E99796 + East Asian ideograph + + + 215E68 + 95D0 + E99790 + East Asian ideograph + + + 215E69 + 95DC + E9979C + East Asian ideograph + + + 215E6A + 95E1 + E997A1 + East Asian ideograph + + + 215E6B + 95E2 + E997A2 + East Asian ideograph + + + 215E6C + 961C + E9989C + East Asian ideograph + + + 215E6D + 9621 + E998A1 + East Asian ideograph + + + 215E6E + 9632 + E998B2 + East Asian ideograph + + + 215E6F + 9631 + E998B1 + East Asian ideograph + + + 215E70 + 962E + E998AE + East Asian ideograph + + + 215E71 + 962A + E998AA + East Asian ideograph + + + 215E72 + 9640 + E99980 + East Asian ideograph + + + 215E73 + 963F + E998BF + East Asian ideograph + + + 215E74 + 963B + E998BB + East Asian ideograph + + + 215E75 + 9644 + E99984 + East Asian ideograph + + + 215E76 + 9650 + E99990 + East Asian ideograph + + + 215E77 + 964C + E9998C + East Asian ideograph + + + 215E78 + 964B + E9998B + East Asian ideograph + + + 215E79 + 964D + E9998D + East Asian ideograph + + + 215E7A + 9662 + E999A2 + East Asian ideograph + + + 215E7B + 9663 + E999A3 + East Asian ideograph + + + 215E7C + 965B + E9999B + East Asian ideograph + + + 215E7D + 9661 + E999A1 + East Asian ideograph + + + 215E7E + 965D + E9999D + East Asian ideograph + + + 215F21 + 9664 + E999A4 + East Asian ideograph + + + 215F22 + 966A + E999AA + East Asian ideograph + + + 215F23 + 9673 + E999B3 + East Asian ideograph + + + 215F24 + 9678 + E999B8 + East Asian ideograph + + + 215F25 + 9675 + E999B5 + East Asian ideograph + + + 215F26 + 9672 + E999B2 + East Asian ideograph + + + 215F27 + 9676 + E999B6 + East Asian ideograph + + + 215F28 + 9677 + E999B7 + East Asian ideograph + + + 215F29 + 9674 + E999B4 + East Asian ideograph + + + 215F2A + 9670 + E999B0 + East Asian ideograph + + + 215F2B + 968A + E99A8A + East Asian ideograph + + + 215F2C + 968E + E99A8E + East Asian ideograph + + + 215F2D + 968B + E99A8B + East Asian ideograph + + + 215F2E + 967D + E999BD + East Asian ideograph + + + 215F2F + 9685 + E99A85 + East Asian ideograph + + + 215F30 + 9686 + E99A86 + East Asian ideograph + + + 215F31 + 968D + E99A8D + East Asian ideograph + + + 215F32 + 9698 + E99A98 + East Asian ideograph + + + 215F33 + 9694 + E99A94 + East Asian ideograph + + + 215F34 + 9699 + E99A99 + East Asian ideograph + + + 215F35 + 9695 + E99A95 + East Asian ideograph + + + 215F36 + 969C + E99A9C + East Asian ideograph + + + 215F37 + 969B + E99A9B + East Asian ideograph + + + 215F38 + 96A7 + E99AA7 + East Asian ideograph + + + 215F39 + 96A8 + E99AA8 + East Asian ideograph + + + 215F3A + 96AA + E99AAA + East Asian ideograph + + + 215F3B + 96B1 + E99AB1 + East Asian ideograph + + + 215F3C + 96B4 + E99AB4 + East Asian ideograph + + + 215F3D + 96B8 + E99AB8 + East Asian ideograph + + + 215F3E + 96BB + E99ABB + East Asian ideograph + + + 215F3F + 96C0 + E99B80 + East Asian ideograph + + + 215F40 + 96C7 + E99B87 + East Asian ideograph + + + 215F41 + 96C6 + E99B86 + East Asian ideograph + + + 215F42 + 96C4 + E99B84 + East Asian ideograph + + + 215F43 + 96C1 + E99B81 + East Asian ideograph + + + 215F44 + 96C5 + E99B85 + East Asian ideograph + + + 215F45 + 96CD + E99B8D + East Asian ideograph + + + 215F46 + 96CB + E99B8B + East Asian ideograph + + + 215F47 + 96C9 + E99B89 + East Asian ideograph + + + 215F48 + 96CC + E99B8C + East Asian ideograph + + + 215F49 + 96D5 + E99B95 + East Asian ideograph + + + 215F4A + 96D6 + E99B96 + East Asian ideograph + + + 215F4B + 96DC + E99B9C + East Asian ideograph + + + 215F4C + 96DE + E99B9E + East Asian ideograph + + + 215F4D + 96DB + E99B9B + East Asian ideograph + + + 215F4E + 96D9 + E99B99 + East Asian ideograph + + + 215F4F + 96E2 + E99BA2 + East Asian ideograph + + + 215F50 + 96E3 + E99BA3 + East Asian ideograph (variant of EACC 4B5F50) + + + 215F51 + 96E8 + E99BA8 + East Asian ideograph + + + 215F52 + 96EA + E99BAA + East Asian ideograph + + + 215F53 + 96EF + E99BAF + East Asian ideograph + + + 215F54 + 96F2 + E99BB2 + East Asian ideograph + + + 215F55 + 96FB + E99BBB + East Asian ideograph + + + 215F56 + 96F7 + E99BB7 + East Asian ideograph + + + 215F57 + 96F9 + E99BB9 + East Asian ideograph + + + 215F58 + 96F6 + E99BB6 + East Asian ideograph + + + 215F59 + 9700 + E99C80 + East Asian ideograph + + + 215F5A + 9707 + E99C87 + East Asian ideograph + + + 215F5B + 9704 + E99C84 + East Asian ideograph + + + 215F5C + 9709 + E99C89 + East Asian ideograph + + + 215F5D + 9706 + E99C86 + East Asian ideograph + + + 215F5E + 9711 + E99C91 + East Asian ideograph + + + 215F5F + 970E + E99C8E + East Asian ideograph + + + 215F60 + 9716 + E99C96 + East Asian ideograph + + + 215F61 + 970F + E99C8F + East Asian ideograph + + + 215F62 + 970D + E99C8D + East Asian ideograph + + + 215F63 + 9713 + E99C93 + East Asian ideograph + + + 215F64 + 971C + E99C9C + East Asian ideograph + + + 215F65 + 971E + E99C9E + East Asian ideograph + + + 215F66 + 972A + E99CAA + East Asian ideograph + + + 215F67 + 9727 + E99CA7 + East Asian ideograph + + + 215F68 + 9738 + E99CB8 + East Asian ideograph + + + 215F69 + 9739 + E99CB9 + East Asian ideograph + + + 215F6A + 9732 + E99CB2 + East Asian ideograph + + + 215F6B + 973D + E99CBD + East Asian ideograph + + + 215F6C + 973E + E99CBE + East Asian ideograph + + + 215F6D + 9744 + E99D84 + East Asian ideograph + + + 215F6E + 9742 + E99D82 + East Asian ideograph + + + 215F6F + 9748 + E99D88 + East Asian ideograph + + + 215F70 + 9751 + E99D91 + East Asian ideograph + + + 215F71 + 9756 + E99D96 + East Asian ideograph (variant of EACC 4B5F71) + + + 215F72 + 975B + E99D9B + East Asian ideograph (variant of EACC 4B5F72) + + + 215F73 + 975C + E99D9C + East Asian ideograph + + + 215F74 + 975E + E99D9E + East Asian ideograph + + + 215F75 + 9760 + E99DA0 + East Asian ideograph + + + 215F76 + 9761 + E99DA1 + East Asian ideograph + + + 215F78 + 9766 + E99DA6 + East Asian ideograph + + + 215F79 + 9768 + E99DA8 + East Asian ideograph + + + 215F7A + 9769 + E99DA9 + East Asian ideograph + + + 215F7B + 9776 + E99DB6 + East Asian ideograph + + + 215F7C + 9774 + E99DB4 + East Asian ideograph + + + 215F7D + 977C + E99DBC + East Asian ideograph + + + 215F7E + 9785 + E99E85 + East Asian ideograph + + + 216021 + 978D + E99E8D + East Asian ideograph + + + 216022 + 978B + E99E8B + East Asian ideograph + + + 216023 + 978F + E99E8F + East Asian ideograph + + + 216024 + 9798 + E99E98 + East Asian ideograph + + + 216025 + 97A0 + E99EA0 + East Asian ideograph + + + 216026 + 97A3 + E99EA3 + East Asian ideograph + + + 216027 + 97A6 + E99EA6 + East Asian ideograph + + + 216028 + 97AD + E99EAD + East Asian ideograph + + + 216029 + 97C3 + E99F83 + East Asian ideograph + + + 21602A + 97C1 + E99F81 + East Asian ideograph + + + 21602B + 97C6 + E99F86 + East Asian ideograph + + + 21602C + 97CB + E99F8B + East Asian ideograph + + + 21602D + 97CC + E99F8C + East Asian ideograph + + + 21602E + 97D3 + E99F93 + East Asian ideograph + + + 21602F + 97DC + E99F9C + East Asian ideograph + + + 216030 + 97ED + E99FAD + East Asian ideograph + + + 216031 + 97F3 + E99FB3 + East Asian ideograph + + + 216032 + 7AE0 + E7ABA0 + East Asian ideograph + + + 216033 + 7ADF + E7AB9F + East Asian ideograph + + + 216034 + 97F6 + E99FB6 + East Asian ideograph + + + 216035 + 97FB + E99FBB + East Asian ideograph + + + 216036 + 97FF + E99FBF + East Asian ideograph (variant of EACC 456036) + + + 216037 + 9801 + E9A081 + East Asian ideograph + + + 216038 + 9802 + E9A082 + East Asian ideograph + + + 216039 + 9803 + E9A083 + East Asian ideograph + + + 21603A + 9805 + E9A085 + East Asian ideograph + + + 21603B + 9806 + E9A086 + East Asian ideograph + + + 21603C + 9808 + E9A088 + East Asian ideograph + + + 21603D + 9810 + E9A090 + East Asian ideograph + + + 21603E + 980A + E9A08A + East Asian ideograph + + + 21603F + 9811 + E9A091 + East Asian ideograph + + + 216040 + 9813 + E9A093 + East Asian ideograph + + + 216041 + 9812 + E9A092 + East Asian ideograph + + + 216042 + 980C + E9A08C + East Asian ideograph + + + 216043 + 9817 + E9A097 + East Asian ideograph + + + 216044 + 9818 + E9A098 + East Asian ideograph (variant of EACC 4B6044) + + + 216045 + 9821 + E9A0A1 + East Asian ideograph + + + 216046 + 982D + E9A0AD + East Asian ideograph + + + 216047 + 9830 + E9A0B0 + East Asian ideograph + + + 216048 + 9838 + E9A0B8 + East Asian ideograph + + + 216049 + 983B + E9A0BB + East Asian ideograph + + + 21604A + 9839 + E9A0B9 + East Asian ideograph + + + 21604B + 9837 + E9A0B7 + East Asian ideograph + + + 21604C + 9824 + E9A0A4 + East Asian ideograph + + + 21604D + 9846 + E9A186 + East Asian ideograph + + + 21604E + 9854 + E9A194 + East Asian ideograph + + + 21604F + 984D + E9A18D + East Asian ideograph + + + 216050 + 984C + E9A18C + East Asian ideograph + + + 216051 + 984E + E9A18E + East Asian ideograph + + + 216052 + 9853 + E9A193 + East Asian ideograph + + + 216053 + 985E + E9A19E + East Asian ideograph (variant of EACC 4B6053) + + + 216054 + 985A + E9A19A + East Asian ideograph + + + 216055 + 9858 + E9A198 + East Asian ideograph + + + 216056 + 9867 + E9A1A7 + East Asian ideograph + + + 216057 + 986B + E9A1AB + East Asian ideograph + + + 216058 + 986F + E9A1AF + East Asian ideograph + + + 216059 + 9871 + E9A1B1 + East Asian ideograph + + + 21605A + 9870 + E9A1B0 + East Asian ideograph + + + 21605B + 98A8 + E9A2A8 + East Asian ideograph + + + 21605C + 98AF + E9A2AF + East Asian ideograph + + + 21605D + 98B1 + E9A2B1 + East Asian ideograph + + + 21605E + 98B3 + E9A2B3 + East Asian ideograph + + + 21605F + 98B6 + E9A2B6 + East Asian ideograph + + + 216060 + 98BA + E9A2BA + East Asian ideograph + + + 216061 + 98BC + E9A2BC + East Asian ideograph + + + 216062 + 98C4 + E9A384 + East Asian ideograph + + + 216063 + 98DB + E9A39B + East Asian ideograph + + + 216064 + 98DF + E9A39F + East Asian ideograph + + + 216065 + 98E2 + E9A3A2 + East Asian ideograph + + + 216066 + 98E7 + E9A3A7 + East Asian ideograph + + + 216067 + 98E9 + E9A3A9 + East Asian ideograph + + + 216068 + 98ED + E9A3AD + East Asian ideograph + + + 216069 + 98EA + E9A3AA + East Asian ideograph + + + 21606A + 98EE + E9A3AE + East Asian ideograph + + + 21606B + 98EF + E9A3AF + East Asian ideograph + + + 21606C + 98FC + E9A3BC + East Asian ideograph + + + 21606D + 98F4 + E9A3B4 + East Asian ideograph + + + 21606E + 98FD + E9A3BD + East Asian ideograph + + + 21606F + 98FE + E9A3BE + East Asian ideograph + + + 216070 + 9903 + E9A483 + East Asian ideograph + + + 216071 + 990A + E9A48A + East Asian ideograph + + + 216072 + 990C + E9A48C + East Asian ideograph + + + 216073 + 9909 + E9A489 + East Asian ideograph + + + 216074 + 9910 + E9A490 + East Asian ideograph + + + 216075 + 9912 + E9A492 + East Asian ideograph + + + 216076 + 9918 + E9A498 + East Asian ideograph + + + 216077 + 9913 + E9A493 + East Asian ideograph + + + 216078 + 9905 + E9A485 + East Asian ideograph + + + 216079 + 9928 + E9A4A8 + East Asian ideograph + + + 21607A + 991E + E9A49E + East Asian ideograph + + + 21607B + 991B + E9A49B + East Asian ideograph + + + 21607C + 9921 + E9A4A1 + East Asian ideograph + + + 21607D + 9935 + E9A4B5 + East Asian ideograph + + + 21607E + 993E + E9A4BE + East Asian ideograph + + + 216121 + 993F + E9A4BF + East Asian ideograph + + + 216122 + 993D + E9A4BD + East Asian ideograph + + + 216123 + 9945 + E9A585 + East Asian ideograph + + + 216124 + 9952 + E9A592 + East Asian ideograph + + + 216125 + 9951 + E9A591 + East Asian ideograph + + + 216126 + 995C + E9A59C + East Asian ideograph + + + 216127 + 995E + E9A59E + East Asian ideograph + + + 216128 + 9996 + E9A696 + East Asian ideograph + + + 216129 + 9999 + E9A699 + East Asian ideograph + + + 21612A + 99A5 + E9A6A5 + East Asian ideograph + + + 21612B + 99A8 + E9A6A8 + East Asian ideograph + + + 21612C + 99AC + E9A6AC + East Asian ideograph + + + 21612D + 99AE + E9A6AE + East Asian ideograph + + + 21612E + 99AD + E9A6AD + East Asian ideograph + + + 21612F + 99B3 + E9A6B3 + East Asian ideograph + + + 216130 + 99B1 + E9A6B1 + East Asian ideograph + + + 216131 + 99B4 + E9A6B4 + East Asian ideograph + + + 216132 + 99C1 + E9A781 + East Asian ideograph + + + 216133 + 99D0 + E9A790 + East Asian ideograph + + + 216134 + 99DD + E9A79D + East Asian ideograph + + + 216135 + 99D5 + E9A795 + East Asian ideograph + + + 216136 + 99DF + E9A79F + East Asian ideograph + + + 216137 + 99DB + E9A79B + East Asian ideograph + + + 216138 + 99D2 + E9A792 + East Asian ideograph + + + 216139 + 99D9 + E9A799 + East Asian ideograph + + + 21613A + 99D1 + E9A791 + East Asian ideograph + + + 21613B + 99ED + E9A7AD + East Asian ideograph + + + 21613C + 99F1 + E9A7B1 + East Asian ideograph + + + 21613D + 9A01 + E9A881 + East Asian ideograph + + + 21613E + 99FF + E9A7BF + East Asian ideograph + + + 21613F + 99E2 + E9A7A2 + East Asian ideograph + + + 216140 + 9A0E + E9A88E + East Asian ideograph + + + 216141 + 9A19 + E9A899 + East Asian ideograph + + + 216142 + 9A16 + E9A896 + East Asian ideograph + + + 216143 + 9A2B + E9A8AB + East Asian ideograph + + + 216144 + 9A30 + E9A8B0 + East Asian ideograph + + + 216145 + 9A37 + E9A8B7 + East Asian ideograph + + + 216146 + 9A43 + E9A983 + East Asian ideograph + + + 216147 + 9A45 + E9A985 + East Asian ideograph + + + 216148 + 9A40 + E9A980 + East Asian ideograph + + + 216149 + 9A3E + E9A8BE + East Asian ideograph + + + 21614A + 9A55 + E9A995 + East Asian ideograph + + + 21614B + 9A5A + E9A99A + East Asian ideograph + + + 21614C + 9A5B + E9A99B + East Asian ideograph + + + 21614D + 9A57 + E9A997 + East Asian ideograph + + + 21614E + 9A5F + E9A99F + East Asian ideograph + + + 21614F + 9A62 + E9A9A2 + East Asian ideograph + + + 216150 + 9A65 + E9A9A5 + East Asian ideograph + + + 216151 + 9A6A + E9A9AA + East Asian ideograph + + + 216152 + 9AA8 + E9AAA8 + East Asian ideograph + + + 216153 + 9AAF + E9AAAF + East Asian ideograph + + + 216154 + 9AB0 + E9AAB0 + East Asian ideograph + + + 216155 + 9AB7 + E9AAB7 + East Asian ideograph + + + 216156 + 9AB8 + E9AAB8 + East Asian ideograph + + + 216157 + 9ABC + E9AABC + East Asian ideograph + + + 216158 + 9ACF + E9AB8F + East Asian ideograph + + + 216159 + 9AD3 + E9AB93 + East Asian ideograph + + + 21615A + 9AD4 + E9AB94 + East Asian ideograph + + + 21615B + 9AD2 + E9AB92 + East Asian ideograph + + + 21615C + 9AD8 + E9AB98 + East Asian ideograph + + + 21615D + 9AE5 + E9ABA5 + East Asian ideograph + + + 21615F + 9AEE + E9ABAE + East Asian ideograph + + + 216160 + 9AFB + E9ABBB + East Asian ideograph + + + 216161 + 9AED + E9ABAD + East Asian ideograph + + + 216162 + 9B03 + E9AC83 + East Asian ideograph + + + 216163 + 9B06 + E9AC86 + East Asian ideograph + + + 216164 + 9B0D + E9AC8D + East Asian ideograph + + + 216165 + 9B1A + E9AC9A + East Asian ideograph + + + 216166 + 9B22 + E9ACA2 + East Asian ideograph + + + 216167 + 9B25 + E9ACA5 + East Asian ideograph + + + 216168 + 9B27 + E9ACA7 + East Asian ideograph + + + 21616A + 9B31 + E9ACB1 + East Asian ideograph + + + 21616B + 9B32 + E9ACB2 + East Asian ideograph + + + 21616C + 9B3C + E9ACBC + East Asian ideograph + + + 21616D + 9B41 + E9AD81 + East Asian ideograph + + + 21616E + 9B42 + E9AD82 + East Asian ideograph + + + 21616F + 9B45 + E9AD85 + East Asian ideograph + + + 216170 + 9B44 + E9AD84 + East Asian ideograph + + + 216171 + 9B4F + E9AD8F + East Asian ideograph + + + 216172 + 9B54 + E9AD94 + East Asian ideograph + + + 216173 + 9B58 + E9AD98 + East Asian ideograph + + + 216174 + 9B5A + E9AD9A + East Asian ideograph + + + 216175 + 9B77 + E9ADB7 + East Asian ideograph + + + 216176 + 9B6F + E9ADAF + East Asian ideograph + + + 216177 + 9B91 + E9AE91 + East Asian ideograph + + + 216178 + 9BAB + E9AEAB + East Asian ideograph + + + 216179 + 9BAE + E9AEAE + East Asian ideograph + + + 21617A + 9BAA + E9AEAA + East Asian ideograph + + + 21617B + 9BCA + E9AF8A + East Asian ideograph + + + 21617C + 9BC9 + E9AF89 + East Asian ideograph + + + 21617D + 9BE8 + E9AFA8 + East Asian ideograph + + + 21617E + 9BE7 + E9AFA7 + East Asian ideograph + + + 216221 + 9C13 + E9B093 + East Asian ideograph + + + 216222 + 9C0D + E9B08D + East Asian ideograph + + + 216223 + 9BFD + E9AFBD + East Asian ideograph + + + 216224 + 9C2D + E9B0AD + East Asian ideograph + + + 216225 + 9C25 + E9B0A5 + East Asian ideograph + + + 216226 + 9C31 + E9B0B1 + East Asian ideograph + + + 216227 + 9C3E + E9B0BE + East Asian ideograph + + + 216228 + 9C3B + E9B0BB + East Asian ideograph + + + 216229 + 9C54 + E9B194 + East Asian ideograph + + + 21622A + 9C57 + E9B197 + East Asian ideograph + + + 21622B + 9C56 + E9B196 + East Asian ideograph + + + 21622C + 9C49 + E9B189 + East Asian ideograph + + + 21622D + 9C77 + E9B1B7 + East Asian ideograph + + + 21622E + 9C78 + E9B1B8 + East Asian ideograph + + + 21622F + 9CE5 + E9B3A5 + East Asian ideograph + + + 216230 + 9CE9 + E9B3A9 + East Asian ideograph + + + 216231 + 9CF6 + E9B3B6 + East Asian ideograph + + + 216232 + 9CF4 + E9B3B4 + East Asian ideograph + + + 216233 + 9CF3 + E9B3B3 + East Asian ideograph + + + 216234 + 9D06 + E9B486 + East Asian ideograph + + + 216235 + 9D09 + E9B489 + East Asian ideograph + + + 216236 + 9D15 + E9B495 + East Asian ideograph + + + 216237 + 9D23 + E9B4A3 + East Asian ideograph + + + 216238 + 9D28 + E9B4A8 + East Asian ideograph + + + 216239 + 9D26 + E9B4A6 + East Asian ideograph + + + 21623A + 9D1B + E9B49B + East Asian ideograph + + + 21623B + 9D12 + E9B492 + East Asian ideograph (variant of EACC 4B623B) + + + 21623C + 9D3B + E9B4BB + East Asian ideograph + + + 21623D + 9D3F + E9B4BF + East Asian ideograph + + + 21623E + 9D61 + E9B5A1 + East Asian ideograph + + + 21623F + 9D51 + E9B591 + East Asian ideograph + + + 216240 + 9D60 + E9B5A0 + East Asian ideograph + + + 216241 + 9D5D + E9B59D + East Asian ideograph + + + 216242 + 9D89 + E9B689 + East Asian ideograph + + + 216243 + 9D72 + E9B5B2 + East Asian ideograph + + + 216244 + 9D6A + E9B5AA + East Asian ideograph + + + 216245 + 9D6C + E9B5AC + East Asian ideograph + + + 216246 + 9DB4 + E9B6B4 + East Asian ideograph + + + 216247 + 9DAF + E9B6AF + East Asian ideograph + + + 216248 + 9DC2 + E9B782 + East Asian ideograph + + + 216249 + 9DD3 + E9B793 + East Asian ideograph + + + 21624A + 9DD7 + E9B797 + East Asian ideograph + + + 21624B + 9DE5 + E9B7A5 + East Asian ideograph + + + 21624C + 9DF9 + E9B7B9 + East Asian ideograph + + + 21624D + 9DFA + E9B7BA + East Asian ideograph + + + 21624E + 9E1A + E9B89A + East Asian ideograph + + + 21624F + 9E1E + E9B89E + East Asian ideograph + + + 216250 + 9E79 + E9B9B9 + East Asian ideograph + + + 216251 + 9E7D + E9B9BD + East Asian ideograph + + + 216252 + 9E7C + E9B9BC + East Asian ideograph + + + 216253 + 9E7F + E9B9BF + East Asian ideograph + + + 216254 + 9E82 + E9BA82 + East Asian ideograph + + + 216255 + 9E8B + E9BA8B + East Asian ideograph + + + 216256 + 9E97 + E9BA97 + East Asian ideograph + + + 216257 + 9E92 + E9BA92 + East Asian ideograph + + + 216258 + 9E93 + E9BA93 + East Asian ideograph + + + 216259 + 9E9D + E9BA9D + East Asian ideograph + + + 21625A + 9E9F + E9BA9F + East Asian ideograph + + + 21625B + 9EA5 + E9BAA5 + East Asian ideograph + + + 21625C + 9EA9 + E9BAA9 + East Asian ideograph + + + 21625D + 9EB4 + E9BAB4 + East Asian ideograph + + + 21625E + 9EB5 + E9BAB5 + East Asian ideograph + + + 21625F + 9EBB + E9BABB + East Asian ideograph + + + 216260 + 9EBC + E9BABC + East Asian ideograph + + + 216261 + 9EBE + E9BABE + East Asian ideograph + + + 216262 + 9EC3 + E9BB83 + East Asian ideograph + + + 216263 + 9ECD + E9BB8D + East Asian ideograph + + + 216264 + 9ECE + E9BB8E + East Asian ideograph + + + 216265 + 9ECF + E9BB8F + East Asian ideograph + + + 216266 + 9ED1 + E9BB91 + East Asian ideograph + + + 216267 + 58A8 + E5A2A8 + East Asian ideograph + + + 216268 + 9ED8 + E9BB98 + East Asian ideograph + + + 216269 + 9ED4 + E9BB94 + East Asian ideograph + + + 21626A + 9EDE + E9BB9E + East Asian ideograph + + + 21626B + 9EDC + E9BB9C + East Asian ideograph + + + 21626C + 9EDB + E9BB9B + East Asian ideograph + + + 21626D + 9EDD + E9BB9D + East Asian ideograph + + + 21626E + 9EE0 + E9BBA0 + East Asian ideograph + + + 21626F + 9EE8 + E9BBA8 + East Asian ideograph + + + 216270 + 9EEF + E9BBAF + East Asian ideograph + + + 216271 + 9EF4 + E9BBB4 + East Asian ideograph + + + 216272 + 9EF7 + E9BBB7 + East Asian ideograph + + + 216273 + 9F07 + E9BC87 + East Asian ideograph + + + 216274 + 9F0E + E9BC8E + East Asian ideograph + + + 216275 + 9F13 + E9BC93 + East Asian ideograph + + + 216276 + 9F15 + E9BC95 + East Asian ideograph + + + 216277 + 9F19 + E9BC99 + East Asian ideograph + + + 216278 + 9F20 + E9BCA0 + East Asian ideograph + + + 216279 + 9F2C + E9BCAC + East Asian ideograph + + + 21627A + 9F34 + E9BCB4 + East Asian ideograph + + + 21627B + 9F3B + E9BCBB + East Asian ideograph + + + 21627C + 9F3E + E9BCBE + East Asian ideograph + + + 21627D + 9F4A + E9BD8A + East Asian ideograph + + + 21627E + 9F4B + E9BD8B + East Asian ideograph + + + 216321 + 9F52 + E9BD92 + East Asian ideograph + + + 216322 + 9F5F + E9BD9F + East Asian ideograph + + + 216323 + 9F63 + E9BDA3 + East Asian ideograph + + + 216324 + 9F61 + E9BDA1 + East Asian ideograph (variant of EACC 456324) + + + 216325 + 9F66 + E9BDA6 + East Asian ideograph + + + 216326 + 9F5C + E9BD9C + East Asian ideograph + + + 216327 + 9F6C + E9BDAC + East Asian ideograph + + + 216328 + 9F6A + E9BDAA + East Asian ideograph + + + 216329 + 9F77 + E9BDB7 + East Asian ideograph + + + 21632A + 9F72 + E9BDB2 + East Asian ideograph + + + 21632B + 9F8D + E9BE8D + East Asian ideograph + + + 21632C + 9F94 + E9BE94 + East Asian ideograph + + + 21632D + 9F9C + E9BE9C + East Asian ideograph + + + 216330 + 8288 + E88A88 + East Asian ideograph + + + 216424 + 4E0F + E4B88F + East Asian ideograph + + + 216425 + 5187 + E58687 + East Asian ideograph + + + 216429 + 4E28 + E4B8A8 + East Asian ideograph + + + 21642E + 4E31 + E4B8B1 + East Asian ideograph + + + 216431 + 4E36 + E4B8B6 + East Asian ideograph + + + 216433 + 4E3F + E4B8BF + East Asian ideograph + + + 216434 + 4E42 + E4B982 + East Asian ideograph + + + 216437 + 738D + E78E8D + East Asian ideograph + + + 21643C + 4E5C + E4B99C + East Asian ideograph + + + 21643F + 6C39 + E6B0B9 + East Asian ideograph + + + 216446 + 4E85 + E4BA85 + East Asian ideograph + + + 216450 + 4EA0 + E4BAA0 + East Asian ideograph + + + 216451 + 4EA2 + E4BAA2 + East Asian ideograph + + + 216452 + 4EB3 + E4BAB3 + East Asian ideograph + + + 216455 + 4EB6 + E4BAB6 + East Asian ideograph (variant of EACC 4B6455) + + + 216458 + 4EB9 + E4BAB9 + East Asian ideograph + + + 21645A + 4EBC + E4BABC + East Asian ideograph + + + 21645E + 4EC9 + E4BB89 + East Asian ideograph + + + 216461 + 4EC8 + E4BB88 + East Asian ideograph + + + 216462 + 4ECE + E4BB8E + East Asian ideograph + + + 216463 + 4EE8 + E4BBA8 + East Asian ideograph + + + 21646B + 4EE1 + E4BBA1 + East Asian ideograph + + + 216472 + 4F08 + E4BC88 + East Asian ideograph + + + 216473 + 4F0E + E4BC8E + East Asian ideograph + + + 216475 + 4F03 + E4BC83 + East Asian ideograph + + + 21647C + 4F22 + E4BCA2 + East Asian ideograph + + + 216527 + 4EF5 + E4BBB5 + East Asian ideograph + + + 216528 + 4F07 + E4BC87 + East Asian ideograph + + + 21652A + 4F00 + E4BC80 + East Asian ideograph + + + 21652C + 4F0B + E4BC8B + East Asian ideograph + + + 216532 + 4F3B + E4BCBB + East Asian ideograph + + + 216536 + 4F58 + E4BD98 + East Asian ideograph + + + 216537 + 4F62 + E4BDA2 + East Asian ideograph + + + 216539 + 4F64 + E4BDA4 + East Asian ideograph + + + 21653A + 4F49 + E4BD89 + East Asian ideograph + + + 21653F + 4F3E + E4BCBE + East Asian ideograph + + + 216540 + 4F66 + E4BDA6 + East Asian ideograph + + + 216544 + 4F67 + E4BDA7 + East Asian ideograph + + + 21654D + 4F68 + E4BDA8 + East Asian ideograph + + + 21654E + 4F5A + E4BD9A + East Asian ideograph + + + 21654F + 4F5F + E4BD9F + East Asian ideograph + + + 216556 + 4F82 + E4BE82 + East Asian ideograph + + + 216557 + 4F7C + E4BDBC + East Asian ideograph + + + 21655A + 4F98 + E4BE98 + East Asian ideograph + + + 21655B + 4F92 + E4BE92 + East Asian ideograph + + + 21655C + 4F7D + E4BDBD + East Asian ideograph + + + 216560 + 4F80 + E4BE80 + East Asian ideograph + + + 216561 + 4F74 + E4BDB4 + East Asian ideograph + + + 216562 + 4F76 + E4BDB6 + East Asian ideograph + + + 216564 + 4FA2 + E4BEA2 + East Asian ideograph + + + 216566 + 4F91 + E4BE91 + East Asian ideograph + + + 216567 + 4F95 + E4BE95 + East Asian ideograph + + + 21656C + 4F4C + E4BD8C + East Asian ideograph + + + 21656D + 4F97 + E4BE97 + East Asian ideograph + + + 21656E + 4F94 + E4BE94 + East Asian ideograph + + + 216570 + 4F79 + E4BDB9 + East Asian ideograph + + + 216571 + 4F9A + E4BE9A + East Asian ideograph + + + 216572 + 4F81 + E4BE81 + East Asian ideograph + + + 216573 + 4F78 + E4BDB8 + East Asian ideograph + + + 216576 + 4F9C + E4BE9C + East Asian ideograph + + + 216577 + 4F90 + E4BE90 + East Asian ideograph + + + 21657B + 4F7A + E4BDBA + East Asian ideograph + + + 21657C + 4FCD + E4BF8D + East Asian ideograph + + + 216622 + 4FE4 + E4BFA4 + East Asian ideograph + + + 216626 + 4FB7 + E4BEB7 + East Asian ideograph + + + 216627 + 4FC5 + E4BF85 + East Asian ideograph + + + 216629 + 4FC9 + E4BF89 + East Asian ideograph + + + 21662A + 4FE5 + E4BFA5 + East Asian ideograph + + + 21662C + 4FE7 + E4BFA7 + East Asian ideograph + + + 216633 + 4FDC + E4BF9C + East Asian ideograph + + + 216635 + 4FD4 + E4BF94 + East Asian ideograph + + + 216637 + 4FC1 + E4BF81 + East Asian ideograph + + + 21663B + 4FDB + E4BF9B + East Asian ideograph + + + 21663E + 4FC6 + E4BF86 + East Asian ideograph + + + 216643 + 4FB9 + E4BEB9 + East Asian ideograph + + + 216646 + 501E + E5809E + East Asian ideograph + + + 216648 + 503F + E580BF + East Asian ideograph + + + 216649 + 5005 + E58085 + East Asian ideograph + + + 21664C + 5007 + E58087 + East Asian ideograph + + + 21664D + 5013 + E58093 + East Asian ideograph + + + 21664E + 5022 + E580A2 + East Asian ideograph + + + 216652 + 4FF5 + E4BFB5 + East Asian ideograph + + + 216659 + 4FF4 + E4BFB4 + East Asian ideograph + + + 21665B + 5037 + E580B7 + East Asian ideograph + + + 21665E + 502E + E580AE + East Asian ideograph + + + 216661 + 4FF6 + E4BFB6 + East Asian ideograph + + + 216662 + 501C + E5809C + East Asian ideograph + + + 216666 + 502C + E580AC + East Asian ideograph + + + 216669 + 5010 + E58090 + East Asian ideograph + + + 216679 + 503D + E580BD + East Asian ideograph + + + 216722 + 506F + E581AF + East Asian ideograph + + + 216723 + 5050 + E58190 + East Asian ideograph + + + 216725 + 5070 + E581B0 + East Asian ideograph + + + 216729 + 5053 + E58193 + East Asian ideograph + + + 21672A + 506A + E581AA + East Asian ideograph + + + 21672C + 5056 + E58196 + East Asian ideograph + + + 216731 + 506D + E581AD + East Asian ideograph + + + 216738 + 505D + E5819D + East Asian ideograph + + + 216739 + 5048 + E58188 + East Asian ideograph + + + 21673B + 5058 + E58198 + East Asian ideograph + + + 21673C + 5072 + E581B2 + East Asian ideograph + + + 216741 + 5041 + E58181 + East Asian ideograph + + + 216746 + 5015 + E58095 + East Asian ideograph + + + 216748 + 507A + E581BA + East Asian ideograph + + + 21674A + 506C + E581AC + East Asian ideograph + + + 21674B + 505F + E5819F + East Asian ideograph + + + 21674D + 506B + E581AB + East Asian ideograph + + + 21674E + 5094 + E58294 + East Asian ideograph + + + 216750 + 509E + E5829E + East Asian ideograph + + + 216752 + 509B + E5829B + East Asian ideograph + + + 216753 + 509A + E5829A + East Asian ideograph + + + 216757 + 50A3 + E582A3 + East Asian ideograph + + + 21675A + 508C + E5828C + East Asian ideograph + + + 21675C + 5088 + E58288 + East Asian ideograph + + + 216762 + 508E + E5828E + East Asian ideograph + + + 216764 + 5095 + E58295 + East Asian ideograph + + + 216767 + 50A6 + E582A6 + East Asian ideograph + + + 21676A + 5092 + E58292 + East Asian ideograph + + + 21676C + 509C + E5829C + East Asian ideograph + + + 216771 + 50C7 + E58387 + East Asian ideograph + + + 216775 + 50C9 + E58389 + East Asian ideograph + + + 21677B + 50CA + E5838A + East Asian ideograph + + + 21677C + 50B4 + E582B4 + East Asian ideograph + + + 216822 + 50C2 + E58382 + East Asian ideograph + + + 21682C + 50BA + E582BA + East Asian ideograph + + + 21682E + 50CD + E5838D + East Asian ideograph + + + 216832 + 50D4 + E58394 + East Asian ideograph + + + 216834 + 50EF + E583AF + East Asian ideograph + + + 216835 + 50E6 + E583A6 + East Asian ideograph + + + 21683A + 50F4 + E583B4 + East Asian ideograph + + + 21683B + 50CE + E5838E + East Asian ideograph + + + 21683C + 50DD + E5839D + East Asian ideograph + + + 216841 + 50F3 + E583B3 + East Asian ideograph + + + 216842 + 50E8 + E583A8 + East Asian ideograph + + + 216844 + 50F0 + E583B0 + East Asian ideograph + + + 216846 + 50D9 + E58399 + East Asian ideograph + + + 216855 + 50EC + E583AC + East Asian ideograph + + + 21685B + 510E + E5848E + East Asian ideograph + + + 21685F + 5105 + E58485 + East Asian ideograph + + + 216861 + 50FC + E583BC + East Asian ideograph + + + 216865 + 5106 + E58486 + East Asian ideograph + + + 216866 + 5107 + E58487 + East Asian ideograph + + + 216867 + 510F + E5848F + East Asian ideograph + + + 216868 + 50FE + E583BE + East Asian ideograph + + + 216869 + 510B + E5848B + East Asian ideograph + + + 21686A + 50FD + E583BD + East Asian ideograph + + + 21686D + 5101 + E58481 + East Asian ideograph + + + 216871 + 5115 + E58495 + East Asian ideograph + + + 216872 + 5113 + E58493 + East Asian ideograph + + + 216878 + 511A + E5849A + East Asian ideograph + + + 216879 + 9797 + E99E97 + East Asian ideograph + + + 21687E + 5126 + E584A6 + East Asian ideograph + + + 216929 + 5124 + E584A4 + East Asian ideograph + + + 21692B + 5129 + E584A9 + East Asian ideograph + + + 216930 + 5131 + E584B1 + East Asian ideograph + + + 21693E + 5135 + E584B5 + East Asian ideograph + + + 216940 + 5133 + E584B3 + East Asian ideograph + + + 216944 + 513A + E584BA + East Asian ideograph + + + 216947 + 5139 + E584B9 + East Asian ideograph + + + 216948 + 513B + E584BB + East Asian ideograph + + + 216951 + 5159 + E58599 + East Asian ideograph + + + 216952 + 515B + E5859B + East Asian ideograph + + + 216955 + 515D + E5859D + East Asian ideograph + + + 216956 + 515E + E5859E + East Asian ideograph + + + 216958 + 515F + E5859F + East Asian ideograph + + + 216959 + 5161 + E585A1 + East Asian ideograph + + + 21695C + 5163 + E585A3 + East Asian ideograph + + + 216967 + 5182 + E58682 + East Asian ideograph + + + 216969 + 5184 + E58684 + East Asian ideograph + + + 21696E + 518F + E5868F + East Asian ideograph + + + 216970 + 5194 + E58694 + East Asian ideograph + + + 216971 + 5193 + E58693 + East Asian ideograph + + + 216975 + 5196 + E58696 + East Asian ideograph + + + 21697B + 51A1 + E586A1 + East Asian ideograph + + + 21697C + 51A3 + E586A3 + East Asian ideograph + + + 216A22 + 51AA + E586AA + East Asian ideograph + + + 216A23 + 51AB + E586AB + East Asian ideograph + + + 216A26 + 51B1 + E586B1 + East Asian ideograph + + + 216A35 + 51BC + E586BC + East Asian ideograph + + + 216A43 + 51CA + E5878A + East Asian ideograph + + + 216A46 + 51C7 + E58787 + East Asian ideograph + + + 216A4E + 51D1 + E58791 + East Asian ideograph + + + 216A4F + 51D0 + E58790 + East Asian ideograph + + + 216A54 + 51D3 + E58793 + East Asian ideograph + + + 216A63 + 51D9 + E58799 + East Asian ideograph + + + 216A66 + 51DF + E5879F + East Asian ideograph + + + 216A68 + 51E2 + E587A2 + East Asian ideograph + + + 216A73 + 5160 + E585A0 + East Asian ideograph + + + 216A78 + 51F5 + E587B5 + East Asian ideograph + + + 216A79 + 51F7 + E587B7 + East Asian ideograph + + + 216B24 + 5213 + E58893 + East Asian ideograph + + + 216B26 + 5216 + E58896 + East Asian ideograph + + + 216B2A + 521C + E5889C + East Asian ideograph + + + 216B33 + 5231 + E588B1 + East Asian ideograph + + + 216B36 + 5235 + E588B5 + East Asian ideograph + + + 216B37 + 5232 + E588B2 + East Asian ideograph + + + 216B39 + 5233 + E588B3 + East Asian ideograph + + + 216B3E + 5244 + E58984 + East Asian ideograph + + + 216B43 + 5249 + E58989 + East Asian ideograph + + + 216B47 + 5260 + E589A0 + East Asian ideograph + + + 216B4B + 525A + E5899A + East Asian ideograph + + + 216B4C + 5252 + E58992 + East Asian ideograph + + + 216B4D + 525E + E5899E + East Asian ideograph + + + 216B50 + 525F + E5899F + East Asian ideograph + + + 216B53 + 5255 + E58995 + East Asian ideograph + + + 216B5B + 526E + E589AE + East Asian ideograph + + + 216B5E + 5268 + E589A8 + East Asian ideograph + + + 216B5F + 7B9A + E7AE9A + East Asian ideograph + + + 216B6B + 5278 + E589B8 + East Asian ideograph + + + 216B74 + 5282 + E58A82 + East Asian ideograph + + + 216B75 + 5281 + E58A81 + East Asian ideograph + + + 216B79 + 528C + E58A8C + East Asian ideograph + + + 216B7A + 528A + E58A8A + East Asian ideograph + + + 216B7C + 5290 + E58A90 + East Asian ideograph + + + 216C21 + 5293 + E58A93 + East Asian ideograph + + + 216C27 + 5296 + E58A96 + East Asian ideograph + + + 216C29 + 5298 + E58A98 + East Asian ideograph + + + 216C2B + 529A + E58A9A + East Asian ideograph + + + 216C2C + 5299 + E58A99 + East Asian ideograph + + + 216C2E + 52A6 + E58AA6 + East Asian ideograph + + + 216C31 + 52AD + E58AAD + East Asian ideograph + + + 216C33 + 52AE + E58AAE + East Asian ideograph + + + 216C37 + 52BB + E58ABB + East Asian ideograph + + + 216C38 + 52BC + E58ABC + East Asian ideograph + + + 216C3C + 52CA + E58B8A + East Asian ideograph + + + 216C3D + 52CD + E58B8D + East Asian ideograph + + + 216C40 + 52D0 + E58B90 + East Asian ideograph + + + 216C41 + 52D1 + E58B91 + East Asian ideograph + + + 216C46 + 52D4 + E58B94 + East Asian ideograph + + + 216C48 + 52D6 + E58B96 + East Asian ideograph + + + 216C4C + 52E3 + E58BA3 + East Asian ideograph + + + 216C4E + 52E1 + E58BA1 + East Asian ideograph + + + 216C50 + 55E7 + E597A7 + East Asian ideograph + + + 216C53 + 52E9 + E58BA9 + East Asian ideograph + + + 216C58 + 52F0 + E58BB0 + East Asian ideograph + + + 216C5A + 52F1 + E58BB1 + East Asian ideograph + + + 216C5E + 52F7 + E58BB7 + East Asian ideograph + + + 216C61 + 52F9 + E58BB9 + East Asian ideograph + + + 216C62 + 52FA + E58BBA + East Asian ideograph + + + 216C64 + 52FC + E58BBC + East Asian ideograph + + + 216C69 + 5307 + E58C87 + East Asian ideograph + + + 216C6A + 5303 + E58C83 + East Asian ideograph + + + 216C6B + 5306 + E58C86 + East Asian ideograph + + + 216C6E + 530A + E58C8A + East Asian ideograph + + + 216C6F + 530B + E58C8B + East Asian ideograph + + + 216C77 + 5311 + E58C91 + East Asian ideograph + + + 216C7B + 6706 + E69C86 + East Asian ideograph + + + 216D23 + 531A + E58C9A + East Asian ideograph + + + 216D24 + 531C + E58C9C + East Asian ideograph + + + 216D25 + 531F + E58C9F + East Asian ideograph + + + 216D2E + 532D + E58CAD + East Asian ideograph + + + 216D33 + 5330 + E58CB0 + East Asian ideograph + + + 216D36 + 5335 + E58CB5 + East Asian ideograph + + + 216D3A + 5338 + E58CB8 + East Asian ideograph + + + 216D3E + 533D + E58CBD + East Asian ideograph + + + 216D41 + 534C + E58D8C + East Asian ideograph + + + 216D42 + 534D + E58D8D + East Asian ideograph + + + 216D4B + 535D + E58D9D + East Asian ideograph + + + 216D4C + 5363 + E58DA3 + East Asian ideograph + + + 216D4E + 5365 + E58DA5 + East Asian ideograph + + + 216D53 + 536C + E58DAC + East Asian ideograph + + + 216D57 + 5372 + E58DB2 + East Asian ideograph + + + 216D58 + 537A + E58DBA + East Asian ideograph + + + 216D5D + 5380 + E58E80 + East Asian ideograph + + + 216D64 + 538E + E58E8E + East Asian ideograph + + + 216D66 + 5393 + E58E93 + East Asian ideograph + + + 216D67 + 5394 + E58E94 + East Asian ideograph + + + 216D6D + 5399 + E58E99 + East Asian ideograph + + + 216D74 + 8652 + E89992 + East Asian ideograph + + + 216D7A + 53A4 + E58EA4 + East Asian ideograph + + + 216D7B + 53AB + E58EAB + East Asian ideograph + + + 216E2C + 53B5 + E58EB5 + East Asian ideograph + + + 216E2E + 53B9 + E58EB9 + East Asian ideograph + + + 216E3E + 53D0 + E58F90 + East Asian ideograph + + + 216E48 + 53DA + E58F9A + East Asian ideograph + + + 216E57 + 53FB + E58FBB + East Asian ideograph + + + 216E58 + 535F + E58D9F + East Asian ideograph + + + 216E61 + 5414 + E59094 + East Asian ideograph + + + 216E68 + 5406 + E59086 + East Asian ideograph + + + 216E6C + 544C + E5918C + East Asian ideograph + + + 216E6D + 5445 + E59185 + East Asian ideograph + + + 216E6F + 541A + E5909A + East Asian ideograph + + + 216E70 + 5432 + E590B2 + East Asian ideograph + + + 216E76 + 5421 + E590A1 + East Asian ideograph + + + 216E78 + 5430 + E590B0 + East Asian ideograph + + + 216E79 + 5454 + E59194 + East Asian ideograph + + + 216E7D + 543D + E590BD + East Asian ideograph + + + 216F21 + 544F + E5918F + East Asian ideograph + + + 216F24 + 542A + E590AA + East Asian ideograph + + + 216F26 + 5422 + E590A2 + East Asian ideograph + + + 216F27 + 5423 + E590A3 + East Asian ideograph + + + 216F2E + 545F + E5919F + East Asian ideograph + + + 216F2F + 549C + E5929C + East Asian ideograph + + + 216F35 + 5488 + E59288 + East Asian ideograph + + + 216F37 + 547F + E591BF + East Asian ideograph + + + 216F39 + 5482 + E59282 + East Asian ideograph + + + 216F3A + 546D + E591AD + East Asian ideograph + + + 216F3B + 5491 + E59291 + East Asian ideograph + + + 216F42 + 5494 + E59294 + East Asian ideograph + + + 216F43 + 546B + E591AB + East Asian ideograph + + + 216F49 + 548D + E5928D + East Asian ideograph + + + 216F4A + 5463 + E591A3 + East Asian ideograph + + + 216F4B + 5474 + E591B4 + East Asian ideograph + + + 216F52 + 5466 + E591A6 + East Asian ideograph + + + 216F53 + 5464 + E591A4 + East Asian ideograph + + + 216F55 + 54A4 + E592A4 + East Asian ideograph + + + 216F58 + 54A1 + E592A1 + East Asian ideograph + + + 216F5A + 54AD + E592AD + East Asian ideograph + + + 216F5B + 54BA + E592BA + East Asian ideograph + + + 216F5C + 54CF + E5938F + East Asian ideograph + + + 216F5E + 54BE + E592BE + East Asian ideograph + + + 216F60 + 54A5 + E592A5 + East Asian ideograph + + + 216F63 + 54A7 + E592A7 + East Asian ideograph + + + 216F64 + 54B5 + E592B5 + East Asian ideograph + + + 216F66 + 54A2 + E592A2 + East Asian ideograph + + + 216F67 + 5472 + E591B2 + East Asian ideograph + + + 216F68 + 5470 + E591B0 + East Asian ideograph + + + 216F69 + 54BC + E592BC + East Asian ideograph + + + 216F6A + 54B7 + E592B7 + East Asian ideograph + + + 216F6B + 54DE + E5939E + East Asian ideograph + + + 216F6C + 54D6 + E59396 + East Asian ideograph + + + 216F6D + 54AE + E592AE + East Asian ideograph + + + 216F71 + 54BF + E592BF + East Asian ideograph + + + 216F74 + 54C6 + E59386 + East Asian ideograph + + + 216F7B + 551A + E5949A + East Asian ideograph + + + 216F7C + 54E2 + E593A2 + East Asian ideograph + + + 216F7D + 5507 + E59487 + East Asian ideograph + + + 217023 + 5517 + E59497 + East Asian ideograph + + + 217024 + 54FD + E593BD + East Asian ideograph + + + 217025 + 54E7 + E593A7 + East Asian ideograph + + + 217027 + 54F3 + E593B3 + East Asian ideograph + + + 21702A + 54E4 + E593A4 + East Asian ideograph + + + 21702B + 550A + E5948A + East Asian ideograph + + + 21702D + 54FF + E593BF + East Asian ideograph + + + 21702E + 5518 + E59498 + East Asian ideograph + + + 217030 + 5504 + E59484 + East Asian ideograph + + + 217032 + 54EF + E593AF + East Asian ideograph + + + 217034 + 5508 + E59488 + East Asian ideograph + + + 217038 + 54F6 + E593B6 + East Asian ideograph + + + 217039 + 54F7 + E593B7 + East Asian ideograph + + + 21703E + 550E + E5948E + East Asian ideograph + + + 217044 + 5523 + E594A3 + East Asian ideograph + + + 217046 + 550F + E5948F + East Asian ideograph + + + 217047 + 5511 + E59491 + East Asian ideograph + + + 21704B + 5575 + E595B5 + East Asian ideograph + + + 21704D + 5573 + E595B3 + East Asian ideograph + + + 21704E + 554C + E5958C + East Asian ideograph + + + 21704F + 5576 + E595B6 + East Asian ideograph + + + 217050 + 554D + E5958D + East Asian ideograph + + + 217051 + 555A + E5959A + East Asian ideograph + + + 217053 + 553C + E594BC + East Asian ideograph + + + 217055 + 5550 + E59590 + East Asian ideograph + + + 217057 + 5539 + E594B9 + East Asian ideograph + + + 217058 + 5548 + E59588 + East Asian ideograph + + + 217059 + 552D + E594AD + East Asian ideograph + + + 21705A + 5551 + E59591 + East Asian ideograph + + + 21705D + 552A + E594AA + East Asian ideograph + + + 217060 + 5562 + E595A2 + East Asian ideograph + + + 217061 + 5536 + E594B6 + East Asian ideograph + + + 217064 + 5549 + E59589 + East Asian ideograph + + + 217068 + 5530 + E594B0 + East Asian ideograph + + + 21706A + 5540 + E59580 + East Asian ideograph + + + 21706B + 5535 + E594B5 + East Asian ideograph + + + 217070 + 5545 + E59585 + East Asian ideograph + + + 217079 + 553F + E594BF + East Asian ideograph + + + 21707B + 5541 + E59581 + East Asian ideograph + + + 21707D + 5565 + E595A5 + East Asian ideograph + + + 217123 + 5591 + E59691 + East Asian ideograph + + + 217125 + 5577 + E595B7 + East Asian ideograph + + + 217126 + 55A8 + E596A8 + East Asian ideograph + + + 217127 + 55AD + E596AD + East Asian ideograph + + + 21712A + 5605 + E59885 + East Asian ideograph + + + 21712D + 5593 + E59693 + East Asian ideograph + + + 21712F + 5586 + E59686 + East Asian ideograph + + + 217134 + 5588 + E59688 + East Asian ideograph + + + 217136 + 55B4 + E596B4 + East Asian ideograph + + + 217143 + 55E2 + E597A2 + East Asian ideograph (variant of EACC 2D7143) + + + 217144 + 5581 + E59681 + East Asian ideograph + + + 217145 + 558E + E5968E + East Asian ideograph + + + 217147 + 55B5 + E596B5 + East Asian ideograph + + + 217149 + 558F + E5968F + East Asian ideograph + + + 21714B + 5559 + E59599 + East Asian ideograph + + + 217150 + 55A4 + E596A4 + East Asian ideograph + + + 217151 + 5592 + E59692 + East Asian ideograph + + + 217152 + 5599 + E59699 + East Asian ideograph + + + 217156 + 55F4 + E597B4 + East Asian ideograph + + + 217158 + 55CC + E5978C + East Asian ideograph + + + 217159 + 55D0 + E59790 + East Asian ideograph + + + 21715A + 55DB + E5979B + East Asian ideograph + + + 21715B + 55CD + E5978D + East Asian ideograph + + + 21715C + 55DE + E5979E + East Asian ideograph + + + 21715D + 55D9 + E59799 + East Asian ideograph + + + 21715E + 55C3 + E59783 + East Asian ideograph + + + 21715F + 55C9 + E59789 + East Asian ideograph + + + 217161 + 55CA + E5978A + East Asian ideograph + + + 217162 + 55DD + E5979D + East Asian ideograph + + + 217164 + 55D4 + E59794 + East Asian ideograph + + + 217165 + 55C4 + E59784 + East Asian ideograph + + + 217169 + 55E9 + E597A9 + East Asian ideograph + + + 21716F + 55CF + E5978F + East Asian ideograph + + + 217170 + 55D2 + E59792 + East Asian ideograph + + + 217175 + 55E5 + E597A5 + East Asian ideograph + + + 217177 + 55D6 + E59796 + East Asian ideograph + + + 217178 + 55C1 + E59781 + East Asian ideograph + + + 217179 + 55F2 + E597B2 + East Asian ideograph + + + 21717E + 5627 + E598A7 + East Asian ideograph + + + 217224 + 55FB + E597BB + East Asian ideograph + + + 217225 + 5612 + E59892 + East Asian ideograph + + + 217227 + 55F8 + E597B8 + East Asian ideograph + + + 217228 + 560F + E5988F + East Asian ideograph + + + 21722B + 55F9 + E597B9 + East Asian ideograph + + + 21722E + 561E + E5989E + East Asian ideograph + + + 217231 + 560C + E5988C + East Asian ideograph + + + 217234 + 561C + E5989C + East Asian ideograph + + + 217235 + 5610 + E59890 + East Asian ideograph + + + 217236 + 5601 + E59881 + East Asian ideograph + + + 217238 + 5613 + E59893 + East Asian ideograph + + + 217239 + 55F6 + E597B6 + East Asian ideograph + + + 21723C + 5602 + E59882 + East Asian ideograph + + + 217242 + 561D + E5989D + East Asian ideograph + + + 217244 + 55FF + E597BF + East Asian ideograph + + + 217247 + 5642 + E59982 + East Asian ideograph + + + 217248 + 564C + E5998C + East Asian ideograph + + + 21724B + 564B + E5998B + East Asian ideograph + + + 217252 + 5640 + E59980 + East Asian ideograph + + + 217255 + 5635 + E598B5 + East Asian ideograph + + + 217257 + 5649 + E59989 + East Asian ideograph + + + 217258 + 5641 + E59981 + East Asian ideograph + + + 21725C + 5658 + E59998 + East Asian ideograph + + + 21725D + 5620 + E598A0 + East Asian ideograph + + + 21725E + 5654 + E59994 + East Asian ideograph + + + 217260 + 562A + E598AA + East Asian ideograph + + + 217261 + 563D + E598BD + East Asian ideograph + + + 217264 + 562C + E598AC + East Asian ideograph + + + 217267 + 5638 + E598B8 + East Asian ideograph + + + 217269 + 564D + E5998D + East Asian ideograph + + + 21726B + 562B + E598AB + East Asian ideograph + + + 21726C + 564F + E5998F + East Asian ideograph + + + 21726E + 5670 + E599B0 + East Asian ideograph + + + 21726F + 565F + E5999F + East Asian ideograph + + + 217270 + 567C + E599BC + East Asian ideograph + + + 217272 + 5660 + E599A0 + East Asian ideograph + + + 217278 + 5676 + E599B6 + East Asian ideograph + + + 21727A + 5666 + E599A6 + East Asian ideograph + + + 21727B + 5673 + E599B3 + East Asian ideograph + + + 21727C + 566D + E599AD + East Asian ideograph + + + 21727E + 5672 + E599B2 + East Asian ideograph + + + 217325 + 5693 + E59A93 + East Asian ideograph + + + 217328 + 568C + E59A8C + East Asian ideograph + + + 217332 + 56BA + E59ABA + East Asian ideograph + + + 217334 + 5686 + E59A86 + East Asian ideograph + + + 217335 + 5684 + E59A84 + East Asian ideograph + + + 217336 + 5691 + E59A91 + East Asian ideograph + + + 217337 + 568A + E59A8A + East Asian ideograph + + + 21733E + 569E + E59A9E + East Asian ideograph + + + 217341 + 569C + E59A9C + East Asian ideograph + + + 217342 + 569A + E59A9A + East Asian ideograph + + + 217345 + 5699 + E59A99 + East Asian ideograph + + + 21734B + 56AD + E59AAD + East Asian ideograph + + + 21734C + 56A6 + E59AA6 + East Asian ideograph + + + 21734E + 56AC + E59AAC + East Asian ideograph + + + 217353 + 56B2 + E59AB2 + East Asian ideograph + + + 21735A + 56B3 + E59AB3 + East Asian ideograph + + + 21735B + 56C3 + E59B83 + East Asian ideograph + + + 217360 + 56C5 + E59B85 + East Asian ideograph + + + 217362 + 56CF + E59B8F + East Asian ideograph + + + 217367 + 56CD + E59B8D + East Asian ideograph + + + 21736A + 56D4 + E59B94 + East Asian ideograph + + + 21736B + 56D7 + E59B97 + East Asian ideograph + + + 21736D + 56DD + E59B9D + East Asian ideograph + + + 21736F + 56E1 + E59BA1 + East Asian ideograph + + + 217370 + 56DF + E59B9F + East Asian ideograph + + + 217375 + 56EB + E59BAB + East Asian ideograph + + + 217376 + 56EE + E59BAE + East Asian ideograph + + + 217377 + 56E7 + E59BA7 + East Asian ideograph + + + 217379 + 56FB + E59BBB + East Asian ideograph + + + 21737E + 56F7 + E59BB7 + East Asian ideograph + + + 217421 + 56F9 + E59BB9 + East Asian ideograph + + + 217424 + 56FF + E59BBF + East Asian ideograph + + + 217427 + 5705 + E59C85 + East Asian ideograph + + + 217428 + 5704 + E59C84 + East Asian ideograph + + + 217429 + 5702 + E59C82 + East Asian ideograph + + + 21742C + 570A + E59C8A + East Asian ideograph + + + 21742D + 5709 + E59C89 + East Asian ideograph + + + 21742E + 5707 + E59C87 + East Asian ideograph + + + 217430 + 570C + E59C8C + East Asian ideograph + + + 217431 + 5715 + E59C95 + East Asian ideograph + + + 217432 + 5714 + E59C94 + East Asian ideograph + + + 217435 + 571A + E59C9A + East Asian ideograph + + + 217436 + 571B + E59C9B + East Asian ideograph + + + 217437 + 571C + E59C9C + East Asian ideograph + + + 217439 + 571D + E59C9D + East Asian ideograph + + + 21743A + 571E + E59C9E + East Asian ideograph + + + 217441 + 5724 + E59CA4 + East Asian ideograph + + + 217442 + 572E + E59CAE + East Asian ideograph + + + 217443 + 5729 + E59CA9 + East Asian ideograph + + + 217448 + 5738 + E59CB8 + East Asian ideograph + + + 21744C + 572A + E59CAA + East Asian ideograph + + + 217463 + 5749 + E59D89 + East Asian ideograph + + + 217465 + 5745 + E59D85 + East Asian ideograph + + + 217468 + 574B + E59D8B + East Asian ideograph + + + 217469 + 574C + E59D8C + East Asian ideograph + + + 21746A + 573F + E59CBF + East Asian ideograph + + + 217470 + 5768 + E59DA8 + East Asian ideograph + + + 217475 + 578A + E59E8A + East Asian ideograph + + + 217477 + 576D + E59DAD + East Asian ideograph + + + 217479 + 5774 + E59DB4 + East Asian ideograph + + + 21747A + 5767 + E59DA7 + East Asian ideograph + + + 217526 + 5770 + E59DB0 + East Asian ideograph + + + 217528 + 5771 + E59DB1 + East Asian ideograph + + + 21752A + 576E + E59DAE + East Asian ideograph + + + 21752D + 5776 + E59DB6 + East Asian ideograph + + + 21752E + 5789 + E59E89 + East Asian ideograph + + + 217530 + 577F + E59DBF + East Asian ideograph + + + 217531 + 5775 + E59DB5 + East Asian ideograph + + + 217532 + 577B + E59DBB + East Asian ideograph + + + 217533 + 5788 + E59E88 + East Asian ideograph + + + 217535 + 5773 + E59DB3 + East Asian ideograph + + + 217538 + 579F + E59E9F + East Asian ideograph + + + 217539 + 5790 + E59E90 + East Asian ideograph + + + 21753A + 5793 + E59E93 + East Asian ideograph + + + 21753F + 579E + E59E9E + East Asian ideograph + + + 217540 + 57B5 + E59EB5 + East Asian ideograph + + + 217543 + 579A + E59E9A + East Asian ideograph + + + 217545 + 5794 + E59E94 + East Asian ideograph + + + 217547 + 57A4 + E59EA4 + East Asian ideograph + + + 217548 + 5799 + E59E99 + East Asian ideograph + + + 217549 + 578C + E59E8C + East Asian ideograph + + + 21754B + 5797 + E59E97 + East Asian ideograph + + + 21754E + 579D + E59E9D + East Asian ideograph + + + 217552 + 579C + E59E9C + East Asian ideograph + + + 217554 + 57A7 + E59EA7 + East Asian ideograph + + + 217557 + 57A1 + E59EA1 + East Asian ideograph + + + 217559 + 212C4 + + East Asian ideograph (Unicode CJK Extension B) + + + 21755B + 5795 + E59E95 + East Asian ideograph + + + 21755F + 57B8 + E59EB8 + East Asian ideograph + + + 217560 + 57C7 + E59F87 + East Asian ideograph + + + 21756A + 5809 + E5A089 + East Asian ideograph + + + 21756C + 57BE + E59EBE + East Asian ideograph + + + 217571 + 57DB + E59F9B + East Asian ideograph + + + 217573 + 57D5 + E59F95 + East Asian ideograph + + + 217577 + 57D2 + E59F92 + East Asian ideograph + + + 21757E + 57C6 + E59F86 + East Asian ideograph + + + 217622 + 57C4 + E59F84 + East Asian ideograph + + + 217627 + 70FE + E783BE + East Asian ideograph + + + 217629 + 57E3 + E59FA3 + East Asian ideograph + + + 21762A + 57FB + E59FBB + East Asian ideograph + + + 21762B + 5803 + E5A083 + East Asian ideograph + + + 21762C + 57F6 + E59FB6 + East Asian ideograph + + + 21762D + 57E6 + E59FA6 + East Asian ideograph + + + 217631 + 57ED + E59FAD + East Asian ideograph + + + 217633 + 5800 + E5A080 + East Asian ideograph + + + 217635 + 57EC + E59FAC + East Asian ideograph + + + 217636 + 5807 + E5A087 + East Asian ideograph + + + 217639 + 580E + E5A08E + East Asian ideograph + + + 21763B + 580F + E5A08F + East Asian ideograph + + + 21763D + 57F4 + E59FB4 + East Asian ideograph + + + 21763E + 5810 + E5A090 + East Asian ideograph + + + 217640 + 580D + E5A08D + East Asian ideograph + + + 217643 + 57EF + E59FAF + East Asian ideograph + + + 217648 + 5801 + E5A081 + East Asian ideograph + + + 217649 + 5812 + E5A092 + East Asian ideograph + + + 21764D + 57FD + E59FBD + East Asian ideograph + + + 21764E + 57F8 + E59FB8 + East Asian ideograph + + + 217650 + 580C + E5A08C + East Asian ideograph + + + 217651 + 5813 + E5A093 + East Asian ideograph + + + 217652 + 57F0 + E59FB0 + East Asian ideograph + + + 217656 + 580B + E5A08B + East Asian ideograph + + + 217658 + 57F3 + E59FB3 + East Asian ideograph + + + 217659 + 5804 + E5A084 + East Asian ideograph + + + 21765A + 57CF + E59F8F + East Asian ideograph + + + 21765B + 57DD + E59F9D + East Asian ideograph + + + 21765F + 5847 + E5A187 + East Asian ideograph + + + 217667 + 581B + E5A09B + East Asian ideograph + + + 217669 + 5819 + E5A099 + East Asian ideograph + + + 21766A + 5833 + E5A0B3 + East Asian ideograph + + + 21766C + 581E + E5A09E + East Asian ideograph + + + 21766D + 583F + E5A0BF + East Asian ideograph + + + 217671 + 5827 + E5A0A7 + East Asian ideograph + + + 217676 + 5828 + E5A0A8 + East Asian ideograph + + + 217678 + 582E + E5A0AE + East Asian ideograph + + + 21767A + 581D + E5A09D + East Asian ideograph + + + 21767D + 5844 + E5A184 + East Asian ideograph + + + 217721 + 5848 + E5A188 + East Asian ideograph + + + 217723 + 5818 + E5A098 + East Asian ideograph + + + 217726 + 57F5 + E59FB5 + East Asian ideograph + + + 217729 + 582D + E5A0AD + East Asian ideograph + + + 21772B + 5820 + E5A0A0 + East Asian ideograph + + + 217730 + 584E + E5A18E + East Asian ideograph + + + 217733 + 585D + E5A19D + East Asian ideograph + + + 217735 + 5859 + E5A199 + East Asian ideograph + + + 217737 + 584B + E5A18B + East Asian ideograph + + + 21773D + 5865 + E5A1A5 + East Asian ideograph + + + 217740 + 586C + E5A1AC + East Asian ideograph + + + 217742 + 5852 + E5A192 + East Asian ideograph + + + 217745 + 5864 + E5A1A4 + East Asian ideograph + + + 217747 + 5853 + E5A193 + East Asian ideograph + + + 217748 + 584F + E5A18F + East Asian ideograph + + + 217749 + 583D + E5A0BD + East Asian ideograph + + + 21774D + 584D + E5A18D + East Asian ideograph + + + 21774E + 5856 + E5A196 + East Asian ideograph + + + 217755 + 589A + E5A29A + East Asian ideograph + + + 217758 + 5892 + E5A292 + East Asian ideograph + + + 21775A + 588E + E5A28E + East Asian ideograph + + + 21775C + 5889 + E5A289 + East Asian ideograph + + + 21775F + 5840 + E5A180 + East Asian ideograph + + + 217760 + 589B + E5A29B + East Asian ideograph + + + 217761 + 587C + E5A1BC + East Asian ideograph + + + 217763 + 5888 + E5A288 + East Asian ideograph + + + 217765 + 5890 + E5A290 + East Asian ideograph + + + 217768 + 5898 + E5A298 + East Asian ideograph + + + 21776B + 587D + E5A1BD + East Asian ideograph + + + 21776F + 587F + E5A1BF + East Asian ideograph + + + 217770 + 5881 + E5A281 + East Asian ideograph + + + 21777B + 58A9 + E5A2A9 + East Asian ideograph + + + 21777E + 58A1 + E5A2A1 + East Asian ideograph + + + 217824 + 58B1 + E5A2B1 + East Asian ideograph + + + 21782B + 58AD + E5A2AD + East Asian ideograph + + + 21782E + 58A0 + E5A2A0 + East Asian ideograph + + + 217830 + 58A3 + E5A2A3 + East Asian ideograph + + + 217832 + 58A6 + E5A2A6 + East Asian ideograph + + + 21783A + 58C8 + E5A388 + East Asian ideograph + + + 217841 + 58BC + E5A2BC + East Asian ideograph + + + 217849 + 58BF + E5A2BF + East Asian ideograph + + + 21784B + 58C6 + E5A386 + East Asian ideograph + + + 21784C + 58BA + E5A2BA + East Asian ideograph + + + 217850 + 58D6 + E5A396 + East Asian ideograph + + + 217854 + 58D2 + E5A392 + East Asian ideograph + + + 217856 + 58CE + E5A38E + East Asian ideograph + + + 21785A + 58E0 + E5A3A0 + East Asian ideograph + + + 21785E + 58DA + E5A39A + East Asian ideograph + + + 21786C + 58FC + E5A3BC + East Asian ideograph + + + 217870 + 5902 + E5A482 + East Asian ideograph + + + 217873 + 5906 + E5A486 + East Asian ideograph + + + 217874 + 6535 + E694B5 + East Asian ideograph + + + 21787A + 5910 + E5A490 + East Asian ideograph + + + 21787C + 8641 + E89981 + East Asian ideograph + + + 217928 + 592C + E5A4AC + East Asian ideograph + + + 21792B + 592F + E5A4AF + East Asian ideograph + + + 217930 + 593C + E5A4BC + East Asian ideograph + + + 217933 + 5940 + E5A580 + East Asian ideograph + + + 217938 + 594D + E5A58D + East Asian ideograph + + + 217943 + 5953 + E5A593 + East Asian ideograph + + + 21794B + 595C + E5A59C + East Asian ideograph + + + 21794F + 5961 + E5A5A1 + East Asian ideograph + + + 217954 + 596C + E5A5AC + East Asian ideograph + + + 217955 + 596D + E5A5AD + East Asian ideograph + + + 217965 + 597C + E5A5BC + East Asian ideograph + + + 217969 + 59A7 + E5A6A7 + East Asian ideograph + + + 21796B + 5998 + E5A698 + East Asian ideograph + + + 21796F + 599A + E5A69A + East Asian ideograph + + + 217971 + 59A0 + E5A6A0 + East Asian ideograph + + + 21797C + 5997 + E5A697 + East Asian ideograph + + + 217A21 + 5990 + E5A690 + East Asian ideograph + + + 217A24 + 59C5 + E5A785 + East Asian ideograph + + + 217A25 + 59B5 + E5A6B5 + East Asian ideograph + + + 217A28 + 59CF + E5A78F + East Asian ideograph + + + 217A2A + 59BA + E5A6BA + East Asian ideograph + + + 217A2C + 59B8 + E5A6B8 + East Asian ideograph + + + 217A35 + 59B2 + E5A6B2 + East Asian ideograph + + + 217A3A + 59B7 + E5A6B7 + East Asian ideograph + + + 217A3E + 59C1 + E5A781 + East Asian ideograph + + + 217A43 + 59F9 + E5A7B9 + East Asian ideograph + + + 217A44 + 59F8 + E5A7B8 + East Asian ideograph + + + 217A4F + 59EE + E5A7AE + East Asian ideograph + + + 217A50 + 59F1 + E5A7B1 + East Asian ideograph + + + 217A51 + 5A00 + E5A880 + East Asian ideograph + + + 217A52 + 59DE + E5A79E + East Asian ideograph + + + 217A56 + 59FD + E5A7BD + East Asian ideograph + + + 217A5D + 59F6 + E5A7B6 + East Asian ideograph + + + 217A5E + 59DD + E5A79D + East Asian ideograph + + + 217A5F + 59FA + E5A7BA + East Asian ideograph + + + 217A61 + 59E4 + E5A7A4 + East Asian ideograph + + + 217A6E + 5A2A + E5A8AA + East Asian ideograph + + + 217A75 + 5A16 + E5A896 + East Asian ideograph + + + 217A78 + 5A09 + E5A889 + East Asian ideograph + + + 217A7E + 5A12 + E5A892 + East Asian ideograph + + + 217B2C + 5A60 + E5A9A0 + East Asian ideograph + + + 217B31 + 5A67 + E5A9A7 + East Asian ideograph + + + 217B3A + 5A38 + E5A8B8 + East Asian ideograph + + + 217B3B + 5A5E + E5A99E + East Asian ideograph + + + 217B3C + 5A6D + E5A9AD + East Asian ideograph + + + 217B3D + 5A35 + E5A8B5 + East Asian ideograph + + + 217B3E + 5A55 + E5A995 + East Asian ideograph + + + 217B41 + 5A2C + E5A8AC + East Asian ideograph + + + 217B48 + 5A50 + E5A990 + East Asian ideograph + + + 217B49 + 5A65 + E5A9A5 + East Asian ideograph + + + 217B52 + 5A64 + E5A9A4 + East Asian ideograph + + + 217B65 + 5A8A + E5AA8A + East Asian ideograph + + + 217B69 + 5ACF + E5AB8F + East Asian ideograph + + + 217B6A + 5A7A + E5A9BA + East Asian ideograph + + + 217B71 + 5A9F + E5AA9F + East Asian ideograph + + + 217B75 + 5AA0 + E5AAA0 + East Asian ideograph + + + 217C21 + 5AA6 + E5AAA6 + East Asian ideograph + + + 217C22 + 5A8C + E5AA8C + East Asian ideograph + + + 217C24 + 5AA7 + E5AAA7 + East Asian ideograph + + + 217C25 + 5A9E + E5AA9E + East Asian ideograph + + + 217C26 + 5AA2 + E5AAA2 + East Asian ideograph + + + 217C27 + 5A9C + E5AA9C + East Asian ideograph + + + 217C28 + 5A7C + E5A9BC + East Asian ideograph + + + 217C29 + 5A96 + E5AA96 + East Asian ideograph + + + 217C30 + 5A93 + E5AA93 + East Asian ideograph + + + 217C31 + 5AAC + E5AAAC + East Asian ideograph + + + 217C34 + 5AAE + E5AAAE + East Asian ideograph + + + 217C35 + 5A95 + E5AA95 + East Asian ideograph + + + 217C36 + 5AAF + E5AAAF + East Asian ideograph + + + 217C39 + 5AC8 + E5AB88 + East Asian ideograph + + + 217C3E + 5AB5 + E5AAB5 + East Asian ideograph + + + 217C41 + 5AC4 + E5AB84 + East Asian ideograph + + + 217C45 + 5AB7 + E5AAB7 + East Asian ideograph + + + 217C49 + 5AD1 + E5AB91 + East Asian ideograph + + + 217C4A + 5A90 + E5AA90 + East Asian ideograph + + + 217C4F + 5AB8 + E5AAB8 + East Asian ideograph + + + 217C50 + 5ABA + E5AABA + East Asian ideograph + + + 217C52 + 5AAA + E5AAAA + East Asian ideograph + + + 217C59 + 5AD3 + E5AB93 + East Asian ideograph + + + 217C5B + 5AB1 + E5AAB1 + East Asian ideograph + + + 217C60 + 5ADC + E5AB9C + East Asian ideograph + + + 217C6D + 5AE5 + E5ABA5 + East Asian ideograph + + + 217C6E + 5AE0 + E5ABA0 + East Asian ideograph + + + 217C72 + 5AEA + E5ABAA + East Asian ideograph + + + 217C7B + 5ADA + E5AB9A + East Asian ideograph + + + 217C7C + 5AEB + E5ABAB + East Asian ideograph + + + 217D26 + 5AFF + E5ABBF + East Asian ideograph + + + 217D2A + 5AFD + E5ABBD + East Asian ideograph + + + 217D2B + 5B08 + E5AC88 + East Asian ideograph + + + 217D2E + 5B0D + E5AC8D + East Asian ideograph + + + 217D38 + 5B03 + E5AC83 + East Asian ideograph + + + 217D3D + 5B17 + E5AC97 + East Asian ideograph + + + 217D3E + 5B16 + E5AC96 + East Asian ideograph + + + 217D40 + 5B19 + E5AC99 + East Asian ideograph + + + 217D47 + 5B1B + E5AC9B + East Asian ideograph + + + 217D48 + 5B21 + E5ACA1 + East Asian ideograph + + + 217D52 + 5B2C + E5ACAC + East Asian ideograph + + + 217D59 + 5B32 + E5ACB2 + East Asian ideograph + + + 217D63 + 5B3F + E5ACBF + East Asian ideograph + + + 217D6E + 5B45 + E5AD85 + East Asian ideograph + + + 217D74 + 5B4C + E5AD8C + East Asian ideograph + + + 217D76 + 5B4B + E5AD8B + East Asian ideograph + + + 217D7C + 5B56 + E5AD96 + East Asian ideograph + + + 217E21 + 5B5B + E5AD9B + East Asian ideograph + + + 217E23 + 5B62 + E5ADA2 + East Asian ideograph + + + 217E24 + 5B65 + E5ADA5 + East Asian ideograph + + + 217E25 + 5B67 + E5ADA7 + East Asian ideograph + + + 217E27 + 5C58 + E5B198 + East Asian ideograph + + + 217E28 + 5B6C + E5ADAC + East Asian ideograph + + + 217E2A + 5B6E + E5ADAE + East Asian ideograph + + + 217E30 + 5B7B + E5ADBB + East Asian ideograph + + + 217E31 + 5B7C + E5ADBC + East Asian ideograph + + + 217E32 + 5B80 + E5AE80 + East Asian ideograph + + + 217E34 + 5B84 + E5AE84 + East Asian ideograph + + + 217E35 + 5B82 + E5AE82 + East Asian ideograph + + + 217E40 + 5B95 + E5AE95 + East Asian ideograph + + + 217E43 + 5B93 + E5AE93 + East Asian ideograph + + + 217E49 + 5BAC + E5AEAC + East Asian ideograph + + + 217E52 + 5BA7 + E5AEA7 + East Asian ideograph + + + 217E55 + 5BB7 + E5AEB7 + East Asian ideograph + + + 217E59 + 5BC1 + E5AF81 + East Asian ideograph + + + 217E5B + 3761 + E39DA1 + East Asian ideograph (Unicode CJK Extension A) + + + 217E60 + 5BC9 + E5AF89 + East Asian ideograph + + + 217E68 + 5BD4 + E5AF94 + East Asian ideograph + + + 217E6A + 5BC3 + E5AF83 + East Asian ideograph + + + 217E6E + 5BD6 + E5AF96 + East Asian ideograph + + + 217E75 + 5BD7 + E5AF97 + East Asian ideograph + + + 217E79 + 5BE0 + E5AFA0 + East Asian ideograph + + + 217E7E + 5BEA + E5AFAA + East Asian ideograph + + + 222224 + 5BF0 + E5AFB0 + East Asian ideograph + + + 222225 + 5BEF + E5AFAF + East Asian ideograph + + + 222233 + 5C00 + E5B080 + East Asian ideograph + + + 222235 + 5C57 + E5B197 + East Asian ideograph + + + 22223C + 5C15 + E5B095 + East Asian ideograph + + + 222246 + 5C22 + E5B0A2 + East Asian ideograph + + + 222248 + 5C25 + E5B0A5 + East Asian ideograph + + + 22224B + 5C2A + E5B0AA + East Asian ideograph + + + 222252 + 5C2F + E5B0AF + East Asian ideograph + + + 22225B + 5C32 + E5B0B2 + East Asian ideograph + + + 222263 + 5C3B + E5B0BB + East Asian ideograph + + + 222265 + 5C44 + E5B184 + East Asian ideograph + + + 222267 + 5C49 + E5B189 + East Asian ideograph + + + 222279 + 5C59 + E5B199 + East Asian ideograph + + + 22227B + 5C5D + E5B19D + East Asian ideograph + + + 22227C + 5C5F + E5B19F + East Asian ideograph + + + 222323 + 5C63 + E5B1A3 + East Asian ideograph + + + 222329 + 5C67 + E5B1A7 + East Asian ideograph + + + 22232B + 5C68 + E5B1A8 + East Asian ideograph + + + 222330 + 5C6D + E5B1AD + East Asian ideograph + + + 222331 + 5C6E + E5B1AE + East Asian ideograph + + + 222337 + 5C74 + E5B1B4 + East Asian ideograph + + + 222339 + 5C73 + E5B1B3 + East Asian ideograph + + + 22233B + 5C77 + E5B1B7 + East Asian ideograph + + + 22233C + 5C7A + E5B1BA + East Asian ideograph + + + 222340 + 5C7C + E5B1BC + East Asian ideograph + + + 222346 + 5C8F + E5B28F + East Asian ideograph + + + 222349 + 5C88 + E5B288 + East Asian ideograph + + + 22234B + 5C8D + E5B28D + East Asian ideograph + + + 22234D + 5C99 + E5B299 + East Asian ideograph + + + 222355 + 5CA6 + E5B2A6 + East Asian ideograph + + + 222357 + 5CA0 + E5B2A0 + East Asian ideograph + + + 22235C + 5CA2 + E5B2A2 + East Asian ideograph + + + 222360 + 5CB5 + E5B2B5 + East Asian ideograph + + + 222361 + 5CA7 + E5B2A7 + East Asian ideograph + + + 222366 + 5CA8 + E5B2A8 + East Asian ideograph + + + 222367 + 5CAC + E5B2AC + East Asian ideograph + + + 22236B + 5CA3 + E5B2A3 + East Asian ideograph + + + 22236C + 5CB6 + E5B2B6 + East Asian ideograph + + + 22236D + 5CC1 + E5B381 + East Asian ideograph + + + 22236F + 5CAD + E5B2AD + East Asian ideograph + + + 222370 + 5CD5 + E5B395 + East Asian ideograph + + + 222378 + 5CD3 + E5B393 + East Asian ideograph + + + 222379 + 5C8D + E5B28D + East Asian ideograph + + + 222426 + 5CE0 + E5B3A0 + East Asian ideograph + + + 222428 + 5CD2 + E5B392 + East Asian ideograph + + + 222429 + 5CDD + E5B39D + East Asian ideograph + + + 22242B + 5CCB + E5B38B + East Asian ideograph + + + 222430 + 5CC7 + E5B387 + East Asian ideograph + + + 222431 + 5CDC + E5B39C + East Asian ideograph + + + 222434 + 5D00 + E5B480 + East Asian ideograph + + + 22243B + 5CFF + E5B3BF + East Asian ideograph + + + 22243C + 5CEB + E5B3AB + East Asian ideograph + + + 222441 + 5CF4 + E5B3B4 + East Asian ideograph + + + 222446 + 5CF1 + E5B3B1 + East Asian ideograph + + + 222449 + 5D1E + E5B49E + East Asian ideograph + + + 22244A + 5D12 + E5B492 + East Asian ideograph + + + 222450 + 5D1A + E5B49A + East Asian ideograph + + + 222452 + 5D0C + E5B48C + East Asian ideograph + + + 222453 + 5D20 + E5B4A0 + East Asian ideograph + + + 222454 + 5D21 + E5B4A1 + East Asian ideograph + + + 222457 + 5D27 + E5B4A7 + East Asian ideograph + + + 222458 + 5D0D + E5B48D + East Asian ideograph + + + 22245A + 5D26 + E5B4A6 + East Asian ideograph + + + 22245D + 5D2E + E5B4AE + East Asian ideograph + + + 222469 + 5D24 + E5B4A4 + East Asian ideograph + + + 222471 + 5D36 + E5B4B6 + East Asian ideograph + + + 222472 + 5D3E + E5B4BE + East Asian ideograph + + + 222474 + 5D4B + E5B58B + East Asian ideograph + + + 222476 + 5D57 + E5B597 + East Asian ideograph + + + 222477 + 5D34 + E5B4B4 + East Asian ideograph + + + 222525 + 5D3F + E5B4BF + East Asian ideograph + + + 222526 + 5D52 + E5B592 + East Asian ideograph + + + 222527 + 5D3D + E5B4BD + East Asian ideograph + + + 222528 + 5D4E + E5B58E + East Asian ideograph + + + 22252C + 5D59 + E5B599 + East Asian ideograph + + + 22252D + 5D47 + E5B587 + East Asian ideograph + + + 22252F + 5D32 + E5B4B2 + East Asian ideograph + + + 222531 + 5D42 + E5B582 + East Asian ideograph + + + 222534 + 5D74 + E5B5B4 + East Asian ideograph + + + 222539 + 5D6F + E5B5AF + East Asian ideograph + + + 22253A + 5D6B + E5B5AB + East Asian ideograph + + + 22253F + 5D75 + E5B5B5 + East Asian ideograph + + + 222544 + 5D4A + E5B58A + East Asian ideograph + + + 222549 + 5D6C + E5B5AC + East Asian ideograph + + + 22254A + 5D62 + E5B5A2 + East Asian ideograph + + + 22254D + 5D82 + E5B682 + East Asian ideograph + + + 222550 + 5D79 + E5B5B9 + East Asian ideograph + + + 222551 + 5D8E + E5B68E + East Asian ideograph + + + 22255A + 5D81 + E5B681 + East Asian ideograph + + + 222560 + 5D7E + E5B5BE + East Asian ideograph + + + 222566 + 5D92 + E5B692 + East Asian ideograph + + + 222568 + 5D99 + E5B699 + East Asian ideograph + + + 222569 + 5D97 + E5B697 + East Asian ideograph + + + 22256A + 5DA2 + E5B6A2 + East Asian ideograph + + + 222573 + 5DA1 + E5B6A1 + East Asian ideograph + + + 222575 + 5D93 + E5B693 + East Asian ideograph + + + 222577 + 5DA0 + E5B6A0 + East Asian ideograph + + + 22257B + 5D94 + E5B694 + East Asian ideograph + + + 22257E + 5DAC + E5B6AC + East Asian ideograph + + + 222626 + 5DA7 + E5B6A7 + East Asian ideograph + + + 22262A + 5DB0 + E5B6B0 + East Asian ideograph + + + 22262E + 5DB4 + E5B6B4 + East Asian ideograph + + + 22262F + 5DAE + E5B6AE + East Asian ideograph + + + 222630 + 5DB6 + E5B6B6 + East Asian ideograph + + + 222632 + 5DB8 + E5B6B8 + East Asian ideograph + + + 222634 + 5DBF + E5B6BF + East Asian ideograph + + + 222636 + 5DB7 + E5B6B7 + East Asian ideograph + + + 22263E + 5DC3 + E5B783 + East Asian ideograph + + + 222644 + 5DC7 + E5B787 + East Asian ideograph + + + 222646 + 5DC9 + E5B789 + East Asian ideograph + + + 222647 + 5DCB + E5B78B + East Asian ideograph + + + 22264E + 5DD8 + E5B798 + East Asian ideograph + + + 222650 + 5DDB + E5B79B + East Asian ideograph + + + 222652 + 5DDC + E5B79C + East Asian ideograph + + + 222656 + 5DE4 + E5B7A4 + East Asian ideograph + + + 222662 + 5E00 + E5B880 + East Asian ideograph + + + 222664 + 51E7 + E587A7 + East Asian ideograph + + + 222672 + 5E14 + E5B894 + East Asian ideograph + + + 222673 + 5E17 + E5B897 + East Asian ideograph + + + 222676 + 5E19 + E5B899 + East Asian ideograph + + + 222677 + 5E12 + E5B892 + East Asian ideograph + + + 222678 + 5E1F + E5B89F + East Asian ideograph + + + 22267A + 5E23 + E5B8A3 + East Asian ideograph + + + 22267B + 5E21 + E5B8A1 + East Asian ideograph + + + 222722 + 5E22 + E5B8A2 + East Asian ideograph + + + 222724 + 5E28 + E5B8A8 + East Asian ideograph + + + 222735 + 5E44 + E5B984 + East Asian ideograph + + + 222736 + 5E43 + E5B983 + East Asian ideograph + + + 222739 + 5E42 + E5B982 + East Asian ideograph + + + 22273F + 5E4E + E5B98E + East Asian ideograph + + + 222747 + 5E58 + E5B998 + East Asian ideograph + + + 222748 + 5E48 + E5B988 + East Asian ideograph + + + 222757 + 5E5E + E5B99E + East Asian ideograph + + + 222758 + 5E61 + E5B9A1 + East Asian ideograph + + + 22275D + 5E68 + E5B9A8 + East Asian ideograph + + + 22275F + 5E6C + E5B9AC + East Asian ideograph + + + 222760 + 5E6A + E5B9AA + East Asian ideograph + + + 222763 + 5E6E + E5B9AE + East Asian ideograph + + + 222764 + 5E6D + E5B9AD + East Asian ideograph + + + 222765 + 5E70 + E5B9B0 + East Asian ideograph + + + 22276D + 5E75 + E5B9B5 + East Asian ideograph + + + 222777 + 5E80 + E5BA80 + East Asian ideograph + + + 22277E + 5E8B + E5BA8B + East Asian ideograph + + + 22282F + 5EA4 + E5BAA4 + East Asian ideograph + + + 222835 + 5EA5 + E5BAA5 + East Asian ideograph + + + 222836 + 5EAF + E5BAAF + East Asian ideograph + + + 222842 + 5EB9 + E5BAB9 + East Asian ideograph + + + 22284B + 5EB3 + E5BAB3 + East Asian ideograph + + + 22284C + 5EC4 + E5BB84 + East Asian ideograph + + + 222851 + 5ECC + E5BB8C + East Asian ideograph + + + 222855 + 5ECB + E5BB8B + East Asian ideograph + + + 222857 + 5ECD + E5BB8D + East Asian ideograph + + + 22285A + 5ED2 + E5BB92 + East Asian ideograph + + + 22285B + 5ED1 + E5BB91 + East Asian ideograph + + + 22285C + 5ED5 + E5BB95 + East Asian ideograph + + + 22285F + 5ED4 + E5BB94 + East Asian ideograph + + + 222860 + 5ED9 + E5BB99 + East Asian ideograph + + + 222861 + 5ECE + E5BB8E + East Asian ideograph + + + 222868 + 5EE1 + E5BBA1 + East Asian ideograph + + + 22286D + 5EE7 + E5BBA7 + East Asian ideograph + + + 222871 + 5EE8 + E5BBA8 + East Asian ideograph + + + 22287C + 5EED + E5BBAD + East Asian ideograph + + + 222921 + 5EF1 + E5BBB1 + East Asian ideograph + + + 222923 + 5EF4 + E5BBB4 + East Asian ideograph + + + 222935 + 5F07 + E5BC87 + East Asian ideograph + + + 22293A + 5F0B + E5BC8B + East Asian ideograph + + + 22294A + 5F28 + E5BCA8 + East Asian ideograph + + + 22294B + 5F22 + E5BCA2 + East Asian ideograph + + + 22294C + 5F23 + E5BCA3 + East Asian ideograph + + + 22294D + 5F24 + E5BCA4 + East Asian ideograph + + + 222951 + 5F33 + E5BCB3 + East Asian ideograph + + + 222952 + 5F30 + E5BCB0 + East Asian ideograph + + + 222958 + 5F38 + E5BCB8 + East Asian ideograph + + + 22295C + 5F40 + E5BD80 + East Asian ideograph + + + 22295F + 5F44 + E5BD84 + East Asian ideograph + + + 222962 + 5F4D + E5BD8D + East Asian ideograph + + + 222968 + 5F50 + E5BD90 + East Asian ideograph + + + 222969 + 5F54 + E5BD94 + East Asian ideograph + + + 22296A + 5F56 + E5BD96 + East Asian ideograph + + + 22296C + 5F58 + E5BD98 + East Asian ideograph + + + 222970 + 5F60 + E5BDA0 + East Asian ideograph + + + 222971 + 5F61 + E5BDA1 + East Asian ideograph + + + 222972 + 5F63 + E5BDA3 + East Asian ideograph + + + 222973 + 809C + E8829C + East Asian ideograph + + + 222974 + 5F67 + E5BDA7 + East Asian ideograph + + + 222978 + 5F72 + E5BDB2 + East Asian ideograph + + + 222979 + 5F73 + E5BDB3 + East Asian ideograph + + + 22297C + 5F74 + E5BDB4 + East Asian ideograph + + + 222A23 + 5F82 + E5BE82 + East Asian ideograph + + + 222A27 + 5F89 + E5BE89 + East Asian ideograph + + + 222A2B + 5F94 + E5BE94 + East Asian ideograph + + + 222A34 + 2251B + + East Asian ideograph (Unicode CJK Extension B) + + + 222A39 + 5F9C + E5BE9C + East Asian ideograph + + + 222A3D + 5F9A + E5BE9A + East Asian ideograph + + + 222A46 + 5FAF + E5BEAF + East Asian ideograph + + + 222A50 + 5FBC + E5BEBC + East Asian ideograph + + + 222A57 + 5FC9 + E5BF89 + East Asian ideograph + + + 222A5F + 5FD1 + E5BF91 + East Asian ideograph + + + 222A61 + 5FD2 + E5BF92 + East Asian ideograph + + + 222A63 + 5FD0 + E5BF90 + East Asian ideograph + + + 222A67 + 5FCE + E5BF8E + East Asian ideograph + + + 222A68 + 5FED + E5BFAD + East Asian ideograph + + + 222A72 + 5FEE + E5BFAE + East Asian ideograph + + + 222A73 + 5FF8 + E5BFB8 + East Asian ideograph + + + 222A78 + 5FE1 + E5BFA1 + East Asian ideograph + + + 222A7B + 5FE4 + E5BFA4 + East Asian ideograph + + + 222B24 + 5FEA + E5BFAA + East Asian ideograph + + + 222B2A + 6026 + E680A6 + East Asian ideograph + + + 222B2C + 6029 + E680A9 + East Asian ideograph + + + 222B2D + 602B + E680AB + East Asian ideograph + + + 222B30 + 6019 + E68099 + East Asian ideograph + + + 222B31 + 6008 + E68088 + East Asian ideograph + + + 222B36 + 600A + E6808A + East Asian ideograph + + + 222B37 + 600C + E6808C + East Asian ideograph + + + 222B38 + 601B + E6809B + East Asian ideograph + + + 222B3C + 6017 + E68097 + East Asian ideograph + + + 222B3D + 6033 + E680B3 + East Asian ideograph + + + 222B45 + 600D + E6808D + East Asian ideograph + + + 222B46 + 6010 + E68090 + East Asian ideograph + + + 222B4B + 6039 + E680B9 + East Asian ideograph + + + 222B50 + 6013 + E68093 + East Asian ideograph + + + 222B53 + 6054 + E68194 + East Asian ideograph + + + 222B57 + 605D + E6819D + East Asian ideograph + + + 222B5A + 6047 + E68187 + East Asian ideograph + + + 222B5E + 6049 + E68189 + East Asian ideograph + + + 222B5F + 6053 + E68193 + East Asian ideograph + + + 222B68 + 6067 + E681A7 + East Asian ideograph + + + 222B6F + 604C + E6818C + East Asian ideograph + + + 222B71 + 6041 + E68181 + East Asian ideograph + + + 222B72 + 6077 + E681B7 + East Asian ideograph + + + 222B74 + 6042 + E68182 + East Asian ideograph + + + 222B76 + 605F + E6819F + East Asian ideograph + + + 222B7A + 6061 + E681A1 + East Asian ideograph + + + 222C24 + 608A + E6828A + East Asian ideograph + + + 222C2B + 6092 + E68292 + East Asian ideograph + + + 222C2C + 609D + E6829D + East Asian ideograph + + + 222C2D + 6081 + E68281 + East Asian ideograph + + + 222C2F + 609E + E6829E + East Asian ideograph + + + 222C30 + 6083 + E68283 + East Asian ideograph + + + 222C32 + 6097 + E68297 + East Asian ideograph + + + 222C34 + 60A7 + E682A7 + East Asian ideograph + + + 222C3A + 6095 + E68295 + East Asian ideograph + + + 222C3E + 60C7 + E68387 + East Asian ideograph + + + 222C42 + 60B0 + E682B0 + East Asian ideograph + + + 222C46 + 60BE + E682BE + East Asian ideograph + + + 222C47 + 60D3 + E68393 + East Asian ideograph + + + 222C48 + 60D4 + E68394 + East Asian ideograph + + + 222C4E + 60CE + E6838E + East Asian ideograph + + + 222C51 + 60CF + E6838F + East Asian ideograph + + + 222C53 + 60D9 + E68399 + East Asian ideograph + + + 222C54 + 60B3 + E682B3 + East Asian ideograph + + + 222C56 + 60DD + E6839D + East Asian ideograph + + + 222C5D + 60C4 + E68384 + East Asian ideograph + + + 222C60 + 60B1 + E682B1 + East Asian ideograph + + + 222C62 + 60E3 + E683A3 + East Asian ideograph + + + 222C66 + 60E2 + E683A2 + East Asian ideograph + + + 222C67 + 60E5 + E683A5 + East Asian ideograph + + + 222C69 + 60DB + E6839B + East Asian ideograph + + + 222C6E + 60E9 + E683A9 + East Asian ideograph + + + 222C70 + 6114 + E68494 + East Asian ideograph + + + 222C73 + 6103 + E68483 + East Asian ideograph + + + 222C75 + 6119 + E68499 + East Asian ideograph + + + 222C7C + 60FD + E683BD + East Asian ideograph + + + 222C7D + 610D + E6848D + East Asian ideograph + + + 222D2A + 610A + E6848A + East Asian ideograph + + + 222D2C + 6110 + E68490 + East Asian ideograph + + + 222D32 + 6112 + E68492 + East Asian ideograph + + + 222D34 + 60F2 + E683B2 + East Asian ideograph + + + 222D37 + 6125 + E684A5 + East Asian ideograph + + + 222D3B + 60F8 + E683B8 + East Asian ideograph + + + 222D3F + 6121 + E684A1 + East Asian ideograph + + + 222D41 + 60FC + E683BC + East Asian ideograph + + + 222D43 + 6106 + E68486 + East Asian ideograph + + + 222D48 + 6149 + E68589 + East Asian ideograph + + + 222D4A + 614A + E6858A + East Asian ideograph + + + 222D4E + 612B + E684AB + East Asian ideograph + + + 222D50 + 6129 + E684A9 + East Asian ideograph + + + 222D51 + 6150 + E68590 + East Asian ideograph + + + 222D56 + 53AF + E58EAF + East Asian ideograph + + + 222D58 + 6130 + E684B0 + East Asian ideograph + + + 222D5B + 6141 + E68581 + East Asian ideograph + + + 222D5E + 6137 + E684B7 + East Asian ideograph + + + 222D61 + 6146 + E68586 + East Asian ideograph + + + 222D66 + 615E + E6859E + East Asian ideograph + + + 222D67 + 6175 + E685B5 + East Asian ideograph + + + 222D68 + 6174 + E685B4 + East Asian ideograph + + + 222D6B + 6183 + E68683 + East Asian ideograph + + + 222D70 + 6171 + E685B1 + East Asian ideograph + + + 222D74 + 616A + E685AA + East Asian ideograph + + + 222D77 + 6173 + E685B3 + East Asian ideograph + + + 222D79 + 6164 + E685A4 + East Asian ideograph + + + 222D7B + 6153 + E68593 + East Asian ideograph + + + 222E23 + 618B + E6868B + East Asian ideograph + + + 222E2C + 616F + E685AF + East Asian ideograph + + + 222E2D + 6165 + E685A5 + East Asian ideograph + + + 222E2F + 615C + E6859C + East Asian ideograph + + + 222E32 + 619D + E6869D + East Asian ideograph + + + 222E33 + 61A6 + E686A6 + East Asian ideograph + + + 222E3D + 61A2 + E686A2 + East Asian ideograph + + + 222E40 + 61A8 + E686A8 + East Asian ideograph + + + 222E42 + 619C + E6869C + East Asian ideograph + + + 222E43 + 61AF + E686AF + East Asian ideograph + + + 222E45 + 6196 + E68696 + East Asian ideograph + + + 222E46 + 6197 + E68697 + East Asian ideograph + + + 222E47 + 61AD + E686AD + East Asian ideograph + + + 222E4C + 6192 + E68692 + East Asian ideograph + + + 222E52 + 61AE + E686AE + East Asian ideograph + + + 222E55 + 618D + E6868D + East Asian ideograph + + + 222E5A + 61CB + E6878B + East Asian ideograph + + + 222E5C + 61CC + E6878C + East Asian ideograph + + + 222E5D + 61C6 + E68786 + East Asian ideograph + + + 222E68 + 61BA + E686BA + East Asian ideograph + + + 222E6A + 61B8 + E686B8 + East Asian ideograph + + + 222E71 + 61E0 + E687A0 + East Asian ideograph + + + 222E77 + 61E5 + E687A5 + East Asian ideograph + + + 222E7D + 61DC + E6879C + East Asian ideograph + + + 222E7E + 61DF + E6879F + East Asian ideograph + + + 222F29 + 61F3 + E687B3 + East Asian ideograph + + + 222F3D + 6201 + E68881 + East Asian ideograph + + + 222F41 + 6204 + E68884 + East Asian ideograph + + + 222F43 + 6207 + E68887 + East Asian ideograph + + + 222F44 + 6209 + E68889 + East Asian ideograph + + + 222F47 + 6214 + E68894 + East Asian ideograph + + + 222F56 + 6223 + E688A3 + East Asian ideograph + + + 222F5B + 6225 + E688A5 + East Asian ideograph + + + 222F5D + 6224 + E688A4 + East Asian ideograph + + + 222F61 + 6229 + E688A9 + East Asian ideograph + + + 222F67 + 622D + E688AD + East Asian ideograph + + + 222F69 + 97EF + E99FAF + East Asian ideograph + + + 222F6E + 6239 + E688B9 + East Asian ideograph + + + 222F6F + 623A + E688BA + East Asian ideograph + + + 222F70 + 623D + E688BD + East Asian ideograph + + + 222F75 + 6243 + E68983 + East Asian ideograph + + + 222F77 + 6246 + E68986 + East Asian ideograph + + + 222F78 + 6245 + E68985 + East Asian ideograph + + + 222F79 + 624A + E6898A + East Asian ideograph + + + 222F7A + 6250 + E68990 + East Asian ideograph + + + 222F7C + 625E + E6899E + East Asian ideograph + + + 223026 + 6268 + E689A8 + East Asian ideograph + + + 223028 + 6260 + E689A0 + East Asian ideograph + + + 22302B + 625A + E6899A + East Asian ideograph + + + 22302C + 6262 + E689A2 + East Asian ideograph + + + 22302D + 6266 + E689A6 + East Asian ideograph + + + 223031 + 6286 + E68A86 + East Asian ideograph + + + 223032 + 628E + E68A8E + East Asian ideograph + + + 223041 + 62A3 + E68AA3 + East Asian ideograph + + + 223043 + 6282 + E68A82 + East Asian ideograph + + + 223046 + 6285 + E68A85 + East Asian ideograph + + + 22304B + 629D + E68A9D + East Asian ideograph + + + 223056 + 62A6 + E68AA6 + East Asian ideograph + + + 223057 + 62D1 + E68B91 + East Asian ideograph + + + 223061 + 62E4 + E68BA4 + East Asian ideograph + + + 223069 + 62B6 + E68AB6 + East Asian ideograph + + + 22306A + 62C3 + E68B83 + East Asian ideograph + + + 223072 + 630D + E68C8D + East Asian ideograph + + + 223125 + 62F5 + E68BB5 + East Asian ideograph + + + 223131 + 630C + E68C8C + East Asian ideograph + + + 223132 + 6360 + E68DA0 + East Asian ideograph + + + 223137 + 62F6 + E68BB6 + East Asian ideograph + + + 22313A + 6331 + E68CB1 + East Asian ideograph + + + 223142 + 6345 + E68D85 + East Asian ideograph + + + 223144 + 6343 + E68D83 + East Asian ideograph + + + 223145 + 6335 + E68CB5 + East Asian ideograph + + + 223147 + 6353 + E68D93 + East Asian ideograph + + + 223148 + 6364 + E68DA4 + East Asian ideograph + + + 223149 + 6336 + E68CB6 + East Asian ideograph + + + 22314A + 6344 + E68D84 + East Asian ideograph + + + 223154 + 6339 + E68CB9 + East Asian ideograph + + + 223158 + 6357 + E68D97 + East Asian ideograph + + + 22315A + 633C + E68CBC + East Asian ideograph + + + 22315B + 6358 + E68D98 + East Asian ideograph + + + 22315C + 634B + E68D8B + East Asian ideograph + + + 22315F + 6354 + E68D94 + East Asian ideograph + + + 223168 + 637D + E68DBD + East Asian ideograph + + + 22316A + 63B6 + E68EB6 + East Asian ideograph + + + 22316B + 6382 + E68E82 + East Asian ideograph + + + 22316C + 636C + E68DAC + East Asian ideograph + + + 22316E + 639F + E68E9F + East Asian ideograph + + + 223172 + 639E + E68E9E + East Asian ideograph + + + 223173 + 637F + E68DBF + East Asian ideograph + + + 223179 + 6381 + E68E81 + East Asian ideograph + + + 22317B + 6397 + E68E97 + East Asian ideograph + + + 22317D + 63AB + E68EAB + East Asian ideograph + + + 223225 + 6387 + E68E87 + East Asian ideograph + + + 223226 + 637A + E68DBA + East Asian ideograph + + + 223227 + 638E + E68E8E + East Asian ideograph + + + 22322A + 6386 + E68E86 + East Asian ideograph + + + 22322F + 6375 + E68DB5 + East Asian ideograph + + + 223230 + 63AF + E68EAF + East Asian ideograph + + + 223237 + 63B1 + E68EB1 + East Asian ideograph + + + 223238 + 63B0 + E68EB0 + East Asian ideograph + + + 223239 + 63AE + E68EAE + East Asian ideograph + + + 22323A + 637C + E68DBC + East Asian ideograph + + + 22323B + 6390 + E68E90 + East Asian ideograph + + + 22323D + 63AD + E68EAD + East Asian ideograph + + + 223241 + 636D + E68DAD + East Asian ideograph + + + 223243 + 63DE + E68F9E + East Asian ideograph + + + 223244 + 63E5 + E68FA5 + East Asian ideograph + + + 223247 + 63D3 + E68F93 + East Asian ideograph + + + 22324F + 63BD + E68EBD + East Asian ideograph + + + 223250 + 63C3 + E68F83 + East Asian ideograph + + + 223252 + 63F5 + E68FB5 + East Asian ideograph + + + 223258 + 63E6 + E68FA6 + East Asian ideograph + + + 22325B + 63E0 + E68FA0 + East Asian ideograph + + + 22325C + 63D5 + E68F95 + East Asian ideograph + + + 22325D + 63F6 + E68FB6 + East Asian ideograph + + + 22325E + 63F2 + E68FB2 + East Asian ideograph + + + 22325F + 63F8 + E68FB8 + East Asian ideograph + + + 223266 + 63C5 + E68F85 + East Asian ideograph + + + 22326A + 63F9 + E68FB9 + East Asian ideograph + + + 223270 + 63BE + E68EBE + East Asian ideograph + + + 223272 + 63EB + E68FAB + East Asian ideograph + + + 223273 + 63DD + E68F9D + East Asian ideograph + + + 223276 + 63D1 + E68F91 + East Asian ideograph + + + 223279 + 63C4 + E68F84 + East Asian ideograph + + + 22327A + 63DC + E68F9C + East Asian ideograph + + + 22327B + 63D7 + E68F97 + East Asian ideograph + + + 22327E + 6412 + E69092 + East Asian ideograph + + + 223322 + 6410 + E69090 + East Asian ideograph + + + 223324 + 6434 + E690B4 + East Asian ideograph + + + 223329 + 641B + E6909B + East Asian ideograph + + + 22332B + 6420 + E690A0 + East Asian ideograph + + + 22332C + 6424 + E690A4 + East Asian ideograph + + + 22332F + 6426 + E690A6 + East Asian ideograph + + + 223331 + 640C + E6908C + East Asian ideograph + + + 223336 + 6415 + E69095 + East Asian ideograph + + + 223337 + 6418 + E69098 + East Asian ideograph + + + 223338 + 640E + E6908E + East Asian ideograph + + + 223339 + 22C4D + + East Asian ideograph (Unicode CJK Extension B) + + + 22333B + 6422 + E690A2 + East Asian ideograph + + + 22333D + 6421 + E690A1 + East Asian ideograph + + + 223344 + 6430 + E690B0 + East Asian ideograph + + + 223345 + 6441 + E69181 + East Asian ideograph + + + 223348 + 6435 + E690B5 + East Asian ideograph + + + 22334C + 6409 + E69089 + East Asian ideograph + + + 223351 + 640A + E6908A + East Asian ideograph + + + 223353 + 6440 + E69180 + East Asian ideograph + + + 223359 + 6407 + E69087 + East Asian ideograph + + + 22335B + 643B + E690BB + East Asian ideograph + + + 22335D + 643F + E690BF + East Asian ideograph + + + 223368 + 645B + E6919B + East Asian ideograph + + + 22336A + 644F + E6918F + East Asian ideograph + + + 22336C + 646B + E691AB + East Asian ideograph + + + 22336F + 6476 + E691B6 + East Asian ideograph + + + 223376 + 6474 + E691B4 + East Asian ideograph + + + 223378 + 647D + E691BD + East Asian ideograph + + + 22337B + 6473 + E691B3 + East Asian ideograph + + + 223423 + 644E + E6918E + East Asian ideograph + + + 223424 + 6464 + E691A4 + East Asian ideograph + + + 223427 + 6482 + E69282 + East Asian ideograph + + + 223428 + 645E + E6919E + East Asian ideograph + + + 22342C + 647B + E691BB + East Asian ideograph + + + 22342E + 645C + E6919C + East Asian ideograph + + + 22343C + 649D + E6929D + East Asian ideograph + + + 22343F + 6499 + E69299 + East Asian ideograph + + + 223442 + 648F + E6928F + East Asian ideograph + + + 22344D + 6496 + E69296 + East Asian ideograph + + + 22344E + 64A2 + E692A2 + East Asian ideograph + + + 223454 + 6490 + E69290 + East Asian ideograph + + + 22345B + 64B6 + E692B6 + East Asian ideograph + + + 223461 + 6498 + E69298 + East Asian ideograph + + + 223462 + 649F + E6929F + East Asian ideograph + + + 223465 + 64A7 + E692A7 + East Asian ideograph + + + 223466 + 64B3 + E692B3 + East Asian ideograph + + + 22346A + 64D7 + E69397 + East Asian ideograph + + + 22346C + 64D3 + E69393 + East Asian ideograph + + + 223474 + 64BE + E692BE + East Asian ideograph + + + 223475 + 64D0 + E69390 + East Asian ideograph + + + 22352A + 64EF + E693AF + East Asian ideograph + + + 22352D + 64E1 + E693A1 + East Asian ideograph + + + 22352E + 64E5 + E693A5 + East Asian ideograph + + + 223531 + 64EB + E693AB + East Asian ideograph + + + 223533 + 64E2 + E693A2 + East Asian ideograph + + + 223536 + 64ED + E693AD + East Asian ideograph + + + 223538 + 64E4 + E693A4 + East Asian ideograph + + + 223542 + 64F7 + E693B7 + East Asian ideograph + + + 223546 + 6504 + E69484 + East Asian ideograph + + + 22354B + 64FD + E693BD + East Asian ideograph + + + 22354F + 6508 + E69488 + East Asian ideograph + + + 223553 + 6509 + E69489 + East Asian ideograph + + + 223559 + 651A + E6949A + East Asian ideograph + + + 22355B + 6516 + E69496 + East Asian ideograph + + + 223561 + 651B + E6949B + East Asian ideograph + + + 223569 + 6527 + E694A7 + East Asian ideograph + + + 22356D + 6522 + E694A2 + East Asian ideograph + + + 22356F + 6529 + E694A9 + East Asian ideograph + + + 223572 + 6525 + E694A5 + East Asian ideograph + + + 223577 + 652E + E694AE + East Asian ideograph + + + 22357C + 6541 + E69581 + East Asian ideograph + + + 22362C + 6538 + E694B8 + East Asian ideograph + + + 223634 + 6542 + E69582 + East Asian ideograph + + + 223636 + 6549 + E69589 + East Asian ideograph + + + 22363E + 6554 + E69594 + East Asian ideograph + + + 22363F + 6555 + E69595 + East Asian ideograph + + + 223645 + 6567 + E695A7 + East Asian ideograph + + + 223647 + 6561 + E695A1 + East Asian ideograph + + + 22364F + 656D + E695AD + East Asian ideograph + + + 223654 + 657A + E695BA + East Asian ideograph + + + 223664 + 6585 + E69685 + East Asian ideograph + + + 22366E + 658C + E6968C + East Asian ideograph + + + 223670 + 6592 + E69692 + East Asian ideograph + + + 223671 + 6595 + E69695 + East Asian ideograph + + + 223675 + 659B + E6969B + East Asian ideograph + + + 223677 + 659D + E6969D + East Asian ideograph + + + 22367A + 65A0 + E696A0 + East Asian ideograph + + + 223722 + 65A8 + E696A8 + East Asian ideograph + + + 223723 + 65A6 + E696A6 + East Asian ideograph + + + 223727 + 65AE + E696AE + East Asian ideograph + + + 22372A + 65B6 + E696B6 + East Asian ideograph + + + 22372C + 65B8 + E696B8 + East Asian ideograph + + + 22372F + 65BF + E696BF + East Asian ideograph + + + 223731 + 65C6 + E69786 + East Asian ideograph + + + 223732 + 65C3 + E69783 + East Asian ideograph + + + 223733 + 65C4 + E69784 + East Asian ideograph + + + 223734 + 65C2 + E69782 + East Asian ideograph + + + 22373B + 65D0 + E69790 + East Asian ideograph + + + 22373C + 65D2 + E69792 + East Asian ideograph + + + 223744 + 65DB + E6979B + East Asian ideograph + + + 223745 + 65DC + E6979C + East Asian ideograph + + + 223747 + 65DD + E6979D + East Asian ideograph + + + 223748 + 65DF + E6979F + East Asian ideograph + + + 22374A + 65E1 + E697A1 + East Asian ideograph + + + 22374E + 65E4 + E697A4 + East Asian ideograph + + + 223754 + 65F4 + E697B4 + East Asian ideograph + + + 223755 + 65F0 + E697B0 + East Asian ideograph + + + 22375A + 6609 + E69889 + East Asian ideograph + + + 22375B + 65FB + E697BB + East Asian ideograph + + + 22375C + 65FC + E697BC + East Asian ideograph + + + 22375E + 660A + E6988A + East Asian ideograph + + + 223764 + 6603 + E69883 + East Asian ideograph + + + 22376A + 6611 + E69891 + East Asian ideograph + + + 22376B + 6615 + E69895 + East Asian ideograph + + + 22376D + 6604 + E69884 + East Asian ideograph + + + 22376E + 6631 + E698B1 + East Asian ideograph + + + 223772 + 6621 + E698A1 + East Asian ideograph + + + 223775 + 662C + E698AC + East Asian ideograph + + + 223777 + 6635 + E698B5 + East Asian ideograph + + + 22377C + 661E + E6989E + East Asian ideograph + + + 22377D + 663A + E698BA + East Asian ideograph + + + 223827 + 6633 + E698B3 + East Asian ideograph + + + 223828 + 662B + E698AB + East Asian ideograph + + + 22382B + 6634 + E698B4 + East Asian ideograph + + + 22382C + 6624 + E698A4 + East Asian ideograph + + + 223831 + 6645 + E69985 + East Asian ideograph + + + 223832 + 665F + E6999F + East Asian ideograph + + + 22383D + 6665 + E699A5 + East Asian ideograph + + + 22383E + 665C + E6999C + East Asian ideograph + + + 22383F + 6661 + E699A1 + East Asian ideograph + + + 223848 + 665B + E6999B + East Asian ideograph + + + 223849 + 6659 + E69999 + East Asian ideograph + + + 22384A + 6667 + E699A7 + East Asian ideograph + + + 22384C + 665E + E6999E + East Asian ideograph + + + 22384D + 6657 + E69997 + East Asian ideograph + + + 223850 + 667E + E699BE + East Asian ideograph + + + 223851 + 666C + E699AC + East Asian ideograph + + + 22385A + 6678 + E699B8 + East Asian ideograph + + + 223860 + 6673 + E699B3 + East Asian ideograph + + + 223866 + 666D + E699AD + East Asian ideograph + + + 223868 + 6677 + E699B7 + East Asian ideograph + + + 223870 + 6684 + E69A84 + East Asian ideograph + + + 223871 + 668C + E69A8C + East Asian ideograph + + + 223872 + 6693 + E69A93 + East Asian ideograph + + + 223875 + 668B + E69A8B + East Asian ideograph + + + 223876 + 6690 + E69A90 + East Asian ideograph + + + 223879 + 6694 + E69A94 + East Asian ideograph + + + 22387A + 668A + E69A8A + East Asian ideograph + + + 22387C + 6698 + E69A98 + East Asian ideograph + + + 22387D + 668D + E69A8D + East Asian ideograph + + + 223924 + 7A25 + E7A8A5 + East Asian ideograph + + + 22392A + 66A0 + E69AA0 + East Asian ideograph + + + 223930 + 5C21 + E5B0A1 + East Asian ideograph + + + 223932 + 669D + E69A9D + East Asian ideograph + + + 22393A + 66B2 + E69AB2 + East Asian ideograph + + + 223940 + 66B5 + E69AB5 + East Asian ideograph + + + 223941 + 66AA + E69AAA + East Asian ideograph + + + 223943 + 66AC + E69AAC + East Asian ideograph + + + 223947 + 66B1 + E69AB1 + East Asian ideograph + + + 22394E + 66C8 + E69B88 + East Asian ideograph + + + 22394F + 66BE + E69ABE + East Asian ideograph + + + 223954 + 66C0 + E69B80 + East Asian ideograph + + + 223955 + 66C7 + E69B87 + East Asian ideograph + + + 22395A + 66BB + E69ABB + East Asian ideograph + + + 22395C + 66C4 + E69B84 + East Asian ideograph + + + 223960 + 66CF + E69B8F + East Asian ideograph + + + 223971 + 66DA + E69B9A + East Asian ideograph + + + 223972 + 66DB + E69B9B + East Asian ideograph + + + 223973 + 66E2 + E69BA2 + East Asian ideograph + + + 223976 + 66E1 + E69BA1 + East Asian ideograph + + + 223978 + 66E8 + E69BA8 + East Asian ideograph + + + 22397C + 66E9 + E69BA9 + East Asian ideograph + + + 223A28 + 6705 + E69C85 + East Asian ideograph + + + 223A30 + 670F + E69C8F + East Asian ideograph + + + 223A31 + 6710 + E69C90 + East Asian ideograph + + + 223A33 + 6712 + E69C92 + East Asian ideograph + + + 223A34 + 6713 + E69C93 + East Asian ideograph + + + 223A38 + 6719 + E69C99 + East Asian ideograph + + + 223A39 + 6718 + E69C98 + East Asian ideograph + + + 223A47 + 6723 + E69CA3 + East Asian ideograph + + + 223A4C + 673E + E69CBE + East Asian ideograph + + + 223A4E + 673F + E69CBF + East Asian ideograph + + + 223A58 + 6757 + E69D97 + East Asian ideograph + + + 223A5B + 6745 + E69D85 + East Asian ideograph + + + 223A5C + 6747 + E69D87 + East Asian ideograph + + + 223A60 + 675D + E69D9D + East Asian ideograph + + + 223A61 + 6755 + E69D95 + East Asian ideograph + + + 223A66 + 674C + E69D8C + East Asian ideograph + + + 223A67 + 6759 + E69D99 + East Asian ideograph + + + 223A68 + 6748 + E69D88 + East Asian ideograph + + + 223A6B + 6763 + E69DA3 + East Asian ideograph + + + 223A6E + 6753 + E69D93 + East Asian ideograph + + + 223A71 + 674A + E69D8A + East Asian ideograph + + + 223A75 + 6793 + E69E93 + East Asian ideograph + + + 223A78 + 677C + E69DBC + East Asian ideograph + + + 223A7A + 679F + E69E9F + East Asian ideograph + + + 223A7C + 6785 + E69E85 + East Asian ideograph + + + 223B21 + 677B + E69DBB + East Asian ideograph + + + 223B22 + 6792 + E69E92 + East Asian ideograph + + + 223B23 + 6776 + E69DB6 + East Asian ideograph + + + 223B25 + 6791 + E69E91 + East Asian ideograph + + + 223B26 + 6799 + E69E99 + East Asian ideograph + + + 223B28 + 67A4 + E69EA4 + East Asian ideograph + + + 223B2E + 678F + E69E8F + East Asian ideograph + + + 223B30 + 6772 + E69DB2 + East Asian ideograph + + + 223B31 + 6798 + E69E98 + East Asian ideograph (variant of EACC 4C3B31) + + + 223B32 + 676A + E69DAA + East Asian ideograph + + + 223B39 + 67AC + E69EAC + East Asian ideograph + + + 223B3B + 67A0 + E69EA0 + East Asian ideograph + + + 223B3F + 67A1 + E69EA1 + East Asian ideograph + + + 223B44 + 67F9 + E69FB9 + East Asian ideograph + + + 223B48 + 678D + E69E8D + East Asian ideograph + + + 223B49 + 678C + E69E8C + East Asian ideograph + + + 223B4C + 67FC + E69FBC + East Asian ideograph + + + 223B4E + 6810 + E6A090 + East Asian ideograph + + + 223B51 + 67C8 + E69F88 + East Asian ideograph + + + 223B54 + 67CC + E69F8C + East Asian ideograph + + + 223B58 + 67C5 + E69F85 + East Asian ideograph + + + 223B5C + 67BB + E69EBB + East Asian ideograph + + + 223B5F + 67B0 + E69EB0 + East Asian ideograph + + + 223B60 + 6803 + E6A083 + East Asian ideograph + + + 223B61 + 67F8 + E69FB8 + East Asian ideograph + + + 223B63 + 67D8 + E69F98 + East Asian ideograph + + + 223B64 + 67B7 + E69EB7 + East Asian ideograph + + + 223B6D + 6802 + E6A082 + East Asian ideograph + + + 223B6F + 67E4 + E69FA4 + East Asian ideograph + + + 223B70 + 67D9 + E69F99 + East Asian ideograph + + + 223B71 + 67DB + E69F9B + East Asian ideograph + + + 223B72 + 67B5 + E69EB5 + East Asian ideograph + + + 223B74 + 67DF + E69F9F + East Asian ideograph + + + 223B75 + 67F7 + E69FB7 + East Asian ideograph + + + 223B77 + 67B3 + E69EB3 + East Asian ideograph + + + 223B78 + 6806 + E6A086 + East Asian ideograph + + + 223B79 + 67AE + E69EAE + East Asian ideograph + + + 223B7A + 67F6 + E69FB6 + East Asian ideograph + + + 223B7C + 67EE + E69FAE + East Asian ideograph + + + 223B7D + 6AAF + E6AAAF + East Asian ideograph + + + 223B7E + 67B2 + E69EB2 + East Asian ideograph + + + 223C21 + 67B9 + E69EB9 + East Asian ideograph + + + 223C23 + 67C2 + E69F82 + East Asian ideograph + + + 223C24 + 67E3 + E69FA3 + East Asian ideograph + + + 223C26 + 67CA + E69F8A + East Asian ideograph + + + 223C28 + 67CE + E69F8E + East Asian ideograph + + + 223C29 + 67E2 + E69FA2 + East Asian ideograph + + + 223C2A + 67F2 + E69FB2 + East Asian ideograph + + + 223C2B + 67C3 + E69F83 + East Asian ideograph + + + 223C2D + 67DD + E69F9D + East Asian ideograph + + + 223C2F + 67E7 + E69FA7 + East Asian ideograph + + + 223C30 + 6849 + E6A189 + East Asian ideograph + + + 223C31 + 683E + E6A0BE + East Asian ideograph + + + 223C36 + 6814 + E6A094 + East Asian ideograph + + + 223C37 + 684B + E6A18B + East Asian ideograph + + + 223C38 + 681E + E6A09E + East Asian ideograph + + + 223C3B + 6833 + E6A0B3 + East Asian ideograph + + + 223C40 + 6831 + E6A0B1 + East Asian ideograph + + + 223C41 + 6832 + E6A0B2 + East Asian ideograph + + + 223C42 + 6835 + E6A0B5 + East Asian ideograph + + + 223C43 + 683B + E6A0BB + East Asian ideograph + + + 223C44 + 684E + E6A18E + East Asian ideograph + + + 223C47 + 682B + E6A0AB + East Asian ideograph + + + 223C48 + 682D + E6A0AD + East Asian ideograph + + + 223C4A + 684D + E6A18D + East Asian ideograph + + + 223C4F + 6844 + E6A184 + East Asian ideograph + + + 223C55 + 685D + E6A19D + East Asian ideograph + + + 223C56 + 685E + E6A19E + East Asian ideograph + + + 223C58 + 6834 + E6A0B4 + East Asian ideograph + + + 223C59 + 6812 + E6A092 + East Asian ideograph + + + 223C65 + 685A + E6A19A + East Asian ideograph + + + 223C68 + 686B + E6A1AB + East Asian ideograph + + + 223C69 + 686C + E6A1AC + East Asian ideograph + + + 223C6B + 6879 + E6A1B9 + East Asian ideograph + + + 223C6E + 68B2 + E6A2B2 + East Asian ideograph + + + 223C71 + 689B + E6A29B + East Asian ideograph + + + 223C72 + 687E + E6A1BE + East Asian ideograph + + + 223C74 + 68B6 + E6A2B6 + East Asian ideograph + + + 223C76 + 6882 + E6A282 + East Asian ideograph + + + 223C7A + 6890 + E6A290 + East Asian ideograph + + + 223D21 + 6872 + E6A1B2 + East Asian ideograph + + + 223D22 + 689C + E6A29C + East Asian ideograph + + + 223D25 + 686D + E6A1AD + East Asian ideograph + + + 223D2E + 68A9 + E6A2A9 + East Asian ideograph + + + 223D30 + 6898 + E6A298 + East Asian ideograph + + + 223D32 + 688B + E6A28B + East Asian ideograph + + + 223D33 + 68A0 + E6A2A0 + East Asian ideograph + + + 223D34 + 686F + E6A1AF + East Asian ideograph + + + 223D39 + 68A3 + E6A2A3 + East Asian ideograph + + + 223D3B + 6874 + E6A1B4 + East Asian ideograph + + + 223D3C + 6875 + E6A1B5 + East Asian ideograph + + + 223D3F + 6877 + E6A1B7 + East Asian ideograph + + + 223D40 + 688F + E6A28F + East Asian ideograph + + + 223D43 + 687B + E6A1BB + East Asian ideograph + + + 223D44 + 688E + E6A28E + East Asian ideograph + + + 223D4B + 68B4 + E6A2B4 + East Asian ideograph + + + 223D50 + 692C + E6A4AC + East Asian ideograph + + + 223D51 + 6917 + E6A497 + East Asian ideograph + + + 223D53 + 690C + E6A48C + East Asian ideograph + + + 223D56 + 690B + E6A48B + East Asian ideograph + + + 223D58 + 68D3 + E6A393 + East Asian ideograph + + + 223D59 + 6904 + E6A484 + East Asian ideograph + + + 223D5B + 690A + E6A48A + East Asian ideograph + + + 223D5C + 6909 + E6A489 + East Asian ideograph + + + 223D5D + 6929 + E6A4A9 + East Asian ideograph + + + 223D62 + 68EC + E6A3AC + East Asian ideograph + + + 223D63 + 692A + E6A4AA + East Asian ideograph + + + 223D64 + 68EA + E6A3AA + East Asian ideograph + + + 223D65 + 681F + E6A09F + East Asian ideograph + + + 223D66 + 7439 + E790B9 + East Asian ideograph + + + 223D6A + 6910 + E6A490 + East Asian ideograph + + + 223D6E + 68D6 + E6A396 + East Asian ideograph + + + 223D6F + 68EB + E6A3AB + East Asian ideograph + + + 223D73 + 68F1 + E6A3B1 + East Asian ideograph + + + 223D78 + 68FD + E6A3BD + East Asian ideograph + + + 223D79 + 68FC + E6A3BC + East Asian ideograph + + + 223D7B + 68F3 + E6A3B3 + East Asian ideograph + + + 223D7C + 6913 + E6A493 + East Asian ideograph + + + 223E21 + 6907 + E6A487 + East Asian ideograph + + + 223E23 + 691A + E6A49A + East Asian ideograph + + + 223E24 + 6919 + E6A499 + East Asian ideograph + + + 223E2A + 68DE + E6A39E + East Asian ideograph + + + 223E2B + 691B + E6A49B + East Asian ideograph + + + 223E2D + 68FB + E6A3BB + East Asian ideograph + + + 223E33 + 68E1 + E6A3A1 + East Asian ideograph + + + 223E37 + 68D1 + E6A391 + East Asian ideograph + + + 223E38 + 68D0 + E6A390 + East Asian ideograph + + + 223E39 + 6908 + E6A488 + East Asian ideograph + + + 223E3E + 68E8 + E6A3A8 + East Asian ideograph + + + 223E3F + 68F0 + E6A3B0 + East Asian ideograph + + + 223E40 + 68C3 + E6A383 + East Asian ideograph + + + 223E44 + 6911 + E6A491 + East Asian ideograph + + + 223E46 + 68D4 + E6A394 + East Asian ideograph + + + 223E47 + 68EF + E6A3AF + East Asian ideograph + + + 223E49 + 68C6 + E6A386 + East Asian ideograph + + + 223E4B + 68C7 + E6A387 + East Asian ideograph + + + 223E53 + 6974 + E6A5B4 + East Asian ideograph + + + 223E55 + 6938 + E6A4B8 + East Asian ideograph + + + 223E58 + 6962 + E6A5A2 + East Asian ideograph + + + 223E5D + 6958 + E6A598 + East Asian ideograph + + + 223E5F + 6957 + E6A597 + East Asian ideograph + + + 223E60 + 693F + E6A4BF + East Asian ideograph + + + 223E61 + 6971 + E6A5B1 + East Asian ideograph + + + 223E64 + 6945 + E6A585 + East Asian ideograph + + + 223E65 + 695D + E6A59D + East Asian ideograph + + + 223E66 + 6932 + E6A4B2 + East Asian ideograph + + + 223E69 + 696E + E6A5AE + East Asian ideograph + + + 223E6A + 6963 + E6A5A3 + East Asian ideograph + + + 223E6B + 6948 + E6A588 + East Asian ideograph + + + 223E6E + 6939 + E6A4B9 + East Asian ideograph + + + 223E70 + 696A + E6A5AA + East Asian ideograph + + + 223E73 + 6937 + E6A4B7 + East Asian ideograph + + + 223E7A + 696C + E6A5AC + East Asian ideograph + + + 223E7B + 694E + E6A58E + East Asian ideograph + + + 223E7D + 6980 + E6A680 + East Asian ideograph + + + 223E7E + 6933 + E6A4B3 + East Asian ideograph + + + 223F21 + 6952 + E6A592 + East Asian ideograph + + + 223F25 + 695B + E6A59B + East Asian ideograph + + + 223F2D + 6985 + E6A685 + East Asian ideograph + + + 223F32 + 693D + E6A4BD + East Asian ideograph + + + 223F35 + 6978 + E6A5B8 + East Asian ideograph + + + 223F37 + 697B + E6A5BB + East Asian ideograph + + + 223F3A + 6934 + E6A4B4 + East Asian ideograph + + + 223F3B + 6969 + E6A5A9 + East Asian ideograph + + + 223F3D + 6944 + E6A584 + East Asian ideograph + + + 223F3E + 696F + E6A5AF + East Asian ideograph + + + 223F44 + 698A + E6A68A + East Asian ideograph + + + 223F45 + 69A0 + E6A6A0 + East Asian ideograph + + + 223F46 + 69B1 + E6A6B1 + East Asian ideograph + + + 223F50 + 69CE + E6A78E + East Asian ideograph + + + 223F51 + 69CA + E6A78A + East Asian ideograph + + + 223F59 + 698D + E6A68D + East Asian ideograph + + + 223F5A + 6991 + E6A691 + East Asian ideograph + + + 223F5C + 69AA + E6A6AA + East Asian ideograph + + + 223F60 + 69BC + E6A6BC + East Asian ideograph + + + 223F61 + 69A7 + E6A6A7 + East Asian ideograph + + + 223F65 + 699E + E6A69E + East Asian ideograph + + + 223F68 + 69D9 + E6A799 + East Asian ideograph + + + 223F6A + 698E + E6A68E + East Asian ideograph + + + 223F6D + 69D6 + E6A796 + East Asian ideograph + + + 223F75 + 69A5 + E6A6A5 + East Asian ideograph + + + 223F77 + 69BE + E6A6BE + East Asian ideograph + + + 223F78 + 69D1 + E6A791 + East Asian ideograph + + + 223F7A + 69F6 + E6A7B6 + East Asian ideograph + + + 223F7E + 69D5 + E6A795 + East Asian ideograph + + + 224027 + 69BF + E6A6BF + East Asian ideograph + + + 22402D + 69A3 + E6A6A3 + East Asian ideograph + + + 22402E + 69A4 + E6A6A4 + East Asian ideograph + + + 224034 + 69D4 + E6A794 + East Asian ideograph + + + 224038 + 69C3 + E6A783 + East Asian ideograph + + + 22403D + 6A12 + E6A892 + East Asian ideograph + + + 22403E + 6A11 + E6A891 + East Asian ideograph + + + 224041 + 6A00 + E6A880 + East Asian ideograph + + + 224046 + 69E6 + E6A7A6 + East Asian ideograph + + + 22404B + 6A0B + E6A88B + East Asian ideograph + + + 22404C + 69E5 + E6A7A5 + East Asian ideograph + + + 22404D + 69E9 + E6A7A9 + East Asian ideograph + + + 224050 + 69FC + E6A7BC + East Asian ideograph + + + 224054 + 6A17 + E6A897 + East Asian ideograph + + + 224056 + 69E7 + E6A7A7 + East Asian ideograph + + + 224057 + 69EB + E6A7AB + East Asian ideograph + + + 22405B + 69F1 + E6A7B1 + East Asian ideograph + + + 22405E + 6A2B + E6A8AB + East Asian ideograph + + + 22405F + 69FF + E6A7BF + East Asian ideograph + + + 224060 + 6A20 + E6A8A0 + East Asian ideograph + + + 224064 + 69ED + E6A7AD + East Asian ideograph + + + 224067 + 6A1B + E6A89B + East Asian ideograph + + + 224068 + 6A2D + E6A8AD + East Asian ideograph + + + 22406E + 6A18 + E6A898 + East Asian ideograph + + + 224072 + 6A1D + E6A89D + East Asian ideograph + + + 224075 + 6A0C + E6A88C + East Asian ideograph + + + 224076 + 6A0F + E6A88F + East Asian ideograph + + + 22407C + 69EE + E6A7AE + East Asian ideograph + + + 224123 + 69F0 + E6A7B0 + East Asian ideograph + + + 224124 + 69F2 + E6A7B2 + East Asian ideograph + + + 224128 + 6A14 + E6A894 + East Asian ideograph + + + 224129 + 6A63 + E6A9A3 + East Asian ideograph + + + 224137 + 6A67 + E6A9A7 + East Asian ideograph + + + 224139 + 6A43 + E6A983 + East Asian ideograph + + + 22413A + 6A33 + E6A8B3 + East Asian ideograph + + + 22413B + 6A32 + E6A8B2 + East Asian ideograph + + + 22413C + 6A5A + E6A99A + East Asian ideograph + + + 22413F + 6A28 + E6A8A8 + East Asian ideograph + + + 224140 + 6A48 + E6A988 + East Asian ideograph + + + 224141 + 6A50 + E6A990 + East Asian ideograph + + + 224142 + 6A52 + E6A992 + East Asian ideograph + + + 224143 + 6A72 + E6A9B2 + East Asian ideograph + + + 224145 + 6A3E + E6A8BE + East Asian ideograph + + + 224146 + 6A77 + E6A9B7 + East Asian ideograph + + + 224147 + 6A5B + E6A99B + East Asian ideograph + + + 22414A + 6A5E + E6A99E + East Asian ideograph + + + 22414B + 6A5C + E6A99C + East Asian ideograph + + + 22414F + 6A51 + E6A991 + East Asian ideograph + + + 224151 + 6A56 + E6A996 + East Asian ideograph + + + 224153 + 6A36 + E6A8B6 + East Asian ideograph + + + 224156 + 6A7A + E6A9BA + East Asian ideograph + + + 224158 + 6A3F + E6A8BF + East Asian ideograph + + + 22416C + 69F9 + E6A7B9 + East Asian ideograph + + + 22416D + 6A64 + E6A9A4 + East Asian ideograph + + + 224173 + 6A8D + E6AA8D + East Asian ideograph + + + 224175 + 6AA8 + E6AAA8 + East Asian ideograph + + + 224177 + 6AA5 + E6AAA5 + East Asian ideograph + + + 224179 + 6A96 + E6AA96 + East Asian ideograph + + + 22417E + 6A7D + E6A9BD + East Asian ideograph + + + 224222 + 6A7F + E6A9BF + East Asian ideograph + + + 224223 + 6A89 + E6AA89 + East Asian ideograph + + + 224224 + 6A91 + E6AA91 + East Asian ideograph + + + 224226 + 6A9F + E6AA9F + East Asian ideograph + + + 22422A + 6A92 + E6AA92 + East Asian ideograph + + + 22422B + 6AA3 + E6AAA3 + East Asian ideograph + + + 224234 + 6A99 + E6AA99 + East Asian ideograph + + + 224235 + 6A9D + E6AA9D + East Asian ideograph + + + 224236 + 6A7E + E6A9BE + East Asian ideograph + + + 224237 + 6A9B + E6AA9B + East Asian ideograph + + + 224242 + 6AA0 + E6AAA0 + East Asian ideograph + + + 224247 + 6A90 + E6AA90 + East Asian ideograph + + + 224249 + 6A9E + E6AA9E + East Asian ideograph + + + 22424A + 6A87 + E6AA87 + East Asian ideograph + + + 22424B + 6A8E + E6AA8E + East Asian ideograph + + + 224251 + 6AAB + E6AAAB + East Asian ideograph + + + 224255 + 6AC8 + E6AB88 + East Asian ideograph + + + 224257 + 6AAE + E6AAAE + East Asian ideograph + + + 22425D + 6ABF + E6AABF + East Asian ideograph + + + 224264 + 6ACA + E6AB8A + East Asian ideograph + + + 224268 + 6AB4 + E6AAB4 + East Asian ideograph + + + 224279 + 6AE6 + E6ABA6 + East Asian ideograph + + + 22427E + 6AED + E6ABAD + East Asian ideograph + + + 224325 + 6ACC + E6AB8C + East Asian ideograph + + + 224328 + 6AD1 + E6AB91 + East Asian ideograph + + + 224333 + 6ADF + E6AB9F + East Asian ideograph + + + 224334 + 6ACD + E6AB8D + East Asian ideograph + + + 224335 + 6ADE + E6AB9E + East Asian ideograph + + + 224337 + 6AEC + E6ABAC + East Asian ideograph + + + 224339 + 6AF3 + E6ABB3 + East Asian ideograph + + + 22433A + 6AE7 + E6ABA7 + East Asian ideograph + + + 22433F + 6AEB + E6ABAB + East Asian ideograph + + + 224340 + 6AEA + E6ABAA + East Asian ideograph + + + 224344 + 6AF1 + E6ABB1 + East Asian ideograph + + + 224345 + 6AE8 + E6ABA8 + East Asian ideograph + + + 224348 + 6AF5 + E6ABB5 + East Asian ideograph + + + 22434E + 6AFD + E6ABBD + East Asian ideograph + + + 224350 + 6AFA + E6ABBA + East Asian ideograph + + + 224352 + 6B01 + E6AC81 + East Asian ideograph + + + 224358 + 6B03 + E6AC83 + East Asian ideograph + + + 224359 + 6AF8 + E6ABB8 + East Asian ideograph + + + 22435F + 6B0D + E6AC8D + East Asian ideograph + + + 224360 + 6B09 + E6AC89 + East Asian ideograph + + + 224361 + 6B0E + E6AC8E + East Asian ideograph + + + 224367 + 6B11 + E6AC91 + East Asian ideograph + + + 22436D + 6B19 + E6AC99 + East Asian ideograph + + + 22436E + 6B17 + E6AC97 + East Asian ideograph + + + 224372 + 6B1E + E6AC9E + East Asian ideograph + + + 22437E + 6B2C + E6ACAC + East Asian ideograph + + + 22442A + 6B35 + E6ACB5 + East Asian ideograph + + + 22442C + 6B37 + E6ACB7 + East Asian ideograph + + + 22442D + 6B3B + E6ACBB + East Asian ideograph + + + 224432 + 6B39 + E6ACB9 + East Asian ideograph + + + 224435 + 6B3F + E6ACBF + East Asian ideograph + + + 224437 + 6B46 + E6AD86 + East Asian ideograph + + + 224438 + 6B41 + E6AD81 + East Asian ideograph + + + 22443A + 6B40 + E6AD80 + East Asian ideograph + + + 22443B + 6B42 + E6AD82 + East Asian ideograph + + + 22443C + 6B43 + E6AD83 + East Asian ideograph + + + 22443E + 6B48 + E6AD88 + East Asian ideograph + + + 22443F + 6B4A + E6AD8A + East Asian ideograph + + + 224446 + 6B4E + E6AD8E + East Asian ideograph (variant of EACC 4C4446) + + + 22444A + 6B57 + E6AD97 + East Asian ideograph + + + 22444C + 6B54 + E6AD94 + East Asian ideograph + + + 22444E + 6B55 + E6AD95 + East Asian ideograph + + + 224451 + 6B5C + E6AD9C + East Asian ideograph + + + 224453 + 6B5E + E6AD9E + East Asian ideograph + + + 224454 + 6B60 + E6ADA0 + East Asian ideograph + + + 22445B + 6B6B + E6ADAB + East Asian ideograph + + + 22445D + 6B6C + E6ADAC + East Asian ideograph + + + 22445F + 6B6E + E6ADAE + East Asian ideograph + + + 224461 + 6B71 + E6ADB1 + East Asian ideograph + + + 22446B + 6B7E + E6ADBE + East Asian ideograph + + + 224471 + 6B82 + E6AE82 + East Asian ideograph + + + 224473 + 6B84 + E6AE84 + East Asian ideograph + + + 224479 + 6B8D + E6AE8D + East Asian ideograph + + + 22447B + 6B95 + E6AE95 + East Asian ideograph + + + 224525 + 6B99 + E6AE99 + East Asian ideograph + + + 224529 + 6B9B + E6AE9B + East Asian ideograph + + + 224535 + 6BA3 + E6AEA3 + East Asian ideograph + + + 224536 + 6BA2 + E6AEA2 + East Asian ideograph + + + 224538 + 6BAA + E6AEAA + East Asian ideograph + + + 224539 + 6BAB + E6AEAB + East Asian ideograph + + + 22453B + 6BAD + E6AEAD + East Asian ideograph + + + 22453D + 6BB0 + E6AEB0 + East Asian ideograph + + + 22453F + 6BB3 + E6AEB3 + East Asian ideograph + + + 224547 + 6BBD + E6AEBD + East Asian ideograph + + + 22454D + 6996 + E6A696 + East Asian ideograph + + + 224554 + 6BC8 + E6AF88 + East Asian ideograph + + + 22455B + 6BD6 + E6AF96 + East Asian ideograph + + + 224560 + 6BDA + E6AF9A + East Asian ideograph + + + 224562 + 6BDC + E6AF9C + East Asian ideograph + + + 224563 + 6BDD + E6AF9D + East Asian ideograph + + + 224565 + 6BDF + E6AF9F + East Asian ideograph + + + 22456F + 6BE7 + E6AFA7 + East Asian ideograph + + + 224570 + 6BEA + E6AFAA + East Asian ideograph + + + 224571 + 6BE8 + E6AFA8 + East Asian ideograph + + + 22462A + 6BF6 + E6AFB6 + East Asian ideograph + + + 22462C + 6BF3 + E6AFB3 + East Asian ideograph + + + 224633 + 6BF8 + E6AFB8 + East Asian ideograph + + + 224637 + 6BFA + E6AFBA + East Asian ideograph + + + 224638 + 6BF9 + E6AFB9 + East Asian ideograph + + + 224642 + 6BFF + E6AFBF + East Asian ideograph + + + 224644 + 6C06 + E6B086 + East Asian ideograph + + + 224648 + 6C04 + E6B084 + East Asian ideograph + + + 22464A + 6C05 + E6B085 + East Asian ideograph + + + 22464C + 6C08 + E6B088 + East Asian ideograph + + + 224651 + 6C0C + E6B08C + East Asian ideograph + + + 224652 + 6C0D + E6B08D + East Asian ideograph + + + 224659 + 6C15 + E6B095 + East Asian ideograph + + + 22465A + 6C18 + E6B098 + East Asian ideograph + + + 22465B + 6C19 + E6B099 + East Asian ideograph + + + 22465C + 6C1A + E6B09A + East Asian ideograph + + + 22465E + 6C1D + E6B09D + East Asian ideograph + + + 224660 + 6C20 + E6B0A0 + East Asian ideograph + + + 224662 + 6C21 + E6B0A1 + East Asian ideograph + + + 224664 + 6C2A + E6B0AA + East Asian ideograph + + + 224666 + 6C2D + E6B0AD + East Asian ideograph + + + 224667 + 6C30 + E6B0B0 + East Asian ideograph + + + 224668 + 6C2C + E6B0AC + East Asian ideograph + + + 224669 + 6C31 + E6B0B1 + East Asian ideograph + + + 224670 + 6C3B + E6B0BB + East Asian ideograph + + + 224674 + 6C3F + E6B0BF + East Asian ideograph + + + 224678 + 6C46 + E6B186 + East Asian ideograph + + + 22467A + 6C52 + E6B192 + East Asian ideograph + + + 22467B + 6C62 + E6B1A2 + East Asian ideograph + + + 22467C + 6C4A + E6B18A + East Asian ideograph + + + 224724 + 6C5C + E6B19C + East Asian ideograph + + + 224726 + 6C5B + E6B19B + East Asian ideograph + + + 224727 + 6C4D + E6B18D + East Asian ideograph + + + 22472B + 6C4B + E6B18B + East Asian ideograph + + + 22472C + 6C54 + E6B194 + East Asian ideograph + + + 22472D + 6C63 + E6B1A3 + East Asian ideograph + + + 224730 + 6C78 + E6B1B8 + East Asian ideograph + + + 224731 + 6C74 + E6B1B4 + East Asian ideograph + + + 224732 + 6C86 + E6B286 + East Asian ideograph + + + 224733 + 6C76 + E6B1B6 + East Asian ideograph + + + 224738 + 6C6C + E6B1AC + East Asian ideograph + + + 224739 + 6C67 + E6B1A7 + East Asian ideograph + + + 22473B + 6C84 + E6B284 + East Asian ideograph + + + 22473E + 6C94 + E6B294 + East Asian ideograph + + + 224740 + 6C8F + E6B28F + East Asian ideograph + + + 224742 + 6C65 + E6B1A5 + East Asian ideograph + + + 224747 + 6C6F + E6B1AF + East Asian ideograph + + + 224749 + 6C9D + E6B29D + East Asian ideograph + + + 22474A + 6C69 + E6B1A9 + East Asian ideograph + + + 22474B + 6C9A + E6B29A + East Asian ideograph + + + 22474C + 6C6D + E6B1AD + East Asian ideograph + + + 22474D + 6C93 + E6B293 + East Asian ideograph + + + 224751 + 6C87 + E6B287 + East Asian ideograph + + + 224752 + 6C6E + E6B1AE + East Asian ideograph + + + 224756 + 6C95 + E6B295 + East Asian ideograph + + + 22475A + 6C82 + E6B282 + East Asian ideograph + + + 22475C + 6CA0 + E6B2A0 + East Asian ideograph + + + 224762 + 6CEB + E6B3AB + East Asian ideograph + + + 224763 + 6CEE + E6B3AE + East Asian ideograph + + + 224764 + 6CC0 + E6B380 + East Asian ideograph + + + 224766 + 6CEF + E6B3AF + East Asian ideograph + + + 224767 + 6CAC + E6B2AC + East Asian ideograph + + + 22476E + 6CAD + E6B2AD + East Asian ideograph (variant of EACC 4C476E) + + + 224770 + 6CAF + E6B2AF + East Asian ideograph + + + 224772 + 6CF5 + E6B3B5 + East Asian ideograph + + + 22477A + 6CBA + E6B2BA + East Asian ideograph + + + 22477B + 7553 + E79593 + East Asian ideograph + + + 22477D + 6CC2 + E6B382 + East Asian ideograph + + + 224824 + 6CD8 + E6B398 + East Asian ideograph + + + 224826 + 6CC6 + E6B386 + East Asian ideograph + + + 224828 + 6CCE + E6B38E + East Asian ideograph + + + 224829 + 6CE9 + E6B3A9 + East Asian ideograph + + + 22482D + 6CF2 + E6B3B2 + East Asian ideograph + + + 22482F + 6CE0 + E6B3A0 + East Asian ideograph + + + 224830 + 6CD1 + E6B391 + East Asian ideograph + + + 224832 + 6CD2 + E6B392 + East Asian ideograph + + + 224833 + 6CB4 + E6B2B4 + East Asian ideograph + + + 224837 + 6D1D + E6B49D + East Asian ideograph + + + 22483B + 6D28 + E6B4A8 + East Asian ideograph + + + 224844 + 6D39 + E6B4B9 + East Asian ideograph + + + 22484D + 6D26 + E6B4A6 + East Asian ideograph + + + 22484E + 6D27 + E6B4A7 + East Asian ideograph + + + 22484F + 6D0F + E6B48F + East Asian ideograph + + + 224850 + 6D0A + E6B48A + East Asian ideograph + + + 224851 + 6D3F + E6B4BF + East Asian ideograph + + + 22485A + 6D07 + E6B487 + East Asian ideograph + + + 22485B + 6D04 + E6B484 + East Asian ideograph + + + 22485C + 6CDA + E6B39A + East Asian ideograph + + + 224860 + 6D2E + E6B4AE + East Asian ideograph + + + 224861 + 6D35 + E6B4B5 + East Asian ideograph + + + 224862 + 6D3A + E6B4BA + East Asian ideograph + + + 224864 + 6D19 + E6B499 + East Asian ideograph + + + 224867 + 6D0E + E6B48E + East Asian ideograph + + + 22486A + 6D2B + E6B4AB + East Asian ideograph + + + 22486B + 6D11 + E6B491 + East Asian ideograph + + + 22486C + 6D00 + E6B480 + East Asian ideograph + + + 22486D + 6D24 + E6B4A4 + East Asian ideograph + + + 22486F + 6D33 + E6B4B3 + East Asian ideograph + + + 224873 + 6D63 + E6B5A3 + East Asian ideograph + + + 224877 + 6DA5 + E6B6A5 + East Asian ideograph + + + 22487D + 6D92 + E6B692 + East Asian ideograph + + + 224925 + 6D6D + E6B5AD + East Asian ideograph + + + 224926 + 6D6F + E6B5AF + East Asian ideograph + + + 224928 + 6D61 + E6B5A1 + East Asian ideograph + + + 224929 + 6D91 + E6B691 + East Asian ideograph + + + 22492C + 6D81 + E6B681 + East Asian ideograph + + + 22492E + 6D8A + E6B68A + East Asian ideograph + + + 22492F + 6D34 + E6B4B4 + East Asian ideograph (variant of EACC 34492F) + + + 224934 + 6D79 + E6B5B9 + East Asian ideograph + + + 224935 + 6DEF + E6B7AF + East Asian ideograph + + + 224939 + 6D7F + E6B5BF + East Asian ideograph + + + 22493B + 6D85 + E6B685 + East Asian ideograph + + + 22493C + 6D65 + E6B5A5 + East Asian ideograph + + + 22493E + 6D5E + E6B59E + East Asian ideograph + + + 224940 + 6D67 + E6B5A7 + East Asian ideograph + + + 224943 + 6D94 + E6B694 + East Asian ideograph + + + 224946 + 6D60 + E6B5A0 + East Asian ideograph + + + 224948 + 6D98 + E6B698 + East Asian ideograph + + + 22494B + 6D7C + E6B5BC + East Asian ideograph + + + 22494C + 6D70 + E6B5B0 + East Asian ideograph + + + 22494F + 6D96 + E6B696 + East Asian ideograph + + + 224959 + 6DAB + E6B6AB + East Asian ideograph + + + 22495A + 6DB4 + E6B6B4 + East Asian ideograph + + + 22495C + 6DAA + E6B6AA + East Asian ideograph + + + 224960 + 6DEC + E6B7AC + East Asian ideograph + + + 22496A + 6DAC + E6B6AC + East Asian ideograph + + + 22496B + 6DB7 + E6B6B7 + East Asian ideograph + + + 22496C + 6DE2 + E6B7A2 + East Asian ideograph + + + 22496D + 6DD5 + E6B795 + East Asian ideograph + + + 22496E + 6DE9 + E6B7A9 + East Asian ideograph + + + 224971 + 6DF6 + E6B7B6 + East Asian ideograph + + + 224979 + 6E0F + E6B88F + East Asian ideograph + + + 22497B + 6DBF + E6B6BF + East Asian ideograph + + + 224A2A + 6DDF + E6B79F + East Asian ideograph + + + 224A2D + 6DD3 + E6B793 + East Asian ideograph + + + 224A32 + 6DFC + E6B7BC + East Asian ideograph + + + 224A35 + 6DDD + E6B79D + East Asian ideograph + + + 224A36 + 6DDC + E6B79C + East Asian ideograph + + + 224A39 + 6DDB + E6B79B + East Asian ideograph + + + 224A3D + 6DA4 + E6B6A4 + East Asian ideograph + + + 224A44 + 6E12 + E6B892 + East Asian ideograph + + + 224A46 + 6DF0 + E6B7B0 + East Asian ideograph + + + 224A4A + 6DE6 + E6B7A6 + East Asian ideograph + + + 224A4C + 6E1F + E6B89F + East Asian ideograph + + + 224A50 + 6E27 + E6B8A7 + East Asian ideograph + + + 224A55 + 6E49 + E6B989 + East Asian ideograph + + + 224A58 + 6E3C + E6B8BC + East Asian ideograph + + + 224A60 + 6E8A + E6BA8A + East Asian ideograph + + + 224A62 + 6E4B + E6B98B + East Asian ideograph + + + 224A66 + 6E62 + E6B9A2 + East Asian ideograph + + + 224A6A + 6E51 + E6B991 + East Asian ideograph + + + 224A6B + 6E44 + E6B984 + East Asian ideograph + + + 224A6D + 6E63 + E6B9A3 + East Asian ideograph + + + 224A71 + 6E73 + E6B9B3 + East Asian ideograph + + + 224A74 + 6E4F + E6B98F + East Asian ideograph + + + 224A77 + 6E4E + E6B98E + East Asian ideograph + + + 224B22 + 6E28 + E6B8A8 + East Asian ideograph + + + 224B24 + 6E5C + E6B99C + East Asian ideograph + + + 224B26 + 6E31 + E6B8B1 + East Asian ideograph + + + 224B28 + 6E5E + E6B99E + East Asian ideograph + + + 224B2C + 6E84 + E6BA84 + East Asian ideograph + + + 224B2E + 6E2E + E6B8AE + East Asian ideograph + + + 224B30 + 6E36 + E6B8B6 + East Asian ideograph + + + 224B31 + 6E5D + E6B99D + East Asian ideograph + + + 224B32 + 6E72 + E6B9B2 + East Asian ideograph + + + 224B33 + 6E30 + E6B8B0 + East Asian ideograph + + + 224B34 + 6E53 + E6B993 + East Asian ideograph + + + 224B36 + 6E39 + E6B8B9 + East Asian ideograph + + + 224B37 + 6E71 + E6B9B1 + East Asian ideograph + + + 224B38 + 6E69 + E6B9A9 + East Asian ideograph + + + 224B39 + 6E6B + E6B9AB + East Asian ideograph + + + 224B3B + 6E8B + E6BA8B + East Asian ideograph + + + 224B3E + 6E76 + E6B9B6 + East Asian ideograph + + + 224B40 + 6E2A + E6B8AA + East Asian ideograph + + + 224B41 + 6E4C + E6B98C + East Asian ideograph + + + 224B42 + 6E22 + E6B8A2 + East Asian ideograph + + + 224B43 + 6ECE + E6BB8E + East Asian ideograph + + + 224B45 + 6E9B + E6BA9B + East Asian ideograph + + + 224B46 + 6E9F + E6BA9F + East Asian ideograph + + + 224B48 + 6EC8 + E6BB88 + East Asian ideograph + + + 224B49 + 6ED8 + E6BB98 + East Asian ideograph + + + 224B4A + 6E8F + E6BA8F + East Asian ideograph + + + 224B4D + 6E93 + E6BA93 + East Asian ideograph + + + 224B4F + 6EA0 + E6BAA0 + East Asian ideograph + + + 224B51 + 6EB1 + E6BAB1 + East Asian ideograph + + + 224B57 + 6EA8 + E6BAA8 + East Asian ideograph + + + 224B59 + 6E92 + E6BA92 + East Asian ideograph + + + 224B5A + 6EA7 + E6BAA7 + East Asian ideograph + + + 224B5E + 6E8E + E6BA8E + East Asian ideograph + + + 224B60 + 6ED9 + E6BB99 + East Asian ideograph + + + 224B61 + 6EBD + E6BABD + East Asian ideograph + + + 224B63 + 6EC1 + E6BB81 + East Asian ideograph + + + 224B69 + 6EBB + E6BABB + East Asian ideograph + + + 224B6A + 6EC9 + E6BB89 + East Asian ideograph + + + 224B6C + 6EB3 + E6BAB3 + East Asian ideograph + + + 224B6D + 6EB7 + E6BAB7 + East Asian ideograph + + + 224B75 + 6EA4 + E6BAA4 + East Asian ideograph + + + 224B79 + 6ECF + E6BB8F + East Asian ideograph + + + 224B7C + 6ECA + E6BB8A + East Asian ideograph + + + 224B7D + 6ED5 + E6BB95 + East Asian ideograph + + + 224C21 + 6EC3 + E6BB83 + East Asian ideograph + + + 224C24 + 6EB4 + E6BAB4 + East Asian ideograph + + + 224C26 + 6EB2 + E6BAB2 + East Asian ideograph + + + 224C29 + 6EB5 + E6BAB5 + East Asian ideograph + + + 224C2E + 6EF8 + E6BBB8 + East Asian ideograph + + + 224C30 + 6F37 + E6BCB7 + East Asian ideograph + + + 224C34 + 6EFD + E6BBBD + East Asian ideograph + + + 224C35 + 6F09 + E6BC89 + East Asian ideograph + + + 224C3C + 6F3B + E6BCBB + East Asian ideograph + + + 224C3D + 6F63 + E6BDA3 + East Asian ideograph + + + 224C3E + 6F12 + E6BC92 + East Asian ideograph + + + 224C3F + 6F26 + E6BCA6 + East Asian ideograph + + + 224C41 + 6F1A + E6BC9A + East Asian ideograph + + + 224C42 + 6EF6 + E6BBB6 + East Asian ideograph + + + 224C43 + 6F19 + E6BC99 + East Asian ideograph + + + 224C44 + 6F00 + E6BC80 + East Asian ideograph + + + 224C4B + 6F24 + E6BCA4 + East Asian ideograph + + + 224C51 + 6F18 + E6BC98 + East Asian ideograph + + + 224C57 + 6F1F + E6BC9F + East Asian ideograph + + + 224C5A + 6F0A + E6BC8A + East Asian ideograph + + + 224C5E + 6F36 + E6BCB6 + East Asian ideograph + + + 224C60 + 6EF9 + E6BBB9 + East Asian ideograph + + + 224C61 + 6EEE + E6BBAE + East Asian ideograph + + + 224C62 + 6F41 + E6BD81 + East Asian ideograph + + + 224C64 + 6F95 + E6BE95 + East Asian ideograph + + + 224C65 + 6F2D + E6BCAD + East Asian ideograph + + + 224C67 + 6F34 + E6BCB4 + East Asian ideograph + + + 224C6B + 6F49 + E6BD89 + East Asian ideograph + + + 224C6D + 6F30 + E6BCB0 + East Asian ideograph + + + 224C76 + 6EFA + E6BBBA + East Asian ideograph + + + 224C77 + 6EEB + E6BBAB + East Asian ideograph + + + 224C78 + 6F08 + E6BC88 + East Asian ideograph + + + 224C79 + 6F0E + E6BC8E + East Asian ideograph + + + 224C7B + 6F35 + E6BCB5 + East Asian ideograph + + + 224D23 + 6F7E + E6BDBE + East Asian ideograph + + + 224D24 + 6F9D + E6BE9D + East Asian ideograph + + + 224D27 + 6F87 + E6BE87 + East Asian ideograph + + + 224D2B + 6F6F + E6BDAF + East Asian ideograph + + + 224D2F + 6F5A + E6BD9A + East Asian ideograph + + + 224D30 + 6F60 + E6BDA0 + East Asian ideograph + + + 224D35 + 6F90 + E6BE90 + East Asian ideograph + + + 224D37 + 6F8D + E6BE8D + East Asian ideograph + + + 224D39 + 6F92 + E6BE92 + East Asian ideograph + + + 224D3A + 6F89 + E6BE89 + East Asian ideograph + + + 224D3C + 6F8C + E6BE8C + East Asian ideograph + + + 224D3D + 6F62 + E6BDA2 + East Asian ideograph (variant of EACC 4C4D3D) + + + 224D44 + 6F0B + E6BC8B + East Asian ideograph + + + 224D4B + 6F6C + E6BDAC + East Asian ideograph + + + 224D4D + 6F8B + E6BE8B + East Asian ideograph + + + 224D58 + 6E88 + E6BA88 + East Asian ideograph + + + 224D5A + 6F55 + E6BD95 + East Asian ideograph + + + 224D5F + 6F72 + E6BDB2 + East Asian ideograph + + + 224D62 + 6F57 + E6BD97 + East Asian ideograph + + + 224D63 + 6F5F + E6BD9F + East Asian ideograph + + + 224D68 + 6F5D + E6BD9D + East Asian ideograph + + + 224D73 + 6FB6 + E6BEB6 + East Asian ideograph + + + 224D74 + 6F9F + E6BE9F + East Asian ideograph + + + 224D79 + 6FA6 + E6BEA6 + East Asian ideograph + + + 224D7C + 6FC6 + E6BF86 + East Asian ideograph + + + 224D7D + 6FBC + E6BEBC + East Asian ideograph + + + 224E21 + 6FAA + E6BEAA + East Asian ideograph + + + 224E25 + 6FBF + E6BEBF + East Asian ideograph + + + 224E26 + 6FC7 + E6BF87 + East Asian ideograph + + + 224E2D + 6FC9 + E6BF89 + East Asian ideograph + + + 224E2E + 6F5E + E6BD9E + East Asian ideograph + + + 224E2F + 6FC8 + E6BF88 + East Asian ideograph + + + 224E30 + 6FA0 + E6BEA0 + East Asian ideograph + + + 224E32 + 6FCA + E6BF8A + East Asian ideograph + + + 224E35 + 6FB4 + E6BEB4 + East Asian ideograph + + + 224E37 + 6FAF + E6BEAF + East Asian ideograph + + + 224E3C + 6FA8 + E6BEA8 + East Asian ideograph + + + 224E40 + 6FA5 + E6BEA5 + East Asian ideograph + + + 224E41 + 6FB0 + E6BEB0 + East Asian ideograph + + + 224E42 + 6FAE + E6BEAE + East Asian ideograph + + + 224E43 + 6FD9 + E6BF99 + East Asian ideograph + + + 224E44 + 6FDA + E6BF9A + East Asian ideograph + + + 224E50 + 6FD4 + E6BF94 + East Asian ideograph + + + 224E56 + 6FE9 + E6BFA9 + East Asian ideograph + + + 224E57 + 6FF8 + E6BFB8 + East Asian ideograph + + + 224E5D + 6FDE + E6BF9E + East Asian ideograph + + + 224E5E + 6FEE + E6BFAE + East Asian ideograph + + + 224E62 + 6FF0 + E6BFB0 + East Asian ideograph + + + 224E66 + 7005 + E78085 + East Asian ideograph + + + 224E67 + 700C + E7808C + East Asian ideograph + + + 224E6A + 700D + E7808D + East Asian ideograph + + + 224E72 + 7026 + E780A6 + East Asian ideograph + + + 224F24 + 7020 + E780A0 + East Asian ideograph + + + 224F26 + 7027 + E780A7 + East Asian ideograph + + + 224F2B + 701E + E7809E + East Asian ideograph (variant of EACC 4C4F2B) + + + 224F2F + 702E + E780AE + East Asian ideograph + + + 224F31 + 702D + E780AD + East Asian ideograph + + + 224F35 + 7021 + E780A1 + East Asian ideograph + + + 224F39 + 7018 + E78098 + East Asian ideograph + + + 224F3A + 7023 + E780A3 + East Asian ideograph + + + 224F41 + 703C + E780BC + East Asian ideograph + + + 224F44 + 7035 + E780B5 + East Asian ideograph + + + 224F51 + 7034 + E780B4 + East Asian ideograph + + + 224F53 + 7039 + E780B9 + East Asian ideograph + + + 224F54 + 703A + E780BA + East Asian ideograph + + + 224F5D + 7043 + E78183 + East Asian ideograph + + + 224F61 + 7044 + E78184 + East Asian ideograph + + + 224F67 + 7047 + E78187 + East Asian ideograph + + + 224F69 + 7049 + E78189 + East Asian ideograph + + + 224F6B + 7055 + E78195 + East Asian ideograph + + + 224F71 + 7052 + E78192 + East Asian ideograph + + + 224F73 + 705C + E7819C + East Asian ideograph + + + 224F78 + 7059 + E78199 + East Asian ideograph + + + 224F7B + 705E + E7819E + East Asian ideograph + + + 224F7C + 7061 + E781A1 + East Asian ideograph + + + 224F7D + 705D + E7819D + East Asian ideograph + + + 225021 + 9E02 + E9B882 + East Asian ideograph + + + 225025 + 7066 + E781A6 + East Asian ideograph + + + 225027 + 7065 + E781A5 + East Asian ideograph + + + 225028 + 7068 + E781A8 + East Asian ideograph + + + 225029 + 7054 + E78194 + East Asian ideograph + + + 225039 + 7074 + E781B4 + East Asian ideograph + + + 22503B + 707A + E781BA + East Asian ideograph + + + 225040 + 7093 + E78293 + East Asian ideograph + + + 225042 + 7086 + E78286 + East Asian ideograph + + + 225048 + 7096 + E78296 + East Asian ideograph + + + 225049 + 7084 + E78284 + East Asian ideograph + + + 22504A + 7081 + E78281 + East Asian ideograph + + + 225056 + 7088 + E78288 + East Asian ideograph + + + 225057 + 7098 + E78298 + East Asian ideograph + + + 225059 + 708C + E7828C + East Asian ideograph + + + 22505C + 70B7 + E782B7 + East Asian ideograph + + + 225062 + 70A1 + E782A1 + East Asian ideograph + + + 225063 + 70A3 + E782A3 + East Asian ideograph + + + 225068 + 7551 + E79591 + East Asian ideograph + + + 22506F + 70A7 + E782A7 + East Asian ideograph + + + 225070 + 79CC + E7A78C + East Asian ideograph + + + 225071 + 70B5 + E782B5 + East Asian ideograph + + + 225072 + 70BF + E782BF + East Asian ideograph + + + 225073 + 70A9 + E782A9 + East Asian ideograph + + + 225078 + 70EA + E783AA + East Asian ideograph + + + 22507B + 70E5 + E783A5 + East Asian ideograph + + + 22507C + 70DC + E7839C + East Asian ideograph + + + 22507D + 70D3 + E78393 + East Asian ideograph + + + 225122 + 70DD + E7839D + East Asian ideograph + + + 225123 + 70E1 + E783A1 + East Asian ideograph + + + 225126 + 70E3 + E783A3 + East Asian ideograph + + + 225128 + 70E0 + E783A0 + East Asian ideograph + + + 22512B + 70D4 + E78394 + East Asian ideograph + + + 22512E + 70D1 + E78391 + East Asian ideograph + + + 225138 + 70CB + E7838B + East Asian ideograph + + + 22513A + 70D0 + E78390 + East Asian ideograph + + + 22513B + 70C7 + E78387 + East Asian ideograph + + + 22513C + 70DA + E7839A + East Asian ideograph + + + 22513D + 70C6 + E78386 + East Asian ideograph + + + 22513F + 70FA + E783BA + East Asian ideograph + + + 225142 + 70F7 + E783B7 + East Asian ideograph + + + 225144 + 7104 + E78484 + East Asian ideograph + + + 225148 + 70F3 + E783B3 + East Asian ideograph + + + 22514A + 7110 + E78490 + East Asian ideograph + + + 22514C + 7103 + E78483 + East Asian ideograph + + + 225150 + 70F4 + E783B4 + East Asian ideograph + + + 225155 + 7111 + E78491 + East Asian ideograph + + + 225156 + 7112 + E78492 + East Asian ideograph + + + 22515C + 710C + E7848C + East Asian ideograph + + + 225160 + 70F6 + E783B6 + East Asian ideograph + + + 225166 + 7113 + E78493 + East Asian ideograph + + + 225167 + 70EF + E783AF + East Asian ideograph + + + 225168 + 7100 + E78480 + East Asian ideograph + + + 22516C + 711E + E7849E + East Asian ideograph + + + 22516D + 7134 + E784B4 + East Asian ideograph + + + 22516E + 7120 + E784A0 + East Asian ideograph + + + 22516F + 713F + E784BF + East Asian ideograph + + + 225174 + 7131 + E784B1 + East Asian ideograph + + + 225175 + 712D + E784AD + East Asian ideograph + + + 225227 + 7139 + E784B9 + East Asian ideograph + + + 225228 + 7135 + E784B5 + East Asian ideograph + + + 22522C + 713B + E784BB + East Asian ideograph + + + 22522E + 711C + E7849C + East Asian ideograph + + + 225232 + 713D + E784BD + East Asian ideograph + + + 225235 + 712F + E784AF + East Asian ideograph + + + 22523B + 7129 + E784A9 + East Asian ideograph + + + 225243 + 712E + E784AE + East Asian ideograph + + + 225248 + 7177 + E785B7 + East Asian ideograph + + + 225251 + 7146 + E78586 + East Asian ideograph + + + 225252 + 7152 + E78592 + East Asian ideograph + + + 225254 + 714F + E7858F + East Asian ideograph + + + 225255 + 715D + E7859D + East Asian ideograph + + + 225256 + 7141 + E78581 + East Asian ideograph + + + 225257 + 7160 + E785A0 + East Asian ideograph + + + 225259 + 7175 + E785B5 + East Asian ideograph + + + 22525A + 7173 + E785B3 + East Asian ideograph + + + 22525C + 7143 + E78583 + East Asian ideograph + + + 22525D + 715A + E7859A + East Asian ideograph + + + 22525E + 7176 + E785B6 + East Asian ideograph + + + 225260 + 714B + E7858B + East Asian ideograph + + + 225262 + 7147 + E78587 + East Asian ideograph + + + 225265 + 7168 + E785A8 + East Asian ideograph + + + 225266 + 7171 + E785B1 + East Asian ideograph + + + 225267 + 715F + E7859F + East Asian ideograph + + + 225269 + 7150 + E78590 + East Asian ideograph + + + 22526B + 7153 + E78593 + East Asian ideograph + + + 225270 + 7144 + E78584 + East Asian ideograph + + + 225276 + 7172 + E785B2 + East Asian ideograph + + + 225278 + 7178 + E785B8 + East Asian ideograph + + + 22527B + 7187 + E78687 + East Asian ideograph + + + 22527C + 717B + E785BB + East Asian ideograph + + + 225323 + 7192 + E78692 + East Asian ideograph + + + 22532B + 7180 + E78680 + East Asian ideograph + + + 22532C + 7189 + E78689 + East Asian ideograph + + + 225332 + 7185 + E78685 + East Asian ideograph + + + 225333 + 7196 + E78696 + East Asian ideograph + + + 225336 + 717C + E785BC + East Asian ideograph + + + 225339 + 7198 + E78698 + East Asian ideograph + + + 22533C + 7197 + E78697 + East Asian ideograph + + + 22533E + 71B5 + E786B5 + East Asian ideograph + + + 22533F + 71A9 + E786A9 + East Asian ideograph + + + 225342 + 71A5 + E786A5 + East Asian ideograph + + + 225346 + 719E + E7869E + East Asian ideograph + + + 225347 + 71B2 + E786B2 + East Asian ideograph + + + 22534A + 719B + E7869B + East Asian ideograph + + + 22534E + 71AF + E786AF + East Asian ideograph + + + 225351 + 71A4 + E786A4 + East Asian ideograph + + + 225352 + 71A0 + E786A0 + East Asian ideograph + + + 225355 + 719A + E7869A + East Asian ideograph + + + 225357 + 71B3 + E786B3 + East Asian ideograph + + + 225359 + 71B4 + E786B4 + East Asian ideograph + + + 225367 + 71D1 + E78791 + East Asian ideograph + + + 225369 + 71C7 + E78787 + East Asian ideograph + + + 22536A + 71B7 + E786B7 + East Asian ideograph + + + 22536D + 71CA + E7878A + East Asian ideograph + + + 22536F + 71CF + E7878F + East Asian ideograph + + + 225370 + 71D6 + E78796 + East Asian ideograph + + + 225372 + 71BA + E786BA + East Asian ideograph + + + 225375 + 71C2 + E78782 + East Asian ideograph + + + 225377 + 71C5 + E78785 + East Asian ideograph + + + 22537A + 71BF + E786BF + East Asian ideograph + + + 22537C + 71B8 + E786B8 + East Asian ideograph + + + 225421 + 71DD + E7879D + East Asian ideograph + + + 225422 + 71C0 + E78780 + East Asian ideograph + + + 225424 + 71C1 + E78781 + East Asian ideograph + + + 225426 + 71D4 + E78794 + East Asian ideograph + + + 225429 + 71CB + E7878B + East Asian ideograph + + + 22542A + 71DE + E7879E + East Asian ideograph + + + 225432 + 71EB + E787AB + East Asian ideograph + + + 225436 + 71E8 + E787A8 + East Asian ideograph + + + 22543A + 71F5 + E787B5 + East Asian ideograph + + + 22543D + 71F3 + E787B3 + East Asian ideograph + + + 22543F + 71E1 + E787A1 + East Asian ideograph + + + 225447 + 71E0 + E787A0 + East Asian ideograph + + + 22544B + 720C + E7888C + East Asian ideograph + + + 22544F + 71FC + E787BC + East Asian ideograph + + + 225456 + 71F9 + E787B9 + East Asian ideograph + + + 22545B + 720E + E7888E + East Asian ideograph + + + 22545C + 5911 + E5A491 + East Asian ideograph + + + 22545E + 720A + E7888A + East Asian ideograph + + + 225460 + 7217 + E78897 + East Asian ideograph + + + 225461 + 7207 + E78887 + East Asian ideograph + + + 225466 + 7215 + E78895 + East Asian ideograph + + + 225469 + 7213 + E78893 + East Asian ideograph + + + 22546E + 7218 + E78898 + East Asian ideograph + + + 225471 + 720B + E7888B + East Asian ideograph + + + 225479 + 721A + E7889A + East Asian ideograph + + + 22547D + 721F + E7889F + East Asian ideograph + + + 225521 + 721D + E7889D + East Asian ideograph + + + 225529 + 7225 + E788A5 + East Asian ideograph + + + 22552A + 7226 + E788A6 + East Asian ideograph + + + 225541 + 723F + E788BF + East Asian ideograph + + + 225543 + 7241 + E78981 + East Asian ideograph + + + 225544 + 7242 + E78982 + East Asian ideograph + + + 22554F + 7250 + E78990 + East Asian ideograph + + + 225551 + 724F + E7898F + East Asian ideograph + + + 225552 + 7253 + E78993 + East Asian ideograph + + + 225553 + 7255 + E78995 + East Asian ideograph + + + 225556 + 725A + E7899A + East Asian ideograph + + + 225559 + 7263 + E789A3 + East Asian ideograph + + + 225561 + 7273 + E789B3 + East Asian ideograph + + + 225563 + 726E + E789AE + East Asian ideograph + + + 225566 + 7276 + E789B6 + East Asian ideograph + + + 225568 + 7277 + E789B7 + East Asian ideograph + + + 22556B + 727E + E789BE + East Asian ideograph + + + 22556D + 727C + E789BC + East Asian ideograph + + + 225571 + 727F + E789BF + East Asian ideograph + + + 225574 + 7289 + E78A89 + East Asian ideograph + + + 22557C + 728B + E78A8B + East Asian ideograph + + + 225622 + 728D + E78A8D + East Asian ideograph + + + 225628 + 728F + E78A8F + East Asian ideograph + + + 225648 + 72A8 + E78AA8 + East Asian ideograph + + + 22564C + 72AB + E78AAB + East Asian ideograph + + + 22564E + 72B0 + E78AB0 + East Asian ideograph + + + 22564F + 72B4 + E78AB4 + East Asian ideograph + + + 225651 + 72C6 + E78B86 + East Asian ideograph + + + 225652 + 72B5 + E78AB5 + East Asian ideograph + + + 225656 + 72BC + E78ABC + East Asian ideograph + + + 225658 + 72C3 + E78B83 + East Asian ideograph + + + 22565B + 72C1 + E78B81 + East Asian ideograph + + + 225660 + 72D6 + E78B96 + East Asian ideograph + + + 225664 + 72D2 + E78B92 + East Asian ideograph + + + 225667 + 72C9 + E78B89 + East Asian ideograph + + + 22566C + 72CC + E78B8C + East Asian ideograph + + + 22566E + 72DB + E78B9B + East Asian ideograph + + + 22566F + 72CD + E78B8D + East Asian ideograph + + + 225673 + 72E8 + E78BA8 + East Asian ideograph + + + 225676 + 72EB + E78BAB + East Asian ideograph + + + 225679 + 72E5 + E78BA5 + East Asian ideograph + + + 22567E + 72FA + E78BBA + East Asian ideograph + + + 225724 + 72F4 + E78BB4 + East Asian ideograph + + + 225725 + 72FE + E78BBE + East Asian ideograph + + + 225729 + 7302 + E78C82 + East Asian ideograph + + + 22572C + 72FB + E78BBB + East Asian ideograph + + + 22572D + 7301 + E78C81 + East Asian ideograph + + + 22572E + 72F3 + E78BB3 + East Asian ideograph + + + 225731 + 731D + E78C9D + East Asian ideograph + + + 225735 + 730B + E78C8B + East Asian ideograph + + + 225736 + 7317 + E78C97 + East Asian ideograph + + + 22573B + 7307 + E78C87 + East Asian ideograph + + + 22573E + 7318 + E78C98 + East Asian ideograph + + + 225742 + 731E + E78C9E + East Asian ideograph + + + 225746 + 7331 + E78CB1 + East Asian ideograph + + + 225749 + 7338 + E78CB8 + East Asian ideograph + + + 22574A + 7322 + E78CA2 + East Asian ideograph + + + 22574C + 7332 + E78CB2 + East Asian ideograph + + + 22574D + 732C + E78CAC + East Asian ideograph + + + 22574E + 7327 + E78CA7 + East Asian ideograph + + + 22574F + 732B + E78CAB + East Asian ideograph + + + 225752 + 732F + E78CAF + East Asian ideograph + + + 225755 + 7328 + E78CA8 + East Asian ideograph + + + 22575A + 7347 + E78D87 + East Asian ideograph + + + 22575B + 7348 + E78D88 + East Asian ideograph + + + 22575C + 7349 + E78D89 + East Asian ideograph + + + 22575F + 733B + E78CBB + East Asian ideograph + + + 225762 + 733A + E78CBA + East Asian ideograph + + + 225765 + 7340 + E78D80 + East Asian ideograph + + + 225768 + 734D + E78D8D + East Asian ideograph + + + 22576B + 7352 + E78D92 + East Asian ideograph + + + 225772 + 735E + E78D9E + East Asian ideograph + + + 225774 + 735D + E78D9D + East Asian ideograph + + + 225779 + 7360 + E78DA0 + East Asian ideograph + + + 22577B + 7358 + E78D98 + East Asian ideograph + + + 22577E + 7362 + E78DA2 + East Asian ideograph + + + 225821 + 734B + E78D8B + East Asian ideograph + + + 225825 + 7367 + E78DA7 + East Asian ideograph + + + 225829 + 736C + E78DAC + East Asian ideograph + + + 22582B + 736B + E78DAB + East Asian ideograph + + + 22582F + 736F + E78DAF + East Asian ideograph + + + 225836 + 737C + E78DBC + East Asian ideograph + + + 225838 + 737E + E78DBE + East Asian ideograph + + + 22583B + 7381 + E78E81 + East Asian ideograph + + + 22583F + 7388 + E78E88 + East Asian ideograph + + + 225842 + 738E + E78E8E + East Asian ideograph + + + 225846 + 7395 + E78E95 + East Asian ideograph + + + 225847 + 7392 + E78E92 + East Asian ideograph + + + 225848 + 7397 + E78E97 + East Asian ideograph + + + 22584C + 7393 + E78E93 + East Asian ideograph + + + 22584D + 7394 + E78E94 + East Asian ideograph + + + 225851 + 739E + E78E9E + East Asian ideograph + + + 225852 + 73A6 + E78EA6 + East Asian ideograph + + + 22585D + 73A5 + E78EA5 + East Asian ideograph + + + 225862 + 73A2 + E78EA2 + East Asian ideograph + + + 225863 + 73A0 + E78EA0 + East Asian ideograph + + + 225867 + 73B6 + E78EB6 + East Asian ideograph + + + 225868 + 73CF + E78F8F + East Asian ideograph + + + 22586A + 73C2 + E78F82 + East Asian ideograph + + + 22586B + 73D0 + E78F90 + East Asian ideograph + + + 22586F + 73BF + E78EBF + East Asian ideograph + + + 225870 + 73C8 + E78F88 + East Asian ideograph + + + 22587D + 73CC + E78F8C + East Asian ideograph + + + 225921 + 73D3 + E78F93 + East Asian ideograph + + + 225927 + 73EA + E78FAA + East Asian ideograph + + + 225928 + 73E5 + E78FA5 + East Asian ideograph + + + 22592A + 73D9 + E78F99 + East Asian ideograph + + + 22592B + 73EF + E78FAF + East Asian ideograph + + + 22592F + 73D4 + E78F94 + East Asian ideograph + + + 225930 + 73DB + E78F9B + East Asian ideograph + + + 225932 + 73D6 + E78F96 + East Asian ideograph + + + 225935 + 73BC + E78EBC + East Asian ideograph + + + 225936 + 73E7 + E78FA7 + East Asian ideograph + + + 225938 + 73E3 + E78FA3 + East Asian ideograph + + + 22593A + 73DE + E78F9E + East Asian ideograph + + + 22593C + 73E6 + E78FA6 + East Asian ideograph + + + 22593F + 73E9 + E78FA9 + East Asian ideograph + + + 225945 + 73F6 + E78FB6 + East Asian ideograph + + + 225947 + 73FA + E78FBA + East Asian ideograph + + + 22594A + 73F8 + E78FB8 + East Asian ideograph + + + 225954 + 73F5 + E78FB5 + East Asian ideograph + + + 22595A + 73FD + E78FBD + East Asian ideograph + + + 22595C + 7407 + E79087 + East Asian ideograph + + + 22595E + 7412 + E79092 + East Asian ideograph + + + 225963 + 743C + E790BC + East Asian ideograph + + + 225966 + 742E + E790AE + East Asian ideograph + + + 225967 + 742F + E790AF + East Asian ideograph + + + 225969 + 7414 + E79094 + East Asian ideograph + + + 22596A + 742C + E790AC + East Asian ideograph + + + 22596C + 7430 + E790B0 + East Asian ideograph + + + 22596E + 742B + E790AB + East Asian ideograph + + + 225970 + 73F7 + E78FB7 + East Asian ideograph + + + 225971 + 741A + E7909A + East Asian ideograph + + + 225978 + 7416 + E79096 + East Asian ideograph + + + 22597A + 7426 + E790A6 + East Asian ideograph + + + 225A21 + 7428 + E790A8 + East Asian ideograph + + + 225A23 + 7429 + E790A9 + East Asian ideograph + + + 225A28 + 7420 + E790A0 + East Asian ideograph + + + 225A2A + 741B + E7909B + East Asian ideograph + + + 225A2B + 7424 + E790A4 + East Asian ideograph + + + 225A2C + 7432 + E790B2 + East Asian ideograph + + + 225A2D + 742D + E790AD + East Asian ideograph + + + 225A30 + 7415 + E79095 + East Asian ideograph + + + 225A32 + 743B + E790BB + East Asian ideograph + + + 225A36 + 7444 + E79184 + East Asian ideograph + + + 225A40 + 7447 + E79187 + East Asian ideograph + + + 225A43 + 7458 + E79198 + East Asian ideograph + + + 225A45 + 7442 + E79182 + East Asian ideograph + + + 225A47 + 744B + E7918B + East Asian ideograph + + + 225A4A + 744A + E7918A + East Asian ideograph + + + 225A4F + 7452 + E79192 + East Asian ideograph + + + 225A55 + 7457 + E79197 + East Asian ideograph + + + 225A56 + 7451 + E79191 + East Asian ideograph + + + 225A5A + 745D + E7919D + East Asian ideograph + + + 225A5B + 7454 + E79194 + East Asian ideograph + + + 225A5D + 7440 + E79180 + East Asian ideograph + + + 225A60 + 746D + E791AD + East Asian ideograph + + + 225A61 + 7462 + E791A2 + East Asian ideograph + + + 225A62 + 7473 + E791B3 + East Asian ideograph + + + 225A68 + 7474 + E791B4 + East Asian ideograph + + + 225A69 + 746E + E791AE + East Asian ideograph + + + 225A6A + 7471 + E791B1 + East Asian ideograph + + + 225A6B + 7468 + E791A8 + East Asian ideograph + + + 225A78 + 7460 + E791A0 + East Asian ideograph + + + 225A79 + 7472 + E791B2 + East Asian ideograph + + + 225A7A + 7484 + E79284 + East Asian ideograph + + + 225A7B + 7487 + E79287 + East Asian ideograph + + + 225A7E + 7488 + E79288 + East Asian ideograph + + + 225B21 + 7489 + E79289 + East Asian ideograph + + + 225B22 + 747C + E791BC + East Asian ideograph + + + 225B27 + 7482 + E79282 + East Asian ideograph + + + 225B28 + 747E + E791BE + East Asian ideograph + + + 225B2A + 748A + E7928A + East Asian ideograph + + + 225B2D + 7486 + E79286 + East Asian ideograph + + + 225B30 + 747A + E791BA + East Asian ideograph + + + 225B38 + 7480 + E79280 + East Asian ideograph + + + 225B3C + 7481 + E79281 + East Asian ideograph + + + 225B3E + 747D + E791BD + East Asian ideograph + + + 225B3F + 7485 + E79285 + East Asian ideograph + + + 225B40 + 7497 + E79297 + East Asian ideograph + + + 225B43 + 7498 + E79298 + East Asian ideograph + + + 225B45 + 749A + E7929A + East Asian ideograph + + + 225B4D + 74A4 + E792A4 + East Asian ideograph + + + 225B54 + 749F + E7929F + East Asian ideograph + + + 225B55 + 749D + E7929D + East Asian ideograph + + + 225B56 + 748D + E7928D + East Asian ideograph + + + 225B57 + 749E + E7929E + East Asian ideograph + + + 225B59 + 74A0 + E792A0 + East Asian ideograph + + + 225B5D + 74A1 + E792A1 + East Asian ideograph + + + 225B60 + 74B2 + E792B2 + East Asian ideograph + + + 225B61 + 74B1 + E792B1 + East Asian ideograph + + + 225B66 + 74B4 + E792B4 + East Asian ideograph + + + 225B67 + 74AB + E792AB + East Asian ideograph + + + 225B69 + 74AA + E792AA + East Asian ideograph + + + 225B6A + 7490 + E79290 + East Asian ideograph + + + 225B6C + 74A5 + E792A5 + East Asian ideograph + + + 225B6E + 74A8 + E792A8 + East Asian ideograph + + + 225B76 + 74B8 + E792B8 + East Asian ideograph + + + 225B7A + 74C0 + E79380 + East Asian ideograph + + + 225C25 + 74BF + E792BF + East Asian ideograph + + + 225C28 + 74B5 + E792B5 + East Asian ideograph + + + 225C29 + 74BA + E792BA + East Asian ideograph + + + 225C30 + 74C8 + E79388 + East Asian ideograph + + + 225C31 + 74C5 + E79385 + East Asian ideograph + + + 225C32 + 74CC + E7938C + East Asian ideograph + + + 225C38 + 74D6 + E79396 + East Asian ideograph + + + 225C3A + 74D4 + E79394 + East Asian ideograph + + + 225C3D + 74D8 + E79398 + East Asian ideograph + + + 225C40 + 74DA + E7939A + East Asian ideograph + + + 225C41 + 74DB + E7939B + East Asian ideograph + + + 225C47 + 74DE + E7939E + East Asian ideograph + + + 225C50 + 74E4 + E793A4 + East Asian ideograph + + + 225C52 + 74E7 + E793A7 + East Asian ideograph + + + 225C54 + 74E9 + E793A9 + East Asian ideograph + + + 225C58 + 74F1 + E793B1 + East Asian ideograph + + + 225C5A + 74F0 + E793B0 + East Asian ideograph + + + 225C5C + 74EE + E793AE + East Asian ideograph + + + 225C61 + 74F4 + E793B4 + East Asian ideograph + + + 225C63 + 74F8 + E793B8 + East Asian ideograph + + + 225C66 + 74FB + E793BB + East Asian ideograph + + + 225C67 + 74FF + E793BF + East Asian ideograph + + + 225C71 + 7505 + E79485 + East Asian ideograph + + + 225C77 + 7503 + E79483 + East Asian ideograph + + + 225C7D + 7507 + E79487 + East Asian ideograph + + + 225D25 + 750E + E7948E + East Asian ideograph + + + 225D28 + 750D + E7948D + East Asian ideograph + + + 225D2C + 7511 + E79491 + East Asian ideograph + + + 225D2D + 750F + E7948F + East Asian ideograph + + + 225D32 + 7512 + E79492 + East Asian ideograph + + + 225D33 + 7513 + E79493 + East Asian ideograph + + + 225D39 + 7517 + E79497 + East Asian ideograph + + + 225D42 + 7521 + E794A1 + East Asian ideograph + + + 225D44 + 7524 + E794A4 + East Asian ideograph + + + 225D49 + 752F + E794AF + East Asian ideograph + + + 225D4D + 753A + E794BA + East Asian ideograph + + + 225D4F + 753F + E794BF + East Asian ideograph + + + 225D51 + 7540 + E79580 + East Asian ideograph + + + 225D52 + 753E + E794BE + East Asian ideograph + + + 225D55 + 754A + E7958A + East Asian ideograph + + + 225D57 + 754E + E7958E + East Asian ideograph + + + 225D58 + 7547 + E79587 + East Asian ideograph + + + 225D59 + 754B + E7958B + East Asian ideograph + + + 225D5A + 7548 + E79588 + East Asian ideograph + + + 225D5F + 755F + E7959F + East Asian ideograph + + + 225D60 + 755B + E7959B + East Asian ideograph + + + 225D62 + 7564 + E795A4 + East Asian ideograph + + + 225D67 + 7563 + E795A3 + East Asian ideograph + + + 225D69 + 756F + E795AF + East Asian ideograph + + + 225D6B + 756C + E795AC + East Asian ideograph + + + 225D6D + 7579 + E795B9 + East Asian ideograph + + + 225D6E + 757A + E795BA + East Asian ideograph + + + 225D71 + 7577 + E795B7 + East Asian ideograph + + + 225D75 + 7571 + E795B1 + East Asian ideograph + + + 225D79 + 757D + E795BD + East Asian ideograph + + + 225D7E + 757F + E795BF + East Asian ideograph + + + 225E25 + 7583 + E79683 + East Asian ideograph + + + 225E2C + 7590 + E79690 + East Asian ideograph + + + 225E2D + 7592 + E79692 + East Asian ideograph + + + 225E2E + 7594 + E79694 + East Asian ideograph + + + 225E31 + 7595 + E79695 + East Asian ideograph + + + 225E35 + 7598 + E79698 + East Asian ideograph + + + 225E37 + 75A2 + E796A2 + East Asian ideograph + + + 225E3B + 75A3 + E796A3 + East Asian ideograph + + + 225E3E + 75BA + E796BA + East Asian ideograph + + + 225E43 + 75B0 + E796B0 + East Asian ideograph + + + 225E44 + 75C3 + E79783 + East Asian ideograph + + + 225E46 + 75BF + E796BF + East Asian ideograph + + + 225E47 + 75B4 + E796B4 + East Asian ideograph + + + 225E4A + 75C2 + E79782 + East Asian ideograph + + + 225E4E + 75C1 + E79781 + East Asian ideograph + + + 225E50 + 75B1 + E796B1 + East Asian ideograph + + + 225E51 + 75C4 + E79784 + East Asian ideograph + + + 225E58 + 75CD + E7978D + East Asian ideograph + + + 225E5C + 75CF + E7978F + East Asian ideograph + + + 225E5E + 75CC + E7978C + East Asian ideograph + + + 225E5F + 75D0 + E79790 + East Asian ideograph + + + 225E63 + 75E7 + E797A7 + East Asian ideograph + + + 225E66 + 75E1 + E797A1 + East Asian ideograph + + + 225E67 + 75E6 + E797A6 + East Asian ideograph + + + 225E71 + 75E4 + E797A4 + East Asian ideograph + + + 225E72 + 75E0 + E797A0 + East Asian ideograph + + + 225E73 + 75D7 + E79797 + East Asian ideograph + + + 225E7A + 7602 + E79882 + East Asian ideograph + + + 225E7E + 7603 + E79883 + East Asian ideograph + + + 225F21 + 75F9 + E797B9 + East Asian ideograph + + + 225F22 + 75FC + E797BC + East Asian ideograph + + + 225F29 + 7616 + E79896 + East Asian ideograph + + + 225F2C + 7608 + E79888 + East Asian ideograph + + + 225F2D + 7615 + E79895 + East Asian ideograph + + + 225F2E + 760C + E7988C + East Asian ideograph + + + 225F2F + 760F + E7988F + East Asian ideograph + + + 225F3B + 7610 + E79890 + East Asian ideograph + + + 225F3C + 760A + E7988A + East Asian ideograph + + + 225F3E + 7625 + E798A5 + East Asian ideograph + + + 225F3F + 761A + E7989A + East Asian ideograph + + + 225F40 + 761B + E7989B + East Asian ideograph + + + 225F47 + 7619 + E79899 + East Asian ideograph + + + 225F48 + 761E + E7989E + East Asian ideograph + + + 225F4C + 761D + E7989D + East Asian ideograph + + + 225F50 + 7622 + E798A2 + East Asian ideograph + + + 225F51 + 762F + E798AF + East Asian ideograph + + + 225F54 + 762D + E798AD + East Asian ideograph + + + 225F5C + 7633 + E798B3 + East Asian ideograph + + + 225F5E + 763B + E798BB + East Asian ideograph + + + 225F5F + 7630 + E798B0 + East Asian ideograph + + + 225F60 + 763C + E798BC + East Asian ideograph + + + 225F62 + 7635 + E798B5 + East Asian ideograph + + + 225F67 + 7648 + E79988 + East Asian ideograph + + + 225F68 + 764E + E7998E + East Asian ideograph + + + 225F69 + 7647 + E79987 + East Asian ideograph + + + 225F6A + 7643 + E79983 + East Asian ideograph + + + 225F6E + 764D + E7998D + East Asian ideograph + + + 225F6F + 7649 + E79989 + East Asian ideograph + + + 225F75 + 7654 + E79994 + East Asian ideograph + + + 225F7A + 765C + E7999C + East Asian ideograph + + + 225F7B + 7657 + E79997 + East Asian ideograph + + + 226022 + 7664 + E799A4 + East Asian ideograph + + + 226024 + 7659 + E79999 + East Asian ideograph + + + 22602B + 765F + E7999F + East Asian ideograph + + + 226032 + 7667 + E799A7 + East Asian ideograph + + + 226035 + 766A + E799AA + East Asian ideograph + + + 226037 + 766D + E799AD + East Asian ideograph + + + 226038 + 766F + E799AF + East Asian ideograph + + + 22603A + 7670 + E799B0 + East Asian ideograph + + + 226040 + 7676 + E799B6 + East Asian ideograph + + + 226041 + 7677 + E799B7 + East Asian ideograph + + + 226048 + 7680 + E79A80 + East Asian ideograph + + + 22604A + 768B + E79A8B + East Asian ideograph + + + 226052 + 7695 + E79A95 + East Asian ideograph + + + 226055 + 656B + E695AB + East Asian ideograph + + + 226059 + 7699 + E79A99 + East Asian ideograph + + + 22605D + 769C + E79A9C + East Asian ideograph + + + 22605F + 769D + E79A9D + East Asian ideograph + + + 226065 + 76A4 + E79AA4 + East Asian ideograph + + + 226066 + 76A5 + E79AA5 + East Asian ideograph + + + 226067 + 76A6 + E79AA6 + East Asian ideograph + + + 22606A + 76AA + E79AAA + East Asian ideograph + + + 22606D + 76AD + E79AAD + East Asian ideograph + + + 226074 + 76B8 + E79AB8 + East Asian ideograph + + + 226077 + 76BD + E79ABD + East Asian ideograph + + + 226123 + 76CB + E79B8B + East Asian ideograph + + + 226126 + 76CC + E79B8C + East Asian ideograph + + + 22613B + 76E6 + E79BA6 + East Asian ideograph + + + 22613C + 76E9 + E79BA9 + East Asian ideograph + + + 226140 + 76EC + E79BAC + East Asian ideograph + + + 226144 + 76ED + E79BAD + East Asian ideograph + + + 226148 + 76F1 + E79BB1 + East Asian ideograph + + + 22614B + 7704 + E79C84 + East Asian ideograph + + + 22614F + 7708 + E79C88 + East Asian ideograph + + + 226150 + 7707 + E79C87 + East Asian ideograph + + + 226153 + 76F7 + E79BB7 + East Asian ideograph + + + 226154 + 770A + E79C8A + East Asian ideograph + + + 226159 + 76FB + E79BBB + East Asian ideograph + + + 22615E + 772B + E79CAB + East Asian ideograph + + + 226160 + 770E + E79C8E + East Asian ideograph + + + 226162 + 771B + E79C9B + East Asian ideograph + + + 226163 + 7724 + E79CA4 + East Asian ideograph + + + 22616C + 7722 + E79CA2 + East Asian ideograph + + + 22616D + 771A + E79C9A + East Asian ideograph + + + 22616F + 7721 + E79CA1 + East Asian ideograph + + + 226174 + 7740 + E79D80 + East Asian ideograph + + + 226175 + 7739 + E79CB9 + East Asian ideograph + + + 226176 + 772F + E79CAF + East Asian ideograph + + + 226177 + 7731 + E79CB1 + East Asian ideograph + + + 226222 + 7725 + E79CA5 + East Asian ideograph + + + 226225 + 7735 + E79CB5 + East Asian ideograph + + + 226226 + 7734 + E79CB4 + East Asian ideograph + + + 22622D + 7747 + E79D87 + East Asian ideograph + + + 226231 + 7745 + E79D85 + East Asian ideograph + + + 226232 + 774D + E79D8D + East Asian ideograph + + + 226233 + 774A + E79D8A + East Asian ideograph + + + 226235 + 7743 + E79D83 + East Asian ideograph + + + 226237 + 774E + E79D8E + East Asian ideograph + + + 22623A + 775F + E79D9F + East Asian ideograph + + + 22623D + 7760 + E79DA0 + East Asian ideograph + + + 22623E + 7752 + E79D92 + East Asian ideograph + + + 226242 + 7758 + E79D98 + East Asian ideograph + + + 226244 + 7756 + E79D96 + East Asian ideograph + + + 226245 + 775A + E79D9A + East Asian ideograph + + + 22624F + 7762 + E79DA2 + East Asian ideograph + + + 226252 + 7780 + E79E80 + East Asian ideograph + + + 226256 + 776F + E79DAF + East Asian ideograph + + + 22625D + 777E + E79DBE + East Asian ideograph + + + 22625F + 7785 + E79E85 + East Asian ideograph + + + 226260 + 777A + E79DBA + East Asian ideograph + + + 226266 + 778B + E79E8B + East Asian ideograph (variant of EACC 4C6266) + + + 22626A + 778D + E79E8D + East Asian ideograph + + + 226272 + 7798 + E79E98 + East Asian ideograph + + + 226273 + 7796 + E79E96 + East Asian ideograph + + + 226275 + 77A2 + E79EA2 + East Asian ideograph + + + 226276 + 7799 + E79E99 + East Asian ideograph + + + 22627A + 77B5 + E79EB5 + East Asian ideograph + + + 22627D + 77B7 + E79EB7 + East Asian ideograph + + + 226323 + 77B6 + E79EB6 + East Asian ideograph + + + 226329 + 77BE + E79EBE + East Asian ideograph + + + 22632B + 77B9 + E79EB9 + East Asian ideograph + + + 22632C + 77BC + E79EBC + East Asian ideograph + + + 226335 + 77CD + E79F8D + East Asian ideograph + + + 22633A + 77D1 + E79F91 + East Asian ideograph + + + 226345 + 77DE + E79F9E + East Asian ideograph + + + 226346 + 77DF + E79F9F + East Asian ideograph + + + 22634F + 77E7 + E79FA7 + East Asian ideograph + + + 226352 + 77E6 + E79FA6 + East Asian ideograph + + + 226355 + 77EC + E79FAC + East Asian ideograph + + + 226359 + 77F0 + E79FB0 + East Asian ideograph + + + 22635A + 77F1 + E79FB1 + East Asian ideograph + + + 22635C + 77F4 + E79FB4 + East Asian ideograph + + + 226360 + 77FC + E79FBC + East Asian ideograph + + + 226367 + 77F8 + E79FB8 + East Asian ideograph + + + 226368 + 77FB + E79FBB + East Asian ideograph + + + 226370 + 7809 + E7A089 + East Asian ideograph + + + 226371 + 7806 + E7A086 + East Asian ideograph + + + 226373 + 7819 + E7A099 + East Asian ideograph + + + 226374 + 7811 + E7A091 + East Asian ideograph + + + 226378 + 7812 + E7A092 + East Asian ideograph + + + 226424 + 781B + E7A09B + East Asian ideograph + + + 226426 + 782C + E7A0AC + East Asian ideograph + + + 226427 + 7823 + E7A0A3 + East Asian ideograph + + + 226428 + 782B + E7A0AB + East Asian ideograph + + + 22642A + 7829 + E7A0A9 + East Asian ideograph + + + 22642D + 7822 + E7A0A2 + East Asian ideograph + + + 226431 + 7835 + E7A0B5 + East Asian ideograph + + + 226432 + 7833 + E7A0B3 + East Asian ideograph + + + 226433 + 782E + E7A0AE + East Asian ideograph + + + 226435 + 7820 + E7A0A0 + East Asian ideograph + + + 226438 + 783D + E7A0BD + East Asian ideograph + + + 22643B + 781F + E7A09F + East Asian ideograph + + + 22643D + 7831 + E7A0B1 + East Asian ideograph + + + 226444 + 784D + E7A18D + East Asian ideograph + + + 226448 + 7848 + E7A188 + East Asian ideograph + + + 226449 + 7853 + E7A193 + East Asian ideograph + + + 22644A + 7854 + E7A194 + East Asian ideograph + + + 22644B + 7845 + E7A185 + East Asian ideograph + + + 22644C + 7852 + E7A192 + East Asian ideograph + + + 22644E + 7850 + E7A190 + East Asian ideograph + + + 22644F + 7858 + E7A198 + East Asian ideograph + + + 226450 + 7826 + E7A0A6 + East Asian ideograph + + + 226452 + 7847 + E7A187 + East Asian ideograph + + + 226456 + 784C + E7A18C + East Asian ideograph + + + 22645A + 7868 + E7A1A8 + East Asian ideograph + + + 22645B + 786D + E7A1AD + East Asian ideograph + + + 226460 + 7864 + E7A1A4 + East Asian ideograph + + + 226461 + 785C + E7A19C + East Asian ideograph + + + 226464 + 7876 + E7A1B6 + East Asian ideograph + + + 226466 + 786A + E7A1AA + East Asian ideograph + + + 226469 + 7886 + E7A286 + East Asian ideograph + + + 22646B + 789A + E7A29A + East Asian ideograph + + + 22646C + 787F + E7A1BF + East Asian ideograph + + + 22646D + 7887 + E7A287 + East Asian ideograph + + + 226470 + 7894 + E7A294 + East Asian ideograph + + + 226476 + 788F + E7A28F + East Asian ideograph + + + 22647E + 7899 + E7A299 + East Asian ideograph + + + 226529 + 7893 + E7A293 + East Asian ideograph + + + 22652C + 7892 + E7A292 + East Asian ideograph + + + 22652D + 7896 + E7A296 + East Asian ideograph + + + 22652F + 78B2 + E7A2B2 + East Asian ideograph + + + 226531 + 78A1 + E7A2A1 + East Asian ideograph + + + 226532 + 78B6 + E7A2B6 + East Asian ideograph + + + 226539 + 78B7 + E7A2B7 + East Asian ideograph + + + 22653B + 78A4 + E7A2A4 + East Asian ideograph + + + 22653E + 78B4 + E7A2B4 + East Asian ideograph + + + 226540 + 78AD + E7A2AD + East Asian ideograph + + + 226541 + 78A3 + E7A2A3 + East Asian ideograph + + + 226543 + 789E + E7A29E + East Asian ideograph + + + 226544 + 78A8 + E7A2A8 + East Asian ideograph + + + 226548 + 78AB + E7A2AB + East Asian ideograph + + + 22654E + 78BB + E7A2BB + East Asian ideograph + + + 226555 + 78CC + E7A38C + East Asian ideograph + + + 226556 + 78C9 + E7A389 + East Asian ideograph + + + 226558 + 78D1 + E7A391 + East Asian ideograph + + + 22655A + 78D8 + E7A398 + East Asian ideograph + + + 22655E + 78C8 + E7A388 + East Asian ideograph + + + 226560 + 78D4 + E7A394 + East Asian ideograph + + + 226568 + 78DF + E7A39F + East Asian ideograph + + + 22656A + 78E7 + E7A3A7 + East Asian ideograph + + + 22656E + 78DB + E7A39B + East Asian ideograph + + + 22656F + 78E1 + E7A3A1 + East Asian ideograph + + + 226573 + 78E0 + E7A3A0 + East Asian ideograph + + + 226576 + 78EE + E7A3AE + East Asian ideograph + + + 226577 + 78E3 + E7A3A3 + East Asian ideograph + + + 226579 + 78F2 + E7A3B2 + East Asian ideograph + + + 22657E + 7905 + E7A485 + East Asian ideograph + + + 226621 + 78F9 + E7A3B9 + East Asian ideograph + + + 226622 + 78FD + E7A3BD + East Asian ideograph + + + 226627 + 78FE + E7A3BE + East Asian ideograph + + + 226629 + 78FB + E7A3BB + East Asian ideograph + + + 22662B + 7904 + E7A484 + East Asian ideograph + + + 22662E + 7912 + E7A492 + East Asian ideograph + + + 226632 + 790C + E7A48C + East Asian ideograph + + + 226634 + 7913 + E7A493 + East Asian ideograph + + + 226635 + 7911 + E7A491 + East Asian ideograph + + + 226643 + 791E + E7A49E + East Asian ideograph + + + 226646 + 7922 + E7A4A2 + East Asian ideograph + + + 22664C + 7924 + E7A4A4 + East Asian ideograph + + + 22664D + 7927 + E7A4A7 + East Asian ideograph + + + 226650 + 7929 + E7A4A9 + East Asian ideograph + + + 226655 + 7931 + E7A4B1 + East Asian ideograph + + + 22665D + 7934 + E7A4B4 + East Asian ideograph + + + 226660 + 7936 + E7A4B6 + East Asian ideograph + + + 226665 + 793D + E7A4BD + East Asian ideograph + + + 226667 + 7942 + E7A582 + East Asian ideograph + + + 226668 + 793F + E7A4BF + East Asian ideograph + + + 22666A + 794A + E7A58A + East Asian ideograph + + + 22666B + 794D + E7A58D + East Asian ideograph + + + 226675 + 7946 + E7A586 + East Asian ideograph + + + 226677 + 7958 + E7A598 + East Asian ideograph + + + 226679 + 795B + E7A59B + East Asian ideograph + + + 22667A + 795C + E7A59C + East Asian ideograph + + + 22667B + 794F + E7A58F + East Asian ideograph + + + 22667C + 7953 + E7A593 + East Asian ideograph + + + 22667D + 7953 + E7A593 + East Asian ideograph (unrelated variant of EACC 22667C) + + + 226721 + 7951 + E7A591 + East Asian ideograph + + + 226723 + 7954 + E7A594 + East Asian ideograph + + + 22672A + 7967 + E7A5A7 + East Asian ideograph + + + 22672D + 796B + E7A5AB + East Asian ideograph + + + 226730 + 7972 + E7A5B2 + East Asian ideograph + + + 22673E + 797C + E7A5BC + East Asian ideograph + + + 22674A + 7998 + E7A698 + East Asian ideograph + + + 22674B + 798A + E7A68A + East Asian ideograph + + + 22674D + 7999 + E7A699 + East Asian ideograph + + + 22674E + 7995 + E7A695 + East Asian ideograph + + + 22674F + 798B + E7A68B + East Asian ideograph + + + 226750 + 7996 + E7A696 + East Asian ideograph + + + 226754 + 7994 + E7A694 + East Asian ideograph + + + 226755 + 7993 + E7A693 + East Asian ideograph + + + 22675C + 799A + E7A69A + East Asian ideograph + + + 22675F + 79A1 + E7A6A1 + East Asian ideograph + + + 226760 + 799B + E7A69B + East Asian ideograph + + + 226761 + 79A3 + E7A6A3 + East Asian ideograph + + + 226764 + 799D + E7A69D + East Asian ideograph + + + 22676E + 79A9 + E7A6A9 + East Asian ideograph + + + 226770 + 79AB + E7A6AB + East Asian ideograph + + + 226771 + 79A8 + E7A6A8 + East Asian ideograph + + + 226775 + 79B0 + E7A6B0 + East Asian ideograph + + + 22677A + 79B3 + E7A6B3 + East Asian ideograph + + + 22677B + 79B4 + E7A6B4 + East Asian ideograph + + + 226822 + 79B8 + E7A6B8 + East Asian ideograph + + + 226823 + 79BA + E7A6BA + East Asian ideograph + + + 226825 + 79BC + E7A6BC + East Asian ideograph + + + 226828 + 79C6 + E7A786 + East Asian ideograph + + + 22682A + 79C8 + E7A788 + East Asian ideograph + + + 22682D + 79D4 + E7A794 + East Asian ideograph + + + 22682E + 79D5 + E7A795 + East Asian ideograph + + + 226832 + 79D6 + E7A796 + East Asian ideograph + + + 22683D + 79EC + E7A7AC + East Asian ideograph + + + 22683E + 79EB + E7A7AB + East Asian ideograph (variant of EACC 4C683E) + + + 226842 + 79E1 + E7A7A1 + East Asian ideograph + + + 226844 + 79DD + E7A79D + East Asian ideograph + + + 226845 + 79ED + E7A7AD + East Asian ideograph + + + 226848 + 79F8 + E7A7B8 + East Asian ideograph + + + 22684F + 7A02 + E7A882 + East Asian ideograph + + + 226850 + 7A0A + E7A88A + East Asian ideograph + + + 226854 + 7A09 + E7A889 + East Asian ideograph + + + 22685C + 7A03 + E7A883 + East Asian ideograph + + + 226861 + 7A0C + E7A88C + East Asian ideograph + + + 22686B + 7A11 + E7A891 + East Asian ideograph + + + 22686C + 7A18 + E7A898 + East Asian ideograph + + + 22686F + 7A19 + E7A899 + East Asian ideograph (variant of EACC 2E686F) + + + 226871 + 7A1E + E7A89E + East Asian ideograph + + + 226876 + 7A17 + E7A897 + East Asian ideograph + + + 22687E + 7A2D + E7A8AD + East Asian ideograph + + + 226922 + 7A2C + E7A8AC + East Asian ideograph + + + 226939 + 7A48 + E7A988 + East Asian ideograph + + + 22693D + 7A4B + E7A98B + East Asian ideograph + + + 22693E + 7A47 + E7A987 + East Asian ideograph + + + 22693F + 7A44 + E7A984 + East Asian ideograph + + + 226940 + 7A5C + E7A99C + East Asian ideograph + + + 22694D + 7A5F + E7A99F + East Asian ideograph + + + 22694F + 7A60 + E7A9A0 + East Asian ideograph + + + 226957 + 7A6E + E7A9AE + East Asian ideograph + + + 22695F + 7A70 + E7A9B0 + East Asian ideograph + + + 226966 + 7A75 + E7A9B5 + East Asian ideograph + + + 226969 + 7A78 + E7A9B8 + East Asian ideograph + + + 22696B + 7A80 + E7AA80 + East Asian ideograph + + + 226970 + 7A85 + E7AA85 + East Asian ideograph + + + 226975 + 7A86 + E7AA86 + East Asian ideograph + + + 226978 + 7A8A + E7AA8A + East Asian ideograph + + + 22697A + 7A94 + E7AA94 + East Asian ideograph + + + 22697E + 68A5 + E6A2A5 + East Asian ideograph + + + 226A28 + 7AA3 + E7AAA3 + East Asian ideograph + + + 226A2B + 7A9E + E7AA9E + East Asian ideograph + + + 226A2C + 7AA7 + E7AAA7 + East Asian ideograph + + + 226A2E + 7AA8 + E7AAA8 + East Asian ideograph + + + 226A31 + 7AAC + E7AAAC + East Asian ideograph + + + 226A36 + 7AB3 + E7AAB3 + East Asian ideograph + + + 226A3A + 7ABD + E7AABD + East Asian ideograph + + + 226A3C + 7AB6 + E7AAB6 + East Asian ideograph + + + 226A3D + 7AB8 + E7AAB8 + East Asian ideograph + + + 226A3E + 7AB5 + E7AAB5 + East Asian ideograph + + + 226A3F + 7ABB + E7AABB + East Asian ideograph + + + 226A43 + 7ABF + E7AABF + East Asian ideograph + + + 226A49 + 7ACD + E7AB8D + East Asian ideograph + + + 226A4B + 7ACF + E7AB8F + East Asian ideograph + + + 226A4F + 7AD1 + E7AB91 + East Asian ideograph + + + 226A51 + 7AD3 + E7AB93 + East Asian ideograph + + + 226A52 + 7AD4 + E7AB94 + East Asian ideograph + + + 226A54 + 7AD5 + E7AB95 + East Asian ideograph + + + 226A55 + 7ADA + E7AB9A + East Asian ideograph + + + 226A5A + 7AE1 + E7ABA1 + East Asian ideograph + + + 226A5E + 7AE6 + E7ABA6 + East Asian ideograph + + + 226A66 + 7AEB + E7ABAB + East Asian ideograph + + + 226A6B + 7AF0 + E7ABB0 + East Asian ideograph + + + 226A76 + 7AF5 + E7ABB5 + East Asian ideograph + + + 226A7C + 7AFE + E7ABBE + East Asian ideograph + + + 226B27 + 7B39 + E7ACB9 + East Asian ideograph + + + 226B2D + 7B0F + E7AC8F + East Asian ideograph + + + 226B2E + 7B08 + E7AC88 + East Asian ideograph + + + 226B33 + 7B0A + E7AC8A + East Asian ideograph + + + 226B35 + 7B35 + E7ACB5 + East Asian ideograph + + + 226B36 + 7B25 + E7ACA5 + East Asian ideograph + + + 226B39 + 7B38 + E7ACB8 + East Asian ideograph + + + 226B3B + 7B3B + E7ACBB + East Asian ideograph + + + 226B3F + 7B24 + E7ACA4 + East Asian ideograph + + + 226B40 + 7B33 + E7ACB3 + East Asian ideograph + + + 226B42 + 7B2A + E7ACAA + East Asian ideograph + + + 226B44 + 7B18 + E7AC98 + East Asian ideograph + + + 226B47 + 7B31 + E7ACB1 + East Asian ideograph + + + 226B4A + 7B2B + E7ACAB + East Asian ideograph + + + 226B4B + 7B37 + E7ACB7 + East Asian ideograph + + + 226B4D + 7B1F + E7AC9F + East Asian ideograph + + + 226B52 + 7B4A + E7AD8A + East Asian ideograph + + + 226B53 + 7B59 + E7AD99 + East Asian ideograph + + + 226B54 + 7B04 + E7AC84 + East Asian ideograph (variant of EACC 2E6B54) + + + 226B55 + 7B47 + E7AD87 + East Asian ideograph + + + 226B59 + 7B58 + E7AD98 + East Asian ideograph + + + 226B5B + 7B6C + E7ADAC + East Asian ideograph + + + 226B60 + 7B48 + E7AD88 + East Asian ideograph + + + 226B61 + 7B45 + E7AD85 + East Asian ideograph + + + 226B62 + 7B4C + E7AD8C + East Asian ideograph + + + 226B63 + 7B4E + E7AD8E + East Asian ideograph + + + 226B68 + 7B66 + E7ADA6 + East Asian ideograph + + + 226B6C + 7B64 + E7ADA4 + East Asian ideograph + + + 226B6E + 7B69 + E7ADA9 + East Asian ideograph + + + 226B70 + 7B6D + E7ADAD + East Asian ideograph + + + 226B74 + 7B62 + E7ADA2 + East Asian ideograph + + + 226B75 + 7B6E + E7ADAE + East Asian ideograph + + + 226B76 + 7B74 + E7ADB4 + East Asian ideograph + + + 226B79 + 7B72 + E7ADB2 + East Asian ideograph + + + 226B7A + 7B78 + E7ADB8 + East Asian ideograph + + + 226B7B + 7B6F + E7ADAF + East Asian ideograph + + + 226B7C + 7B67 + E7ADA7 + East Asian ideograph + + + 226B7E + 7B65 + E7ADA5 + East Asian ideograph + + + 226C26 + 7B71 + E7ADB1 + East Asian ideograph + + + 226C27 + 7B70 + E7ADB0 + East Asian ideograph + + + 226C29 + 7B73 + E7ADB3 + East Asian ideograph + + + 226C2D + 7B9C + E7AE9C + East Asian ideograph + + + 226C33 + 7B92 + E7AE92 + East Asian ideograph + + + 226C34 + 7B91 + E7AE91 + East Asian ideograph + + + 226C35 + 7B90 + E7AE90 + East Asian ideograph + + + 226C38 + 7BA3 + E7AEA3 + East Asian ideograph + + + 226C3A + 7B8D + E7AE8D + East Asian ideograph + + + 226C41 + 7B85 + E7AE85 + East Asian ideograph + + + 226C43 + 7B8E + E7AE8E + East Asian ideograph + + + 226C44 + 7B98 + E7AE98 + East Asian ideograph + + + 226C46 + 7B86 + E7AE86 + East Asian ideograph + + + 226C48 + 7B99 + E7AE99 + East Asian ideograph + + + 226C52 + 7BB2 + E7AEB2 + East Asian ideograph + + + 226C58 + 7BCB + E7AF8B + East Asian ideograph + + + 226C59 + 7BB8 + E7AEB8 + East Asian ideograph + + + 226C5A + 7BCF + E7AF8F + East Asian ideograph + + + 226C5C + 7BD0 + E7AF90 + East Asian ideograph + + + 226C60 + 7BBE + E7AEBE + East Asian ideograph + + + 226C6F + 7BCC + E7AF8C + East Asian ideograph + + + 226D22 + 7BDD + E7AF9D + East Asian ideograph + + + 226D24 + 7BE5 + E7AFA5 + East Asian ideograph + + + 226D29 + 7BE8 + E7AFA8 + East Asian ideograph + + + 226D2E + 7BF9 + E7AFB9 + East Asian ideograph + + + 226D2F + 7BD4 + E7AF94 + East Asian ideograph + + + 226D32 + 7BDF + E7AF9F + East Asian ideograph + + + 226D35 + 7BD8 + E7AF98 + East Asian ideograph + + + 226D37 + 7BEA + E7AFAA + East Asian ideograph (unrelated variant of EACC 3A6A7C) + + + 226D3B + 7C06 + E7B086 + East Asian ideograph + + + 226D3E + 7BF0 + E7AFB0 + East Asian ideograph + + + 226D41 + 7C0F + E7B08F + East Asian ideograph + + + 226D46 + 7C0B + E7B08B + East Asian ideograph + + + 226D47 + 7C00 + E7B080 + East Asian ideograph + + + 226D4B + 7C0C + E7B08C + East Asian ideograph + + + 226D4F + 7BF4 + E7AFB4 + East Asian ideograph + + + 226D54 + 7BF3 + E7AFB3 + East Asian ideograph + + + 226D5A + 7C09 + E7B089 + East Asian ideograph + + + 226D5B + 7C03 + E7B083 + East Asian ideograph + + + 226D5C + 7BFC + E7AFBC + East Asian ideograph + + + 226D5F + 7C1C + E7B09C + East Asian ideograph + + + 226D61 + 7C26 + E7B0A6 + East Asian ideograph + + + 226D62 + 7C28 + E7B0A8 + East Asian ideograph + + + 226D63 + 7C20 + E7B0A0 + East Asian ideograph + + + 226D66 + 7C1F + E7B09F + East Asian ideograph + + + 226D68 + 7C2F + E7B0AF + East Asian ideograph + + + 226D75 + 7C30 + E7B0B0 + East Asian ideograph + + + 226E27 + 7C35 + E7B0B5 + East Asian ideograph + + + 226E2A + 7C40 + E7B180 + East Asian ideograph + + + 226E30 + 7C39 + E7B0B9 + East Asian ideograph + + + 226E34 + 7C3B + E7B0BB + East Asian ideograph + + + 226E35 + 7C34 + E7B0B4 + East Asian ideograph + + + 226E3B + 7C42 + E7B182 + East Asian ideograph + + + 226E46 + 7C4E + E7B18E + East Asian ideograph + + + 226E54 + 7C5D + E7B19D + East Asian ideograph + + + 226E56 + 7C5C + E7B19C + East Asian ideograph + + + 226E57 + 7C5A + E7B19A + East Asian ideograph + + + 226E58 + 7C5B + E7B19B + East Asian ideograph + + + 226E59 + 7C59 + E7B199 + East Asian ideograph + + + 226E5B + 7C5E + E7B19E + East Asian ideograph + + + 226E5C + 7C67 + E7B1A7 + East Asian ideograph + + + 226E5E + 7C63 + E7B1A3 + East Asian ideograph + + + 226E61 + 7C68 + E7B1A8 + East Asian ideograph + + + 226E62 + 7C65 + E7B1A5 + East Asian ideograph + + + 226E6F + 7C6F + E7B1AF + East Asian ideograph + + + 226E75 + 7C75 + E7B1B5 + East Asian ideograph + + + 226E79 + 7C7E + E7B1BE + East Asian ideograph + + + 226E7A + 7C78 + E7B1B8 + East Asian ideograph + + + 226E7D + 7C7D + E7B1BD + East Asian ideograph + + + 226F21 + 7C81 + E7B281 + East Asian ideograph + + + 226F28 + 7C8E + E7B28E + East Asian ideograph + + + 226F29 + 7C91 + E7B291 + East Asian ideograph + + + 226F2A + 7C83 + E7B283 + East Asian ideograph + + + 226F2C + 7C8D + E7B28D + East Asian ideograph + + + 226F3A + 7C99 + E7B299 + East Asian ideograph + + + 226F3B + 7C98 + E7B298 + East Asian ideograph + + + 226F3E + 7C9C + E7B29C + East Asian ideograph + + + 226F40 + 7C95 + E7B295 + East Asian ideograph + + + 226F42 + 7CA7 + E7B2A7 + East Asian ideograph + + + 226F43 + 7CA2 + E7B2A2 + East Asian ideograph + + + 226F45 + 7C9E + E7B29E + East Asian ideograph + + + 226F46 + 7CA9 + E7B2A9 + East Asian ideograph + + + 226F48 + 7CA8 + E7B2A8 + East Asian ideograph + + + 226F49 + 7CA1 + E7B2A1 + East Asian ideograph + + + 226F4A + 7CAC + E7B2AC + East Asian ideograph + + + 226F4C + 7CA6 + E7B2A6 + East Asian ideograph + + + 226F54 + 7CB2 + E7B2B2 + East Asian ideograph + + + 226F58 + 7CBB + E7B2BB + East Asian ideograph + + + 226F59 + 7CBF + E7B2BF + East Asian ideograph + + + 226F5E + 7CBA + E7B2BA + East Asian ideograph + + + 226F5F + 7CBC + E7B2BC + East Asian ideograph + + + 226F64 + 7CC2 + E7B382 + East Asian ideograph + + + 226F66 + 7CCE + E7B38E + East Asian ideograph + + + 226F68 + 7CC8 + E7B388 + East Asian ideograph + + + 226F69 + 7CC5 + E7B385 + East Asian ideograph + + + 226F6D + 7CCC + E7B38C + East Asian ideograph + + + 226F6F + 7CC9 + E7B389 + East Asian ideograph + + + 226F71 + 7CD2 + E7B392 + East Asian ideograph + + + 226F75 + 7CD7 + E7B397 + East Asian ideograph + + + 226F77 + 7CE1 + E7B3A1 + East Asian ideograph + + + 226F7B + 7CE8 + E7B3A8 + East Asian ideograph (variant of EACC 4C6F7B) + + + 227022 + 7CDD + E7B39D + East Asian ideograph + + + 227028 + 7CED + E7B3AD + East Asian ideograph + + + 22702E + 7CF0 + E7B3B0 + East Asian ideograph + + + 227030 + 7CF2 + E7B3B2 + East Asian ideograph + + + 227035 + 7CF4 + E7B3B4 + East Asian ideograph + + + 227039 + 7CF6 + E7B3B6 + East Asian ideograph + + + 227042 + 7D06 + E7B486 + East Asian ideograph + + + 227044 + 7D03 + E7B483 + East Asian ideograph + + + 227045 + 7D08 + E7B488 + East Asian ideograph + + + 227049 + 7D0F + E7B48F + East Asian ideograph + + + 22704A + 7D13 + E7B493 + East Asian ideograph + + + 227050 + 7D18 + E7B498 + East Asian ideograph + + + 227051 + 7D1E + E7B49E + East Asian ideograph + + + 227052 + 7D1D + E7B49D + East Asian ideograph + + + 227059 + 7D35 + E7B4B5 + East Asian ideograph + + + 22705A + 7D3D + E7B4BD + East Asian ideograph + + + 227061 + 7D3A + E7B4BA + East Asian ideograph + + + 227062 + 7D32 + E7B4B2 + East Asian ideograph + + + 227065 + 7D31 + E7B4B1 + East Asian ideograph + + + 227068 + 7D45 + E7B585 + East Asian ideograph + + + 22706A + 7D3F + E7B4BF + East Asian ideograph + + + 22706C + 7D29 + E7B4A9 + East Asian ideograph + + + 22706F + 7D41 + E7B581 + East Asian ideograph + + + 227071 + 7D3E + E7B4BE + East Asian ideograph + + + 22707A + 7D5C + E7B59C + East Asian ideograph + + + 22707C + 7D53 + E7B593 + East Asian ideograph + + + 22707E + 7D5A + E7B59A + East Asian ideograph + + + 227122 + 7D70 + E7B5B0 + East Asian ideograph + + + 227129 + 7D67 + E7B5A7 + East Asian ideograph + + + 22712B + 7D6A + E7B5AA + East Asian ideograph + + + 22712C + 7D6B + E7B5AB + East Asian ideograph + + + 227130 + 7D73 + E7B5B3 + East Asian ideograph + + + 227134 + 7D4E + E7B58E + East Asian ideograph + + + 227137 + 7D8B + E7B68B + East Asian ideograph + + + 227139 + 7D88 + E7B688 + East Asian ideograph + + + 22713B + 7D85 + E7B685 + East Asian ideograph + + + 22713D + 7D8E + E7B68E + East Asian ideograph + + + 227142 + 7D7F + E7B5BF + East Asian ideograph + + + 227144 + 7D86 + E7B686 + East Asian ideograph + + + 227148 + 7D8D + E7B68D + East Asian ideograph + + + 22714B + 7D9B + E7B69B + East Asian ideograph + + + 22714D + 7D83 + E7B683 + East Asian ideograph + + + 22714F + 7D7D + E7B5BD + East Asian ideograph + + + 227154 + 7D7B + E7B5BB + East Asian ideograph + + + 227158 + 7D7A + E7B5BA + East Asian ideograph + + + 227159 + 7D96 + E7B696 + East Asian ideograph + + + 22715A + 7D5B + E7B59B + East Asian ideograph + + + 22715B + 7D8C + E7B68C + East Asian ideograph + + + 227161 + 7DA3 + E7B6A3 + East Asian ideograph + + + 227162 + 7DAE + E7B6AE + East Asian ideograph + + + 227167 + 7DCB + E7B78B + East Asian ideograph + + + 227169 + 7DAA + E7B6AA + East Asian ideograph + + + 22716A + 7DCE + E7B78E + East Asian ideograph + + + 22716B + 7DC9 + E7B789 + East Asian ideograph + + + 22716E + 7DC5 + E7B785 + East Asian ideograph + + + 22716F + 7DA6 + E7B6A6 + East Asian ideograph + + + 227174 + 7DC4 + E7B784 + East Asian ideograph + + + 227178 + 7DAC + E7B6AC + East Asian ideograph + + + 22717D + 7DB9 + E7B6B9 + East Asian ideograph + + + 227222 + 7D9F + E7B69F + East Asian ideograph + + + 227229 + 7DE1 + E7B7A1 + East Asian ideograph + + + 22722A + 7DD9 + E7B799 + East Asian ideograph + + + 22722B + 7DE4 + E7B7A4 + East Asian ideograph + + + 227231 + 7DD7 + E7B797 + East Asian ideograph + + + 227236 + 7DF9 + E7B7B9 + East Asian ideograph + + + 22723A + 7E06 + E7B886 + East Asian ideograph + + + 22723C + 7DF2 + E7B7B2 + East Asian ideograph + + + 22723E + 7DE6 + E7B7A6 + East Asian ideograph + + + 227246 + 7DDC + E7B79C + East Asian ideograph + + + 227247 + 7DF1 + E7B7B1 + East Asian ideograph + + + 227248 + 7DF6 + E7B7B6 + East Asian ideograph + + + 227249 + 7DE5 + E7B7A5 + East Asian ideograph + + + 22724B + 7DF5 + E7B7B5 + East Asian ideograph + + + 227250 + 7E17 + E7B897 + East Asian ideograph + + + 227251 + 7E1E + E7B89E + East Asian ideograph + + + 227252 + 7E21 + E7B8A1 + East Asian ideograph + + + 227253 + 7E0B + E7B88B + East Asian ideograph + + + 227255 + 7E12 + E7B892 + East Asian ideograph + + + 227256 + 7E22 + E7B8A2 + East Asian ideograph + + + 22725B + 7E20 + E7B8A0 + East Asian ideograph + + + 22725D + 7E1D + E7B89D + East Asian ideograph + + + 22725E + 7E09 + E7B889 + East Asian ideograph + + + 22725F + 7E1F + E7B89F + East Asian ideograph + + + 227265 + 7E15 + E7B895 + East Asian ideograph + + + 227269 + 7E10 + E7B890 + East Asian ideograph + + + 22726A + 7E0F + E7B88F + East Asian ideograph + + + 22726D + 7E3B + E7B8BB + East Asian ideograph + + + 227271 + 7E34 + E7B8B4 + East Asian ideograph + + + 227272 + 7E2D + E7B8AD + East Asian ideograph + + + 227273 + 7E2F + E7B8AF + East Asian ideograph + + + 227275 + 7E36 + E7B8B6 + East Asian ideograph + + + 227277 + 7E3A + E7B8BA + East Asian ideograph + + + 227279 + 7E39 + E7B8B9 + East Asian ideograph + + + 22727D + 7E44 + E7B984 + East Asian ideograph + + + 227321 + 7E35 + E7B8B5 + East Asian ideograph + + + 227326 + 7E3F + E7B8BF + East Asian ideograph + + + 227328 + 7E47 + E7B987 + East Asian ideograph + + + 22732D + 7E52 + E7B992 + East Asian ideograph + + + 22732F + 7E51 + E7B991 + East Asian ideograph + + + 227333 + 7E50 + E7B990 + East Asian ideograph + + + 227334 + 7E67 + E7B9A7 + East Asian ideograph + + + 227337 + 7E56 + E7B996 + East Asian ideograph + + + 227348 + 7E68 + E7B9A8 + East Asian ideograph + + + 227349 + 7E6E + E7B9AE + East Asian ideograph + + + 22734E + 7E70 + E7B9B0 + East Asian ideograph + + + 227351 + 7E6F + E7B9AF + East Asian ideograph + + + 227352 + 7E73 + E7B9B3 + East Asian ideograph + + + 227358 + 7E7B + E7B9BB + East Asian ideograph + + + 227359 + 7E7E + E7B9BE + East Asian ideograph + + + 22735B + 7E81 + E7BA81 + East Asian ideograph + + + 22735D + 7E8A + E7BA8A + East Asian ideograph + + + 22735E + 7E87 + E7BA87 + East Asian ideograph + + + 227360 + 7E88 + E7BA88 + East Asian ideograph + + + 227364 + 7E86 + E7BA86 + East Asian ideograph + + + 22736A + 7E91 + E7BA91 + East Asian ideograph + + + 22736B + 7E95 + E7BA95 + East Asian ideograph + + + 22736D + 7E94 + E7BA94 + East Asian ideograph + + + 227370 + 7E9B + E7BA9B + East Asian ideograph + + + 227371 + 7E9A + E7BA9A + East Asian ideograph + + + 227373 + 7E99 + E7BA99 + East Asian ideograph + + + 227374 + 7E98 + E7BA98 + East Asian ideograph + + + 227425 + 7F43 + E7BD83 + East Asian ideograph + + + 227427 + 7F46 + E7BD86 + East Asian ideograph + + + 227428 + 7F45 + E7BD85 + East Asian ideograph + + + 22742B + 7F4B + E7BD8B + East Asian ideograph + + + 22742E + 7F4C + E7BD8C + East Asian ideograph + + + 22742F + 7F4D + E7BD8D + East Asian ideograph + + + 227431 + 7F4E + E7BD8E + East Asian ideograph + + + 227432 + 7F4F + E7BD8F + East Asian ideograph + + + 22743E + 7F60 + E7BDA0 + East Asian ideograph + + + 22743F + 7F61 + E7BDA1 + East Asian ideograph + + + 227443 + 7F5D + E7BD9D + East Asian ideograph + + + 227445 + 7F5B + E7BD9B + East Asian ideograph + + + 227447 + 7F63 + E7BDA3 + East Asian ideograph + + + 227450 + 7F65 + E7BDA5 + East Asian ideograph + + + 227451 + 7F66 + E7BDA6 + East Asian ideograph + + + 227453 + 7F6D + E7BDAD + East Asian ideograph + + + 227454 + 7F6B + E7BDAB + East Asian ideograph + + + 227455 + 7F67 + E7BDA7 + East Asian ideograph + + + 227457 + 7F68 + E7BDA8 + East Asian ideograph + + + 22745E + 7F71 + E7BDB1 + East Asian ideograph + + + 227460 + 7F73 + E7BDB3 + East Asian ideograph + + + 227463 + 7F76 + E7BDB6 + East Asian ideograph + + + 22746A + 7F7F + E7BDBF + East Asian ideograph + + + 22746B + 7F7E + E7BDBE + East Asian ideograph + + + 22746C + 7F7D + E7BDBD + East Asian ideograph + + + 227472 + 7F86 + E7BE86 + East Asian ideograph + + + 22747A + 7F91 + E7BE91 + East Asian ideograph + + + 22747E + 7F96 + E7BE96 + East Asian ideograph + + + 227523 + 7F97 + E7BE97 + East Asian ideograph + + + 227524 + 7F95 + E7BE95 + East Asian ideograph + + + 22752C + 7FA2 + E7BEA2 + East Asian ideograph + + + 227533 + 7FA7 + E7BEA7 + East Asian ideograph + + + 22753B + 7FB0 + E7BEB0 + East Asian ideograph + + + 22753C + 7FAD + E7BEAD + East Asian ideograph + + + 22753F + 7FB1 + E7BEB1 + East Asian ideograph + + + 227540 + 7FB4 + E7BEB4 + East Asian ideograph + + + 227542 + 7FB5 + E7BEB5 + East Asian ideograph + + + 22754A + 7FBC + E7BEBC + East Asian ideograph + + + 22754C + 7FBE + E7BEBE + East Asian ideograph + + + 227551 + 7FC3 + E7BF83 + East Asian ideograph + + + 227557 + 7FCA + E7BF8A + East Asian ideograph + + + 227567 + 7FDB + E7BF9B + East Asian ideograph + + + 227568 + 7FE3 + E7BFA3 + East Asian ideograph + + + 22756C + 7FE6 + E7BFA6 + East Asian ideograph + + + 22756F + 7FE5 + E7BFA5 + East Asian ideograph + + + 227572 + 7FEC + E7BFAC + East Asian ideograph + + + 227573 + 7FEB + E7BFAB + East Asian ideograph + + + 227577 + 7FEF + E7BFAF + East Asian ideograph + + + 22757A + 7FEE + E7BFAE + East Asian ideograph + + + 227629 + 7FFD + E7BFBD + East Asian ideograph + + + 22762A + 7FFE + E7BFBE + East Asian ideograph + + + 22762C + 7FFF + E7BFBF + East Asian ideograph + + + 22762E + 8004 + E88084 + East Asian ideograph + + + 227631 + 8008 + E88088 + East Asian ideograph + + + 227633 + 800B + E8808B + East Asian ideograph + + + 227634 + 800E + E8808E + East Asian ideograph + + + 227635 + 8011 + E88091 + East Asian ideograph + + + 227636 + 800F + E8808F + East Asian ideograph + + + 227637 + 8014 + E88094 + East Asian ideograph + + + 227639 + 8016 + E88096 + East Asian ideograph + + + 22763B + 801F + E8809F + East Asian ideograph + + + 22763D + 801E + E8809E + East Asian ideograph + + + 22763E + 801D + E8809D + East Asian ideograph + + + 22764B + 8025 + E880A5 + East Asian ideograph + + + 22764C + 8026 + E880A6 + East Asian ideograph + + + 22764D + 802A + E880AA + East Asian ideograph + + + 22764E + 8029 + E880A9 + East Asian ideograph + + + 22764F + 8028 + E880A8 + East Asian ideograph + + + 22765B + 8030 + E880B0 + East Asian ideograph + + + 22765D + 8031 + E880B1 + East Asian ideograph + + + 227660 + 8035 + E880B5 + East Asian ideograph + + + 227669 + 8039 + E880B9 + East Asian ideograph + + + 22766B + 8041 + E88181 + East Asian ideograph + + + 227670 + 8043 + E88183 + East Asian ideograph + + + 22767B + 8052 + E88192 + East Asian ideograph + + + 22767E + 8062 + E881A2 + East Asian ideograph + + + 227728 + 8063 + E881A3 + East Asian ideograph + + + 227732 + 806C + E881AC + East Asian ideograph + + + 227739 + 8075 + E881B5 + East Asian ideograph + + + 22773E + 807B + E881BB + East Asian ideograph + + + 22773F + 8079 + E881B9 + East Asian ideograph + + + 227747 + 808A + E8828A + East Asian ideograph + + + 227749 + 808E + E8828E + East Asian ideograph + + + 22774E + 809F + E8829F + East Asian ideograph + + + 22775C + 670A + E69C8A + East Asian ideograph + + + 227760 + 80A7 + E882A7 + East Asian ideograph + + + 227761 + 80B0 + E882B0 + East Asian ideograph + + + 227768 + 80B8 + E882B8 + East Asian ideograph + + + 227769 + 80B5 + E882B5 + East Asian ideograph + + + 22776A + 80A6 + E882A6 + East Asian ideograph + + + 227773 + 80E0 + E883A0 + East Asian ideograph + + + 227775 + 6711 + E69C91 + East Asian ideograph + + + 22777B + 80DF + E8839F + East Asian ideograph + + + 22777D + 80C2 + E88382 + East Asian ideograph + + + 227827 + 80D9 + E88399 + East Asian ideograph + + + 22782A + 80DD + E8839D + East Asian ideograph + + + 22782D + 80CF + E8838F + East Asian ideograph + + + 22782F + 80CD + E8838D + East Asian ideograph + + + 227830 + 80D7 + E88397 + East Asian ideograph + + + 227833 + 80F2 + E883B2 + East Asian ideograph + + + 227834 + 80FA + E883BA + East Asian ideograph + + + 227838 + 80FE + E883BE + East Asian ideograph + + + 22783C + 8103 + E88483 + East Asian ideograph + + + 227840 + 80F9 + E883B9 + East Asian ideograph + + + 227841 + 80EF + E883AF + East Asian ideograph + + + 227842 + 80D4 + E88394 + East Asian ideograph + + + 227849 + 811D + E8849D + East Asian ideograph + + + 22784B + 8118 + E88498 + East Asian ideograph + + + 227850 + 8130 + E884B0 + East Asian ideograph + + + 227854 + 8124 + E884A4 + East Asian ideograph + + + 227855 + 811B + E8849B + East Asian ideograph + + + 227860 + 812A + E884AA + East Asian ideograph + + + 227861 + 811E + E8849E + East Asian ideograph + + + 227864 + 8121 + E884A1 + East Asian ideograph + + + 227866 + 8117 + E88497 + East Asian ideograph + + + 227869 + 813A + E884BA + East Asian ideograph + + + 22786A + 815A + E8859A + East Asian ideograph + + + 22786D + 8148 + E88588 + East Asian ideograph + + + 227877 + 814C + E8858C + East Asian ideograph + + + 22787C + 8153 + E88593 + East Asian ideograph + + + 22787D + 8141 + E88581 + East Asian ideograph + + + 227925 + 814D + E8858D + East Asian ideograph + + + 22792E + 6720 + E69CA0 + East Asian ideograph + + + 227932 + 8160 + E885A0 + East Asian ideograph + + + 22793B + 8169 + E885A9 + East Asian ideograph + + + 22793C + 817C + E885BC + East Asian ideograph + + + 227941 + 8161 + E885A1 + East Asian ideograph + + + 227946 + 8176 + E885B6 + East Asian ideograph + + + 227947 + 8174 + E885B4 + East Asian ideograph + + + 227948 + 8167 + E885A7 + East Asian ideograph + + + 22794B + 816F + E885AF + East Asian ideograph + + + 22794D + 8182 + E88682 + East Asian ideograph + + + 227951 + 818B + E8868B + East Asian ideograph + + + 227952 + 8186 + E88686 + East Asian ideograph + + + 227959 + 8183 + E88683 + East Asian ideograph + + + 22796A + 819F + E8869F + East Asian ideograph + + + 22796B + 81A3 + E886A3 + East Asian ideograph + + + 227970 + 8198 + E88698 + East Asian ideograph + + + 227975 + 8195 + E88695 + East Asian ideograph + + + 227977 + 8197 + E88697 + East Asian ideograph + + + 22797C + 81AA + E886AA + East Asian ideograph + + + 22797D + 81A6 + E886A6 + East Asian ideograph + + + 22797E + 6725 + E69CA5 + East Asian ideograph + + + 227A2C + 81B5 + E886B5 + East Asian ideograph + + + 227A2E + 81B0 + E886B0 + East Asian ideograph + + + 227A2F + 81B4 + E886B4 + East Asian ideograph + + + 227A33 + 81B7 + E886B7 + East Asian ideograph + + + 227A37 + 81BB + E886BB + East Asian ideograph + + + 227A38 + 81C1 + E88781 + East Asian ideograph + + + 227A39 + 81CC + E8878C + East Asian ideograph + + + 227A3A + 81CA + E8878A + East Asian ideograph + + + 227A3B + 81C4 + E88784 + East Asian ideograph + + + 227A40 + 81D1 + E88791 + East Asian ideograph + + + 227A41 + 81CE + E8878E + East Asian ideograph + + + 227A43 + 81D0 + E88790 + East Asian ideograph + + + 227A4B + 81DB + E8879B + East Asian ideograph + + + 227A4F + 81DD + E8879D + East Asian ideograph + + + 227A53 + 81DE + E8879E + East Asian ideograph + + + 227A56 + 81E0 + E887A0 + East Asian ideograph + + + 227A57 + 81E2 + E887A2 + East Asian ideograph + + + 227A5B + 81E7 + E887A7 + East Asian ideograph + + + 227A60 + 81EF + E887AF + East Asian ideograph + + + 227A65 + 81F2 + E887B2 + East Asian ideograph + + + 227A68 + 81F6 + E887B6 + East Asian ideograph + + + 227A70 + 8201 + E88881 + East Asian ideograph + + + 227A72 + 8201 + E88881 + East Asian ideograph + + + 227A74 + 8203 + E88883 + East Asian ideograph + + + 227A75 + 8204 + E88884 + East Asian ideograph + + + 227A77 + 820B + E8888B + East Asian ideograph + + + 227B27 + 821D + E8889D + East Asian ideograph + + + 227B29 + 8220 + E888A0 + East Asian ideograph + + + 227B2E + 822D + E888AD + East Asian ideograph + + + 227B2F + 822F + E888AF + East Asian ideograph + + + 227B32 + 8238 + E888B8 + East Asian ideograph + + + 227B34 + 823A + E888BA + East Asian ideograph + + + 227B35 + 8233 + E888B3 + East Asian ideograph + + + 227B36 + 8234 + E888B4 + East Asian ideograph + + + 227B3A + 8232 + E888B2 + East Asian ideograph + + + 227B42 + 8248 + E88988 + East Asian ideograph + + + 227B43 + 8249 + E88989 + East Asian ideograph + + + 227B45 + 8244 + E88984 + East Asian ideograph + + + 227B47 + 8240 + E88980 + East Asian ideograph + + + 227B48 + 8241 + E88981 + East Asian ideograph + + + 227B4A + 8245 + E88985 + East Asian ideograph + + + 227B4B + 824B + E8898B + East Asian ideograph + + + 227B50 + 824F + E8898F + East Asian ideograph + + + 227B53 + 824E + E8898E + East Asian ideograph + + + 227B56 + 8256 + E88996 + East Asian ideograph + + + 227B57 + 8257 + E88997 + East Asian ideograph + + + 227B5E + 825A + E8899A + East Asian ideograph + + + 227B62 + 825F + E8899F + East Asian ideograph + + + 227B67 + 8262 + E889A2 + East Asian ideograph + + + 227B6B + 8268 + E889A8 + East Asian ideograph + + + 227B6F + 826D + E889AD + East Asian ideograph + + + 227B77 + 8278 + E889B8 + East Asian ideograph + + + 227B7D + 827F + E889BF + East Asian ideograph + + + 227C24 + 828E + E88A8E + East Asian ideograph + + + 227C25 + 8291 + E88A91 + East Asian ideograph + + + 227C27 + 828F + E88A8F + East Asian ideograph + + + 227C28 + 8284 + E88A84 + East Asian ideograph + + + 227C2D + 8283 + E88A83 + East Asian ideograph + + + 227C2E + 828A + E88A8A + East Asian ideograph + + + 227C31 + 82AF + E88AAF + East Asian ideograph + + + 227C34 + 82A7 + E88AA7 + East Asian ideograph + + + 227C38 + 82AB + E88AAB + East Asian ideograph + + + 227C3A + 82B0 + E88AB0 + East Asian ideograph + + + 227C3C + 82A4 + E88AA4 + East Asian ideograph + + + 227C3F + 829A + E88A9A + East Asian ideograph + + + 227C42 + 82A3 + E88AA3 + East Asian ideograph + + + 227C44 + 82B7 + E88AB7 + East Asian ideograph + + + 227C45 + 82AE + E88AAE + East Asian ideograph (variant of EACC 4C7C45) + + + 227C46 + 82A9 + E88AA9 + East Asian ideograph + + + 227C49 + 82BC + E88ABC + East Asian ideograph + + + 227C4C + 82A8 + E88AA8 + East Asian ideograph + + + 227C4E + 82B4 + E88AB4 + East Asian ideograph + + + 227C50 + 82A1 + E88AA1 + East Asian ideograph + + + 227C53 + 82AA + E88AAA + East Asian ideograph + + + 227C55 + 82D9 + E88B99 + East Asian ideograph + + + 227C57 + 82FE + E88BBE + East Asian ideograph + + + 227C5A + 82E0 + E88BA0 + East Asian ideograph + + + 227C5B + 82D0 + E88B90 + East Asian ideograph + + + 227C5C + 8300 + E88C80 + East Asian ideograph + + + 227C5F + 82EA + E88BAA + East Asian ideograph + + + 227C60 + 82F7 + E88BB7 + East Asian ideograph + + + 227C62 + 82EF + E88BAF + East Asian ideograph + + + 227C63 + 833A + E88CBA + East Asian ideograph + + + 227C64 + 82E4 + E88BA4 + East Asian ideograph + + + 227C65 + 82D5 + E88B95 + East Asian ideograph + + + 227C67 + 8307 + E88C87 + East Asian ideograph + + + 227C68 + 82FA + E88BBA + East Asian ideograph + + + 227C69 + 82F4 + E88BB4 + East Asian ideograph + + + 227C6A + 82E2 + E88BA2 + East Asian ideograph + + + 227C6D + 82D2 + E88B92 + East Asian ideograph + + + 227C6E + 8314 + E88C94 + East Asian ideograph + + + 227C71 + 82EB + E88BAB + East Asian ideograph + + + 227C72 + 82D8 + E88B98 + East Asian ideograph + + + 227C73 + 82E1 + E88BA1 + East Asian ideograph + + + 227C75 + 82F6 + E88BB6 + East Asian ideograph + + + 227C7B + 8310 + E88C90 + East Asian ideograph + + + 227C7C + 82F3 + E88BB3 + East Asian ideograph + + + 227D21 + 830C + E88C8C + East Asian ideograph + + + 227D22 + 82FB + E88BBB + East Asian ideograph + + + 227D24 + 82FD + E88BBD + East Asian ideograph + + + 227D26 + 8333 + E88CB3 + East Asian ideograph + + + 227D29 + 8328 + E88CA8 + East Asian ideograph + + + 227D2B + 8344 + E88D84 + East Asian ideograph + + + 227D2E + 8351 + E88D91 + East Asian ideograph + + + 227D35 + 831B + E88C9B + East Asian ideograph + + + 227D3B + 8356 + E88D96 + East Asian ideograph + + + 227D3F + 8322 + E88CA2 + East Asian ideograph + + + 227D40 + 832C + E88CAC + East Asian ideograph + + + 227D48 + 833C + E88CBC + East Asian ideograph + + + 227D4A + 834D + E88D8D + East Asian ideograph + + + 227D4D + 8343 + E88D83 + East Asian ideograph (variant of EACC 4C7D4D) + + + 227D52 + 832F + E88CAF + East Asian ideograph + + + 227D53 + 8348 + E88D88 + East Asian ideograph + + + 227D54 + 8312 + E88C92 + East Asian ideograph + + + 227D56 + 8316 + E88C96 + East Asian ideograph + + + 227D58 + 831A + E88C9A + East Asian ideograph + + + 227D5F + 8347 + E88D87 + East Asian ideograph + + + 227D62 + 83A8 + E88EA8 + East Asian ideograph + + + 227D67 + 83AD + E88EAD + East Asian ideograph + + + 227D6D + 8373 + E88DB3 + East Asian ideograph + + + 227D72 + 83B0 + E88EB0 + East Asian ideograph + + + 227D76 + 831D + E88C9D + East Asian ideograph + + + 227D7A + 838F + E88E8F + East Asian ideograph + + + 227D7C + 8395 + E88E95 + East Asian ideograph + + + 227D7E + 8375 + E88DB5 + East Asian ideograph + + + 227E21 + 837F + E88DBF + East Asian ideograph + + + 227E22 + 8399 + E88E99 + East Asian ideograph + + + 227E23 + 83A6 + E88EA6 + East Asian ideograph + + + 227E25 + 8387 + E88E87 + East Asian ideograph + + + 227E26 + 83B9 + E88EB9 + East Asian ideograph + + + 227E2B + 83A9 + E88EA9 + East Asian ideograph + + + 227E2F + 839B + E88E9B + East Asian ideograph + + + 227E33 + 83AA + E88EAA + East Asian ideograph + + + 227E37 + 839C + E88E9C + East Asian ideograph + + + 227E38 + 839F + E88E9F + East Asian ideograph + + + 227E41 + 83CF + E88F8F + East Asian ideograph + + + 227E43 + 83F9 + E88FB9 + East Asian ideograph + + + 227E45 + 8421 + E890A1 + East Asian ideograph + + + 227E51 + 8423 + E890A3 + East Asian ideograph + + + 227E52 + 83EA + E88FAA + East Asian ideograph + + + 227E53 + 8413 + E89093 + East Asian ideograph + + + 227E56 + 83FC + E88FBC + East Asian ideograph + + + 227E57 + 83F6 + E88FB6 + East Asian ideograph + + + 227E59 + 8410 + E89090 + East Asian ideograph + + + 227E5A + 83E1 + E88FA1 + East Asian ideograph + + + 227E60 + 83C6 + E88F86 + East Asian ideograph + + + 227E61 + 8407 + E89087 + East Asian ideograph + + + 227E63 + 83EB + E88FAB + East Asian ideograph + + + 227E6A + 83BF + E88EBF + East Asian ideograph + + + 227E6B + 83E2 + E88FA2 + East Asian ideograph + + + 227E6D + 8401 + E89081 + East Asian ideograph + + + 227E71 + 83D8 + E88F98 + East Asian ideograph + + + 227E72 + 83E5 + E88FA5 + East Asian ideograph + + + 227E74 + 8418 + E89098 + East Asian ideograph + + + 227E79 + 83CE + E88F8E + East Asian ideograph + + + 227E7B + 83D3 + E88F93 + East Asian ideograph + + + 227E7D + 83D6 + E88F96 + East Asian ideograph + + + 232223 + 83FD + E88FBD + East Asian ideograph + + + 232225 + 841E + E8909E + East Asian ideograph + + + 232229 + 83C9 + E88F89 + East Asian ideograph + + + 23222A + 83DF + E88F9F + East Asian ideograph + + + 23222C + 841F + E8909F + East Asian ideograph + + + 23222E + 840F + E8908F + East Asian ideograph + + + 232230 + 8411 + E89091 + East Asian ideograph + + + 232236 + 839A + E88E9A + East Asian ideograph + + + 23223C + 83F3 + E88FB3 + East Asian ideograph + + + 232243 + 83D1 + E88F91 + East Asian ideograph + + + 232248 + 8453 + E89193 + East Asian ideograph + + + 23224A + 848E + E8928E + East Asian ideograph + + + 23224C + 8439 + E890B9 + East Asian ideograph + + + 23224D + 8476 + E891B6 + East Asian ideograph + + + 23224E + 8479 + E891B9 + East Asian ideograph + + + 23225C + 8451 + E89191 + East Asian ideograph + + + 23225F + 847D + E891BD + East Asian ideograph + + + 232262 + 845A + E8919A + East Asian ideograph + + + 232266 + 8459 + E89199 + East Asian ideograph + + + 232269 + 8473 + E891B3 + East Asian ideograph + + + 23226E + 843E + E890BE + East Asian ideograph + + + 232271 + 846D + E891AD + East Asian ideograph + + + 232278 + 847A + E891BA + East Asian ideograph + + + 23227B + 8484 + E89284 + East Asian ideograph + + + 23227C + 8478 + E891B8 + East Asian ideograph + + + 232324 + 8432 + E890B2 + East Asian ideograph + + + 232329 + 845C + E8919C + East Asian ideograph + + + 23232D + 842A + E890AA + East Asian ideograph + + + 23232E + 8429 + E890A9 + East Asian ideograph + + + 232332 + 8471 + E891B1 + East Asian ideograph + + + 232335 + 845F + E8919F + East Asian ideograph + + + 232336 + 8460 + E891A0 + East Asian ideograph + + + 232337 + 846E + E891AE + East Asian ideograph + + + 23233A + 8446 + E89186 + East Asian ideograph + + + 23233C + 8452 + E89192 + East Asian ideograph + + + 23233F + 844A + E8918A + East Asian ideograph + + + 232345 + 844E + E8918E + East Asian ideograph + + + 232349 + 8497 + E89297 + East Asian ideograph + + + 232350 + 84A1 + E892A1 + East Asian ideograph + + + 232353 + 849F + E8929F + East Asian ideograph + + + 232356 + 84BA + E892BA + East Asian ideograph + + + 232358 + 84B9 + E892B9 + East Asian ideograph + + + 23235C + 84B4 + E892B4 + East Asian ideograph + + + 23235E + 84C1 + E89381 + East Asian ideograph + + + 23235F + 84BB + E892BB + East Asian ideograph + + + 232368 + 84CD + E8938D + East Asian ideograph + + + 232370 + 84B1 + E892B1 + East Asian ideograph + + + 232371 + 849D + E8929D + East Asian ideograph + + + 232372 + 84D0 + E89390 + East Asian ideograph + + + 232375 + 8494 + E89294 + East Asian ideograph + + + 232379 + 84C7 + E89387 + East Asian ideograph + + + 23237A + 84BD + E892BD + East Asian ideograph + + + 23237C + 84C2 + E89382 + East Asian ideograph + + + 232421 + 8495 + E89295 + East Asian ideograph + + + 232427 + 84AF + E892AF + East Asian ideograph + + + 232429 + 84AD + E892AD + East Asian ideograph + + + 232432 + 84A8 + E892A8 + East Asian ideograph + + + 232433 + 84D6 + E89396 + East Asian ideograph + + + 232435 + 84DA + E8939A + East Asian ideograph + + + 23243A + 8493 + E89293 + East Asian ideograph + + + 23243F + 84CF + E8938F + East Asian ideograph + + + 232441 + 84CA + E8938A + East Asian ideograph + + + 232446 + 8506 + E89486 + East Asian ideograph + + + 232447 + 850B + E8948B + East Asian ideograph + + + 23244D + 8500 + E89480 + East Asian ideograph + + + 232459 + 851F + E8949F + East Asian ideograph + + + 23245C + 853B + E894BB + East Asian ideograph + + + 23245F + 84EA + E893AA + East Asian ideograph + + + 232466 + 84F4 + E893B4 + East Asian ideograph + + + 23246A + 850C + E8948C + East Asian ideograph + + + 232472 + 852F + E894AF + East Asian ideograph + + + 232475 + 8515 + E89495 + East Asian ideograph + + + 232477 + 84F7 + E893B7 + East Asian ideograph + + + 23247A + 84FC + E893BC + East Asian ideograph + + + 23247C + 84EB + E893AB + East Asian ideograph + + + 23247D + 84FD + E893BD + East Asian ideograph + + + 232524 + 851E + E8949E + East Asian ideograph + + + 23252A + 8518 + E89498 + East Asian ideograph + + + 23252D + 8526 + E894A6 + East Asian ideograph + + + 23252E + 8507 + E89487 + East Asian ideograph (variant of EACC 2F252E) + + + 23252F + 84E7 + E893A7 + East Asian ideograph + + + 232534 + 84F0 + E893B0 + East Asian ideograph + + + 232535 + 84EF + E893AF + East Asian ideograph + + + 232536 + 8556 + E89596 + East Asian ideograph + + + 232546 + 8541 + E89581 + East Asian ideograph + + + 23254B + 8558 + E89598 + East Asian ideograph + + + 23254D + 8553 + E89593 + East Asian ideograph + + + 23254E + 8561 + E895A1 + East Asian ideograph + + + 23254F + 8540 + E89580 + East Asian ideograph + + + 23255A + 8546 + E89586 + East Asian ideograph + + + 23255C + 8564 + E895A4 + East Asian ideograph + + + 23255D + 855E + E8959E + East Asian ideograph + + + 23255E + 8573 + E895B3 + East Asian ideograph + + + 23255F + 8551 + E89591 + East Asian ideograph + + + 232564 + 8562 + E895A2 + East Asian ideograph + + + 23256B + 8563 + E895A3 + East Asian ideograph + + + 23256C + 848D + E8928D + East Asian ideograph + + + 23256D + 8542 + E89582 + East Asian ideograph + + + 232571 + 854E + E8958E + East Asian ideograph + + + 232574 + 8555 + E89595 + East Asian ideograph + + + 232576 + 855D + E8959D + East Asian ideograph + + + 232577 + 858C + E8968C + East Asian ideograph + + + 232625 + 8580 + E89680 + East Asian ideograph + + + 232628 + 858F + E8968F + East Asian ideograph + + + 23262D + 8579 + E895B9 + East Asian ideograph + + + 232632 + 857F + E895BF + East Asian ideograph + + + 232633 + 8577 + E895B7 + East Asian ideograph + + + 232634 + 8578 + E895B8 + East Asian ideograph + + + 232635 + 8598 + E89698 + East Asian ideograph + + + 232636 + 857B + E895BB + East Asian ideograph + + + 23263D + 85A4 + E896A4 + East Asian ideograph + + + 232642 + 857A + E895BA + East Asian ideograph + + + 232644 + 8597 + E89697 + East Asian ideograph + + + 232645 + 8557 + E89597 + East Asian ideograph + + + 232649 + 85A8 + E896A8 + East Asian ideograph + + + 23264E + 8586 + E89686 + East Asian ideograph + + + 232650 + 8599 + E89699 + East Asian ideograph + + + 232651 + 858A + E8968A + East Asian ideograph + + + 232652 + 85A2 + E896A2 + East Asian ideograph + + + 232654 + 8590 + E89690 + East Asian ideograph + + + 232656 + 8585 + E89685 + East Asian ideograph + + + 232657 + 8588 + E89688 + East Asian ideograph + + + 23265A + 85B8 + E896B8 + East Asian ideograph + + + 23265D + 85C1 + E89781 + East Asian ideograph + + + 232661 + 85BA + E896BA + East Asian ideograph + + + 232668 + 85CE + E8978E + East Asian ideograph + + + 23266A + 85C2 + E89782 + East Asian ideograph + + + 23266B + 85B7 + E896B7 + East Asian ideograph + + + 23266C + 85B9 + E896B9 + East Asian ideograph + + + 23266E + 85B3 + E896B3 + East Asian ideograph + + + 23266F + 85BD + E896BD + East Asian ideograph + + + 232670 + 85C4 + E89784 + East Asian ideograph + + + 232672 + 85BF + E896BF + East Asian ideograph + + + 232675 + 85BE + E896BE + East Asian ideograph + + + 23267E + 85B6 + E896B6 + East Asian ideograph + + + 232724 + 8624 + E898A4 + East Asian ideograph + + + 232728 + 85F7 + E897B7 + East Asian ideograph + + + 23272C + 85E6 + E897A6 + East Asian ideograph + + + 23272E + 85D4 + E89794 + East Asian ideograph + + + 232731 + 85ED + E897AD + East Asian ideograph + + + 232739 + 85DA + E8979A + East Asian ideograph + + + 232743 + 85DF + E8979F + East Asian ideograph + + + 232745 + 85D8 + E89798 + East Asian ideograph + + + 23274C + 85DC + E8979C + East Asian ideograph + + + 23274E + 85F5 + E897B5 + East Asian ideograph + + + 232752 + 8622 + E898A2 + East Asian ideograph + + + 232754 + 8610 + E89890 + East Asian ideograph + + + 232757 + 85FC + E897BC + East Asian ideograph + + + 23275B + 85FF + E897BF + East Asian ideograph + + + 23275E + 85FE + E897BE + East Asian ideograph + + + 232760 + 8600 + E89880 + East Asian ideograph + + + 232768 + 8604 + E89884 + East Asian ideograph + + + 232771 + 8605 + E89885 + East Asian ideograph + + + 232775 + 862B + E898AB + East Asian ideograph + + + 232822 + 8627 + E898A7 + East Asian ideograph + + + 232826 + 8629 + E898A9 + East Asian ideograph + + + 232832 + 8637 + E898B7 + East Asian ideograph + + + 232838 + 8636 + E898B6 + East Asian ideograph + + + 23283E + 863C + E898BC + East Asian ideograph + + + 23283F + 8640 + E89980 + East Asian ideograph + + + 232840 + 863A + E898BA + East Asian ideograph + + + 23284C + 8645 + E89985 + East Asian ideograph + + + 232859 + 864D + E8998D + East Asian ideograph + + + 23285A + 8653 + E89993 + East Asian ideograph + + + 23285E + 8659 + E89999 + East Asian ideograph + + + 232866 + 8661 + E899A1 + East Asian ideograph + + + 232869 + 8662 + E899A2 + East Asian ideograph + + + 23286A + 8663 + E899A3 + East Asian ideograph + + + 232871 + 8669 + E899A9 + East Asian ideograph + + + 232878 + 866C + E899AC + East Asian ideograph + + + 23287B + 8672 + E899B2 + East Asian ideograph + + + 23287C + 866F + E899AF + East Asian ideograph + + + 23287E + 867B + E899BB + East Asian ideograph + + + 232925 + 867A + E899BA + East Asian ideograph + + + 232926 + 8673 + E899B3 + East Asian ideograph + + + 232927 + 867C + E899BC + East Asian ideograph + + + 23292E + 8696 + E89A96 + East Asian ideograph + + + 23292F + 86A8 + E89AA8 + East Asian ideograph + + + 232936 + 8691 + E89A91 + East Asian ideograph + + + 232937 + 869C + E89A9C + East Asian ideograph + + + 232939 + 8698 + E89A98 + East Asian ideograph + + + 23293C + 868D + E89A8D + East Asian ideograph + + + 23293D + 868B + E89A8B + East Asian ideograph + + + 232940 + 86A6 + E89AA6 + East Asian ideograph + + + 232942 + 869D + E89A9D + East Asian ideograph + + + 232946 + 86A0 + E89AA0 + East Asian ideograph + + + 232948 + 86A7 + E89AA7 + East Asian ideograph + + + 23294B + 86BF + E89ABF + East Asian ideograph + + + 232958 + 86BA + E89ABA + East Asian ideograph + + + 232959 + 86B0 + E89AB0 + East Asian ideograph + + + 232960 + 86B3 + E89AB3 + East Asian ideograph + + + 232962 + 86C9 + E89B89 + East Asian ideograph + + + 232963 + 86B4 + E89AB4 + East Asian ideograph + + + 232967 + 86D8 + E89B98 + East Asian ideograph + + + 23296E + 86E3 + E89BA3 + East Asian ideograph + + + 23296F + 86E9 + E89BA9 + East Asian ideograph + + + 232971 + 86EC + E89BAC + East Asian ideograph + + + 232974 + 86D5 + E89B95 + East Asian ideograph + + + 232977 + 86D0 + E89B90 + East Asian ideograph + + + 23297A + 86D1 + E89B91 + East Asian ideograph + + + 23297E + 86DE + E89B9E + East Asian ideograph + + + 232A25 + 870B + E89C8B + East Asian ideograph + + + 232A2F + 86FA + E89BBA + East Asian ideograph + + + 232A33 + 86F8 + E89BB8 + East Asian ideograph + + + 232A34 + 8706 + E89C86 + East Asian ideograph + + + 232A36 + 870E + E89C8E + East Asian ideograph + + + 232A38 + 8709 + E89C89 + East Asian ideograph + + + 232A3A + 870A + E89C8A + East Asian ideograph + + + 232A3E + 870D + E89C8D + East Asian ideograph + + + 232A42 + 874A + E89D8A + East Asian ideograph + + + 232A43 + 8723 + E89CA3 + East Asian ideograph + + + 232A44 + 8737 + E89CB7 + East Asian ideograph + + + 232A45 + 8728 + E89CA8 + East Asian ideograph + + + 232A49 + 8740 + E89D80 + East Asian ideograph + + + 232A4B + 872E + E89CAE + East Asian ideograph + + + 232A4C + 873D + E89CBD + East Asian ideograph + + + 232A4E + 871E + E89C9E + East Asian ideograph + + + 232A53 + 8743 + E89D83 + East Asian ideograph + + + 232A55 + 8744 + E89D84 + East Asian ideograph + + + 232A57 + 873E + E89CBE + East Asian ideograph + + + 232A59 + 8729 + E89CA9 + East Asian ideograph + + + 232A5A + 8739 + E89CB9 + East Asian ideograph + + + 232A5F + 871A + E89C9A + East Asian ideograph + + + 232A64 + 8731 + E89CB1 + East Asian ideograph + + + 232A65 + 8711 + E89C91 + East Asian ideograph + + + 232A66 + 8712 + E89C92 + East Asian ideograph + + + 232A6B + 874F + E89D8F + East Asian ideograph + + + 232A6C + 8771 + E89DB1 + East Asian ideograph + + + 232A6D + 8763 + E89DA3 + East Asian ideograph + + + 232A71 + 8764 + E89DA4 + East Asian ideograph + + + 232A73 + 8765 + E89DA5 + East Asian ideograph + + + 232A74 + 877D + E89DBD + East Asian ideograph + + + 232A79 + 8758 + E89D98 + East Asian ideograph + + + 232A7B + 877B + E89DBB + East Asian ideograph + + + 232B21 + 8761 + E89DA1 + East Asian ideograph + + + 232B24 + 876A + E89DAA + East Asian ideograph + + + 232B27 + 874E + E89D8E + East Asian ideograph + + + 232B28 + 875F + E89D9F + East Asian ideograph + + + 232B2D + 876F + E89DAF + East Asian ideograph + + + 232B2E + 875D + E89D9D + East Asian ideograph + + + 232B30 + 876E + E89DAE + East Asian ideograph + + + 232B33 + 874D + E89D8D + East Asian ideograph + + + 232B35 + 8753 + E89D93 + East Asian ideograph + + + 232B3A + 87A3 + E89EA3 + East Asian ideograph + + + 232B3D + 8793 + E89E93 + East Asian ideograph + + + 232B45 + 8799 + E89E99 + East Asian ideograph + + + 232B48 + 8788 + E89E88 + East Asian ideograph + + + 232B4C + 8798 + E89E98 + East Asian ideograph + + + 232B53 + 8785 + E89E85 + East Asian ideograph + + + 232B54 + 878B + E89E8B + East Asian ideograph + + + 232B55 + 8784 + E89E84 + East Asian ideograph + + + 232B58 + 87A9 + E89EA9 + East Asian ideograph + + + 232B5D + 8789 + E89E89 + East Asian ideograph + + + 232B60 + 87AD + E89EAD + East Asian ideograph + + + 232B66 + 87BE + E89EBE + East Asian ideograph + + + 232B6E + 87C4 + E89F84 + East Asian ideograph + + + 232B6F + 87AF + E89EAF + East Asian ideograph + + + 232B72 + 87AC + E89EAC + East Asian ideograph + + + 232B78 + 87AE + E89EAE + East Asian ideograph + + + 232B7E + 87BF + E89EBF + East Asian ideograph + + + 232C24 + 87BD + E89EBD + East Asian ideograph + + + 232C2C + 87EE + E89FAE + East Asian ideograph + + + 232C30 + 87F3 + E89FB3 + East Asian ideograph + + + 232C31 + 87F0 + E89FB0 + East Asian ideograph + + + 232C34 + 87EA + E89FAA + East Asian ideograph + + + 232C36 + 87DB + E89F9B + East Asian ideograph + + + 232C37 + 87E2 + E89FA2 + East Asian ideograph + + + 232C39 + 87EB + E89FAB + East Asian ideograph + + + 232C3A + 87D6 + E89F96 + East Asian ideograph + + + 232C3F + 87F5 + E89FB5 + East Asian ideograph + + + 232C47 + 87E0 + E89FA0 + East Asian ideograph + + + 232C48 + 87D3 + E89F93 + East Asian ideograph + + + 232C49 + 87DC + E89F9C + East Asian ideograph + + + 232C4C + 87E3 + E89FA3 + East Asian ideograph + + + 232C4D + 8801 + E8A081 + East Asian ideograph + + + 232C4F + 8803 + E8A083 + East Asian ideograph + + + 232C50 + 880A + E8A08A + East Asian ideograph + + + 232C55 + 87F6 + E89FB6 + East Asian ideograph + + + 232C57 + 87F7 + E89FB7 + East Asian ideograph + + + 232C5C + 880B + E8A08B + East Asian ideograph + + + 232C5D + 8806 + E8A086 + East Asian ideograph + + + 232C5F + 87FE + E89FBE + East Asian ideograph + + + 232C61 + 8810 + E8A090 + East Asian ideograph + + + 232C63 + 8819 + E8A099 + East Asian ideograph + + + 232C64 + 8811 + E8A091 + East Asian ideograph + + + 232C66 + 8818 + E8A098 + East Asian ideograph + + + 232C6A + 8813 + E8A093 + East Asian ideograph + + + 232C6B + 8816 + E8A096 + East Asian ideograph + + + 232C72 + 8834 + E8A0B4 + East Asian ideograph + + + 232C73 + 881C + E8A09C + East Asian ideograph + + + 232C7A + 881B + E8A09B + East Asian ideograph + + + 232D23 + 8828 + E8A0A8 + East Asian ideograph + + + 232D2A + 8832 + E8A0B2 + East Asian ideograph + + + 232D2E + 882E + E8A0AE + East Asian ideograph + + + 232D32 + 882D + E8A0AD + East Asian ideograph + + + 232D3C + 883C + E8A0BC + East Asian ideograph + + + 232D41 + 8841 + E8A181 + East Asian ideograph + + + 232D42 + 4610 + E49890 + East Asian ideograph + + + 232D44 + 8844 + E8A184 + East Asian ideograph + + + 232D4B + 8847 + E8A187 + East Asian ideograph + + + 232D51 + 884A + E8A18A + East Asian ideograph + + + 232D53 + 884E + E8A18E + East Asian ideograph + + + 232D56 + 8852 + E8A192 + East Asian ideograph + + + 232D57 + 8850 + E8A190 + East Asian ideograph + + + 232D59 + 8856 + E8A196 + East Asian ideograph + + + 232D5A + 8855 + E8A195 + East Asian ideograph + + + 232D5E + 885C + E8A19C + East Asian ideograph + + + 232D5F + 885A + E8A19A + East Asian ideograph + + + 232D69 + 8869 + E8A1A9 + East Asian ideograph + + + 232D6D + 886D + E8A1AD + East Asian ideograph + + + 232D6E + 887A + E8A1BA + East Asian ideograph + + + 232D71 + 8875 + E8A1B5 + East Asian ideograph + + + 232D75 + 8872 + E8A1B2 + East Asian ideograph + + + 232D79 + 887D + E8A1BD + East Asian ideograph + + + 232D7C + 8879 + E8A1B9 + East Asian ideograph + + + 232D7D + 887F + E8A1BF + East Asian ideograph + + + 232D7E + 887E + E8A1BE + East Asian ideograph + + + 232E28 + 88A2 + E8A2A2 + East Asian ideograph + + + 232E2A + 88A4 + E8A2A4 + East Asian ideograph + + + 232E2F + 88AA + E8A2AA + East Asian ideograph + + + 232E34 + 889A + E8A29A + East Asian ideograph + + + 232E3A + 8890 + E8A290 + East Asian ideograph + + + 232E3B + 888C + E8A28C + East Asian ideograph + + + 232E3D + 88A0 + E8A2A0 + East Asian ideograph + + + 232E40 + 8899 + E8A299 + East Asian ideograph + + + 232E45 + 8897 + E8A297 + East Asian ideograph + + + 232E48 + 88C9 + E8A389 + East Asian ideograph + + + 232E49 + 88BF + E8A2BF + East Asian ideograph + + + 232E4A + 88BA + E8A2BA + East Asian ideograph + + + 232E4F + 88C0 + E8A380 + East Asian ideograph + + + 232E51 + 88B2 + E8A2B2 + East Asian ideograph + + + 232E54 + 88BC + E8A2BC + East Asian ideograph + + + 232E57 + 88B7 + E8A2B7 + East Asian ideograph + + + 232E59 + 88BD + E8A2BD + East Asian ideograph + + + 232E5A + 88C4 + E8A384 + East Asian ideograph + + + 232E5E + 88CB + E8A38B + East Asian ideograph + + + 232E60 + 88CC + E8A38C + East Asian ideograph + + + 232E62 + 88DB + E8A39B + East Asian ideograph + + + 232E64 + 88CE + E8A38E + East Asian ideograph + + + 232E68 + 88D2 + E8A392 + East Asian ideograph + + + 232E71 + 88F1 + E8A3B1 + East Asian ideograph + + + 232E72 + 88FE + E8A3BE + East Asian ideograph + + + 232E75 + 88F2 + E8A3B2 + East Asian ideograph + + + 232E78 + 8900 + E8A480 + East Asian ideograph + + + 232E7A + 88F0 + E8A3B0 + East Asian ideograph + + + 232F21 + 88FC + E8A3BC + East Asian ideograph + + + 232F23 + 88EF + E8A3AF + East Asian ideograph + + + 232F24 + 8903 + E8A483 + East Asian ideograph + + + 232F2D + 8909 + E8A489 + East Asian ideograph + + + 232F2F + 8918 + E8A498 + East Asian ideograph + + + 232F35 + 8906 + E8A486 + East Asian ideograph + + + 232F36 + 890C + E8A48C + East Asian ideograph + + + 232F37 + 8919 + E8A499 + East Asian ideograph + + + 232F3D + 890A + E8A48A + East Asian ideograph + + + 232F43 + 8915 + E8A495 + East Asian ideograph + + + 232F45 + 892F + E8A4AF + East Asian ideograph + + + 232F47 + 8930 + E8A4B0 + East Asian ideograph + + + 232F4E + 8921 + E8A4A1 + East Asian ideograph + + + 232F4F + 8927 + E8A4A7 + East Asian ideograph + + + 232F51 + 891F + E8A49F + East Asian ideograph + + + 232F53 + 8931 + E8A4B1 + East Asian ideograph + + + 232F54 + 891E + E8A49E + East Asian ideograph + + + 232F56 + 8926 + E8A4A6 + East Asian ideograph + + + 232F57 + 8922 + E8A4A2 + East Asian ideograph + + + 232F5A + 8935 + E8A4B5 + East Asian ideograph + + + 232F5D + 8941 + E8A581 + East Asian ideograph + + + 232F60 + 8933 + E8A4B3 + East Asian ideograph + + + 232F66 + 8954 + E8A594 + East Asian ideograph + + + 232F6F + 894F + E8A58F + East Asian ideograph + + + 232F72 + 8947 + E8A587 + East Asian ideograph + + + 232F7A + 894C + E8A58C + East Asian ideograph + + + 232F7B + 8946 + E8A586 + East Asian ideograph + + + 233021 + 894D + E8A58D + East Asian ideograph + + + 233023 + 8962 + E8A5A2 + East Asian ideograph + + + 233024 + 895A + E8A59A + East Asian ideograph + + + 233025 + 895E + E8A59E + East Asian ideograph + + + 233029 + 895B + E8A59B + East Asian ideograph + + + 23302C + 895C + E8A59C + East Asian ideograph + + + 23302D + 895D + E8A59D + East Asian ideograph + + + 233031 + 8966 + E8A5A6 + East Asian ideograph + + + 233037 + 896D + E8A5AD + East Asian ideograph + + + 23303A + 896B + E8A5AB + East Asian ideograph + + + 23303B + 896E + E8A5AE + East Asian ideograph + + + 23303C + 896C + E8A5AC + East Asian ideograph + + + 233041 + 8976 + E8A5B6 + East Asian ideograph + + + 233042 + 8974 + E8A5B4 + East Asian ideograph + + + 233049 + 897B + E8A5BB + East Asian ideograph + + + 23304A + 897C + E8A5BC + East Asian ideograph + + + 233053 + 8984 + E8A684 + East Asian ideograph + + + 233055 + 8985 + E8A685 + East Asian ideograph + + + 233062 + 8991 + E8A691 + East Asian ideograph + + + 233064 + 8997 + E8A697 + East Asian ideograph + + + 233066 + 8998 + E8A698 + East Asian ideograph + + + 23306B + 899C + E8A69C + East Asian ideograph + + + 23306F + 89A1 + E8A6A1 + East Asian ideograph + + + 233076 + 89A5 + E8A6A5 + East Asian ideograph + + + 233079 + 89A9 + E8A6A9 + East Asian ideograph + + + 23307D + 89AF + E8A6AF + East Asian ideograph + + + 23312A + 89B8 + E8A6B8 + East Asian ideograph + + + 23312B + 89B7 + E8A6B7 + East Asian ideograph + + + 23312C + 89B6 + E8A6B6 + East Asian ideograph + + + 23312F + 89BC + E8A6BC + East Asian ideograph + + + 233132 + 89BF + E8A6BF + East Asian ideograph + + + 23313A + 89D6 + E8A796 + East Asian ideograph + + + 23313B + 89D5 + E8A795 + East Asian ideograph + + + 23313F + 89DA + E8A79A + East Asian ideograph + + + 233143 + 89E5 + E8A7A5 + East Asian ideograph + + + 233145 + 89DC + E8A79C + East Asian ideograph + + + 233147 + 89E1 + E8A7A1 + East Asian ideograph + + + 23314C + 89E9 + E8A7A9 + East Asian ideograph + + + 23314D + 89EB + E8A7AB + East Asian ideograph + + + 233153 + 89ED + E8A7AD + East Asian ideograph + + + 233158 + 89F1 + E8A7B1 + East Asian ideograph + + + 23315C + 89F3 + E8A7B3 + East Asian ideograph + + + 23315E + 89F5 + E8A7B5 + East Asian ideograph + + + 233160 + 89F6 + E8A7B6 + East Asian ideograph + + + 233164 + 89F7 + E8A7B7 + East Asian ideograph + + + 23316B + 89FF + E8A7BF + East Asian ideograph + + + 23316C + 8A06 + E8A886 + East Asian ideograph + + + 23316D + 8A07 + E8A887 + East Asian ideograph + + + 23316E + 8A04 + E8A884 + East Asian ideograph + + + 233170 + 8A0F + E8A88F + East Asian ideograph + + + 233171 + 8A11 + E8A891 + East Asian ideograph + + + 233172 + 8A12 + E8A892 + East Asian ideograph + + + 233173 + 8A0D + E8A88D + East Asian ideograph + + + 23317A + 8A27 + E8A8A7 + East Asian ideograph + + + 23317D + 8A29 + E8A8A9 + East Asian ideograph + + + 233225 + 8A22 + E8A8A2 + East Asian ideograph + + + 233227 + 8A51 + E8A991 + East Asian ideograph + + + 233228 + 8A4A + E8A98A + East Asian ideograph + + + 23322A + 8A4E + E8A98E + East Asian ideograph + + + 233230 + 8A56 + E8A996 + East Asian ideograph + + + 233237 + 8A57 + E8A997 + East Asian ideograph + + + 233239 + 8A48 + E8A988 + East Asian ideograph + + + 23323B + 8A58 + E8A998 + East Asian ideograph + + + 23323C + 8A52 + E8A992 + East Asian ideograph + + + 233240 + 8A3D + E8A8BD + East Asian ideograph + + + 233242 + 8A45 + E8A985 + East Asian ideograph + + + 23324F + 8A7F + E8A9BF + East Asian ideograph + + + 233250 + 8A86 + E8AA86 + East Asian ideograph + + + 233256 + 8A61 + E8A9A1 + East Asian ideograph + + + 233258 + 8A3E + E8A8BE + East Asian ideograph + + + 233259 + 8A82 + E8AA82 + East Asian ideograph + + + 23325D + 8A84 + E8AA84 + East Asian ideograph + + + 23325E + 8A75 + E8A9B5 + East Asian ideograph + + + 233269 + 8A8F + E8AA8F + East Asian ideograph + + + 23326F + 8A96 + E8AA96 + East Asian ideograph + + + 233271 + 8A9A + E8AA9A + East Asian ideograph + + + 23327E + 8AB6 + E8AAB6 + East Asian ideograph + + + 233321 + 8ABE + E8AABE + East Asian ideograph + + + 233325 + 8ACF + E8AB8F + East Asian ideograph + + + 233327 + 8AC6 + E8AB86 + East Asian ideograph + + + 23332C + 8AD1 + E8AB91 + East Asian ideograph + + + 23332D + 8AD3 + E8AB93 + East Asian ideograph + + + 233331 + 8AAF + E8AAAF + East Asian ideograph + + + 233333 + 8AD4 + E8AB94 + East Asian ideograph + + + 233336 + 8ACD + E8AB8D + East Asian ideograph + + + 233338 + 8AB9 + E8AAB9 + East Asian ideograph + + + 23333B + 8ADB + E8AB9B + East Asian ideograph + + + 23333F + 8AD0 + E8AB90 + East Asian ideograph + + + 233340 + 8AD7 + E8AB97 + East Asian ideograph + + + 233344 + 8AF3 + E8ABB3 + East Asian ideograph + + + 233345 + 8AE2 + E8ABA2 + East Asian ideograph + + + 233349 + 8B4C + E8AD8C + East Asian ideograph + + + 23334C + 8ADD + E8AB9D + East Asian ideograph + + + 23334E + 8AF6 + E8ABB6 + East Asian ideograph + + + 23334F + 8AF4 + E8ABB4 + East Asian ideograph + + + 233350 + 8AF5 + E8ABB5 + East Asian ideograph + + + 233353 + 8ADF + E8AB9F + East Asian ideograph + + + 233356 + 8B03 + E8AC83 + East Asian ideograph + + + 233357 + 8AE4 + E8ABA4 + East Asian ideograph + + + 233359 + 8B14 + E8AC94 + East Asian ideograph + + + 23335D + 8AFC + E8ABBC + East Asian ideograph + + + 233362 + 8ADE + E8AB9E + East Asian ideograph + + + 233363 + 8AE1 + E8ABA1 + East Asian ideograph + + + 233364 + 8B07 + E8AC87 + East Asian ideograph + + + 23336B + 8B0C + E8AC8C + East Asian ideograph + + + 23336F + 8B1C + E8AC9C + East Asian ideograph + + + 233373 + 8B16 + E8AC96 + East Asian ideograph + + + 233376 + 8B1F + E8AC9F + East Asian ideograph + + + 233378 + 8B0B + E8AC8B + East Asian ideograph + + + 233379 + 8B06 + E8AC86 + East Asian ideograph + + + 23337A + 8B05 + E8AC85 + East Asian ideograph + + + 23337C + 8B0F + E8AC8F + East Asian ideograph + + + 23337D + 8B10 + E8AC90 + East Asian ideograph + + + 233422 + 8B2B + E8ACAB + East Asian ideograph + + + 23342A + 8B37 + E8ACB7 + East Asian ideograph + + + 23342D + 8B26 + E8ACA6 + East Asian ideograph + + + 233430 + 8B33 + E8ACB3 + East Asian ideograph + + + 233438 + 8B3E + E8ACBE + East Asian ideograph + + + 23343A + 8B29 + E8ACA9 + East Asian ideograph + + + 233442 + 8B48 + E8AD88 + East Asian ideograph + + + 233444 + 8B54 + E8AD94 + East Asian ideograph + + + 233448 + 8B53 + E8AD93 + East Asian ideograph + + + 233449 + 8B4A + E8AD8A + East Asian ideograph + + + 23344A + 8B46 + E8AD86 + East Asian ideograph + + + 23344D + 8B56 + E8AD96 + East Asian ideograph + + + 23344F + 8B3F + E8ACBF + East Asian ideograph + + + 233459 + 8B59 + E8AD99 + East Asian ideograph + + + 23345F + 8B4D + E8AD8D + East Asian ideograph + + + 233468 + 8B6B + E8ADAB + East Asian ideograph + + + 23346B + 8B6D + E8ADAD + East Asian ideograph + + + 233470 + 8B78 + E8ADB8 + East Asian ideograph + + + 233473 + 8B45 + E8AD85 + East Asian ideograph + + + 233478 + 8B85 + E8AE85 + East Asian ideograph + + + 233479 + 8B81 + E8AE81 + East Asian ideograph + + + 23347B + 8B7E + E8ADBE + East Asian ideograph + + + 233523 + 8B8B + E8AE8B + East Asian ideograph + + + 233526 + 8B87 + E8AE87 + East Asian ideograph + + + 23352D + 8B95 + E8AE95 + East Asian ideograph + + + 23352E + 8B94 + E8AE94 + East Asian ideograph + + + 233537 + 8B9C + E8AE9C + East Asian ideograph + + + 23353A + 8B9F + E8AE9F + East Asian ideograph + + + 23353D + 8C3A + E8B0BA + East Asian ideograph + + + 233544 + 8C40 + E8B180 + East Asian ideograph + + + 233545 + 8C42 + E8B182 + East Asian ideograph + + + 23354B + 8C47 + E8B187 + East Asian ideograph + + + 23354D + 8C4B + E8B18B + East Asian ideograph + + + 233550 + 8C4F + E8B18F + East Asian ideograph + + + 233552 + 8C55 + E8B195 + East Asian ideograph + + + 233554 + 8C57 + E8B197 + East Asian ideograph + + + 233555 + 8C5C + E8B19C + East Asian ideograph + + + 233556 + 8C5D + E8B19D + East Asian ideograph + + + 23355C + 86C3 + E89B83 + East Asian ideograph + + + 233563 + 8C68 + E8B1A8 + East Asian ideograph + + + 233565 + 8C6D + E8B1AD + East Asian ideograph + + + 23356D + 8C73 + E8B1B3 + East Asian ideograph + + + 23356F + 8C74 + E8B1B4 + East Asian ideograph + + + 233571 + 8C75 + E8B1B5 + East Asian ideograph + + + 233573 + 8C77 + E8B1B7 + East Asian ideograph + + + 233574 + 8C76 + E8B1B6 + East Asian ideograph + + + 23357B + 8C78 + E8B1B8 + East Asian ideograph + + + 23357D + 8C7B + E8B1BB + East Asian ideograph + + + 23362A + 8C86 + E8B286 + East Asian ideograph + + + 23362D + 8C85 + E8B285 + East Asian ideograph + + + 23362E + 8C88 + E8B288 + East Asian ideograph + + + 233639 + 8C94 + E8B294 + East Asian ideograph + + + 233641 + 8C9B + E8B29B + East Asian ideograph + + + 233643 + 8C9F + E8B29F + East Asian ideograph + + + 233644 + 8CA4 + E8B2A4 + East Asian ideograph + + + 23364E + 8CB0 + E8B2B0 + East Asian ideograph + + + 233651 + 8CBA + E8B2BA + East Asian ideograph + + + 233652 + 8CB5 + E8B2B5 + East Asian ideograph + + + 233653 + 8CB9 + E8B2B9 + East Asian ideograph + + + 233657 + 8CCD + E8B38D + East Asian ideograph + + + 23365E + 8CD8 + E8B398 + East Asian ideograph + + + 23365F + 8CD5 + E8B395 + East Asian ideograph + + + 233667 + 8CE8 + E8B3A8 + East Asian ideograph + + + 233668 + 8CE9 + E8B3A9 + East Asian ideograph + + + 23366A + 8CE1 + E8B3A1 + East Asian ideograph + + + 23366F + 8CEB + E8B3AB + East Asian ideograph + + + 233670 + 8CDA + E8B39A + East Asian ideograph + + + 233672 + 8CDD + E8B39D + East Asian ideograph + + + 233674 + 8CD9 + E8B399 + East Asian ideograph + + + 233676 + 8CEE + E8B3AE + East Asian ideograph + + + 23367B + 8CF1 + E8B3B1 + East Asian ideograph + + + 23367C + 8CF5 + E8B3B5 + East Asian ideograph + + + 23367E + 8CFB + E8B3BB + East Asian ideograph + + + 233721 + 8CF7 + E8B3B7 + East Asian ideograph + + + 233725 + 8D04 + E8B484 + East Asian ideograph + + + 233726 + 8CFE + E8B3BE + East Asian ideograph + + + 23372B + 8D07 + E8B487 + East Asian ideograph + + + 23372D + 8D09 + E8B489 + East Asian ideograph + + + 233732 + 8D0C + E8B48C + East Asian ideograph + + + 233739 + 8D11 + E8B491 + East Asian ideograph + + + 23373A + 8D10 + E8B490 + East Asian ideograph + + + 23373B + 8D12 + E8B492 + East Asian ideograph + + + 23373D + 8D14 + E8B494 + East Asian ideograph + + + 23373E + 8D18 + E8B498 + East Asian ideograph + + + 233748 + 8D6C + E8B5AC + East Asian ideograph + + + 233752 + 8D78 + E8B5B8 + East Asian ideograph + + + 23375C + 8D7A + E8B5BA + East Asian ideograph + + + 233761 + 8D84 + E8B684 + East Asian ideograph + + + 233771 + 8D94 + E8B694 + East Asian ideograph + + + 233775 + 8D8D + E8B68D + East Asian ideograph + + + 233822 + 8D96 + E8B696 + East Asian ideograph + + + 23382F + 8DA1 + E8B6A1 + East Asian ideograph + + + 233833 + 8DA6 + E8B6A6 + East Asian ideograph + + + 233852 + 8DAB + E8B6AB + East Asian ideograph + + + 233859 + 8DAF + E8B6AF + East Asian ideograph + + + 23385A + 8DB0 + E8B6B0 + East Asian ideograph + + + 233866 + 8DB2 + E8B6B2 + East Asian ideograph + + + 23386E + 8DBC + E8B6BC + East Asian ideograph + + + 23386F + 8DBA + E8B6BA + East Asian ideograph + + + 233870 + 8DB9 + E8B6B9 + East Asian ideograph + + + 233871 + 8DC2 + E8B782 + East Asian ideograph + + + 233872 + 8DC1 + E8B781 + East Asian ideograph + + + 233873 + 8DBF + E8B6BF + East Asian ideograph + + + 233921 + 8DCF + E8B78F + East Asian ideograph + + + 233922 + 8DD6 + E8B796 + East Asian ideograph + + + 233927 + 8DD0 + E8B790 + East Asian ideograph + + + 23392B + 8DC5 + E8B785 + East Asian ideograph + + + 23392F + 8DE4 + E8B7A4 + East Asian ideograph + + + 233934 + 8DEC + E8B7AC + East Asian ideograph + + + 233935 + 8DEB + E8B7AB + East Asian ideograph + + + 233936 + 8DF4 + E8B7B4 + East Asian ideograph + + + 233938 + 8DE9 + E8B7A9 + East Asian ideograph + + + 23393A + 8DE6 + E8B7A6 + East Asian ideograph + + + 23393B + 8DE3 + E8B7A3 + East Asian ideograph + + + 23393D + 8DE7 + E8B7A7 + East Asian ideograph + + + 23393E + 8DF2 + E8B7B2 + East Asian ideograph + + + 23393F + 8E09 + E8B889 + East Asian ideograph + + + 233941 + 8DFD + E8B7BD + East Asian ideograph + + + 233944 + 8DFF + E8B7BF + East Asian ideograph + + + 233946 + 8E05 + E8B885 + East Asian ideograph + + + 233949 + 8E01 + E8B881 + East Asian ideograph + + + 23394E + 8E04 + E8B884 + East Asian ideograph + + + 233950 + 8E06 + E8B886 + East Asian ideograph + + + 233952 + 8E2A + E8B8AA + East Asian ideograph + + + 233954 + 8E23 + E8B8A3 + East Asian ideograph + + + 233957 + 8E2E + E8B8AE + East Asian ideograph + + + 233958 + 8E21 + E8B8A1 + East Asian ideograph + + + 23395C + 8E1E + E8B89E + East Asian ideograph + + + 233964 + 8E16 + E8B896 + East Asian ideograph + + + 233966 + 8E26 + E8B8A6 + East Asian ideograph + + + 233967 + 8E27 + E8B8A7 + East Asian ideograph + + + 233968 + 8E14 + E8B894 + East Asian ideograph + + + 233969 + 8E18 + E8B898 + East Asian ideograph + + + 23396F + 8E41 + E8B981 + East Asian ideograph + + + 233977 + 8E40 + E8B980 + East Asian ideograph + + + 233979 + 8E36 + E8B8B6 + East Asian ideograph + + + 23397E + 8E3D + E8B8BD + East Asian ideograph + + + 233A21 + 8E30 + E8B8B0 + East Asian ideograph + + + 233A24 + 8E47 + E8B987 + East Asian ideograph + + + 233A26 + 8E46 + E8B986 + East Asian ideograph + + + 233A2E + 8E4C + E8B98C + East Asian ideograph + + + 233A30 + 8E50 + E8B990 + East Asian ideograph + + + 233A32 + 8E4F + E8B98F + East Asian ideograph + + + 233A34 + 8E5C + E8B99C + East Asian ideograph + + + 233A35 + 8E62 + E8B9A2 + East Asian ideograph + + + 233A36 + 8E60 + E8B9A0 + East Asian ideograph + + + 233A3A + 8E54 + E8B994 + East Asian ideograph + + + 233A3B + 8E67 + E8B9A7 + East Asian ideograph + + + 233A3E + 8E5A + E8B99A + East Asian ideograph + + + 233A3F + 8E5E + E8B99E + East Asian ideograph + + + 233A40 + 8E55 + E8B995 + East Asian ideograph + + + 233A41 + 8E61 + E8B9A1 + East Asian ideograph + + + 233A43 + 8E5D + E8B99D + East Asian ideograph + + + 233A44 + 8E75 + E8B9B5 + East Asian ideograph + + + 233A45 + 8E74 + E8B9B4 + East Asian ideograph + + + 233A46 + 8E95 + E8BA95 + East Asian ideograph + + + 233A48 + 8E6D + E8B9AD + East Asian ideograph + + + 233A4B + 8E69 + E8B9A9 + East Asian ideograph + + + 233A52 + 8E83 + E8BA83 + East Asian ideograph + + + 233A53 + 8E84 + E8BA84 + East Asian ideograph + + + 233A57 + 8E8B + E8BA8B + East Asian ideograph + + + 233A5D + 8E94 + E8BA94 + East Asian ideograph + + + 233A5E + 8E9A + E8BA9A + East Asian ideograph + + + 233A5F + 8E92 + E8BA92 + East Asian ideograph + + + 233A60 + 8E93 + E8BA93 + East Asian ideograph + + + 233A62 + 8E90 + E8BA90 + East Asian ideograph + + + 233A63 + 8E98 + E8BA98 + East Asian ideograph + + + 233A64 + 8E9E + E8BA9E + East Asian ideograph + + + 233A6B + 8EA5 + E8BAA5 + East Asian ideograph + + + 233A6F + 8EA7 + E8BAA7 + East Asian ideograph + + + 233A71 + 8EA9 + E8BAA9 + East Asian ideograph + + + 233A72 + 8E99 + E8BA99 + East Asian ideograph + + + 233A78 + 8EB3 + E8BAB3 + East Asian ideograph + + + 233A7A + 8EBC + E8BABC + East Asian ideograph + + + 233A7D + 8EB6 + E8BAB6 + East Asian ideograph + + + 233B2E + 8EC9 + E8BB89 + East Asian ideograph + + + 233B2F + 8ECF + E8BB8F + East Asian ideograph + + + 233B31 + 8ECE + E8BB8E + East Asian ideograph + + + 233B33 + 8ED5 + E8BB95 + East Asian ideograph + + + 233B3F + 8EFA + E8BBBA + East Asian ideograph + + + 233B42 + 8EF9 + E8BBB9 + East Asian ideograph + + + 233B4B + 8EE8 + E8BBA8 + East Asian ideograph + + + 233B4F + 8EEB + E8BBAB + East Asian ideograph + + + 233B51 + 8EFF + E8BBBF + East Asian ideograph + + + 233B56 + 8F00 + E8BC80 + East Asian ideograph + + + 233B59 + 8F05 + E8BC85 + East Asian ideograph + + + 233B5A + 8F08 + E8BC88 + East Asian ideograph + + + 233B5B + 8F07 + E8BC87 + East Asian ideograph + + + 233B63 + 8F27 + E8BCA7 + East Asian ideograph + + + 233B64 + 8F2C + E8BCAC + East Asian ideograph + + + 233B6B + 8F1E + E8BC9E + East Asian ideograph + + + 233B6D + 8F25 + E8BCA5 + East Asian ideograph + + + 233B6E + 8F20 + E8BCA0 + East Asian ideograph + + + 233B75 + 8F17 + E8BC97 + East Asian ideograph + + + 233B78 + 8F36 + E8BCB6 + East Asian ideograph + + + 233B79 + 8F2E + E8BCAE + East Asian ideograph + + + 233B7A + 8F33 + E8BCB3 + East Asian ideograph + + + 233B7D + 8F2D + E8BCAD + East Asian ideograph + + + 233C26 + 8F39 + E8BCB9 + East Asian ideograph + + + 233C27 + 8F34 + E8BCB4 + East Asian ideograph + + + 233C2D + 8F40 + E8BD80 + East Asian ideograph + + + 233C30 + 8F46 + E8BD86 + East Asian ideograph + + + 233C31 + 8F4A + E8BD8A + East Asian ideograph + + + 233C33 + 8F47 + E8BD87 + East Asian ideograph + + + 233C3D + 8F52 + E8BD92 + East Asian ideograph + + + 233C48 + 8F56 + E8BD96 + East Asian ideograph + + + 233C49 + 8F57 + E8BD97 + East Asian ideograph + + + 233C4B + 8F55 + E8BD95 + East Asian ideograph + + + 233C4C + 8F58 + E8BD98 + East Asian ideograph + + + 233C4D + 8F5C + E8BD9C + East Asian ideograph + + + 233C4E + 8F5E + E8BD9E + East Asian ideograph + + + 233C53 + 8F5D + E8BD9D + East Asian ideograph + + + 233C57 + 8F62 + E8BDA2 + East Asian ideograph + + + 233C59 + 8F63 + E8BDA3 + East Asian ideograph + + + 233C5A + 8F64 + E8BDA4 + East Asian ideograph + + + 233C65 + 8FA4 + E8BEA4 + East Asian ideograph + + + 233C66 + 8FA5 + E8BEA5 + East Asian ideograph + + + 233C6C + 8FB5 + E8BEB5 + East Asian ideograph + + + 233C6D + 8FB7 + E8BEB7 + East Asian ideograph + + + 233C6E + 8FBB + E8BEBB + East Asian ideograph + + + 233C70 + 8FBC + E8BEBC + East Asian ideograph + + + 233C74 + 8FBF + E8BEBF + East Asian ideograph + + + 233C75 + 8FD2 + E8BF92 + East Asian ideograph + + + 233C77 + 8FCB + E8BF8B + East Asian ideograph + + + 233C7A + 8FCA + E8BF8A + East Asian ideograph + + + 233C7B + 8FD3 + E8BF93 + East Asian ideograph + + + 233C7D + 8FCD + E8BF8D + East Asian ideograph + + + 233D21 + 8FDA + E8BF9A + East Asian ideograph + + + 233D22 + 8FD5 + E8BF95 + East Asian ideograph + + + 233D2F + 8FE4 + E8BFA4 + East Asian ideograph + + + 233D30 + 8FEE + E8BFAE + East Asian ideograph + + + 233D35 + 8FF9 + E8BFB9 + East Asian ideograph + + + 233D3C + 8FFB + E8BFBB + East Asian ideograph + + + 233D3F + 9004 + E98084 + East Asian ideograph + + + 233D40 + 9008 + E98088 + East Asian ideograph + + + 233D44 + 9011 + E98091 + East Asian ideograph + + + 233D45 + 900B + E9808B + East Asian ideograph + + + 233D48 + 900C + E9808C + East Asian ideograph + + + 233D49 + 9021 + E980A1 + East Asian ideograph + + + 233D4A + 902D + E980AD + East Asian ideograph + + + 233D4E + 902C + E980AC + East Asian ideograph + + + 233D56 + 9037 + E980B7 + East Asian ideograph + + + 233D57 + 9034 + E980B4 + East Asian ideograph + + + 233D58 + 902F + E980AF + East Asian ideograph + + + 233D59 + 9036 + E980B6 + East Asian ideograph + + + 233D5B + 9046 + E98186 + East Asian ideograph + + + 233D5D + 9052 + E98192 + East Asian ideograph + + + 233D67 + 9049 + E98189 + East Asian ideograph + + + 233D6A + 9044 + E98184 + East Asian ideograph + + + 233D74 + 9062 + E981A2 + East Asian ideograph + + + 233D75 + 905D + E9819D + East Asian ideograph + + + 233D78 + 905B + E9819B + East Asian ideograph + + + 233D7B + 906B + E981AB + East Asian ideograph + + + 233E21 + 9070 + E981B0 + East Asian ideograph + + + 233E25 + 906F + E981AF + East Asian ideograph + + + 233E26 + 9079 + E981B9 + East Asian ideograph + + + 233E28 + 9076 + E981B6 + East Asian ideograph + + + 233E2A + 907B + E981BB + East Asian ideograph + + + 233E2C + 9085 + E98285 + East Asian ideograph + + + 233E34 + 9083 + E98283 + East Asian ideograph + + + 233E37 + 9088 + E98288 + East Asian ideograph + + + 233E3A + 908B + E9828B + East Asian ideograph + + + 233E3F + 9099 + E98299 + East Asian ideograph + + + 233E40 + 9097 + E98297 + East Asian ideograph + + + 233E43 + 909B + E9829B + East Asian ideograph + + + 233E44 + 909C + E9829C + East Asian ideograph + + + 233E48 + 90A1 + E982A1 + East Asian ideograph + + + 233E51 + 90A8 + E982A8 + East Asian ideograph + + + 233E54 + 90A0 + E982A0 + East Asian ideograph + + + 233E58 + 90AF + E982AF + East Asian ideograph + + + 233E59 + 90B3 + E982B3 + East Asian ideograph + + + 233E5B + 90B6 + E982B6 + East Asian ideograph + + + 233E5D + 90B0 + E982B0 + East Asian ideograph + + + 233E5F + 90AD + E982AD + East Asian ideograph + + + 233E61 + 90B2 + E982B2 + East Asian ideograph + + + 233E68 + 90C9 + E98389 + East Asian ideograph + + + 233E6A + 90BD + E982BD + East Asian ideograph + + + 233E6F + 90D5 + E98395 + East Asian ideograph + + + 233E72 + 90BE + E982BE + East Asian ideograph + + + 233E75 + 90C7 + E98387 + East Asian ideograph + + + 233E78 + 90C8 + E98388 + East Asian ideograph + + + 233E79 + 90C3 + E98383 + East Asian ideograph + + + 233F22 + 90DD + E9839D + East Asian ideograph + + + 233F23 + 90DF + E9839F + East Asian ideograph + + + 233F26 + 90E2 + E983A2 + East Asian ideograph + + + 233F27 + 90D8 + E98398 + East Asian ideograph + + + 233F28 + 90DB + E9839B + East Asian ideograph + + + 233F2A + 90DC + E9839C + East Asian ideograph + + + 233F2C + 90D7 + E98397 + East Asian ideograph + + + 233F2D + 90E4 + E983A4 + East Asian ideograph + + + 233F2E + 90EF + E983AF + East Asian ideograph + + + 233F2F + 90EA + E983AA + East Asian ideograph + + + 233F32 + 90F0 + E983B0 + East Asian ideograph + + + 233F33 + 90F4 + E983B4 + East Asian ideograph + + + 233F34 + 90F2 + E983B2 + East Asian ideograph + + + 233F3E + 90EB + E983AB + East Asian ideograph + + + 233F3F + 90F3 + E983B3 + East Asian ideograph + + + 233F46 + 90FC + E983BC + East Asian ideograph + + + 233F47 + 90FE + E983BE + East Asian ideograph + + + 233F49 + 9104 + E98484 + East Asian ideograph + + + 233F4A + 90FF + E983BF + East Asian ideograph + + + 233F4C + 9106 + E98486 + East Asian ideograph + + + 233F4E + 9100 + E98480 + East Asian ideograph + + + 233F50 + 9107 + E98487 + East Asian ideograph + + + 233F57 + 910F + E9848F + East Asian ideograph + + + 233F58 + 9111 + E98491 + East Asian ideograph + + + 233F5A + 9116 + E98496 + East Asian ideograph + + + 233F5C + 9114 + E98494 + East Asian ideograph + + + 233F60 + 910B + E9848B + East Asian ideograph + + + 233F62 + 9123 + E984A3 + East Asian ideograph (Version J extension) + + + 233F63 + 9118 + E98498 + East Asian ideograph + + + 233F64 + 911C + E9849C + East Asian ideograph + + + 233F66 + 9120 + E984A0 + East Asian ideograph + + + 233F67 + 9122 + E984A2 + East Asian ideograph + + + 233F6A + 911E + E9849E + East Asian ideograph + + + 233F71 + 9124 + E984A4 + East Asian ideograph + + + 233F72 + 911A + E9849A + East Asian ideograph + + + 233F74 + 9125 + E984A5 + East Asian ideograph + + + 233F77 + 912F + E984AF + East Asian ideograph + + + 233F79 + 912B + E984AB + East Asian ideograph + + + 234021 + 9132 + E984B2 + East Asian ideograph + + + 234024 + 9126 + E984A6 + East Asian ideograph + + + 23402B + 9134 + E984B4 + East Asian ideograph + + + 23402C + 9136 + E984B6 + East Asian ideograph + + + 234031 + 913A + E984BA + East Asian ideograph + + + 234032 + 913B + E984BB + East Asian ideograph + + + 23403B + 9143 + E98583 + East Asian ideograph + + + 23403E + 9146 + E98586 + East Asian ideograph + + + 23403F + 9145 + E98585 + East Asian ideograph + + + 234040 + 9148 + E98588 + East Asian ideograph + + + 234041 + 9147 + E98587 + East Asian ideograph + + + 234042 + 9150 + E98590 + East Asian ideograph + + + 234043 + 914E + E9858E + East Asian ideograph + + + 234048 + 9159 + E98599 + East Asian ideograph + + + 234049 + 915C + E9859C + East Asian ideograph + + + 23404D + 9156 + E98596 + East Asian ideograph + + + 234050 + 9158 + E98598 + East Asian ideograph + + + 234052 + 915A + E9859A + East Asian ideograph + + + 234053 + 9161 + E985A1 + East Asian ideograph + + + 234056 + 9164 + E985A4 + East Asian ideograph + + + 234061 + 916F + E985AF + East Asian ideograph + + + 234062 + 916E + E985AE + East Asian ideograph + + + 234066 + 917A + E985BA + East Asian ideograph + + + 234068 + 9172 + E985B2 + East Asian ideograph + + + 234069 + 9179 + E985B9 + East Asian ideograph + + + 23406A + 9176 + E985B6 + East Asian ideograph + + + 23406B + 9174 + E985B4 + East Asian ideograph + + + 23406C + 9173 + E985B3 + East Asian ideograph + + + 23406D + 9185 + E98685 + East Asian ideograph + + + 23406F + 9182 + E98682 + East Asian ideograph + + + 234070 + 918A + E9868A + East Asian ideograph + + + 234071 + 9186 + E98686 + East Asian ideograph + + + 234072 + 918C + E9868C + East Asian ideograph + + + 234073 + 9181 + E98681 + East Asian ideograph + + + 23407B + 9191 + E98691 + East Asian ideograph + + + 23407D + 9190 + E98690 + East Asian ideograph + + + 23407E + 918E + E9868E + East Asian ideograph + + + 234124 + 918D + E9868D + East Asian ideograph + + + 234125 + 9193 + E98693 + East Asian ideograph + + + 23412B + 919D + E9869D + East Asian ideograph + + + 23412C + 919A + E9869A + East Asian ideograph + + + 234130 + 91A2 + E986A2 + East Asian ideograph + + + 234134 + 919B + E9869B + East Asian ideograph (variant of EACC 4D4134) + + + 234137 + 91A8 + E986A8 + East Asian ideograph + + + 23413D + 91AA + E986AA + East Asian ideograph + + + 234141 + 91AF + E986AF + East Asian ideograph + + + 234142 + 91B1 + E986B1 + East Asian ideograph + + + 234147 + 91AD + E986AD + East Asian ideograph + + + 234148 + 91AE + E986AE + East Asian ideograph + + + 23414B + 91B4 + E986B4 + East Asian ideograph + + + 23414C + 91B2 + E986B2 + East Asian ideograph + + + 23414D + 91B5 + E986B5 + East Asian ideograph + + + 234156 + 91BF + E986BF + East Asian ideograph + + + 234157 + 91BD + E986BD + East Asian ideograph + + + 23415A + 91C2 + E98782 + East Asian ideograph + + + 23415B + 91C4 + E98784 + East Asian ideograph + + + 23415C + 91C3 + E98783 + East Asian ideograph + + + 234161 + 91D4 + E98794 + East Asian ideograph + + + 234162 + 91D3 + E98793 + East Asian ideograph + + + 234163 + 91D5 + E98795 + East Asian ideograph + + + 234164 + 91D9 + E98799 + East Asian ideograph + + + 234168 + 91E2 + E987A2 + East Asian ideograph + + + 234169 + 91ED + E987AD + East Asian ideograph + + + 23416A + 91F7 + E987B7 + East Asian ideograph + + + 23416B + 91FA + E987BA + East Asian ideograph + + + 23416F + 91F2 + E987B2 + East Asian ideograph + + + 234171 + 91E8 + E987A8 + East Asian ideograph + + + 234172 + 91F6 + E987B6 + East Asian ideograph + + + 234173 + 91EE + E987AE + East Asian ideograph + + + 234174 + 91F4 + E987B4 + East Asian ideograph + + + 234177 + 91F1 + E987B1 + East Asian ideograph + + + 234179 + 91E9 + E987A9 + East Asian ideograph + + + 23417A + 91F8 + E987B8 + East Asian ideograph + + + 234221 + 91F9 + E987B9 + East Asian ideograph + + + 234222 + 91E4 + E987A4 + East Asian ideograph + + + 234223 + 9204 + E98884 + East Asian ideograph + + + 234225 + 9201 + E98881 + East Asian ideograph + + + 234226 + 922B + E988AB + East Asian ideograph + + + 234227 + 920A + E9888A + East Asian ideograph + + + 234228 + 9225 + E988A5 + East Asian ideograph + + + 23422A + 9292 + E98A92 + East Asian ideograph + + + 23422C + 9228 + E988A8 + East Asian ideograph + + + 23422E + 9207 + E98887 + East Asian ideograph + + + 23422F + 9203 + E98883 + East Asian ideograph + + + 234231 + 9200 + E98880 + East Asian ideograph + + + 234232 + 9218 + E98898 + East Asian ideograph + + + 234233 + 91FE + E987BE + East Asian ideograph + + + 234236 + 9208 + E98888 + East Asian ideograph + + + 234237 + 9226 + E988A6 + East Asian ideograph + + + 234238 + 921C + E9889C + East Asian ideograph + + + 23423B + 9224 + E988A4 + East Asian ideograph + + + 234243 + 9212 + E98892 + East Asian ideograph + + + 234248 + 91FF + E987BF + East Asian ideograph + + + 23424A + 9216 + E98896 + East Asian ideograph + + + 23424B + 9211 + E98891 + East Asian ideograph + + + 23424E + 9206 + E98886 + East Asian ideograph + + + 23424F + 92A2 + E98AA2 + East Asian ideograph + + + 234251 + 9230 + E988B0 + East Asian ideograph + + + 234252 + 9249 + E98989 + East Asian ideograph + + + 234254 + 924D + E9898D + East Asian ideograph + + + 234255 + 9248 + E98988 + East Asian ideograph + + + 234258 + 923A + E988BA + East Asian ideograph + + + 23425C + 922E + E988AE + East Asian ideograph + + + 23425F + 9233 + E988B3 + East Asian ideograph + + + 234261 + 9266 + E989A6 + East Asian ideograph + + + 234264 + 925E + E9899E + East Asian ideograph + + + 234268 + 9235 + E988B5 + East Asian ideograph + + + 23426B + 9250 + E98990 + East Asian ideograph + + + 23426C + 926B + E989AB + East Asian ideograph + + + 23426D + 9239 + E988B9 + East Asian ideograph + + + 23426F + 926D + E989AD + East Asian ideograph + + + 234270 + 926C + E989AC + East Asian ideograph + + + 234271 + 924F + E9898F + East Asian ideograph + + + 234274 + 923F + E988BF + East Asian ideograph + + + 234277 + 9260 + E989A0 + East Asian ideograph + + + 23427E + 9236 + E988B6 + East Asian ideograph + + + 234323 + 924E + E9898E + East Asian ideograph + + + 234326 + 924C + E9898C + East Asian ideograph + + + 234327 + 9256 + E98996 + East Asian ideograph + + + 23432B + 925A + E9899A + East Asian ideograph + + + 23432E + 9241 + E98981 + East Asian ideograph + + + 23432F + 9283 + E98A83 + East Asian ideograph + + + 234331 + 92A5 + E98AA5 + East Asian ideograph + + + 234333 + 9282 + E98A82 + East Asian ideograph + + + 234335 + 92A8 + E98AA8 + East Asian ideograph + + + 234337 + 927C + E989BC + East Asian ideograph + + + 234338 + 92A4 + E98AA4 + East Asian ideograph + + + 23433E + 9276 + E989B6 + East Asian ideograph + + + 23433F + 928D + E98A8D + East Asian ideograph + + + 234340 + 92EE + E98BAE + East Asian ideograph + + + 234342 + 9288 + E98A88 + East Asian ideograph + + + 234343 + 927A + E989BA + East Asian ideograph + + + 234345 + 928E + E98A8E + East Asian ideograph + + + 234346 + 92A0 + E98AA0 + East Asian ideograph + + + 234347 + 9277 + E989B7 + East Asian ideograph + + + 234349 + 92AA + E98AAA + East Asian ideograph + + + 234350 + 92A6 + E98AA6 + East Asian ideograph + + + 234354 + 927E + E989BE + East Asian ideograph + + + 234355 + 929A + E98A9A + East Asian ideograph + + + 234358 + 92AB + E98AAB + East Asian ideograph + + + 23435B + 9291 + E98A91 + East Asian ideograph + + + 23435D + 929B + E98A9B + East Asian ideograph + + + 234362 + 927F + E989BF + East Asian ideograph + + + 234364 + 92A3 + E98AA3 + East Asian ideograph + + + 234366 + 92C8 + E98B88 + East Asian ideograph + + + 23436A + 92C3 + E98B83 + East Asian ideograph + + + 23436F + 92D0 + E98B90 + East Asian ideograph + + + 234371 + 92F1 + E98BB1 + East Asian ideograph + + + 234372 + 92DF + E98B9F + East Asian ideograph + + + 234375 + 92E6 + E98BA6 + East Asian ideograph + + + 234376 + 92B6 + E98AB6 + East Asian ideograph + + + 234377 + 92C0 + E98B80 + East Asian ideograph + + + 234379 + 92BE + E98ABE + East Asian ideograph + + + 23437A + 92D9 + E98B99 + East Asian ideograph + + + 23437E + 92D5 + E98B95 + East Asian ideograph + + + 234421 + 92C6 + E98B86 + East Asian ideograph + + + 234425 + 92F4 + E98BB4 + East Asian ideograph + + + 234427 + 92CF + E98B8F + East Asian ideograph + + + 23442A + 92B2 + E98AB2 + East Asian ideograph + + + 23442C + 92E7 + E98BA7 + East Asian ideograph + + + 23442D + 92C7 + E98B87 + East Asian ideograph + + + 23442E + 92F0 + E98BB0 + East Asian ideograph + + + 23442F + 92DB + E98B9B + East Asian ideograph + + + 234430 + 92DC + E98B9C + East Asian ideograph + + + 234431 + 92D8 + E98B98 + East Asian ideograph + + + 234433 + 92E9 + E98BA9 + East Asian ideograph + + + 234435 + 92DD + E98B9D + East Asian ideograph + + + 234439 + 92D1 + E98B91 + East Asian ideograph + + + 23443A + 92CA + E98B8A + East Asian ideograph + + + 23443C + 92C2 + E98B82 + East Asian ideograph + + + 23443E + 92CC + E98B8C + East Asian ideograph + + + 234440 + 92EF + E98BAF + East Asian ideograph + + + 234441 + 92E8 + E98BA8 + East Asian ideograph + + + 234443 + 92EB + E98BAB + East Asian ideograph + + + 234445 + 92F5 + E98BB5 + East Asian ideograph + + + 234448 + 92F2 + E98BB2 + East Asian ideograph + + + 23444C + 9303 + E98C83 + East Asian ideograph + + + 23444D + 9307 + E98C87 + East Asian ideograph + + + 23444E + 931E + E98C9E + East Asian ideograph + + + 23444F + 9344 + E98D84 + East Asian ideograph + + + 234453 + 931D + E98C9D + East Asian ideograph + + + 234454 + 92FA + E98BBA + East Asian ideograph + + + 234458 + 931F + E98C9F + East Asian ideograph + + + 23445A + 9331 + E98CB1 + East Asian ideograph + + + 23445B + 9306 + E98C86 + East Asian ideograph + + + 23445D + 92F9 + E98BB9 + East Asian ideograph + + + 23445F + 930F + E98C8F + East Asian ideograph + + + 234462 + 9302 + E98C82 + East Asian ideograph + + + 234464 + 9324 + E98CA4 + East Asian ideograph + + + 234466 + 9312 + E98C92 + East Asian ideograph + + + 234469 + 9338 + E98CB8 + East Asian ideograph + + + 23446A + 9323 + E98CA3 + East Asian ideograph + + + 23446C + 9321 + E98CA1 + East Asian ideograph + + + 234471 + 9340 + E98D80 + East Asian ideograph + + + 234472 + 9301 + E98C81 + East Asian ideograph + + + 234474 + 9315 + E98C95 + East Asian ideograph + + + 234476 + 9329 + E98CA9 + East Asian ideograph + + + 234478 + 932E + E98CAE + East Asian ideograph + + + 234479 + 932A + E98CAA + East Asian ideograph + + + 23447B + 933F + E98CBF + East Asian ideograph + + + 23447C + 933A + E98CBA + East Asian ideograph + + + 23447E + 9335 + E98CB5 + East Asian ideograph + + + 234522 + 9314 + E98C94 + East Asian ideograph + + + 234528 + 92FE + E98BBE + East Asian ideograph + + + 23452F + 9342 + E98D82 + East Asian ideograph + + + 234531 + 9341 + E98D81 + East Asian ideograph + + + 234532 + 9319 + E98C99 + East Asian ideograph + + + 234535 + 934C + E98D8C + East Asian ideograph + + + 234541 + 9379 + E98DB9 + East Asian ideograph + + + 234544 + 9386 + E98E86 + East Asian ideograph + + + 234547 + 936A + E98DAA + East Asian ideograph + + + 234548 + 935C + E98D9C + East Asian ideograph + + + 23454C + 934F + E98D8F + East Asian ideograph + + + 23454D + 9347 + E98D87 + East Asian ideograph + + + 234551 + 937A + E98DBA + East Asian ideograph + + + 234553 + 9356 + E98D96 + East Asian ideograph + + + 234554 + 9371 + E98DB1 + East Asian ideograph + + + 234556 + 937C + E98DBC + East Asian ideograph + + + 23455C + 9377 + E98DB7 + East Asian ideograph + + + 23455D + 9349 + E98D89 + East Asian ideograph + + + 23455E + 9358 + E98D98 + East Asian ideograph + + + 23455F + 935A + E98D9A + East Asian ideograph + + + 234560 + 93BE + E98EBE + East Asian ideograph + + + 234562 + 935F + E98D9F + East Asian ideograph + + + 234564 + 9376 + E98DB6 + East Asian ideograph + + + 234566 + 9355 + E98D95 + East Asian ideograph + + + 234567 + 9354 + E98D94 + East Asian ideograph + + + 23456A + 9348 + E98D88 + East Asian ideograph + + + 23456B + 9374 + E98DB4 + East Asian ideograph + + + 23456E + 9351 + E98D91 + East Asian ideograph + + + 23456F + 9364 + E98DA4 + East Asian ideograph + + + 234571 + 936B + E98DAB + East Asian ideograph + + + 234572 + 936D + E98DAD + East Asian ideograph + + + 234573 + 9360 + E98DA0 + East Asian ideograph + + + 234577 + 936E + E98DAE + East Asian ideograph + + + 234579 + 938F + E98E8F + East Asian ideograph + + + 23457A + 93AC + E98EAC + East Asian ideograph + + + 23457B + 9395 + E98E95 + East Asian ideograph + + + 23457E + 938B + E98E8B + East Asian ideograph + + + 234621 + 93B5 + E98EB5 + East Asian ideograph + + + 234622 + 938C + E98E8C + East Asian ideograph + + + 234623 + 9388 + E98E88 + East Asian ideograph + + + 234625 + 93B9 + E98EB9 + East Asian ideograph + + + 234627 + 93A1 + E98EA1 + East Asian ideograph + + + 234628 + 93B0 + E98EB0 + East Asian ideograph + + + 234629 + 93A3 + E98EA3 + East Asian ideograph + + + 23462A + 93B7 + E98EB7 + East Asian ideograph + + + 23462B + 939B + E98E9B + East Asian ideograph + + + 23462D + 9398 + E98E98 + East Asian ideograph + + + 23463C + 9389 + E98E89 + East Asian ideograph + + + 23463D + 93A4 + E98EA4 + East Asian ideograph + + + 234640 + 93BC + E98EBC + East Asian ideograph + + + 234642 + 93A7 + E98EA7 + East Asian ideograph + + + 234644 + 93BD + E98EBD + East Asian ideograph + + + 234647 + 93A6 + E98EA6 + East Asian ideograph + + + 234648 + 939A + E98E9A + East Asian ideograph + + + 23464A + 93AA + E98EAA + East Asian ideograph + + + 23464D + 939E + E98E9E + East Asian ideograph + + + 23464F + 9397 + E98E97 + East Asian ideograph + + + 234651 + 93BB + E98EBB + East Asian ideograph + + + 234653 + 93F1 + E98FB1 + East Asian ideograph + + + 234656 + 93DE + E98F9E + East Asian ideograph + + + 234657 + 93EE + E98FAE + East Asian ideograph + + + 23465A + 93C7 + E98F87 + East Asian ideograph + + + 23465B + 93F2 + E98FB2 + East Asian ideograph + + + 23465D + 93D4 + E98F94 + East Asian ideograph + + + 23465F + 93E5 + E98FA5 + East Asian ideograph + + + 234662 + 93F9 + E98FB9 + East Asian ideograph + + + 234663 + 93CA + E98F8A + East Asian ideograph + + + 234664 + 93C4 + E98F84 + East Asian ideograph + + + 234666 + 93E8 + E98FA8 + East Asian ideograph + + + 234667 + 93E7 + E98FA7 + East Asian ideograph + + + 234672 + 93DA + E98F9A + East Asian ideograph + + + 234673 + 93D0 + E98F90 + East Asian ideograph + + + 234674 + 93EF + E98FAF + East Asian ideograph + + + 234675 + 93DB + E98F9B + East Asian ideograph + + + 23467C + 93CC + E98F8C + East Asian ideograph + + + 23472C + 93D3 + E98F93 + East Asian ideograph + + + 23472F + 93A9 + E98EA9 + East Asian ideograph + + + 234730 + 93E6 + E98FA6 + East Asian ideograph + + + 234732 + 940B + E9908B + East Asian ideograph + + + 234734 + 9413 + E99093 + East Asian ideograph + + + 23473B + 940F + E9908F + East Asian ideograph + + + 23473C + 9420 + E990A0 + East Asian ideograph + + + 23473D + 93FB + E98FBB + East Asian ideograph + + + 234749 + 93FA + E98FBA + East Asian ideograph + + + 23474D + 9419 + E99099 + East Asian ideograph + + + 23474E + 940D + E9908D + East Asian ideograph + + + 234750 + 9426 + E990A6 + East Asian ideograph + + + 234751 + 9427 + E990A7 + East Asian ideograph + + + 234755 + 9409 + E99089 + East Asian ideograph + + + 234758 + 9414 + E99094 + East Asian ideograph + + + 234759 + 9404 + E99084 + East Asian ideograph + + + 23475C + 9422 + E990A2 + East Asian ideograph + + + 23475D + 9406 + E99086 + East Asian ideograph + + + 234760 + 9410 + E99090 + East Asian ideograph + + + 234762 + 9423 + E990A3 + East Asian ideograph + + + 234767 + 93F5 + E98FB5 + East Asian ideograph + + + 234769 + 93F7 + E98FB7 + East Asian ideograph + + + 23476A + 9407 + E99087 + East Asian ideograph + + + 23476F + 940E + E9908E + East Asian ideograph + + + 234771 + 9411 + E99091 + East Asian ideograph + + + 234774 + 943F + E990BF + East Asian ideograph + + + 234779 + 9429 + E990A9 + East Asian ideograph + + + 23477C + 943D + E990BD + East Asian ideograph + + + 234827 + 93F4 + E98FB4 + East Asian ideograph + + + 234828 + 9436 + E990B6 + East Asian ideograph + + + 23482B + 943B + E990BB + East Asian ideograph + + + 23482D + 9424 + E990A4 + East Asian ideograph + + + 234830 + 9437 + E990B7 + East Asian ideograph + + + 234832 + 9440 + E99180 + East Asian ideograph + + + 234835 + 942B + E990AB + East Asian ideograph + + + 234836 + 942D + E990AD + East Asian ideograph + + + 234837 + 9441 + E99181 + East Asian ideograph + + + 234838 + 9431 + E990B1 + East Asian ideograph + + + 23483D + 9467 + E991A7 + East Asian ideograph + + + 23483E + 944C + E9918C + East Asian ideograph + + + 234840 + 9445 + E99185 + East Asian ideograph + + + 234842 + 9450 + E99190 + East Asian ideograph + + + 23484A + 944A + E9918A + East Asian ideograph + + + 234853 + 9466 + E991A6 + East Asian ideograph + + + 234857 + 9464 + E991A4 + East Asian ideograph + + + 234858 + 9462 + E991A2 + East Asian ideograph + + + 23485C + 9465 + E991A5 + East Asian ideograph + + + 23485D + 9455 + E99195 + East Asian ideograph + + + 23485E + 945E + E9919E + East Asian ideograph + + + 234862 + 946A + E991AA + East Asian ideograph + + + 234868 + 946B + E991AB + East Asian ideograph + + + 234869 + 946D + E991AD + East Asian ideograph + + + 23486C + 946F + E991AF + East Asian ideograph + + + 23486D + 9471 + E991B1 + East Asian ideograph + + + 234871 + 9477 + E991B7 + East Asian ideograph + + + 23487B + 9482 + E99282 + East Asian ideograph + + + 23487C + 9481 + E99281 + East Asian ideograph + + + 23492E + 9585 + E99685 + East Asian ideograph + + + 234930 + 9588 + E99688 + East Asian ideograph + + + 234931 + 958C + E9968C + East Asian ideograph + + + 234934 + 9597 + E99697 + East Asian ideograph + + + 234936 + 958E + E9968E + East Asian ideograph + + + 234938 + 959F + E9969F + East Asian ideograph + + + 23493A + 95A0 + E996A0 + East Asian ideograph + + + 234942 + 95AC + E996AC + East Asian ideograph + + + 234944 + 95AB + E996AB + East Asian ideograph + + + 234948 + 95BC + E996BC + East Asian ideograph + + + 234949 + 95BE + E996BE + East Asian ideograph + + + 23494A + 95CD + E9978D + East Asian ideograph + + + 23494D + 95B9 + E996B9 + East Asian ideograph + + + 23494E + 95BA + E996BA + East Asian ideograph + + + 23494F + 95B6 + E996B6 + East Asian ideograph + + + 234950 + 95BF + E996BF + East Asian ideograph + + + 234952 + 95BD + E996BD + East Asian ideograph + + + 234959 + 95C9 + E99789 + East Asian ideograph + + + 23495D + 95CE + E9978E + East Asian ideograph + + + 234960 + 95D5 + E99795 + East Asian ideograph + + + 234962 + 95D2 + E99792 + East Asian ideograph + + + 234963 + 95D3 + E99793 + East Asian ideograph + + + 234964 + 95D1 + E99791 + East Asian ideograph + + + 234965 + 95C3 + E99783 + East Asian ideograph + + + 234966 + 95DA + E9979A + East Asian ideograph + + + 234969 + 95DE + E9979E + East Asian ideograph + + + 23496A + 95E0 + E997A0 + East Asian ideograph + + + 23496F + 95E5 + E997A5 + East Asian ideograph + + + 234972 + 95E4 + E997A4 + East Asian ideograph + + + 234976 + 95E7 + E997A7 + East Asian ideograph + + + 23497A + 961E + E9989E + East Asian ideograph + + + 23497B + 9624 + E998A4 + East Asian ideograph + + + 23497C + 9622 + E998A2 + East Asian ideograph + + + 234A21 + 9627 + E998A7 + East Asian ideograph + + + 234A2F + 9642 + E99982 + East Asian ideograph + + + 234A30 + 963D + E998BD + East Asian ideograph + + + 234A32 + 963C + E998BC + East Asian ideograph + + + 234A3C + 9651 + E99991 + East Asian ideograph + + + 234A42 + 9660 + E999A0 + East Asian ideograph + + + 234A44 + 965C + E9999C + East Asian ideograph + + + 234A46 + 9658 + E99998 + East Asian ideograph + + + 234A4A + 965F + E9999F + East Asian ideograph + + + 234A4B + 9656 + E99996 + East Asian ideograph + + + 234A51 + 966C + E999AC + East Asian ideograph + + + 234A5D + 967B + E999BB + East Asian ideograph + + + 234A5E + 967F + E999BF + East Asian ideograph + + + 234A62 + 967E + E999BE + East Asian ideograph + + + 234A63 + 9684 + E99A84 + East Asian ideograph + + + 234A65 + 9688 + E99A88 + East Asian ideograph + + + 234A6C + 9689 + E99A89 + East Asian ideograph + + + 234A6D + 9682 + E99A82 + East Asian ideograph + + + 234A6E + 9683 + E99A83 + East Asian ideograph + + + 234A79 + 9696 + E99A96 + East Asian ideograph + + + 234A7A + 9697 + E99A97 + East Asian ideograph + + + 234B2F + 96A4 + E99AA4 + East Asian ideograph + + + 234B35 + 96A9 + E99AA9 + East Asian ideograph + + + 234B37 + 96AE + E99AAE + East Asian ideograph + + + 234B3B + 96B0 + E99AB0 + East Asian ideograph + + + 234B3C + 96B2 + E99AB2 + East Asian ideograph + + + 234B3E + 96B3 + E99AB3 + East Asian ideograph + + + 234B48 + 96B9 + E99AB9 + East Asian ideograph + + + 234B49 + 96BC + E99ABC + East Asian ideograph + + + 234B52 + 96CE + E99B8E + East Asian ideograph + + + 234B53 + 96CA + E99B8A + East Asian ideograph + + + 234B57 + 96D2 + E99B92 + East Asian ideograph + + + 234B64 + 96DF + E99B9F + East Asian ideograph + + + 234B66 + 96D8 + E99B98 + East Asian ideograph + + + 234B67 + 96DD + E99B9D + East Asian ideograph + + + 234B71 + 96E9 + E99BA9 + East Asian ideograph + + + 234B74 + 96F1 + E99BB1 + East Asian ideograph + + + 234B76 + 96F0 + E99BB0 + East Asian ideograph + + + 234B77 + 96F4 + E99BB4 + East Asian ideograph + + + 234B78 + 96FA + E99BBA + East Asian ideograph + + + 234B7A + 96F5 + E99BB5 + East Asian ideograph + + + 234C22 + 96FF + E99BBF + East Asian ideograph + + + 234C27 + 9702 + E99C82 + East Asian ideograph + + + 234C29 + 9708 + E99C88 + East Asian ideograph + + + 234C2A + 9705 + E99C85 + East Asian ideograph + + + 234C38 + 971B + E99C9B + East Asian ideograph + + + 234C3D + 971D + E99C9D + East Asian ideograph + + + 234C3E + 9719 + E99C99 + East Asian ideograph + + + 234C47 + 9723 + E99CA3 + East Asian ideograph + + + 234C49 + 9722 + E99CA2 + East Asian ideograph + + + 234C4A + 9724 + E99CA4 + East Asian ideograph + + + 234C4E + 9728 + E99CA8 + East Asian ideograph + + + 234C50 + 9726 + E99CA6 + East Asian ideograph + + + 234C52 + 9731 + E99CB1 + East Asian ideograph + + + 234C58 + 9730 + E99CB0 + East Asian ideograph + + + 234C5C + 9736 + E99CB6 + East Asian ideograph + + + 234C6A + 9741 + E99D81 + East Asian ideograph + + + 234C6B + 9747 + E99D87 + East Asian ideograph + + + 234C6C + 9746 + E99D86 + East Asian ideograph + + + 234C6E + 9749 + E99D89 + East Asian ideograph + + + 234C75 + 9758 + E99D98 + East Asian ideograph + + + 234C76 + 975A + E99D9A + East Asian ideograph + + + 234C78 + 975D + E99D9D + East Asian ideograph + + + 234C7B + 975F + E99D9F + East Asian ideograph + + + 234C7D + 9764 + E99DA4 + East Asian ideograph + + + 234D25 + 9767 + E99DA7 + East Asian ideograph + + + 234D2C + 976B + E99DAB + East Asian ideograph + + + 234D30 + 976E + E99DAE + East Asian ideograph + + + 234D31 + 9777 + E99DB7 + East Asian ideograph + + + 234D32 + 9778 + E99DB8 + East Asian ideograph + + + 234D35 + 9773 + E99DB3 + East Asian ideograph + + + 234D37 + 9783 + E99E83 + East Asian ideograph + + + 234D38 + 977A + E99DBA + East Asian ideograph + + + 234D3A + 9780 + E99E80 + East Asian ideograph + + + 234D3C + 9781 + E99E81 + East Asian ideograph + + + 234D40 + 9784 + E99E84 + East Asian ideograph + + + 234D43 + 977F + E99DBF + East Asian ideograph + + + 234D49 + 9789 + E99E89 + East Asian ideograph + + + 234D54 + 9794 + E99E94 + East Asian ideograph + + + 234D59 + 979B + E99E9B + East Asian ideograph + + + 234D5A + 979F + E99E9F + East Asian ideograph + + + 234D5C + 979A + E99E9A + East Asian ideograph + + + 234D62 + 979C + E99E9C + East Asian ideograph + + + 234D6A + 97AC + E99EAC + East Asian ideograph + + + 234D70 + 97AE + E99EAE + East Asian ideograph + + + 234D71 + 97A8 + E99EA8 + East Asian ideograph + + + 234D74 + 97AB + E99EAB + East Asian ideograph + + + 234D78 + 97A5 + E99EA5 + East Asian ideograph + + + 234D7A + 97B2 + E99EB2 + East Asian ideograph + + + 234D7C + 97B4 + E99EB4 + East Asian ideograph + + + 234E24 + 97B3 + E99EB3 + East Asian ideograph + + + 234E26 + 97B5 + E99EB5 + East Asian ideograph + + + 234E29 + 97B9 + E99EB9 + East Asian ideograph + + + 234E2D + 97B8 + E99EB8 + East Asian ideograph + + + 234E35 + 97BE + E99EBE + East Asian ideograph + + + 234E38 + 97C0 + E99F80 + East Asian ideograph + + + 234E3B + 97C5 + E99F85 + East Asian ideograph + + + 234E43 + 97C9 + E99F89 + East Asian ideograph + + + 234E4B + 97CE + E99F8E + East Asian ideograph + + + 234E4C + 97CD + E99F8D + East Asian ideograph + + + 234E4E + 97D0 + E99F90 + East Asian ideograph + + + 234E51 + 97D4 + E99F94 + East Asian ideograph + + + 234E53 + 97D8 + E99F98 + East Asian ideograph + + + 234E54 + 97D9 + E99F99 + East Asian ideograph + + + 234E59 + 97DD + E99F9D + East Asian ideograph + + + 234E5C + 97DE + E99F9E + East Asian ideograph + + + 234E5E + 97E0 + E99FA0 + East Asian ideograph + + + 234E60 + 97E1 + E99FA1 + East Asian ideograph + + + 234E6C + 97F5 + E99FB5 + East Asian ideograph + + + 234E73 + 97FA + E99FBA + East Asian ideograph + + + 234E79 + 9807 + E9A087 + East Asian ideograph + + + 234E7B + 980F + E9A08F + East Asian ideograph + + + 234E7E + 980D + E9A08D + East Asian ideograph + + + 234F23 + 980E + E9A08E + East Asian ideograph + + + 234F26 + 9816 + E9A096 + East Asian ideograph + + + 234F2C + 9826 + E9A0A6 + East Asian ideograph + + + 234F2D + 981E + E9A09E + East Asian ideograph + + + 234F34 + 982B + E9A0AB + East Asian ideograph + + + 234F37 + 9820 + E9A0A0 + East Asian ideograph + + + 234F38 + 981F + E9A09F + East Asian ideograph + + + 234F3D + 9833 + E9A0B3 + East Asian ideograph + + + 234F40 + 982E + E9A0AE + East Asian ideograph + + + 234F44 + 982F + E9A0AF + East Asian ideograph + + + 234F45 + 9832 + E9A0B2 + East Asian ideograph + + + 234F4B + 9847 + E9A187 + East Asian ideograph + + + 234F4E + 9844 + E9A184 + East Asian ideograph + + + 234F60 + 9852 + E9A192 + East Asian ideograph + + + 234F62 + 984B + E9A18B + East Asian ideograph + + + 234F66 + 983F + E9A0BF + East Asian ideograph + + + 234F6A + 985C + E9A19C + East Asian ideograph + + + 234F6B + 9859 + E9A199 + East Asian ideograph + + + 234F6F + 9857 + E9A197 + East Asian ideograph + + + 234F72 + 9856 + E9A196 + East Asian ideograph + + + 234F77 + 9862 + E9A1A2 + East Asian ideograph + + + 234F7E + 9868 + E9A1A8 + East Asian ideograph + + + 235021 + 9865 + E9A1A5 + East Asian ideograph + + + 235022 + 9866 + E9A1A6 + East Asian ideograph + + + 235029 + 986C + E9A1AC + East Asian ideograph + + + 235030 + 9873 + E9A1B3 + East Asian ideograph + + + 235031 + 9874 + E9A1B4 + East Asian ideograph + + + 235039 + 98AD + E9A2AD + East Asian ideograph + + + 235040 + 98B4 + E9A2B4 + East Asian ideograph + + + 235048 + 98B8 + E9A2B8 + East Asian ideograph + + + 23504A + 98BF + E9A2BF + East Asian ideograph + + + 23504D + 98BB + E9A2BB + East Asian ideograph + + + 23504E + 98C0 + E9A380 + East Asian ideograph + + + 235053 + 98C6 + E9A386 + East Asian ideograph + + + 23505F + 98E1 + E9A3A1 + East Asian ideograph + + + 235060 + 98E3 + E9A3A3 + East Asian ideograph + + + 235061 + 98E4 + E9A3A4 + East Asian ideograph + + + 235063 + 98E5 + E9A3A5 + East Asian ideograph + + + 235068 + 98F1 + E9A3B1 + East Asian ideograph + + + 23506C + 98EB + E9A3AB + East Asian ideograph + + + 235124 + 9907 + E9A487 + East Asian ideograph + + + 235128 + 9902 + E9A482 + East Asian ideograph + + + 23512F + 9916 + E9A496 + East Asian ideograph + + + 235130 + 9914 + E9A494 + East Asian ideograph + + + 235131 + 9917 + E9A497 + East Asian ideograph + + + 235132 + 9911 + E9A491 + East Asian ideograph + + + 235138 + 9915 + E9A495 + East Asian ideograph + + + 23513A + 9924 + E9A4A4 + East Asian ideograph + + + 23513B + 991F + E9A49F + East Asian ideograph + + + 235140 + 991C + E9A49C + East Asian ideograph + + + 235143 + 9929 + E9A4A9 + East Asian ideograph + + + 235145 + 9927 + E9A4A7 + East Asian ideograph + + + 235147 + 991A + E9A49A + East Asian ideograph + + + 23514F + 992E + E9A4AE + East Asian ideograph + + + 235150 + 992C + E9A4AC + East Asian ideograph + + + 235151 + 992A + E9A4AA + East Asian ideograph + + + 235153 + 9933 + E9A4B3 + East Asian ideograph + + + 235154 + 9942 + E9A582 + East Asian ideograph (variant of EACC 4D5154) + + + 235155 + 9932 + E9A4B2 + East Asian ideograph + + + 235156 + 992B + E9A4AB + East Asian ideograph + + + 235158 + 9931 + E9A4B1 + East Asian ideograph + + + 23515C + 993B + E9A4BB + East Asian ideograph + + + 235160 + 993A + E9A4BA + East Asian ideograph + + + 235161 + 9941 + E9A581 + East Asian ideograph + + + 235164 + 9940 + E9A580 + East Asian ideograph + + + 235166 + 993C + E9A4BC + East Asian ideograph + + + 23516A + 9948 + E9A588 + East Asian ideograph + + + 23516C + 9947 + E9A587 + East Asian ideograph + + + 23516D + 9949 + E9A589 + East Asian ideograph + + + 235170 + 9943 + E9A583 + East Asian ideograph + + + 235171 + 994D + E9A58D + East Asian ideograph + + + 235172 + 994C + E9A58C + East Asian ideograph + + + 235173 + 994E + E9A58E + East Asian ideograph + + + 235174 + 9950 + E9A590 + East Asian ideograph + + + 23517A + 9958 + E9A598 + East Asian ideograph + + + 23517B + 9954 + E9A594 + East Asian ideograph + + + 23517E + 9955 + E9A595 + East Asian ideograph + + + 235222 + 9957 + E9A597 + East Asian ideograph (variant of EACC 475222) + + + 235229 + 995D + E9A59D + East Asian ideograph + + + 23522B + 995F + E9A59F + East Asian ideograph + + + 23522F + 9997 + E9A697 + East Asian ideograph + + + 235230 + 9998 + E9A698 + East Asian ideograph + + + 23523B + 99A3 + E9A6A3 + East Asian ideograph + + + 23523C + 99A1 + E9A6A1 + East Asian ideograph + + + 23523E + 99A6 + E9A6A6 + East Asian ideograph + + + 235241 + 99A9 + E9A6A9 + East Asian ideograph + + + 235242 + 99AA + E9A6AA + East Asian ideograph + + + 235249 + 99B5 + E9A6B5 + East Asian ideograph + + + 23524D + 99BF + E9A6BF + East Asian ideograph + + + 23524E + 99BC + E9A6BC + East Asian ideograph + + + 23524F + 99C3 + E9A783 + East Asian ideograph + + + 235253 + 99B9 + E9A6B9 + East Asian ideograph + + + 235254 + 99BD + E9A6BD + East Asian ideograph + + + 235261 + 99D3 + E9A793 + East Asian ideograph + + + 235263 + 99D4 + E9A794 + East Asian ideograph + + + 235265 + 99C9 + E9A789 + East Asian ideograph + + + 235269 + 99D8 + E9A798 + East Asian ideograph + + + 235274 + 99EC + E9A7AC + East Asian ideograph + + + 23527A + 99F0 + E9A7B0 + East Asian ideograph + + + 23527B + 99E3 + E9A7A3 + East Asian ideograph + + + 23527C + 99EA + E9A7AA + East Asian ideograph + + + 235324 + 9A02 + E9A882 + East Asian ideograph + + + 235329 + 99F8 + E9A7B8 + East Asian ideograph + + + 23532A + 99F4 + E9A7B4 + East Asian ideograph + + + 235330 + 99FB + E9A7BB + East Asian ideograph + + + 235331 + 99FD + E9A7BD + East Asian ideograph + + + 23533D + 9A0F + E9A88F + East Asian ideograph + + + 23533E + 9A0B + E9A88B + East Asian ideograph + + + 23533F + 9A09 + E9A889 + East Asian ideograph + + + 235344 + 9A04 + E9A884 + East Asian ideograph + + + 235345 + 9A11 + E9A891 + East Asian ideograph + + + 235347 + 9A05 + E9A885 + East Asian ideograph + + + 235348 + 9A10 + E9A890 + East Asian ideograph + + + 23534C + 9A24 + E9A8A4 + East Asian ideograph + + + 23534D + 9A22 + E9A8A2 + East Asian ideograph + + + 23534F + 9A20 + E9A8A0 + East Asian ideograph + + + 235352 + 9A27 + E9A8A7 + East Asian ideograph + + + 235359 + 9A2F + E9A8AF + East Asian ideograph + + + 23535A + 9A38 + E9A8B8 + East Asian ideograph + + + 235360 + 9A2D + E9A8AD + East Asian ideograph + + + 235361 + 9A35 + E9A8B5 + East Asian ideograph + + + 235364 + 9A32 + E9A8B2 + East Asian ideograph + + + 235369 + 9A36 + E9A8B6 + East Asian ideograph + + + 23536A + 9A2E + E9A8AE + East Asian ideograph + + + 235370 + 9A41 + E9A981 + East Asian ideograph + + + 235374 + 9A3B + E9A8BB + East Asian ideograph + + + 235379 + 9A42 + E9A982 + East Asian ideograph + + + 23537A + 9A44 + E9A984 + East Asian ideograph + + + 23537D + 9A48 + E9A988 + East Asian ideograph + + + 23537E + 9A4C + E9A98C + East Asian ideograph + + + 235422 + 9A4D + E9A98D + East Asian ideograph + + + 235424 + 9A52 + E9A992 + East Asian ideograph + + + 235427 + 9A4A + E9A98A + East Asian ideograph + + + 23542A + 9A58 + E9A998 + East Asian ideograph + + + 23542C + 9A56 + E9A996 + East Asian ideograph + + + 235433 + 9A64 + E9A9A4 + East Asian ideograph + + + 235434 + 9A66 + E9A9A6 + East Asian ideograph + + + 23543A + 9A6B + E9A9AB + East Asian ideograph + + + 23543F + 9AAD + E9AAAD + East Asian ideograph + + + 235441 + 9AAB + E9AAAB + East Asian ideograph + + + 235443 + 9AB1 + E9AAB1 + East Asian ideograph + + + 235445 + 9AB3 + E9AAB3 + East Asian ideograph + + + 235449 + 9AB6 + E9AAB6 + East Asian ideograph + + + 23544C + 9ABB + E9AABB + East Asian ideograph + + + 235450 + 9ABA + E9AABA + East Asian ideograph + + + 235454 + 9ABD + E9AABD + East Asian ideograph + + + 235457 + 9AC1 + E9AB81 + East Asian ideograph + + + 235459 + 9AC0 + E9AB80 + East Asian ideograph + + + 23545A + 9AC2 + E9AB82 + East Asian ideograph + + + 23545D + 9AC8 + E9AB88 + East Asian ideograph + + + 235466 + 9AD0 + E9AB90 + East Asian ideograph + + + 23546A + 9AD1 + E9AB91 + East Asian ideograph + + + 23546D + 9AD6 + E9AB96 + East Asian ideograph + + + 235472 + 9ADC + E9AB9C + East Asian ideograph + + + 235474 + 9ADF + E9AB9F + East Asian ideograph + + + 235476 + 9AE0 + E9ABA0 + East Asian ideograph + + + 235477 + 9AE2 + E9ABA2 + East Asian ideograph + + + 235521 + 9AE7 + E9ABA7 + East Asian ideograph + + + 235527 + 9AEB + E9ABAB + East Asian ideograph + + + 235528 + 9AF2 + E9ABB2 + East Asian ideograph + + + 23552A + 9AEF + E9ABAF + East Asian ideograph + + + 235532 + 9AF9 + E9ABB9 + East Asian ideograph + + + 235535 + 9AFD + E9ABBD + East Asian ideograph + + + 235536 + 9B01 + E9AC81 + East Asian ideograph + + + 235538 + 9B02 + E9AC82 + East Asian ideograph + + + 23553B + 9B00 + E9AC80 + East Asian ideograph + + + 23553C + 9B08 + E9AC88 + East Asian ideograph + + + 23553E + 9B04 + E9AC84 + East Asian ideograph + + + 235541 + 9B05 + E9AC85 + East Asian ideograph + + + 235543 + 9B0B + E9AC8B + East Asian ideograph + + + 235547 + 9B0E + E9AC8E + East Asian ideograph + + + 23554E + 9B11 + E9AC91 + East Asian ideograph + + + 23554F + 9B10 + E9AC90 + East Asian ideograph + + + 235554 + 9B18 + E9AC98 + East Asian ideograph + + + 235556 + 9B1D + E9AC9D + East Asian ideograph + + + 23555E + 9B1F + E9AC9F + East Asian ideograph + + + 235566 + 9B23 + E9ACA3 + East Asian ideograph + + + 23556C + 9B29 + E9ACA9 + East Asian ideograph + + + 235573 + 9B2D + E9ACAD + East Asian ideograph + + + 235574 + 9B2E + E9ACAE + East Asian ideograph + + + 235576 + 9B2F + E9ACAF + East Asian ideograph + + + 23557D + 9B34 + E9ACB4 + East Asian ideograph + + + 235622 + 9B35 + E9ACB5 + East Asian ideograph + + + 235623 + 9B37 + E9ACB7 + East Asian ideograph + + + 235636 + 9B43 + E9AD83 + East Asian ideograph + + + 23563A + 9B48 + E9AD88 + East Asian ideograph + + + 23563C + 9B4E + E9AD8E + East Asian ideograph + + + 23563E + 9B4D + E9AD8D + East Asian ideograph + + + 235641 + 9B4B + E9AD8B + East Asian ideograph + + + 235647 + 9B51 + E9AD91 + East Asian ideograph + + + 23565D + 9B74 + E9ADB4 + East Asian ideograph + + + 235663 + 9B68 + E9ADA8 + East Asian ideograph + + + 235672 + 9B80 + E9AE80 + East Asian ideograph + + + 235673 + 9B8C + E9AE8C + East Asian ideograph + + + 23567A + 9B95 + E9AE95 + East Asian ideograph + + + 23567B + 9B7D + E9ADBD + East Asian ideograph + + + 235721 + 9B83 + E9AE83 + East Asian ideograph + + + 235729 + 9B8E + E9AE8E + East Asian ideograph + + + 23572B + 9B90 + E9AE90 + East Asian ideograph + + + 23572E + 9B93 + E9AE93 + East Asian ideograph + + + 23572F + 9B97 + E9AE97 + East Asian ideograph + + + 235731 + 9B92 + E9AE92 + East Asian ideograph + + + 235732 + 9B98 + E9AE98 + East Asian ideograph + + + 235736 + 9B9F + E9AE9F + East Asian ideograph + + + 235739 + 9B9D + E9AE9D + East Asian ideograph + + + 23573C + 9BAD + E9AEAD + East Asian ideograph + + + 23573D + 9B9A + E9AE9A + East Asian ideograph + + + 23573F + 9BA8 + E9AEA8 + East Asian ideograph + + + 235742 + 9B9E + E9AE9E + East Asian ideograph + + + 235743 + 9B99 + E9AE99 + East Asian ideograph + + + 235749 + 9B86 + E9AE86 + East Asian ideograph + + + 23574E + 9BA0 + E9AEA0 + East Asian ideograph + + + 235756 + 9BC7 + E9AF87 + East Asian ideograph + + + 235759 + 9BD2 + E9AF92 + East Asian ideograph + + + 23575D + 9BC6 + E9AF86 + East Asian ideograph + + + 23575E + 9BBF + E9AEBF + East Asian ideograph + + + 23575F + 9BC1 + E9AF81 + East Asian ideograph + + + 235766 + 9BB9 + E9AEB9 + East Asian ideograph + + + 23576B + 9BBB + E9AEBB + East Asian ideograph + + + 23576C + 9BD3 + E9AF93 + East Asian ideograph + + + 23576E + 9BC0 + E9AF80 + East Asian ideograph + + + 235772 + 9BC8 + E9AF88 + East Asian ideograph + + + 235777 + 9BD7 + E9AF97 + East Asian ideograph + + + 23577A + 9BD6 + E9AF96 + East Asian ideograph + + + 23577C + 9BEB + E9AFAB + East Asian ideograph + + + 235823 + 9BD5 + E9AF95 + East Asian ideograph + + + 235827 + 9BE4 + E9AFA4 + East Asian ideograph + + + 23582B + 9BF1 + E9AFB1 + East Asian ideograph + + + 23582C + 9BE1 + E9AFA1 + East Asian ideograph + + + 23582D + 9BDB + E9AF9B + East Asian ideograph + + + 23582F + 9BE2 + E9AFA2 + East Asian ideograph + + + 235831 + 9BF0 + E9AFB0 + East Asian ideograph + + + 235834 + 9BD4 + E9AF94 + East Asian ideograph + + + 23583E + 9BFF + E9AFBF + East Asian ideograph + + + 235843 + 9C06 + E9B086 + East Asian ideograph + + + 235844 + 9C15 + E9B095 + East Asian ideograph + + + 235849 + 9C0A + E9B08A + East Asian ideograph + + + 23584B + 9C08 + E9B088 + East Asian ideograph + + + 23584C + 9C14 + E9B094 + East Asian ideograph + + + 23584D + 9C04 + E9B084 + East Asian ideograph + + + 235852 + 9C02 + E9B082 + East Asian ideograph + + + 235854 + 9C10 + E9B090 + East Asian ideograph + + + 235859 + 9C12 + E9B092 + East Asian ideograph + + + 23585C + 9C09 + E9B089 + East Asian ideograph + + + 235866 + 9C1C + E9B09C + East Asian ideograph + + + 235869 + 9C2F + E9B0AF + East Asian ideograph + + + 23586E + 9C23 + E9B0A3 + East Asian ideograph + + + 235870 + 9C2E + E9B0AE + East Asian ideograph + + + 235871 + 9C28 + E9B0A8 + East Asian ideograph + + + 235878 + 9C21 + E9B0A1 + East Asian ideograph + + + 235879 + 9C24 + E9B0A4 + East Asian ideograph + + + 23587E + 9C46 + E9B186 + East Asian ideograph + + + 235925 + 9C32 + E9B0B2 + East Asian ideograph + + + 235926 + 9C44 + E9B184 + East Asian ideograph + + + 235928 + 9C48 + E9B188 + East Asian ideograph + + + 235929 + 9C39 + E9B0B9 + East Asian ideograph + + + 23592A + 9C33 + E9B0B3 + East Asian ideograph + + + 235930 + 9C47 + E9B187 + East Asian ideograph + + + 235932 + 9C35 + E9B0B5 + East Asian ideograph + + + 235934 + 9C37 + E9B0B7 + East Asian ideograph + + + 235938 + 9C52 + E9B192 + East Asian ideograph + + + 23593B + 9C58 + E9B198 + East Asian ideograph + + + 235945 + 9C51 + E9B191 + East Asian ideograph + + + 235949 + 9C63 + E9B1A3 + East Asian ideograph + + + 23594F + 9C67 + E9B1A7 + East Asian ideograph + + + 235955 + 9C5F + E9B19F + East Asian ideograph + + + 235956 + 9C60 + E9B1A0 + East Asian ideograph + + + 235958 + 9C6D + E9B1AD + East Asian ideograph + + + 23595B + 9C68 + E9B1A8 + East Asian ideograph + + + 23595C + 9C6F + E9B1AF + East Asian ideograph + + + 23595E + 9C6E + E9B1AE + East Asian ideograph + + + 23596B + 9C7A + E9B1BA + East Asian ideograph + + + 235973 + 9CE7 + E9B3A7 + East Asian ideograph + + + 235974 + 9CF0 + E9B3B0 + East Asian ideograph + + + 235977 + 9CF2 + E9B3B2 + East Asian ideograph + + + 235A21 + 9D02 + E9B482 + East Asian ideograph + + + 235A22 + 9D03 + E9B483 + East Asian ideograph + + + 235A23 + 9CF7 + E9B3B7 + East Asian ideograph + + + 235A24 + 9D04 + E9B484 + East Asian ideograph + + + 235A28 + 9D07 + E9B487 + East Asian ideograph + + + 235A2C + 9CF8 + E9B3B8 + East Asian ideograph + + + 235A2F + 9D2A + E9B4AA + East Asian ideograph + + + 235A30 + 9D25 + E9B4A5 + East Asian ideograph + + + 235A3F + 9D1E + E9B49E + East Asian ideograph + + + 235A44 + 9D1D + E9B49D + East Asian ideograph + + + 235A48 + 9D1F + E9B49F + East Asian ideograph + + + 235A4F + 9D41 + E9B581 + East Asian ideograph + + + 235A53 + 9D36 + E9B4B6 + East Asian ideograph + + + 235A63 + 9D3E + E9B4BE + East Asian ideograph + + + 235A65 + 9D30 + E9B4B0 + East Asian ideograph + + + 235A68 + 9D42 + E9B582 + East Asian ideograph + + + 235A69 + 9D40 + E9B580 + East Asian ideograph + + + 235A6B + 9D3D + E9B4BD + East Asian ideograph + + + 235A70 + 9D5C + E9B59C + East Asian ideograph + + + 235A75 + 9D53 + E9B593 + East Asian ideograph + + + 235A7B + 9D59 + E9B599 + East Asian ideograph + + + 235B26 + 9D5A + E9B59A + East Asian ideograph + + + 235B2A + 9D52 + E9B592 + East Asian ideograph + + + 235B2C + 9D77 + E9B5B7 + East Asian ideograph + + + 235B2E + 9D8A + E9B68A + East Asian ideograph + + + 235B2F + 9D7A + E9B5BA + East Asian ideograph + + + 235B35 + 9D87 + E9B687 + East Asian ideograph + + + 235B3F + 9D78 + E9B5B8 + East Asian ideograph + + + 235B42 + 9D7E + E9B5BE + East Asian ideograph + + + 235B47 + 9D69 + E9B5A9 + East Asian ideograph + + + 235B4D + 9D7B + E9B5BB + East Asian ideograph + + + 235B4F + 9D83 + E9B683 + East Asian ideograph + + + 235B52 + 9D6F + E9B5AF + East Asian ideograph + + + 235B59 + 9DA9 + E9B6A9 + East Asian ideograph + + + 235B5E + 9D92 + E9B692 + East Asian ideograph + + + 235B60 + 9D98 + E9B698 + East Asian ideograph + + + 235B66 + 9DA4 + E9B6A4 + East Asian ideograph + + + 235B67 + 9DAA + E9B6AA + East Asian ideograph + + + 235B6A + 9DA1 + E9B6A1 + East Asian ideograph + + + 235B6B + 9D9A + E9B69A + East Asian ideograph + + + 235B70 + 9D96 + E9B696 + East Asian ideograph + + + 235B74 + 9DB1 + E9B6B1 + East Asian ideograph + + + 235B76 + 9DB6 + E9B6B6 + East Asian ideograph + + + 235B77 + 9DBC + E9B6BC + East Asian ideograph + + + 235B79 + 9DC0 + E9B780 + East Asian ideograph + + + 235B7A + 9DC1 + E9B781 + East Asian ideograph + + + 235B7B + 9DB8 + E9B6B8 + East Asian ideograph + + + 235B7C + 9DBA + E9B6BA + East Asian ideograph + + + 235B7E + 9DCF + E9B78F + East Asian ideograph + + + 235C22 + 9DC7 + E9B787 + East Asian ideograph + + + 235C27 + 9DC3 + E9B783 + East Asian ideograph + + + 235C28 + 9DBB + E9B6BB + East Asian ideograph + + + 235C32 + 9DB9 + E9B6B9 + East Asian ideograph + + + 235C34 + 9DAC + E9B6AC + East Asian ideograph + + + 235C36 + 9DB2 + E9B6B2 + East Asian ideograph + + + 235C3A + 9DDF + E9B79F + East Asian ideograph + + + 235C3E + 9DD9 + E9B799 + East Asian ideograph + + + 235C45 + 9DD6 + E9B796 + East Asian ideograph + + + 235C46 + 9DDE + E9B79E + East Asian ideograph + + + 235C4F + 9DE9 + E9B7A9 + East Asian ideograph + + + 235C57 + 9DF2 + E9B7B2 + East Asian ideograph + + + 235C5B + 9DF8 + E9B7B8 + East Asian ideograph + + + 235C5C + 9DFC + E9B7BC + East Asian ideograph + + + 235C5F + 9DEB + E9B7AB + East Asian ideograph + + + 235C65 + 9DEF + E9B7AF + East Asian ideograph + + + 235C6A + 9DED + E9B7AD + East Asian ideograph + + + 235C6C + 9DE6 + E9B7A6 + East Asian ideograph + + + 235C6D + 9DEE + E9B7AE + East Asian ideograph + + + 235C71 + 9E07 + E9B887 + East Asian ideograph + + + 235C7E + 9DFD + E9B7BD + East Asian ideograph + + + 235D27 + 9E0E + E9B88E + East Asian ideograph + + + 235D2B + 9E11 + E9B891 + East Asian ideograph + + + 235D36 + 9E15 + E9B895 + East Asian ideograph + + + 235D37 + 9E18 + E9B898 + East Asian ideograph + + + 235D39 + 9E1C + E9B89C + East Asian ideograph + + + 235D3A + 9E1B + E9B89B + East Asian ideograph + + + 235D3B + 9E1D + E9B89D + East Asian ideograph + + + 235D3C + 9E75 + E9B9B5 + East Asian ideograph + + + 235D42 + 9E7A + E9B9BA + East Asian ideograph + + + 235D43 + 9E7B + E9B9BB + East Asian ideograph + + + 235D47 + 9E80 + E9BA80 + East Asian ideograph + + + 235D48 + 9E83 + E9BA83 + East Asian ideograph + + + 235D49 + 9E84 + E9BA84 + East Asian ideograph + + + 235D4B + 9E88 + E9BA88 + East Asian ideograph + + + 235D4F + 9E87 + E9BA87 + East Asian ideograph + + + 235D55 + 9E90 + E9BA90 + East Asian ideograph + + + 235D58 + 9E8C + E9BA8C + East Asian ideograph + + + 235D5A + 9E95 + E9BA95 + East Asian ideograph + + + 235D5C + 9E91 + E9BA91 + East Asian ideograph + + + 235D5D + 9E9B + E9BA9B + East Asian ideograph + + + 235D66 + 9E9E + E9BA9E + East Asian ideograph + + + 235D77 + 9EAD + E9BAAD + East Asian ideograph + + + 235D79 + 9EAF + E9BAAF + East Asian ideograph + + + 235D7A + 9EB0 + E9BAB0 + East Asian ideograph + + + 235E30 + 9EC1 + E9BB81 + East Asian ideograph + + + 235E35 + 9EC6 + E9BB86 + East Asian ideograph + + + 235E37 + 9EC8 + E9BB88 + East Asian ideograph + + + 235E42 + 9ECC + E9BB8C + East Asian ideograph + + + 235E4A + 9ED0 + E9BB90 + East Asian ideograph + + + 235E4C + 9ED3 + E9BB93 + East Asian ideograph + + + 235E53 + 9EDA + E9BB9A + East Asian ideograph + + + 235E55 + 9EDF + E9BB9F + East Asian ideograph + + + 235E57 + 9EE3 + E9BBA3 + East Asian ideograph + + + 235E59 + 9EE5 + E9BBA5 + East Asian ideograph + + + 235E5C + 9EE7 + E9BBA7 + East Asian ideograph + + + 235E60 + 9EEE + E9BBAE + East Asian ideograph + + + 235E66 + 9EF0 + E9BBB0 + East Asian ideograph + + + 235E6F + 9EF6 + E9BBB6 + East Asian ideograph + + + 235E74 + 9EF9 + E9BBB9 + East Asian ideograph + + + 235E76 + 9EFB + E9BBBB + East Asian ideograph + + + 235E77 + 9EFC + E9BBBC + East Asian ideograph + + + 235E7A + 9EFD + E9BBBD + East Asian ideograph + + + 235E7B + 9EFE + E9BBBE + East Asian ideograph + + + 235E7C + 9EFF + E9BBBF + East Asian ideograph + + + 235E7D + 9F02 + E9BC82 + East Asian ideograph + + + 235F2F + 9F0F + E9BC8F + East Asian ideograph + + + 235F31 + 9F10 + E9BC90 + East Asian ideograph + + + 235F32 + 9F12 + E9BC92 + East Asian ideograph + + + 235F33 + 9F16 + E9BC96 + East Asian ideograph + + + 235F34 + 9F17 + E9BC97 + East Asian ideograph + + + 235F37 + 9F1A + E9BC9A + East Asian ideograph + + + 235F45 + 9F22 + E9BCA2 + East Asian ideograph + + + 235F48 + 9F2B + E9BCAB + East Asian ideograph + + + 235F49 + 9F26 + E9BCA6 + East Asian ideograph + + + 235F53 + 9F2F + E9BCAF + East Asian ideograph + + + 235F5E + 9F39 + E9BCB9 + East Asian ideograph + + + 235F5F + 9F37 + E9BCB7 + East Asian ideograph + + + 235F64 + 9F3D + E9BCBD + East Asian ideograph + + + 235F69 + 9F41 + E9BD81 + East Asian ideograph + + + 235F6D + 9F45 + E9BD85 + East Asian ideograph + + + 235F6F + 9F46 + E9BD86 + East Asian ideograph + + + 235F71 + 9F48 + E9BD88 + East Asian ideograph + + + 235F73 + 9F49 + E9BD89 + East Asian ideograph + + + 235F79 + 9F4E + E9BD8E + East Asian ideograph + + + 235F7B + 9F4F + E9BD8F + East Asian ideograph + + + 235F7C + 9F54 + E9BD94 + East Asian ideograph + + + 235F7E + 9F55 + E9BD95 + East Asian ideograph + + + 236023 + 9F57 + E9BD97 + East Asian ideograph + + + 236028 + 9F60 + E9BDA0 + East Asian ideograph + + + 23603F + 9F6E + E9BDAE + East Asian ideograph + + + 236040 + 9F6F + E9BDAF + East Asian ideograph + + + 236047 + 9F76 + E9BDB6 + East Asian ideograph + + + 23605B + 9F8E + E9BE8E + East Asian ideograph + + + 236061 + 9F93 + E9BE93 + East Asian ideograph + + + 236062 + 9F95 + E9BE95 + East Asian ideograph + + + 23606B + 9FA0 + E9BEA0 + East Asian ideograph + + + 236071 + 9FA5 + E9BEA5 + East Asian ideograph + + + 236072 + 9FA4 + E9BEA4 + East Asian ideograph + + + 273032 + 5E76 + E5B9B6 + East Asian ideograph + + + 27304C + 5E72 + E5B9B2 + East Asian ideograph + + + 27304D + 4E71 + E4B9B1 + East Asian ideograph + + + 273058 + 4E9A + E4BA9A + East Asian ideograph + + + 273138 + 5E03 + E5B883 + East Asian ideograph + + + 27313C + 5360 + E58DA0 + East Asian ideograph + + + 27314C + 6765 + E69DA5 + East Asian ideograph + + + 27314F + 4ED1 + E4BB91 + East Asian ideograph + + + 27315D + 4FA0 + E4BEA0 + East Asian ideograph + + + 273169 + 7CFB + E7B3BB + East Asian ideograph (duplicate simplified) + + + 27316C + 4ED3 + E4BB93 + East Asian ideograph + + + 273173 + 4EEC + E4BBAC + East Asian ideograph + + + 273179 + 4FE9 + E4BFA9 + East Asian ideograph + + + 273224 + 4E2A + E4B8AA + East Asian ideograph + + + 273226 + 4F25 + E4BCA5 + East Asian ideograph + + + 27322D + 4F26 + E4BCA6 + East Asian ideograph + + + 27322E + 4EC3 + E4BB83 + East Asian ideograph (duplicate simplified) + + + 273233 + 4F1F + E4BC9F + East Asian ideograph + + + 273235 + 4FA7 + E4BEA7 + East Asian ideograph + + + 273238 + 4FA6 + E4BEA6 + East Asian ideograph + + + 27323E + 5BB6 + E5AEB6 + East Asian ideograph + + + 273240 + 5907 + E5A487 + East Asian ideograph + + + 273241 + 6770 + E69DB0 + East Asian ideograph + + + 273243 + 4F27 + E4BCA7 + East Asian ideograph + + + 273244 + 4F1E + E4BC9E + East Asian ideograph + + + 273246 + 4F20 + E4BCA0 + East Asian ideograph + + + 273247 + 503A + E580BA + East Asian ideograph + + + 273249 + 4EC5 + E4BB85 + East Asian ideograph + + + 27324A + 503E + E580BE + East Asian ideograph + + + 27324C + 4F24 + E4BCA4 + East Asian ideograph + + + 273251 + 4FA5 + E4BEA5 + East Asian ideograph + + + 273255 + 4EC6 + E4BB86 + East Asian ideograph + + + 273256 + 4F2A + E4BCAA + East Asian ideograph + + + 273257 + 8C61 + E8B1A1 + East Asian ideograph + + + 273258 + 4FA8 + E4BEA8 + East Asian ideograph + + + 273259 + 4EEA + E4BBAA + East Asian ideograph + + + 27325A + 4EBF + E4BABF + East Asian ideograph + + + 27325D + 4EF7 + E4BBB7 + East Asian ideograph + + + 27325E + 4FAC + E4BEAC + East Asian ideograph + + + 273260 + 4FA9 + E4BEA9 + East Asian ideograph + + + 273261 + 4FED + E4BFAD + East Asian ideograph + + + 273262 + 50A7 + E582A7 + East Asian ideograph + + + 273263 + 5C3D + E5B0BD + East Asian ideograph (duplicate simplified) + + + 273265 + 4FE6 + E4BFA6 + East Asian ideograph + + + 273266 + 4F18 + E4BC98 + East Asian ideograph + + + 273267 + 507F + E581BF + East Asian ideograph + + + 273269 + 50A8 + E582A8 + East Asian ideograph + + + 27326A + 4FEA + E4BFAA + East Asian ideograph + + + 27326B + 4FE8 + E4BFA8 + East Asian ideograph + + + 273273 + 51F6 + E587B6 + East Asian ideograph + + + 27327A + 513F + E584BF + East Asian ideograph + + + 27327B + 5156 + E58596 + East Asian ideograph + + + 273323 + 4E24 + E4B8A4 + East Asian ideograph + + + 273340 + 51BB + E586BB + East Asian ideograph + + + 273348 + 51EF + E587AF + East Asian ideograph + + + 27336B + 514B + E5858B + East Asian ideograph + + + 27336D + 5219 + E58899 + East Asian ideograph + + + 273370 + 521A + E5889A + East Asian ideograph + + + 273376 + 5240 + E58980 + East Asian ideograph + + + 273378 + 521B + E5889B + East Asian ideograph + + + 27337C + 5212 + E58892 + East Asian ideograph + + + 27337E + 5267 + E589A7 + East Asian ideograph + + + 273421 + 5251 + E58991 + East Asian ideograph + + + 273422 + 5218 + E58898 + East Asian ideograph + + + 273423 + 5242 + E58982 + East Asian ideograph + + + 27342F + 52B2 + E58AB2 + East Asian ideograph + + + 273433 + 52A1 + E58AA1 + East Asian ideograph + + + 273434 + 52A8 + E58AA8 + East Asian ideograph + + + 273435 + 52B3 + E58AB3 + East Asian ideograph + + + 273436 + 52CB + E58B8B + East Asian ideograph + + + 273437 + 80DC + E8839C + East Asian ideograph + + + 273438 + 52BF + E58ABF + East Asian ideograph + + + 27343C + 52B1 + E58AB1 + East Asian ideograph + + + 27343D + 529D + E58A9D + East Asian ideograph + + + 273451 + 6C47 + E6B187 + East Asian ideograph + + + 273452 + 532E + E58CAE + East Asian ideograph + + + 273455 + 533A + E58CBA + East Asian ideograph + + + 27345F + 5346 + E58D86 + East Asian ideograph + + + 273460 + 534F + E58D8F + East Asian ideograph + + + 27347A + 538C + E58E8C + East Asian ideograph + + + 27347B + 5389 + E58E89 + East Asian ideograph + + + 27347D + 53C2 + E58F82 + East Asian ideograph + + + 27352B + 4E1B + E4B89B + East Asian ideograph + + + 27363E + 5458 + E59198 + East Asian ideograph + + + 273648 + 95EE + E997AE + East Asian ideograph + + + 273649 + 54D1 + E59391 + East Asian ideograph + + + 273663 + 4E27 + E4B8A7 + East Asian ideograph + + + 273668 + 5355 + E58D95 + East Asian ideograph + + + 27366D + 5524 + E594A4 + East Asian ideograph + + + 27366F + 4E54 + E4B994 + East Asian ideograph + + + 273671 + 54DF + E5939F + East Asian ideograph + + + 273678 + 556C + E595AC + East Asian ideograph + + + 27367A + 5417 + E59097 + East Asian ideograph + + + 273721 + 545C + E5919C + East Asian ideograph + + + 273722 + 545B + E5919B + East Asian ideograph + + + 273727 + 5567 + E595A7 + East Asian ideograph + + + 27372C + 53F9 + E58FB9 + East Asian ideograph + + + 27372E + 5455 + E59195 + East Asian ideograph + + + 273730 + 5C1D + E5B09D + East Asian ideograph + + + 273731 + 55BD + E596BD + East Asian ideograph + + + 273732 + 5520 + E594A0 + East Asian ideograph + + + 273733 + 5578 + E595B8 + East Asian ideograph + + + 27373D + 5480 + E59280 + East Asian ideograph + + + 273740 + 53FD + E58FBD + East Asian ideograph + + + 273744 + 5428 + E590A8 + East Asian ideograph + + + 273745 + 55B7 + E596B7 + East Asian ideograph + + + 273746 + 5F53 + E5BD93 + East Asian ideograph (duplicate simplified) + + + 273747 + 54DD + E5939D + East Asian ideograph + + + 27374B + 55F3 + E597B3 + East Asian ideograph + + + 27374E + 549B + E5929B + East Asian ideograph + + + 273751 + 5413 + E59093 + East Asian ideograph + + + 273754 + 565C + E5999C + East Asian ideograph + + + 273755 + 5411 + E59091 + East Asian ideograph + + + 273756 + 5499 + E59299 + East Asian ideograph + + + 27375A + 4E25 + E4B8A5 + East Asian ideograph + + + 27375B + 5624 + E598A4 + East Asian ideograph + + + 27375C + 556D + E595AD + East Asian ideograph + + + 27375D + 55EB + E597AB + East Asian ideograph + + + 27375E + 56A3 + E59AA3 + East Asian ideograph + + + 273761 + 7F57 + E7BD97 + East Asian ideograph (duplicate simplified) + + + 273762 + 5453 + E59193 + East Asian ideograph + + + 273764 + 5631 + E598B1 + East Asian ideograph + + + 27376F + 56EF + E59BAF + East Asian ideograph + + + 273770 + 56F4 + E59BB4 + East Asian ideograph + + + 273771 + 56ED + E59BAD + East Asian ideograph + + + 273772 + 5706 + E59C86 + East Asian ideograph + + + 273773 + 56E2 + E59BA2 + East Asian ideograph + + + 273774 + 56FE + E59BBE + East Asian ideograph + + + 27383B + 6267 + E689A7 + East Asian ideograph + + + 27383E + 57A9 + E59EA9 + East Asian ideograph + + + 273844 + 62A5 + E68AA5 + East Asian ideograph + + + 273845 + 5C27 + E5B0A7 + East Asian ideograph + + + 27384A + 573A + E59CBA + East Asian ideograph + + + 27384D + 6D82 + E6B682 + East Asian ideograph + + + 273855 + 575E + E59D9E + East Asian ideograph + + + 273856 + 5757 + E59D97 + East Asian ideograph + + + 273859 + 5C18 + E5B098 + East Asian ideograph + + + 27385A + 57AB + E59EAB + East Asian ideograph + + + 27385B + 5811 + E5A091 + East Asian ideograph + + + 273860 + 575F + E59D9F + East Asian ideograph + + + 273861 + 5760 + E59DA0 + East Asian ideograph + + + 273862 + 5815 + E5A095 + East Asian ideograph + + + 273864 + 575B + E59D9B + East Asian ideograph + + + 273867 + 57A6 + E59EA6 + East Asian ideograph + + + 273869 + 538B + E58E8B + East Asian ideograph + + + 27386B + 5739 + E59CB9 + East Asian ideograph + + + 27386C + 5792 + E59E92 + East Asian ideograph + + + 27386D + 5784 + E59E84 + East Asian ideograph + + + 27386E + 574F + E59D8F + East Asian ideograph + + + 27386F + 575C + E59D9C + East Asian ideograph + + + 273871 + 575D + E59D9D + East Asian ideograph + + + 273874 + 58EE + E5A3AE + East Asian ideograph + + + 273876 + 58F6 + E5A3B6 + East Asian ideograph + + + 273877 + 5BFF + E5AFBF + East Asian ideograph + + + 273923 + 4F19 + E4BC99 + East Asian ideograph + + + 273924 + 68A6 + E6A2A6 + East Asian ideograph + + + 27392E + 5939 + E5A4B9 + East Asian ideograph + + + 27393F + 5941 + E5A581 + East Asian ideograph + + + 273940 + 593A + E5A4BA + East Asian ideograph + + + 273941 + 594B + E5A58B + East Asian ideograph + + + 273953 + 5986 + E5A686 + East Asian ideograph + + + 273A27 + 5987 + E5A687 + East Asian ideograph + + + 273A28 + 5A04 + E5A884 + East Asian ideograph + + + 273A36 + 5988 + E5A688 + East Asian ideograph + + + 273A3B + 59AA + E5A6AA + East Asian ideograph + + + 273A41 + 5A34 + E5A8B4 + East Asian ideograph + + + 273A43 + 5A75 + E5A9B5 + East Asian ideograph + + + 273A44 + 5A07 + E5A887 + East Asian ideograph + + + 273A45 + 59A9 + E5A6A9 + East Asian ideograph + + + 273A48 + 5AD4 + E5AB94 + East Asian ideograph + + + 273A4A + 5A74 + E5A9B4 + East Asian ideograph + + + 273A4B + 5A76 + E5A9B6 + East Asian ideograph + + + 273A5B + 5B59 + E5AD99 + East Asian ideograph + + + 273A5F + 5B5A + E5AD9A + East Asian ideograph + + + 273A60 + 5B66 + E5ADA6 + East Asian ideograph + + + 273A63 + 5B6A + E5ADAA + East Asian ideograph + + + 273B2E + 5BDD + E5AF9D + East Asian ideograph + + + 273B31 + 5B9E + E5AE9E + East Asian ideograph + + + 273B32 + 5B81 + E5AE81 + East Asian ideograph + + + 273B35 + 5BBD + E5AEBD + East Asian ideograph + + + 273B36 + 5BA1 + E5AEA1 + East Asian ideograph + + + 273B37 + 5199 + E58699 + East Asian ideograph + + + 273B38 + 5BA0 + E5AEA0 + East Asian ideograph + + + 273B39 + 5B9D + E5AE9D + East Asian ideograph + + + 273B3F + 4E13 + E4B893 + East Asian ideograph + + + 273B40 + 5C06 + E5B086 + East Asian ideograph + + + 273B42 + 5BFB + E5AFBB + East Asian ideograph + + + 273B43 + 5BF9 + E5AFB9 + East Asian ideograph + + + 273B44 + 5BFC + E5AFBC + East Asian ideograph + + + 273B4C + 5C34 + E5B0B4 + East Asian ideograph + + + 273B60 + 5C61 + E5B1A1 + East Asian ideograph + + + 273B61 + 5C42 + E5B182 + East Asian ideograph + + + 273B63 + 5C5E + E5B19E + East Asian ideograph + + + 273B6E + 5188 + E58688 + East Asian ideograph + + + 273B74 + 5CE1 + E5B3A1 + East Asian ideograph + + + 273B79 + 5C9B + E5B29B + East Asian ideograph + + + 273C28 + 5C9A + E5B29A + East Asian ideograph + + + 273C2A + 5D2D + E5B4AD + East Asian ideograph + + + 273C2B + 5C96 + E5B296 + East Asian ideograph + + + 273C2D + 5C7F + E5B1BF + East Asian ideograph + + + 273C2E + 5CB3 + E5B2B3 + East Asian ideograph + + + 273C31 + 5CE6 + E5B3A6 + East Asian ideograph + + + 273C32 + 5DC5 + E5B785 + East Asian ideograph + + + 273C33 + 5CA9 + E5B2A9 + East Asian ideograph + + + 273C4F + 5E05 + E5B885 + East Asian ideograph + + + 273C51 + 5E08 + E5B888 + East Asian ideograph + + + 273C52 + 5E10 + E5B890 + East Asian ideograph + + + 273C53 + 5E26 + E5B8A6 + East Asian ideograph + + + 273C58 + 5E27 + E5B8A7 + East Asian ideograph + + + 273C5C + 5E3C + E5B8BC + East Asian ideograph + + + 273C5E + 5E01 + E5B881 + East Asian ideograph + + + 273C60 + 5E1C + E5B89C + East Asian ideograph + + + 273C61 + 5E2E + E5B8AE + East Asian ideograph + + + 273C67 + 5E72 + E5B9B2 + East Asian ideograph (Version J extension) + + + 273C6B + 51E0 + E587A0 + East Asian ideograph + + + 273C76 + 5E93 + E5BA93 + East Asian ideograph + + + 273C77 + 5750 + E59D90 + East Asian ideograph + + + 273C7E + 5395 + E58E95 + East Asian ideograph + + + 273D27 + 5E9F + E5BA9F + East Asian ideograph + + + 273D2A + 5E7F + E5B9BF + East Asian ideograph + + + 273D2B + 5E99 + E5BA99 + East Asian ideograph + + + 273D2C + 5382 + E58E82 + East Asian ideograph + + + 273D2D + 5E9E + E5BA9E + East Asian ideograph + + + 273D2E + 5E90 + E5BA90 + East Asian ideograph + + + 273D2F + 5385 + E58E85 + East Asian ideograph + + + 273D47 + 5F20 + E5BCA0 + East Asian ideograph + + + 273D4B + 5F39 + E5BCB9 + East Asian ideograph + + + 273D4C + 5F25 + E5BCA5 + East Asian ideograph + + + 273D4D + 5F2F + E5BCAF + East Asian ideograph + + + 273D4F + 6C47 + E6B187 + East Asian ideograph (duplicate simplified) + + + 273D65 + 540E + E5908E + East Asian ideograph + + + 273D67 + 5F84 + E5BE84 + East Asian ideograph + + + 273D6C + 4ECE + E4BB8E + East Asian ideograph + + + 273D6F + 590D + E5A48D + East Asian ideograph + + + 273D74 + 5F7B + E5BDBB + East Asian ideograph + + + 273D76 + 5F81 + E5BE81 + East Asian ideograph + + + 273E57 + 5FF0 + E5BFB0 + East Asian ideograph + + + 273E5C + 95F7 + E997B7 + East Asian ideograph + + + 273E5E + 6005 + E68085 + East Asian ideograph + + + 273E61 + 6076 + E681B6 + East Asian ideograph + + + 273E6C + 60EC + E683AC + East Asian ideograph + + + 273E70 + 607B + E681BB + East Asian ideograph + + + 273E77 + 7231 + E788B1 + East Asian ideograph + + + 273E7E + 607C + E681BC + East Asian ideograph + + + 273F28 + 6001 + E68081 + East Asian ideograph + + + 273F29 + 5FFE + E5BFBE + East Asian ideograph + + + 273F2B + 6006 + E68086 + East Asian ideograph + + + 273F2E + 5E86 + E5BA86 + East Asian ideograph + + + 273F31 + 60ED + E683AD + East Asian ideograph + + + 273F33 + 5FE7 + E5BFA7 + East Asian ideograph + + + 273F36 + 8651 + E89991 + East Asian ideograph + + + 273F38 + 60E8 + E683A8 + East Asian ideograph + + + 273F39 + 60EF + E683AF + East Asian ideograph + + + 273F3A + 6078 + E681B8 + East Asian ideograph + + + 273F3B + 6002 + E68082 + East Asian ideograph + + + 273F3C + 6B32 + E6ACB2 + East Asian ideograph + + + 273F3E + 5BAA + E5AEAA + East Asian ideograph + + + 273F3F + 51ED + E587AD + East Asian ideograph + + + 273F41 + 60AF + E682AF + East Asian ideograph + + + 273F42 + 6124 + E684A4 + East Asian ideograph + + + 273F44 + 60EE + E683AE + East Asian ideograph + + + 273F45 + 6187 + E68687 + East Asian ideograph + + + 273F47 + 60EB + E683AB + East Asian ideograph + + + 273F48 + 5FC6 + E5BF86 + East Asian ideograph + + + 273F4A + 5E94 + E5BA94 + East Asian ideograph + + + 273F4B + 601C + E6809C + East Asian ideograph + + + 273F4E + 6073 + E681B3 + East Asian ideograph + + + 273F54 + 6000 + E68080 + East Asian ideograph + + + 273F55 + 61D2 + E68792 + East Asian ideograph + + + 273F56 + 60AC + E682AC + East Asian ideograph + + + 273F58 + 5FCF + E5BF8F + East Asian ideograph + + + 273F59 + 6151 + E68591 + East Asian ideograph + + + 273F5B + 60E7 + E683A7 + East Asian ideograph + + + 273F5C + 604B + E6818B + East Asian ideograph + + + 273F6E + 6218 + E68898 + East Asian ideograph + + + 273F6F + 620F + E6888F + East Asian ideograph + + + 27406C + 631F + E68C9F + East Asian ideograph + + + 27407B + 5377 + E58DB7 + East Asian ideograph + + + 27407D + 626B + E689AB + East Asian ideograph + + + 27407E + 626A + E689AA + East Asian ideograph + + + 274123 + 6302 + E68C82 + East Asian ideograph + + + 274136 + 62A1 + E68AA1 + East Asian ideograph + + + 27413C + 62E3 + E68BA3 + East Asian ideograph + + + 27413F + 626C + E689AC + East Asian ideograph + + + 274142 + 6325 + E68CA5 + East Asian ideograph + + + 27414F + 635F + E68D9F + East Asian ideograph + + + 274153 + 6363 + E68DA3 + East Asian ideograph + + + 274155 + 62A2 + E68AA2 + East Asian ideograph + + + 27415A + 5C4F + E5B18F + East Asian ideograph + + + 27415B + 631A + E68C9A + East Asian ideograph + + + 27415F + 6402 + E69082 + East Asian ideograph + + + 274160 + 63B4 + E68EB4 + East Asian ideograph + + + 274165 + 635E + E68D9E + East Asian ideograph + + + 274166 + 62E8 + E68BA8 + East Asian ideograph + + + 274168 + 6320 + E68CA0 + East Asian ideograph + + + 27416E + 6251 + E68991 + East Asian ideograph + + + 274171 + 629A + E68A9A + East Asian ideograph + + + 274174 + 62E5 + E68BA5 + East Asian ideograph + + + 274176 + 51FB + E587BB + East Asian ideograph + + + 274177 + 631E + E68C9E + East Asian ideograph + + + 27417A + 6321 + E68CA1 + East Asian ideograph + + + 27417C + 636E + E68DAE + East Asian ideograph + + + 27417D + 63B3 + E68EB3 + East Asian ideograph + + + 27417E + 62E9 + E68BA9 + East Asian ideograph + + + 274222 + 62C5 + E68B85 + East Asian ideograph + + + 274224 + 6361 + E68DA1 + East Asian ideograph + + + 274225 + 6324 + E68CA4 + East Asian ideograph + + + 274226 + 62E7 + E68BA7 + East Asian ideograph + + + 274228 + 62DF + E68B9F + East Asian ideograph + + + 274229 + 6401 + E69081 + East Asian ideograph + + + 27422A + 6269 + E689A9 + East Asian ideograph + + + 27422B + 63B7 + E68EB7 + East Asian ideograph + + + 27422C + 64B5 + E692B5 + East Asian ideograph + + + 27422E + 6270 + E689B0 + East Asian ideograph + + + 27422F + 64DE + E6939E + East Asian ideograph + + + 274230 + 6446 + E69186 + East Asian ideograph + + + 274231 + 62E2 + E68BA2 + East Asian ideograph + + + 274233 + 62E6 + E68BA6 + East Asian ideograph + + + 274234 + 6400 + E69080 + East Asian ideograph + + + 274235 + 6444 + E69184 + East Asian ideograph + + + 274237 + 631B + E68C9B + East Asian ideograph + + + 274238 + 644A + E6918A + East Asian ideograph + + + 27423A + 6405 + E69085 + East Asian ideograph + + + 27423B + 63FD + E68FBD + East Asian ideograph + + + 274247 + 8D25 + E8B4A5 + East Asian ideograph + + + 27424F + 542F + E590AF + East Asian ideograph + + + 274252 + 654C + E6958C + East Asian ideograph + + + 274254 + 6570 + E695B0 + East Asian ideograph + + + 274256 + 655B + E6959B + East Asian ideograph + + + 274257 + 6BD9 + E6AF99 + East Asian ideograph + + + 274263 + 65A9 + E696A9 + East Asian ideograph + + + 274266 + 65AD + E696AD + East Asian ideograph + + + 27432D + 65F6 + E697B6 + East Asian ideograph + + + 274332 + 663C + E698BC + East Asian ideograph + + + 274340 + 6656 + E69996 + East Asian ideograph + + + 274341 + 6655 + E69995 + East Asian ideograph + + + 274343 + 7545 + E79585 + East Asian ideograph + + + 274344 + 6682 + E69A82 + East Asian ideograph + + + 274348 + 6653 + E69993 + East Asian ideograph + + + 274349 + 5386 + E58E86 + East Asian ideograph (duplicate simplified) + + + 27434B + 66A7 + E69AA7 + East Asian ideograph + + + 27434D + 65F7 + E697B7 + East Asian ideograph + + + 274355 + 4E66 + E4B9A6 + East Asian ideograph + + + 27435A + 4F1A + E4BC9A + East Asian ideograph + + + 274366 + 80E7 + E883A7 + East Asian ideograph + + + 274426 + 4E1C + E4B89C + East Asian ideograph + + + 274463 + 6761 + E69DA1 + East Asian ideograph + + + 274468 + 67AD + E69EAD + East Asian ideograph + + + 274469 + 6800 + E6A080 + East Asian ideograph + + + 27446D + 5F03 + E5BC83 + East Asian ideograph + + + 27446E + 6816 + E6A096 + East Asian ideograph + + + 274471 + 680B + E6A08B + East Asian ideograph + + + 274476 + 6808 + E6A088 + East Asian ideograph + + + 27447A + 67A3 + E69EA3 + East Asian ideograph + + + 27447C + 832D + E88CAD + East Asian ideograph + + + 274526 + 6781 + E69E81 + East Asian ideograph + + + 27452A + 6768 + E69DA8 + East Asian ideograph + + + 27452B + 6862 + E6A1A2 + East Asian ideograph + + + 27452D + 4E1A + E4B89A + East Asian ideograph + + + 27452F + 67AB + E69EAB + East Asian ideograph + + + 274537 + 8363 + E88DA3 + East Asian ideograph + + + 274539 + 6784 + E69E84 + East Asian ideograph + + + 274540 + 67AA + E69EAA + East Asian ideograph + + + 274544 + 6837 + E6A0B7 + East Asian ideograph + + + 274546 + 6869 + E6A1A9 + East Asian ideograph + + + 274547 + 6807 + E6A087 + East Asian ideograph + + + 274549 + 67A2 + E69EA2 + East Asian ideograph + + + 27454A + 697C + E6A5BC + East Asian ideograph + + + 27454C + 6868 + E6A1A8 + East Asian ideograph + + + 27454E + 4E50 + E4B990 + East Asian ideograph + + + 27454F + 679E + E69E9E + East Asian ideograph + + + 274553 + 692D + E6A4AD + East Asian ideograph + + + 274555 + 6811 + E6A091 + East Asian ideograph + + + 274557 + 6866 + E6A1A6 + East Asian ideograph + + + 274558 + 6734 + E69CB4 + East Asian ideograph + + + 27455B + 6865 + E6A1A5 + East Asian ideograph + + + 27455D + 673A + E69CBA + East Asian ideograph + + + 27455F + 6863 + E6A1A3 + East Asian ideograph + + + 274561 + 68C0 + E6A380 + East Asian ideograph + + + 274562 + 6867 + E6A1A7 + East Asian ideograph + + + 274563 + 67E0 + E69FA0 + East Asian ideograph + + + 274564 + 69DF + E6A79F + East Asian ideograph + + + 274565 + 67DC + E69F9C + East Asian ideograph + + + 274566 + 69DB + E6A79B + East Asian ideograph + + + 27456A + 6988 + E6A688 + East Asian ideograph + + + 27456B + 691F + E6A49F + East Asian ideograph + + + 27456C + 6809 + E6A089 + East Asian ideograph + + + 27456D + 6A79 + E6A9B9 + East Asian ideograph + + + 27456E + 680F + E6A08F + East Asian ideograph + + + 27456F + 6A31 + E6A8B1 + East Asian ideograph + + + 274570 + 6743 + E69D83 + East Asian ideograph + + + 274571 + 6984 + E6A684 + East Asian ideograph + + + 274578 + 94A6 + E992A6 + East Asian ideograph + + + 27457A + 6B20 + E6ACA0 + East Asian ideograph (duplicate simplified) + + + 27457C + 6B27 + E6ACA7 + East Asian ideograph + + + 27457E + 6B24 + E6ACA4 + East Asian ideograph + + + 274621 + 6B22 + E6ACA2 + East Asian ideograph + + + 274629 + 5C81 + E5B281 + East Asian ideograph + + + 27462A + 5386 + E58E86 + East Asian ideograph + + + 27462B + 5F52 + E5BD92 + East Asian ideograph + + + 274633 + 6B8B + E6AE8B + East Asian ideograph + + + 274635 + 6B87 + E6AE87 + East Asian ideograph + + + 274636 + 6B93 + E6AE93 + East Asian ideograph + + + 274637 + 6BA1 + E6AEA1 + East Asian ideograph + + + 274638 + 6B7C + E6ADBC + East Asian ideograph + + + 27463B + 6740 + E69D80 + East Asian ideograph + + + 27463C + 58F3 + E5A3B3 + East Asian ideograph + + + 274640 + 6BB4 + E6AEB4 + East Asian ideograph + + + 274655 + 6C14 + E6B094 + East Asian ideograph + + + 274658 + 6C22 + E6B0A2 + East Asian ideograph + + + 27474E + 6CFE + E6B3BE + East Asian ideograph + + + 274759 + 6CEA + E6B3AA + East Asian ideograph + + + 274768 + 6D45 + E6B585 + East Asian ideograph + + + 274774 + 6E0A + E6B88A + East Asian ideograph + + + 274777 + 6CA6 + E6B2A6 + East Asian ideograph + + + 27477D + 6D8C + E6B68C + East Asian ideograph + + + 27482D + 6C64 + E6B1A4 + East Asian ideograph + + + 274830 + 6D4B + E6B58B + East Asian ideograph + + + 274831 + 6DA1 + E6B6A1 + East Asian ideograph + + + 274833 + 6D51 + E6B591 + East Asian ideograph + + + 27483D + 6C9F + E6B29F + East Asian ideograph + + + 274841 + 6C85 + E6B285 + East Asian ideograph + + + 274842 + 706D + E781AD + East Asian ideograph + + + 274844 + 6E7F + E6B9BF + East Asian ideograph + + + 274848 + 6CA7 + E6B2A7 + East Asian ideograph + + + 27484B + 51C6 + E58786 + East Asian ideograph + + + 27484F + 6CAA + E6B2AA + East Asian ideograph + + + 274854 + 6E0D + E6B88D + East Asian ideograph + + + 274855 + 6DA8 + E6B6A8 + East Asian ideograph + + + 274857 + 6C49 + E6B189 + East Asian ideograph + + + 274858 + 6EE1 + E6BBA1 + East Asian ideograph + + + 274859 + 6D9F + E6B69F + East Asian ideograph + + + 27485A + 6E10 + E6B890 + East Asian ideograph + + + 27485F + 6EDE + E6BB9E + East Asian ideograph + + + 274863 + 6D46 + E6B586 + East Asian ideograph + + + 274864 + 6E17 + E6B897 + East Asian ideograph + + + 274865 + 6E14 + E6B894 + East Asian ideograph + + + 27486C + 6CFC + E6B3BC + East Asian ideograph + + + 27486D + 6DA6 + E6B6A6 + East Asian ideograph + + + 27486E + 6DA7 + E6B6A7 + East Asian ideograph + + + 27486F + 6D01 + E6B481 + East Asian ideograph + + + 274871 + 6D47 + E6B587 + East Asian ideograph + + + 274878 + 6E83 + E6BA83 + East Asian ideograph + + + 27487B + 6DC0 + E6B780 + East Asian ideograph + + + 27487C + 6D53 + E6B593 + East Asian ideograph + + + 274921 + 6CFD + E6B3BD + East Asian ideograph + + + 274922 + 6D4A + E6B58A + East Asian ideograph + + + 274926 + 6D4E + E6B58E + East Asian ideograph + + + 274927 + 6CDE + E6B39E + East Asian ideograph + + + 274928 + 6EE8 + E6BBA8 + East Asian ideograph + + + 27492B + 6EE5 + E6BBA5 + East Asian ideograph + + + 27492D + 6D9B + E6B69B + East Asian ideograph + + + 27492E + 6DA9 + E6B6A9 + East Asian ideograph + + + 274931 + 6C88 + E6B288 + East Asian ideograph + + + 274932 + 6CFB + E6B3BB + East Asian ideograph + + + 274933 + 6E0E + E6B88E + East Asian ideograph + + + 274934 + 6E85 + E6BA85 + East Asian ideograph + + + 274936 + 6EE4 + E6BBA4 + East Asian ideograph + + + 274937 + 6D4F + E6B58F + East Asian ideograph + + + 27493A + 6FD1 + E6BF91 + East Asian ideograph + + + 27493B + 6CA5 + E6B2A5 + East Asian ideograph + + + 27493C + 6FD2 + E6BF92 + East Asian ideograph + + + 27493D + 6F47 + E6BD87 + East Asian ideograph + + + 27493F + 6F9C + E6BE9C + East Asian ideograph + + + 274941 + 6D12 + E6B492 + East Asian ideograph + + + 274942 + 6EE9 + E6BBA9 + East Asian ideograph + + + 274943 + 6E7E + E6B9BE + East Asian ideograph + + + 274944 + 6EE6 + E6BBA6 + East Asian ideograph + + + 27494A + 707E + E781BE + East Asian ideograph + + + 274951 + 4E3A + E4B8BA + East Asian ideograph + + + 27495D + 4E4C + E4B98C + East Asian ideograph + + + 274966 + 65E0 + E697A0 + East Asian ideograph + + + 27496A + 70BC + E782BC + East Asian ideograph + + + 27496D + 70E6 + E783A6 + East Asian ideograph + + + 27496F + 7080 + E78280 + East Asian ideograph + + + 274975 + 6247 + E68987 + East Asian ideograph + + + 27497D + 70ED + E783AD + East Asian ideograph + + + 27497E + 70EB + E783AB + East Asian ideograph + + + 274A21 + 70BD + E782BD + East Asian ideograph + + + 274A22 + 7096 + E78296 + East Asian ideograph + + + 274A24 + 706F + E781AF + East Asian ideograph + + + 274A25 + 7116 + E78496 + East Asian ideograph + + + 274A26 + 70E7 + E783A7 + East Asian ideograph + + + 274A2E + 8425 + E890A5 + East Asian ideograph + + + 274A30 + 70DB + E7839B + East Asian ideograph + + + 274A31 + 707F + E781BF + East Asian ideograph + + + 274A33 + 70E9 + E783A9 + East Asian ideograph + + + 274A36 + 70C1 + E78381 + East Asian ideograph + + + 274A37 + 7089 + E78289 + East Asian ideograph + + + 274A38 + 70C2 + E78382 + East Asian ideograph + + + 274A42 + 7237 + E788B7 + East Asian ideograph + + + 274A45 + 5C14 + E5B094 + East Asian ideograph + + + 274A46 + 5899 + E5A299 + East Asian ideograph + + + 274A4C + 724D + E7898D + East Asian ideograph + + + 274A53 + 5B83 + E5AE83 + East Asian ideograph + + + 274A5A + 7275 + E789B5 + East Asian ideograph + + + 274A5E + 8366 + E88DA6 + East Asian ideograph + + + 274A61 + 728A + E78A8A + East Asian ideograph + + + 274A62 + 727A + E789BA + East Asian ideograph + + + 274A68 + 72B6 + E78AB6 + East Asian ideograph + + + 274A70 + 72ED + E78BAD + East Asian ideograph + + + 274A72 + 72C8 + E78B88 + East Asian ideograph + + + 274A79 + 72B9 + E78AB9 + East Asian ideograph + + + 274A7E + 72F1 + E78BB1 + East Asian ideograph + + + 274B22 + 72EF + E78BAF + East Asian ideograph + + + 274B23 + 72EE + E78BAE + East Asian ideograph + + + 274B27 + 72EC + E78BAC + East Asian ideograph + + + 274B28 + 72DE + E78B9E + East Asian ideograph + + + 274B29 + 83B7 + E88EB7 + East Asian ideograph + + + 274B2A + 72B7 + E78AB7 + East Asian ideograph + + + 274B2B + 517D + E585BD + East Asian ideograph + + + 274B2C + 730E + E78C8E + East Asian ideograph + + + 274B2D + 736D + E78DAD + East Asian ideograph + + + 274B2E + 732E + E78CAE + East Asian ideograph + + + 274B2F + 7321 + E78CA1 + East Asian ideograph + + + 274B47 + 73B0 + E78EB0 + East Asian ideograph + + + 274B57 + 73F2 + E78FB2 + East Asian ideograph + + + 274B5E + 739B + E78E9B + East Asian ideograph + + + 274B5F + 7410 + E79090 + East Asian ideograph + + + 274B64 + 7391 + E78E91 + East Asian ideograph + + + 274B67 + 73AF + E78EAF + East Asian ideograph + + + 274B68 + 7477 + E791B7 + East Asian ideograph + + + 274B69 + 73BA + E78EBA + East Asian ideograph + + + 274B6B + 73D1 + E78F91 + East Asian ideograph + + + 274B74 + 74EF + E793AF + East Asian ideograph + + + 274B7A + 4EA7 + E4BAA7 + East Asian ideograph + + + 274C2D + 4EA9 + E4BAA9 + East Asian ideograph + + + 274C31 + 7544 + E79584 + East Asian ideograph + + + 274C33 + 6BD5 + E6AF95 + East Asian ideograph + + + 274C34 + 5F02 + E5BC82 + East Asian ideograph + + + 274C36 + 753B + E794BB + East Asian ideograph + + + 274C39 + 5F53 + E5BD93 + East Asian ideograph + + + 274C3B + 7574 + E795B4 + East Asian ideograph + + + 274C3C + 8FED + E8BFAD + East Asian ideograph + + + 274C56 + 75C9 + E79789 + East Asian ideograph + + + 274C60 + 75A1 + E796A1 + East Asian ideograph + + + 274C61 + 759F + E7969F + East Asian ideograph + + + 274C62 + 75EA + E797AA + East Asian ideograph + + + 274C63 + 75AF + E796AF + East Asian ideograph + + + 274C6A + 75AE + E796AE + East Asian ideograph + + + 274C6D + 75E8 + E797A8 + East Asian ideograph + + + 274C6E + 7597 + E79697 + East Asian ideograph + + + 274C71 + 75A0 + E796A0 + East Asian ideograph + + + 274C73 + 75D2 + E79792 + East Asian ideograph + + + 274C75 + 765E + E7999E + East Asian ideograph + + + 274C76 + 763E + E798BE + East Asian ideograph + + + 274C77 + 7663 + E799A3 + East Asian ideograph + + + 274C78 + 762B + E798AB + East Asian ideograph + + + 274C79 + 766B + E799AB + East Asian ideograph + + + 274C7B + 53D1 + E58F91 + East Asian ideograph + + + 274D29 + 7691 + E79A91 + East Asian ideograph + + + 274D2D + 76B1 + E79AB1 + East Asian ideograph + + + 274D3A + 76CF + E79B8F + East Asian ideograph + + + 274D3C + 5C3D + E5B0BD + East Asian ideograph + + + 274D3D + 76D1 + E79B91 + East Asian ideograph + + + 274D3E + 76D8 + E79B98 + East Asian ideograph + + + 274D3F + 5362 + E58DA2 + East Asian ideograph + + + 274D56 + 4F17 + E4BC97 + East Asian ideograph + + + 274D57 + 56F0 + E59BB0 + East Asian ideograph + + + 274D5D + 7750 + E79D90 + East Asian ideograph + + + 274D73 + 4E86 + E4BA86 + East Asian ideograph + + + 274D7C + 77A9 + E79EA9 + East Asian ideograph + + + 274E27 + 77EB + E79FAB + East Asian ideograph + + + 274E3B + 781A + E7A09A + East Asian ideograph + + + 274E3E + 7815 + E7A095 + East Asian ideograph + + + 274E45 + 7855 + E7A195 + East Asian ideograph + + + 274E49 + 786E + E7A1AE + East Asian ideograph + + + 274E4C + 7801 + E7A081 + East Asian ideograph + + + 274E53 + 7816 + E7A096 + East Asian ideograph + + + 274E58 + 77F6 + E79FB6 + East Asian ideograph + + + 274E59 + 7840 + E7A180 + East Asian ideograph + + + 274E5A + 788D + E7A28D + East Asian ideograph + + + 274E5B + 77FF + E79FBF + East Asian ideograph + + + 274E5C + 77FE + E79FBE + East Asian ideograph + + + 274E5D + 783A + E7A0BA + East Asian ideograph + + + 274E5E + 783E + E7A0BE + East Asian ideograph + + + 274E6F + 53EA + E58FAA + East Asian ideograph (duplicate simplified) + + + 274E77 + 7978 + E7A5B8 + East Asian ideograph + + + 274E78 + 796F + E7A5AF + East Asian ideograph + + + 274E7B + 7985 + E7A685 + East Asian ideograph + + + 274E7C + 793C + E7A4BC + East Asian ideograph + + + 274E7D + 7977 + E7A5B7 + East Asian ideograph + + + 274F22 + 4E07 + E4B887 + East Asian ideograph + + + 274F25 + 53B6 + E58EB6 + East Asian ideograph + + + 274F36 + 5E0C + E5B88C + East Asian ideograph + + + 274F3C + 79F0 + E7A7B0 + East Asian ideograph + + + 274F3D + 79CD + E7A78D + East Asian ideograph + + + 274F40 + 8C37 + E8B0B7 + East Asian ideograph + + + 274F44 + 79EF + E7A7AF + East Asian ideograph + + + 274F46 + 7A23 + E7A8A3 + East Asian ideograph + + + 274F49 + 7A51 + E7A991 + East Asian ideograph + + + 274F4A + 79FD + E7A7BD + East Asian ideograph + + + 274F4B + 83B7 + E88EB7 + East Asian ideograph (duplicate simplified) + + + 274F4C + 7A33 + E7A8B3 + East Asian ideograph + + + 274F5C + 6D3C + E6B4BC + East Asian ideograph + + + 274F5D + 7A9D + E7AA9D + East Asian ideograph + + + 274F5F + 7A77 + E7A9B7 + East Asian ideograph + + + 274F60 + 7AA5 + E7AAA5 + East Asian ideograph + + + 274F61 + 7A8D + E7AA8D + East Asian ideograph + + + 274F62 + 7A9C + E7AA9C + East Asian ideograph + + + 274F63 + 7AA6 + E7AAA6 + East Asian ideograph + + + 274F64 + 7A83 + E7AA83 + East Asian ideograph + + + 274F6B + 7ADE + E7AB9E + East Asian ideograph + + + 274F70 + 5DF4 + E5B7B4 + East Asian ideograph (duplicate simplified) + + + 274F79 + 7B14 + E7AC94 + East Asian ideograph + + + 275021 + 7B0B + E7AC8B + East Asian ideograph + + + 275023 + 8345 + E88D85 + East Asian ideograph + + + 27502A + 94B3 + E992B3 + East Asian ideograph + + + 27502B + 7B3A + E7ACBA + East Asian ideograph + + + 275030 + 8303 + E88C83 + East Asian ideograph + + + 275033 + 8282 + E88A82 + East Asian ideograph + + + 275038 + 7BAC + E7AEAC + East Asian ideograph + + + 275039 + 7B03 + E7AC83 + East Asian ideograph + + + 27503A + 7B51 + E7AD91 + East Asian ideograph + + + 27503C + 7B5B + E7AD9B + East Asian ideograph + + + 27503E + 7BD3 + E7AF93 + East Asian ideograph + + + 275041 + 7B80 + E7AE80 + East Asian ideograph + + + 275042 + 7BAB + E7AEAB + East Asian ideograph + + + 275045 + 7BAA + E7AEAA + East Asian ideograph + + + 275046 + 7BD1 + E7AF91 + East Asian ideograph + + + 275048 + 5E18 + E5B898 + East Asian ideograph + + + 27504B + 7B7E + E7ADBE + East Asian ideograph + + + 27504C + 7BEE + E7AFAE + East Asian ideograph + + + 27504D + 7B79 + E7ADB9 + East Asian ideograph + + + 275050 + 7B3C + E7ACBC + East Asian ideograph + + + 275051 + 7C41 + E7B181 + East Asian ideograph + + + 275052 + 7B7E + E7ADBE + East Asian ideograph (duplicate simplified) + + + 275053 + 7BF1 + E7AFB1 + East Asian ideograph + + + 275054 + 7BA9 + E7AEA9 + East Asian ideograph + + + 275055 + 5401 + E59081 + East Asian ideograph + + + 275060 + 7C8B + E7B28B + East Asian ideograph + + + 275062 + 80E1 + E883A1 + East Asian ideograph (duplicate simplified) + + + 275068 + 7CAA + E7B2AA + East Asian ideograph + + + 27506B + 7CAE + E7B2AE + East Asian ideograph + + + 27506F + 7EA0 + E7BAA0 + East Asian ideograph + + + 275070 + 7EAA + E7BAAA + East Asian ideograph + + + 275071 + 7EA3 + E7BAA3 + East Asian ideograph + + + 275072 + 7EA2 + E7BAA2 + East Asian ideograph + + + 275073 + 7EAB + E7BAAB + East Asian ideograph + + + 275074 + 7EA6 + E7BAA6 + East Asian ideograph + + + 275075 + 7EA5 + E7BAA5 + East Asian ideograph + + + 275076 + 7EBA + E7BABA + East Asian ideograph + + + 275077 + 7EB9 + E7BAB9 + East Asian ideograph + + + 27507A + 7EAD + E7BAAD + East Asian ideograph + + + 27507C + 7EB0 + E7BAB0 + East Asian ideograph + + + 27507D + 7EAF + E7BAAF + East Asian ideograph + + + 27507E + 7EBD + E7BABD + East Asian ideograph + + + 275121 + 7EB1 + E7BAB1 + East Asian ideograph + + + 275122 + 7EB3 + E7BAB3 + East Asian ideograph + + + 275123 + 7EA7 + E7BAA7 + East Asian ideograph + + + 275124 + 7EB8 + E7BAB8 + East Asian ideograph + + + 275125 + 7EB7 + E7BAB7 + East Asian ideograph + + + 275126 + 7ECA + E7BB8A + East Asian ideograph + + + 275128 + 7ECB + E7BB8B + East Asian ideograph + + + 275129 + 624E + E6898E + East Asian ideograph + + + 27512A + 7ECD + E7BB8D + East Asian ideograph + + + 27512B + 7EC4 + E7BB84 + East Asian ideograph + + + 27512C + 7EC6 + E7BB86 + East Asian ideograph + + + 27512D + 7EC5 + E7BB85 + East Asian ideograph + + + 27512F + 7ECC + E7BB8C + East Asian ideograph + + + 275130 + 7EC8 + E7BB88 + East Asian ideograph + + + 275131 + 7EDF + E7BB9F + East Asian ideograph + + + 275132 + 7EDE + E7BB9E + East Asian ideograph + + + 275133 + 7ED2 + E7BB92 + East Asian ideograph + + + 275134 + 7ED3 + E7BB93 + East Asian ideograph + + + 275136 + 7EDA + E7BB9A + East Asian ideograph + + + 275137 + 7EDD + E7BB9D + East Asian ideograph + + + 275138 + 7EDC + E7BB9C + East Asian ideograph + + + 275139 + 7ED9 + E7BB99 + East Asian ideograph + + + 27513B + 4E1D + E4B89D + East Asian ideograph + + + 27513C + 7ECF + E7BB8F + East Asian ideograph + + + 27513D + 6346 + E68D86 + East Asian ideograph + + + 27513E + 7EE2 + E7BBA2 + East Asian ideograph + + + 27513F + 7EE5 + E7BBA5 + East Asian ideograph + + + 275140 + 7ED1 + E7BB91 + East Asian ideograph + + + 275141 + 7EFC + E7BBBC + East Asian ideograph + + + 275142 + 7EFD + E7BBBD + East Asian ideograph + + + 275143 + 7EFE + E7BBBE + East Asian ideograph + + + 275144 + 7D27 + E7B4A7 + East Asian ideograph + + + 275145 + 7EEB + E7BBAB + East Asian ideograph + + + 275146 + 7F00 + E7BC80 + East Asian ideograph + + + 275148 + 7F51 + E7BD91 + East Asian ideograph + + + 275149 + 7EB2 + E7BAB2 + East Asian ideograph + + + 27514A + 7EF0 + E7BBB0 + East Asian ideograph + + + 27514C + 7EFF + E7BBBF + East Asian ideograph + + + 27514D + 7EF8 + E7BBB8 + East Asian ideograph + + + 27514E + 7EF4 + E7BBB4 + East Asian ideograph + + + 27514F + 7EF5 + E7BBB5 + East Asian ideograph + + + 275150 + 7EB6 + E7BAB6 + East Asian ideograph + + + 275151 + 7F01 + E7BC81 + East Asian ideograph + + + 275152 + 7F14 + E7BC94 + East Asian ideograph + + + 275153 + 7EAC + E7BAAC + East Asian ideograph + + + 275154 + 7EC3 + E7BB83 + East Asian ideograph + + + 275155 + 7EEA + E7BBAA + East Asian ideograph + + + 275156 + 7F04 + E7BC84 + East Asian ideograph + + + 275157 + 7F05 + E7BC85 + East Asian ideograph + + + 275158 + 7F09 + E7BC89 + East Asian ideograph + + + 275159 + 7F13 + E7BC93 + East Asian ideograph + + + 27515A + 7F18 + E7BC98 + East Asian ideograph + + + 27515B + 7F16 + E7BC96 + East Asian ideograph + + + 27515C + 7EBF + E7BABF + East Asian ideograph + + + 27515D + 7F0D + E7BC8D + East Asian ideograph + + + 27515E + 7F0E + E7BC8E + East Asian ideograph + + + 27515F + 7F23 + E7BCA3 + East Asian ideograph + + + 275160 + 7F22 + E7BCA2 + East Asian ideograph + + + 275161 + 8426 + E890A6 + East Asian ideograph + + + 275162 + 7F1A + E7BC9A + East Asian ideograph + + + 275163 + 81F4 + E887B4 + East Asian ideograph + + + 275164 + 53BF + E58EBF + East Asian ideograph (variant of EACC 455164) + + + 275165 + 7F29 + E7BCA9 + East Asian ideograph + + + 275166 + 7EE9 + E7BBA9 + East Asian ideograph + + + 275167 + 7F2A + E7BCAA + East Asian ideograph + + + 275168 + 7F15 + E7BC95 + East Asian ideograph + + + 275169 + 7F27 + E7BCA7 + East Asian ideograph + + + 27516C + 7F1D + E7BC9D + East Asian ideograph + + + 27516D + 603B + E680BB + East Asian ideograph + + + 27516E + 7EB5 + E7BAB5 + East Asian ideograph + + + 27516F + 7F2B + E7BCAB + East Asian ideograph + + + 275170 + 7F2E + E7BCAE + East Asian ideograph + + + 275171 + 7EC7 + E7BB87 + East Asian ideograph + + + 275172 + 7EE3 + E7BBA3 + East Asian ideograph + + + 275173 + 7ED5 + E7BB95 + East Asian ideograph + + + 275174 + 7F2D + E7BCAD + East Asian ideograph + + + 275175 + 7CFB + E7B3BB + East Asian ideograph (duplicate simplified) + + + 275176 + 7EF3 + E7BBB3 + East Asian ideograph + + + 275177 + 8327 + E88CA7 + East Asian ideograph + + + 275178 + 7ECE + E7BB8E + East Asian ideograph + + + 275179 + 7ED8 + E7BB98 + East Asian ideograph + + + 27517A + 8FAB + E8BEAB + East Asian ideograph + + + 27517B + 7F24 + E7BCA4 + East Asian ideograph + + + 27517D + 7EE7 + E7BBA7 + East Asian ideograph + + + 27517E + 7F20 + E7BCA0 + East Asian ideograph + + + 275221 + 7EED + E7BBAD + East Asian ideograph + + + 275222 + 7F28 + E7BCA8 + East Asian ideograph + + + 275223 + 7EA4 + E7BAA4 + East Asian ideograph + + + 275224 + 7F06 + E7BC86 + East Asian ideograph + + + 275233 + 7F5A + E7BD9A + East Asian ideograph + + + 275234 + 9A82 + E9AA82 + East Asian ideograph + + + 275235 + 7F62 + E7BDA2 + East Asian ideograph + + + 275237 + 7F57 + E7BD97 + East Asian ideograph + + + 275238 + 7F81 + E7BE81 + East Asian ideograph + + + 275242 + 4E49 + E4B989 + East Asian ideograph + + + 27524D + 4E60 + E4B9A0 + East Asian ideograph + + + 275251 + 7FC6 + E7BF86 + East Asian ideograph + + + 275258 + 7FD8 + E7BF98 + East Asian ideograph + + + 27526F + 5723 + E59CA3 + East Asian ideograph + + + 275271 + 95FB + E997BB + East Asian ideograph + + + 275274 + 58F0 + E5A3B0 + East Asian ideograph + + + 275275 + 8038 + E880B8 + East Asian ideograph + + + 275276 + 806A + E881AA + East Asian ideograph + + + 275277 + 8054 + E88194 + East Asian ideograph + + + 275278 + 804C + E8818C + East Asian ideograph + + + 275279 + 8042 + E88182 + East Asian ideograph + + + 27527A + 804B + E8818B + East Asian ideograph + + + 27527B + 542C + E590AC + East Asian ideograph + + + 275321 + 8083 + E88283 + East Asian ideograph + + + 275344 + 80C1 + E88381 + East Asian ideograph + + + 27534A + 8090 + E88290 + East Asian ideograph + + + 27534D + 8109 + E88489 + East Asian ideograph + + + 275358 + 80BE + E882BE + East Asian ideograph + + + 275359 + 80C0 + E88380 + East Asian ideograph + + + 27535E + 80A0 + E882A0 + East Asian ideograph + + + 275362 + 80BF + E882BF + East Asian ideograph + + + 275365 + 8111 + E88491 + East Asian ideograph + + + 27536C + 80F6 + E883B6 + East Asian ideograph + + + 27536E + 80A4 + E882A4 + East Asian ideograph + + + 275371 + 817B + E885BB + East Asian ideograph + + + 275378 + 8113 + E88493 + East Asian ideograph + + + 275379 + 80C6 + E88386 + East Asian ideograph + + + 27537A + 8138 + E884B8 + East Asian ideograph + + + 27537B + 810D + E8848D + East Asian ideograph + + + 27537C + 8110 + E88490 + East Asian ideograph + + + 27537D + 8191 + E88691 + East Asian ideograph + + + 27537E + 814A + E8858A + East Asian ideograph + + + 275421 + 80EA + E883AA + East Asian ideograph + + + 275422 + 810F + E8848F + East Asian ideograph (duplicate simplified) + + + 275425 + 4E34 + E4B8B4 + East Asian ideograph + + + 27542B + 53F0 + E58FB0 + East Asian ideograph + + + 275432 + 4E0E + E4B88E + East Asian ideograph + + + 275433 + 5174 + E585B4 + East Asian ideograph + + + 275434 + 4E3E + E4B8BE + East Asian ideograph + + + 275435 + 65E7 + E697A7 + East Asian ideograph + + + 27544A + 8231 + E888B1 + East Asian ideograph + + + 27544B + 8230 + E888B0 + East Asian ideograph + + + 27544E + 8270 + E889B0 + East Asian ideograph + + + 275458 + 5DF4 + E5B7B4 + East Asian ideograph (duplicate simplified) + + + 27545C + 520D + E5888D + East Asian ideograph + + + 275528 + 835A + E88D9A + East Asian ideograph + + + 275529 + 830E + E88C8E + East Asian ideograph + + + 27552A + 82CB + E88B8B + East Asian ideograph + + + 27552D + 5E84 + E5BA84 + East Asian ideograph + + + 27553C + 534E + E58D8E + East Asian ideograph + + + 275541 + 83B1 + E88EB1 + East Asian ideograph + + + 27554D + 82C7 + E88B87 + East Asian ideograph + + + 27554F + 53F6 + E58FB6 + East Asian ideograph + + + 275551 + 80E1 + E883A1 + East Asian ideograph (duplicate simplified) + + + 275553 + 8364 + E88DA4 + East Asian ideograph + + + 275555 + 83B4 + E88EB4 + East Asian ideograph + + + 27555D + 5E2D + E5B8AD + East Asian ideograph + + + 275563 + 836A + E88DAA + East Asian ideograph + + + 275564 + 82CE + E88B8E + East Asian ideograph + + + 275567 + 82CD + E88B8D + East Asian ideograph + + + 275568 + 8298 + E88A98 + East Asian ideograph + + + 27556C + 83B2 + E88EB2 + East Asian ideograph + + + 27556E + 836B + E88DAB + East Asian ideograph + + + 275571 + 848B + E8928B + East Asian ideograph + + + 275573 + 535C + E58D9C + East Asian ideograph + + + 275576 + 8361 + E88DA1 + East Asian ideograph + + + 27557C + 829C + E88A9C + East Asian ideograph + + + 275622 + 8427 + E890A7 + East Asian ideograph + + + 275624 + 59DC + E5A79C + East Asian ideograph + + + 275626 + 8537 + E894B7 + East Asian ideograph + + + 275629 + 84DD + E8939D + East Asian ideograph + + + 27562A + 8428 + E890A8 + East Asian ideograph + + + 27562E + 501F + E5809F + East Asian ideograph + + + 275631 + 827A + E889BA + East Asian ideograph + + + 275632 + 85AE + E896AE + East Asian ideograph + + + 275635 + 836F + E88DAF + East Asian ideograph + + + 275637 + 853C + E894BC + East Asian ideograph + + + 275639 + 853A + E894BA + East Asian ideograph + + + 27563A + 82A6 + E88AA6 + East Asian ideograph + + + 27563B + 82F9 + E88BB9 + East Asian ideograph + + + 27563C + 82CF + E88B8F + East Asian ideograph + + + 27563D + 8574 + E895B4 + East Asian ideograph + + + 27563E + 5170 + E585B0 + East Asian ideograph + + + 275640 + 85D3 + E89793 + East Asian ideograph + + + 275642 + 841D + E8909D + East Asian ideograph + + + 275644 + 4E47 + E4B987 + East Asian ideograph + + + 275647 + 5904 + E5A484 + East Asian ideograph + + + 275648 + 864F + E8998F + East Asian ideograph + + + 27564A + 53F7 + E58FB7 + East Asian ideograph + + + 27564C + 4E8F + E4BA8F + East Asian ideograph + + + 27565A + 65E6 + E697A6 + East Asian ideograph + + + 275676 + 8680 + E89A80 + East Asian ideograph + + + 275679 + 80E1 + E883A1 + East Asian ideograph (duplicate simplified) + + + 27567A + 867E + E899BE + East Asian ideograph + + + 275724 + 8424 + E890A4 + East Asian ideograph + + + 275725 + 8682 + E89A82 + East Asian ideograph + + + 27572C + 877C + E89DBC + East Asian ideograph + + + 275732 + 86F2 + E89BB2 + East Asian ideograph + + + 275733 + 866B + E899AB + East Asian ideograph + + + 275734 + 8749 + E89D89 + East Asian ideograph + + + 275735 + 8681 + E89A81 + East Asian ideograph + + + 275736 + 8747 + E89D87 + East Asian ideograph + + + 27573C + 86CE + E89B8E + East Asian ideograph + + + 27573E + 8721 + E89CA1 + East Asian ideograph + + + 27573F + 86CA + E89B8A + East Asian ideograph + + + 275741 + 8695 + E89A95 + East Asian ideograph + + + 275742 + 86EE + E89BAE + East Asian ideograph + + + 275746 + 672E + E69CAE + East Asian ideograph + + + 275747 + 4E8D + E4BA8D + East Asian ideograph + + + 275749 + 536B + E58DAB + East Asian ideograph + + + 27574A + 51B2 + E586B2 + East Asian ideograph (duplicate simplified) + + + 275762 + 8865 + E8A1A5 + East Asian ideograph + + + 275763 + 91CC + E9878C + East Asian ideograph + + + 275765 + 88C5 + E8A385 + East Asian ideograph + + + 27576C + 5236 + E588B6 + East Asian ideograph + + + 275771 + 8934 + E8A4B4 + East Asian ideograph + + + 275773 + 88E4 + E8A3A4 + East Asian ideograph + + + 275777 + 4EB5 + E4BAB5 + East Asian ideograph + + + 275779 + 891B + E8A49B + East Asian ideograph + + + 27577C + 88C6 + E8A386 + East Asian ideograph + + + 27577D + 8884 + E8A284 + East Asian ideograph + + + 275821 + 889C + E8A29C + East Asian ideograph + + + 275822 + 886C + E8A1AC + East Asian ideograph + + + 275823 + 88AD + E8A2AD + East Asian ideograph + + + 275828 + 89C1 + E8A781 + East Asian ideograph + + + 275829 + 89C4 + E8A784 + East Asian ideograph + + + 27582A + 89C5 + E8A785 + East Asian ideograph + + + 27582B + 89C6 + E8A786 + East Asian ideograph + + + 27582C + 4EB2 + E4BAB2 + East Asian ideograph + + + 27582D + 89CE + E8A78E + East Asian ideograph + + + 27582E + 89CA + E8A78A + East Asian ideograph + + + 27582F + 89D0 + E8A790 + East Asian ideograph + + + 275830 + 89C9 + E8A789 + East Asian ideograph + + + 275831 + 89C8 + E8A788 + East Asian ideograph + + + 275832 + 89C2 + E8A782 + East Asian ideograph + + + 275835 + 89DE + E8A79E + East Asian ideograph + + + 275838 + 8BA1 + E8AEA1 + East Asian ideograph + + + 275839 + 8BA2 + E8AEA2 + East Asian ideograph + + + 27583A + 8BA3 + E8AEA3 + East Asian ideograph + + + 27583B + 8BA6 + E8AEA6 + East Asian ideograph + + + 27583C + 8BB0 + E8AEB0 + East Asian ideograph + + + 27583D + 8BA8 + E8AEA8 + East Asian ideograph + + + 27583E + 8BA7 + E8AEA7 + East Asian ideograph + + + 27583F + 8BAA + E8AEAA + East Asian ideograph + + + 275840 + 8BAF + E8AEAF + East Asian ideograph + + + 275841 + 8BAB + E8AEAB + East Asian ideograph + + + 275843 + 8BAD + E8AEAD + East Asian ideograph + + + 275844 + 8BBF + E8AEBF + East Asian ideograph + + + 275845 + 8BC0 + E8AF80 + East Asian ideograph + + + 275846 + 8BB6 + E8AEB6 + East Asian ideograph + + + 275847 + 8BB7 + E8AEB7 + East Asian ideograph + + + 275848 + 8BB8 + E8AEB8 + East Asian ideograph + + + 275849 + 8BBE + E8AEBE + East Asian ideograph + + + 27584A + 8BB9 + E8AEB9 + East Asian ideograph + + + 27584B + 8BBC + E8AEBC + East Asian ideograph + + + 27584C + 6CE8 + E6B3A8 + East Asian ideograph + + + 27584E + 8BC4 + E8AF84 + East Asian ideograph + + + 27584F + 8BCD + E8AF8D + East Asian ideograph + + + 275851 + 8BC2 + E8AF82 + East Asian ideograph + + + 275852 + 8BCF + E8AF8F + East Asian ideograph + + + 275853 + 8BC5 + E8AF85 + East Asian ideograph + + + 275854 + 8BC8 + E8AF88 + East Asian ideograph + + + 275855 + 8BCB + E8AF8B + East Asian ideograph + + + 275856 + 8BC9 + E8AF89 + East Asian ideograph + + + 275857 + 8BCA + E8AF8A + East Asian ideograph + + + 275858 + 8BE7 + E8AFA7 + East Asian ideograph + + + 275859 + 8BE5 + E8AFA5 + East Asian ideograph + + + 27585A + 8BE6 + E8AFA6 + East Asian ideograph + + + 27585B + 8BD5 + E8AF95 + East Asian ideograph + + + 27585C + 8BD7 + E8AF97 + East Asian ideograph + + + 27585D + 8BD8 + E8AF98 + East Asian ideograph + + + 27585E + 8BE3 + E8AFA3 + East Asian ideograph + + + 27585F + 8BD9 + E8AF99 + East Asian ideograph + + + 275860 + 8BDA + E8AF9A + East Asian ideograph + + + 275861 + 5938 + E5A4B8 + East Asian ideograph + + + 275862 + 8BDB + E8AF9B + East Asian ideograph + + + 275863 + 8BE1 + E8AFA1 + East Asian ideograph + + + 275865 + 8BE2 + E8AFA2 + East Asian ideograph + + + 275866 + 8BDD + E8AF9D + East Asian ideograph + + + 275867 + 8BE0 + E8AFA0 + East Asian ideograph + + + 275868 + 8BDF + E8AF9F + East Asian ideograph + + + 275869 + 8BF4 + E8AFB4 + East Asian ideograph + + + 27586A + 8BF5 + E8AFB5 + East Asian ideograph + + + 27586B + 8BEB + E8AFAB + East Asian ideograph + + + 27586C + 8BED + E8AFAD + East Asian ideograph + + + 27586D + 5FD7 + E5BF97 + East Asian ideograph + + + 27586F + 8BEC + E8AFAC + East Asian ideograph + + + 275870 + 8BA4 + E8AEA4 + East Asian ideograph + + + 275871 + 8BEF + E8AFAF + East Asian ideograph + + + 275872 + 8BF2 + E8AFB2 + East Asian ideograph + + + 275873 + 8BF0 + E8AFB0 + East Asian ideograph + + + 275874 + 8BF1 + E8AFB1 + East Asian ideograph + + + 275875 + 8BF3 + E8AFB3 + East Asian ideograph + + + 275876 + 8C0A + E8B08A + East Asian ideograph + + + 275877 + 8C06 + E8B086 + East Asian ideograph + + + 275878 + 8C05 + E8B085 + East Asian ideograph + + + 275879 + 8C08 + E8B088 + East Asian ideograph + + + 27587A + 8BF7 + E8AFB7 + East Asian ideograph + + + 27587B + 8BF8 + E8AFB8 + East Asian ideograph + + + 27587C + 8BFE + E8AFBE + East Asian ideograph + + + 27587D + 8C03 + E8B083 + East Asian ideograph + + + 27587E + 8BFF + E8AFBF + East Asian ideograph + + + 275921 + 8C04 + E8B084 + East Asian ideograph + + + 275922 + 8C01 + E8B081 + East Asian ideograph + + + 275923 + 8BDE + E8AF9E + East Asian ideograph + + + 275924 + 8BBA + E8AEBA + East Asian ideograph + + + 275925 + 8C1B + E8B09B + East Asian ideograph + + + 275926 + 8C1A + E8B09A + East Asian ideograph + + + 275927 + 8C0F + E8B08F + East Asian ideograph + + + 275928 + 8BB3 + E8AEB3 + East Asian ideograph + + + 275929 + 8C10 + E8B090 + East Asian ideograph + + + 27592A + 8C0D + E8B08D + East Asian ideograph + + + 27592B + 8C0B + E8B08B + East Asian ideograph + + + 27592C + 8C12 + E8B092 + East Asian ideograph + + + 27592D + 8C13 + E8B093 + East Asian ideograph + + + 27592E + 8BFA + E8AFBA + East Asian ideograph + + + 27592F + 8BBD + E8AEBD + East Asian ideograph + + + 275930 + 8C15 + E8B095 + East Asian ideograph + + + 275931 + 8C24 + E8B0A4 + East Asian ideograph + + + 275932 + 8C26 + E8B0A6 + East Asian ideograph + + + 275933 + 8C1C + E8B09C + East Asian ideograph + + + 275934 + 8BB2 + E8AEB2 + East Asian ideograph + + + 275935 + 8C0E + E8B08E + East Asian ideograph + + + 275936 + 8C23 + E8B0A3 + East Asian ideograph + + + 275937 + 8A8A + E8AA8A + East Asian ideograph + + + 275938 + 8C22 + E8B0A2 + East Asian ideograph + + + 275939 + 8C28 + E8B0A8 + East Asian ideograph + + + 27593A + 8C2C + E8B0AC + East Asian ideograph + + + 27593B + 8C1F + E8B09F + East Asian ideograph + + + 27593C + 8BC6 + E8AF86 + East Asian ideograph + + + 27593D + 8C31 + E8B0B1 + East Asian ideograph + + + 27593E + 8C32 + E8B0B2 + East Asian ideograph + + + 27593F + 8BC1 + E8AF81 + East Asian ideograph + + + 275940 + 8C2D + E8B0AD + East Asian ideograph + + + 275942 + 8BA5 + E8AEA5 + East Asian ideograph + + + 275943 + 8BAE + E8AEAE + East Asian ideograph + + + 275946 + 8BD1 + E8AF91 + East Asian ideograph + + + 275947 + 8C34 + E8B0B4 + East Asian ideograph + + + 275948 + 62A4 + E68AA4 + East Asian ideograph + + + 275949 + 8A89 + E8AA89 + East Asian ideograph + + + 27594A + 8BFB + E8AFBB + East Asian ideograph + + + 27594B + 53D8 + E58F98 + East Asian ideograph + + + 27594C + 8BA9 + E8AEA9 + East Asian ideograph + + + 27594D + 8C36 + E8B0B6 + East Asian ideograph + + + 27594E + 8C17 + E8B097 + East Asian ideograph + + + 275954 + 5C82 + E5B282 + East Asian ideograph + + + 275957 + 7AD6 + E7AB96 + East Asian ideograph + + + 275958 + 4E30 + E4B8B0 + East Asian ideograph + + + 27595E + 4E88 + E4BA88 + East Asian ideograph + + + 275966 + 7683 + E79A83 + East Asian ideograph + + + 275968 + 8D1D + E8B49D + East Asian ideograph + + + 275969 + 8D1E + E8B49E + East Asian ideograph + + + 27596A + 8D1F + E8B49F + East Asian ideograph + + + 27596B + 8D21 + E8B4A1 + East Asian ideograph + + + 27596C + 8D22 + E8B4A2 + East Asian ideograph + + + 27596D + 8D23 + E8B4A3 + East Asian ideograph + + + 27596E + 8D2F + E8B4AF + East Asian ideograph + + + 27596F + 8D27 + E8B4A7 + East Asian ideograph + + + 275970 + 8D2A + E8B4AA + East Asian ideograph + + + 275971 + 8D2B + E8B4AB + East Asian ideograph + + + 275972 + 8D29 + E8B4A9 + East Asian ideograph + + + 275975 + 8D39 + E8B4B9 + East Asian ideograph + + + 275976 + 8D32 + E8B4B2 + East Asian ideograph + + + 275977 + 8D3A + E8B4BA + East Asian ideograph + + + 275978 + 8D35 + E8B4B5 + East Asian ideograph + + + 275979 + 8D34 + E8B4B4 + East Asian ideograph + + + 27597A + 4E70 + E4B9B0 + East Asian ideograph + + + 27597B + 8D2C + E8B4AC + East Asian ideograph + + + 27597C + 8D3B + E8B4BB + East Asian ideograph + + + 27597D + 8D37 + E8B4B7 + East Asian ideograph + + + 27597E + 8D38 + E8B4B8 + East Asian ideograph + + + 275A21 + 8D45 + E8B585 + East Asian ideograph + + + 275A22 + 8D44 + E8B584 + East Asian ideograph + + + 275A23 + 8D3C + E8B4BC + East Asian ideograph + + + 275A24 + 8D3E + E8B4BE + East Asian ideograph + + + 275A25 + 8D3F + E8B4BF + East Asian ideograph + + + 275A26 + 8D40 + E8B580 + East Asian ideograph + + + 275A27 + 8D41 + E8B581 + East Asian ideograph + + + 275A28 + 8D42 + E8B582 + East Asian ideograph + + + 275A29 + 5BBE + E5AEBE + East Asian ideograph + + + 275A2A + 8D48 + E8B588 + East Asian ideograph + + + 275A2B + 8D4A + E8B58A + East Asian ideograph + + + 275A2C + 8D54 + E8B594 + East Asian ideograph + + + 275A2D + 8D4B + E8B58B + East Asian ideograph + + + 275A2F + 5356 + E58D96 + East Asian ideograph + + + 275A30 + 8D24 + E8B4A4 + East Asian ideograph + + + 275A31 + 8D31 + E8B4B1 + East Asian ideograph + + + 275A32 + 8D4F + E8B58F + East Asian ideograph + + + 275A33 + 8D50 + E8B590 + East Asian ideograph + + + 275A34 + 8D28 + E8B4A8 + East Asian ideograph + + + 275A35 + 8D4C + E8B58C + East Asian ideograph + + + 275A36 + 8D56 + E8B596 + East Asian ideograph + + + 275A37 + 8D5B + E8B59B + East Asian ideograph + + + 275A38 + 8D5A + E8B59A + East Asian ideograph + + + 275A39 + 8D58 + E8B598 + East Asian ideograph + + + 275A3A + 8D2D + E8B4AD + East Asian ideograph + + + 275A3B + 8D60 + E8B5A0 + East Asian ideograph + + + 275A3C + 8D5D + E8B59D + East Asian ideograph + + + 275A3D + 8D5E + E8B59E + East Asian ideograph + + + 275A3E + 8D62 + E8B5A2 + East Asian ideograph + + + 275A3F + 8D61 + E8B5A1 + East Asian ideograph + + + 275A40 + 8D43 + E8B583 + East Asian ideograph + + + 275A41 + 8D4E + E8B58E + East Asian ideograph + + + 275A42 + 8D63 + E8B5A3 + East Asian ideograph + + + 275A4F + 8D75 + E8B5B5 + East Asian ideograph + + + 275A50 + 8D76 + E8B5B6 + East Asian ideograph + + + 275A53 + 8D8B + E8B68B + East Asian ideograph + + + 275A68 + 8DF5 + E8B7B5 + East Asian ideograph + + + 275A71 + 8E0A + E8B88A + East Asian ideograph + + + 275A78 + 8E52 + E8B992 + East Asian ideograph + + + 275A7E + 8DF7 + E8B7B7 + East Asian ideograph + + + 275B26 + 8DB8 + E8B6B8 + East Asian ideograph + + + 275B28 + 8E0C + E8B88C + East Asian ideograph + + + 275B29 + 8DC3 + E8B783 + East Asian ideograph + + + 275B2A + 8E2F + E8B8AF + East Asian ideograph + + + 275B2B + 8E51 + E8B991 + East Asian ideograph + + + 275B2C + 8E8F + E8BA8F + East Asian ideograph + + + 275B31 + 8EAF + E8BAAF + East Asian ideograph + + + 275B32 + 8F66 + E8BDA6 + East Asian ideograph + + + 275B33 + 8F67 + E8BDA7 + East Asian ideograph + + + 275B34 + 519B + E5869B + East Asian ideograph + + + 275B35 + 8F68 + E8BDA8 + East Asian ideograph + + + 275B36 + 8F69 + E8BDA9 + East Asian ideograph + + + 275B37 + 8F6B + E8BDAB + East Asian ideograph + + + 275B38 + 8F6F + E8BDAF + East Asian ideograph + + + 275B39 + 8F6D + E8BDAD + East Asian ideograph + + + 275B3A + 8F72 + E8BDB2 + East Asian ideograph + + + 275B3B + 8F74 + E8BDB4 + East Asian ideograph + + + 275B3C + 8F76 + E8BDB6 + East Asian ideograph + + + 275B3D + 8F83 + E8BE83 + East Asian ideograph + + + 275B3E + 8F7C + E8BDBC + East Asian ideograph + + + 275B3F + 8F7D + E8BDBD + East Asian ideograph + + + 275B40 + 8F7E + E8BDBE + East Asian ideograph + + + 275B41 + 8F85 + E8BE85 + East Asian ideograph + + + 275B42 + 8F84 + E8BE84 + East Asian ideograph + + + 275B43 + 8F7B + E8BDBB + East Asian ideograph + + + 275B45 + 8F87 + E8BE87 + East Asian ideograph + + + 275B46 + 8F86 + E8BE86 + East Asian ideograph + + + 275B47 + 8F8D + E8BE8D + East Asian ideograph + + + 275B48 + 8F89 + E8BE89 + East Asian ideograph + + + 275B49 + 8F88 + E8BE88 + East Asian ideograph + + + 275B4A + 8F6E + E8BDAE + East Asian ideograph + + + 275B4B + 8F8E + E8BE8E + East Asian ideograph + + + 275B4C + 8F90 + E8BE90 + East Asian ideograph + + + 275B4D + 8F91 + E8BE91 + East Asian ideograph + + + 275B4E + 8F93 + E8BE93 + East Asian ideograph + + + 275B4F + 8F96 + E8BE96 + East Asian ideograph + + + 275B50 + 8F97 + E8BE97 + East Asian ideograph + + + 275B51 + 8F95 + E8BE95 + East Asian ideograph + + + 275B52 + 6BC2 + E6AF82 + East Asian ideograph + + + 275B53 + 8206 + E88886 + East Asian ideograph + + + 275B54 + 8F99 + E8BE99 + East Asian ideograph + + + 275B55 + 8F6C + E8BDAC + East Asian ideograph + + + 275B56 + 8F9A + E8BE9A + East Asian ideograph + + + 275B57 + 8F7F + E8BDBF + East Asian ideograph + + + 275B58 + 8F70 + E8BDB0 + East Asian ideograph + + + 275B59 + 8F94 + E8BE94 + East Asian ideograph + + + 275B5F + 529E + E58A9E + East Asian ideograph + + + 275B60 + 8F9E + E8BE9E + East Asian ideograph + + + 275B61 + 8FA9 + E8BEA9 + East Asian ideograph + + + 275B64 + 519C + E5869C + East Asian ideograph + + + 275B6D + 8FF0 + E8BFB0 + East Asian ideograph + + + 275B7D + 8FD9 + E8BF99 + East Asian ideograph + + + 275B7E + 8FDE + E8BF9E + East Asian ideograph + + + 275C33 + 8FDB + E8BF9B + East Asian ideograph + + + 275C34 + 8FD0 + E8BF90 + East Asian ideograph + + + 275C39 + 8FBE + E8BEBE + East Asian ideograph + + + 275C3A + 8FDD + E8BF9D + East Asian ideograph + + + 275C3C + 8FC2 + E8BF82 + East Asian ideograph + + + 275C3E + 8FC7 + E8BF87 + East Asian ideograph + + + 275C44 + 8FDC + E8BF9C + East Asian ideograph + + + 275C45 + 900A + E9808A + East Asian ideograph + + + 275C48 + 9012 + E98092 + East Asian ideograph + + + 275C49 + 9002 + E98082 + East Asian ideograph + + + 275C4F + 9009 + E98089 + East Asian ideograph + + + 275C50 + 8FDF + E8BF9F + East Asian ideograph + + + 275C51 + 8FC1 + E8BF81 + East Asian ideograph + + + 275C52 + 8FBD + E8BEBD + East Asian ideograph + + + 275C53 + 9057 + E98197 + East Asian ideograph + + + 275C56 + 8FC8 + E8BF88 + East Asian ideograph + + + 275C57 + 8FD8 + E8BF98 + East Asian ideograph + + + 275C5A + 8FE9 + E8BFA9 + East Asian ideograph (variant of EACC 2D5C5A) + + + 275C5B + 8FB9 + E8BEB9 + East Asian ideograph + + + 275C5C + 9026 + E980A6 + East Asian ideograph + + + 275C5D + 903B + E980BB + East Asian ideograph + + + 275C6B + 5369 + E58DA9 + East Asian ideograph + + + 275C6D + 90AE + E982AE + East Asian ideograph + + + 275C70 + 4E61 + E4B9A1 + East Asian ideograph + + + 275C71 + 90B9 + E982B9 + East Asian ideograph + + + 275C73 + 90D1 + E98391 + East Asian ideograph + + + 275C74 + 90BB + E982BB + East Asian ideograph + + + 275C75 + 9093 + E98293 + East Asian ideograph + + + 275D2A + 9154 + E98594 + East Asian ideograph + + + 275D2F + 915D + E9859D + East Asian ideograph + + + 275D30 + 4E11 + E4B891 + East Asian ideograph + + + 275D31 + 533B + E58CBB + East Asian ideograph + + + 275D32 + 9171 + E985B1 + East Asian ideograph + + + 275D34 + 917F + E985BF + East Asian ideograph + + + 275D35 + 8845 + E8A185 + East Asian ideograph + + + 275D38 + 91CA + E9878A + East Asian ideograph + + + 275D3D + 5398 + E58E98 + East Asian ideograph + + + 275D3F + 9488 + E99288 + East Asian ideograph + + + 275D40 + 9489 + E99289 + East Asian ideograph + + + 275D41 + 948A + E9928A + East Asian ideograph + + + 275D43 + 9497 + E99297 + East Asian ideograph + + + 275D45 + 9493 + E99293 + East Asian ideograph + + + 275D46 + 948F + E9928F + East Asian ideograph + + + 275D47 + 9499 + E99299 + East Asian ideograph + + + 275D48 + 949D + E9929D + East Asian ideograph + + + 275D49 + 94AE + E992AE + East Asian ideograph + + + 275D4A + 94A0 + E992A0 + East Asian ideograph + + + 275D4B + 949E + E9929E + East Asian ideograph + + + 275D4C + 94A7 + E992A7 + East Asian ideograph + + + 275D4D + 94A4 + E992A4 + East Asian ideograph + + + 275D4F + 94B4 + E992B4 + East Asian ideograph + + + 275D50 + 94B9 + E992B9 + East Asian ideograph + + + 275D51 + 94B8 + E992B8 + East Asian ideograph + + + 275D52 + 94C0 + E99380 + East Asian ideograph + + + 275D53 + 94BE + E992BE + East Asian ideograph + + + 275D55 + 94C5 + E99385 + East Asian ideograph + + + 275D56 + 94A9 + E992A9 + East Asian ideograph + + + 275D57 + 94C2 + E99382 + East Asian ideograph + + + 275D58 + 94C3 + E99383 + East Asian ideograph + + + 275D59 + 94F0 + E993B0 + East Asian ideograph + + + 275D5A + 94F6 + E993B6 + East Asian ideograph + + + 275D5B + 94D0 + E99390 + East Asian ideograph + + + 275D5C + 94DC + E9939C + East Asian ideograph + + + 275D5D + 94ED + E993AD + East Asian ideograph + + + 275D5E + 94E2 + E993A2 + East Asian ideograph + + + 275D5F + 94EC + E993AC + East Asian ideograph + + + 275D60 + 94E8 + E993A8 + East Asian ideograph + + + 275D61 + 8854 + E8A194 + East Asian ideograph + + + 275D62 + 950C + E9948C + East Asian ideograph + + + 275D63 + 9511 + E99491 + East Asian ideograph + + + 275D64 + 9510 + E99490 + East Asian ideograph + + + 275D65 + 94FA + E993BA + East Asian ideograph + + + 275D66 + 9500 + E99480 + East Asian ideograph + + + 275D67 + 94DD + E9939D + East Asian ideograph + + + 275D68 + 9504 + E99484 + East Asian ideograph + + + 275D69 + 9509 + E99489 + East Asian ideograph + + + 275D6A + 950B + E9948B + East Asian ideograph + + + 275D6B + 952D + E994AD + East Asian ideograph + + + 275D6D + 952F + E994AF + East Asian ideograph + + + 275D6E + 9530 + E994B0 + East Asian ideograph + + + 275D6F + 9519 + E99499 + East Asian ideograph + + + 275D70 + 94B1 + E992B1 + East Asian ideograph + + + 275D71 + 94A2 + E992A2 + East Asian ideograph + + + 275D72 + 9521 + E994A1 + East Asian ideograph + + + 275D73 + 94EE + E993AE + East Asian ideograph + + + 275D74 + 5F55 + E5BD95 + East Asian ideograph + + + 275D75 + 9525 + E994A5 + East Asian ideograph + + + 275D76 + 9526 + E994A6 + East Asian ideograph + + + 275D77 + 9540 + E99580 + East Asian ideograph + + + 275D78 + 9541 + E99581 + East Asian ideograph + + + 275D79 + 952E + E994AE + East Asian ideograph + + + 275D7A + 9532 + E994B2 + East Asian ideograph + + + 275D7C + 9505 + E99485 + East Asian ideograph + + + 275D7D + 951A + E9949A + East Asian ideograph + + + 275D7E + 953E + E994BE + East Asian ideograph + + + 275E21 + 949F + E9929F + East Asian ideograph + + + 275E22 + 9524 + E994A4 + East Asian ideograph + + + 275E23 + 9539 + E994B9 + East Asian ideograph + + + 275E24 + 953B + E994BB + East Asian ideograph + + + 275E25 + 9551 + E99591 + East Asian ideograph + + + 275E27 + 9547 + E99587 + East Asian ideograph + + + 275E28 + 9501 + E99481 + East Asian ideograph + + + 275E29 + 94A8 + E992A8 + East Asian ideograph + + + 275E2A + 954D + E9958D + East Asian ideograph + + + 275E2B + 955C + E9959C + East Asian ideograph + + + 275E2C + 955D + E9959D + East Asian ideograph + + + 275E2E + 955E + E9959E + East Asian ideograph + + + 275E2F + 94F2 + E993B2 + East Asian ideograph + + + 275E30 + 94FF + E993BF + East Asian ideograph + + + 275E31 + 94FE + E993BE + East Asian ideograph + + + 275E32 + 9556 + E99596 + East Asian ideograph + + + 275E33 + 9557 + E99597 + East Asian ideograph + + + 275E34 + 9542 + E99582 + East Asian ideograph + + + 275E35 + 9558 + E99598 + East Asian ideograph + + + 275E36 + 9559 + E99599 + East Asian ideograph + + + 275E37 + 9535 + E994B5 + East Asian ideograph + + + 275E39 + 94D9 + E99399 + East Asian ideograph + + + 275E3A + 9570 + E995B0 + East Asian ideograph + + + 275E3B + 9508 + E99488 + East Asian ideograph + + + 275E3C + 956D + E995AD + East Asian ideograph + + + 275E3D + 94C1 + E99381 + East Asian ideograph + + + 275E3E + 94DB + E9939B + East Asian ideograph + + + 275E3F + 94CE + E9938E + East Asian ideograph + + + 275E40 + 956F + E995AF + East Asian ideograph + + + 275E43 + 94F8 + E993B8 + East Asian ideograph + + + 275E44 + 9573 + E995B3 + East Asian ideograph + + + 275E45 + 94C4 + E99384 + East Asian ideograph + + + 275E46 + 9576 + E995B6 + East Asian ideograph + + + 275E47 + 94A5 + E992A5 + East Asian ideograph + + + 275E48 + 92AE + E98AAE + East Asian ideograph + + + 275E49 + 9523 + E994A3 + East Asian ideograph + + + 275E4A + 94BB + E992BB + East Asian ideograph + + + 275E4B + 51FF + E587BF + East Asian ideograph + + + 275E4C + 957F + E995BF + East Asian ideograph + + + 275E4D + 95E8 + E997A8 + East Asian ideograph + + + 275E4E + 95E9 + E997A9 + East Asian ideograph + + + 275E4F + 95EA + E997AA + East Asian ideograph + + + 275E50 + 95ED + E997AD + East Asian ideograph + + + 275E51 + 95F5 + E997B5 + East Asian ideograph + + + 275E52 + 95F0 + E997B0 + East Asian ideograph + + + 275E53 + 5F00 + E5BC80 + East Asian ideograph + + + 275E54 + 95F2 + E997B2 + East Asian ideograph + + + 275E55 + 95F4 + E997B4 + East Asian ideograph + + + 275E57 + 95F8 + E997B8 + East Asian ideograph + + + 275E58 + 9602 + E99882 + East Asian ideograph + + + 275E59 + 95FA + E997BA + East Asian ideograph + + + 275E5A + 95FD + E997BD + East Asian ideograph + + + 275E5B + 9601 + E99881 + East Asian ideograph + + + 275E5C + 9600 + E99880 + East Asian ideograph + + + 275E5D + 5408 + E59088 + East Asian ideograph + + + 275E5E + 9605 + E99885 + East Asian ideograph + + + 275E5F + 95FE + E997BE + East Asian ideograph + + + 275E60 + 960E + E9988E + East Asian ideograph + + + 275E61 + 9614 + E99894 + East Asian ideograph + + + 275E62 + 9615 + E99895 + East Asian ideograph + + + 275E63 + 9611 + E99891 + East Asian ideograph + + + 275E64 + 95F1 + E997B1 + East Asian ideograph + + + 275E65 + 677F + E69DBF + East Asian ideograph + + + 275E67 + 95EF + E997AF + East Asian ideograph + + + 275E68 + 9617 + E99897 + East Asian ideograph + + + 275E69 + 5173 + E585B3 + East Asian ideograph + + + 275E6A + 9610 + E99890 + East Asian ideograph + + + 275E6B + 8F9F + E8BE9F + East Asian ideograph (duplicate simplified) + + + 275E7B + 9635 + E998B5 + East Asian ideograph + + + 275F23 + 9648 + E99988 + East Asian ideograph + + + 275F24 + 9646 + E99986 + East Asian ideograph + + + 275F2A + 9634 + E998B4 + East Asian ideograph + + + 275F2B + 961F + E9989F + East Asian ideograph + + + 275F2C + 9636 + E998B6 + East Asian ideograph + + + 275F2E + 9633 + E998B3 + East Asian ideograph + + + 275F37 + 9645 + E99985 + East Asian ideograph + + + 275F39 + 968F + E99A8F + East Asian ideograph + + + 275F3A + 9669 + E999A9 + East Asian ideograph + + + 275F3B + 9690 + E99A90 + East Asian ideograph + + + 275F3C + 9647 + E99987 + East Asian ideograph + + + 275F3D + 96B6 + E99AB6 + East Asian ideograph + + + 275F3E + 53EA + E58FAA + East Asian ideograph (duplicate simplified) + + + 275F4A + 867D + E899BD + East Asian ideograph + + + 275F4B + 6742 + E69D82 + East Asian ideograph + + + 275F4C + 9E21 + E9B8A1 + East Asian ideograph + + + 275F4D + 96CF + E99B8F + East Asian ideograph + + + 275F4E + 53CC + E58F8C + East Asian ideograph + + + 275F4F + 79BB + E7A6BB + East Asian ideograph + + + 275F50 + 96BE + E99ABE + East Asian ideograph + + + 275F54 + 4E91 + E4BA91 + East Asian ideograph + + + 275F55 + 7535 + E794B5 + East Asian ideograph + + + 275F67 + 96FE + E99BBE + East Asian ideograph + + + 275F6B + 9701 + E99C81 + East Asian ideograph + + + 275F6D + 972D + E99CAD + East Asian ideograph + + + 275F6E + 96F3 + E99BB3 + East Asian ideograph + + + 275F6F + 7075 + E781B5 + East Asian ideograph + + + 275F79 + 9765 + E99DA5 + East Asian ideograph + + + 276023 + 5DE9 + E5B7A9 + East Asian ideograph + + + 276029 + 9791 + E99E91 + East Asian ideograph + + + 27602C + 97E6 + E99FA6 + East Asian ideograph + + + 27602D + 97E7 + E99FA7 + East Asian ideograph + + + 27602E + 97E9 + E99FA9 + East Asian ideograph + + + 27602F + 97EC + E99FAC + East Asian ideograph + + + 276030 + 827D + E889BD + East Asian ideograph + + + 276036 + 54CD + E5938D + East Asian ideograph + + + 276037 + 9875 + E9A1B5 + East Asian ideograph + + + 276038 + 9876 + E9A1B6 + East Asian ideograph + + + 276039 + 9877 + E9A1B7 + East Asian ideograph + + + 27603A + 9879 + E9A1B9 + East Asian ideograph + + + 27603B + 987A + E9A1BA + East Asian ideograph + + + 27603C + 987B + E9A1BB + East Asian ideograph + + + 27603D + 9884 + E9A284 + East Asian ideograph + + + 27603E + 987C + E9A1BC + East Asian ideograph + + + 27603F + 987D + E9A1BD + East Asian ideograph + + + 276040 + 987F + E9A1BF + East Asian ideograph + + + 276041 + 9881 + E9A281 + East Asian ideograph + + + 276042 + 9882 + E9A282 + East Asian ideograph + + + 276043 + 9887 + E9A287 + East Asian ideograph + + + 276044 + 9886 + E9A286 + East Asian ideograph + + + 276045 + 9889 + E9A289 + East Asian ideograph + + + 276046 + 5934 + E5A4B4 + East Asian ideograph + + + 276047 + 988A + E9A28A + East Asian ideograph + + + 276048 + 9888 + E9A288 + East Asian ideograph + + + 276049 + 9891 + E9A291 + East Asian ideograph + + + 27604A + 9893 + E9A293 + East Asian ideograph + + + 27604B + 9894 + E9A294 + East Asian ideograph + + + 27604C + 9890 + E9A290 + East Asian ideograph + + + 27604D + 9897 + E9A297 + East Asian ideograph + + + 27604E + 989C + E9A29C + East Asian ideograph + + + 27604F + 989D + E9A29D + East Asian ideograph + + + 276050 + 9898 + E9A298 + East Asian ideograph + + + 276051 + 989A + E9A29A + East Asian ideograph + + + 276052 + 989B + E9A29B + East Asian ideograph + + + 276053 + 7C7B + E7B1BB + East Asian ideograph + + + 276054 + 98A0 + E9A2A0 + East Asian ideograph + + + 276055 + 613F + E684BF + East Asian ideograph + + + 276056 + 987E + E9A1BE + East Asian ideograph + + + 276057 + 98A4 + E9A2A4 + East Asian ideograph + + + 276058 + 663E + E698BE + East Asian ideograph + + + 276059 + 9885 + E9A285 + East Asian ideograph + + + 27605A + 98A6 + E9A2A6 + East Asian ideograph + + + 27605B + 98CE + E9A38E + East Asian ideograph + + + 27605C + 98D2 + E9A392 + East Asian ideograph + + + 27605D + 53F0 + E58FB0 + East Asian ideograph (duplicate simplified) + + + 27605E + 522E + E588AE + East Asian ideograph + + + 27605F + 98D3 + E9A393 + East Asian ideograph + + + 276061 + 98D5 + E9A395 + East Asian ideograph + + + 276062 + 98D8 + E9A398 + East Asian ideograph + + + 276063 + 98DE + E9A39E + East Asian ideograph + + + 276065 + 9965 + E9A5A5 + East Asian ideograph + + + 276067 + 9968 + E9A5A8 + East Asian ideograph + + + 276068 + 996C + E9A5AC + East Asian ideograph + + + 276069 + 996A + E9A5AA + East Asian ideograph + + + 27606A + 996E + E9A5AE + East Asian ideograph + + + 27606B + 996D + E9A5AD + East Asian ideograph + + + 27606C + 9972 + E9A5B2 + East Asian ideograph + + + 27606D + 9974 + E9A5B4 + East Asian ideograph + + + 27606E + 9971 + E9A5B1 + East Asian ideograph + + + 27606F + 9970 + E9A5B0 + East Asian ideograph + + + 276070 + 997A + E9A5BA + East Asian ideograph + + + 276071 + 517B + E585BB + East Asian ideograph + + + 276072 + 9975 + E9A5B5 + East Asian ideograph + + + 276073 + 9977 + E9A5B7 + East Asian ideograph + + + 276075 + 9981 + E9A681 + East Asian ideograph + + + 276076 + 4F59 + E4BD99 + East Asian ideograph + + + 276077 + 997F + E9A5BF + East Asian ideograph + + + 276078 + 997C + E9A5BC + East Asian ideograph + + + 276079 + 9986 + E9A686 + East Asian ideograph + + + 27607A + 996F + E9A5AF + East Asian ideograph + + + 27607B + 9984 + E9A684 + East Asian ideograph + + + 27607C + 9985 + E9A685 + East Asian ideograph + + + 27607E + 998F + E9A68F + East Asian ideograph + + + 276121 + 998A + E9A68A + East Asian ideograph + + + 276123 + 9992 + E9A692 + East Asian ideograph + + + 276124 + 9976 + E9A5B6 + East Asian ideograph + + + 276126 + 990D + E9A48D + East Asian ideograph + + + 276127 + 998B + E9A68B + East Asian ideograph + + + 27612C + 9A6C + E9A9AC + East Asian ideograph + + + 27612D + 51AF + E586AF + East Asian ideograph + + + 27612E + 9A6D + E9A9AD + East Asian ideograph + + + 27612F + 9A70 + E9A9B0 + East Asian ideograph + + + 276130 + 9A6E + E9A9AE + East Asian ideograph + + + 276131 + 9A6F + E9A9AF + East Asian ideograph + + + 276132 + 9A73 + E9A9B3 + East Asian ideograph + + + 276133 + 9A7B + E9A9BB + East Asian ideograph + + + 276134 + 9A7C + E9A9BC + East Asian ideograph + + + 276135 + 9A7E + E9A9BE + East Asian ideograph + + + 276136 + 9A77 + E9A9B7 + East Asian ideograph + + + 276137 + 9A76 + E9A9B6 + East Asian ideograph + + + 276138 + 9A79 + E9A9B9 + East Asian ideograph + + + 276139 + 9A78 + E9A9B8 + East Asian ideograph + + + 27613A + 9A7D + E9A9BD + East Asian ideograph + + + 27613B + 9A87 + E9AA87 + East Asian ideograph + + + 27613C + 9A86 + E9AA86 + East Asian ideograph + + + 27613D + 9A8B + E9AA8B + East Asian ideograph + + + 27613E + 9A8F + E9AA8F + East Asian ideograph + + + 27613F + 9A88 + E9AA88 + East Asian ideograph + + + 276140 + 9A91 + E9AA91 + East Asian ideograph + + + 276141 + 9A97 + E9AA97 + East Asian ideograph + + + 276142 + 9A9B + E9AA9B + East Asian ideograph + + + 276143 + 9A9E + E9AA9E + East Asian ideograph + + + 276144 + 817E + E885BE + East Asian ideograph + + + 276145 + 9A9A + E9AA9A + East Asian ideograph + + + 276146 + 9AA0 + E9AAA0 + East Asian ideograph + + + 276147 + 9A71 + E9A9B1 + East Asian ideograph + + + 276148 + 84E6 + E893A6 + East Asian ideograph + + + 276149 + 9AA1 + E9AAA1 + East Asian ideograph + + + 27614A + 9A84 + E9AA84 + East Asian ideograph + + + 27614B + 60CA + E6838A + East Asian ideograph + + + 27614C + 9A7F + E9A9BF + East Asian ideograph + + + 27614D + 9A8C + E9AA8C + East Asian ideograph + + + 27614E + 9AA4 + E9AAA4 + East Asian ideograph + + + 27614F + 9A74 + E9A9B4 + East Asian ideograph + + + 276150 + 9AA5 + E9AAA5 + East Asian ideograph + + + 276151 + 9A8A + E9AA8A + East Asian ideograph + + + 276153 + 80AE + E882AE + East Asian ideograph + + + 276158 + 9AC5 + E9AB85 + East Asian ideograph + + + 27615A + 4F53 + E4BD93 + East Asian ideograph + + + 27615B + 810F + E8848F + East Asian ideograph + + + 27615F + 53D1 + E58F91 + East Asian ideograph (duplicate simplified) + + + 276163 + 677E + E69DBE + East Asian ideograph (duplicate simplified) + + + 276164 + 80E1 + E883A1 + East Asian ideograph (duplicate simplified) + + + 276165 + 987B + E9A1BB + East Asian ideograph (duplicate simplified) + + + 276166 + 9B13 + E9AC93 + East Asian ideograph + + + 276167 + 6597 + E69697 + East Asian ideograph + + + 276168 + 95F9 + E997B9 + East Asian ideograph + + + 27616A + 90C1 + E98381 + East Asian ideograph + + + 276173 + 9B47 + E9AD87 + East Asian ideograph + + + 276174 + 9C7C + E9B1BC + East Asian ideograph + + + 276175 + 9C7F + E9B1BF + East Asian ideograph + + + 276176 + 9C81 + E9B281 + East Asian ideograph + + + 276177 + 9C8D + E9B28D + East Asian ideograph + + + 276178 + 9C9B + E9B29B + East Asian ideograph + + + 276179 + 9C9C + E9B29C + East Asian ideograph + + + 27617A + 9C94 + E9B294 + East Asian ideograph + + + 27617B + 9CA8 + E9B2A8 + East Asian ideograph + + + 27617C + 9CA4 + E9B2A4 + East Asian ideograph + + + 27617D + 9CB8 + E9B2B8 + East Asian ideograph + + + 27617E + 9CB3 + E9B2B3 + East Asian ideograph + + + 276221 + 9CC3 + E9B383 + East Asian ideograph + + + 276222 + 9CC5 + E9B385 + East Asian ideograph + + + 276223 + 9CAB + E9B2AB + East Asian ideograph + + + 276224 + 9CCD + E9B38D + East Asian ideograph + + + 276225 + 9CCF + E9B38F + East Asian ideograph + + + 276226 + 9CA2 + E9B2A2 + East Asian ideograph + + + 276227 + 9CD4 + E9B394 + East Asian ideograph + + + 276228 + 9CD7 + E9B397 + East Asian ideograph + + + 276229 + 9CDD + E9B39D + East Asian ideograph + + + 27622A + 9CDE + E9B39E + East Asian ideograph + + + 27622B + 9CDC + E9B39C + East Asian ideograph + + + 27622C + 9CD6 + E9B396 + East Asian ideograph + + + 27622E + 9C88 + E9B288 + East Asian ideograph + + + 27622F + 9E1F + E9B89F + East Asian ideograph + + + 276230 + 9E20 + E9B8A0 + East Asian ideograph + + + 276231 + 9E22 + E9B8A2 + East Asian ideograph + + + 276232 + 9E23 + E9B8A3 + East Asian ideograph + + + 276233 + 51E4 + E587A4 + East Asian ideograph + + + 276234 + 9E29 + E9B8A9 + East Asian ideograph + + + 276235 + 9E26 + E9B8A6 + East Asian ideograph + + + 276236 + 9E35 + E9B8B5 + East Asian ideograph + + + 276237 + 9E2A + E9B8AA + East Asian ideograph + + + 276238 + 9E2D + E9B8AD + East Asian ideograph + + + 276239 + 9E2F + E9B8AF + East Asian ideograph + + + 27623A + 9E33 + E9B8B3 + East Asian ideograph + + + 27623C + 9E3F + E9B8BF + East Asian ideograph + + + 27623D + 9E3D + E9B8BD + East Asian ideograph + + + 27623E + 9E49 + E9B989 + East Asian ideograph + + + 27623F + 9E43 + E9B983 + East Asian ideograph + + + 276240 + 9E44 + E9B984 + East Asian ideograph + + + 276241 + 9E45 + E9B985 + East Asian ideograph + + + 276242 + 9E51 + E9B991 + East Asian ideograph + + + 276243 + 9E4A + E9B98A + East Asian ideograph + + + 276244 + 9E4C + E9B98C + East Asian ideograph + + + 276245 + 9E4F + E9B98F + East Asian ideograph + + + 276246 + 9E64 + E9B9A4 + East Asian ideograph + + + 276247 + 83BA + E88EBA + East Asian ideograph + + + 276248 + 9E5E + E9B99E + East Asian ideograph + + + 276249 + 9E67 + E9B9A7 + East Asian ideograph + + + 27624A + 9E25 + E9B8A5 + East Asian ideograph + + + 27624B + 9E36 + E9B8B6 + East Asian ideograph + + + 27624C + 9E70 + E9B9B0 + East Asian ideograph + + + 27624D + 9E6D + E9B9AD + East Asian ideograph + + + 27624E + 9E66 + E9B9A6 + East Asian ideograph + + + 27624F + 9E3E + E9B8BE + East Asian ideograph + + + 276250 + 54B8 + E592B8 + East Asian ideograph + + + 276251 + 76D0 + E79B90 + East Asian ideograph + + + 276252 + 7877 + E7A1B7 + East Asian ideograph + + + 276256 + 4E3D + E4B8BD + East Asian ideograph + + + 27625B + 9EA6 + E9BAA6 + East Asian ideograph + + + 27625C + 9EB8 + E9BAB8 + East Asian ideograph + + + 27625E + 9762 + E99DA2 + East Asian ideograph + + + 276260 + 4E48 + E4B988 + East Asian ideograph + + + 27626A + 70B9 + E782B9 + East Asian ideograph + + + 27626F + 515A + E5859A + East Asian ideograph + + + 276272 + 9EE9 + E9BBA9 + East Asian ideograph + + + 276276 + 51AC + E586AC + East Asian ideograph + + + 27627D + 9F50 + E9BD90 + East Asian ideograph + + + 27627E + 658E + E6968E + East Asian ideograph + + + 276321 + 9F7F + E9BDBF + East Asian ideograph + + + 276322 + 9F83 + E9BE83 + East Asian ideograph + + + 276324 + 9F84 + E9BE84 + East Asian ideograph + + + 276325 + 9F88 + E9BE88 + East Asian ideograph + + + 276326 + 9F87 + E9BE87 + East Asian ideograph + + + 276327 + 9F89 + E9BE89 + East Asian ideograph + + + 276328 + 9F8A + E9BE8A + East Asian ideograph + + + 276329 + 9F8C + E9BE8C + East Asian ideograph + + + 27632A + 9F8B + E9BE8B + East Asian ideograph + + + 27632B + 9F99 + E9BE99 + East Asian ideograph + + + 27632C + 9F9A + E9BE9A + East Asian ideograph + + + 27632D + 9F9F + E9BE9F + East Asian ideograph + + + 276649 + 4F1C + E4BC9C + East Asian ideograph + + + 276775 + 4F65 + E4BDA5 + East Asian ideograph + + + 27677C + 4F1B + E4BC9B + East Asian ideograph + + + 276822 + 507B + E581BB + East Asian ideograph + + + 276842 + 507E + E581BE + East Asian ideograph + + + 276871 + 4FAA + E4BEAA + East Asian ideograph + + + 276944 + 50A9 + E582A9 + East Asian ideograph + + + 276948 + 50A5 + E582A5 + East Asian ideograph + + + 276B3E + 522D + E588AD + East Asian ideograph + + + 276B5B + 5250 + E58990 + East Asian ideograph + + + 276B5F + 672D + E69CAD + East Asian ideograph + + + 276B79 + 523F + E588BF + East Asian ideograph + + + 276B7A + 523D + E588BD + East Asian ideograph + + + 276D2E + 5326 + E58CA6 + East Asian ideograph + + + 276D6D + 538D + E58E8D + East Asian ideograph + + + 276E2A + 53A3 + E58EA3 + East Asian ideograph + + + 276F69 + 5459 + E59199 + East Asian ideograph + + + 277030 + 5457 + E59197 + East Asian ideograph + + + 277169 + 5522 + E594A2 + East Asian ideograph + + + 277234 + 551B + E5949B + East Asian ideograph + + + 277239 + 54D4 + E59394 + East Asian ideograph + + + 277255 + 54D3 + E59393 + East Asian ideograph + + + 277258 + 6076 + E681B6 + East Asian ideograph (duplicate simplified) + + + 277267 + 5452 + E59192 + East Asian ideograph + + + 277272 + 54D2 + E59392 + East Asian ideograph + + + 27727A + 54D5 + E59395 + East Asian ideograph + + + 27727E + 54D9 + E59399 + East Asian ideograph + + + 277328 + 54DC + E5939C + East Asian ideograph + + + 277345 + 556E + E595AE + East Asian ideograph + + + 27734C + 5456 + E59196 + East Asian ideograph + + + 27735A + 55BE + E596BE + East Asian ideograph + + + 277360 + 5181 + E58681 + East Asian ideograph + + + 27742E + 56F5 + E59BB5 + East Asian ideograph + + + 277638 + 57AD + E59EAD + East Asian ideograph + + + 27767A + 57DA + E59F9A + East Asian ideograph + + + 277742 + 57D8 + E59F98 + East Asian ideograph + + + 277745 + 57D9 + E59F99 + East Asian ideograph + + + 277748 + 57B2 + E59EB2 + East Asian ideograph + + + 27785A + 5785 + E59E85 + East Asian ideograph + + + 27785E + 5786 + E59E86 + East Asian ideograph + + + 277954 + 5956 + E5A596 + East Asian ideograph + + + 277B3C + 5A05 + E5A885 + East Asian ideograph + + + 277C24 + 5A32 + E5A8B2 + East Asian ideograph + + + 277C36 + 59AB + E5A6AB + East Asian ideograph + + + 277D2B + 5A06 + E5A886 + East Asian ideograph + + + 277D40 + 5AF1 + E5ABB1 + East Asian ideograph + + + 277D48 + 5AD2 + E5AB92 + East Asian ideograph + + + 277D74 + 5A08 + E5A888 + East Asian ideograph + + + 28232B + 5C66 + E5B1A6 + East Asian ideograph + + + 282441 + 5C98 + E5B298 + East Asian ideograph + + + 282458 + 5D03 + E5B483 + East Asian ideograph + + + 28255A + 5D5D + E5B59D + East Asian ideograph + + + 282569 + 5D02 + E5B482 + East Asian ideograph + + + 282577 + 5CE4 + E5B3A4 + East Asian ideograph + + + 282626 + 5CC4 + E5B384 + East Asian ideograph + + + 282632 + 5D58 + E5B598 + East Asian ideograph + + + 282647 + 5CBF + E5B2BF + East Asian ideograph + + + 282659 + 5DEF + E5B7AF + East Asian ideograph + + + 282736 + 5E0F + E5B88F + East Asian ideograph + + + 282747 + 5E3B + E5B8BB + East Asian ideograph + + + 28275F + 5E31 + E5B8B1 + East Asian ideograph + + + 282868 + 5E91 + E5BA91 + East Asian ideograph + + + 282951 + 5F2A + E5BCAA + East Asian ideograph + + + 282D34 + 607D + E681BD + East Asian ideograph + + + 282D5E + 607A + E681BA + East Asian ideograph + + + 282D74 + 6004 + E68084 + East Asian ideograph + + + 282D77 + 60AD + E682AD + East Asian ideograph + + + 282D79 + 60AB + E682AB + East Asian ideograph + + + 282E4C + 6126 + E684A6 + East Asian ideograph + + + 282E52 + 6003 + E68083 + East Asian ideograph + + + 282E5C + 603F + E680BF + East Asian ideograph + + + 282E79 + 6079 + E681B9 + East Asian ideograph + + + 282E7E + 603C + E680BC + East Asian ideograph + + + 282F43 + 6206 + E68886 + East Asian ideograph + + + 282F47 + 620B + E6888B + East Asian ideograph + + + 282F66 + 6217 + E68897 + East Asian ideograph + + + 28336F + 629F + E68A9F + East Asian ideograph + + + 28337B + 62A0 + E68AA0 + East Asian ideograph + + + 28342C + 63BA + E68EBA + East Asian ideograph + + + 28342E + 63BC + E68EBC + East Asian ideograph + + + 283457 + 63B8 + E68EB8 + East Asian ideograph + + + 283462 + 6322 + E68CA2 + East Asian ideograph + + + 283466 + 63FF + E68FBF + East Asian ideograph + + + 28352A + 6448 + E69188 + East Asian ideograph + + + 283542 + 64B7 + E692B7 + East Asian ideograph + + + 283546 + 6445 + E69185 + East Asian ideograph + + + 28355B + 6484 + E69284 + East Asian ideograph + + + 283561 + 64BA + E692BA + East Asian ideograph + + + 28356D + 6512 + E69492 + East Asian ideograph + + + 283671 + 6593 + E69693 + East Asian ideograph + + + 283955 + 6619 + E69899 + East Asian ideograph + + + 28395C + 6654 + E69994 + East Asian ideograph + + + 283B22 + 4E2B + E4B8AB + East Asian ideograph + + + 283B7D + 53F0 + E58FB0 + East Asian ideograph (duplicate simplified) + + + 283D30 + 67A7 + E69EA7 + East Asian ideograph + + + 283D6E + 67A8 + E69EA8 + East Asian ideograph + + + 283F30 + 6966 + E6A5A6 + East Asian ideograph + + + 283F5C + 6769 + E69DA9 + East Asian ideograph + + + 284027 + 6864 + E6A1A4 + East Asian ideograph + + + 284056 + 6920 + E6A4A0 + East Asian ideograph + + + 28405E + 67FD + E69FBD + East Asian ideograph + + + 284140 + 6861 + E6A1A1 + East Asian ideograph + + + 28422B + 6A2F + E6A8AF + East Asian ideograph + + + 284257 + 68BC + E6A2BC + East Asian ideograph + + + 284333 + 680E + E6A08E + East Asian ideograph + + + 284335 + 6A7C + E6A9BC + East Asian ideograph + + + 284337 + 6987 + E6A687 + East Asian ideograph + + + 284339 + 680A + E6A08A + East Asian ideograph + + + 28433A + 69E0 + E6A7A0 + East Asian ideograph + + + 284340 + 67A5 + E69EA5 + East Asian ideograph + + + 284345 + 680C + E6A08C + East Asian ideograph + + + 284350 + 68C2 + E6A382 + East Asian ideograph + + + 284359 + 6989 + E6A689 + East Asian ideograph + + + 284366 + 6924 + E6A4A4 + East Asian ideograph + + + 284539 + 6B9A + E6AE9A + East Asian ideograph + + + 284642 + 6BF5 + E6AFB5 + East Asian ideograph + + + 28464C + 6BE1 + E6AFA1 + East Asian ideograph + + + 284651 + 6C07 + E6B087 + East Asian ideograph + + + 284668 + 6C29 + E6B0A9 + East Asian ideograph + + + 284934 + 6D43 + E6B583 + East Asian ideograph + + + 284971 + 6D9E + E6B69E + East Asian ideograph + + + 284B28 + 6D48 + E6B588 + East Asian ideograph + + + 284B43 + 8365 + E88DA5 + East Asian ideograph + + + 284C2E + 6D52 + E6B592 + East Asian ideograph + + + 284C41 + 6CA4 + E6B2A4 + East Asian ideograph + + + 284C62 + 988D + E9A28D + East Asian ideograph + + + 284D27 + 6D9D + E6B69D + East Asian ideograph + + + 284D2B + 6D54 + E6B594 + East Asian ideograph + + + 284D49 + 6DA0 + E6B6A0 + East Asian ideograph + + + 284D58 + 6CA9 + E6B2A9 + East Asian ideograph + + + 284D59 + 6ED7 + E6BB97 + East Asian ideograph + + + 284E30 + 6E11 + E6B891 + East Asian ideograph + + + 284E3E + 6CF6 + E6B3B6 + East Asian ideograph + + + 284E41 + 6F4B + E6BD8B + East Asian ideograph + + + 284E42 + 6D4D + E6B58D + East Asian ideograph + + + 284E62 + 6F4D + E6BD8D + East Asian ideograph + + + 284E66 + 6EE2 + E6BBA2 + East Asian ideograph + + + 284F26 + 6CF7 + E6B3B7 + East Asian ideograph + + + 284F39 + 6CF8 + E6B3B8 + East Asian ideograph + + + 284F5D + 6CA3 + E6B2A3 + East Asian ideograph + + + 284F61 + 6EE0 + E6BBA0 + East Asian ideograph + + + 284F6B + 6F13 + E6BC93 + East Asian ideograph + + + 284F7D + 704F + E7818F + East Asian ideograph + + + 285029 + 6EDF + E6BB9F + East Asian ideograph + + + 285150 + 70C3 + E78383 + East Asian ideograph + + + 285252 + 709C + E7829C + East Asian ideograph + + + 285323 + 8367 + E88DA7 + East Asian ideograph + + + 28533C + 709D + E7829D + East Asian ideograph + + + 285424 + 70E8 + E783A8 + East Asian ideograph + + + 28544F + 70EC + E783AC + East Asian ideograph + + + 28575E + 72B8 + E78AB8 + East Asian ideograph + + + 28575F + 72F2 + E78BB2 + East Asian ideograph + + + 28582B + 7303 + E78C83 + East Asian ideograph + + + 285836 + 7315 + E78C95 + East Asian ideograph + + + 285A47 + 73AE + E78EAE + East Asian ideograph + + + 285B21 + 740F + E7908F + East Asian ideograph + + + 285C3A + 748E + E7928E + East Asian ideograph + + + 285C40 + 74D2 + E79392 + East Asian ideograph + + + 285D6B + 7572 + E795B2 + East Asian ideograph + + + 285E7A + 75D6 + E79796 + East Asian ideograph + + + 285F48 + 7617 + E79897 + East Asian ideograph + + + 285F5E + 7618 + E79898 + East Asian ideograph + + + 285F6F + 7605 + E79885 + East Asian ideograph + + + 28602B + 762A + E798AA + East Asian ideograph + + + 286032 + 75AC + E796AC + East Asian ideograph + + + 286037 + 763F + E798BF + East Asian ideograph + + + 28603A + 75C8 + E79788 + East Asian ideograph + + + 286222 + 7726 + E79CA6 + East Asian ideograph + + + 286272 + 770D + E79C8D + East Asian ideograph + + + 28632C + 7751 + E79D91 + East Asian ideograph + + + 28645A + 7817 + E7A097 + East Asian ideograph + + + 286460 + 7856 + E7A196 + East Asian ideograph + + + 286540 + 7800 + E7A080 + East Asian ideograph + + + 28656A + 789B + E7A29B + East Asian ideograph + + + 286577 + 789C + E7A29C + East Asian ideograph + + + 286622 + 7857 + E7A197 + East Asian ideograph + + + 286655 + 783B + E7A0BB + East Asian ideograph + + + 286A3C + 7AAD + E7AAAD + East Asian ideograph + + + 286B7C + 7B15 + E7AC95 + East Asian ideograph + + + 286C58 + 7BA7 + E7AEA7 + East Asian ideograph + + + 286D47 + 7BA6 + E7AEA6 + East Asian ideograph + + + 286D54 + 7B5A + E7AD9A + East Asian ideograph + + + 286E56 + 7BA8 + E7AEA8 + East Asian ideograph + + + 286E68 + 7B3E + E7ACBE + East Asian ideograph + + + 286E69 + 7C16 + E7B096 + East Asian ideograph + + + 287022 + 7CC1 + E7B381 + East Asian ideograph + + + 28702E + 56E2 + E59BA2 + East Asian ideograph (duplicate simplified) + + + 287030 + 7C9D + E7B29D + East Asian ideograph + + + 287035 + 7C74 + E7B1B4 + East Asian ideograph + + + 287042 + 7EA1 + E7BAA1 + East Asian ideograph + + + 287045 + 7EA8 + E7BAA8 + East Asian ideograph + + + 28704A + 7EBE + E7BABE + East Asian ideograph + + + 287061 + 7EC0 + E7BB80 + East Asian ideograph + + + 287062 + 7EC1 + E7BB81 + East Asian ideograph + + + 287065 + 7EC2 + E7BB82 + East Asian ideograph + + + 28706A + 7ED0 + E7BB90 + East Asian ideograph + + + 287130 + 7EDB + E7BB9B + East Asian ideograph + + + 287134 + 7ED7 + E7BB97 + East Asian ideograph + + + 287139 + 7EE8 + E7BBA8 + East Asian ideograph + + + 287144 + 7EE0 + E7BBA0 + East Asian ideograph + + + 28714D + 7EE1 + E7BBA1 + East Asian ideograph + + + 287161 + 7EFB + E7BBBB + East Asian ideograph + + + 287167 + 7EEF + E7BBAF + East Asian ideograph + + + 287174 + 7EF2 + E7BBB2 + East Asian ideograph + + + 287178 + 7EF6 + E7BBB6 + East Asian ideograph + + + 28717D + 7EFA + E7BBBA + East Asian ideograph + + + 287229 + 7F17 + E7BC97 + East Asian ideograph + + + 28722A + 7F02 + E7BC82 + East Asian ideograph + + + 287231 + 7F03 + E7BC83 + East Asian ideograph + + + 287236 + 7F07 + E7BC87 + East Asian ideograph + + + 28723C + 7F08 + E7BC88 + East Asian ideograph + + + 28723E + 7F0C + E7BC8C + East Asian ideograph + + + 287247 + 7F11 + E7BC91 + East Asian ideograph + + + 287248 + 7F0F + E7BC8F + East Asian ideograph + + + 287251 + 7F1F + E7BC9F + East Asian ideograph + + + 287253 + 7F12 + E7BC92 + East Asian ideograph + + + 28725D + 7F1C + E7BC9C + East Asian ideograph + + + 28725E + 7F19 + E7BC99 + East Asian ideograph + + + 28725F + 7F1B + E7BC9B + East Asian ideograph + + + 287269 + 7EC9 + E7BB89 + East Asian ideograph + + + 287271 + 7EA4 + E7BAA4 + East Asian ideograph (duplicate simplified) + + + 287272 + 7F21 + E7BCA1 + East Asian ideograph + + + 287275 + 7D77 + E7B5B7 + East Asian ideograph + + + 287279 + 7F25 + E7BCA5 + East Asian ideograph + + + 287321 + 7F26 + E7BCA6 + East Asian ideograph + + + 28732D + 7F2F + E7BCAF + East Asian ideograph + + + 287349 + 7F30 + E7BCB0 + East Asian ideograph + + + 28734E + 7F32 + E7BCB2 + East Asian ideograph + + + 287351 + 7F33 + E7BCB3 + East Asian ideograph + + + 287352 + 7F34 + E7BCB4 + East Asian ideograph + + + 287359 + 7F31 + E7BCB1 + East Asian ideograph + + + 28735D + 7EA9 + E7BAA9 + East Asian ideograph + + + 287360 + 7F2C + E7BCAC + East Asian ideograph + + + 28736D + 624D + E6898D + East Asian ideograph + + + 287374 + 7F35 + E7BCB5 + East Asian ideograph + + + 28742E + 7F42 + E7BD82 + East Asian ideograph + + + 287431 + 575B + E59D9B + East Asian ideograph (duplicate simplified) + + + 287472 + 7F74 + E7BDB4 + East Asian ideograph + + + 287531 + 7F9F + E7BE9F + East Asian ideograph + + + 287655 + 8027 + E880A7 + East Asian ideograph + + + 287739 + 8069 + E881A9 + East Asian ideograph + + + 28773F + 804D + E8818D + East Asian ideograph + + + 287855 + 80EB + E883AB + East Asian ideograph + + + 28786E + 80E8 + E883A8 + East Asian ideograph + + + 287941 + 8136 + E884B6 + East Asian ideograph + + + 287A56 + 8114 + E88494 + East Asian ideograph + + + 287E61 + 82CC + E88B8C + East Asian ideograph + + + 29233C + 836D + E88DAD + East Asian ideograph + + + 29233D + 836E + E88DAE + East Asian ideograph + + + 292375 + 83B3 + E88EB3 + East Asian ideograph + + + 292433 + 8298 + E88A98 + East Asian ideograph (duplicate simplified) + + + 29243A + 83BC + E88EBC + East Asian ideograph + + + 29247D + 835C + E88D9C + East Asian ideograph + + + 292524 + 848C + E8928C + East Asian ideograph + + + 29252D + 8311 + E88C91 + East Asian ideograph + + + 292535 + 82C1 + E88B81 + East Asian ideograph + + + 292546 + 8368 + E88DA8 + East Asian ideograph + + + 29254B + 835B + E88D9B + East Asian ideograph + + + 29255A + 8487 + E89287 + East Asian ideograph + + + 292564 + 8489 + E89289 + East Asian ideograph + + + 292567 + 836C + E88DAC + East Asian ideograph + + + 292571 + 835E + E88D9E + East Asian ideograph + + + 292574 + 83B8 + E88EB8 + East Asian ideograph + + + 292577 + 8297 + E88A97 + East Asian ideograph + + + 292633 + 84E3 + E893A3 + East Asian ideograph + + + 292651 + 84DF + E8939F + East Asian ideograph + + + 292657 + 835F + E88D9F + East Asian ideograph + + + 292658 + 83B6 + E88EB6 + East Asian ideograph + + + 292661 + 8360 + E88DA0 + East Asian ideograph + + + 292668 + 8369 + E88DA9 + East Asian ideograph + + + 292752 + 830F + E88C8F + East Asian ideograph + + + 292765 + 82C8 + E88B88 + East Asian ideograph + + + 292768 + 8572 + E895B2 + East Asian ideograph + + + 29282A + 8539 + E894B9 + East Asian ideograph + + + 292840 + 84E0 + E893A0 + East Asian ideograph + + + 292A2F + 86F1 + E89BB1 + East Asian ideograph + + + 292A34 + 86AC + E89AAC + East Asian ideograph + + + 292B55 + 86F3 + E89BB3 + East Asian ideograph + + + 292B6E + 86F0 + E89BB0 + East Asian ideograph + + + 292C4C + 866E + E899AE + East Asian ideograph + + + 292C55 + 86CF + E89B8F + East Asian ideograph + + + 292C5D + 867F + E899BF + East Asian ideograph + + + 292C61 + 86F4 + E89BB4 + East Asian ideograph + + + 292C64 + 877E + E89DBE + East Asian ideograph + + + 292D51 + 8511 + E89491 + East Asian ideograph + + + 292F60 + 88E2 + E8A3A2 + East Asian ideograph + + + 292F72 + 88E5 + E8A3A5 + East Asian ideograph + + + 29302D + 88E3 + E8A3A3 + East Asian ideograph + + + 293032 + 7962 + E7A5A2 + East Asian ideograph + + + 293066 + 89C7 + E8A787 + East Asian ideograph + + + 29306F + 89CB + E8A78B + East Asian ideograph + + + 29307D + 89CF + E8A78F + East Asian ideograph + + + 29312B + 89D1 + E8A791 + East Asian ideograph + + + 293132 + 89CC + E8A78C + East Asian ideograph + + + 293160 + 89EF + E8A7AF + East Asian ideograph + + + 29322A + 8BB5 + E8AEB5 + East Asian ideograph + + + 29323B + 8BCE + E8AF8E + East Asian ideograph + + + 29323C + 8BD2 + E8AF92 + East Asian ideograph + + + 29324F + 8BD6 + E8AF96 + East Asian ideograph + + + 293250 + 8BD3 + E8AF93 + East Asian ideograph + + + 293256 + 8BE9 + E8AFA9 + East Asian ideograph + + + 29325D + 8BD4 + E8AF94 + East Asian ideograph + + + 29325E + 8BDC + E8AF9C + East Asian ideograph + + + 293271 + 8BEE + E8AFAE + East Asian ideograph + + + 29327E + 8C07 + E8B087 + East Asian ideograph + + + 293325 + 8BF9 + E8AFB9 + East Asian ideograph + + + 29332C + 8BFC + E8AFBC + East Asian ideograph + + + 293336 + 8BE4 + E8AFA4 + East Asian ideograph + + + 293338 + 8BFD + E8AFBD + East Asian ideograph + + + 29333B + 8C00 + E8B080 + East Asian ideograph + + + 293340 + 8C02 + E8B082 + East Asian ideograph + + + 293344 + 8C19 + E8B099 + East Asian ideograph + + + 293345 + 8BE8 + E8AFA8 + East Asian ideograph + + + 29334E + 8C0C + E8B08C + East Asian ideograph + + + 293357 + 8C14 + E8B094 + East Asian ideograph + + + 293359 + 8C11 + E8B091 + East Asian ideograph + + + 29335D + 8C16 + E8B096 + East Asian ideograph + + + 293362 + 8C1D + E8B09D + East Asian ideograph + + + 293373 + 8C21 + E8B0A1 + East Asian ideograph + + + 29337A + 8BCC + E8AF8C + East Asian ideograph + + + 29337D + 8C27 + E8B0A7 + East Asian ideograph + + + 293430 + 8BB4 + E8AEB4 + East Asian ideograph + + + 293438 + 8C29 + E8B0A9 + East Asian ideograph + + + 29344D + 8C2E + E8B0AE + East Asian ideograph + + + 293459 + 8C2F + E8B0AF + East Asian ideograph + + + 293468 + 8C35 + E8B0B5 + East Asian ideograph + + + 29352D + 8C30 + E8B0B0 + East Asian ideograph + + + 293537 + 8C20 + E8B0A0 + East Asian ideograph + + + 293539 + 8C33 + E8B0B3 + East Asian ideograph + + + 29364E + 8D33 + E8B4B3 + East Asian ideograph + + + 293651 + 8D36 + E8B4B6 + East Asian ideograph + + + 29365F + 8D47 + E8B587 + East Asian ideograph + + + 29366A + 8D53 + E8B593 + East Asian ideograph + + + 29366B + 8D55 + E8B595 + East Asian ideograph + + + 293670 + 8D49 + E8B589 + East Asian ideograph + + + 29367E + 8D59 + E8B599 + East Asian ideograph + + + 293725 + 8D3D + E8B4BD + East Asian ideograph + + + 293726 + 8D5C + E8B59C + East Asian ideograph + + + 29373A + 8D46 + E8B586 + East Asian ideograph + + + 293866 + 8DB1 + E8B6B1 + East Asian ideograph + + + 293A2E + 8DC4 + E8B784 + East Asian ideograph + + + 293A40 + 8DF8 + E8B7B8 + East Asian ideograph + + + 293A46 + 8E70 + E8B9B0 + East Asian ideograph + + + 293A57 + 8DFB + E8B7BB + East Asian ideograph + + + 293A5E + 8DF9 + E8B7B9 + East Asian ideograph + + + 293A5F + 8DDE + E8B79E + East Asian ideograph + + + 293A60 + 8E2C + E8B8AC + East Asian ideograph + + + 293A6B + 8E7F + E8B9BF + East Asian ideograph + + + 293A70 + 8E9C + E8BA9C + East Asian ideograph + + + 293B3E + 8F71 + E8BDB1 + East Asian ideograph + + + 293B3F + 8F7A + E8BDBA + East Asian ideograph + + + 293B42 + 8F75 + E8BDB5 + East Asian ideograph + + + 293B47 + 8F77 + E8BDB7 + East Asian ideograph + + + 293B4F + 8F78 + E8BDB8 + East Asian ideograph + + + 293B59 + 8F82 + E8BE82 + East Asian ideograph + + + 293B5B + 8F81 + E8BE81 + East Asian ideograph + + + 293B6B + 8F8B + E8BE8B + East Asian ideograph + + + 293B6D + 8F8A + E8BE8A + East Asian ideograph + + + 293B7A + 8F8F + E8BE8F + East Asian ideograph + + + 293C30 + 8F98 + E8BE98 + East Asian ideograph + + + 293C57 + 8F79 + E8BDB9 + East Asian ideograph + + + 293C5A + 8F73 + E8BDB3 + East Asian ideograph + + + 293D4E + 8FF8 + E8BFB8 + East Asian ideograph + + + 293F23 + 90CF + E9838F + East Asian ideograph + + + 293F4C + 90D3 + E98393 + East Asian ideograph + + + 293F5A + 90E7 + E983A7 + East Asian ideograph + + + 293F5C + 90AC + E982AC + East Asian ideograph + + + 294021 + 90F8 + E983B8 + East Asian ideograph + + + 29402B + 90BA + E982BA + East Asian ideograph + + + 29402C + 90D0 + E98390 + East Asian ideograph + + + 294031 + 909D + E9829D + East Asian ideograph + + + 294040 + 90E6 + E983A6 + East Asian ideograph + + + 29415C + 917E + E985BE + East Asian ideograph + + + 29415D + 917D + E985BD + East Asian ideograph + + + 294161 + 9487 + E99287 + East Asian ideograph + + + 294162 + 9486 + E99286 + East Asian ideograph + + + 294163 + 948C + E9928C + East Asian ideograph + + + 294164 + 948B + E9928B + East Asian ideograph + + + 29416A + 948D + E9928D + East Asian ideograph + + + 29416B + 948E + E9928E + East Asian ideograph + + + 294179 + 9492 + E99292 + East Asian ideograph + + + 294221 + 9495 + E99295 + East Asian ideograph + + + 294222 + 9490 + E99290 + East Asian ideograph + + + 294223 + 94AD + E992AD + East Asian ideograph + + + 294224 + 94AA + E992AA + East Asian ideograph + + + 294225 + 94AB + E992AB + East Asian ideograph + + + 294228 + 94AC + E992AC + East Asian ideograph + + + 294231 + 94AF + E992AF + East Asian ideograph + + + 294237 + 949B + E9929B + East Asian ideograph + + + 29424B + 94A3 + E992A3 + East Asian ideograph + + + 294251 + 94C8 + E99388 + East Asian ideograph + + + 294252 + 94C9 + E99389 + East Asian ideograph + + + 294254 + 94CB + E9938B + East Asian ideograph + + + 294255 + 94CA + E9938A + East Asian ideograph + + + 294258 + 94B0 + E992B0 + East Asian ideograph + + + 29425C + 94CC + E9938C + East Asian ideograph + + + 29425F + 94B6 + E992B6 + East Asian ideograph + + + 294260 + 94B7 + E992B7 + East Asian ideograph + + + 294261 + 94B2 + E992B2 + East Asian ideograph + + + 294264 + 94BA + E992BA + East Asian ideograph + + + 29426D + 94CD + E9938D + East Asian ideograph + + + 29426F + 94BD + E992BD + East Asian ideograph + + + 294274 + 94BF + E992BF + East Asian ideograph + + + 29432B + 94C6 + E99386 + East Asian ideograph + + + 29432F + 94F3 + E993B3 + East Asian ideograph + + + 294331 + 94F1 + E993B1 + East Asian ideograph + + + 294335 + 94F5 + E993B5 + East Asian ideograph + + + 294340 + 94D6 + E99396 + East Asian ideograph + + + 294343 + 94D2 + E99392 + East Asian ideograph + + + 294346 + 94D1 + E99391 + East Asian ideograph + + + 294349 + 94D5 + E99395 + East Asian ideograph + + + 29434F + 94DE + E9939E + East Asian ideograph + + + 294350 + 94DF + E9939F + East Asian ideograph + + + 294355 + 94EB + E993AB + East Asian ideograph + + + 294358 + 94EF + E993AF + East Asian ideograph + + + 294359 + 94E5 + E993A5 + East Asian ideograph + + + 29435B + 94E3 + E993A3 + East Asian ideograph + + + 294362 + 94EA + E993AA + East Asian ideograph + + + 294364 + 94F7 + E993B7 + East Asian ideograph + + + 29436A + 9512 + E99492 + East Asian ideograph + + + 29436C + 950D + E9948D + East Asian ideograph + + + 294371 + 94FD + E993BD + East Asian ideograph + + + 294372 + 9513 + E99493 + East Asian ideograph + + + 294375 + 9514 + E99494 + East Asian ideograph + + + 29437D + 94D8 + E99398 + East Asian ideograph + + + 294427 + 94D7 + E99397 + East Asian ideograph + + + 29442B + 9503 + E99483 + East Asian ideograph + + + 29442D + 94A1 + E992A1 + East Asian ideograph + + + 29442E + 9502 + E99482 + East Asian ideograph + + + 294435 + 950A + E9948A + East Asian ideograph + + + 29443E + 94E4 + E993A4 + East Asian ideograph + + + 294440 + 9506 + E99486 + East Asian ideograph + + + 294441 + 9507 + E99487 + East Asian ideograph + + + 29444D + 952B + E994AB + East Asian ideograph + + + 294457 + 9529 + E994A9 + East Asian ideograph + + + 294458 + 952C + E994AC + East Asian ideograph + + + 29445B + 9516 + E99496 + East Asian ideograph + + + 294466 + 9515 + E99495 + East Asian ideograph + + + 294469 + 94FC + E993BC + East Asian ideograph + + + 29446D + 951B + E9949B + East Asian ideograph + + + 294471 + 951D + E9949D + East Asian ideograph + + + 294472 + 951E + E9949E + East Asian ideograph + + + 294474 + 951F + E9949F + East Asian ideograph + + + 294475 + 9494 + E99294 + East Asian ideograph + + + 294478 + 9522 + E994A2 + East Asian ideograph + + + 294531 + 9528 + E994A8 + East Asian ideograph + + + 294532 + 9531 + E994B1 + East Asian ideograph + + + 29454D + 9534 + E994B4 + East Asian ideograph + + + 29454E + 9545 + E99585 + East Asian ideograph + + + 294551 + 9517 + E99497 + East Asian ideograph + + + 29455E + 94E1 + E993A1 + East Asian ideograph + + + 294564 + 9536 + E994B6 + East Asian ideograph + + + 294567 + 9537 + E994B7 + East Asian ideograph + + + 294568 + 9518 + E99498 + East Asian ideograph + + + 29456F + 9538 + E994B8 + East Asian ideograph + + + 29457A + 9550 + E99590 + East Asian ideograph + + + 294621 + 9553 + E99593 + East Asian ideograph + + + 294628 + 9552 + E99592 + East Asian ideograph + + + 294629 + 84E5 + E893A5 + East Asian ideograph + + + 29462D + 9549 + E99589 + East Asian ideograph + + + 294642 + 94E0 + E993A0 + East Asian ideograph + + + 294647 + 954F + E9958F + East Asian ideograph + + + 29464A + 953C + E994BC + East Asian ideograph + + + 294656 + 955B + E9959B + East Asian ideograph + + + 29465A + 955F + E9959F + East Asian ideograph + + + 294662 + 956A + E995AA + East Asian ideograph + + + 294666 + 933E + E98CBE + East Asian ideograph + + + 29467C + 9546 + E99586 + East Asian ideograph + + + 29472F + 94E9 + E993A9 + East Asian ideograph + + + 294732 + 94F4 + E993B4 + East Asian ideograph + + + 294734 + 9566 + E995A6 + East Asian ideograph + + + 29473C + 9568 + E995A8 + East Asian ideograph + + + 29473E + 94F9 + E993B9 + East Asian ideograph + + + 29474D + 956B + E995AB + East Asian ideograph + + + 294750 + 950E + E9948E + East Asian ideograph + + + 294751 + 950F + E9948F + East Asian ideograph + + + 294758 + 9561 + E995A1 + East Asian ideograph + + + 29475E + 9562 + E995A2 + East Asian ideograph + + + 294760 + 9563 + E995A3 + East Asian ideograph + + + 294767 + 94E7 + E993A7 + East Asian ideograph + + + 294769 + 9564 + E995A4 + East Asian ideograph + + + 294774 + 9571 + E995B1 + East Asian ideograph + + + 29483E + 9554 + E99594 + East Asian ideograph + + + 29483F + 9572 + E995B2 + East Asian ideograph + + + 29484A + 956C + E995AC + East Asian ideograph + + + 29485C + 9565 + E995A5 + East Asian ideograph + + + 294869 + 9567 + E995A7 + East Asian ideograph + + + 29486F + 9569 + E995A9 + East Asian ideograph + + + 294871 + 954A + E9958A + East Asian ideograph + + + 294936 + 95F3 + E997B3 + East Asian ideograph + + + 294942 + 9606 + E99886 + East Asian ideograph + + + 294944 + 9603 + E99883 + East Asian ideograph + + + 294948 + 960F + E9988F + East Asian ideograph + + + 294949 + 9608 + E99888 + East Asian ideograph + + + 29494D + 9609 + E99889 + East Asian ideograph + + + 29494F + 960A + E9988A + East Asian ideograph + + + 294950 + 960C + E9988C + East Asian ideograph + + + 294952 + 960D + E9988D + East Asian ideograph + + + 29495A + 9612 + E99892 + East Asian ideograph + + + 294960 + 9619 + E99899 + East Asian ideograph + + + 294969 + 961A + E9989A + East Asian ideograph + + + 29496F + 95FC + E997BC + East Asian ideograph + + + 294A44 + 9655 + E99995 + East Asian ideograph + + + 294A46 + 9649 + E99989 + East Asian ideograph + + + 294C76 + 9753 + E99D93 + East Asian ideograph + + + 294E43 + 97AF + E99EAF + East Asian ideograph + + + 294E54 + 97EA + E99FAA + East Asian ideograph + + + 294E5C + 97EB + E99FAB + East Asian ideograph + + + 294E79 + 9878 + E9A1B8 + East Asian ideograph + + + 294E7B + 9883 + E9A283 + East Asian ideograph + + + 294F23 + 9880 + E9A280 + East Asian ideograph + + + 294F2C + 988F + E9A28F + East Asian ideograph + + + 294F6B + 98A1 + E9A2A1 + East Asian ideograph + + + 294F77 + 989F + E9A29F + East Asian ideograph + + + 295021 + 98A2 + E9A2A2 + East Asian ideograph + + + 295029 + 98A5 + E9A2A5 + East Asian ideograph + + + 295030 + 989E + E9A29E + East Asian ideograph + + + 295031 + 98A7 + E9A2A7 + East Asian ideograph + + + 295053 + 98D9 + E9A399 + East Asian ideograph + + + 29506C + 996B + E9A5AB + East Asian ideograph + + + 295132 + 997D + E9A5BD + East Asian ideograph + + + 295153 + 9967 + E9A5A7 + East Asian ideograph + + + 295166 + 9969 + E9A5A9 + East Asian ideograph + + + 29516A + 9990 + E9A690 + East Asian ideograph + + + 29516D + 9991 + E9A691 + East Asian ideograph + + + 295170 + 998D + E9A68D + East Asian ideograph + + + 295172 + 9994 + E9A694 + East Asian ideograph + + + 295175 + 9993 + E9A693 + East Asian ideograph + + + 295222 + 98E8 + E9A3A8 + East Asian ideograph + + + 295263 + 9A75 + E9A9B5 + East Asian ideograph + + + 295269 + 9A80 + E9AA80 + East Asian ideograph + + + 29533D + 9A90 + E9AA90 + East Asian ideograph + + + 295340 + 9A92 + E9AA92 + East Asian ideograph + + + 295347 + 9A93 + E9AA93 + East Asian ideograph + + + 29535A + 9A9F + E9AA9F + East Asian ideograph + + + 295360 + 9A98 + E9AA98 + East Asian ideograph + + + 295369 + 9A7A + E9A9BA + East Asian ideograph + + + 29536A + 9A9D + E9AA9D + East Asian ideograph + + + 295370 + 9A9C + E9AA9C + East Asian ideograph + + + 295379 + 9A96 + E9AA96 + East Asian ideograph + + + 29537A + 9AA2 + E9AAA2 + East Asian ideograph + + + 295421 + 9AA3 + E9AAA3 + East Asian ideograph + + + 295422 + 9A81 + E9AA81 + East Asian ideograph + + + 295427 + 9A85 + E9AA85 + East Asian ideograph + + + 295433 + 9AA7 + E9AAA7 + East Asian ideograph + + + 29546D + 9ACB + E9AB8B + East Asian ideograph + + + 29556C + 960B + E9988B + East Asian ideograph + + + 295574 + 9604 + E99884 + East Asian ideograph + + + 29563C + 9B49 + E9AD89 + East Asian ideograph + + + 29565D + 9C82 + E9B282 + East Asian ideograph + + + 295721 + 9C86 + E9B286 + East Asian ideograph + + + 295729 + 9C87 + E9B287 + East Asian ideograph + + + 29572B + 9C90 + E9B290 + East Asian ideograph + + + 295731 + 9C8B + E9B28B + East Asian ideograph + + + 295739 + 9C9E + E9B29E + East Asian ideograph + + + 29573C + 9C91 + E9B291 + East Asian ideograph + + + 29573D + 9C92 + E9B292 + East Asian ideograph + + + 295742 + 9C95 + E9B295 + East Asian ideograph + + + 295756 + 9CA9 + E9B2A9 + East Asian ideograph + + + 29575F + 9CA0 + E9B2A0 + East Asian ideograph + + + 29576E + 9CA7 + E9B2A7 + East Asian ideograph + + + 29577A + 9CAD + E9B2AD + East Asian ideograph + + + 29577C + 9CB0 + E9B2B0 + East Asian ideograph + + + 295822 + 9CAE + E9B2AE + East Asian ideograph + + + 295825 + 9CBA + E9B2BA + East Asian ideograph + + + 295827 + 9CB2 + E9B2B2 + East Asian ideograph + + + 295828 + 9CB4 + E9B2B4 + East Asian ideograph + + + 29582C + 9CB1 + E9B2B1 + East Asian ideograph + + + 29582D + 9CB7 + E9B2B7 + East Asian ideograph + + + 29582F + 9CB5 + E9B2B5 + East Asian ideograph + + + 295831 + 9CB6 + E9B2B6 + East Asian ideograph + + + 295834 + 9CBB + E9B2BB + East Asian ideograph + + + 29583E + 9CCA + E9B38A + East Asian ideograph + + + 29584B + 9CBD + E9B2BD + East Asian ideograph + + + 295854 + 9CC4 + E9B384 + East Asian ideograph + + + 295859 + 9CC6 + E9B386 + East Asian ideograph + + + 29585C + 9CC7 + E9B387 + East Asian ideograph + + + 29586A + 9CCB + E9B38B + East Asian ideograph + + + 29586E + 9CA5 + E9B2A5 + East Asian ideograph + + + 295871 + 9CCE + E9B38E + East Asian ideograph + + + 295921 + 9CD9 + E9B399 + East Asian ideograph + + + 295925 + 9CCC + E9B38C + East Asian ideograph + + + 295928 + 9CD5 + E9B395 + East Asian ideograph + + + 295929 + 9CA3 + E9B2A3 + East Asian ideograph + + + 29592A + 9CD3 + E9B393 + East Asian ideograph + + + 295932 + 9CD8 + E9B398 + East Asian ideograph + + + 295938 + 9CDF + E9B39F + East Asian ideograph + + + 29593A + 9C85 + E9B285 + East Asian ideograph + + + 29593B + 9C9F + E9B29F + East Asian ideograph + + + 295940 + 9CBC + E9B2BC + East Asian ideograph + + + 29594F + 9CE2 + E9B3A2 + East Asian ideograph + + + 295955 + 9C8E + E9B28E + East Asian ideograph + + + 295958 + 9C9A + E9B29A + East Asian ideograph + + + 29596B + 9CA1 + E9B2A1 + East Asian ideograph + + + 295A28 + 9E28 + E9B8A8 + East Asian ideograph + + + 295A44 + 9E32 + E9B8B2 + East Asian ideograph + + + 295A48 + 9E31 + E9B8B1 + East Asian ideograph + + + 295A59 + 9E38 + E9B8B8 + East Asian ideograph + + + 295A65 + 9E39 + E9B8B9 + East Asian ideograph + + + 295A68 + 9E3A + E9B8BA + East Asian ideograph + + + 295A70 + 9E48 + E9B988 + East Asian ideograph + + + 295A75 + 9E41 + E9B981 + East Asian ideograph + + + 295B2A + 9E46 + E9B986 + East Asian ideograph + + + 295B35 + 9E2B + E9B8AB + East Asian ideograph + + + 295B52 + 9E4E + E9B98E + East Asian ideograph + + + 295B59 + 9E5C + E9B99C + East Asian ideograph + + + 295B5C + 9E5B + E9B99B + East Asian ideograph + + + 295B60 + 9E55 + E9B995 + East Asian ideograph + + + 295B6B + 9E57 + E9B997 + East Asian ideograph + + + 295B6C + 9E4B + E9B98B + East Asian ideograph + + + 295B77 + 9E63 + E9B9A3 + East Asian ideograph + + + 295B79 + 9E5A + E9B99A + East Asian ideograph + + + 295C28 + 9E58 + E9B998 + East Asian ideograph + + + 295C3E + 9E37 + E9B8B7 + East Asian ideograph + + + 295C47 + 9E68 + E9B9A8 + East Asian ideograph + + + 295C49 + 9E47 + E9B987 + East Asian ideograph + + + 295C57 + 9E6B + E9B9AB + East Asian ideograph + + + 295C5B + 9E6C + E9B9AC + East Asian ideograph + + + 295C65 + 9E69 + E9B9A9 + East Asian ideograph + + + 295C6C + 9E6A + E9B9AA + East Asian ideograph + + + 295D29 + 9E71 + E9B9B1 + East Asian ideograph + + + 295D36 + 9E2C + E9B8AC + East Asian ideograph + + + 295D3A + 9E73 + E9B9B3 + East Asian ideograph + + + 295D3B + 9E42 + E9B982 + East Asian ideograph + + + 295D3C + 5364 + E58DA4 + East Asian ideograph + + + 295D42 + 9E7E + E9B9BE + East Asian ideograph + + + 295E6A + 9EEA + E9BBAA + East Asian ideograph + + + 295E7A + 9EFE + E9BBBE + East Asian ideograph + + + 295E7C + 9F0B + E9BC8B + East Asian ideograph + + + 295F2B + 9F0D + E9BC8D + East Asian ideograph + + + 295F7B + 9F51 + E9BD91 + East Asian ideograph + + + 295F7C + 9F80 + E9BE80 + East Asian ideograph + + + 296028 + 9F86 + E9BE86 + East Asian ideograph + + + 29602B + 9F85 + E9BE85 + East Asian ideograph + + + 296062 + 9F9B + E9BE9B + East Asian ideograph + + + 2D3021 + 5F0C + E5BC8C + East Asian ideograph + + + 2D302D + 4E17 + E4B897 + East Asian ideograph + + + 2D3032 + 7ADD + E7AB9D + East Asian ideograph + + + 2D3045 + 4E57 + E4B997 + East Asian ideograph + + + 2D3051 + 5F0D + E5BC8D + East Asian ideograph + + + 2D3053 + 4E3C + E4B8BC + East Asian ideograph + + + 2D3058 + 4E9C + E4BA9C + East Asian ideograph + + + 2D305B + 4EBE + E4BABE + East Asian ideograph + + + 2D3061 + 4EB0 + E4BAB0 + East Asian ideograph + + + 2D306C + 8B8E + E8AE8E + East Asian ideograph + + + 2D3132 + 4ECF + E4BB8F + East Asian ideograph + + + 2D313A + 62BB + E68ABB + East Asian ideograph + + + 2D3140 + 4F32 + E4BCB2 + East Asian ideograph + + + 2D3147 + 5002 + E58082 + East Asian ideograph + + + 2D314C + 5008 + E58088 + East Asian ideograph + + + 2D315F + 4FA3 + E4BEA3 + East Asian ideograph + + + 2D3164 + 7AE2 + E7ABA2 + East Asian ideograph + + + 2D3165 + 349E + E3929E + East Asian ideograph (Unicode CJK Extension A) + + + 2D3177 + 5E78 + E5B9B8 + East Asian ideograph + + + 2D3224 + 7B87 + E7AE87 + East Asian ideograph + + + 2D3251 + 510C + E5848C + East Asian ideograph + + + 2D3253 + 50E3 + E583A3 + East Asian ideograph + + + 2D325F + 50BB + E582BB + East Asian ideograph (variant of EACC 4B325F) + + + 2D3261 + 5039 + E580B9 + East Asian ideograph + + + 2D3263 + 4FAD + E4BEAD + East Asian ideograph + + + 2D3272 + 706E + E781AE + East Asian ideograph + + + 2D3279 + 514E + E5858E + East Asian ideograph + + + 2D3324 + 634C + E68D8C + East Asian ideograph + + + 2D332A + 4E0C + E4B88C + East Asian ideograph + + + 2D3332 + 5190 + E58690 + East Asian ideograph + + + 2D334F + 5202 + E58882 + East Asian ideograph + + + 2D3356 + 5211 + E58891 + East Asian ideograph + + + 2D335F + 52B5 + E58AB5 + East Asian ideograph + + + 2D3366 + 5234 + E588B4 + East Asian ideograph + + + 2D336B + 5C05 + E5B085 + East Asian ideograph + + + 2D3372 + 5265 + E589A5 + East Asian ideograph + + + 2D3377 + 8CF8 + E8B3B8 + East Asian ideograph + + + 2D3421 + 5294 + E58A94 + East Asian ideograph + + + 2D3428 + 5226 + E588A6 + East Asian ideograph + + + 2D342E + 8274 + E889B4 + East Asian ideograph + + + 2D3436 + 52F3 + E58BB3 + East Asian ideograph + + + 2D343C + 52A2 + E58AA2 + East Asian ideograph + + + 2D343D + 52E7 + E58BA7 + East Asian ideograph + + + 2D3453 + 758B + E7968B + East Asian ideograph + + + 2D3457 + 62FE + E68BBE + East Asian ideograph + + + 2D3458 + 4EDF + E4BB9F + East Asian ideograph + + + 2D345B + 6607 + E69887 + East Asian ideograph + + + 2D345D + 5349 + E58D89 + East Asian ideograph + + + 2D3464 + 613D + E684BD + East Asian ideograph + + + 2D346A + 5918 + E5A498 + East Asian ideograph + + + 2D346E + 5373 + E58DB3 + East Asian ideograph + + + 2D3473 + 5374 + E58DB4 + East Asian ideograph + + + 2D3539 + 52FE + E58BBE + East Asian ideograph + + + 2D353C + 6B62 + E6ADA2 + East Asian ideograph + + + 2D3543 + 4EDD + E4BB9D + East Asian ideograph + + + 2D3547 + 55AB + E596AB + East Asian ideograph + + + 2D3556 + 7343 + E78D83 + East Asian ideograph + + + 2D355C + 5434 + E590B4 + East Asian ideograph + + + 2D356A + 8A36 + E8A8B6 + East Asian ideograph + + + 2D3571 + 546A + E591AA + East Asian ideograph + + + 2D3622 + 8AEE + E8ABAE + East Asian ideograph + + + 2D362A + 95A7 + E996A7 + East Asian ideograph + + + 2D3632 + 8A7B + E8A9BB + East Asian ideograph + + + 2D3642 + 6B38 + E6ACB8 + East Asian ideograph + + + 2D3644 + 5557 + E59597 + East Asian ideograph + + + 2D3661 + 6199 + E68699 + East Asian ideograph + + + 2D3730 + 751E + E7949E + East Asian ideograph + + + 2D3748 + 8B5F + E8AD9F + East Asian ideograph + + + 2D3749 + 5650 + E59990 + East Asian ideograph + + + 2D3758 + 54BD + E592BD + East Asian ideograph + + + 2D3765 + 8086 + E88286 + East Asian ideograph + + + 2D3768 + 56EC + E59BAC + East Asian ideograph + + + 2D376F + 5700 + E59C80 + East Asian ideograph + + + 2D377C + 962C + E998AC + East Asian ideograph + + + 2D3821 + 962F + E998AF + East Asian ideograph + + + 2D3830 + 573B + E59CBB + East Asian ideograph + + + 2D383F + 575A + E59D9A + East Asian ideograph + + + 2D384A + 5872 + E5A1B2 + East Asian ideograph + + + 2D3852 + 51A2 + E586A2 + East Asian ideograph + + + 2D3854 + 5896 + E5A296 + East Asian ideograph + + + 2D386E + 58CA + E5A38A + East Asian ideograph + + + 2D3876 + 58F7 + E5A3B7 + East Asian ideograph + + + 2D3877 + 5900 + E5A480 + East Asian ideograph + + + 2D3921 + 591F + E5A49F + East Asian ideograph + + + 2D3929 + 6B80 + E6AE80 + East Asian ideograph + + + 2D392F + 7287 + E78A87 + East Asian ideograph + + + 2D3931 + 67F0 + E69FB0 + East Asian ideograph + + + 2D3932 + 7AD2 + E7AB92 + East Asian ideograph + + + 2D3944 + 511E + E5849E + East Asian ideograph + + + 2D394D + 59AC + E5A6AC + East Asian ideograph + + + 2D3954 + 7385 + E78E85 + East Asian ideograph + + + 2D3956 + 59D9 + E5A799 + East Asian ideograph + + + 2D396E + 4F84 + E4BE84 + East Asian ideograph + + + 2D3970 + 5A63 + E5A9A3 + East Asian ideograph + + + 2D3974 + 5B43 + E5AD83 + East Asian ideograph + + + 2D397B + 5A31 + E5A8B1 + East Asian ideograph + + + 2D3A26 + 5A3F + E5A8BF + East Asian ideograph + + + 2D3A2F + 58FB + E5A3BB + East Asian ideograph + + + 2D3A41 + 5AFA + E5ABBA + East Asian ideograph + + + 2D3A47 + 5ACB + E5AB8B + East Asian ideograph + + + 2D3A60 + 6588 + E69688 + East Asian ideograph + + + 2D3B27 + 51A8 + E586A8 + East Asian ideograph + + + 2D3B2A + 5EBD + E5BABD + East Asian ideograph + + + 2D3B33 + 8A67 + E8A9A7 + East Asian ideograph + + + 2D3B3F + 5C02 + E5B082 + East Asian ideograph + + + 2D3B40 + 5C06 + E5B086 + East Asian ideograph (variant of EACC 273B40) + + + 2D3B52 + 6EBA + E6BABA + East Asian ideograph + + + 2D3B54 + 5C4A + E5B18A + East Asian ideograph + + + 2D3B6E + 5D17 + E5B497 + East Asian ideograph + + + 2D3B77 + 5CE9 + E5B3A9 + East Asian ideograph + + + 2D3B78 + 5CEF + E5B3AF + East Asian ideograph + + + 2D3B79 + 5D8B + E5B68B + East Asian ideograph + + + 2D3B7B + 5D08 + E5B488 + East Asian ideograph + + + 2D3C21 + 57FC + E59FBC + East Asian ideograph + + + 2D3C22 + 5D10 + E5B490 + East Asian ideograph + + + 2D3C26 + 5D18 + E5B498 + East Asian ideograph + + + 2D3C36 + 5DE3 + E5B7A3 + East Asian ideograph + + + 2D3C38 + 9245 + E98985 + East Asian ideograph + + + 2D3C49 + 83F7 + E88FB7 + East Asian ideograph + + + 2D3C5F + 6A66 + E6A9A6 + East Asian ideograph + + + 2D3C61 + 5E47 + E5B987 + East Asian ideograph + + + 2D3C65 + 79CA + E7A78A + East Asian ideograph + + + 2D3C6A + 51FC + E587BC + East Asian ideograph + + + 2D3C6D + 8298 + E88A98 + East Asian ideograph (duplicate simplified) + + + 2D3C6E + 7240 + E78980 + East Asian ideograph + + + 2D3C70 + 576B + E59DAB + East Asian ideograph + + + 2D3C7C + 83F4 + E88FB4 + East Asian ideograph + + + 2D3C7D + 53A2 + E58EA2 + East Asian ideograph + + + 2D3C7E + 53A0 + E58EA0 + East Asian ideograph + + + 2D3D29 + 53AE + E58EAE + East Asian ideograph + + + 2D3D2B + 5EBF + E5BABF + East Asian ideograph + + + 2D3D2D + 5396 + E58E96 + East Asian ideograph + + + 2D3D2F + 539B + E58E9B + East Asian ideograph + + + 2D3D34 + 5EFE + E5BBBE + East Asian ideograph + + + 2D3D48 + 5F4A + E5BD8A + East Asian ideograph + + + 2D3D4E + 7BF2 + E7AFB2 + East Asian ideograph + + + 2D3D50 + 5F5C + E5BD9C + East Asian ideograph + + + 2D3D5E + 9AF4 + E9ABB4 + East Asian ideograph + + + 2D3D67 + 9015 + E98095 + East Asian ideograph + + + 2D3D6C + 5F93 + E5BE93 + East Asian ideograph + + + 2D3D75 + 60EA + E683AA + East Asian ideograph + + + 2D3D76 + 5FB4 + E5BEB4 + East Asian ideograph + + + 2D3E2B + 6060 + E681A0 + East Asian ideograph + + + 2D3E3C + 803B + E880BB + East Asian ideograph + + + 2D3E40 + 6052 + E68192 + East Asian ideograph + + + 2D3E60 + 6075 + E681B5 + East Asian ideograph + + + 2D3F24 + 661A + E6989A + East Asian ideograph + + + 2D3F27 + 6120 + E684A0 + East Asian ideograph + + + 2D3F2A + 5ABF + E5AABF + East Asian ideograph + + + 2D3F31 + 6159 + E68599 + East Asian ideograph + + + 2D3F3A + 6185 + E68685 + East Asian ideograph + + + 2D3F54 + 61D0 + E68790 + East Asian ideograph + + + 2D3F67 + 621E + E6889E + East Asian ideograph + + + 2D3F6E + 6226 + E688A6 + East Asian ideograph + + + 2D3F6F + 622F + E688AF + East Asian ideograph + + + 2D3F76 + 78A5 + E7A2A5 + East Asian ideograph + + + 2D4029 + 5214 + E58894 + East Asian ideograph + + + 2D4031 + 64A6 + E692A6 + East Asian ideograph + + + 2D4039 + 67C6 + E69F86 + East Asian ideograph + + + 2D403F + 6255 + E68995 + East Asian ideograph + + + 2D4049 + 67B4 + E69EB4 + East Asian ideograph + + + 2D404C + 6283 + E68A83 + East Asian ideograph + + + 2D404F + 6294 + E68A94 + East Asian ideograph + + + 2D4066 + 63CE + E68F8E + East Asian ideograph + + + 2D4067 + 62CF + E68B8F + East Asian ideograph + + + 2D4122 + 6485 + E69285 + East Asian ideograph + + + 2D4132 + 642F + E690AF + East Asian ideograph + + + 2D4141 + 63B2 + E68EB2 + East Asian ideograph + + + 2D4147 + 6271 + E689B1 + East Asian ideograph + + + 2D4150 + 6428 + E690A8 + East Asian ideograph + + + 2D4152 + 6447 + E69187 + East Asian ideograph + + + 2D4153 + 64E3 + E693A3 + East Asian ideograph + + + 2D4154 + 635C + E68D9C + East Asian ideograph + + + 2D416E + 6534 + E694B4 + East Asian ideograph + + + 2D4171 + 62CA + E68B8A + East Asian ideograph + + + 2D4176 + 6483 + E69283 + East Asian ideograph + + + 2D4228 + 5117 + E58497 + East Asian ideograph + + + 2D4249 + 53D9 + E58F99 + East Asian ideograph + + + 2D424F + 555F + E5959F + East Asian ideograph + + + 2D4272 + 65E3 + E697A3 + East Asian ideograph + + + 2D4277 + 65EE + E697AE + East Asian ideograph + + + 2D4327 + 6630 + E698B0 + East Asian ideograph + + + 2D4329 + 668E + E69A8E + East Asian ideograph + + + 2D432E + 66EC + E69BAC + East Asian ideograph + + + 2D433B + 6662 + E699A2 + East Asian ideograph + + + 2D433E + 667B + E699BB + East Asian ideograph + + + 2D4343 + 6636 + E698B6 + East Asian ideograph + + + 2D4348 + 6681 + E69A81 + East Asian ideograph + + + 2D4349 + 66A6 + E69AA6 + East Asian ideograph + + + 2D435F + 6716 + E69C96 + East Asian ideograph + + + 2D4362 + 6722 + E69CA2 + East Asian ideograph + + + 2D4364 + 671E + E69C9E + East Asian ideograph + + + 2D4370 + 6736 + E69CB6 + East Asian ideograph + + + 2D4425 + 686E + E6A1AE + East Asian ideograph + + + 2D442D + 6780 + E69E80 + East Asian ideograph + + + 2D4437 + 67FE + E69FBE + East Asian ideograph + + + 2D443A + 6942 + E6A582 + East Asian ideograph + + + 2D4440 + 6822 + E6A0A2 + East Asian ideograph + + + 2D4444 + 69C5 + E6A785 + East Asian ideograph + + + 2D444B + 6852 + E6A192 + East Asian ideograph + + + 2D4450 + 8308 + E88C88 + East Asian ideograph + + + 2D4461 + 6746 + E69D86 + East Asian ideograph + + + 2D4466 + 6973 + E6A5B3 + East Asian ideograph + + + 2D446B + 6936 + E6A4B6 + East Asian ideograph + + + 2D4472 + 68CA + E6A38A + East Asian ideograph + + + 2D4474 + 690D + E6A48D + East Asian ideograph (variant of EACC 214474) + + + 2D447D + 684C + E6A18C + East Asian ideograph + + + 2D4539 + 6406 + E69086 + East Asian ideograph + + + 2D453A + 6760 + E69DA0 + East Asian ideograph + + + 2D4543 + 6901 + E6A481 + East Asian ideograph + + + 2D454E + 697D + E6A5BD + East Asian ideograph + + + 2D4550 + 58AB + E5A2AB + East Asian ideograph + + + 2D4562 + 681D + E6A09D + East Asian ideograph + + + 2D4564 + 68B9 + E6A2B9 + East Asian ideograph + + + 2D4569 + 6AC9 + E6AB89 + East Asian ideograph + + + 2D4574 + 5FFB + E5BFBB + East Asian ideograph + + + 2D4621 + 61FD + E687BD + East Asian ideograph + + + 2D462C + 6B7A + E6ADBA + East Asian ideograph + + + 2D4647 + 6BD8 + E6AF98 + East Asian ideograph + + + 2D466D + 51B3 + E586B3 + East Asian ideograph + + + 2D4674 + 51B2 + E586B2 + East Asian ideograph + + + 2D467C + 6CB2 + E6B2B2 + East Asian ideograph + + + 2D4729 + 6D29 + E6B4A9 + East Asian ideograph + + + 2D4730 + 51B5 + E586B5 + East Asian ideograph + + + 2D4735 + 6C4E + E6B18E + East Asian ideograph + + + 2D4738 + 6FFC + E6BFBC + East Asian ideograph + + + 2D4746 + 6C79 + E6B1B9 + East Asian ideograph + + + 2D4756 + 6F94 + E6BE94 + East Asian ideograph + + + 2D475B + 51C9 + E58789 + East Asian ideograph + + + 2D475F + 51C4 + E58784 + East Asian ideograph + + + 2D4768 + 6D45 + E6B585 + East Asian ideograph (variant of EACC 274768) + + + 2D4829 + 51CF + E5878F + East Asian ideograph + + + 2D482F + 6E07 + E6B887 + East Asian ideograph + + + 2D4844 + 6FD5 + E6BF95 + East Asian ideograph + + + 2D4845 + 6E29 + E6B8A9 + East Asian ideograph + + + 2D4850 + 6EDA + E6BB9A + East Asian ideograph + + + 2D4853 + 7001 + E78081 + East Asian ideograph + + + 2D485C + 6F44 + E6BD84 + East Asian ideograph + + + 2D486B + 6F82 + E6BE82 + East Asian ideograph + + + 2D486E + 6F97 + E6BE97 + East Asian ideograph + + + 2D4874 + 6F5C + E6BD9C + East Asian ideograph + + + 2D493A + 702C + E780AC + East Asian ideograph + + + 2D4947 + 7AC8 + E7AB88 + East Asian ideograph + + + 2D4954 + 70F1 + E783B1 + East Asian ideograph + + + 2D4956 + 70B0 + E782B0 + East Asian ideograph + + + 2D496B + 70DF + E7839F + East Asian ideograph + + + 2D4971 + 70A4 + E782A4 + East Asian ideograph + + + 2D4A26 + 713C + E784BC + East Asian ideograph + + + 2D4A28 + 8B8C + E8AE8C + East Asian ideograph + + + 2D4A34 + 718F + E7868F + East Asian ideograph + + + 2D4A3B + 4E89 + E4BA89 + East Asian ideograph + + + 2D4A45 + 5C12 + E5B092 + East Asian ideograph + + + 2D4A46 + 58BB + E5A2BB + East Asian ideograph + + + 2D4A58 + 7F9D + E7BE9D + East Asian ideograph + + + 2D4A5B + 7282 + E78A82 + East Asian ideograph + + + 2D4A60 + 6C02 + E6B082 + East Asian ideograph + + + 2D4B22 + 736A + E78DAA + East Asian ideograph + + + 2D4B35 + 73C9 + E78F89 + East Asian ideograph + + + 2D4B3F + 73CE + E78F8E + East Asian ideograph + + + 2D4B43 + 746F + E791AF + East Asian ideograph + + + 2D4B45 + 6BEC + E6AFAC + East Asian ideograph + + + 2D4B5B + 78AF + E7A2AF + East Asian ideograph + + + 2D4B71 + 7F3E + E7BCBE + East Asian ideograph + + + 2D4B72 + 7506 + E79486 + East Asian ideograph + + + 2D4C2C + 583A + E5A0BA + East Asian ideograph + + + 2D4C2D + 756E + E795AE + East Asian ideograph + + + 2D4C35 + 7567 + E795A7 + East Asian ideograph + + + 2D4C3C + 53E0 + E58FA0 + East Asian ideograph + + + 2D4C3E + 758E + E7968E + East Asian ideograph + + + 2D4C5D + 7661 + E799A1 + East Asian ideograph + + + 2D4C7E + 4F70 + E4BDB0 + East Asian ideograph + + + 2D4D21 + 7681 + E79A81 + East Asian ideograph + + + 2D4D34 + 76C7 + E79B87 + East Asian ideograph + + + 2D4D38 + 76D7 + E79B97 + East Asian ideograph + + + 2D4D4F + 771F + E79C9F + East Asian ideograph + + + 2D4D5F + 7741 + E79D81 + East Asian ideograph + + + 2D4D65 + 53E1 + E58FA1 + East Asian ideograph + + + 2D4D6D + 7792 + E79E92 + East Asian ideograph + + + 2D4D71 + 7719 + E79C99 + East Asian ideograph + + + 2D4E24 + 6998 + E6A698 + East Asian ideograph + + + 2D4E33 + 78AA + E7A2AA + East Asian ideograph + + + 2D4E5B + 945B + E9919B + East Asian ideograph + + + 2D4E79 + 5FA1 + E5BEA1 + East Asian ideograph + + + 2D4F29 + 9F9D + E9BE9D + East Asian ideograph + + + 2D4F37 + 7980 + E7A680 + East Asian ideograph + + + 2D4F3E + 7A3E + E7A8BE + East Asian ideograph + + + 2D4F41 + 4E69 + E4B9A9 + East Asian ideograph + + + 2D4F45 + 9834 + E9A0B4 + East Asian ideograph + + + 2D4F48 + 7A42 + E7A982 + East Asian ideograph + + + 2D4F5E + 7AB0 + E7AAB0 + East Asian ideograph + + + 2D4F6B + 7AF8 + E7ABB8 + East Asian ideograph + + + 2D4F7C + 7B5E + E7AD9E + East Asian ideograph + + + 2D502B + 693E + E6A4BE + East Asian ideograph + + + 2D502D + 7B5D + E7AD9D + East Asian ideograph + + + 2D5036 + 84D1 + E89391 + East Asian ideograph + + + 2D504F + 7C58 + E7B198 + East Asian ideograph + + + 2D506F + 7CFA + E7B3BA + East Asian ideograph + + + 2D5124 + 5E0B + E5B88B + East Asian ideograph + + + 2D5129 + 7D25 + E7B4A5 + East Asian ideograph + + + 2D514A + 6DD6 + E6B796 + East Asian ideograph + + + 2D514D + 7D2C + E7B4AC + East Asian ideograph + + + 2D516A + 7DB3 + E7B6B3 + East Asian ideograph + + + 2D5179 + 7E62 + E7B9A2 + East Asian ideograph + + + 2D517D + 7D99 + E7B699 + East Asian ideograph + + + 2D5228 + 9262 + E989A2 + East Asian ideograph + + + 2D522B + 9475 + E991B5 + East Asian ideograph + + + 2D5232 + 8FA0 + E8BEA0 + East Asian ideograph + + + 2D5233 + 7F78 + E7BDB8 + East Asian ideograph + + + 2D5238 + 898A + E8A68A + East Asian ideograph + + + 2D5240 + 7FA1 + E7BEA1 + East Asian ideograph + + + 2D5241 + 7FA3 + E7BEA3 + East Asian ideograph + + + 2D524A + 7FC4 + E7BF84 + East Asian ideograph + + + 2D5259 + 98DC + E9A39C + East Asian ideograph + + + 2D525D + 6537 + E694B7 + East Asian ideograph + + + 2D5265 + 79D0 + E7A790 + East Asian ideograph + + + 2D5267 + 79CF + E7A78F + East Asian ideograph + + + 2D526B + 7085 + E78285 + East Asian ideograph + + + 2D526C + 8EAD + E8BAAD + East Asian ideograph + + + 2D527B + 8074 + E881B4 + East Asian ideograph + + + 2D5321 + 7C9B + E7B29B + East Asian ideograph + + + 2D5323 + 5B8D + E5AE8D + East Asian ideograph + + + 2D532C + 6BD3 + E6AF93 + East Asian ideograph + + + 2D5340 + 812C + E884AC + East Asian ideograph + + + 2D5344 + 8107 + E88487 + East Asian ideograph + + + 2D534B + 80F7 + E883B7 + East Asian ideograph + + + 2D535E + 8193 + E88693 + East Asian ideograph + + + 2D5361 + 811A + E8849A + East Asian ideograph + + + 2D537E + 81C8 + E88788 + East Asian ideograph + + + 2D5421 + 9AD7 + E9AB97 + East Asian ideograph + + + 2D5424 + 5367 + E58DA7 + East Asian ideograph + + + 2D5434 + 64E7 + E693A7 + East Asian ideograph + + + 2D5440 + 6841 + E6A181 + East Asian ideograph + + + 2D5446 + 8229 + E888A9 + East Asian ideograph + + + 2D5447 + 824A + E8898A + East Asian ideograph + + + 2D5461 + 8306 + E88C86 + East Asian ideograph + + + 2D5468 + 6959 + E6A599 + East Asian ideograph + + + 2D546F + 83C0 + E88F80 + East Asian ideograph + + + 2D5476 + 8318 + E88C98 + East Asian ideograph + + + 2D5529 + 830E + E88C8E + East Asian ideograph (variant of EACC 275529) + + + 2D552D + 8358 + E88D98 + East Asian ideograph + + + 2D552E + 82FA + E88BBA + East Asian ideograph (variant of EACC 227C68) + + + 2D5547 + 837D + E88DBD + East Asian ideograph + + + 2D5550 + 585F + E5A19F + East Asian ideograph + + + 2D5554 + 855A + E8959A + East Asian ideograph + + + 2D555A + 8386 + E88E86 + East Asian ideograph + + + 2D555B + 8385 + E88E85 + East Asian ideograph + + + 2D5561 + 76D6 + E79B96 + East Asian ideograph + + + 2D5573 + 83D4 + E88F94 + East Asian ideograph + + + 2D562E + 8024 + E880A4 + East Asian ideograph + + + 2D5635 + 846F + E891AF + East Asian ideograph + + + 2D563C + 8613 + E89893 + East Asian ideograph + + + 2D563F + 6A97 + E6AA97 + East Asian ideograph + + + 2D5664 + 9F04 + E9BC84 + East Asian ideograph + + + 2D5675 + 9F05 + E9BC85 + East Asian ideograph + + + 2D567B + 8717 + E89C97 + East Asian ideograph + + + 2D572B + 8797 + E89E97 + East Asian ideograph + + + 2D572D + 8748 + E89D88 + East Asian ideograph + + + 2D5730 + 87C7 + E89F87 + East Asian ideograph + + + 2D573B + 60F7 + E683B7 + East Asian ideograph + + + 2D5749 + 885E + E8A19E + East Asian ideograph + + + 2D5758 + 890E + E8A48E + East Asian ideograph + + + 2D575B + 886E + E8A1AE + East Asian ideograph + + + 2D5760 + 5E2C + E5B8AC + East Asian ideograph + + + 2D5763 + 88E1 + E8A3A1 + East Asian ideograph + + + 2D5773 + 7D5D + E7B59D + East Asian ideograph + + + 2D5831 + 89A7 + E8A6A7 + East Asian ideograph + + + 2D5833 + 752A + E794AA + East Asian ideograph + + + 2D5836 + 89E6 + E8A7A6 + East Asian ideograph + + + 2D584D + 548F + E5928F + East Asian ideograph + + + 2D5856 + 612C + E684AC + East Asian ideograph + + + 2D5927 + 8ACC + E8AB8C + East Asian ideograph + + + 2D592C + 8B01 + E8AC81 + East Asian ideograph + + + 2D593D + 8AE9 + E8ABA9 + East Asian ideograph + + + 2D5941 + 5629 + E598A9 + East Asian ideograph + + + 2D594C + 8B72 + E8ADB2 + East Asian ideograph + + + 2D594F + 8B83 + E8AE83 + East Asian ideograph + + + 2D5957 + 7AEA + E7ABAA + East Asian ideograph + + + 2D5959 + 8277 + E889B7 + East Asian ideograph + + + 2D595F + 732A + E78CAA + East Asian ideograph + + + 2D5960 + 72B2 + E78AB2 + East Asian ideograph + + + 2D5963 + 8C98 + E8B298 + East Asian ideograph + + + 2D5965 + 72F8 + E78BB8 + East Asian ideograph + + + 2D5A34 + 8CAD + E8B2AD + East Asian ideograph + + + 2D5A3D + 8CDB + E8B39B + East Asian ideograph + + + 2D5A48 + 8D71 + E8B5B1 + East Asian ideograph + + + 2D5A4E + 8D82 + E8B682 + East Asian ideograph + + + 2D5A5F + 8E5F + E8B99F + East Asian ideograph + + + 2D5A63 + 8DE5 + E8B7A5 + East Asian ideograph + + + 2D5A7E + 8E7B + E8B9BB + East Asian ideograph + + + 2D5B2F + 8EB1 + E8BAB1 + East Asian ideograph + + + 2D5B42 + 8F19 + E8BC99 + East Asian ideograph + + + 2D5B43 + 8EFD + E8BBBD + East Asian ideograph + + + 2D5B5D + 8FA2 + E8BEA2 + East Asian ideograph + + + 2D5B5E + 8FA7 + E8BEA7 + East Asian ideograph + + + 2D5B69 + 5EF5 + E5BBB5 + East Asian ideograph + + + 2D5B7A + 8FEF + E8BFAF + East Asian ideograph + + + 2D5C2F + 8FE8 + E8BFA8 + East Asian ideograph + + + 2D5C3F + 5FA7 + E5BEA7 + East Asian ideograph + + + 2D5C40 + 5FA8 + E5BEA8 + East Asian ideograph + + + 2D5C48 + 9013 + E98093 + East Asian ideograph + + + 2D5C5A + 8FE9 + E8BFA9 + East Asian ideograph + + + 2D5C5B + 9089 + E98289 + East Asian ideograph + + + 2D5C74 + 96A3 + E99AA3 + East Asian ideograph + + + 2D5D23 + 9167 + E985A7 + East Asian ideograph + + + 2D5D2F + 9196 + E98696 + East Asian ideograph + + + 2D5D56 + 920E + E9888E + East Asian ideograph + + + 2D5D65 + 8216 + E88896 + East Asian ideograph + + + 2D5D68 + 8021 + E880A1 + East Asian ideograph + + + 2D5E21 + 9418 + E99098 + East Asian ideograph + + + 2D5E24 + 7145 + E78585 + East Asian ideograph + + + 2D5E26 + 7194 + E78694 + East Asian ideograph + + + 2D5E28 + 93C1 + E98F81 + East Asian ideograph + + + 2D5E3B + 92B9 + E98AB9 + East Asian ideograph + + + 2D5E43 + 92F3 + E98BB3 + East Asian ideograph + + + 2D5E4A + 945A + E9919A + East Asian ideograph + + + 2D5E50 + 9587 + E99687 + East Asian ideograph + + + 2D5E61 + 6FF6 + E6BFB6 + East Asian ideograph + + + 2D5F28 + 9665 + E999A5 + East Asian ideograph + + + 2D5F2C + 5826 + E5A0A6 + East Asian ideograph + + + 2D5F2D + 964F + E9998F + East Asian ideograph + + + 2D5F2E + 661C + E6989C + East Asian ideograph + + + 2D5F35 + 78D2 + E7A392 + East Asian ideograph + + + 2D5F3B + 96A0 + E99AA0 + East Asian ideograph + + + 2D5F43 + 9CEB + E9B3AB + East Asian ideograph + + + 2D5F46 + 96BD + E99ABD + East Asian ideograph + + + 2D5F4B + 96D1 + E99B91 + East Asian ideograph + + + 2D5F4C + 9DC4 + E9B784 + East Asian ideograph + + + 2D5F63 + 873A + E89CBA + East Asian ideograph + + + 2D5F73 + 975A + E99D9A + East Asian ideograph (unrelated variant of EACC 234C76) + + + 2D6021 + 978C + E99E8C + East Asian ideograph + + + 2D602D + 976D + E99DAD + East Asian ideograph + + + 2D6030 + 97EE + E99FAE + East Asian ideograph + + + 2D6056 + 980B + E9A08B + East Asian ideograph + + + 2D6078 + 9920 + E9A4A0 + East Asian ideograph + + + 2D6079 + 8218 + E88898 + East Asian ideograph + + + 2D6132 + 99EE + E9A7AE + East Asian ideograph + + + 2D6134 + 99DE + E9A79E + East Asian ideograph + + + 2D6147 + 99C8 + E9A788 + East Asian ideograph + + + 2D6159 + 9AC4 + E9AB84 + East Asian ideograph + + + 2D615A + 8EC6 + E8BB86 + East Asian ideograph + + + 2D6162 + 9A0C + E9A88C + East Asian ideograph + + + 2D616A + 6B1D + E6AC9D + East Asian ideograph + + + 2D6222 + 9C0C + E9B08C + East Asian ideograph + + + 2D6229 + 9C53 + E9B193 + East Asian ideograph + + + 2D622C + 9F08 + E9BC88 + East Asian ideograph + + + 2D6235 + 9D76 + E9B5B6 + East Asian ideograph + + + 2D6241 + 9D5E + E9B59E + East Asian ideograph + + + 2D6251 + 5869 + E5A1A9 + East Asian ideograph + + + 2D6252 + 78B1 + E7A2B1 + East Asian ideograph + + + 2D625F + 83FB + E88FBB + East Asian ideograph + + + 2D6260 + 5E85 + E5BA85 + East Asian ideograph + + + 2D6262 + 9EC4 + E9BB84 + East Asian ideograph + + + 2D6275 + 76B7 + E79AB7 + East Asian ideograph + + + 2D627E + 658B + E6968B + East Asian ideograph + + + 2D632B + 5C28 + E5B0A8 + East Asian ideograph + + + 2D632D + 4E80 + E4BA80 + East Asian ideograph + + + 2D6B33 + 5231 + E588B1 + East Asian ideograph + + + 2D6B5F + 5273 + E589B3 + East Asian ideograph + + + 2D6F7D + 8123 + E884A3 + East Asian ideograph + + + 2D7143 + 55E2 + E597A2 + East Asian ideograph + + + 2D7164 + 55D4 + E59794 + East Asian ideograph (variant of EACC 217164) + + + 2D7345 + 56D3 + E59B93 + East Asian ideograph + + + 2D753A + 9654 + E99994 + East Asian ideograph + + + 2D7552 + 579B + E59E9B + East Asian ideograph + + + 2D7A44 + 598D + E5A68D + East Asian ideograph + + + 2D7E6A + 51A4 + E586A4 + East Asian ideograph + + + 2E257B + 5D1F + E5B49F + East Asian ideograph + + + 2E284C + 5ECF + E5BB8F + East Asian ideograph + + + 2E2968 + 5F51 + E5BD91 + East Asian ideograph + + + 2E2B5B + 605A + E6819A + East Asian ideograph + + + 2E2B74 + 609B + E6829B + East Asian ideograph + + + 2E2D79 + 6128 + E684A8 + East Asian ideograph + + + 2E2F7A + 6738 + E69CB8 + East Asian ideograph + + + 2E2F7C + 634D + E68D8D + East Asian ideograph + + + 2E3028 + 640B + E6908B + East Asian ideograph + + + 2E313A + 6332 + E68CB2 + East Asian ideograph + + + 2E3144 + 651F + E6949F + East Asian ideograph + + + 2E3172 + 5261 + E589A1 + East Asian ideograph + + + 2E3328 + 6528 + E694A8 + East Asian ideograph + + + 2E337B + 630E + E68C8E + East Asian ideograph + + + 2E363F + 52C5 + E58B85 + East Asian ideograph + + + 2E3645 + 69E3 + E6A7A3 + East Asian ideograph + + + 2E3654 + 657F + E695BF + East Asian ideograph + + + 2E3729 + 65B5 + E696B5 + East Asian ideograph + + + 2E3870 + 714A + E7858A + East Asian ideograph + + + 2E3936 + 66CD + E69B8D + East Asian ideograph + + + 2E3A26 + 661D + E6989D + East Asian ideograph + + + 2E3A33 + 80AD + E882AD + East Asian ideograph + + + 2E3B22 + 690F + E6A48F + East Asian ideograph + + + 2E3D62 + 684A + E6A18A + East Asian ideograph + + + 2E3D73 + 7A1C + E7A89C + East Asian ideograph + + + 2E3E3F + 7BA0 + E7AEA0 + East Asian ideograph + + + 2E3F2D + 69B2 + E6A6B2 + East Asian ideograph + + + 2E403D + 6AC1 + E6AB81 + East Asian ideograph + + + 2E4174 + 6AA9 + E6AAA9 + East Asian ideograph + + + 2E4670 + 6CD0 + E6B390 + East Asian ideograph + + + 2E4731 + 6C73 + E6B1B3 + East Asian ideograph + + + 2E4739 + 6C67 + E6B1A7 + East Asian ideograph (variant of EACC 224739) + + + 2E4747 + 6D64 + E6B5A4 + East Asian ideograph + + + 2E4873 + 6FA3 + E6BEA3 + East Asian ideograph + + + 2E492F + 6CD9 + E6B399 + East Asian ideograph + + + 2E493B + 6E7C + E6B9BC + East Asian ideograph + + + 2E4A6B + 6EA6 + E6BAA6 + East Asian ideograph + + + 2E4C35 + 6DE5 + E6B7A5 + East Asian ideograph + + + 2E4C7B + 6E86 + E6BA86 + East Asian ideograph + + + 2E4D3D + 6D38 + E6B4B8 + East Asian ideograph + + + 2E4E41 + 7032 + E780B2 + East Asian ideograph + + + 2E4E56 + 9800 + E9A080 + East Asian ideograph + + + 2E4E5D + 6DE0 + E6B7A0 + East Asian ideograph + + + 2E4E72 + 6F74 + E6BDB4 + East Asian ideograph + + + 2E506D + 70B1 + E782B1 + East Asian ideograph + + + 2E525D + 715B + E7859B + East Asian ideograph + + + 2E5452 + 71FE + E787BE + East Asian ideograph + + + 2E5A40 + 73B3 + E78EB3 + East Asian ideograph + + + 2E5A78 + 74A2 + E792A2 + East Asian ideograph + + + 2E5F6F + 75B8 + E796B8 + East Asian ideograph + + + 2E604A + 7690 + E79A90 + East Asian ideograph + + + 2E6060 + 76A1 + E79AA1 + East Asian ideograph + + + 2E624F + 772D + E79CAD + East Asian ideograph + + + 2E625F + 77C1 + E79F81 + East Asian ideograph + + + 2E684E + 8020 + E880A0 + East Asian ideograph + + + 2E686F + 7A19 + E7A899 + East Asian ideograph + + + 2E6B54 + 7B04 + E7AC84 + East Asian ideograph + + + 2E6C26 + 7BE0 + E7AFA0 + East Asian ideograph + + + 2E6C27 + 7B2E + E7ACAE + East Asian ideograph + + + 2E6C3E + 7B59 + E7AD99 + East Asian ideograph + + + 2E6C46 + 7BE6 + E7AFA6 + East Asian ideograph + + + 2E6F35 + 6CD4 + E6B394 + East Asian ideograph + + + 2E6F43 + 9908 + E9A488 + East Asian ideograph + + + 2E7062 + 7D4F + E7B58F + East Asian ideograph + + + 2E715A + 7E27 + E7B8A7 + East Asian ideograph + + + 2E717C + 7D63 + E7B5A3 + East Asian ideograph + + + 2E7328 + 5FAD + E5BEAD + East Asian ideograph + + + 2E735D + 7D56 + E7B596 + East Asian ideograph + + + 2E7374 + 7E89 + E7BA89 + East Asian ideograph + + + 2E742E + 7516 + E79496 + East Asian ideograph + + + 2E7431 + 7F48 + E7BD88 + East Asian ideograph + + + 2E7450 + 7F82 + E7BE82 + East Asian ideograph + + + 2E7451 + 7F58 + E7BD98 + East Asian ideograph + + + 2E765F + 8037 + E880B7 + East Asian ideograph + + + 2E7C2E + 831C + E88C9C + East Asian ideograph + + + 2E7D24 + 83F0 + E88FB0 + East Asian ideograph + + + 2F252D + 6A22 + E6A8A2 + East Asian ideograph + + + 2F252E + 8507 + E89487 + East Asian ideograph + + + 2F2A5A + 868B + E89A8B + East Asian ideograph (unrelated variant of EACC 23293D) + + + 2F2A64 + 87B5 + E89EB5 + East Asian ideograph + + + 2F2A73 + 87CA + E89F8A + East Asian ideograph + + + 2F2D79 + 88B5 + E8A2B5 + East Asian ideograph + + + 2F2F5D + 7E48 + E7B988 + East Asian ideograph + + + 2F312B + 89BB + E8A6BB + East Asian ideograph + + + 2F3143 + 89F5 + E8A7B5 + East Asian ideograph (unrelated variant of EACC 23315E) + + + 2F317D + 8A7E + E8A9BE + East Asian ideograph + + + 2F3363 + 8B1A + E8AC9A + East Asian ideograph + + + 2F3639 + 8C7C + E8B1BC + East Asian ideograph + + + 2F3833 + 8D91 + E8B691 + East Asian ideograph + + + 2F386F + 8DD7 + E8B797 + East Asian ideograph + + + 2F3A5E + 8E6E + E8B9AE + East Asian ideograph + + + 2F3B63 + 5E32 + E5B8B2 + East Asian ideograph + + + 2F3C2D + 8F3C + E8BCBC + East Asian ideograph + + + 2F3D5D + 900E + E9808E + East Asian ideograph + + + 2F4053 + 914F + E9858F + East Asian ideograph + + + 2F4231 + 8019 + E88099 + East Asian ideograph (unrelated variant of EACC 215266) + + + 2F445F + 941A + E9909A + East Asian ideograph + + + 2F4A2E + 90B4 + E982B4 + East Asian ideograph + + + 2F4A4A + 5F8F + E5BE8F + East Asian ideograph + + + 2F5158 + 7CC7 + E7B387 + East Asian ideograph + + + 2F5476 + 9AE1 + E9ABA1 + East Asian ideograph + + + 2F575F + 9ABE + E9AABE + East Asian ideograph + + + 2F585C + 9C51 + E9B191 + East Asian ideograph (unrelated variant of EACC 235945) + + + 2F5870 + 9C1B + E9B09B + East Asian ideograph + + + 2F5973 + 9CEC + E9B3AC + East Asian ideograph + + + 2F5A48 + 9D44 + E9B584 + East Asian ideograph + + + 2F5D3C + 6EF7 + E6BBB7 + East Asian ideograph + + + 2F5D49 + 9EA4 + E9BAA4 + East Asian ideograph + + + 2F5D5C + 730A + E78C8A + East Asian ideograph + + + 2F5E42 + 9EC9 + E9BB89 + East Asian ideograph + + + 2F5E66 + 9B12 + E9AC92 + East Asian ideograph + + + 2F5E7D + 6641 + E69981 + East Asian ideograph + + + 2F5F45 + 86A1 + E89AA1 + East Asian ideograph + + + 333021 + 58F9 + E5A3B9 + East Asian ideograph + + + 33303A + 8FFA + E8BFBA + East Asian ideograph + + + 33304C + 4E79 + E4B9B9 + East Asian ideograph + + + 333051 + 8CB3 + E8B2B3 + East Asian ideograph + + + 333060 + 4EAF + E4BAAF + East Asian ideograph + + + 333066 + 5FC8 + E5BF88 + East Asian ideograph + + + 33306C + 8B90 + E8AE90 + East Asian ideograph + + + 333078 + 5F77 + E5BDB7 + East Asian ideograph + + + 33314C + 5FA0 + E5BEA0 + East Asian ideograph + + + 333240 + 4FFB + E4BFBB + East Asian ideograph + + + 333251 + 5FBA + E5BEBA + East Asian ideograph + + + 33325D + 4FA1 + E4BEA1 + East Asian ideograph + + + 33327A + 5150 + E58590 + East Asian ideograph + + + 333323 + 4E21 + E4B8A1 + East Asian ideograph + + + 33332A + 4E93 + E4BA93 + East Asian ideograph + + + 333330 + 518A + E5868A + East Asian ideograph + + + 33333C + 6C37 + E6B0B7 + East Asian ideograph + + + 333344 + 51DB + E5879B + East Asian ideograph + + + 33334E + 51FE + E587BE + East Asian ideograph + + + 333377 + 5270 + E589B0 + East Asian ideograph + + + 33337B + 52E6 + E58BA6 + East Asian ideograph + + + 333421 + 91FC + E987BC + East Asian ideograph + + + 333423 + 5264 + E589A4 + East Asian ideograph + + + 333428 + 523C + E588BC + East Asian ideograph + + + 333475 + 9628 + E998A8 + East Asian ideograph + + + 33347D + 53C1 + E58F81 + East Asian ideograph + + + 333529 + 53DC + E58F9C + East Asian ideograph + + + 33354E + 608B + E6828B + East Asian ideograph + + + 333556 + 9A03 + E9A883 + East Asian ideograph + + + 33355C + 5449 + E59189 + East Asian ideograph + + + 333564 + 5415 + E59095 + East Asian ideograph + + + 333573 + 8656 + E89996 + East Asian ideograph + + + 333623 + 9F69 + E9BDA9 + East Asian ideograph + + + 33362A + 9B28 + E9ACA8 + East Asian ideograph + + + 333642 + 8A92 + E8AA92 + East Asian ideograph + + + 33365A + 5405 + E59085 + East Asian ideograph + + + 333768 + 8FF4 + E8BFB4 + East Asian ideograph + + + 33386E + 576F + E59DAF + East Asian ideograph + + + 33392F + 9029 + E980A9 + East Asian ideograph + + + 333944 + 5B2D + E5ACAD + East Asian ideograph + + + 333963 + 59C9 + E5A789 + East Asian ideograph + + + 333C21 + 7895 + E7A295 + East Asian ideograph + + + 333C52 + 8CEC + E8B3AC + East Asian ideograph + + + 333D28 + 53A8 + E58EA8 + East Asian ideograph + + + 333D2A + 5E83 + E5BA83 + East Asian ideograph + + + 333D2F + 5E81 + E5BA81 + East Asian ideograph + + + 333D42 + 7D43 + E7B583 + East Asian ideograph + + + 333D48 + 5F3A + E5BCBA + East Asian ideograph + + + 333D4C + 7030 + E780B0 + East Asian ideograph + + + 333D54 + 4EFD + E4BBBD + East Asian ideograph + + + 333D75 + 5FB3 + E5BEB3 + East Asian ideograph + + + 333E7D + 7652 + E79992 + East Asian ideograph + + + 333F22 + 6168 + E685A8 + East Asian ideograph (variant of EACC 213F22) + + + 333F24 + 7718 + E79C98 + East Asian ideograph + + + 333F3F + 51F4 + E587B4 + East Asian ideograph + + + 333F55 + 5B3E + E5ACBE + East Asian ideograph + + + 333F58 + 61F4 + E687B4 + East Asian ideograph + + + 333F5B + 6133 + E684B3 + East Asian ideograph + + + 334045 + 629B + E68A9B + East Asian ideograph + + + 334050 + 62D5 + E68B95 + East Asian ideograph + + + 334131 + 6425 + E690A5 + East Asian ideograph + + + 33417E + 629E + E68A9E + East Asian ideograph + + + 33422A + 62E1 + E68BA1 + East Asian ideograph + + + 33423D + 53CE + E58F8E + East Asian ideograph + + + 334243 + 52B9 + E58AB9 + East Asian ideograph + + + 334244 + 6559 + E69599 + East Asian ideograph + + + 334256 + 6B5B + E6AD9B + East Asian ideograph + + + 334260 + 89D4 + E8A794 + East Asian ideograph + + + 334277 + 65EF + E697AF + East Asian ideograph + + + 33432F + 664B + E6998B + East Asian ideograph + + + 33433E + 95C7 + E99787 + East Asian ideograph + + + 334342 + 7156 + E78596 + East Asian ideograph + + + 334357 + 6702 + E69C82 + East Asian ideograph + + + 334369 + 5932 + E5A4B2 + East Asian ideograph + + + 334425 + 76C3 + E79B83 + East Asian ideograph + + + 334449 + 6144 + E68584 + East Asian ideograph + + + 334527 + 6918 + E6A498 + East Asian ideograph + + + 334550 + 7F47 + E7BD87 + East Asian ideograph + + + 33456D + 826A + E889AA + East Asian ideograph + + + 334621 + 8B99 + E8AE99 + East Asian ideograph + + + 334633 + 6B8B + E6AE8B + East Asian ideograph (variant of EACC 274633) + + + 33463C + 6BBB + E6AEBB + East Asian ideograph + + + 334665 + 6C61 + E6B1A1 + East Asian ideograph + + + 334674 + 76C5 + E79B85 + East Asian ideograph + + + 33467A + 6CA1 + E6B2A1 + East Asian ideograph + + + 334729 + 6E2B + E6B8AB + East Asian ideograph + + + 334730 + 6E5F + E6B99F + East Asian ideograph + + + 334740 + 6D1A + E6B49A + East Asian ideograph + + + 33474A + 6D1F + E6B49F + East Asian ideograph + + + 334755 + 6FEC + E6BFAC + East Asian ideograph + + + 33475E + 6FB9 + E6BEB9 + East Asian ideograph + + + 33475F + 60BD + E682BD + East Asian ideograph + + + 33476F + 6D44 + E6B584 + East Asian ideograph + + + 334770 + 5A6C + E5A9AC + East Asian ideograph + + + 33477B + 904A + E9818A + East Asian ideograph + + + 33483B + 6CDD + E6B39D + East Asian ideograph + + + 33485E + 67D2 + E69F92 + East Asian ideograph + + + 33492E + 6F81 + E6BE81 + East Asian ideograph + + + 33494A + 70D6 + E78396 + East Asian ideograph + + + 334968 + 7133 + E784B3 + East Asian ideograph + + + 33496A + 934A + E98D8A + East Asian ideograph + + + 334A28 + 91BC + E986BC + East Asian ideograph + + + 334A58 + 89DD + E8A79D + East Asian ideograph + + + 334C2C + 754D + E7958D + East Asian ideograph + + + 334C36 + 753B + E794BB + East Asian ideograph (variant of EACC 274C36) + + + 334C37 + 8E6F + E8B9AF + East Asian ideograph + + + 334C3E + 8E08 + E8B888 + East Asian ideograph + + + 334C7B + 767A + E799BA + East Asian ideograph + + + 334E37 + 784E + E7A18E + East Asian ideograph + + + 334E73 + 79A5 + E7A6A5 + East Asian ideograph + + + 334F37 + 5EE9 + E5BBA9 + East Asian ideograph + + + 334F3A + 7A49 + E7A989 + East Asian ideograph + + + 334F59 + 7A93 + E7AA93 + East Asian ideograph + + + 334F5E + 7A91 + E7AA91 + East Asian ideograph + + + 334F71 + 54B2 + E592B2 + East Asian ideograph + + + 33502A + 9257 + E98997 + East Asian ideograph + + + 33502B + 724B + E7898B + East Asian ideograph + + + 335065 + 7A45 + E7A985 + East Asian ideograph + + + 33512E + 7E8D + E7BA8D + East Asian ideograph + + + 33513C + 7D4C + E7B58C + East Asian ideograph + + + 335147 + 7EEE + E7BBAE + East Asian ideograph + + + 33514C + 7DD1 + E7B791 + East Asian ideograph + + + 33515C + 7DAB + E7B6AB + East Asian ideograph + + + 33516B + 7DD0 + E7B790 + East Asian ideograph + + + 33516D + 6374 + E68DB4 + East Asian ideograph + + + 335172 + 7D89 + E7B689 + East Asian ideograph + + + 335223 + 7E8E + E7BA8E + East Asian ideograph + + + 335228 + 94B5 + E992B5 + East Asian ideograph + + + 335230 + 7F6E + E7BDAE + East Asian ideograph (variant of EACC 215230) + + + 335234 + 99E1 + E9A7A1 + East Asian ideograph + + + 335238 + 8989 + E8A689 + East Asian ideograph + + + 33523F + 8B71 + E8ADB1 + East Asian ideograph + + + 335259 + 7E59 + E7B999 + East Asian ideograph + + + 33525B + 71FF + E787BF + East Asian ideograph + + + 335276 + 8061 + E881A1 + East Asian ideograph + + + 335333 + 80BB + E882BB + East Asian ideograph + + + 335347 + 81D9 + E88799 + East Asian ideograph + + + 33537D + 9AD5 + E9AB95 + East Asian ideograph + + + 335445 + 67C1 + E69F81 + East Asian ideograph + + + 335446 + 8221 + E888A1 + East Asian ideograph + + + 335461 + 6CD6 + E6B396 + East Asian ideograph + + + 335561 + 8462 + E891A2 + East Asian ideograph + + + 335568 + 8406 + E89086 + East Asian ideograph + + + 335577 + 8602 + E89882 + East Asian ideograph + + + 335635 + 85AC + E896AC + East Asian ideograph + + + 335652 + 87C1 + E89F81 + East Asian ideograph + + + 33567C + 8671 + E899B1 + East Asian ideograph + + + 33572E + 880E + E8A08E + East Asian ideograph + + + 335738 + 880F + E8A08F + East Asian ideograph + + + 335760 + 88E0 + E8A3A0 + East Asian ideograph + + + 335772 + 8943 + E8A583 + East Asian ideograph + + + 335773 + 88B4 + E8A2B4 + East Asian ideograph + + + 335821 + 97C8 + E99F88 + East Asian ideograph + + + 335830 + 658D + E6968D + East Asian ideograph + + + 335834 + 89E7 + E8A7A7 + East Asian ideograph + + + 335941 + 54D7 + E59397 + East Asian ideograph + + + 335958 + 8C4A + E8B18A + East Asian ideograph + + + 335A7B + 8E28 + E8B8A8 + East Asian ideograph + + + 335B70 + 5EF8 + E5BBB8 + East Asian ideograph + + + 335D23 + 8A76 + E8A9B6 + East Asian ideograph + + + 335D3B + 57DC + E59F9C + East Asian ideograph + + + 335E21 + 9221 + E988A1 + East Asian ideograph + + + 335E2F + 5257 + E58997 + East Asian ideograph + + + 335E3D + 9244 + E98984 + East Asian ideograph + + + 335E42 + 9452 + E99192 + East Asian ideograph + + + 335F34 + 90C4 + E98384 + East Asian ideograph + + + 335F3D + 96B7 + E99AB7 + East Asian ideograph + + + 335F43 + 9D08 + E9B488 + East Asian ideograph + + + 335F49 + 9D70 + E9B5B0 + East Asian ideograph + + + 335F73 + 9759 + E99D99 + East Asian ideograph + + + 336054 + 985B + E9A19B + East Asian ideograph + + + 336058 + 9855 + E9A195 + East Asian ideograph + + + 336062 + 98C3 + E9A383 + East Asian ideograph + + + 33615A + 8EB0 + E8BAB0 + East Asian ideograph + + + 336162 + 9A23 + E9A8A3 + East Asian ideograph + + + 336179 + 9C7B + E9B1BB + East Asian ideograph + + + 33625E + 9EAA + E9BAAA + East Asian ideograph + + + 33625F + 8534 + E894B4 + East Asian ideograph + + + 336275 + 76BC + E79ABC + East Asian ideograph + + + 33627D + 6589 + E69689 + East Asian ideograph + + + 336321 + 6B6F + E6ADAF + East Asian ideograph + + + 33632B + 7ADC + E7AB9C + East Asian ideograph + + + 336B33 + 524F + E5898F + East Asian ideograph + + + 336C6B + 6031 + E680B1 + East Asian ideograph + + + 337345 + 9F67 + E9BDA7 + East Asian ideograph + + + 342453 + 5CBD + E5B2BD + East Asian ideograph + + + 343875 + 5FDE + E5BF9E + East Asian ideograph + + + 343A5B + 572C + E59CAC + East Asian ideograph + + + 343E38 + 7BDA + E7AF9A + East Asian ideograph + + + 344138 + 8022 + E880A2 + East Asian ideograph + + + 344177 + 8264 + E889A4 + East Asian ideograph + + + 34492F + 6D34 + E6B4B4 + East Asian ideograph + + + 345175 + 7162 + E785A2 + East Asian ideograph + + + 345452 + 7118 + E78498 + East Asian ideograph + + + 345D6B + 756D + E795AD + East Asian ideograph + + + 345E3B + 80AC + E882AC + East Asian ideograph + + + 345E47 + 75FE + E797BE + East Asian ideograph + + + 346126 + 6900 + E6A480 + East Asian ideograph + + + 346622 + 589D + E5A29D + East Asian ideograph + + + 34682A + 7C7C + E7B1BC + East Asian ideograph + + + 34715A + 7E1A + E7B89A + East Asian ideograph + + + 347431 + 58DC + E5A39C + East Asian ideograph + + + 34782A + 90C5 + E98385 + East Asian ideograph + + + 347D24 + 83C7 + E88F87 + East Asian ideograph + + + 35344D + 8B5B + E8AD9B + East Asian ideograph + + + 35347B + 8B2D + E8ACAD + East Asian ideograph + + + 354156 + 91BE + E986BE + East Asian ideograph + + + 355053 + 98C8 + E9A388 + East Asian ideograph + + + 355739 + 9C76 + E9B1B6 + East Asian ideograph + + + 355D5C + 8C8E + E8B28E + East Asian ideograph + + + 355E76 + 82BE + E88ABE + East Asian ideograph + + + 39302D + 534B + E58D8B + East Asian ideograph + + + 39303A + 5EFC + E5BBBC + East Asian ideograph + + + 39304C + 4E81 + E4BA81 + East Asian ideograph + + + 393052 + 65BC + E696BC + East Asian ideograph + + + 393054 + 4F0D + E4BC8D + East Asian ideograph + + + 393078 + 9AE3 + E9ABA3 + East Asian ideograph + + + 393246 + 4F1D + E4BC9D + East Asian ideograph + + + 393428 + 5227 + E588A7 + East Asian ideograph + + + 393439 + 61C3 + E68783 + East Asian ideograph + + + 39345B + 965E + E9999E + East Asian ideograph + + + 393460 + 604A + E6818A + East Asian ideograph + + + 393573 + 5611 + E59891 + East Asian ideograph + + + 393577 + 9FA2 + E9BEA2 + East Asian ideograph + + + 39365A + 8AE0 + E8ABA0 + East Asian ideograph + + + 39365E + 559E + E5969E + East Asian ideograph + + + 393770 + 56F2 + E59BB2 + East Asian ideograph + + + 393944 + 59B3 + E5A6B3 + East Asian ideograph + + + 393B39 + 5BF3 + E5AFB3 + East Asian ideograph + + + 393B6E + 5C97 + E5B297 + East Asian ideograph + + + 393B78 + 5CC4 + E5B384 + East Asian ideograph (duplicate simplified) + + + 393C52 + 8D26 + E8B4A6 + East Asian ideograph + + + 393D6F + 8907 + E8A487 + East Asian ideograph + + + 393E47 + 8CC9 + E8B389 + East Asian ideograph + + + 393E4C + 6142 + E68582 + East Asian ideograph + + + 393E61 + 60AA + E682AA + East Asian ideograph + + + 393E7D + 7609 + E79889 + East Asian ideograph + + + 394022 + 6443 + E69183 + East Asian ideograph + + + 394042 + 646D + E691AD + East Asian ideograph + + + 39417C + 62E0 + E68BA0 + East Asian ideograph + + + 394243 + 4FF2 + E4BFB2 + East Asian ideograph + + + 39424F + 5554 + E59594 + East Asian ideograph + + + 394330 + 6644 + E69984 + East Asian ideograph + + + 394444 + 8988 + E8A688 + East Asian ideograph + + + 39447D + 6AC2 + E6AB82 + East Asian ideograph + + + 39456D + 826B + E889AB + East Asian ideograph + + + 394634 + 6B96 + E6AE96 + East Asian ideograph (variant of EACC 214634) + + + 394735 + 6C3E + E6B0BE + East Asian ideograph + + + 39476F + 51C0 + E58780 + East Asian ideograph + + + 39483B + 9061 + E981A1 + East Asian ideograph + + + 394928 + 6D5C + E6B59C + East Asian ideograph + + + 394944 + 6B12 + E6AC92 + East Asian ideograph + + + 394956 + 792E + E7A4AE + East Asian ideograph + + + 394A60 + 9AE6 + E9ABA6 + East Asian ideograph + + + 394C2D + 7546 + E79586 + East Asian ideograph + + + 395050 + 7BED + E7AFAD + East Asian ideograph + + + 39505B + 9B3B + E9ACBB + East Asian ideograph + + + 395063 + 9939 + E9A4B9 + East Asian ideograph + + + 395179 + 7D75 + E7B5B5 + East Asian ideograph + + + 395230 + 5BD8 + E5AF98 + East Asian ideograph + + + 39525B + 66DC + E69B9C + East Asian ideograph + + + 39526B + 7094 + E78294 + East Asian ideograph + + + 395477 + 85A6 + E896A6 + East Asian ideograph + + + 39553C + 5D0B + E5B48B + East Asian ideograph + + + 395564 + 6726 + E69CA6 + East Asian ideograph + + + 395568 + 83DD + E88F9D + East Asian ideograph + + + 395577 + 854B + E8958B + East Asian ideograph + + + 39563C + 56CC + E59B8C + East Asian ideograph + + + 395643 + 4E55 + E4B995 + East Asian ideograph + + + 395652 + 87A1 + E89EA1 + East Asian ideograph + + + 395773 + 7DAF + E7B6AF + East Asian ideograph + + + 395821 + 97E4 + E99FA4 + East Asian ideograph + + + 395829 + 69FB + E6A7BB + East Asian ideograph + + + 39593F + 8A3C + E8A8BC + East Asian ideograph + + + 395A2F + 58F2 + E5A3B2 + East Asian ideograph + + + 395A36 + 983C + E9A0BC + East Asian ideograph + + + 395D23 + 91BB + E986BB + East Asian ideograph + + + 395E2F + 5277 + E589B7 + East Asian ideograph + + + 395E3D + 9295 + E98A95 + East Asian ideograph + + + 395E42 + 9274 + E989B4 + East Asian ideograph + + + 395E6F + 7A7D + E7A9BD + East Asian ideograph + + + 395E71 + 5742 + E59D82 + East Asian ideograph + + + 395F49 + 5F6B + E5BDAB + East Asian ideograph + + + 395F68 + 8987 + E8A687 + East Asian ideograph + + + 396074 + 55B0 + E596B0 + East Asian ideograph + + + 396167 + 9B2A + E9ACAA + East Asian ideograph + + + 396179 + 5C20 + E5B0A0 + East Asian ideograph + + + 396223 + 9BFD + E9AFBD + East Asian ideograph (variant of EACC 216223) + + + 396B2F + 521F + E5889F + East Asian ideograph + + + 396B33 + 5259 + E58999 + East Asian ideograph + + + 396C6B + 60A4 + E682A4 + East Asian ideograph + + + 3A284C + 53A9 + E58EA9 + East Asian ideograph (variant of EACC 4C284C) + + + 3A2F7C + 64C0 + E69380 + East Asian ideograph + + + 3A3B7D + 67B1 + E69EB1 + East Asian ideograph + + + 3A4034 + 6855 + E6A195 + East Asian ideograph + + + 3A6A7C + 7BEA + E7AFAA + East Asian ideograph + + + 3A787D + 80FC + E883BC + East Asian ideograph + + + 3A7970 + 81D5 + E88795 + East Asian ideograph + + + 3B2D44 + 8842 + E8A182 + East Asian ideograph + + + 3B3922 + 8DB5 + E8B6B5 + East Asian ideograph + + + 3F304C + 5E79 + E5B9B9 + East Asian ideograph + + + 3F3078 + 5023 + E580A3 + East Asian ideograph + + + 3F347D + 84E1 + E893A1 + East Asian ideograph + + + 3F3573 + 8B3C + E8ACBC + East Asian ideograph + + + 3F377B + 784E + E7A18E + East Asian ideograph (Version J extension) + + + 3F3D6F + 8986 + E8A686 + East Asian ideograph + + + 3F3E47 + 5379 + E58DB9 + East Asian ideograph + + + 3F3F24 + 614E + E6858E + East Asian ideograph + + + 3F404F + 638A + E68E8A + East Asian ideograph + + + 3F424F + 542F + E590AF + East Asian ideograph (variant of EACC 27424F) + + + 3F4472 + 7881 + E7A281 + East Asian ideograph + + + 3F456D + 8263 + E889A3 + East Asian ideograph + + + 3F4621 + 9A69 + E9A9A9 + East Asian ideograph + + + 3F4629 + 4E97 + E4BA97 + East Asian ideograph + + + 3F462B + 5E30 + E5B8B0 + East Asian ideograph + + + 3F476F + 51C8 + E58788 + East Asian ideograph + + + 3F4926 + 6E08 + E6B888 + East Asian ideograph + + + 3F4956 + 7832 + E7A0B2 + East Asian ideograph + + + 3F4A28 + 9DF0 + E9B7B0 + East Asian ideograph + + + 3F4A60 + 7266 + E789A6 + East Asian ideograph + + + 3F4C3C + 7582 + E79682 + East Asian ideograph + + + 3F516D + 6403 + E69083 + East Asian ideograph + + + 3F5564 + 61DE + E6879E + East Asian ideograph + + + 3F5631 + 517F + E585BF + East Asian ideograph + + + 3F5959 + 8276 + E889B6 + East Asian ideograph + + + 3F5E60 + 9586 + E99686 + East Asian ideograph + + + 3F5F34 + 9699 + E99A99 + East Asian ideograph + + + 3F5F35 + 6B9E + E6AE9E + East Asian ideograph + + + 3F5F49 + 7431 + E790B1 + East Asian ideograph + + + 3F614C + 99C5 + E9A785 + East Asian ideograph + + + 3F6179 + 5C1F + E5B09F + East Asian ideograph + + + 45304C + 69A6 + E6A6A6 + East Asian ideograph + + + 453051 + 8D30 + E8B4B0 + East Asian ideograph + + + 453336 + 5B82 + E5AE82 + East Asian ideograph + + + 453421 + 5271 + E589B1 + East Asian ideograph + + + 453666 + 5AD0 + E5AB90 + East Asian ideograph + + + 453755 + 56AE + E59AAE + East Asian ideograph + + + 453768 + 5EFB + E5BBBB + East Asian ideograph + + + 453D53 + 5F66 + E5BDA6 + East Asian ideograph + + + 453F6D + 52E0 + E58BA0 + East Asian ideograph + + + 454146 + 63DB + E68F9B + East Asian ideograph + + + 45456D + 6A10 + E6A890 + East Asian ideograph + + + 45462B + 7688 + E79A88 + East Asian ideograph + + + 45465B + 6C2F + E6B0AF + East Asian ideograph + + + 454738 + 6CFA + E6B3BA + East Asian ideograph + + + 454774 + 6E15 + E6B895 + East Asian ideograph + + + 454B7A + 7523 + E794A3 + East Asian ideograph + + + 454C3C + 7589 + E79689 + East Asian ideograph + + + 454E43 + 788C + E7A28C + East Asian ideograph (variant of EACC 214E43) + + + 454E75 + 7984 + E7A684 + East Asian ideograph + + + 454F45 + 9896 + E9A296 + East Asian ideograph + + + 455122 + 7D0D + E7B48D + East Asian ideograph + + + 455164 + 53BF + E58EBF + East Asian ideograph + + + 455564 + 6FDB + E6BF9B + East Asian ideograph (Version J extension) + + + 45564B + 865E + E8999E + East Asian ideograph (variant of EACC 21564B) + + + 455746 + 672F + E69CAF + East Asian ideograph + + + 455837 + 8BA0 + E8AEA0 + East Asian ideograph + + + 455847 + 8A25 + E8A8A5 + East Asian ideograph (variant of EACC 215847) + + + 455D3E + 9485 + E99285 + East Asian ideograph + + + 455E21 + 953A + E994BA + East Asian ideograph + + + 455E60 + 95EB + E997AB + East Asian ideograph (Version J extension) + + + 455F35 + 9668 + E999A8 + East Asian ideograph (Version J extension) + + + 456036 + 97FF + E99FBF + East Asian ideograph + + + 45604E + 984F + E9A18F + East Asian ideograph + + + 456064 + 9963 + E9A5A3 + East Asian ideograph + + + 45606B + 98F0 + E9A3B0 + East Asian ideograph + + + 456076 + 9980 + E9A680 + East Asian ideograph + + + 456260 + 5E7A + E5B9BA + East Asian ideograph + + + 456324 + 9F61 + E9BDA1 + East Asian ideograph + + + 46284C + 5ED0 + E5BB90 + East Asian ideograph + + + 466074 + 76B2 + E79AB2 + East Asian ideograph + + + 472C4D + 8801 + E8A081 + East Asian ideograph (variant of EACC 232C4D) + + + 473422 + 8C2A + E8B0AA + East Asian ideograph + + + 47347B + 8C2B + E8B0AB + East Asian ideograph + + + 473539 + 8B9E + E8AE9E + East Asian ideograph + + + 47366F + 8D4D + E8B58D + East Asian ideograph + + + 474236 + 949A + E9929A + East Asian ideograph + + + 474270 + 94BC + E992BC + East Asian ideograph + + + 474931 + 95F6 + E997B6 + East Asian ideograph + + + 474E5C + 97DE + E99F9E + East Asian ideograph (variant of EACC 234E5C) + + + 475222 + 9957 + E9A597 + East Asian ideograph + + + 47577A + 9BD6 + E9AF96 + East Asian ideograph (variant of EACC 23577A) + + + 47594E + 9C3A + E9B0BA + East Asian ideograph + + + 4B3021 + 58F1 + E5A3B1 + East Asian ideograph + + + 4B3050 + 4E8A + E4BA8A + East Asian ideograph + + + 4B3051 + 5F10 + E5BC90 + East Asian ideograph + + + 4B3052 + 6275 + E689B5 + East Asian ideograph + + + 4B3057 + 4E99 + E4BA99 + East Asian ideograph + + + 4B306C + 96E0 + E99BA0 + East Asian ideograph + + + 4B306E + 4EE4 + E4BBA4 + East Asian ideograph (variant of EACC 21306E) + + + 4B3072 + 4EED + E4BBAD + East Asian ideograph + + + 4B312D + 4F2B + E4BCAB + East Asian ideograph + + + 4B3130 + 4FAB + E4BEAB + East Asian ideograph + + + 4B3144 + 4F36 + E4BCB6 + East Asian ideograph (variant of EACC 213144) + + + 4B314C + 5F95 + E5BE95 + East Asian ideograph + + + 4B316A + 723C + E788BC + East Asian ideograph + + + 4B3178 + 5029 + E580A9 + East Asian ideograph (variant of EACC 213178) + + + 4B317C + 5024 + E580A4 + East Asian ideograph + + + 4B3231 + 4EEE + E4BBAE + East Asian ideograph + + + 4B3248 + 50B2 + E582B2 + East Asian ideograph + + + 4B324E + 50E7 + E583A7 + East Asian ideograph (variant of EACC 21324E) + + + 4B325F + 50BB + E582BB + East Asian ideograph + + + 4B3321 + 5185 + E58685 + East Asian ideograph + + + 4B3322 + 5168 + E585A8 + East Asian ideograph (variant of EACC 213322) + + + 4B3324 + 634C + E68D8C + East Asian ideograph (variant of EACC 2D3324) + + + 4B333E + 51B7 + E586B7 + East Asian ideograph (variant of EACC 21333E) + + + 4B3351 + 5204 + E58884 + East Asian ideograph + + + 4B3354 + 82C5 + E88B85 + East Asian ideograph + + + 4B3355 + 520B + E5888B + East Asian ideograph + + + 4B335B + 522B + E588AB + East Asian ideograph + + + 4B3421 + 5263 + E589A3 + East Asian ideograph + + + 4B3435 + 52B4 + E58AB4 + East Asian ideograph + + + 4B3436 + 52F2 + E58BB2 + East Asian ideograph + + + 4B346B + 5DF5 + E5B7B5 + East Asian ideograph + + + 4B3474 + 537F + E58DBF + East Asian ideograph (variant of EACC 213474) + + + 4B356A + 55EC + E597AC + East Asian ideograph + + + 4B357B + 54CC + E5938C + East Asian ideograph + + + 4B3622 + 8C18 + E8B098 + East Asian ideograph + + + 4B3642 + 8BF6 + E8AFB6 + East Asian ideograph + + + 4B3666 + 5A1A + E5A89A + East Asian ideograph + + + 4B3668 + 5358 + E58D98 + East Asian ideograph + + + 4B372C + 5606 + E59886 + East Asian ideograph + + + 4B372F + 5C1C + E5B09C + East Asian ideograph + + + 4B3749 + 5668 + E599A8 + East Asian ideograph (variant of EACC 213749) + + + 4B374C + 5662 + E599A2 + East Asian ideograph + + + 4B3758 + 56A5 + E59AA5 + East Asian ideograph (variant of EACC 213758) + + + 4B375A + 53B3 + E58EB3 + East Asian ideograph + + + 4B3768 + 56D8 + E59B98 + East Asian ideograph + + + 4B376F + 56FD + E59BBD + East Asian ideograph + + + 4B3772 + 5186 + E58686 + East Asian ideograph + + + 4B3773 + 56E3 + E59BA3 + East Asian ideograph + + + 4B3774 + 56F3 + E59BB3 + East Asian ideograph + + + 4B382E + 57C0 + E59F80 + East Asian ideograph + + + 4B3850 + 5861 + E5A1A1 + East Asian ideograph (variant of EACC 213850) + + + 4B3853 + 586D + E5A1AD + East Asian ideograph + + + 4B385E + 5897 + E5A297 + East Asian ideograph + + + 4B3864 + 58C7 + E5A387 + East Asian ideograph + + + 4B3869 + 5727 + E59CA7 + East Asian ideograph + + + 4B386C + 5841 + E5A181 + East Asian ideograph + + + 4B3870 + 58CC + E5A38C + East Asian ideograph + + + 4B3871 + 57BB + E59EBB + East Asian ideograph + + + 4B387D + 591B + E5A49B + East Asian ideograph + + + 4B3938 + 5942 + E5A582 + East Asian ideograph + + + 4B393A + 5F09 + E5BC89 + East Asian ideograph + + + 4B393E + 5965 + E5A5A5 + East Asian ideograph + + + 4B393F + 5333 + E58CB3 + East Asian ideograph + + + 4B3974 + 5B22 + E5ACA2 + East Asian ideograph + + + 4B397B + 5A2F + E5A8AF + East Asian ideograph + + + 4B3A2F + 805F + E8819F + East Asian ideograph + + + 4B3A47 + 88CA + E8A38A + East Asian ideograph + + + 4B3A49 + 5B37 + E5ACB7 + East Asian ideograph + + + 4B3B22 + 51A6 + E586A6 + East Asian ideograph + + + 4B3B31 + 5B9F + E5AE9F + East Asian ideograph + + + 4B3B37 + 51A9 + E586A9 + East Asian ideograph + + + 4B3B43 + 5BFE + E5AFBE + East Asian ideograph + + + 4B3B52 + 8132 + E884B2 + East Asian ideograph + + + 4B3B61 + 5C64 + E5B1A4 + East Asian ideograph + + + 4B3B67 + 6B67 + E6ADA7 + East Asian ideograph + + + 4B3B79 + 5D8C + E5B68C + East Asian ideograph + + + 4B3B7E + 5D15 + E5B495 + East Asian ideograph + + + 4B3C21 + 5D5C + E5B59C + East Asian ideograph + + + 4B3C23 + 5CE5 + E5B3A5 + East Asian ideograph + + + 4B3C2B + 67C3 + E69F83 + East Asian ideograph (Version J extension) + + + 4B3C2F + 5DBA + E5B6BA + East Asian ideograph + + + 4B3C32 + 5DD3 + E5B793 + East Asian ideograph + + + 4B3C33 + 5DCC + E5B78C + East Asian ideograph + + + 4B3C38 + 949C + E9929C + East Asian ideograph + + + 4B3C53 + 5E2F + E5B8AF + East Asian ideograph + + + 4B3C5E + 5E64 + E5B9A4 + East Asian ideograph + + + 4B3D24 + 53A6 + E58EA6 + East Asian ideograph + + + 4B3D27 + 5EC3 + E5BB83 + East Asian ideograph + + + 4B3D2A + 5EE3 + E5BBA3 + East Asian ideograph + + + 4B3D2C + 53B0 + E58EB0 + East Asian ideograph + + + 4B3D2F + 5EF0 + E5BBB0 + East Asian ideograph + + + 4B3D4B + 5F3E + E5BCBE + East Asian ideograph + + + 4B3D4C + 5F25 + E5BCA5 + East Asian ideograph (variant of EACC 273D4C) + + + 4B3D5C + 5F83 + E5BE83 + East Asian ideograph + + + 4B3D67 + 5F84 + E5BE84 + East Asian ideograph (variant of EACC 273D67) + + + 4B3E2A + 6035 + E680B5 + East Asian ideograph + + + 4B3E40 + 6046 + E68186 + East Asian ideograph + + + 4B3E5B + 60C5 + E68385 + East Asian ideograph + + + 4B3E7E + 60A9 + E682A9 + East Asian ideograph + + + 4B3F40 + 618E + E6868E + East Asian ideograph (variant of EACC 213F40) + + + 4B3F4A + 5FDC + E5BF9C + East Asian ideograph + + + 4B3F4B + 601C + E6809C + East Asian ideograph (variant of EACC 273F4B) + + + 4B3F50 + 61CA + E6878A + East Asian ideograph (variant of EACC 213F50) + + + 4B3F51 + 61D1 + E68791 + East Asian ideograph + + + 4B3F53 + 61F2 + E687B2 + East Asian ideograph + + + 4B3F74 + 623B + E688BB + East Asian ideograph + + + 4B403D + 62DD + E68B9D + East Asian ideograph + + + 4B4046 + 629C + E68A9C + East Asian ideograph + + + 4B4049 + 62D0 + E68B90 + East Asian ideograph + + + 4B4053 + 627A + E689BA + East Asian ideograph + + + 4B4066 + 62F4 + E68BB4 + East Asian ideograph + + + 4B412A + 6323 + E68CA3 + East Asian ideograph + + + 4B4135 + 6368 + E68DA8 + East Asian ideograph + + + 4B4146 + 6362 + E68DA2 + East Asian ideograph + + + 4B4147 + 633F + E68CBF + East Asian ideograph + + + 4B4235 + 6442 + E69182 + East Asian ideograph + + + 4B4236 + 643A + E690BA + East Asian ideograph + + + 4B423A + 64B9 + E692B9 + East Asian ideograph + + + 4B4339 + 6674 + E699B4 + East Asian ideograph + + + 4B4347 + 66A8 + E69AA8 + East Asian ideograph + + + 4B434D + 663F + E698BF + East Asian ideograph + + + 4B4352 + 66F5 + E69BB5 + East Asian ideograph + + + 4B4358 + 66FD + E69BBD + East Asian ideograph + + + 4B442D + 67A9 + E69EA9 + East Asian ideograph + + + 4B4444 + 8988 + E8A688 + East Asian ideograph (Version J extension) + + + 4B4456 + 6813 + E6A093 + East Asian ideograph + + + 4B4476 + 685F + E6A19F + East Asian ideograph + + + 4B4534 + 6994 + E6A694 + East Asian ideograph (variant of EACC 214534) + + + 4B4537 + 6804 + E6A084 + East Asian ideograph + + + 4B4544 + 69D8 + E6A798 + East Asian ideograph + + + 4B4545 + 6982 + E6A682 + East Asian ideograph + + + 4B4553 + 6955 + E6A595 + East Asian ideograph + + + 4B4556 + 6A2A + E6A8AA + East Asian ideograph + + + 4B4559 + 9792 + E99E92 + East Asian ideograph + + + 4B4561 + 691C + E6A49C + East Asian ideograph + + + 4B4569 + 6A71 + E6A9B1 + East Asian ideograph + + + 4B456C + 6ADB + E6AB9B + East Asian ideograph (variant of EACC 21456C) + + + 4B456D + 823B + E888BB + East Asian ideograph + + + 4B456F + 685C + E6A19C + East Asian ideograph + + + 4B4570 + 6A29 + E6A8A9 + East Asian ideograph + + + 4B4621 + 6B53 + E6AD93 + East Asian ideograph + + + 4B462A + 6B74 + E6ADB4 + East Asian ideograph + + + 4B462E + 6B81 + E6AE81 + East Asian ideograph + + + 4B4638 + 6BB1 + E6AEB1 + East Asian ideograph + + + 4B4655 + 6C17 + E6B097 + East Asian ideograph + + + 4B465A + 6C32 + E6B0B2 + East Asian ideograph + + + 4B4676 + 6C89 + E6B289 + East Asian ideograph + + + 4B4741 + 51BD + E586BD + East Asian ideograph + + + 4B4759 + 6D99 + E6B699 + East Asian ideograph + + + 4B4761 + 6E05 + E6B885 + East Asian ideograph + + + 4B4767 + 6DB5 + E6B6B5 + East Asian ideograph (variant of EACC 214767) + + + 4B476C + 51C5 + E58785 + East Asian ideograph + + + 4B4835 + 6DA3 + E6B6A3 + East Asian ideograph + + + 4B4846 + 78C6 + E7A386 + East Asian ideograph + + + 4B484A + 6E13 + E6B893 + East Asian ideograph + + + 4B484B + 51D6 + E58796 + East Asian ideograph + + + 4B484C + 6F91 + E6BE91 + East Asian ideograph + + + 4B4857 + 6F22 + E6BCA2 + East Asian ideograph + + + 4B4858 + 6E80 + E6BA80 + East Asian ideograph + + + 4B485F + 6EDE + E6BB9E + East Asian ideograph (variant of EACC 27485F) + + + 4B4866 + 6E89 + E6BA89 + East Asian ideograph + + + 4B4874 + 6FF3 + E6BFB3 + East Asian ideograph + + + 4B4921 + 6CA2 + E6B2A2 + East Asian ideograph + + + 4B4925 + 6FB3 + E6BEB3 + East Asian ideograph (variant of EACC 214925) + + + 4B492B + 6FEB + E6BFAB + East Asian ideograph + + + 4B492E + 6E0B + E6B88B + East Asian ideograph + + + 4B4931 + 6E16 + E6B896 + East Asian ideograph + + + 4B4937 + 56A0 + E59AA0 + East Asian ideograph + + + 4B4940 + 6F45 + E6BD85 + East Asian ideograph + + + 4B4947 + 7AC3 + E7AB83 + East Asian ideograph + + + 4B496A + 932C + E98CAC + East Asian ideograph + + + 4B496B + 83F8 + E88FB8 + East Asian ideograph + + + 4B4973 + 7115 + E78495 + East Asian ideograph + + + 4B4975 + 6427 + E690A7 + East Asian ideograph + + + 4B4977 + 7188 + E78688 + East Asian ideograph + + + 4B4A2E + 55B6 + E596B6 + East Asian ideograph + + + 4B4A38 + 71D7 + E78797 + East Asian ideograph + + + 4B4A3E + 7235 + E788B5 + East Asian ideograph + + + 4B4A45 + 5C13 + E5B093 + East Asian ideograph + + + 4B4A62 + 72A0 + E78AA0 + East Asian ideograph + + + 4B4A74 + 731C + E78C9C + East Asian ideograph (variant of EACC 214A74) + + + 4B4A78 + 72F0 + E78BB0 + East Asian ideograph + + + 4B4B2B + 7363 + E78DA3 + East Asian ideograph + + + 4B4B2C + 731F + E78C9F + East Asian ideograph + + + 4B4B3E + 73B2 + E78EB2 + East Asian ideograph (variant of EACC 214B3E) + + + 4B4B63 + 749C + E7929C + East Asian ideograph + + + 4B4B71 + 7F3E + E7BCBE + East Asian ideograph (variant of EACC 2D4B71) + + + 4B4B77 + 4EC0 + E4BB80 + East Asian ideograph + + + 4B4C36 + 7575 + E795B5 + East Asian ideograph + + + 4B4C3C + 7573 + E795B3 + East Asian ideograph + + + 4B4C51 + 75CA + E7978A + East Asian ideograph + + + 4B4C5B + 75F3 + E797B3 + East Asian ideograph + + + 4B4C67 + 761F + E7989F + East Asian ideograph (variant of EACC 214C67) + + + 4B4C79 + 7672 + E799B2 + East Asian ideograph + + + 4B4D41 + 862F + E898AF + East Asian ideograph + + + 4B4D45 + 76F4 + E79BB4 + East Asian ideograph (variant of EACC 214D45) + + + 4B4D56 + 8846 + E8A186 + East Asian ideograph + + + 4B4D59 + 775B + E79D9B + East Asian ideograph (variant of EACC 214D59) + + + 4B4D73 + 66B8 + E69AB8 + East Asian ideograph + + + 4B4D7B + 77D7 + E79F97 + East Asian ideograph (variant of EACC 214D7B) + + + 4B4E21 + 7B36 + E7ACB6 + East Asian ideograph + + + 4B4E37 + 7814 + E7A094 + East Asian ideograph + + + 4B4E39 + 5CFA + E5B3BA + East Asian ideograph + + + 4B4E56 + 78FA + E7A3BA + East Asian ideograph + + + 4B4E5B + 783F + E7A0BF + East Asian ideograph + + + 4B4E67 + 79D8 + E7A798 + East Asian ideograph + + + 4B4E7B + 7985 + E7A685 + East Asian ideograph (variant of EACC 274E7B) + + + 4B4F29 + 7A50 + E7A990 + East Asian ideograph + + + 4B4F3C + 79F0 + E7A7B0 + East Asian ideograph (variant of EACC 274F3C) + + + 4B4F43 + 7A32 + E7A8B2 + East Asian ideograph + + + 4B4F4C + 7A4F + E7A98F + East Asian ideograph + + + 4B4F7B + 7B7A + E7ADBA + East Asian ideograph + + + 4B5036 + 7C14 + E7B094 + East Asian ideograph + + + 4B503B + 7C12 + E7B092 + East Asian ideograph + + + 4B5044 + 7C27 + E7B0A7 + East Asian ideograph (variant of EACC 215044) + + + 4B5052 + 7C56 + E7B196 + East Asian ideograph + + + 4B5061 + 7CBE + E7B2BE + East Asian ideograph + + + 4B506C + 7CAB + E7B2AB + East Asian ideograph + + + 4B513B + 7CF8 + E7B3B8 + East Asian ideograph + + + 4B5154 + 7DF4 + E7B7B4 + East Asian ideograph + + + 4B515A + 7E01 + E7B881 + East Asian ideograph + + + 4B5164 + 770C + E79C8C + East Asian ideograph + + + 4B516A + 7EF7 + E7BBB7 + East Asian ideograph + + + 4B516D + 7DCF + E7B78F + East Asian ideograph + + + 4B516E + 7E26 + E7B8A6 + East Asian ideograph + + + 4B5176 + 7E04 + E7B884 + East Asian ideograph + + + 4B5179 + 7F0B + E7BC8B + East Asian ideograph + + + 4B517E + 7E92 + E7BA92 + East Asian ideograph + + + 4B5221 + 7D9A + E7B69A + East Asian ideograph + + + 4B5223 + 7E4A + E7B98A + East Asian ideograph + + + 4B5227 + 6B20 + E6ACA0 + East Asian ideograph + + + 4B522B + 7F36 + E7BCB6 + East Asian ideograph + + + 4B5238 + 7F87 + E7BE87 + East Asian ideograph + + + 4B523E + 7F9A + E7BE9A + East Asian ideograph (variant of EACC 21523E) + + + 4B5247 + 7FAE + E7BEAE + East Asian ideograph + + + 4B524E + 7FCE + E7BF8E + East Asian ideograph + + + 4B525A + 7FFA + E7BFBA + East Asian ideograph + + + 4B525B + 66DC + E69B9C + East Asian ideograph (variant of EACC 39525B) + + + 4B525C + 8002 + E88082 + East Asian ideograph + + + 4B526E + 8046 + E88186 + East Asian ideograph (variant of EACC 21526E) + + + 4B5277 + 8068 + E881A8 + East Asian ideograph + + + 4B527C + 8080 + E88280 + East Asian ideograph + + + 4B533B + 695C + E6A59C + East Asian ideograph + + + 4B5361 + 89D2 + E8A792 + East Asian ideograph (duplicate simplified) + + + 4B5365 + 8133 + E884B3 + East Asian ideograph + + + 4B537D + 9ACC + E9AB8C + East Asian ideograph + + + 4B5422 + 81D3 + E88793 + East Asian ideograph + + + 4B5428 + 81ED + E887AD + East Asian ideograph (variant of EACC 215428) + + + 4B5434 + 6319 + E68C99 + East Asian ideograph + + + 4B5437 + 820E + E8888E + East Asian ideograph + + + 4B546D + 82D3 + E88B93 + East Asian ideograph (variant of EACC 21546D) + + + 4B5521 + 8332 + E88CB2 + East Asian ideograph + + + 4B552C + 8392 + E88E92 + East Asian ideograph + + + 4B553A + 83C1 + E88F81 + East Asian ideograph (variant of EACC 21553A) + + + 4B553F + 83BD + E88EBD + East Asian ideograph (variant of EACC 21553F) + + + 4B5542 + 8420 + E890A0 + East Asian ideograph + + + 4B5564 + 77C7 + E79F87 + East Asian ideograph + + + 4B5629 + 85CD + E8978D + East Asian ideograph + + + 4B562B + 8535 + E894B5 + East Asian ideograph + + + 4B5631 + 82B8 + E88AB8 + East Asian ideograph + + + 4B5632 + 7C54 + E7B194 + East Asian ideograph + + + 4B563A + 82A6 + E88AA6 + East Asian ideograph (variant of EACC 27563A) + + + 4B563F + 6A98 + E6AA98 + East Asian ideograph + + + 4B5647 + 51E6 + E587A6 + East Asian ideograph + + + 4B566A + 8708 + E89C88 + East Asian ideograph (variant of EACC 21566A) + + + 4B5671 + 873B + E89CBB + East Asian ideograph (variant of EACC 215671) + + + 4B5724 + 86CD + E89B8D + East Asian ideograph + + + 4B5736 + 877F + E89DBF + East Asian ideograph + + + 4B5740 + 8827 + E8A0A7 + East Asian ideograph + + + 4B5746 + 8853 + E8A193 + East Asian ideograph + + + 4B576C + 523E + E588BE + East Asian ideograph + + + 4B576F + 8910 + E8A490 + East Asian ideograph (variant of EACC 21576F) + + + 4B5773 + 7ED4 + E7BB94 + East Asian ideograph + + + 4B577E + 7E7F + E7B9BF + East Asian ideograph + + + 4B5824 + 897E + E8A5BE + East Asian ideograph + + + 4B5826 + 8983 + E8A683 + East Asian ideograph (variant of EACC 215826) + + + 4B5830 + 899A + E8A69A + East Asian ideograph + + + 4B5832 + 89B3 + E8A6B3 + East Asian ideograph + + + 4B5861 + 4F89 + E4BE89 + East Asian ideograph + + + 4B5871 + 8AA4 + E8AAA4 + East Asian ideograph + + + 4B587A + 8ACB + E8AB8B + East Asian ideograph + + + 4B5936 + 8B20 + E8ACA0 + East Asian ideograph + + + 4B5946 + 8A33 + E8A8B3 + East Asian ideograph + + + 4B594A + 8AAD + E8AAAD + East Asian ideograph + + + 4B594B + 5909 + E5A489 + East Asian ideograph + + + 4B5959 + 8273 + E889B3 + East Asian ideograph + + + 4B5963 + 734F + E78D8F + East Asian ideograph + + + 4B5964 + 72E2 + E78BA2 + East Asian ideograph + + + 4B5973 + 8D2E + E8B4AE + East Asian ideograph + + + 4B5A23 + 621D + E6889D + East Asian ideograph + + + 4B5A31 + 8CCE + E8B38E + East Asian ideograph + + + 4B5A3B + 8D08 + E8B488 + East Asian ideograph + + + 4B5A68 + 8DF5 + E8B7B5 + East Asian ideograph (variant of EACC 275A68) + + + 4B5A7E + 5C69 + E5B1A9 + East Asian ideograph + + + 4B5B29 + 8E8D + E8BA8D + East Asian ideograph + + + 4B5B46 + 8F0C + E8BC8C + East Asian ideograph + + + 4B5B52 + 8F42 + E8BD82 + East Asian ideograph + + + 4B5B55 + 8EE2 + E8BBA2 + East Asian ideograph + + + 4B5B58 + 8EE3 + E8BBA3 + East Asian ideograph + + + 4B5B5E + 5F01 + E5BC81 + East Asian ideograph + + + 4B5C32 + 9038 + E980B8 + East Asian ideograph + + + 4B5C39 + 9039 + E980B9 + East Asian ideograph + + + 4B5C47 + 9059 + E98199 + East Asian ideograph + + + 4B5C50 + 9045 + E98185 + East Asian ideograph + + + 4B5C54 + 8F9F + E8BE9F + East Asian ideograph (duplicate simplified) + + + 4B5C5B + 8FBA + E8BEBA + East Asian ideograph + + + 4B5C5E + 961D + E9989D + East Asian ideograph + + + 4B5C72 + 9119 + E98499 + East Asian ideograph (variant of EACC 215C72) + + + 4B5C77 + 9139 + E984B9 + East Asian ideograph + + + 4B5D2B + 9162 + E985A2 + East Asian ideograph + + + 4B5D34 + 91B8 + E986B8 + East Asian ideograph + + + 4B5D36 + 91C6 + E98786 + East Asian ideograph + + + 4B5D38 + 91C8 + E98788 + East Asian ideograph + + + 4B5D42 + 91E1 + E987A1 + East Asian ideograph + + + 4B5D58 + 9234 + E988B4 + East Asian ideograph + + + 4B5D65 + 8217 + E88897 + East Asian ideograph + + + 4B5D70 + 92AD + E98AAD + East Asian ideograph + + + 4B5E27 + 93AD + E98EAD + East Asian ideograph + + + 4B5E3D + 9421 + E990A1 + East Asian ideograph + + + 4B5E3F + 922C + E988AC + East Asian ideograph + + + 4B5E5D + 95D4 + E99794 + East Asian ideograph + + + 4B5E69 + 95A2 + E996A2 + East Asian ideograph + + + 4B5E6C + 961D + E9989D + East Asian ideograph (duplicate simplified) + + + 4B5F30 + 9686 + E99A86 + East Asian ideograph (variant of EACC 215F30) + + + 4B5F35 + 6B92 + E6AE92 + East Asian ideograph + + + 4B5F3A + 967A + E999BA + East Asian ideograph + + + 4B5F49 + 51CB + E5878B + East Asian ideograph + + + 4B5F4C + 9D8F + E9B68F + East Asian ideograph + + + 4B5F50 + 96E3 + E99BA3 + East Asian ideograph + + + 4B5F58 + 96F6 + E99BB6 + East Asian ideograph (variant of EACC 215F58 + + + 4B5F62 + 7668 + E799A8 + East Asian ideograph + + + 4B5F6F + 970A + E99C8A + East Asian ideograph + + + 4B5F70 + 9752 + E99D92 + East Asian ideograph + + + 4B5F71 + 9756 + E99D96 + East Asian ideograph + + + 4B5F72 + 975B + E99D9B + East Asian ideograph + + + 4B5F73 + 975C + E99D9C + East Asian ideograph (variant of EACC 215F73) + + + 4B602D + 9771 + E99DB1 + East Asian ideograph + + + 4B6044 + 9818 + E9A098 + East Asian ideograph + + + 4B6048 + 981A + E9A09A + East Asian ideograph + + + 4B6053 + 985E + E9A19E + East Asian ideograph + + + 4B606F + 991D + E9A49D + East Asian ideograph + + + 4B6122 + 994B + E9A58B + East Asian ideograph + + + 4B6130 + 99C4 + E9A784 + East Asian ideograph + + + 4B613F + 9A08 + E9A888 + East Asian ideograph + + + 4B6145 + 9A12 + E9A892 + East Asian ideograph + + + 4B6147 + 99C6 + E9A786 + East Asian ideograph + + + 4B614D + 9A13 + E9A893 + East Asian ideograph + + + 4B6159 + 81B8 + E886B8 + East Asian ideograph + + + 4B615F + 9AEA + E9ABAA + East Asian ideograph + + + 4B6167 + 95D8 + E99798 + East Asian ideograph + + + 4B6168 + 9599 + E99699 + East Asian ideograph + + + 4B623B + 9D12 + E9B492 + East Asian ideograph + + + 4B6247 + 9D2C + E9B4AC + East Asian ideograph + + + 4B624F + 9D49 + E9B589 + East Asian ideograph + + + 4B6258 + 68BA + E6A2BA + East Asian ideograph + + + 4B625C + 9EB8 + E9BAB8 + East Asian ideograph (variant of EACC 27625C) + + + 4B6260 + 9EBD + E9BABD + East Asian ideograph + + + 4B6266 + 9ED2 + E9BB92 + East Asian ideograph + + + 4B6268 + 9ED9 + E9BB99 + East Asian ideograph + + + 4B6278 + 9F21 + E9BCA1 + East Asian ideograph + + + 4B6324 + 9F62 + E9BDA2 + East Asian ideograph + + + 4B6455 + 4EB6 + E4BAB6 + East Asian ideograph + + + 4B6637 + 4FE3 + E4BFA3 + East Asian ideograph + + + 4B682E + 4EC2 + E4BB82 + East Asian ideograph + + + 4B6A22 + 7F83 + E7BE83 + East Asian ideograph + + + 4B6A26 + 6C8D + E6B28D + East Asian ideograph + + + 4B7421 + 56F9 + E59BB9 + East Asian ideograph (variant of EACC 217421) + + + 4B7577 + 57D3 + E59F93 + East Asian ideograph + + + 4B763D + 57F4 + E59FB4 + East Asian ideograph (variant of EACC 21763D) + + + 4B7874 + 590A + E5A48A + East Asian ideograph + + + 4B7954 + 5968 + E5A5A8 + East Asian ideograph + + + 4B7E6A + 5BC3 + E5AF83 + East Asian ideograph (variant of EACC 217E6A) + + + 4C2330 + 5C53 + E5B193 + East Asian ideograph + + + 4C233F + 5C76 + E5B1B6 + East Asian ideograph + + + 4C2532 + 5D5B + E5B59B + East Asian ideograph + + + 4C2539 + 5D73 + E5B5B3 + East Asian ideograph + + + 4C284C + 53A9 + E58EA9 + East Asian ideograph + + + 4C2867 + 5EDB + E5BB9B + East Asian ideograph + + + 4C2962 + 5F4D + E5BD8D + East Asian ideograph (variant of EACC 222962) + + + 4C2F61 + 622C + E688AC + East Asian ideograph + + + 4C3474 + 631D + E68C9D + East Asian ideograph + + + 4C354A + 64B8 + E692B8 + East Asian ideograph + + + 4C3744 + 65D9 + E69799 + East Asian ideograph + + + 4C3A33 + 80AD + E882AD + East Asian ideograph (variant of EACC 2E3A33) + + + 4C3A55 + 6741 + E69D81 + East Asian ideograph + + + 4C3A5B + 6859 + E6A199 + East Asian ideograph + + + 4C3B22 + 6860 + E6A1A0 + East Asian ideograph + + + 4C3B31 + 6798 + E69E98 + East Asian ideograph + + + 4C3B60 + 6764 + E69DA4 + East Asian ideograph + + + 4C3F68 + 69C7 + E6A787 + East Asian ideograph + + + 4C3F7A + 6922 + E6A4A2 + East Asian ideograph + + + 4C4146 + 8538 + E894B8 + East Asian ideograph + + + 4C4177 + 8223 + E888A3 + East Asian ideograph + + + 4C4333 + 6AAA + E6AAAA + East Asian ideograph + + + 4C4339 + 69DE + E6A79E + East Asian ideograph + + + 4C433F + 6A65 + E6A9A5 + East Asian ideograph + + + 4C4345 + 67A6 + E69EA6 + East Asian ideograph + + + 4C4359 + 6B05 + E6AC85 + East Asian ideograph + + + 4C4446 + 6B4E + E6AD8E + East Asian ideograph + + + 4C476E + 6CAD + E6B2AD + East Asian ideograph + + + 4C4C35 + 6E0C + E6B88C + East Asian ideograph + + + 4C4D3D + 6F62 + E6BDA2 + East Asian ideograph + + + 4C4D63 + 6F99 + E6BE99 + East Asian ideograph + + + 4C4F24 + 6F46 + E6BD86 + East Asian ideograph + + + 4C4F26 + 6EDD + E6BB9D + East Asian ideograph + + + 4C4F2B + 701E + E7809E + East Asian ideograph + + + 4C5175 + 8315 + E88C95 + East Asian ideograph + + + 4C523A + 717A + E785BA + East Asian ideograph + + + 4C5447 + 71E0 + E787A0 + East Asian ideograph (variant of EACC 225447) + + + 4C5541 + 4E2C + E4B8AC + East Asian ideograph + + + 4C5638 + 729F + E78A9F + East Asian ideograph + + + 4C5C3A + 73F1 + E78FB1 + East Asian ideograph + + + 4C5C61 + 74F4 + E793B4 + East Asian ideograph (variant of EACC 225C61) + + + 4C5F58 + 7640 + E79980 + East Asian ideograph + + + 4C5F69 + 75EB + E797AB + East Asian ideograph + + + 4C6022 + 7596 + E79696 + East Asian ideograph + + + 4C6074 + 76B9 + E79AB9 + East Asian ideograph + + + 4C6266 + 778B + E79E8B + East Asian ideograph + + + 4C6376 + 7839 + E7A0B9 + East Asian ideograph + + + 4C6564 + 78D9 + E7A399 + East Asian ideograph + + + 4C6565 + 78B9 + E7A2B9 + East Asian ideograph + + + 4C6775 + 7962 + E7A5A2 + East Asian ideograph (unrelated variant of EACC 293032) + + + 4C683E + 79EB + E7A7AB + East Asian ideograph + + + 4C695C + 7A06 + E7A886 + East Asian ideograph + + + 4C695F + 7A63 + E7A9A3 + East Asian ideograph + + + 4C6B62 + 7B4C + E7AD8C + East Asian ideograph (variant of EACC 226B62) + + + 4C6C46 + 7B9F + E7AE9F + East Asian ideograph + + + 4C6E42 + 7C31 + E7B0B1 + East Asian ideograph + + + 4C6F43 + 7CCD + E7B38D + East Asian ideograph + + + 4C6F7B + 7CE8 + E7B3A8 + East Asian ideograph + + + 4C715A + 7EE6 + E7BBA6 + East Asian ideograph + + + 4C725D + 7A39 + E7A8B9 + East Asian ideograph + + + 4C7265 + 7DFC + E7B7BC + East Asian ideograph + + + 4C7328 + 5FAD + E5BEAD + East Asian ideograph (variant of EACC 2E7328) + + + 4C735D + 7D4B + E7B58B + East Asian ideograph + + + 4C794E + 80B7 + E882B7 + East Asian ideograph + + + 4C7959 + 817D + E885BD + East Asian ideograph + + + 4C796B + 815F + E8859F + East Asian ideograph + + + 4C7C45 + 82AE + E88AAE + East Asian ideograph + + + 4C7D4D + 8343 + E88D83 + East Asian ideograph + + + 4C7D6A + 8323 + E88CA3 + East Asian ideograph + + + 4D222A + 83B5 + E88EB5 + East Asian ideograph + + + 4D2925 + 8770 + E89DB0 + East Asian ideograph + + + 4D2962 + 86C9 + E89B89 + East Asian ideograph (variant of EACC 232962) + + + 4D2C3C + 87E5 + E89FA5 + East Asian ideograph + + + 4D2D75 + 8872 + E8A1B2 + East Asian ideograph (variant of EACC 232D75) + + + 4D2F5D + 8941 + E8A581 + East Asian ideograph (variant of EACC 232F5D) + + + 4D2F73 + 7E5D + E7B99D + East Asian ideograph + + + 4D2F7A + 891D + E8A49D + East Asian ideograph + + + 4D3032 + 88AE + E8A2AE + East Asian ideograph + + + 4D3359 + 56AF + E59AAF + East Asian ideograph + + + 4D3363 + 8C25 + E8B0A5 + East Asian ideograph + + + 4D386F + 544B + E5918B + East Asian ideograph + + + 4D3C6C + 8FB6 + E8BEB6 + East Asian ideograph + + + 4D4134 + 919B + E9869B + East Asian ideograph + + + 4D4176 + 91DB + E9879B + East Asian ideograph + + + 4D445B + 9306 + E98C86 + East Asian ideograph (variant of EACC 23445B) + + + 4D446B + 954E + E9958E + East Asian ideograph + + + 4D472C + 952A + E994AA + East Asian ideograph + + + 4D4754 + 9544 + E99584 + East Asian ideograph + + + 4D477B + 943E + E990BE + East Asian ideograph + + + 4D4832 + 953F + E994BF + East Asian ideograph + + + 4D4835 + 954C + E9958C + East Asian ideograph + + + 4D4862 + 9229 + E988A9 + East Asian ideograph + + + 4D4A6C + 9667 + E999A7 + East Asian ideograph + + + 4D4D61 + 7EF1 + E7BBB1 + East Asian ideograph + + + 4D4F39 + 988C + E9A28C + East Asian ideograph + + + 4D503A + 98D1 + E9A391 + East Asian ideograph + + + 4D5053 + 98DA + E9A39A + East Asian ideograph + + + 4D5154 + 9942 + E9A582 + East Asian ideograph + + + 4D5574 + 9B2E + E9ACAE + East Asian ideograph + + + 4D5858 + 9BE3 + E9AFA3 + East Asian ideograph + + + 4D5875 + 9CD0 + E9B390 + East Asian ideograph + + + 4D5934 + 9CA6 + E9B2A6 + East Asian ideograph + + + 4D594E + 9BF5 + E9AFB5 + East Asian ideograph + + + 4D5973 + 51EB + E587AB + East Asian ideograph + + + 4D5A6C + 9D46 + E9B586 + East Asian ideograph + + + 4D5B35 + 9DAB + E9B6AB + East Asian ideograph + + + 4D5B7E + 9DC6 + E9B786 + East Asian ideograph + + + 4D5C6B + 9D50 + E9B590 + East Asian ideograph + + + 4D5D49 + 9E81 + E9BA81 + East Asian ideograph + + + 4D5F70 + 9F44 + E9BD84 + East Asian ideograph + + + 4D5F7B + 97F2 + E99FB2 + East Asian ideograph + + + 4D6047 + 816D + E885AD + East Asian ideograph + + + 513051 + 8CAE + E8B2AE + East Asian ideograph + + + 513057 + 4E98 + E4BA98 + East Asian ideograph + + + 513421 + 91D6 + E98796 + East Asian ideograph + + + 51356A + 8BC3 + E8AF83 + East Asian ideograph + + + 51384D + 51C3 + E58783 + East Asian ideograph + + + 513A47 + 8885 + E8A285 + East Asian ideograph + + + 513B52 + 6C3D + E6B0BD + East Asian ideograph + + + 513D67 + 8FF3 + E8BFB3 + East Asian ideograph + + + 51456D + 822E + E888AE + East Asian ideograph + + + 51496B + 852B + E894AB + East Asian ideograph + + + 514E5B + 9271 + E989B1 + East Asian ideograph + + + 51513B + 7E9F + E7BA9F + East Asian ideograph + + + 51563F + 8616 + E89896 + East Asian ideograph + + + 515E5D + 9616 + E99896 + East Asian ideograph + + + 516122 + 9988 + E9A688 + East Asian ideograph + + + 516A26 + 51B4 + E586B4 + East Asian ideograph + + + 517954 + 734E + E78D8E + East Asian ideograph + + + 52735D + 7E8A + E7BA8A + East Asian ideograph (variant of EACC 22735D) + + + 693729 + 7C82 + E7B282 + East Asian ideograph + + + 693C32 + 9D2B + E9B4AB + East Asian ideograph + + + 693C36 + 96EB + E99BAB + East Asian ideograph + + + 694664 + 51EA + E587AA + East Asian ideograph + + + 694677 + 5302 + E58C82 + East Asian ideograph + + + 694823 + 7872 + E7A1B2 + East Asian ideograph + + + 69482B + 7560 + E795A0 + East Asian ideograph + + + 694838 + 567A + E599BA + East Asian ideograph + + + 694B7B + 9EBF + E9BABF + East Asian ideograph + + + 694C5D + 6762 + E69DA2 + East Asian ideograph + + + 694C68 + 5301 + E58C81 + East Asian ideograph + + + 694C7A + 9453 + E99193 + East Asian ideograph + + + 695130 + 5116 + E58496 + East Asian ideograph + + + 69515E + 51E9 + E587A9 + East Asian ideograph + + + 69525D + 53FA + E58FBA + East Asian ideograph + + + 695326 + 54D8 + E59398 + East Asian ideograph + + + 69533B + 555D + E5959D + East Asian ideograph + + + 695375 + 56CE + E59B8E + East Asian ideograph + + + 695429 + 5726 + E59CA6 + East Asian ideograph + + + 69542A + 5737 + E59CB7 + East Asian ideograph + + + 695438 + 57B3 + E59EB3 + East Asian ideograph + + + 69543A + 57AA + E59EAA + East Asian ideograph + + + 69543B + 57B0 + E59EB0 + East Asian ideograph + + + 695442 + 57D6 + E59F96 + East Asian ideograph + + + 69544B + 5870 + E5A1B0 + East Asian ideograph + + + 695451 + 58B9 + E5A2B9 + East Asian ideograph + + + 695457 + 58B8 + E5A2B8 + East Asian ideograph + + + 69545C + 58D7 + E5A397 + East Asian ideograph + + + 69545F + 58E5 + E5A3A5 + East Asian ideograph + + + 69554E + 5B36 + E5ACB6 + East Asian ideograph + + + 695626 + 4E62 + E4B9A2 + East Asian ideograph + + + 69562C + 599B + E5A69B + East Asian ideograph + + + 69562E + 5CBB + E5B2BB + East Asian ideograph + + + 695630 + 5CBC + E5B2BC + East Asian ideograph + + + 695632 + 5CC5 + E5B385 + East Asian ideograph + + + 695633 + 5CBE + E5B2BE + East Asian ideograph + + + 69564E + 5D76 + E5B5B6 + East Asian ideograph + + + 695657 + 5D90 + E5B690 + East Asian ideograph + + + 695737 + 5F16 + E5BC96 + East Asian ideograph + + + 69573B + 5F41 + E5BD81 + East Asian ideograph + + + 69576A + 603A + E680BA + East Asian ideograph + + + 69594B + 6327 + E68CA7 + East Asian ideograph + + + 69595E + 63B5 + E68EB5 + East Asian ideograph + + + 695A31 + 64F6 + E693B6 + East Asian ideograph + + + 695A73 + 6683 + E69A83 + East Asian ideograph + + + 695A7E + 66BC + E69ABC + East Asian ideograph + + + 695B37 + 6737 + E69CB7 + East Asian ideograph + + + 695B7B + 6926 + E6A4A6 + East Asian ideograph + + + 695C29 + 6925 + E6A4A5 + East Asian ideograph + + + 695C2D + 6928 + E6A4A8 + East Asian ideograph + + + 695C30 + 6923 + E6A4A3 + East Asian ideograph + + + 695C31 + 6921 + E6A4A1 + East Asian ideograph + + + 695C39 + 697E + E6A5BE + East Asian ideograph + + + 695C43 + 6981 + E6A681 + East Asian ideograph + + + 695C4F + 69DD + E6A79D + East Asian ideograph + + + 695C53 + 6A2E + E6A8AE + East Asian ideograph + + + 695C71 + 6A78 + E6A9B8 + East Asian ideograph + + + 695D36 + 6B1F + E6AC9F + East Asian ideograph + + + 695E63 + 6E82 + E6BA82 + East Asian ideograph + + + 695F70 + 7195 + E78695 + East Asian ideograph + + + 696126 + 74F2 + E793B2 + East Asian ideograph + + + 696136 + 753C + E794BC + East Asian ideograph + + + 69613A + 7549 + E79589 + East Asian ideograph + + + 69613E + 7569 + E795A9 + East Asian ideograph + + + 69626D + 7874 + E7A1B4 + East Asian ideograph + + + 696273 + 78B5 + E7A2B5 + East Asian ideograph + + + 696325 + 7907 + E7A487 + East Asian ideograph + + + 69634E + 7A43 + E7A983 + East Asian ideograph + + + 696373 + 7B02 + E7AC82 + East Asian ideograph + + + 696449 + 7C13 + E7B093 + East Asian ideograph + + + 69644C + 7C17 + E7B097 + East Asian ideograph + + + 69644E + 7BF6 + E7AFB6 + East Asian ideograph + + + 696464 + 7C90 + E7B290 + East Asian ideograph + + + 696466 + 7CAD + E7B2AD + East Asian ideograph + + + 696471 + 7CC0 + E7B380 + East Asian ideograph + + + 696474 + 7CD8 + E7B398 + East Asian ideograph + + + 69654F + 7E05 + E7B885 + East Asian ideograph + + + 69656D + 7E83 + E7BA83 + East Asian ideograph + + + 69656E + 7DD5 + E7B795 + East Asian ideograph + + + 696576 + 7E90 + E7BA90 + East Asian ideograph + + + 696733 + 81A4 + E886A4 + East Asian ideograph + + + 69675C + 825D + E8899D + East Asian ideograph + + + 69684D + 8422 + E890A2 + East Asian ideograph + + + 696868 + 84D9 + E89399 + East Asian ideograph + + + 696946 + 8630 + E898B0 + East Asian ideograph + + + 69695B + 86AB + E89AAB + East Asian ideograph + + + 696962 + 86EF + E89BAF + East Asian ideograph + + + 696A2C + 87D0 + E89F90 + East Asian ideograph + + + 696A5E + 88B0 + E8A2B0 + East Asian ideograph + + + 696A61 + 88C3 + E8A383 + East Asian ideograph + + + 696A6D + 8904 + E8A484 + East Asian ideograph + + + 696B27 + 8977 + E8A5B7 + East Asian ideograph + + + 696B5C + 8ADA + E8AB9A + East Asian ideograph + + + 696D3F + 8EBE + E8BABE + East Asian ideograph + + + 696D40 + 8EC5 + E8BB85 + East Asian ideograph + + + 696D41 + 8EC8 + E8BB88 + East Asian ideograph + + + 696D5A + 8F4C + E8BD8C + East Asian ideograph + + + 696D7A + 9027 + E980A7 + East Asian ideograph + + + 696E28 + 9056 + E98196 + East Asian ideograph + + + 696E5C + 91DF + E9879F + East Asian ideograph + + + 696F27 + 933B + E98CBB + East Asian ideograph + + + 696F5B + 958A + E9968A + East Asian ideograph + + + 696F5D + 9596 + E99696 + East Asian ideograph + + + 697023 + 9666 + E999A6 + East Asian ideograph + + + 697058 + 9779 + E99DB9 + East Asian ideograph + + + 69705D + 9786 + E99E86 + East Asian ideograph + + + 697060 + 9790 + E99E90 + East Asian ideograph + + + 697124 + 98AA + E9A2AA + East Asian ideograph + + + 697152 + 99F2 + E9A7B2 + East Asian ideograph + + + 697174 + 9ADE + E9AB9E + East Asian ideograph + + + 69717D + 9AF1 + E9ABB1 + East Asian ideograph + + + 69717E + 9AF7 + E9ABB7 + East Asian ideograph + + + 69723B + 9B96 + E9AE96 + East Asian ideograph + + + 697240 + 9BB4 + E9AEB4 + East Asian ideograph + + + 697245 + 9BCF + E9AF8F + East Asian ideograph + + + 697246 + 9BD1 + E9AF91 + East Asian ideograph + + + 69724E + 9BF2 + E9AFB2 + East Asian ideograph + + + 697260 + 9C30 + E9B0B0 + East Asian ideograph + + + 697265 + 9C5A + E9B19A + East Asian ideograph + + + 69727E + 9D48 + E9B588 + East Asian ideograph + + + 697323 + 9D64 + E9B5A4 + East Asian ideograph + + + 704C2A + 915E + E9859E + East Asian ideograph + + + 70586F + 4EEB + E4BBAB + East Asian ideograph + + + 705B71 + 57B4 + E59EB4 + East Asian ideograph + + + 705C43 + 82CA + E88B8A + East Asian ideograph + + + 705C50 + 82C4 + E88B84 + East Asian ideograph + + + 705D46 + 841C + E8909C + East Asian ideograph + + + 705D5C + 8488 + E89288 + East Asian ideograph + + + 705F30 + 7519 + E79499 + East Asian ideograph + + + 705F39 + 5416 + E59096 + East Asian ideograph + + + 705F50 + 549D + E5929D + East Asian ideograph + + + 705F51 + 54D0 + E59390 + East Asian ideograph + + + 705F54 + 54B4 + E592B4 + East Asian ideograph + + + 705F5B + 54A3 + E592A3 + East Asian ideograph + + + 705F61 + 54DA + E5939A + East Asian ideograph + + + 70602D + 55B9 + E596B9 + East Asian ideograph + + + 70603A + 55EA + E597AA + East Asian ideograph + + + 70604C + 55F5 + E597B5 + East Asian ideograph + + + 706054 + 5623 + E598A3 + East Asian ideograph + + + 706058 + 562D + E598AD + East Asian ideograph + + + 706067 + 567B + E599BB + East Asian ideograph + + + 706131 + 5C9C + E5B29C + East Asian ideograph + + + 70622A + 7339 + E78CB9 + East Asian ideograph + + + 706247 + 9987 + E9A687 + East Asian ideograph + + + 70624E + 9995 + E9A695 + East Asian ideograph + + + 706340 + 61B7 + E686B7 + East Asian ideograph + + + 706640 + 80EC + E883AC + East Asian ideograph + + + 706B42 + 80BC + E882BC + East Asian ideograph + + + 706B44 + 80BD + E882BD + East Asian ideograph + + + 706B4C + 80E9 + E883A9 + East Asian ideograph + + + 706B5B + 810E + E8848E + East Asian ideograph + + + 706B5F + 8112 + E88492 + East Asian ideograph + + + 706B6A + 8159 + E88599 + East Asian ideograph + + + 706C42 + 70BB + E782BB + East Asian ideograph + + + 706C43 + 70C0 + E78380 + East Asian ideograph + + + 706D3B + 7818 + E7A098 + East Asian ideograph + + + 706D3F + 781C + E7A09C + East Asian ideograph + + + 706D45 + 783C + E7A0BC + East Asian ideograph + + + 70727D + 87A8 + E89EA8 + East Asian ideograph + + + 707360 + 7B7B + E7ADBB + East Asian ideograph + + + 70736E + 7BA2 + E7AEA2 + East Asian ideograph + + + 707438 + 823E + E888BE + East Asian ideograph + + + 707523 + 9170 + E985B0 + East Asian ideograph + + + 70755D + 8E3A + E8B8BA + East Asian ideograph + + + 70775D + 9B0F + E9AC8F + East Asian ideograph + + + 707771 + 9EE2 + E9BBA2 + East Asian ideograph (Version J extension) + +
+ + +

This table contains 172 mappings of character encodings for + Japanese Hiragana and Katakana from the East Asian Coded Character set + (ANSI/NISO Z39.64, or "EACC") to character encodings in the Universal + Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes are given in + hexadecimal notation. Each character is presented on a separate row.

+

The first column contains the MARC-8 EACC 24-bit code (in hex), the + second column contains the corresponding UCS/Unicode 16-bit code (in hex), + the third column contains the UTF-8 code (in hex) for the UCS character, + the fourth column contains a representation of the character (where possible), the fifth + column contains a character name or description.

+
+ + 69213C + 30FC + E383BC + Vowel elongation mark for kana + + + 692421 + 3041 + E38181 + Hiragana letter small A + + + 692422 + 3042 + E38182 + Hiragana letter A + + + 692423 + 3043 + E38183 + Hiragana letter small I + + + 692424 + 3044 + E38184 + Hiragana letter I + + + 692425 + 3045 + E38185 + Hiragana letter small U + + + 692426 + 3046 + E38186 + Hiragana letter U + + + 692427 + 3047 + E38187 + Hiragana letter small E + + + 692428 + 3048 + E38188 + Hiragana letter E + + + 692429 + 3049 + E38189 + Hiragana letter small O + + + 69242A + 304A + E3818A + Hiragana letter O + + + 69242B + 304B + E3818B + Hiragana letter KA + + + 69242C + 304C + E3818C + Hiragana letter GA + + + 69242D + 304D + E3818D + Hiragana letter KI + + + 69242E + 304E + E3818E + Hiragana letter GI + + + 69242F + 304F + E3818F + Hiragana letter KU + + + 692430 + 3050 + E38190 + Hiragana letter GU + + + 692431 + 3051 + E38191 + Hiragana letter KE + + + 692432 + 3052 + E38192 + Hiragana letter GE + + + 692433 + 3053 + E38193 + Hiragana letter KO + + + 692434 + 3054 + E38194 + Hiragana letter GO + + + 692435 + 3055 + E38195 + Hiragana letter SA + + + 692436 + 3056 + E38196 + Hiragana letter ZA + + + 692437 + 3057 + E38197 + Hiragana letter SI + + + 692438 + 3058 + E38198 + Hiragana letter ZI + + + 692439 + 3059 + E38199 + Hiragana letter SU + + + 69243A + 305A + E3819A + Hiragana letter ZU + + + 69243B + 305B + E3819B + Hiragana letter SE + + + 69243C + 305C + E3819C + Hiragana letter ZE + + + 69243D + 305D + E3819D + Hiragana letter SO + + + 69243E + 305E + E3819E + Hiragana letter ZO + + + 69243F + 305F + E3819F + Hiragana letter TA + + + 692440 + 3060 + E381A0 + Hiragana letter DA + + + 692441 + 3061 + E381A1 + Hiragana letter TI + + + 692442 + 3062 + E381A2 + Hiragana letter DI + + + 692443 + 3063 + E381A3 + Hiragana letter small TU + + + 692444 + 3064 + E381A4 + Hiragana letter TU + + + 692445 + 3065 + E381A5 + Hiragana letter DU + + + 692446 + 3066 + E381A6 + Hiragana letter TE + + + 692447 + 3067 + E381A7 + Hiragana letter DE + + + 692448 + 3068 + E381A8 + Hiragana letter TO + + + 692449 + 3069 + E381A9 + Hiragana letter DO + + + 69244A + 306A + E381AA + Hiragana letter NA + + + 69244B + 306B + E381AB + Hiragana letter NI + + + 69244C + 306C + E381AC + Hiragana letter NU + + + 69244D + 306D + E381AD + Hiragana letter NE + + + 69244E + 306E + E381AE + Hiragana letter NO + + + 69244F + 306F + E381AF + Hiragana letter HA + + + 692450 + 3070 + E381B0 + Hiragana letter BA + + + 692451 + 3071 + E381B1 + Hiragana letter PA + + + 692452 + 3072 + E381B2 + Hiragana letter HI + + + 692453 + 3073 + E381B3 + Hiragana letter BI + + + 692454 + 3074 + E381B4 + Hiragana letter PI + + + 692455 + 3075 + E381B5 + Hiragana letter HU + + + 692456 + 3076 + E381B6 + Hiragana letter BU + + + 692457 + 3077 + E381B7 + Hiragana letter PU + + + 692458 + 3078 + E381B8 + Hiragana letter HE + + + 692459 + 3079 + E381B9 + Hiragana letter BE + + + 69245A + 307A + E381BA + Hiragana letter PE + + + 69245B + 307B + E381BB + Hiragana letter HO + + + 69245C + 307C + E381BC + Hiragana letter BO + + + 69245D + 307D + E381BD + Hiragana letter PO + + + 69245E + 307E + E381BE + Hiragana letter MA + + + 69245F + 307F + E381BF + Hiragana letter MI + + + 692460 + 3080 + E38280 + Hiragana letter MU + + + 692461 + 3081 + E38281 + Hiragana letter ME + + + 692462 + 3082 + E38282 + Hiragana letter MO + + + 692463 + 3083 + E38283 + Hiragana letter small YA + + + 692464 + 3084 + E38284 + Hiragana letter YA + + + 692465 + 3085 + E38285 + Hiragana letter small YU + + + 692466 + 3086 + E38286 + Hiragana letter YU + + + 692467 + 3087 + E38287 + Hiragana letter small YO + + + 692468 + 3088 + E38288 + Hiragana letter YO + + + 692469 + 3089 + E38289 + Hiragana letter RA + + + 69246A + 308A + E3828A + Hiragana letter RI + + + 69246B + 308B + E3828B + Hiragana letter RU + + + 69246C + 308C + E3828C + Hiragana letter RE + + + 69246D + 308D + E3828D + Hiragana letter RO + + + 69246E + 308E + E3828E + Hiragana letter small WA + + + 69246F + 308F + E3828F + Hiragana letter WA + + + 692470 + 3090 + E38290 + Hiragana letter WI + + + 692471 + 3091 + E38291 + Hiragana letter WE + + + 692472 + 3092 + E38292 + Hiragana letter WO + + + 692473 + 3093 + E38293 + Hiragana letter N + + + 692521 + 30A1 + E382A1 + Katakana letter small A + + + 692522 + 30A2 + E382A2 + Katakana letter A + + + 692523 + 30A3 + E382A3 + Katakana letter small I + + + 692524 + 30A4 + E382A4 + Katakana letter I + + + 692525 + 30A5 + E382A5 + Katakana letter small U + + + 692526 + 30A6 + E382A6 + Katakana letter U + + + 692527 + 30A7 + E382A7 + Katakana letter small E + + + 692528 + 30A8 + E382A8 + Katakana letter E + + + 692529 + 30A9 + E382A9 + Katakana letter small O + + + 69252A + 30AA + E382AA + Katakana letter O + + + 69252B + 30AB + E382AB + Katakana letter KA + + + 69252C + 30AC + E382AC + Katakana letter GA + + + 69252D + 30AD + E382AD + Katakana letter KI + + + 69252E + 30AE + E382AE + Katakana letter GI + + + 69252F + 30AF + E382AF + Katakana letter KU + + + 692530 + 30B0 + E382B0 + Katakana letter GU + + + 692531 + 30B1 + E382B1 + Katakana letter KE + + + 692532 + 30B2 + E382B2 + Katakana letter GE + + + 692533 + 30B3 + E382B3 + Katakana letter KO + + + 692534 + 30B4 + E382B4 + Katakana letter GO + + + 692535 + 30B5 + E382B5 + Katakana letter SA + + + 692536 + 30B6 + E382B6 + Katakana letter ZA + + + 692537 + 30B7 + E382B7 + Katakana letter SI + + + 692538 + 30B8 + E382B8 + Katakana letter ZI + + + 692539 + 30B9 + E382B9 + Katakana letter SU + + + 69253A + 30BA + E382BA + Katakana letter ZU + + + 69253B + 30BB + E382BB + Katakana letter SE + + + 69253C + 30BC + E382BC + Katakana letter ZE + + + 69253D + 30BD + E382BD + Katakana letter SO + + + 69253E + 30BE + E382BE + Katakana letter ZO + + + 69253F + 30BF + E382BF + Katakana letter TA + + + 692540 + 30C0 + E38380 + Katakana letter DA + + + 692541 + 30C1 + E38381 + Katakana letter TI + + + 692542 + 30C2 + E38382 + Katakana letter DI + + + 692543 + 30C3 + E38383 + Katakana letter small TU + + + 692544 + 30C4 + E38384 + Katakana letter TU + + + 692545 + 30C5 + E38385 + Katakana letter DU + + + 692546 + 30C6 + E38386 + Katakana letter TE + + + 692547 + 30C7 + E38387 + Katakana letter DE + + + 692548 + 30C8 + E38388 + Katakana letter TO + + + 692549 + 30C9 + E38389 + Katakana letter DO + + + 69254A + 30CA + E3838A + Katakana letter NA + + + 69254B + 30CB + E3838B + Katakana letter NI + + + 69254C + 30CC + E3838C + Katakana letter NU + + + 69254D + 30CD + E3838D + Katakana letter NE + + + 69254E + 30CE + E3838E + Katakana letter NO + + + 69254F + 30CF + E3838F + Katakana letter HA + + + 692550 + 30D0 + E38390 + Katakana letter BA + + + 692551 + 30D1 + E38391 + Katakana letter PA + + + 692552 + 30D2 + E38392 + Katakana letter HI + + + 692553 + 30D3 + E38393 + Katakana letter BI + + + 692554 + 30D4 + E38394 + Katakana letter PI + + + 692555 + 30D5 + E38395 + Katakana letter HU + + + 692556 + 30D6 + E38396 + Katakana letter BU + + + 692557 + 30D7 + E38397 + Katakana letter PU + + + 692558 + 30D8 + E38398 + Katakana letter HE + + + 692559 + 30D9 + E38399 + Katakana letter BE + + + 69255A + 30DA + E3839A + Katakana letter PE + + + 69255B + 30DB + E3839B + Katakana letter HO + + + 69255C + 30DC + E3839C + Katakana letter BO + + + 69255D + 30DD + E3839D + Katakana letter PO + + + 69255E + 30DE + E3839E + Katakana letter MA + + + 69255F + 30DF + E3839F + Katakana letter MI + + + 692560 + 30E0 + E383A0 + Katakana letter MU + + + 692561 + 30E1 + E383A1 + Katakana letter ME + + + 692562 + 30E2 + E383A2 + Katakana letter MO + + + 692563 + 30E3 + E383A3 + Katakana letter small YA + + + 692564 + 30E4 + E383A4 + Katakana letter YA + + + 692565 + 30E5 + E383A5 + Katakana letter small YU + + + 692566 + 30E6 + E383A6 + Katakana letter YU + + + 692567 + 30E7 + E383A7 + Katakana letter small YO + + + 692568 + 30E8 + E383A8 + Katakana letter YO + + + 692569 + 30E9 + E383A9 + Katakana letter RA + + + 69256A + 30EA + E383AA + Katakana letter RI + + + 69256B + 30EB + E383AB + Katakana letter RU + + + 69256C + 30EC + E383AC + Katakana letter RE + + + 69256D + 30ED + E383AD + Katakana letter RO + + + 69256E + 30EE + E383AE + Katakana letter small WA + + + 69256F + 30EF + E383AF + Katakana letter WA + + + 692570 + 30F0 + E383B0 + Katakana letter WI + + + 692571 + 30F1 + E383B1 + Katakana letter WE + + + 692572 + 30F2 + E383B2 + Katakana letter WO + + + 692573 + 30F3 + E383B3 + Katakana letter N + + + 692574 + 30F4 + E383B4 + Katakana letter VU + + + 692575 + 30F5 + E383B5 + Katakana letter small KA + + + 692576 + 30F6 + E383B6 + Katakana letter small KE + + + 692577 + 309B + E3829B + Katakana-hiragana voiced sound mark + + + 692578 + 309C + E3829C + Katakana-hiragana semi-voiced sound mark + +
+ + +

This table contains 2,028 mappings of character encodings for + Korean hangul from the East Asian Coded Character set (ANSI/NISO Z39.64, + or "EACC") to character encodings in the Universal Character Set (UCS, + ISO-IEC 10646)/Unicode. Character codes are given in hexadecimal notation. + Each character is presented on a separate row.

+

The first column contains the MARC-8 EACC 24-bit code (in hex), the + second column contains the corresponding UCS/Unicode 16-bit code (in hex), + the third column contains the UTF-8 code (in hex) for the UCS character, + the fourth column contains a representation of the character (where + possible), the fifth column contains a character + name or description. Most East Asian ideographs are not given unique + names in the MARC-8 or UCS/Unicode.

+

For some characters alternate encodings + in UCS/Unicode and UTF-8 are given. When that occurs the alternate + UCS/Unicode 16-bit code column and + alternate UTF-8 code column follow the character name. + The alternative UCS/Unicode character + codes are provided for cases where MARC-8 characters were mapped to + UCS/Unicode characters in the Private Use Area (PUA). The alternative + character code is a defined Unicode character which should be + supported by applications that claim to support the full repertoire of + defined Unicode characters.

The characters in this table are sorted in + EACC character code order.

+
+ + 6F2457 + 3131 + E384B1 + Korean hangul + + + 6F2458 + 3134 + E384B4 + Korean hangul + + + 6F2459 + 3137 + E384B7 + Korean hangul + + + 6F245A + 3139 + E384B9 + Korean hangul + + + 6F245B + 3141 + E38581 + Korean hangul + + + 6F245C + 3142 + E38582 + Korean hangul + + + 6F245D + 3145 + E38585 + Korean hangul + + + 6F245E + 3147 + E38587 + Korean hangul + + + 6F245F + 3148 + E38588 + Korean hangul + + + 6F2460 + 314A + E3858A + Korean hangul + + + 6F2461 + 314B + E3858B + Korean hangul + + + 6F2462 + 314C + E3858C + Korean hangul + + + 6F2463 + 314D + E3858D + Korean hangul + + + 6F2464 + 314E + E3858E + Korean hangul + + + 6F2465 + 3132 + E384B2 + Korean hangul + + + 6F2469 + 3138 + E384B8 + Korean hangul + + + 6F246E + 3143 + E38583 + Korean hangul + + + 6F2470 + 3146 + E38586 + Korean hangul + + + 6F2471 + 3149 + E38589 + Korean hangul + + + 6F2472 + 314F + E3858F + Korean hangul + + + 6F2473 + 3150 + E38590 + Korean hangul + + + 6F2474 + 3151 + E38591 + Korean hangul + + + 6F2476 + 3153 + E38593 + Korean hangul + + + 6F2477 + 3154 + E38594 + Korean hangul + + + 6F2478 + 3155 + E38595 + Korean hangul + + + 6F247A + 3157 + E38597 + Korean hangul + + + 6F247B + 3158 + E38598 + Korean hangul + + + 6F247E + 315B + E3859B + Korean hangul + + + 6F2521 + 315C + E3859C + Korean hangul + + + 6F2525 + 3160 + E385A0 + Korean hangul + + + 6F2526 + 3161 + E385A1 + Korean hangul + + + 6F2527 + 3162 + E385A2 + Korean hangul + + + 6F2528 + 3163 + E385A3 + Korean hangul + + + 6F485F + AC00 + EAB080 + Korean hangul + + + 6F4860 + AC01 + EAB081 + Korean hangul + + + 6F4861 + AC02 + EAB082 + Korean hangul + + + 6F4862 + AC04 + EAB084 + Korean hangul + + + 6F4863 + AC07 + EAB087 + Korean hangul + + + 6F4864 + AC08 + EAB088 + Korean hangul + + + 6F4865 + AC09 + EAB089 + Korean hangul + + + 6F4866 + AC10 + EAB090 + Korean hangul + + + 6F4867 + AC11 + EAB091 + Korean hangul + + + 6F4868 + AC12 + EAB092 + Korean hangul + + + 6F4869 + AC13 + EAB093 + Korean hangul + + + 6F486A + AC14 + EAB094 + Korean hangul + + + 6F486B + AC15 + EAB095 + Korean hangul + + + 6F486C + AC16 + EAB096 + Korean hangul + + + 6F486D + AC17 + EAB097 + Korean hangul + + + 6F486E + AC19 + EAB099 + Korean hangul + + + 6F486F + AC1A + EAB09A + Korean hangul + + + 6F4870 + AC1B + EAB09B + Korean hangul + + + 6F4871 + AC1C + EAB09C + Korean hangul + + + 6F4872 + AC1D + EAB09D + Korean hangul + + + 6F4873 + AC20 + EAB0A0 + Korean hangul + + + 6F4875 + AC24 + EAB0A4 + Korean hangul + + + 6F4876 + AC2C + EAB0AC + Korean hangul + + + 6F4877 + AC2D + EAB0AD + Korean hangul + + + 6F4878 + AC2F + EAB0AF + Korean hangul + + + 6F4879 + AC30 + EAB0B0 + Korean hangul + + + 6F487A + AC31 + EAB0B1 + Korean hangul + + + 6F487B + AC38 + EAB0B8 + Korean hangul + + + 6F487C + AC39 + EAB0B9 + Korean hangul + + + 6F487D + AC40 + EAB180 + Korean hangul + + + 6F487E + AC54 + EAB194 + Korean hangul + + + 6F4921 + AC70 + EAB1B0 + Korean hangul + + + 6F4922 + AC71 + EAB1B1 + Korean hangul + + + 6F4924 + AC74 + EAB1B4 + Korean hangul + + + 6F4925 + AC77 + EAB1B7 + Korean hangul + + + 6F4926 + AC78 + EAB1B8 + Korean hangul + + + 6F4927 + AC79 + EAB1B9 + Korean hangul + + + 6F4929 + AC80 + EAB280 + Korean hangul + + + 6F492A + AC81 + EAB281 + Korean hangul + + + 6F492B + AC83 + EAB283 + Korean hangul + + + 6F492C + AC84 + EAB284 + Korean hangul + + + 6F492D + AC85 + EAB285 + Korean hangul + + + 6F492E + AC86 + EAB286 + Korean hangul + + + 6F4930 + AC89 + EAB289 + Korean hangul + + + 6F4931 + AC8A + EAB28A + Korean hangul + + + 6F4932 + AC8B + EAB28B + Korean hangul + + + 6F4933 + AC8C + EAB28C + Korean hangul + + + 6F4934 + AC90 + EAB290 + Korean hangul + + + 6F4935 + AC94 + EAB294 + Korean hangul + + + 6F4936 + AC9C + EAB29C + Korean hangul + + + 6F4937 + AC9F + EAB29F + Korean hangul + + + 6F4938 + ACA0 + EAB2A0 + Korean hangul + + + 6F4939 + ACA1 + EAB2A1 + Korean hangul + + + 6F493A + ACA8 + EAB2A8 + Korean hangul + + + 6F493B + ACA9 + EAB2A9 + Korean hangul + + + 6F493C + ACAA + EAB2AA + Korean hangul + + + 6F493D + ACAC + EAB2AC + Korean hangul + + + 6F493E + ACAF + EAB2AF + Korean hangul + + + 6F493F + ACB0 + EAB2B0 + Korean hangul + + + 6F4940 + ACB8 + EAB2B8 + Korean hangul + + + 6F4941 + ACB9 + EAB2B9 + Korean hangul + + + 6F4943 + ACBC + EAB2BC + Korean hangul + + + 6F4944 + ACBD + EAB2BD + Korean hangul + + + 6F4945 + ACC1 + EAB381 + Korean hangul + + + 6F4947 + ACC4 + EAB384 + Korean hangul + + + 6F4949 + ACD7 + EAB397 + Korean hangul + + + 6F494A + ACE0 + EAB3A0 + Korean hangul + + + 6F494B + ACE1 + EAB3A1 + Korean hangul + + + 6F494C + ACE4 + EAB3A4 + Korean hangul + + + 6F494D + ACE7 + EAB3A7 + Korean hangul + + + 6F494E + ACE8 + EAB3A8 + Korean hangul + + + 6F494F + ACEA + EAB3AA + Korean hangul + + + 6F4950 + ACEC + EAB3AC + Korean hangul + + + 6F4951 + ACEF + EAB3AF + Korean hangul + + + 6F4952 + ACF0 + EAB3B0 + Korean hangul + + + 6F4953 + ACF1 + EAB3B1 + Korean hangul + + + 6F4954 + ACF3 + EAB3B3 + Korean hangul + + + 6F4955 + ACF5 + EAB3B5 + Korean hangul + + + 6F4956 + ACF6 + EAB3B6 + Korean hangul + + + 6F4957 + ACFA + EAB3BA + Korean hangul + + + 6F4958 + ACFC + EAB3BC + Korean hangul + + + 6F4959 + ACFD + EAB3BD + Korean hangul + + + 6F495A + AD00 + EAB480 + Korean hangul + + + 6F495B + AD04 + EAB484 + Korean hangul + + + 6F495C + AD0C + EAB48C + Korean hangul + + + 6F495D + AD0D + EAB48D + Korean hangul + + + 6F495E + AD0F + EAB48F + Korean hangul + + + 6F495F + AD11 + EAB491 + Korean hangul + + + 6F4960 + AD18 + EAB498 + Korean hangul + + + 6F4961 + AD19 + EAB499 + Korean hangul + + + 6F4962 + AD1C + EAB49C + Korean hangul + + + 6F4963 + AD20 + EAB4A0 + Korean hangul + + + 6F4964 + AD28 + EAB4A8 + Korean hangul + + + 6F4965 + AD29 + EAB4A9 + Korean hangul + + + 6F4966 + AD2D + EAB4AD + Korean hangul + + + 6F4967 + AD34 + EAB4B4 + Korean hangul + + + 6F4968 + AD38 + EAB4B8 + Korean hangul + + + 6F4969 + AD3C + EAB4BC + Korean hangul + + + 6F496A + AD44 + EAB584 + Korean hangul + + + 6F496C + AD49 + EAB589 + Korean hangul + + + 6F496D + AD50 + EAB590 + Korean hangul + + + 6F496E + AD6C + EAB5AC + Korean hangul + + + 6F496F + AD6D + EAB5AD + Korean hangul + + + 6F4970 + AD70 + EAB5B0 + Korean hangul + + + 6F4971 + AD73 + EAB5B3 + Korean hangul + + + 6F4972 + AD74 + EAB5B4 + Korean hangul + + + 6F4973 + AD75 + EAB5B5 + Korean hangul + + + 6F4974 + AD76 + EAB5B6 + Korean hangul + + + 6F4975 + AD7C + EAB5BC + Korean hangul + + + 6F4976 + AD7D + EAB5BD + Korean hangul + + + 6F4977 + AD7F + EAB5BF + Korean hangul + + + 6F4978 + AD81 + EAB681 + Korean hangul + + + 6F4979 + AD82 + EAB682 + Korean hangul + + + 6F497A + AD88 + EAB688 + Korean hangul + + + 6F497B + AD8C + EAB68C + Korean hangul + + + 6F497C + AD90 + EAB690 + Korean hangul + + + 6F497E + ADA4 + EAB6A4 + Korean hangul + + + 6F4A22 + ADC0 + EAB780 + Korean hangul + + + 6F4A23 + ADC4 + EAB784 + Korean hangul + + + 6F4A24 + ADC8 + EAB788 + Korean hangul + + + 6F4A25 + ADD0 + EAB790 + Korean hangul + + + 6F4A26 + ADD1 + EAB791 + Korean hangul + + + 6F4A27 + ADD3 + EAB793 + Korean hangul + + + 6F4A28 + ADDC + EAB79C + Korean hangul + + + 6F4A29 + ADE0 + EAB7A0 + Korean hangul + + + 6F4A2A + ADE4 + EAB7A4 + Korean hangul + + + 6F4A2B + ADEC + EAB7AC + Korean hangul + + + 6F4A2C + ADF8 + EAB7B8 + Korean hangul + + + 6F4A2D + ADF9 + EAB7B9 + Korean hangul + + + 6F4A2E + ADFC + EAB7BC + Korean hangul + + + 6F4A2F + ADFF + EAB7BF + Korean hangul + + + 6F4A30 + AE00 + EAB880 + Korean hangul + + + 6F4A31 + AE01 + EAB881 + Korean hangul + + + 6F4A32 + AE08 + EAB888 + Korean hangul + + + 6F4A33 + AE09 + EAB889 + Korean hangul + + + 6F4A34 + AE0B + EAB88B + Korean hangul + + + 6F4A35 + AE0D + EAB88D + Korean hangul + + + 6F4A36 + AE30 + EAB8B0 + Korean hangul + + + 6F4A37 + AE31 + EAB8B1 + Korean hangul + + + 6F4A38 + AE34 + EAB8B4 + Korean hangul + + + 6F4A39 + AE37 + EAB8B7 + Korean hangul + + + 6F4A3A + AE38 + EAB8B8 + Korean hangul + + + 6F4A3B + AE40 + EAB980 + Korean hangul + + + 6F4A3C + AE41 + EAB981 + Korean hangul + + + 6F4A3D + AE43 + EAB983 + Korean hangul + + + 6F4A3E + AE44 + EAB984 + Korean hangul + + + 6F4A3F + AE45 + EAB985 + Korean hangul + + + 6F4A40 + AE4A + EAB98A + Korean hangul + + + 6F4A43 + AE4C + EAB98C + Korean hangul + + + 6F4A44 + AE4D + EAB98D + Korean hangul + + + 6F4A45 + AE4E + EAB98E + Korean hangul + + + 6F4A46 + AE50 + EAB990 + Korean hangul + + + 6F4A47 + AE54 + EAB994 + Korean hangul + + + 6F4A48 + AE5C + EAB99C + Korean hangul + + + 6F4A49 + AE5D + EAB99D + Korean hangul + + + 6F4A4A + AE60 + EAB9A0 + Korean hangul + + + 6F4A4B + AE61 + EAB9A1 + Korean hangul + + + 6F4A4C + AE62 + EAB9A2 + Korean hangul + + + 6F4A4D + AE65 + EAB9A5 + Korean hangul + + + 6F4A4E + AE68 + EAB9A8 + Korean hangul + + + 6F4A4F + AE69 + EAB9A9 + Korean hangul + + + 6F4A50 + AE6C + EAB9AC + Korean hangul + + + 6F4A51 + AE70 + EAB9B0 + Korean hangul + + + 6F4A52 + AE78 + EAB9B8 + Korean hangul + + + 6F4A53 + AE79 + EAB9B9 + Korean hangul + + + 6F4A54 + AE7B + EAB9BB + Korean hangul + + + 6F4A55 + AE7C + EAB9BC + Korean hangul + + + 6F4A56 + AE7D + EAB9BD + Korean hangul + + + 6F4A57 + AE84 + EABA84 + Korean hangul + + + 6F4A58 + AE85 + EABA85 + Korean hangul + + + 6F4A59 + AEBC + EABABC + Korean hangul + + + 6F4A5A + AEBD + EABABD + Korean hangul + + + 6F4A5B + AEBE + EABABE + Korean hangul + + + 6F4A5C + AEC0 + EABB80 + Korean hangul + + + 6F4A5D + AEC4 + EABB84 + Korean hangul + + + 6F4A5E + AECC + EABB8C + Korean hangul + + + 6F4A5F + AECD + EABB8D + Korean hangul + + + 6F4A60 + AECF + EABB8F + Korean hangul + + + 6F4A61 + AED0 + EABB90 + Korean hangul + + + 6F4A62 + AED1 + EABB91 + Korean hangul + + + 6F4A63 + AED8 + EABB98 + Korean hangul + + + 6F4A64 + AEDC + EABB9C + Korean hangul + + + 6F4A65 + AEF4 + EABBB4 + Korean hangul + + + 6F4A66 + AF0D + EABC8D + Korean hangul + + + 6F4A67 + AF2C + EABCAC + Korean hangul + + + 6F4A68 + AF2D + EABCAD + Korean hangul + + + 6F4A69 + AF30 + EABCB0 + Korean hangul + + + 6F4A6A + AF34 + EABCB4 + Korean hangul + + + 6F4A6B + AF3C + EABCBC + Korean hangul + + + 6F4A6C + AF3D + EABCBD + Korean hangul + + + 6F4A6D + AF3F + EABCBF + Korean hangul + + + 6F4A6E + AF41 + EABD81 + Korean hangul + + + 6F4A6F + AF42 + EABD82 + Korean hangul + + + 6F4A70 + AF43 + EABD83 + Korean hangul + + + 6F4A71 + AF48 + EABD88 + Korean hangul + + + 6F4A72 + AF49 + EABD89 + Korean hangul + + + 6F4A73 + AF4C + EABD8C + Korean hangul + + + 6F4A74 + AF58 + EABD98 + Korean hangul + + + 6F4A75 + AF5C + EABD9C + Korean hangul + + + 6F4A76 + AF5D + EABD9D + Korean hangul + + + 6F4A77 + AF64 + EABDA4 + Korean hangul + + + 6F4A78 + AF65 + EABDA5 + Korean hangul + + + 6F4A79 + AF79 + EABDB9 + Korean hangul + + + 6F4A7A + AF80 + EABE80 + Korean hangul + + + 6F4A7B + AF84 + EABE84 + Korean hangul + + + 6F4A7C + AF88 + EABE88 + Korean hangul + + + 6F4A7D + AF90 + EABE90 + Korean hangul + + + 6F4A7E + AF95 + EABE95 + Korean hangul + + + 6F4B21 + AF9C + EABE9C + Korean hangul + + + 6F4B22 + AFB8 + EABEB8 + Korean hangul + + + 6F4B23 + AFB9 + EABEB9 + Korean hangul + + + 6F4B24 + AFBC + EABEBC + Korean hangul + + + 6F4B25 + AFC0 + EABF80 + Korean hangul + + + 6F4B26 + AFC7 + EABF87 + Korean hangul + + + 6F4B27 + AFC8 + EABF88 + Korean hangul + + + 6F4B28 + AFC9 + EABF89 + Korean hangul + + + 6F4B29 + AFCB + EABF8B + Korean hangul + + + 6F4B2A + AFCD + EABF8D + Korean hangul + + + 6F4B2B + AFCE + EABF8E + Korean hangul + + + 6F4B2C + AFD4 + EABF94 + Korean hangul + + + 6F4B2D + AFD8 + EABF98 + Korean hangul + + + 6F4B2E + AFE9 + EABFA9 + Korean hangul + + + 6F4B2F + AFF0 + EABFB0 + Korean hangul + + + 6F4B30 + B000 + EB8080 + Korean hangul + + + 6F4B32 + B00C + EB808C + Korean hangul + + + 6F4B33 + B00D + EB808D + Korean hangul + + + 6F4B34 + B010 + EB8090 + Korean hangul + + + 6F4B35 + B014 + EB8094 + Korean hangul + + + 6F4B36 + B01C + EB809C + Korean hangul + + + 6F4B37 + B01D + EB809D + Korean hangul + + + 6F4B38 + B028 + EB80A8 + Korean hangul + + + 6F4B39 + B044 + EB8184 + Korean hangul + + + 6F4B3A + B045 + EB8185 + Korean hangul + + + 6F4B3B + B048 + EB8188 + Korean hangul + + + 6F4B3C + B04A + EB818A + Korean hangul + + + 6F4B3D + B04C + EB818C + Korean hangul + + + 6F4B3E + B053 + EB8193 + Korean hangul + + + 6F4B3F + B054 + EB8194 + Korean hangul + + + 6F4B40 + B055 + EB8195 + Korean hangul + + + 6F4B41 + B057 + EB8197 + Korean hangul + + + 6F4B42 + B059 + EB8199 + Korean hangul + + + 6F4B43 + B05D + EB819D + Korean hangul + + + 6F4B44 + B07C + EB81BC + Korean hangul + + + 6F4B45 + B07D + EB81BD + Korean hangul + + + 6F4B46 + B080 + EB8280 + Korean hangul + + + 6F4B47 + B084 + EB8284 + Korean hangul + + + 6F4B48 + B08C + EB828C + Korean hangul + + + 6F4B49 + B08D + EB828D + Korean hangul + + + 6F4B4A + B08F + EB828F + Korean hangul + + + 6F4B4B + B090 + EB8290 + Korean hangul + + + 6F4B4C + B091 + EB8291 + Korean hangul + + + 6F4B4F + B098 + EB8298 + Korean hangul + + + 6F4B50 + B099 + EB8299 + Korean hangul + + + 6F4B51 + B09A + EB829A + Korean hangul + + + 6F4B52 + B09C + EB829C + Korean hangul + + + 6F4B53 + B09F + EB829F + Korean hangul + + + 6F4B54 + B0A0 + EB82A0 + Korean hangul + + + 6F4B55 + B0A1 + EB82A1 + Korean hangul + + + 6F4B56 + B0A8 + EB82A8 + Korean hangul + + + 6F4B57 + B0A9 + EB82A9 + Korean hangul + + + 6F4B58 + B0AB + EB82AB + Korean hangul + + + 6F4B59 + B0AC + EB82AC + Korean hangul + + + 6F4B5A + B0AD + EB82AD + Korean hangul + + + 6F4B5B + B0AE + EB82AE + Korean hangul + + + 6F4B5C + B0AF + EB82AF + Korean hangul + + + 6F4B5D + B0B1 + EB82B1 + Korean hangul + + + 6F4B5E + B0B3 + EB82B3 + Korean hangul + + + 6F4B5F + B0B4 + EB82B4 + Korean hangul + + + 6F4B60 + B0B5 + EB82B5 + Korean hangul + + + 6F4B61 + B0B8 + EB82B8 + Korean hangul + + + 6F4B62 + B0BB + EB82BB + Korean hangul + + + 6F4B63 + B0BC + EB82BC + Korean hangul + + + 6F4B64 + B0C4 + EB8384 + Korean hangul + + + 6F4B65 + B0C5 + EB8385 + Korean hangul + + + 6F4B66 + B0C7 + EB8387 + Korean hangul + + + 6F4B67 + B0C8 + EB8388 + Korean hangul + + + 6F4B68 + B0C9 + EB8389 + Korean hangul + + + 6F4B69 + B0D0 + EB8390 + Korean hangul + + + 6F4B6A + B0D1 + EB8391 + Korean hangul + + + 6F4B6B + B0E0 + EB83A0 + Korean hangul + + + 6F4B6C + B0E5 + EB83A5 + Korean hangul + + + 6F4B6D + B0EC + EB83AC + Korean hangul + + + 6F4B6E + B108 + EB8488 + Korean hangul + + + 6F4B6F + B109 + EB8489 + Korean hangul + + + 6F4B71 + B10B + EB848B + Korean hangul + + + 6F4B72 + B10C + EB848C + Korean hangul + + + 6F4B73 + B10F + EB848F + Korean hangul + + + 6F4B74 + B110 + EB8490 + Korean hangul + + + 6F4B75 + B113 + EB8493 + Korean hangul + + + 6F4B76 + B118 + EB8498 + Korean hangul + + + 6F4B77 + B119 + EB8499 + Korean hangul + + + 6F4B78 + B11B + EB849B + Korean hangul + + + 6F4B79 + B11C + EB849C + Korean hangul + + + 6F4B7A + B11D + EB849D + Korean hangul + + + 6F4B7B + B11E + EB849E + Korean hangul + + + 6F4B7C + B123 + EB84A3 + Korean hangul + + + 6F4B7D + B124 + EB84A4 + Korean hangul + + + 6F4B7E + B125 + EB84A5 + Korean hangul + + + 6F4C21 + B128 + EB84A8 + Korean hangul + + + 6F4C22 + B12C + EB84AC + Korean hangul + + + 6F4C23 + B134 + EB84B4 + Korean hangul + + + 6F4C24 + B135 + EB84B5 + Korean hangul + + + 6F4C25 + B137 + EB84B7 + Korean hangul + + + 6F4C26 + B140 + EB8580 + Korean hangul + + + 6F4C27 + B141 + EB8581 + Korean hangul + + + 6F4C28 + B144 + EB8584 + Korean hangul + + + 6F4C29 + B150 + EB8590 + Korean hangul + + + 6F4C2A + B151 + EB8591 + Korean hangul + + + 6F4C2B + B153 + EB8593 + Korean hangul + + + 6F4C2C + B154 + EB8594 + Korean hangul + + + 6F4C2D + B155 + EB8595 + Korean hangul + + + 6F4C2E + B158 + EB8598 + Korean hangul + + + 6F4C2F + B15C + EB859C + Korean hangul + + + 6F4C30 + B178 + EB85B8 + Korean hangul + + + 6F4C31 + B179 + EB85B9 + Korean hangul + + + 6F4C32 + B17A + EB85BA + Korean hangul + + + 6F4C33 + B17C + EB85BC + Korean hangul + + + 6F4C34 + B180 + EB8680 + Korean hangul + + + 6F4C35 + B188 + EB8688 + Korean hangul + + + 6F4C36 + B189 + EB8689 + Korean hangul + + + 6F4C37 + B18B + EB868B + Korean hangul + + + 6F4C38 + B18D + EB868D + Korean hangul + + + 6F4C39 + B192 + EB8692 + Korean hangul + + + 6F4C3A + B193 + EB8693 + Korean hangul + + + 6F4C3B + B194 + EB8694 + Korean hangul + + + 6F4C3C + B1A8 + EB86A8 + Korean hangul + + + 6F4C3D + B1CC + EB878C + Korean hangul + + + 6F4C3E + B1D0 + EB8790 + Korean hangul + + + 6F4C3F + B1D4 + EB8794 + Korean hangul + + + 6F4C40 + B1DC + EB879C + Korean hangul + + + 6F4C41 + B1E8 + EB87A8 + Korean hangul + + + 6F4C42 + B1FD + EB87BD + Korean hangul + + + 6F4C43 + B204 + EB8884 + Korean hangul + + + 6F4C44 + B205 + EB8885 + Korean hangul + + + 6F4C45 + B208 + EB8888 + Korean hangul + + + 6F4C46 + B20B + EB888B + Korean hangul + + + 6F4C47 + B20C + EB888C + Korean hangul + + + 6F4C48 + B213 + EB8893 + Korean hangul + + + 6F4C49 + B214 + EB8894 + Korean hangul + + + 6F4C4A + B215 + EB8895 + Korean hangul + + + 6F4C4B + B217 + EB8897 + Korean hangul + + + 6F4C4C + B220 + EB88A0 + Korean hangul + + + 6F4C4D + B233 + EB88B3 + Korean hangul + + + 6F4C4E + B234 + EB88B4 + Korean hangul + + + 6F4C4F + B258 + EB8998 + Korean hangul + + + 6F4C50 + B25C + EB899C + Korean hangul + + + 6F4C51 + B260 + EB89A0 + Korean hangul + + + 6F4C52 + B268 + EB89A8 + Korean hangul + + + 6F4C53 + B269 + EB89A9 + Korean hangul + + + 6F4C54 + B274 + EB89B4 + Korean hangul + + + 6F4C55 + B284 + EB8A84 + Korean hangul + + + 6F4C56 + B289 + EB8A89 + Korean hangul + + + 6F4C57 + B290 + EB8A90 + Korean hangul + + + 6F4C58 + B291 + EB8A91 + Korean hangul + + + 6F4C59 + B294 + EB8A94 + Korean hangul + + + 6F4C5A + B298 + EB8A98 + Korean hangul + + + 6F4C5B + B299 + EB8A99 + Korean hangul + + + 6F4C5C + B2A0 + EB8AA0 + Korean hangul + + + 6F4C5D + B2A1 + EB8AA1 + Korean hangul + + + 6F4C5E + B2A5 + EB8AA5 + Korean hangul + + + 6F4C5F + B2A6 + EB8AA6 + Korean hangul + + + 6F4C60 + B2AA + EB8AAA + Korean hangul + + + 6F4C61 + B2AC + EB8AAC + Korean hangul + + + 6F4C62 + B2C8 + EB8B88 + Korean hangul + + + 6F4C63 + B2C9 + EB8B89 + Korean hangul + + + 6F4C64 + B2CC + EB8B8C + Korean hangul + + + 6F4C65 + B2D0 + EB8B90 + Korean hangul + + + 6F4C66 + B2D8 + EB8B98 + Korean hangul + + + 6F4C67 + B2D9 + EB8B99 + Korean hangul + + + 6F4C68 + B2DB + EB8B9B + Korean hangul + + + 6F4C69 + B2DD + EB8B9D + Korean hangul + + + 6F4C6A + B2E2 + EB8BA2 + Korean hangul + + + 6F4C6D + B2E4 + EB8BA4 + Korean hangul + + + 6F4C6E + B2E5 + EB8BA5 + Korean hangul + + + 6F4C6F + B2E6 + EB8BA6 + Korean hangul + + + 6F4C70 + B2E8 + EB8BA8 + Korean hangul + + + 6F4C71 + B2EB + EB8BAB + Korean hangul + + + 6F4C72 + B2EC + EB8BAC + Korean hangul + + + 6F4C73 + B2ED + EB8BAD + Korean hangul + + + 6F4C74 + B2EE + EB8BAE + Korean hangul + + + 6F4C75 + B2F3 + EB8BB3 + Korean hangul + + + 6F4C76 + B2F4 + EB8BB4 + Korean hangul + + + 6F4C77 + B2F5 + EB8BB5 + Korean hangul + + + 6F4C78 + B2F7 + EB8BB7 + Korean hangul + + + 6F4C79 + B2F9 + EB8BB9 + Korean hangul + + + 6F4C7A + B2FA + EB8BBA + Korean hangul + + + 6F4C7B + B2FB + EB8BBB + Korean hangul + + + 6F4C7C + B2FF + EB8BBF + Korean hangul + + + 6F4C7D + B300 + EB8C80 + Korean hangul + + + 6F4C7E + B301 + EB8C81 + Korean hangul + + + 6F4D21 + B304 + EB8C84 + Korean hangul + + + 6F4D22 + B308 + EB8C88 + Korean hangul + + + 6F4D23 + B310 + EB8C90 + Korean hangul + + + 6F4D24 + B311 + EB8C91 + Korean hangul + + + 6F4D25 + B313 + EB8C93 + Korean hangul + + + 6F4D26 + B314 + EB8C94 + Korean hangul + + + 6F4D27 + B315 + EB8C95 + Korean hangul + + + 6F4D28 + B354 + EB8D94 + Korean hangul + + + 6F4D29 + B355 + EB8D95 + Korean hangul + + + 6F4D2A + B358 + EB8D98 + Korean hangul + + + 6F4D2B + B35B + EB8D9B + Korean hangul + + + 6F4D2C + B35C + EB8D9C + Korean hangul + + + 6F4D2D + B35F + EB8D9F + Korean hangul + + + 6F4D2E + B364 + EB8DA4 + Korean hangul + + + 6F4D2F + B365 + EB8DA5 + Korean hangul + + + 6F4D30 + B367 + EB8DA7 + Korean hangul + + + 6F4D31 + B368 + EB8DA8 + Korean hangul + + + 6F4D32 + B369 + EB8DA9 + Korean hangul + + + 6F4D33 + B36A + EB8DAA + Korean hangul + + + 6F4D34 + B36B + EB8DAB + Korean hangul + + + 6F4D35 + B36E + EB8DAE + Korean hangul + + + 6F4D36 + B370 + EB8DB0 + Korean hangul + + + 6F4D37 + B371 + EB8DB1 + Korean hangul + + + 6F4D38 + B374 + EB8DB4 + Korean hangul + + + 6F4D39 + B378 + EB8DB8 + Korean hangul + + + 6F4D3A + B380 + EB8E80 + Korean hangul + + + 6F4D3B + B383 + EB8E83 + Korean hangul + + + 6F4D3C + B385 + EB8E85 + Korean hangul + + + 6F4D3D + B38C + EB8E8C + Korean hangul + + + 6F4D3E + B3C4 + EB8F84 + Korean hangul + + + 6F4D3F + B3C5 + EB8F85 + Korean hangul + + + 6F4D40 + B3C8 + EB8F88 + Korean hangul + + + 6F4D41 + B3CB + EB8F8B + Korean hangul + + + 6F4D42 + B3CC + EB8F8C + Korean hangul + + + 6F4D43 + B3D0 + EB8F90 + Korean hangul + + + 6F4D44 + B3D4 + EB8F94 + Korean hangul + + + 6F4D45 + B3D5 + EB8F95 + Korean hangul + + + 6F4D46 + B3D7 + EB8F97 + Korean hangul + + + 6F4D47 + B3D9 + EB8F99 + Korean hangul + + + 6F4D48 + B3DB + EB8F9B + Korean hangul + + + 6F4D49 + B3FC + EB8FBC + Korean hangul + + + 6F4D4A + B400 + EB9080 + Korean hangul + + + 6F4D4B + B410 + EB9090 + Korean hangul + + + 6F4D4C + B418 + EB9098 + Korean hangul + + + 6F4D4D + B41C + EB909C + Korean hangul + + + 6F4D4E + B420 + EB90A0 + Korean hangul + + + 6F4D4F + B428 + EB90A8 + Korean hangul + + + 6F4D50 + B429 + EB90A9 + Korean hangul + + + 6F4D51 + B42B + EB90AB + Korean hangul + + + 6F4D52 + B42C + EB90AC + Korean hangul + + + 6F4D53 + B450 + EB9190 + Korean hangul + + + 6F4D54 + B451 + EB9191 + Korean hangul + + + 6F4D55 + B454 + EB9194 + Korean hangul + + + 6F4D56 + B458 + EB9198 + Korean hangul + + + 6F4D57 + B460 + EB91A0 + Korean hangul + + + 6F4D58 + B461 + EB91A1 + Korean hangul + + + 6F4D59 + B463 + EB91A3 + Korean hangul + + + 6F4D5A + B465 + EB91A5 + Korean hangul + + + 6F4D5B + B46C + EB91AC + Korean hangul + + + 6F4D5C + B480 + EB9280 + Korean hangul + + + 6F4D5D + B488 + EB9288 + Korean hangul + + + 6F4D5E + B4A4 + EB92A4 + Korean hangul + + + 6F4D5F + B4B7 + EB92B7 + Korean hangul + + + 6F4D60 + B4C0 + EB9380 + Korean hangul + + + 6F4D61 + B4D0 + EB9390 + Korean hangul + + + 6F4D62 + B4DC + EB939C + Korean hangul + + + 6F4D63 + B4DD + EB939D + Korean hangul + + + 6F4D64 + B4E0 + EB93A0 + Korean hangul + + + 6F4D65 + B4E3 + EB93A3 + Korean hangul + + + 6F4D66 + B4E4 + EB93A4 + Korean hangul + + + 6F4D67 + B4EC + EB93AC + Korean hangul + + + 6F4D68 + B4ED + EB93AD + Korean hangul + + + 6F4D69 + B4EF + EB93AF + Korean hangul + + + 6F4D6A + B4F1 + EB93B1 + Korean hangul + + + 6F4D6B + B514 + EB9494 + Korean hangul + + + 6F4D6C + B515 + EB9495 + Korean hangul + + + 6F4D6D + B518 + EB9498 + Korean hangul + + + 6F4D6E + B51B + EB949B + Korean hangul + + + 6F4D6F + B51C + EB949C + Korean hangul + + + 6F4D70 + B524 + EB94A4 + Korean hangul + + + 6F4D71 + B525 + EB94A5 + Korean hangul + + + 6F4D72 + B527 + EB94A7 + Korean hangul + + + 6F4D73 + B528 + EB94A8 + Korean hangul + + + 6F4D74 + B529 + EB94A9 + Korean hangul + + + 6F4D75 + B52A + EB94AA + Korean hangul + + + 6F4D78 + B530 + EB94B0 + Korean hangul + + + 6F4D79 + B531 + EB94B1 + Korean hangul + + + 6F4D7A + B532 + EB94B2 + Korean hangul + + + 6F4D7B + B534 + EB94B4 + Korean hangul + + + 6F4D7C + B537 + EB94B7 + Korean hangul + + + 6F4D7D + B538 + EB94B8 + Korean hangul + + + 6F4E21 + B540 + EB9580 + Korean hangul + + + 6F4E22 + B541 + EB9581 + Korean hangul + + + 6F4E23 + B543 + EB9583 + Korean hangul + + + 6F4E24 + B544 + EB9584 + Korean hangul + + + 6F4E25 + B545 + EB9585 + Korean hangul + + + 6F4E26 + B54B + EB958B + Korean hangul + + + 6F4E27 + B54C + EB958C + Korean hangul + + + 6F4E28 + B54D + EB958D + Korean hangul + + + 6F4E29 + B550 + EB9590 + Korean hangul + + + 6F4E2A + B554 + EB9594 + Korean hangul + + + 6F4E2B + B55C + EB959C + Korean hangul + + + 6F4E2C + B55D + EB959D + Korean hangul + + + 6F4E2D + B55F + EB959F + Korean hangul + + + 6F4E2E + B560 + EB95A0 + Korean hangul + + + 6F4E2F + B561 + EB95A1 + Korean hangul + + + 6F4E30 + B5A0 + EB96A0 + Korean hangul + + + 6F4E31 + B5A1 + EB96A1 + Korean hangul + + + 6F4E32 + B5A4 + EB96A4 + Korean hangul + + + 6F4E33 + B5A8 + EB96A8 + Korean hangul + + + 6F4E34 + B5AB + EB96AB + Korean hangul + + + 6F4E35 + B5B0 + EB96B0 + Korean hangul + + + 6F4E36 + B5B1 + EB96B1 + Korean hangul + + + 6F4E37 + B5B3 + EB96B3 + Korean hangul + + + 6F4E38 + B5B4 + EB96B4 + Korean hangul + + + 6F4E39 + B5B5 + EB96B5 + Korean hangul + + + 6F4E3A + B5BB + EB96BB + Korean hangul + + + 6F4E3B + B5BC + EB96BC + Korean hangul + + + 6F4E3C + B5C0 + EB9780 + Korean hangul + + + 6F4E3D + B5C4 + EB9784 + Korean hangul + + + 6F4E3E + B5CC + EB978C + Korean hangul + + + 6F4E3F + B5CF + EB978F + Korean hangul + + + 6F4E40 + B5D1 + EB9791 + Korean hangul + + + 6F4E41 + B610 + EB9890 + Korean hangul + + + 6F4E42 + B611 + EB9891 + Korean hangul + + + 6F4E43 + B614 + EB9894 + Korean hangul + + + 6F4E44 + B618 + EB9898 + Korean hangul + + + 6F4E45 + B625 + EB98A5 + Korean hangul + + + 6F4E46 + B664 + EB99A4 + Korean hangul + + + 6F4E47 + B69C + EB9A9C + Korean hangul + + + 6F4E48 + B69D + EB9A9D + Korean hangul + + + 6F4E49 + B6A4 + EB9AA4 + Korean hangul + + + 6F4E4A + B6AB + EB9AAB + Korean hangul + + + 6F4E4B + B6AC + EB9AAC + Korean hangul + + + 6F4E4C + B6B1 + EB9AB1 + Korean hangul + + + 6F4E4D + B6F0 + EB9BB0 + Korean hangul + + + 6F4E4E + B6F4 + EB9BB4 + Korean hangul + + + 6F4E4F + B6F8 + EB9BB8 + Korean hangul + + + 6F4E50 + B700 + EB9C80 + Korean hangul + + + 6F4E51 + B701 + EB9C81 + Korean hangul + + + 6F4E52 + B728 + EB9CA8 + Korean hangul + + + 6F4E53 + B729 + EB9CA9 + Korean hangul + + + 6F4E54 + B72C + EB9CAC + Korean hangul + + + 6F4E55 + B72F + EB9CAF + Korean hangul + + + 6F4E56 + B730 + EB9CB0 + Korean hangul + + + 6F4E57 + B738 + EB9CB8 + Korean hangul + + + 6F4E58 + B739 + EB9CB9 + Korean hangul + + + 6F4E59 + B73B + EB9CBB + Korean hangul + + + 6F4E5A + B744 + EB9D84 + Korean hangul + + + 6F4E5B + B748 + EB9D88 + Korean hangul + + + 6F4E5C + B760 + EB9DA0 + Korean hangul + + + 6F4E5D + B764 + EB9DA4 + Korean hangul + + + 6F4E5E + B768 + EB9DA8 + Korean hangul + + + 6F4E5F + B770 + EB9DB0 + Korean hangul + + + 6F4E60 + B771 + EB9DB1 + Korean hangul + + + 6F4E61 + B775 + EB9DB5 + Korean hangul + + + 6F4E64 + B77C + EB9DBC + Korean hangul + + + 6F4E65 + B77D + EB9DBD + Korean hangul + + + 6F4E66 + B780 + EB9E80 + Korean hangul + + + 6F4E67 + B784 + EB9E84 + Korean hangul + + + 6F4E68 + B78C + EB9E8C + Korean hangul + + + 6F4E69 + B78D + EB9E8D + Korean hangul + + + 6F4E6A + B78F + EB9E8F + Korean hangul + + + 6F4E6B + B790 + EB9E90 + Korean hangul + + + 6F4E6C + B791 + EB9E91 + Korean hangul + + + 6F4E6D + B797 + EB9E97 + Korean hangul + + + 6F4E6E + B798 + EB9E98 + Korean hangul + + + 6F4E6F + B799 + EB9E99 + Korean hangul + + + 6F4E70 + B79C + EB9E9C + Korean hangul + + + 6F4E71 + B7A0 + EB9EA0 + Korean hangul + + + 6F4E72 + B7A8 + EB9EA8 + Korean hangul + + + 6F4E73 + B7A9 + EB9EA9 + Korean hangul + + + 6F4E74 + B7AB + EB9EAB + Korean hangul + + + 6F4E75 + B7AC + EB9EAC + Korean hangul + + + 6F4E76 + B7AD + EB9EAD + Korean hangul + + + 6F4E77 + B7B4 + EB9EB4 + Korean hangul + + + 6F4E78 + B7B5 + EB9EB5 + Korean hangul + + + 6F4E79 + B7C9 + EB9F89 + Korean hangul + + + 6F4E7A + B7EC + EB9FAC + Korean hangul + + + 6F4E7B + B7ED + EB9FAD + Korean hangul + + + 6F4E7C + B7F0 + EB9FB0 + Korean hangul + + + 6F4E7D + B7F4 + EB9FB4 + Korean hangul + + + 6F4E7E + B7FC + EB9FBC + Korean hangul + + + 6F4F21 + B7FD + EB9FBD + Korean hangul + + + 6F4F22 + B7FF + EB9FBF + Korean hangul + + + 6F4F23 + B800 + EBA080 + Korean hangul + + + 6F4F24 + B801 + EBA081 + Korean hangul + + + 6F4F25 + B807 + EBA087 + Korean hangul + + + 6F4F26 + B808 + EBA088 + Korean hangul + + + 6F4F27 + B809 + EBA089 + Korean hangul + + + 6F4F28 + B80C + EBA08C + Korean hangul + + + 6F4F29 + B810 + EBA090 + Korean hangul + + + 6F4F2A + B818 + EBA098 + Korean hangul + + + 6F4F2B + B819 + EBA099 + Korean hangul + + + 6F4F2C + B81B + EBA09B + Korean hangul + + + 6F4F2D + B81D + EBA09D + Korean hangul + + + 6F4F2E + B824 + EBA0A4 + Korean hangul + + + 6F4F2F + B825 + EBA0A5 + Korean hangul + + + 6F4F30 + B828 + EBA0A8 + Korean hangul + + + 6F4F31 + B82C + EBA0AC + Korean hangul + + + 6F4F32 + B834 + EBA0B4 + Korean hangul + + + 6F4F33 + B835 + EBA0B5 + Korean hangul + + + 6F4F34 + B837 + EBA0B7 + Korean hangul + + + 6F4F35 + B838 + EBA0B8 + Korean hangul + + + 6F4F36 + B839 + EBA0B9 + Korean hangul + + + 6F4F37 + B840 + EBA180 + Korean hangul + + + 6F4F38 + B85C + EBA19C + Korean hangul + + + 6F4F39 + B85D + EBA19D + Korean hangul + + + 6F4F3A + B860 + EBA1A0 + Korean hangul + + + 6F4F3B + B864 + EBA1A4 + Korean hangul + + + 6F4F3C + B86C + EBA1AC + Korean hangul + + + 6F4F3D + B86D + EBA1AD + Korean hangul + + + 6F4F3E + B86F + EBA1AF + Korean hangul + + + 6F4F3F + B871 + EBA1B1 + Korean hangul + + + 6F4F40 + B8B0 + EBA2B0 + Korean hangul + + + 6F4F41 + B8CC + EBA38C + Korean hangul + + + 6F4F42 + B8E1 + EBA3A1 + Korean hangul + + + 6F4F43 + B8E8 + EBA3A8 + Korean hangul + + + 6F4F44 + B8E9 + EBA3A9 + Korean hangul + + + 6F4F45 + B8EC + EBA3AC + Korean hangul + + + 6F4F46 + B8F0 + EBA3B0 + Korean hangul + + + 6F4F47 + B8F8 + EBA3B8 + Korean hangul + + + 6F4F48 + B8F9 + EBA3B9 + Korean hangul + + + 6F4F49 + B8FB + EBA3BB + Korean hangul + + + 6F4F4A + B8FD + EBA3BD + Korean hangul + + + 6F4F4B + B904 + EBA484 + Korean hangul + + + 6F4F4C + B93C + EBA4BC + Korean hangul + + + 6F4F4D + B958 + EBA598 + Korean hangul + + + 6F4F4E + B959 + EBA599 + Korean hangul + + + 6F4F4F + B95C + EBA59C + Korean hangul + + + 6F4F50 + B960 + EBA5A0 + Korean hangul + + + 6F4F51 + B968 + EBA5A8 + Korean hangul + + + 6F4F52 + B96D + EBA5AD + Korean hangul + + + 6F4F53 + B974 + EBA5B4 + Korean hangul + + + 6F4F54 + B975 + EBA5B5 + Korean hangul + + + 6F4F55 + B978 + EBA5B8 + Korean hangul + + + 6F4F56 + B97C + EBA5BC + Korean hangul + + + 6F4F57 + B984 + EBA684 + Korean hangul + + + 6F4F58 + B985 + EBA685 + Korean hangul + + + 6F4F59 + B987 + EBA687 + Korean hangul + + + 6F4F5A + B989 + EBA689 + Korean hangul + + + 6F4F5B + B98E + EBA68E + Korean hangul + + + 6F4F5C + B9AC + EBA6AC + Korean hangul + + + 6F4F5D + B9AD + EBA6AD + Korean hangul + + + 6F4F5E + B9B0 + EBA6B0 + Korean hangul + + + 6F4F5F + B9B4 + EBA6B4 + Korean hangul + + + 6F4F60 + B9BC + EBA6BC + Korean hangul + + + 6F4F61 + B9BD + EBA6BD + Korean hangul + + + 6F4F62 + B9BF + EBA6BF + Korean hangul + + + 6F4F63 + B9C1 + EBA781 + Korean hangul + + + 6F4F66 + B9C8 + EBA788 + Korean hangul + + + 6F4F67 + B9C9 + EBA789 + Korean hangul + + + 6F4F68 + B9CC + EBA78C + Korean hangul + + + 6F4F69 + B9CE + EBA78E + Korean hangul + + + 6F4F6A + B9CF + EBA78F + Korean hangul + + + 6F4F6B + B9D0 + EBA790 + Korean hangul + + + 6F4F6C + B9D1 + EBA791 + Korean hangul + + + 6F4F6D + B9D8 + EBA798 + Korean hangul + + + 6F4F6E + B9D9 + EBA799 + Korean hangul + + + 6F4F6F + B9DB + EBA79B + Korean hangul + + + 6F4F70 + B9DD + EBA79D + Korean hangul + + + 6F4F71 + B9DE + EBA79E + Korean hangul + + + 6F4F72 + B9E1 + EBA7A1 + Korean hangul + + + 6F4F73 + B9E3 + EBA7A3 + Korean hangul + + + 6F4F74 + B9E4 + EBA7A4 + Korean hangul + + + 6F4F75 + B9E5 + EBA7A5 + Korean hangul + + + 6F4F76 + B9E8 + EBA7A8 + Korean hangul + + + 6F4F77 + B9EC + EBA7AC + Korean hangul + + + 6F4F78 + B9F4 + EBA7B4 + Korean hangul + + + 6F4F79 + B9F5 + EBA7B5 + Korean hangul + + + 6F4F7A + B9F7 + EBA7B7 + Korean hangul + + + 6F4F7B + B9F8 + EBA7B8 + Korean hangul + + + 6F4F7C + B9F9 + EBA7B9 + Korean hangul + + + 6F4F7D + B9FA + EBA7BA + Korean hangul + + + 6F4F7E + BA00 + EBA880 + Korean hangul + + + 6F5021 + BA38 + EBA8B8 + Korean hangul + + + 6F5022 + BA39 + EBA8B9 + Korean hangul + + + 6F5023 + BA3C + EBA8BC + Korean hangul + + + 6F5024 + BA40 + EBA980 + Korean hangul + + + 6F5025 + BA48 + EBA988 + Korean hangul + + + 6F5026 + BA49 + EBA989 + Korean hangul + + + 6F5027 + BA4B + EBA98B + Korean hangul + + + 6F5028 + BA4D + EBA98D + Korean hangul + + + 6F5029 + BA4E + EBA98E + Korean hangul + + + 6F502A + BA53 + EBA993 + Korean hangul + + + 6F502B + BA54 + EBA994 + Korean hangul + + + 6F502C + BA55 + EBA995 + Korean hangul + + + 6F502D + BA58 + EBA998 + Korean hangul + + + 6F502E + BA5C + EBA99C + Korean hangul + + + 6F502F + BA64 + EBA9A4 + Korean hangul + + + 6F5030 + BA65 + EBA9A5 + Korean hangul + + + 6F5031 + BA67 + EBA9A7 + Korean hangul + + + 6F5032 + BA70 + EBA9B0 + Korean hangul + + + 6F5033 + BA71 + EBA9B1 + Korean hangul + + + 6F5034 + BA74 + EBA9B4 + Korean hangul + + + 6F5035 + BA78 + EBA9B8 + Korean hangul + + + 6F5036 + BA83 + EBAA83 + Korean hangul + + + 6F5037 + BA84 + EBAA84 + Korean hangul + + + 6F5038 + BA85 + EBAA85 + Korean hangul + + + 6F5039 + BA87 + EBAA87 + Korean hangul + + + 6F503A + BAA8 + EBAAA8 + Korean hangul + + + 6F503B + BAA9 + EBAAA9 + Korean hangul + + + 6F503C + BAAB + EBAAAB + Korean hangul + + + 6F503D + BAAC + EBAAAC + Korean hangul + + + 6F503E + BAB0 + EBAAB0 + Korean hangul + + + 6F503F + BAB8 + EBAAB8 + Korean hangul + + + 6F5040 + BAB9 + EBAAB9 + Korean hangul + + + 6F5041 + BABB + EBAABB + Korean hangul + + + 6F5042 + BABD + EBAABD + Korean hangul + + + 6F5043 + BAC3 + EBAB83 + Korean hangul + + + 6F5044 + BAFC + EBABBC + Korean hangul + + + 6F5045 + BB0F + EBAC8F + Korean hangul + + + 6F5046 + BB18 + EBAC98 + Korean hangul + + + 6F5047 + BB34 + EBACB4 + Korean hangul + + + 6F5048 + BB35 + EBACB5 + Korean hangul + + + 6F5049 + BB36 + EBACB6 + Korean hangul + + + 6F504A + BB38 + EBACB8 + Korean hangul + + + 6F504B + BB3B + EBACBB + Korean hangul + + + 6F504C + BB3C + EBACBC + Korean hangul + + + 6F504D + BB3D + EBACBD + Korean hangul + + + 6F504E + BB44 + EBAD84 + Korean hangul + + + 6F504F + BB47 + EBAD87 + Korean hangul + + + 6F5050 + BB49 + EBAD89 + Korean hangul + + + 6F5051 + BB4D + EBAD8D + Korean hangul + + + 6F5052 + BB4F + EBAD8F + Korean hangul + + + 6F5053 + BB50 + EBAD90 + Korean hangul + + + 6F5054 + BB54 + EBAD94 + Korean hangul + + + 6F5055 + BB58 + EBAD98 + Korean hangul + + + 6F5056 + BB61 + EBADA1 + Korean hangul + + + 6F5057 + BB63 + EBADA3 + Korean hangul + + + 6F5058 + BB88 + EBAE88 + Korean hangul + + + 6F5059 + BB8C + EBAE8C + Korean hangul + + + 6F505A + BBA4 + EBAEA4 + Korean hangul + + + 6F505B + BBC0 + EBAF80 + Korean hangul + + + 6F505C + BBC4 + EBAF84 + Korean hangul + + + 6F505D + BBC8 + EBAF88 + Korean hangul + + + 6F505E + BBD0 + EBAF90 + Korean hangul + + + 6F505F + BBF8 + EBAFB8 + Korean hangul + + + 6F5060 + BBF9 + EBAFB9 + Korean hangul + + + 6F5061 + BBFC + EBAFBC + Korean hangul + + + 6F5062 + BBFF + EBAFBF + Korean hangul + + + 6F5063 + BC00 + EBB080 + Korean hangul + + + 6F5064 + BC08 + EBB088 + Korean hangul + + + 6F5065 + BC09 + EBB089 + Korean hangul + + + 6F5066 + BC0B + EBB08B + Korean hangul + + + 6F5068 + BC0D + EBB08D + Korean hangul + + + 6F5069 + BC0F + EBB08F + Korean hangul + + + 6F506A + BC11 + EBB091 + Korean hangul + + + 6F506B + BBB4 + EBAEB4 + Korean hangul + + + 6F506D + BC14 + EBB094 + Korean hangul + + + 6F506E + BC15 + EBB095 + Korean hangul + + + 6F506F + BC16 + EBB096 + Korean hangul + + + 6F5070 + BC18 + EBB098 + Korean hangul + + + 6F5071 + BC1B + EBB09B + Korean hangul + + + 6F5072 + BC1C + EBB09C + Korean hangul + + + 6F5073 + BC1D + EBB09D + Korean hangul + + + 6F5074 + BC1F + EBB09F + Korean hangul + + + 6F5075 + BC24 + EBB0A4 + Korean hangul + + + 6F5076 + BC25 + EBB0A5 + Korean hangul + + + 6F5077 + BC27 + EBB0A7 + Korean hangul + + + 6F5078 + BC29 + EBB0A9 + Korean hangul + + + 6F5079 + BC2D + EBB0AD + Korean hangul + + + 6F507A + BC30 + EBB0B0 + Korean hangul + + + 6F507B + BC31 + EBB0B1 + Korean hangul + + + 6F507C + BC34 + EBB0B4 + Korean hangul + + + 6F507D + BC37 + EBB0B7 + Korean hangul + + + 6F507E + BC38 + EBB0B8 + Korean hangul + + + 6F5121 + BC40 + EBB180 + Korean hangul + + + 6F5122 + BC41 + EBB181 + Korean hangul + + + 6F5123 + BC43 + EBB183 + Korean hangul + + + 6F5124 + BC44 + EBB184 + Korean hangul + + + 6F5125 + BC45 + EBB185 + Korean hangul + + + 6F5126 + BC84 + EBB284 + Korean hangul + + + 6F5127 + BC85 + EBB285 + Korean hangul + + + 6F5128 + BC88 + EBB288 + Korean hangul + + + 6F5129 + BC8B + EBB28B + Korean hangul + + + 6F512A + BC8C + EBB28C + Korean hangul + + + 6F512B + BC94 + EBB294 + Korean hangul + + + 6F512C + BC95 + EBB295 + Korean hangul + + + 6F512D + BC97 + EBB297 + Korean hangul + + + 6F512E + BC98 + EBB298 + Korean hangul + + + 6F512F + BC99 + EBB299 + Korean hangul + + + 6F5130 + BC9A + EBB29A + Korean hangul + + + 6F5131 + BCA0 + EBB2A0 + Korean hangul + + + 6F5132 + BCA1 + EBB2A1 + Korean hangul + + + 6F5133 + BCA4 + EBB2A4 + Korean hangul + + + 6F5134 + BCA7 + EBB2A7 + Korean hangul + + + 6F5135 + BCA8 + EBB2A8 + Korean hangul + + + 6F5136 + BCB0 + EBB2B0 + Korean hangul + + + 6F5137 + BCB1 + EBB2B1 + Korean hangul + + + 6F5138 + BCB3 + EBB2B3 + Korean hangul + + + 6F5139 + BCB5 + EBB2B5 + Korean hangul + + + 6F513A + BCBC + EBB2BC + Korean hangul + + + 6F513B + BCBD + EBB2BD + Korean hangul + + + 6F513C + BCC0 + EBB380 + Korean hangul + + + 6F513D + BCC4 + EBB384 + Korean hangul + + + 6F513E + BCCC + EBB38C + Korean hangul + + + 6F513F + BCCD + EBB38D + Korean hangul + + + 6F5140 + BCCF + EBB38F + Korean hangul + + + 6F5141 + BCD0 + EBB390 + Korean hangul + + + 6F5142 + BCD1 + EBB391 + Korean hangul + + + 6F5143 + BCD2 + EBB392 + Korean hangul + + + 6F5144 + BCD5 + EBB395 + Korean hangul + + + 6F5145 + BCF4 + EBB3B4 + Korean hangul + + + 6F5146 + BCF5 + EBB3B5 + Korean hangul + + + 6F5147 + BCF6 + EBB3B6 + Korean hangul + + + 6F5148 + BCF8 + EBB3B8 + Korean hangul + + + 6F5149 + BCFC + EBB3BC + Korean hangul + + + 6F514A + BD04 + EBB484 + Korean hangul + + + 6F514B + BD05 + EBB485 + Korean hangul + + + 6F514C + BD07 + EBB487 + Korean hangul + + + 6F514D + BD09 + EBB489 + Korean hangul + + + 6F514E + BD10 + EBB490 + Korean hangul + + + 6F514F + BD14 + EBB494 + Korean hangul + + + 6F5150 + BD24 + EBB4A4 + Korean hangul + + + 6F5151 + BD48 + EBB588 + Korean hangul + + + 6F5152 + BD49 + EBB589 + Korean hangul + + + 6F5153 + BD4C + EBB58C + Korean hangul + + + 6F5154 + BD50 + EBB590 + Korean hangul + + + 6F5155 + BD58 + EBB598 + Korean hangul + + + 6F5156 + BD59 + EBB599 + Korean hangul + + + 6F5157 + BD64 + EBB5A4 + Korean hangul + + + 6F5158 + BD80 + EBB680 + Korean hangul + + + 6F5159 + BD81 + EBB681 + Korean hangul + + + 6F515A + BD84 + EBB684 + Korean hangul + + + 6F515B + BD87 + EBB687 + Korean hangul + + + 6F515C + BD88 + EBB688 + Korean hangul + + + 6F515D + BD89 + EBB689 + Korean hangul + + + 6F515E + BD90 + EBB690 + Korean hangul + + + 6F515F + BD91 + EBB691 + Korean hangul + + + 6F5160 + BD93 + EBB693 + Korean hangul + + + 6F5161 + BD95 + EBB695 + Korean hangul + + + 6F5162 + BD99 + EBB699 + Korean hangul + + + 6F5163 + BD9C + EBB69C + Korean hangul + + + 6F5164 + BDD4 + EBB794 + Korean hangul + + + 6F5165 + BDF0 + EBB7B0 + Korean hangul + + + 6F5166 + BE0C + EBB88C + Korean hangul + + + 6F5167 + BE0D + EBB88D + Korean hangul + + + 6F5168 + BE10 + EBB890 + Korean hangul + + + 6F5169 + BE14 + EBB894 + Korean hangul + + + 6F516A + BE1C + EBB89C + Korean hangul + + + 6F516B + BE1D + EBB89D + Korean hangul + + + 6F516C + BE1F + EBB89F + Korean hangul + + + 6F516D + BE44 + EBB984 + Korean hangul + + + 6F516E + BE45 + EBB985 + Korean hangul + + + 6F516F + BE48 + EBB988 + Korean hangul + + + 6F5170 + BE4B + EBB98B + Korean hangul + + + 6F5171 + BE4C + EBB98C + Korean hangul + + + 6F5172 + BE4E + EBB98E + Korean hangul + + + 6F5173 + BE54 + EBB994 + Korean hangul + + + 6F5174 + BE55 + EBB995 + Korean hangul + + + 6F5175 + BE57 + EBB997 + Korean hangul + + + 6F5176 + BE59 + EBB999 + Korean hangul + + + 6F5177 + BE5A + EBB99A + Korean hangul + + + 6F5178 + BE5B + EBB99B + Korean hangul + + + 6F517B + BE60 + EBB9A0 + Korean hangul + + + 6F517C + BE61 + EBB9A1 + Korean hangul + + + 6F517D + BE64 + EBB9A4 + Korean hangul + + + 6F517E + BE68 + EBB9A8 + Korean hangul + + + 6F5221 + BE70 + EBB9B0 + Korean hangul + + + 6F5222 + BE71 + EBB9B1 + Korean hangul + + + 6F5223 + BE73 + EBB9B3 + Korean hangul + + + 6F5224 + BE74 + EBB9B4 + Korean hangul + + + 6F5225 + BE75 + EBB9B5 + Korean hangul + + + 6F5226 + BE7B + EBB9BB + Korean hangul + + + 6F5227 + BE7C + EBB9BC + Korean hangul + + + 6F5228 + BE7D + EBB9BD + Korean hangul + + + 6F5229 + BE80 + EBBA80 + Korean hangul + + + 6F522A + BE84 + EBBA84 + Korean hangul + + + 6F522B + BE8C + EBBA8C + Korean hangul + + + 6F522C + BE8F + EBBA8F + Korean hangul + + + 6F522D + BE90 + EBBA90 + Korean hangul + + + 6F522E + BE91 + EBBA91 + Korean hangul + + + 6F522F + BE98 + EBBA98 + Korean hangul + + + 6F5230 + BEA8 + EBBAA8 + Korean hangul + + + 6F5231 + BED0 + EBBB90 + Korean hangul + + + 6F5232 + BED1 + EBBB91 + Korean hangul + + + 6F5233 + BED4 + EBBB94 + Korean hangul + + + 6F5234 + BED7 + EBBB97 + Korean hangul + + + 6F5235 + BED8 + EBBB98 + Korean hangul + + + 6F5236 + BEE0 + EBBBA0 + Korean hangul + + + 6F5237 + BEE3 + EBBBA3 + Korean hangul + + + 6F5238 + BEE4 + EBBBA4 + Korean hangul + + + 6F5239 + BEE5 + EBBBA5 + Korean hangul + + + 6F523A + BEEC + EBBBAC + Korean hangul + + + 6F523B + BF08 + EBBC88 + Korean hangul + + + 6F523C + BF09 + EBBC89 + Korean hangul + + + 6F523D + BF18 + EBBC98 + Korean hangul + + + 6F523E + BF1D + EBBC9D + Korean hangul + + + 6F523F + BF40 + EBBD80 + Korean hangul + + + 6F5240 + BF41 + EBBD81 + Korean hangul + + + 6F5241 + BF44 + EBBD84 + Korean hangul + + + 6F5242 + BF48 + EBBD88 + Korean hangul + + + 6F5243 + BF50 + EBBD90 + Korean hangul + + + 6F5244 + BF51 + EBBD91 + Korean hangul + + + 6F5245 + BF55 + EBBD95 + Korean hangul + + + 6F5246 + BFB0 + EBBEB0 + Korean hangul + + + 6F5247 + BFC0 + EBBF80 + Korean hangul + + + 6F5248 + BFC5 + EBBF85 + Korean hangul + + + 6F5249 + BFCC + EBBF8C + Korean hangul + + + 6F524A + BFCD + EBBF8D + Korean hangul + + + 6F524B + BFD0 + EBBF90 + Korean hangul + + + 6F524C + BFD4 + EBBF94 + Korean hangul + + + 6F524D + BFDC + EBBF9C + Korean hangul + + + 6F524E + BFDD + EBBF9D + Korean hangul + + + 6F524F + BFE1 + EBBFA1 + Korean hangul + + + 6F5250 + C058 + EC8198 + Korean hangul + + + 6F5251 + C059 + EC8199 + Korean hangul + + + 6F5252 + C05C + EC819C + Korean hangul + + + 6F5253 + C060 + EC81A0 + Korean hangul + + + 6F5254 + C068 + EC81A8 + Korean hangul + + + 6F5255 + C069 + EC81A9 + Korean hangul + + + 6F5256 + C090 + EC8290 + Korean hangul + + + 6F5257 + C091 + EC8291 + Korean hangul + + + 6F5258 + C094 + EC8294 + Korean hangul + + + 6F5259 + C098 + EC8298 + Korean hangul + + + 6F525A + C0A0 + EC82A0 + Korean hangul + + + 6F525B + C0A3 + EC82A3 + Korean hangul + + + 6F525C + C0A5 + EC82A5 + Korean hangul + + + 6F525F + C0AC + EC82AC + Korean hangul + + + 6F5260 + C0AD + EC82AD + Korean hangul + + + 6F5261 + C0AE + EC82AE + Korean hangul + + + 6F5262 + C0AF + EC82AF + Korean hangul + + + 6F5263 + C0B0 + EC82B0 + Korean hangul + + + 6F5264 + C0B3 + EC82B3 + Korean hangul + + + 6F5265 + C0B4 + EC82B4 + Korean hangul + + + 6F5266 + C0B5 + EC82B5 + Korean hangul + + + 6F5267 + C0B6 + EC82B6 + Korean hangul + + + 6F5268 + C0BC + EC82BC + Korean hangul + + + 6F5269 + C0BD + EC82BD + Korean hangul + + + 6F526A + C0BF + EC82BF + Korean hangul + + + 6F526B + C0C0 + EC8380 + Korean hangul + + + 6F526C + C0C1 + EC8381 + Korean hangul + + + 6F526D + C0C5 + EC8385 + Korean hangul + + + 6F526E + C0C8 + EC8388 + Korean hangul + + + 6F526F + C0C9 + EC8389 + Korean hangul + + + 6F5270 + C0CC + EC838C + Korean hangul + + + 6F5271 + C0CF + EC838F + Korean hangul + + + 6F5272 + C0D0 + EC8390 + Korean hangul + + + 6F5273 + C0D8 + EC8398 + Korean hangul + + + 6F5274 + C0D9 + EC8399 + Korean hangul + + + 6F5275 + C0DB + EC839B + Korean hangul + + + 6F5276 + C0DC + EC839C + Korean hangul + + + 6F5277 + C0DD + EC839D + Korean hangul + + + 6F5278 + C0E4 + EC83A4 + Korean hangul + + + 6F5279 + C0E5 + EC83A5 + Korean hangul + + + 6F527A + C0E8 + EC83A8 + Korean hangul + + + 6F527B + C0EC + EC83AC + Korean hangul + + + 6F527C + C0F4 + EC83B4 + Korean hangul + + + 6F527D + C0F7 + EC83B7 + Korean hangul + + + 6F527E + C0F9 + EC83B9 + Korean hangul + + + 6F5321 + C11C + EC849C + Korean hangul + + + 6F5322 + C11D + EC849D + Korean hangul + + + 6F5323 + C11E + EC849E + Korean hangul + + + 6F5324 + C120 + EC84A0 + Korean hangul + + + 6F5325 + C123 + EC84A3 + Korean hangul + + + 6F5326 + C124 + EC84A4 + Korean hangul + + + 6F5327 + C125 + EC84A5 + Korean hangul + + + 6F5328 + C126 + EC84A6 + Korean hangul + + + 6F5329 + C127 + EC84A7 + Korean hangul + + + 6F532A + C12A + EC84AA + Korean hangul + + + 6F532B + C12C + EC84AC + Korean hangul + + + 6F532C + C12D + EC84AD + Korean hangul + + + 6F532D + C12F + EC84AF + Korean hangul + + + 6F532E + C130 + EC84B0 + Korean hangul + + + 6F532F + C131 + EC84B1 + Korean hangul + + + 6F5330 + C136 + EC84B6 + Korean hangul + + + 6F5331 + C138 + EC84B8 + Korean hangul + + + 6F5332 + C139 + EC84B9 + Korean hangul + + + 6F5333 + C13C + EC84BC + Korean hangul + + + 6F5334 + C140 + EC8580 + Korean hangul + + + 6F5335 + C148 + EC8588 + Korean hangul + + + 6F5336 + C149 + EC8589 + Korean hangul + + + 6F5337 + C14B + EC858B + Korean hangul + + + 6F5338 + C14D + EC858D + Korean hangul + + + 6F5339 + C151 + EC8591 + Korean hangul + + + 6F533A + C154 + EC8594 + Korean hangul + + + 6F533B + C158 + EC8598 + Korean hangul + + + 6F533C + C167 + EC85A7 + Korean hangul + + + 6F533D + C168 + EC85A8 + Korean hangul + + + 6F533E + C170 + EC85B0 + Korean hangul + + + 6F533F + C18C + EC868C + Korean hangul + + + 6F5340 + C18D + EC868D + Korean hangul + + + 6F5341 + C18E + EC868E + Korean hangul + + + 6F5342 + C190 + EC8690 + Korean hangul + + + 6F5343 + C194 + EC8694 + Korean hangul + + + 6F5344 + C19C + EC869C + Korean hangul + + + 6F5345 + C19D + EC869D + Korean hangul + + + 6F5346 + C19F + EC869F + Korean hangul + + + 6F5347 + C1A1 + EC86A1 + Korean hangul + + + 6F5348 + C1A5 + EC86A5 + Korean hangul + + + 6F5349 + C1A8 + EC86A8 + Korean hangul + + + 6F534A + C1A9 + EC86A9 + Korean hangul + + + 6F534B + C1B0 + EC86B0 + Korean hangul + + + 6F534C + C1C4 + EC8784 + Korean hangul + + + 6F534D + C1C8 + EC8788 + Korean hangul + + + 6F534E + C1D7 + EC8797 + Korean hangul + + + 6F534F + C1E0 + EC87A0 + Korean hangul + + + 6F5350 + C1E4 + EC87A4 + Korean hangul + + + 6F5351 + C1E8 + EC87A8 + Korean hangul + + + 6F5352 + C1F0 + EC87B0 + Korean hangul + + + 6F5353 + C1F1 + EC87B1 + Korean hangul + + + 6F5354 + C1F3 + EC87B3 + Korean hangul + + + 6F5355 + C1FC + EC87BC + Korean hangul + + + 6F5356 + C1FD + EC87BD + Korean hangul + + + 6F5357 + C200 + EC8880 + Korean hangul + + + 6F5358 + C204 + EC8884 + Korean hangul + + + 6F5359 + C20D + EC888D + Korean hangul + + + 6F535B + C218 + EC8898 + Korean hangul + + + 6F535C + C219 + EC8899 + Korean hangul + + + 6F535D + C21C + EC889C + Korean hangul + + + 6F535E + C21F + EC889F + Korean hangul + + + 6F535F + C220 + EC88A0 + Korean hangul + + + 6F5360 + C228 + EC88A8 + Korean hangul + + + 6F5361 + C229 + EC88A9 + Korean hangul + + + 6F5362 + C22B + EC88AB + Korean hangul + + + 6F5363 + C22D + EC88AD + Korean hangul + + + 6F5364 + C22F + EC88AF + Korean hangul + + + 6F5365 + C231 + EC88B1 + Korean hangul + + + 6F5366 + C232 + EC88B2 + Korean hangul + + + 6F5367 + C234 + EC88B4 + Korean hangul + + + 6F5368 + C250 + EC8990 + Korean hangul + + + 6F5369 + C258 + EC8998 + Korean hangul + + + 6F536A + C26C + EC89AC + Korean hangul + + + 6F536B + C270 + EC89B0 + Korean hangul + + + 6F536C + C274 + EC89B4 + Korean hangul + + + 6F536D + C27C + EC89BC + Korean hangul + + + 6F536E + C27D + EC89BD + Korean hangul + + + 6F536F + C27F + EC89BF + Korean hangul + + + 6F5370 + C281 + EC8A81 + Korean hangul + + + 6F5371 + C288 + EC8A88 + Korean hangul + + + 6F5372 + C289 + EC8A89 + Korean hangul + + + 6F5373 + C290 + EC8A90 + Korean hangul + + + 6F5374 + C298 + EC8A98 + Korean hangul + + + 6F5375 + C29B + EC8A9B + Korean hangul + + + 6F5376 + C29D + EC8A9D + Korean hangul + + + 6F5377 + C2A4 + EC8AA4 + Korean hangul + + + 6F5378 + C2A5 + EC8AA5 + Korean hangul + + + 6F5379 + C2A8 + EC8AA8 + Korean hangul + + + 6F537A + C2AC + EC8AAC + Korean hangul + + + 6F537B + C2AD + EC8AAD + Korean hangul + + + 6F537D + C2B4 + EC8AB4 + Korean hangul + + + 6F537E + C2B5 + EC8AB5 + Korean hangul + + + 6F5421 + C2B7 + EC8AB7 + Korean hangul + + + 6F5422 + C2B9 + EC8AB9 + Korean hangul + + + 6F5423 + C2DC + EC8B9C + Korean hangul + + + 6F5424 + C2DD + EC8B9D + Korean hangul + + + 6F5425 + C2E0 + EC8BA0 + Korean hangul + + + 6F5426 + C2E3 + EC8BA3 + Korean hangul + + + 6F5427 + C2E4 + EC8BA4 + Korean hangul + + + 6F5428 + C2EB + EC8BAB + Korean hangul + + + 6F5429 + C2EC + EC8BAC + Korean hangul + + + 6F542A + C2ED + EC8BAD + Korean hangul + + + 6F542B + C2EF + EC8BAF + Korean hangul + + + 6F542C + C2F1 + EC8BB1 + Korean hangul + + + 6F542D + C2F6 + EC8BB6 + Korean hangul + + + 6F5430 + C2F8 + EC8BB8 + Korean hangul + + + 6F5431 + C2F9 + EC8BB9 + Korean hangul + + + 6F5432 + C2FC + EC8BBC + Korean hangul + + + 6F5433 + C300 + EC8C80 + Korean hangul + + + 6F5434 + C308 + EC8C88 + Korean hangul + + + 6F5435 + C309 + EC8C89 + Korean hangul + + + 6F5436 + C30B + EC8C8B + Korean hangul + + + 6F5437 + C30C + EC8C8C + Korean hangul + + + 6F5438 + C30D + EC8C8D + Korean hangul + + + 6F5439 + C313 + EC8C93 + Korean hangul + + + 6F543A + C314 + EC8C94 + Korean hangul + + + 6F543B + C315 + EC8C95 + Korean hangul + + + 6F543C + C318 + EC8C98 + Korean hangul + + + 6F543D + C31C + EC8C9C + Korean hangul + + + 6F543E + C324 + EC8CA4 + Korean hangul + + + 6F543F + C327 + EC8CA7 + Korean hangul + + + 6F5440 + C328 + EC8CA8 + Korean hangul + + + 6F5441 + C329 + EC8CA9 + Korean hangul + + + 6F5442 + C330 + EC8CB0 + Korean hangul + + + 6F5443 + C343 + EC8D83 + Korean hangul + + + 6F5444 + C345 + EC8D85 + Korean hangul + + + 6F5445 + C368 + EC8DA8 + Korean hangul + + + 6F5446 + C369 + EC8DA9 + Korean hangul + + + 6F5447 + C36C + EC8DAC + Korean hangul + + + 6F5448 + C370 + EC8DB0 + Korean hangul + + + 6F5449 + C372 + EC8DB2 + Korean hangul + + + 6F544A + C378 + EC8DB8 + Korean hangul + + + 6F544B + C379 + EC8DB9 + Korean hangul + + + 6F544C + C37C + EC8DBC + Korean hangul + + + 6F544D + C37D + EC8DBD + Korean hangul + + + 6F544E + C384 + EC8E84 + Korean hangul + + + 6F544F + C388 + EC8E88 + Korean hangul + + + 6F5450 + C399 + EC8E99 + Korean hangul + + + 6F5451 + C3D8 + EC8F98 + Korean hangul + + + 6F5452 + C3D9 + EC8F99 + Korean hangul + + + 6F5453 + C3DC + EC8F9C + Korean hangul + + + 6F5454 + C3DF + EC8F9F + Korean hangul + + + 6F5455 + C3E0 + EC8FA0 + Korean hangul + + + 6F5456 + C3E8 + EC8FA8 + Korean hangul + + + 6F5457 + C3ED + EC8FAD + Korean hangul + + + 6F5458 + C3F4 + EC8FB4 + Korean hangul + + + 6F5459 + C3F5 + EC8FB5 + Korean hangul + + + 6F545A + C410 + EC9090 + Korean hangul + + + 6F545B + C42C + EC90AC + Korean hangul + + + 6F545C + C430 + EC90B0 + Korean hangul + + + 6F545D + C434 + EC90B4 + Korean hangul + + + 6F545E + C43C + EC90BC + Korean hangul + + + 6F545F + C43F + EC90BF + Korean hangul + + + 6F5460 + C464 + EC91A4 + Korean hangul + + + 6F5461 + C465 + EC91A5 + Korean hangul + + + 6F5462 + C468 + EC91A8 + Korean hangul + + + 6F5463 + C46C + EC91AC + Korean hangul + + + 6F5464 + C474 + EC91B4 + Korean hangul + + + 6F5465 + C479 + EC91B9 + Korean hangul + + + 6F5466 + C480 + EC9280 + Korean hangul + + + 6F5467 + C494 + EC9294 + Korean hangul + + + 6F5468 + C4D4 + EC9394 + Korean hangul + + + 6F5469 + C4D5 + EC9395 + Korean hangul + + + 6F546A + C4F0 + EC93B0 + Korean hangul + + + 6F546B + C4F1 + EC93B1 + Korean hangul + + + 6F546C + C4F4 + EC93B4 + Korean hangul + + + 6F546D + C4F8 + EC93B8 + Korean hangul + + + 6F546E + C500 + EC9480 + Korean hangul + + + 6F546F + C501 + EC9481 + Korean hangul + + + 6F5470 + C50C + EC948C + Korean hangul + + + 6F5471 + C510 + EC9490 + Korean hangul + + + 6F5472 + C528 + EC94A8 + Korean hangul + + + 6F5473 + C529 + EC94A9 + Korean hangul + + + 6F5474 + C52C + EC94AC + Korean hangul + + + 6F5475 + C530 + EC94B0 + Korean hangul + + + 6F5476 + C538 + EC94B8 + Korean hangul + + + 6F5477 + C539 + EC94B9 + Korean hangul + + + 6F5478 + C53B + EC94BB + Korean hangul + + + 6F5479 + C53D + EC94BD + Korean hangul + + + 6F547C + C544 + EC9584 + Korean hangul + + + 6F547D + C545 + EC9585 + Korean hangul + + + 6F547E + C548 + EC9588 + Korean hangul + + + 6F5521 + C549 + EC9589 + Korean hangul + + + 6F5522 + C54A + EC958A + Korean hangul + + + 6F5523 + C54C + EC958C + Korean hangul + + + 6F5524 + C54E + EC958E + Korean hangul + + + 6F5525 + C553 + EC9593 + Korean hangul + + + 6F5526 + C554 + EC9594 + Korean hangul + + + 6F5527 + C555 + EC9595 + Korean hangul + + + 6F5528 + C557 + EC9597 + Korean hangul + + + 6F5529 + C558 + EC9598 + Korean hangul + + + 6F552A + C559 + EC9599 + Korean hangul + + + 6F552B + C55E + EC959E + Korean hangul + + + 6F552C + C55F + EC959F + Korean hangul + + + 6F552D + C560 + EC95A0 + Korean hangul + + + 6F552E + C561 + EC95A1 + Korean hangul + + + 6F552F + C564 + EC95A4 + Korean hangul + + + 6F5530 + C568 + EC95A8 + Korean hangul + + + 6F5531 + C570 + EC95B0 + Korean hangul + + + 6F5532 + C571 + EC95B1 + Korean hangul + + + 6F5533 + C573 + EC95B3 + Korean hangul + + + 6F5534 + C574 + EC95B4 + Korean hangul + + + 6F5535 + C575 + EC95B5 + Korean hangul + + + 6F5536 + C57C + EC95BC + Korean hangul + + + 6F5537 + C57D + EC95BD + Korean hangul + + + 6F5538 + C580 + EC9680 + Korean hangul + + + 6F5539 + C584 + EC9684 + Korean hangul + + + 6F553A + C587 + EC9687 + Korean hangul + + + 6F553B + C58C + EC968C + Korean hangul + + + 6F553C + C58D + EC968D + Korean hangul + + + 6F553D + C58F + EC968F + Korean hangul + + + 6F553E + C590 + EC9690 + Korean hangul + + + 6F553F + C591 + EC9691 + Korean hangul + + + 6F5540 + C595 + EC9695 + Korean hangul + + + 6F5541 + C597 + EC9697 + Korean hangul + + + 6F5542 + C598 + EC9698 + Korean hangul + + + 6F5543 + C59C + EC969C + Korean hangul + + + 6F5544 + C5B4 + EC96B4 + Korean hangul + + + 6F5545 + C5B5 + EC96B5 + Korean hangul + + + 6F5546 + C5B6 + EC96B6 + Korean hangul + + + 6F5547 + C5B8 + EC96B8 + Korean hangul + + + 6F5548 + C5B9 + EC96B9 + Korean hangul + + + 6F5549 + C5BA + EC96BA + Korean hangul + + + 6F554A + C5BB + EC96BB + Korean hangul + + + 6F554B + C5BC + EC96BC + Korean hangul + + + 6F554C + C5BD + EC96BD + Korean hangul + + + 6F554D + C5C4 + EC9784 + Korean hangul + + + 6F554E + C5C5 + EC9785 + Korean hangul + + + 6F554F + C5C6 + EC9786 + Korean hangul + + + 6F5550 + C5C7 + EC9787 + Korean hangul + + + 6F5551 + C5C8 + EC9788 + Korean hangul + + + 6F5552 + C5C9 + EC9789 + Korean hangul + + + 6F5553 + C5CA + EC978A + Korean hangul + + + 6F5554 + C5CC + EC978C + Korean hangul + + + 6F5555 + C5CE + EC978E + Korean hangul + + + 6F5556 + C5D0 + EC9790 + Korean hangul + + + 6F5557 + C5D1 + EC9791 + Korean hangul + + + 6F5558 + C5D4 + EC9794 + Korean hangul + + + 6F5559 + C5D8 + EC9798 + Korean hangul + + + 6F555A + C5E0 + EC97A0 + Korean hangul + + + 6F555B + C5E1 + EC97A1 + Korean hangul + + + 6F555C + C5E3 + EC97A3 + Korean hangul + + + 6F555D + C5E5 + EC97A5 + Korean hangul + + + 6F555E + C5EC + EC97AC + Korean hangul + + + 6F555F + C5ED + EC97AD + Korean hangul + + + 6F5560 + C5EE + EC97AE + Korean hangul + + + 6F5561 + C5F0 + EC97B0 + Korean hangul + + + 6F5562 + C5F4 + EC97B4 + Korean hangul + + + 6F5563 + C5F6 + EC97B6 + Korean hangul + + + 6F5564 + C5F7 + EC97B7 + Korean hangul + + + 6F5565 + C5FC + EC97BC + Korean hangul + + + 6F5566 + C5FD + EC97BD + Korean hangul + + + 6F5567 + C5FE + EC97BE + Korean hangul + + + 6F5568 + C5FF + EC97BF + Korean hangul + + + 6F5569 + C600 + EC9880 + Korean hangul + + + 6F556A + C601 + EC9881 + Korean hangul + + + 6F556B + C606 + EC9886 + Korean hangul + + + 6F556C + C607 + EC9887 + Korean hangul + + + 6F556D + C608 + EC9888 + Korean hangul + + + 6F556E + C60C + EC988C + Korean hangul + + + 6F556F + C610 + EC9890 + Korean hangul + + + 6F5570 + C61B + EC989B + Korean hangul + + + 6F5571 + C624 + EC98A4 + Korean hangul + + + 6F5572 + C625 + EC98A5 + Korean hangul + + + 6F5573 + C628 + EC98A8 + Korean hangul + + + 6F5574 + C62C + EC98AC + Korean hangul + + + 6F5575 + C62D + EC98AD + Korean hangul + + + 6F5576 + C62E + EC98AE + Korean hangul + + + 6F5577 + C633 + EC98B3 + Korean hangul + + + 6F5578 + C634 + EC98B4 + Korean hangul + + + 6F5579 + C635 + EC98B5 + Korean hangul + + + 6F557A + C637 + EC98B7 + Korean hangul + + + 6F557B + C639 + EC98B9 + Korean hangul + + + 6F557C + C63A + EC98BA + Korean hangul + + + 6F557D + C63B + EC98BB + Korean hangul + + + 6F557E + C640 + EC9980 + Korean hangul + + + 6F5621 + C641 + EC9981 + Korean hangul + + + 6F5622 + C644 + EC9984 + Korean hangul + + + 6F5623 + C648 + EC9988 + Korean hangul + + + 6F5624 + C650 + EC9990 + Korean hangul + + + 6F5625 + C651 + EC9991 + Korean hangul + + + 6F5626 + C653 + EC9993 + Korean hangul + + + 6F5627 + C654 + EC9994 + Korean hangul + + + 6F5629 + C65C + EC999C + Korean hangul + + + 6F562A + C65D + EC999D + Korean hangul + + + 6F562B + C660 + EC99A0 + Korean hangul + + + 6F562C + C671 + EC99B1 + Korean hangul + + + 6F562D + C678 + EC99B8 + Korean hangul + + + 6F562E + C679 + EC99B9 + Korean hangul + + + 6F562F + C67C + EC99BC + Korean hangul + + + 6F5630 + C680 + EC9A80 + Korean hangul + + + 6F5631 + C688 + EC9A88 + Korean hangul + + + 6F5632 + C68B + EC9A8B + Korean hangul + + + 6F5633 + C68D + EC9A8D + Korean hangul + + + 6F5634 + C694 + EC9A94 + Korean hangul + + + 6F5635 + C695 + EC9A95 + Korean hangul + + + 6F5636 + C698 + EC9A98 + Korean hangul + + + 6F5637 + C6A5 + EC9AA5 + Korean hangul + + + 6F5638 + C6A7 + EC9AA7 + Korean hangul + + + 6F5639 + C6A9 + EC9AA9 + Korean hangul + + + 6F563A + C6B0 + EC9AB0 + Korean hangul + + + 6F563B + C6B1 + EC9AB1 + Korean hangul + + + 6F563C + C6B4 + EC9AB4 + Korean hangul + + + 6F563D + C6B7 + EC9AB7 + Korean hangul + + + 6F563E + C6B8 + EC9AB8 + Korean hangul + + + 6F563F + C6B9 + EC9AB9 + Korean hangul + + + 6F5640 + C6BA + EC9ABA + Korean hangul + + + 6F5641 + C6C0 + EC9B80 + Korean hangul + + + 6F5642 + C6C1 + EC9B81 + Korean hangul + + + 6F5643 + C6C3 + EC9B83 + Korean hangul + + + 6F5644 + C6C5 + EC9B85 + Korean hangul + + + 6F5645 + C6CC + EC9B8C + Korean hangul + + + 6F5646 + C6CD + EC9B8D + Korean hangul + + + 6F5647 + C6D0 + EC9B90 + Korean hangul + + + 6F5648 + C6D4 + EC9B94 + Korean hangul + + + 6F5649 + C6DC + EC9B9C + Korean hangul + + + 6F564A + C6DD + EC9B9D + Korean hangul + + + 6F564B + C6DF + EC9B9F + Korean hangul + + + 6F564C + C6E0 + EC9BA0 + Korean hangul + + + 6F564D + C6E1 + EC9BA1 + Korean hangul + + + 6F564E + C6E8 + EC9BA8 + Korean hangul + + + 6F564F + C6E9 + EC9BA9 + Korean hangul + + + 6F5650 + C6EC + EC9BAC + Korean hangul + + + 6F5651 + C6F0 + EC9BB0 + Korean hangul + + + 6F5652 + C6F8 + EC9BB8 + Korean hangul + + + 6F5653 + C704 + EC9C84 + Korean hangul + + + 6F5654 + C705 + EC9C85 + Korean hangul + + + 6F5655 + C708 + EC9C88 + Korean hangul + + + 6F5656 + C70C + EC9C8C + Korean hangul + + + 6F5657 + C714 + EC9C94 + Korean hangul + + + 6F5658 + C717 + EC9C97 + Korean hangul + + + 6F5659 + C719 + EC9C99 + Korean hangul + + + 6F565A + C720 + EC9CA0 + Korean hangul + + + 6F565B + C721 + EC9CA1 + Korean hangul + + + 6F565C + C724 + EC9CA4 + Korean hangul + + + 6F565D + C728 + EC9CA8 + Korean hangul + + + 6F565E + C730 + EC9CB0 + Korean hangul + + + 6F565F + C735 + EC9CB5 + Korean hangul + + + 6F5660 + C737 + EC9CB7 + Korean hangul + + + 6F5661 + C73C + EC9CBC + Korean hangul + + + 6F5662 + C73D + EC9CBD + Korean hangul + + + 6F5663 + C740 + EC9D80 + Korean hangul + + + 6F5664 + C744 + EC9D84 + Korean hangul + + + 6F5665 + C74A + EC9D8A + Korean hangul + + + 6F5666 + C74C + EC9D8C + Korean hangul + + + 6F5667 + C74D + EC9D8D + Korean hangul + + + 6F5668 + C751 + EC9D91 + Korean hangul + + + 6F5669 + C758 + EC9D98 + Korean hangul + + + 6F566A + C774 + EC9DB4 + Korean hangul + + + 6F566B + C775 + EC9DB5 + Korean hangul + + + 6F566C + C778 + EC9DB8 + Korean hangul + + + 6F566D + C77C + EC9DBC + Korean hangul + + + 6F566E + C77D + EC9DBD + Korean hangul + + + 6F566F + C783 + EC9E83 + Korean hangul + + + 6F5670 + C784 + EC9E84 + Korean hangul + + + 6F5671 + C785 + EC9E85 + Korean hangul + + + 6F5672 + C787 + EC9E87 + Korean hangul + + + 6F5673 + C788 + EC9E88 + Korean hangul + + + 6F5674 + C789 + EC9E89 + Korean hangul + + + 6F5675 + C78A + EC9E8A + Korean hangul + + + 6F5676 + C78E + EC9E8E + Korean hangul + + + 6F5677 + C655 + EC9995 + Korean hangul + + + 6F5679 + C790 + EC9E90 + Korean hangul + + + 6F567A + C791 + EC9E91 + Korean hangul + + + 6F567B + C794 + EC9E94 + Korean hangul + + + 6F567C + C796 + EC9E96 + Korean hangul + + + 6F567D + C798 + EC9E98 + Korean hangul + + + 6F567E + C7A0 + EC9EA0 + Korean hangul + + + 6F5721 + C7A1 + EC9EA1 + Korean hangul + + + 6F5722 + C7A3 + EC9EA3 + Korean hangul + + + 6F5723 + C7A4 + EC9EA4 + Korean hangul + + + 6F5724 + C7A5 + EC9EA5 + Korean hangul + + + 6F5725 + C7A6 + EC9EA6 + Korean hangul + + + 6F5726 + C7A7 + EC9EA7 + Korean hangul + + + 6F5727 + C7AC + EC9EAC + Korean hangul + + + 6F5728 + C7AD + EC9EAD + Korean hangul + + + 6F5729 + C7B0 + EC9EB0 + Korean hangul + + + 6F572A + C7B4 + EC9EB4 + Korean hangul + + + 6F572B + C7BC + EC9EBC + Korean hangul + + + 6F572C + C7BD + EC9EBD + Korean hangul + + + 6F572D + C7BF + EC9EBF + Korean hangul + + + 6F572E + C7C0 + EC9F80 + Korean hangul + + + 6F572F + C7C1 + EC9F81 + Korean hangul + + + 6F5730 + C7C8 + EC9F88 + Korean hangul + + + 6F5731 + C7C9 + EC9F89 + Korean hangul + + + 6F5732 + C7CC + EC9F8C + Korean hangul + + + 6F5733 + C7D8 + EC9F98 + Korean hangul + + + 6F5734 + C800 + ECA080 + Korean hangul + + + 6F5735 + C801 + ECA081 + Korean hangul + + + 6F5736 + C804 + ECA084 + Korean hangul + + + 6F5737 + C808 + ECA088 + Korean hangul + + + 6F5738 + C80A + ECA08A + Korean hangul + + + 6F5739 + C810 + ECA090 + Korean hangul + + + 6F573A + C811 + ECA091 + Korean hangul + + + 6F573B + C813 + ECA093 + Korean hangul + + + 6F573C + C814 + ECA094 + Korean hangul + + + 6F573D + C815 + ECA095 + Korean hangul + + + 6F573E + C816 + ECA096 + Korean hangul + + + 6F573F + C81C + ECA09C + Korean hangul + + + 6F5740 + C81D + ECA09D + Korean hangul + + + 6F5741 + C820 + ECA0A0 + Korean hangul + + + 6F5742 + C824 + ECA0A4 + Korean hangul + + + 6F5743 + C82C + ECA0AC + Korean hangul + + + 6F5744 + C82D + ECA0AD + Korean hangul + + + 6F5745 + C82F + ECA0AF + Korean hangul + + + 6F5746 + C838 + ECA0B8 + Korean hangul + + + 6F5747 + C83C + ECA0BC + Korean hangul + + + 6F5748 + C84C + ECA18C + Korean hangul + + + 6F5749 + C870 + ECA1B0 + Korean hangul + + + 6F574A + C871 + ECA1B1 + Korean hangul + + + 6F574B + C874 + ECA1B4 + Korean hangul + + + 6F574C + C878 + ECA1B8 + Korean hangul + + + 6F574D + C87A + ECA1BA + Korean hangul + + + 6F574E + C880 + ECA280 + Korean hangul + + + 6F574F + C881 + ECA281 + Korean hangul + + + 6F5750 + C885 + ECA285 + Korean hangul + + + 6F5751 + C886 + ECA286 + Korean hangul + + + 6F5752 + C887 + ECA287 + Korean hangul + + + 6F5753 + C88B + ECA28B + Korean hangul + + + 6F5754 + C88C + ECA28C + Korean hangul + + + 6F5755 + C88D + ECA28D + Korean hangul + + + 6F5756 + C890 + ECA290 + Korean hangul + + + 6F5757 + C894 + ECA294 + Korean hangul + + + 6F5758 + C89C + ECA29C + Korean hangul + + + 6F5759 + C89D + ECA29D + Korean hangul + + + 6F575A + C89F + ECA29F + Korean hangul + + + 6F575B + C8A0 + ECA2A0 + Korean hangul + + + 6F575D + C8A8 + ECA2A8 + Korean hangul + + + 6F575E + C8AC + ECA2AC + Korean hangul + + + 6F575F + C8B0 + ECA2B0 + Korean hangul + + + 6F5760 + C8B8 + ECA2B8 + Korean hangul + + + 6F5761 + C8C4 + ECA384 + Korean hangul + + + 6F5762 + C8C8 + ECA388 + Korean hangul + + + 6F5763 + C8CC + ECA38C + Korean hangul + + + 6F5764 + C8D4 + ECA394 + Korean hangul + + + 6F5765 + C8D5 + ECA395 + Korean hangul + + + 6F5766 + C8D7 + ECA397 + Korean hangul + + + 6F5767 + C8E0 + ECA3A0 + Korean hangul + + + 6F5768 + C8E4 + ECA3A4 + Korean hangul + + + 6F5769 + C8F0 + ECA3B0 + Korean hangul + + + 6F576A + C8F1 + ECA3B1 + Korean hangul + + + 6F576B + C8F5 + ECA3B5 + Korean hangul + + + 6F576C + C8FC + ECA3BC + Korean hangul + + + 6F576D + C8FD + ECA3BD + Korean hangul + + + 6F576E + C900 + ECA480 + Korean hangul + + + 6F576F + C904 + ECA484 + Korean hangul + + + 6F5770 + C906 + ECA486 + Korean hangul + + + 6F5771 + C90C + ECA48C + Korean hangul + + + 6F5772 + C90D + ECA48D + Korean hangul + + + 6F5773 + C90F + ECA48F + Korean hangul + + + 6F5774 + C911 + ECA491 + Korean hangul + + + 6F5775 + C918 + ECA498 + Korean hangul + + + 6F5776 + C92C + ECA4AC + Korean hangul + + + 6F5777 + C950 + ECA590 + Korean hangul + + + 6F5779 + C954 + ECA594 + Korean hangul + + + 6F577A + C958 + ECA598 + Korean hangul + + + 6F577B + C960 + ECA5A0 + Korean hangul + + + 6F577C + C961 + ECA5A1 + Korean hangul + + + 6F577D + C96C + ECA5AC + Korean hangul + + + 6F577E + C970 + ECA5B0 + Korean hangul + + + 6F5821 + C974 + ECA5B4 + Korean hangul + + + 6F5822 + C988 + ECA688 + Korean hangul + + + 6F5823 + C989 + ECA689 + Korean hangul + + + 6F5824 + C98C + ECA68C + Korean hangul + + + 6F5825 + C990 + ECA690 + Korean hangul + + + 6F5826 + C998 + ECA698 + Korean hangul + + + 6F5827 + C999 + ECA699 + Korean hangul + + + 6F5828 + C99D + ECA69D + Korean hangul + + + 6F5829 + C9C0 + ECA780 + Korean hangul + + + 6F582A + C9C1 + ECA781 + Korean hangul + + + 6F582B + C9C4 + ECA784 + Korean hangul + + + 6F582C + C9C7 + ECA787 + Korean hangul + + + 6F582D + C9C8 + ECA788 + Korean hangul + + + 6F582E + C9CA + ECA78A + Korean hangul + + + 6F582F + C9D0 + ECA790 + Korean hangul + + + 6F5830 + C9D1 + ECA791 + Korean hangul + + + 6F5831 + C9D3 + ECA793 + Korean hangul + + + 6F5832 + C9D5 + ECA795 + Korean hangul + + + 6F5833 + C9D6 + ECA796 + Korean hangul + + + 6F5834 + C9D9 + ECA799 + Korean hangul + + + 6F5835 + C9DA + ECA79A + Korean hangul + + + 6F5838 + C9DC + ECA79C + Korean hangul + + + 6F5839 + C9DD + ECA79D + Korean hangul + + + 6F583A + C9E0 + ECA7A0 + Korean hangul + + + 6F583B + C9E2 + ECA7A2 + Korean hangul + + + 6F583C + C9E4 + ECA7A4 + Korean hangul + + + 6F583E + C9E7 + ECA7A7 + Korean hangul + + + 6F583F + C9EC + ECA7AC + Korean hangul + + + 6F5840 + C9ED + ECA7AD + Korean hangul + + + 6F5841 + C9EF + ECA7AF + Korean hangul + + + 6F5842 + C9F0 + ECA7B0 + Korean hangul + + + 6F5843 + C9F1 + ECA7B1 + Korean hangul + + + 6F5844 + C9F8 + ECA7B8 + Korean hangul + + + 6F5845 + C9F9 + ECA7B9 + Korean hangul + + + 6F5846 + C9FC + ECA7BC + Korean hangul + + + 6F5847 + CA00 + ECA880 + Korean hangul + + + 6F5848 + CA08 + ECA888 + Korean hangul + + + 6F5849 + CA09 + ECA889 + Korean hangul + + + 6F584A + CA0B + ECA88B + Korean hangul + + + 6F584B + CA0C + ECA88C + Korean hangul + + + 6F584C + CA0D + ECA88D + Korean hangul + + + 6F584D + CA18 + ECA898 + Korean hangul + + + 6F584E + CA4C + ECA98C + Korean hangul + + + 6F584F + CA4D + ECA98D + Korean hangul + + + 6F5850 + CA50 + ECA990 + Korean hangul + + + 6F5851 + CA54 + ECA994 + Korean hangul + + + 6F5852 + CA5C + ECA99C + Korean hangul + + + 6F5853 + CA5D + ECA99D + Korean hangul + + + 6F5854 + CA61 + ECA9A1 + Korean hangul + + + 6F5855 + CA84 + ECAA84 + Korean hangul + + + 6F5856 + CA98 + ECAA98 + Korean hangul + + + 6F5857 + CABC + ECAABC + Korean hangul + + + 6F5858 + CABD + ECAABD + Korean hangul + + + 6F5859 + CAC0 + ECAB80 + Korean hangul + + + 6F585A + CAC4 + ECAB84 + Korean hangul + + + 6F585B + CACC + ECAB8C + Korean hangul + + + 6F585C + CACD + ECAB8D + Korean hangul + + + 6F585D + CAD1 + ECAB91 + Korean hangul + + + 6F585E + CAD2 + ECAB92 + Korean hangul + + + 6F585F + CAD3 + ECAB93 + Korean hangul + + + 6F5860 + CAD8 + ECAB98 + Korean hangul + + + 6F5861 + CAD9 + ECAB99 + Korean hangul + + + 6F5862 + CB10 + ECAC90 + Korean hangul + + + 6F5863 + CB14 + ECAC94 + Korean hangul + + + 6F5864 + CB18 + ECAC98 + Korean hangul + + + 6F5865 + CB20 + ECACA0 + Korean hangul + + + 6F5866 + CB21 + ECACA1 + Korean hangul + + + 6F5867 + CB41 + ECAD81 + Korean hangul + + + 6F5868 + CB48 + ECAD88 + Korean hangul + + + 6F5869 + CB49 + ECAD89 + Korean hangul + + + 6F586A + CB50 + ECAD90 + Korean hangul + + + 6F586B + CB58 + ECAD98 + Korean hangul + + + 6F586C + CB59 + ECAD99 + Korean hangul + + + 6F586D + CB5D + ECAD9D + Korean hangul + + + 6F586E + CB64 + ECADA4 + Korean hangul + + + 6F586F + CBB8 + ECAEB8 + Korean hangul + + + 6F5870 + CBD4 + ECAF94 + Korean hangul + + + 6F5871 + CBE4 + ECAFA4 + Korean hangul + + + 6F5872 + CBE7 + ECAFA7 + Korean hangul + + + 6F5873 + CC0C + ECB08C + Korean hangul + + + 6F5874 + CC0D + ECB08D + Korean hangul + + + 6F5875 + CC10 + ECB090 + Korean hangul + + + 6F5876 + CC14 + ECB094 + Korean hangul + + + 6F5877 + CC1C + ECB09C + Korean hangul + + + 6F5878 + CC1D + ECB09D + Korean hangul + + + 6F5879 + CC21 + ECB0A1 + Korean hangul + + + 6F587A + CC22 + ECB0A2 + Korean hangul + + + 6F587B + CC27 + ECB0A7 + Korean hangul + + + 6F587E + CC28 + ECB0A8 + Korean hangul + + + 6F5921 + CC29 + ECB0A9 + Korean hangul + + + 6F5922 + CC2C + ECB0AC + Korean hangul + + + 6F5923 + CC2E + ECB0AE + Korean hangul + + + 6F5924 + CC2F + ECB0AF + Korean hangul + + + 6F5925 + CC30 + ECB0B0 + Korean hangul + + + 6F5926 + CC38 + ECB0B8 + Korean hangul + + + 6F5927 + CC39 + ECB0B9 + Korean hangul + + + 6F5928 + CC3B + ECB0BB + Korean hangul + + + 6F5929 + CC3C + ECB0BC + Korean hangul + + + 6F592A + CC3D + ECB0BD + Korean hangul + + + 6F592B + CC3E + ECB0BE + Korean hangul + + + 6F592C + CC3F + ECB0BF + Korean hangul + + + 6F592D + CC44 + ECB184 + Korean hangul + + + 6F592E + CC45 + ECB185 + Korean hangul + + + 6F592F + CC48 + ECB188 + Korean hangul + + + 6F5930 + CC4C + ECB18C + Korean hangul + + + 6F5931 + CC54 + ECB194 + Korean hangul + + + 6F5932 + CC55 + ECB195 + Korean hangul + + + 6F5933 + CC58 + ECB198 + Korean hangul + + + 6F5934 + CC59 + ECB199 + Korean hangul + + + 6F5935 + CC60 + ECB1A0 + Korean hangul + + + 6F5936 + CC64 + ECB1A4 + Korean hangul + + + 6F5937 + CC70 + ECB1B0 + Korean hangul + + + 6F5938 + CC71 + ECB1B1 + Korean hangul + + + 6F5939 + CC98 + ECB298 + Korean hangul + + + 6F593A + CC99 + ECB299 + Korean hangul + + + 6F593B + CC9C + ECB29C + Korean hangul + + + 6F593C + CCA0 + ECB2A0 + Korean hangul + + + 6F593D + CCA8 + ECB2A8 + Korean hangul + + + 6F593E + CCA9 + ECB2A9 + Korean hangul + + + 6F593F + CCAB + ECB2AB + Korean hangul + + + 6F5940 + CCAD + ECB2AD + Korean hangul + + + 6F5941 + CCB4 + ECB2B4 + Korean hangul + + + 6F5942 + CCB5 + ECB2B5 + Korean hangul + + + 6F5943 + CCB8 + ECB2B8 + Korean hangul + + + 6F5944 + CCBC + ECB2BC + Korean hangul + + + 6F5945 + CCC7 + ECB387 + Korean hangul + + + 6F5946 + CCD0 + ECB390 + Korean hangul + + + 6F5947 + CCE4 + ECB3A4 + Korean hangul + + + 6F5948 + CD08 + ECB488 + Korean hangul + + + 6F5949 + CD09 + ECB489 + Korean hangul + + + 6F594A + CD0C + ECB48C + Korean hangul + + + 6F594B + CD10 + ECB490 + Korean hangul + + + 6F594C + CD18 + ECB498 + Korean hangul + + + 6F594D + CD19 + ECB499 + Korean hangul + + + 6F594E + CD1B + ECB49B + Korean hangul + + + 6F594F + CD1D + ECB49D + Korean hangul + + + 6F5950 + CD2C + ECB4AC + Korean hangul + + + 6F5951 + CD5C + ECB59C + Korean hangul + + + 6F5952 + CD78 + ECB5B8 + Korean hangul + + + 6F5953 + CD94 + ECB694 + Korean hangul + + + 6F5954 + CD95 + ECB695 + Korean hangul + + + 6F5955 + CD98 + ECB698 + Korean hangul + + + 6F5956 + CD9C + ECB69C + Korean hangul + + + 6F5957 + CDA4 + ECB6A4 + Korean hangul + + + 6F5958 + CDA5 + ECB6A5 + Korean hangul + + + 6F5959 + CDA7 + ECB6A7 + Korean hangul + + + 6F595A + CDA9 + ECB6A9 + Korean hangul + + + 6F595B + CDB0 + ECB6B0 + Korean hangul + + + 6F595C + CDC4 + ECB784 + Korean hangul + + + 6F595D + CDCC + ECB78C + Korean hangul + + + 6F595E + CDE8 + ECB7A8 + Korean hangul + + + 6F595F + CE04 + ECB884 + Korean hangul + + + 6F5960 + CE20 + ECB8A0 + Korean hangul + + + 6F5961 + CE21 + ECB8A1 + Korean hangul + + + 6F5962 + CE30 + ECB8B0 + Korean hangul + + + 6F5963 + CE35 + ECB8B5 + Korean hangul + + + 6F5964 + CE58 + ECB998 + Korean hangul + + + 6F5965 + CE59 + ECB999 + Korean hangul + + + 6F5966 + CE5C + ECB99C + Korean hangul + + + 6F5967 + CE60 + ECB9A0 + Korean hangul + + + 6F5968 + CE61 + ECB9A1 + Korean hangul + + + 6F5969 + CE68 + ECB9A8 + Korean hangul + + + 6F596A + CE69 + ECB9A9 + Korean hangul + + + 6F596B + CE6B + ECB9AB + Korean hangul + + + 6F596C + CE6D + ECB9AD + Korean hangul + + + 6F596F + CE74 + ECB9B4 + Korean hangul + + + 6F5970 + CE75 + ECB9B5 + Korean hangul + + + 6F5971 + CE78 + ECB9B8 + Korean hangul + + + 6F5972 + CE7C + ECB9BC + Korean hangul + + + 6F5973 + CE84 + ECBA84 + Korean hangul + + + 6F5974 + CE85 + ECBA85 + Korean hangul + + + 6F5975 + CE87 + ECBA87 + Korean hangul + + + 6F5976 + CE89 + ECBA89 + Korean hangul + + + 6F5977 + CE90 + ECBA90 + Korean hangul + + + 6F5978 + CE91 + ECBA91 + Korean hangul + + + 6F5979 + CE94 + ECBA94 + Korean hangul + + + 6F597A + CE98 + ECBA98 + Korean hangul + + + 6F597B + CEA0 + ECBAA0 + Korean hangul + + + 6F597C + CEA1 + ECBAA1 + Korean hangul + + + 6F597D + CEA3 + ECBAA3 + Korean hangul + + + 6F5A21 + CEA5 + ECBAA5 + Korean hangul + + + 6F5A22 + CEAC + ECBAAC + Korean hangul + + + 6F5A23 + CEAD + ECBAAD + Korean hangul + + + 6F5A24 + CEE4 + ECBBA4 + Korean hangul + + + 6F5A26 + CEE8 + ECBBA8 + Korean hangul + + + 6F5A27 + CEEC + ECBBAC + Korean hangul + + + 6F5A28 + CEF4 + ECBBB4 + Korean hangul + + + 6F5A29 + CEF5 + ECBBB5 + Korean hangul + + + 6F5A2A + CEF7 + ECBBB7 + Korean hangul + + + 6F5A2C + CEF9 + ECBBB9 + Korean hangul + + + 6F5A2E + CF00 + ECBC80 + Korean hangul + + + 6F5A2F + CF01 + ECBC81 + Korean hangul + + + 6F5A30 + CF04 + ECBC84 + Korean hangul + + + 6F5A31 + CF08 + ECBC88 + Korean hangul + + + 6F5A32 + CF10 + ECBC90 + Korean hangul + + + 6F5A33 + CF11 + ECBC91 + Korean hangul + + + 6F5A34 + CF13 + ECBC93 + Korean hangul + + + 6F5A35 + CF15 + ECBC95 + Korean hangul + + + 6F5A36 + CF1C + ECBC9C + Korean hangul + + + 6F5A37 + CF20 + ECBCA0 + Korean hangul + + + 6F5A38 + CF24 + ECBCA4 + Korean hangul + + + 6F5A39 + CF2C + ECBCAC + Korean hangul + + + 6F5A3A + CF2D + ECBCAD + Korean hangul + + + 6F5A3B + CF2F + ECBCAF + Korean hangul + + + 6F5A3C + CF30 + ECBCB0 + Korean hangul + + + 6F5A3D + CF54 + ECBD94 + Korean hangul + + + 6F5A3E + CF55 + ECBD95 + Korean hangul + + + 6F5A3F + CF58 + ECBD98 + Korean hangul + + + 6F5A40 + CF5C + ECBD9C + Korean hangul + + + 6F5A41 + CF64 + ECBDA4 + Korean hangul + + + 6F5A42 + CF65 + ECBDA5 + Korean hangul + + + 6F5A43 + CF67 + ECBDA7 + Korean hangul + + + 6F5A44 + CF69 + ECBDA9 + Korean hangul + + + 6F5A45 + CF70 + ECBDB0 + Korean hangul + + + 6F5A46 + CF71 + ECBDB1 + Korean hangul + + + 6F5A47 + CF74 + ECBDB4 + Korean hangul + + + 6F5A48 + CF78 + ECBDB8 + Korean hangul + + + 6F5A49 + CF80 + ECBE80 + Korean hangul + + + 6F5A4A + CF85 + ECBE85 + Korean hangul + + + 6F5A4B + CF8C + ECBE8C + Korean hangul + + + 6F5A4C + CF8D + ECBE8D + Korean hangul + + + 6F5A4D + CFA1 + ECBEA1 + Korean hangul + + + 6F5A4F + CFB0 + ECBEB0 + Korean hangul + + + 6F5A50 + CFC4 + ECBF84 + Korean hangul + + + 6F5A51 + CFE0 + ECBFA0 + Korean hangul + + + 6F5A52 + CFE1 + ECBFA1 + Korean hangul + + + 6F5A53 + CFE4 + ECBFA4 + Korean hangul + + + 6F5A54 + CFE8 + ECBFA8 + Korean hangul + + + 6F5A55 + CFF0 + ECBFB0 + Korean hangul + + + 6F5A56 + CFF3 + ECBFB3 + Korean hangul + + + 6F5A57 + CFF5 + ECBFB5 + Korean hangul + + + 6F5A58 + CFFC + ECBFBC + Korean hangul + + + 6F5A5A + D018 + ED8098 + Korean hangul + + + 6F5A5B + D02D + ED80AD + Korean hangul + + + 6F5A5C + D034 + ED80B4 + Korean hangul + + + 6F5A5D + D035 + ED80B5 + Korean hangul + + + 6F5A5E + D038 + ED80B8 + Korean hangul + + + 6F5A5F + D050 + ED8190 + Korean hangul + + + 6F5A60 + D06C + ED81AC + Korean hangul + + + 6F5A61 + D070 + ED81B0 + Korean hangul + + + 6F5A62 + D074 + ED81B4 + Korean hangul + + + 6F5A63 + D07C + ED81BC + Korean hangul + + + 6F5A64 + D07D + ED81BD + Korean hangul + + + 6F5A65 + D081 + ED8281 + Korean hangul + + + 6F5A66 + D0A4 + ED82A4 + Korean hangul + + + 6F5A67 + D0A5 + ED82A5 + Korean hangul + + + 6F5A68 + D0A8 + ED82A8 + Korean hangul + + + 6F5A69 + D0AC + ED82AC + Korean hangul + + + 6F5A6A + D0B4 + ED82B4 + Korean hangul + + + 6F5A6B + D0B5 + ED82B5 + Korean hangul + + + 6F5A6C + D0B7 + ED82B7 + Korean hangul + + + 6F5A6D + D0B9 + ED82B9 + Korean hangul + + + 6F5A70 + D0C0 + ED8380 + Korean hangul + + + 6F5A71 + D0C1 + ED8381 + Korean hangul + + + 6F5A72 + D0C4 + ED8384 + Korean hangul + + + 6F5A73 + D0C8 + ED8388 + Korean hangul + + + 6F5A74 + D0C9 + ED8389 + Korean hangul + + + 6F5A75 + D0D0 + ED8390 + Korean hangul + + + 6F5A76 + D0D1 + ED8391 + Korean hangul + + + 6F5A77 + D0D3 + ED8393 + Korean hangul + + + 6F5A78 + D0D4 + ED8394 + Korean hangul + + + 6F5A79 + D0D5 + ED8395 + Korean hangul + + + 6F5A7A + D0DC + ED839C + Korean hangul + + + 6F5A7B + D0DD + ED839D + Korean hangul + + + 6F5A7C + D0E0 + ED83A0 + Korean hangul + + + 6F5A7D + D0E4 + ED83A4 + Korean hangul + + + 6F5A7E + D0EC + ED83AC + Korean hangul + + + 6F5B21 + D0ED + ED83AD + Korean hangul + + + 6F5B22 + D0EF + ED83AF + Korean hangul + + + 6F5B23 + D0F0 + ED83B0 + Korean hangul + + + 6F5B24 + D0F1 + ED83B1 + Korean hangul + + + 6F5B25 + D130 + ED84B0 + Korean hangul + + + 6F5B26 + D131 + ED84B1 + Korean hangul + + + 6F5B27 + D134 + ED84B4 + Korean hangul + + + 6F5B28 + D138 + ED84B8 + Korean hangul + + + 6F5B29 + D140 + ED8580 + Korean hangul + + + 6F5B2A + D141 + ED8581 + Korean hangul + + + 6F5B2B + D143 + ED8583 + Korean hangul + + + 6F5B2C + D144 + ED8584 + Korean hangul + + + 6F5B2D + D145 + ED8585 + Korean hangul + + + 6F5B2E + D14C + ED858C + Korean hangul + + + 6F5B2F + D14D + ED858D + Korean hangul + + + 6F5B30 + D150 + ED8590 + Korean hangul + + + 6F5B31 + D154 + ED8594 + Korean hangul + + + 6F5B32 + D15C + ED859C + Korean hangul + + + 6F5B33 + D15D + ED859D + Korean hangul + + + 6F5B34 + D15F + ED859F + Korean hangul + + + 6F5B35 + D160 + ED85A0 + Korean hangul + + + 6F5B36 + D161 + ED85A1 + Korean hangul + + + 6F5B37 + D168 + ED85A8 + Korean hangul + + + 6F5B38 + D1A0 + ED86A0 + Korean hangul + + + 6F5B39 + D1A1 + ED86A1 + Korean hangul + + + 6F5B3A + D1A4 + ED86A4 + Korean hangul + + + 6F5B3B + D1A8 + ED86A8 + Korean hangul + + + 6F5B3C + D1B0 + ED86B0 + Korean hangul + + + 6F5B3D + D1B1 + ED86B1 + Korean hangul + + + 6F5B3E + D1B3 + ED86B3 + Korean hangul + + + 6F5B3F + D1B5 + ED86B5 + Korean hangul + + + 6F5B40 + D1D8 + ED8798 + Korean hangul + + + 6F5B41 + D1F4 + ED87B4 + Korean hangul + + + 6F5B43 + D22C + ED88AC + Korean hangul + + + 6F5B44 + D22D + ED88AD + Korean hangul + + + 6F5B45 + D230 + ED88B0 + Korean hangul + + + 6F5B46 + D234 + ED88B4 + Korean hangul + + + 6F5B47 + D23C + ED88BC + Korean hangul + + + 6F5B48 + D23D + ED88BD + Korean hangul + + + 6F5B49 + D23F + ED88BF + Korean hangul + + + 6F5B4A + D241 + ED8981 + Korean hangul + + + 6F5B4B + D264 + ED89A4 + Korean hangul + + + 6F5B4C + D277 + ED89B7 + Korean hangul + + + 6F5B4D + D280 + ED8A80 + Korean hangul + + + 6F5B4E + D284 + ED8A84 + Korean hangul + + + 6F5B4F + D288 + ED8A88 + Korean hangul + + + 6F5B50 + D290 + ED8A90 + Korean hangul + + + 6F5B51 + D291 + ED8A91 + Korean hangul + + + 6F5B52 + D293 + ED8A93 + Korean hangul + + + 6F5B53 + D295 + ED8A95 + Korean hangul + + + 6F5B54 + D29C + ED8A9C + Korean hangul + + + 6F5B57 + D2AC + ED8AAC + Korean hangul + + + 6F5B59 + D2B8 + ED8AB8 + Korean hangul + + + 6F5B5A + D2B9 + ED8AB9 + Korean hangul + + + 6F5B5B + D2BC + ED8ABC + Korean hangul + + + 6F5B5C + D2BF + ED8ABF + Korean hangul + + + 6F5B5D + D2C0 + ED8B80 + Korean hangul + + + 6F5B5E + D2C8 + ED8B88 + Korean hangul + + + 6F5B5F + D2C9 + ED8B89 + Korean hangul + + + 6F5B60 + D2CB + ED8B8B + Korean hangul + + + 6F5B61 + D2D4 + ED8B94 + Korean hangul + + + 6F5B62 + D1F8 + ED87B8 + Korean hangul + + + 6F5B63 + D2F0 + ED8BB0 + Korean hangul + + + 6F5B64 + D2F1 + ED8BB1 + Korean hangul + + + 6F5B65 + D2F4 + ED8BB4 + Korean hangul + + + 6F5B66 + D2F8 + ED8BB8 + Korean hangul + + + 6F5B67 + D300 + ED8C80 + Korean hangul + + + 6F5B68 + D301 + ED8C81 + Korean hangul + + + 6F5B69 + D305 + ED8C85 + Korean hangul + + + 6F5B6C + D30C + ED8C8C + Korean hangul + + + 6F5B6D + D30D + ED8C8D + Korean hangul + + + 6F5B6E + D30E + ED8C8E + Korean hangul + + + 6F5B6F + D310 + ED8C90 + Korean hangul + + + 6F5B70 + D314 + ED8C94 + Korean hangul + + + 6F5B71 + D31C + ED8C9C + Korean hangul + + + 6F5B72 + D31D + ED8C9D + Korean hangul + + + 6F5B73 + D31F + ED8C9F + Korean hangul + + + 6F5B74 + D320 + ED8CA0 + Korean hangul + + + 6F5B75 + D321 + ED8CA1 + Korean hangul + + + 6F5B76 + D325 + ED8CA5 + Korean hangul + + + 6F5B77 + D328 + ED8CA8 + Korean hangul + + + 6F5B78 + D329 + ED8CA9 + Korean hangul + + + 6F5B79 + D32C + ED8CAC + Korean hangul + + + 6F5B7A + D330 + ED8CB0 + Korean hangul + + + 6F5B7B + D338 + ED8CB8 + Korean hangul + + + 6F5B7C + D339 + ED8CB9 + Korean hangul + + + 6F5B7D + D33B + ED8CBB + Korean hangul + + + 6F5B7E + D33C + ED8CBC + Korean hangul + + + 6F5C21 + D33D + ED8CBD + Korean hangul + + + 6F5C23 + D37C + ED8DBC + Korean hangul + + + 6F5C24 + D37D + ED8DBD + Korean hangul + + + 6F5C25 + D380 + ED8E80 + Korean hangul + + + 6F5C26 + D384 + ED8E84 + Korean hangul + + + 6F5C27 + D38C + ED8E8C + Korean hangul + + + 6F5C28 + D38D + ED8E8D + Korean hangul + + + 6F5C29 + D38F + ED8E8F + Korean hangul + + + 6F5C2A + D390 + ED8E90 + Korean hangul + + + 6F5C2B + D391 + ED8E91 + Korean hangul + + + 6F5C2C + D398 + ED8E98 + Korean hangul + + + 6F5C2D + D399 + ED8E99 + Korean hangul + + + 6F5C2E + D39C + ED8E9C + Korean hangul + + + 6F5C2F + D3A0 + ED8EA0 + Korean hangul + + + 6F5C30 + D3A8 + ED8EA8 + Korean hangul + + + 6F5C31 + D3A9 + ED8EA9 + Korean hangul + + + 6F5C32 + D3AB + ED8EAB + Korean hangul + + + 6F5C33 + D3AD + ED8EAD + Korean hangul + + + 6F5C34 + D3B4 + ED8EB4 + Korean hangul + + + 6F5C35 + D3B5 + ED8EB5 + Korean hangul + + + 6F5C36 + D3B8 + ED8EB8 + Korean hangul + + + 6F5C37 + D3BC + ED8EBC + Korean hangul + + + 6F5C38 + D3C4 + ED8F84 + Korean hangul + + + 6F5C39 + D3C5 + ED8F85 + Korean hangul + + + 6F5C3A + D3C8 + ED8F88 + Korean hangul + + + 6F5C3B + D3C9 + ED8F89 + Korean hangul + + + 6F5C3C + D3D0 + ED8F90 + Korean hangul + + + 6F5C3D + D3EC + ED8FAC + Korean hangul + + + 6F5C3E + D3ED + ED8FAD + Korean hangul + + + 6F5C3F + D3F0 + ED8FB0 + Korean hangul + + + 6F5C40 + D3F4 + ED8FB4 + Korean hangul + + + 6F5C41 + D3FC + ED8FBC + Korean hangul + + + 6F5C42 + D3FD + ED8FBD + Korean hangul + + + 6F5C43 + D3FF + ED8FBF + Korean hangul + + + 6F5C44 + D401 + ED9081 + Korean hangul + + + 6F5C45 + D440 + ED9180 + Korean hangul + + + 6F5C46 + D444 + ED9184 + Korean hangul + + + 6F5C47 + D45C + ED919C + Korean hangul + + + 6F5C48 + D46F + ED91AF + Korean hangul + + + 6F5C49 + D478 + ED91B8 + Korean hangul + + + 6F5C4A + D479 + ED91B9 + Korean hangul + + + 6F5C4B + D47C + ED91BC + Korean hangul + + + 6F5C4C + D480 + ED9280 + Korean hangul + + + 6F5C4D + D488 + ED9288 + Korean hangul + + + 6F5C4E + D489 + ED9289 + Korean hangul + + + 6F5C4F + D48B + ED928B + Korean hangul + + + 6F5C50 + D48D + ED928D + Korean hangul + + + 6F5C51 + D4CC + ED938C + Korean hangul + + + 6F5C52 + D4E8 + ED93A8 + Korean hangul + + + 6F5C53 + D504 + ED9484 + Korean hangul + + + 6F5C55 + D508 + ED9488 + Korean hangul + + + 6F5C56 + D50C + ED948C + Korean hangul + + + 6F5C57 + D514 + ED9494 + Korean hangul + + + 6F5C58 + D515 + ED9495 + Korean hangul + + + 6F5C59 + D53C + ED94BC + Korean hangul + + + 6F5C5A + D53D + ED94BD + Korean hangul + + + 6F5C5B + D540 + ED9580 + Korean hangul + + + 6F5C5C + D544 + ED9584 + Korean hangul + + + 6F5C5D + D54C + ED958C + Korean hangul + + + 6F5C5E + D54D + ED958D + Korean hangul + + + 6F5C5F + D54F + ED958F + Korean hangul + + + 6F5C60 + D551 + ED9591 + Korean hangul + + + 6F5C63 + D558 + ED9598 + Korean hangul + + + 6F5C64 + D559 + ED9599 + Korean hangul + + + 6F5C65 + D55C + ED959C + Korean hangul + + + 6F5C66 + D560 + ED95A0 + Korean hangul + + + 6F5C67 + D565 + ED95A5 + Korean hangul + + + 6F5C68 + D568 + ED95A8 + Korean hangul + + + 6F5C69 + D569 + ED95A9 + Korean hangul + + + 6F5C6A + D56B + ED95AB + Korean hangul + + + 6F5C6B + D56C + ED95AC + Korean hangul + + + 6F5C6C + D56D + ED95AD + Korean hangul + + + 6F5C6D + D571 + ED95B1 + Korean hangul + + + 6F5C6E + D574 + ED95B4 + Korean hangul + + + 6F5C6F + D575 + ED95B5 + Korean hangul + + + 6F5C70 + D578 + ED95B8 + Korean hangul + + + 6F5C71 + D57C + ED95BC + Korean hangul + + + 6F5C72 + D584 + ED9684 + Korean hangul + + + 6F5C73 + D585 + ED9685 + Korean hangul + + + 6F5C74 + D587 + ED9687 + Korean hangul + + + 6F5C75 + D588 + ED9688 + Korean hangul + + + 6F5C76 + D589 + ED9689 + Korean hangul + + + 6F5C77 + D590 + ED9690 + Korean hangul + + + 6F5C78 + D5A5 + ED96A5 + Korean hangul + + + 6F5C79 + D5C8 + ED9788 + Korean hangul + + + 6F5C7A + D5C9 + ED9789 + Korean hangul + + + 6F5C7B + D5CC + ED978C + Korean hangul + + + 6F5C7C + D5D0 + ED9790 + Korean hangul + + + 6F5C7D + D5D2 + ED9792 + Korean hangul + + + 6F5C7E + D5D8 + ED9798 + Korean hangul + + + 6F5D21 + D5D9 + ED9799 + Korean hangul + + + 6F5D22 + D5DB + ED979B + Korean hangul + + + 6F5D23 + D5DD + ED979D + Korean hangul + + + 6F5D24 + D5E4 + ED97A4 + Korean hangul + + + 6F5D25 + D5E5 + ED97A5 + Korean hangul + + + 6F5D26 + D5E8 + ED97A8 + Korean hangul + + + 6F5D27 + D5EC + ED97AC + Korean hangul + + + 6F5D28 + D5F4 + ED97B4 + Korean hangul + + + 6F5D29 + D5F5 + ED97B5 + Korean hangul + + + 6F5D2A + D5F7 + ED97B7 + Korean hangul + + + 6F5D2B + D5F9 + ED97B9 + Korean hangul + + + 6F5D2C + D600 + ED9880 + Korean hangul + + + 6F5D2D + D601 + ED9881 + Korean hangul + + + 6F5D2E + D604 + ED9884 + Korean hangul + + + 6F5D2F + D608 + ED9888 + Korean hangul + + + 6F5D30 + D610 + ED9890 + Korean hangul + + + 6F5D31 + D611 + ED9891 + Korean hangul + + + 6F5D32 + D613 + ED9893 + Korean hangul + + + 6F5D33 + D614 + ED9894 + Korean hangul + + + 6F5D34 + D615 + ED9895 + Korean hangul + + + 6F5D35 + D61C + ED989C + Korean hangul + + + 6F5D36 + D638 + ED98B8 + Korean hangul + + + 6F5D37 + D639 + ED98B9 + Korean hangul + + + 6F5D38 + D63C + ED98BC + Korean hangul + + + 6F5D39 + D640 + ED9980 + Korean hangul + + + 6F5D3A + D648 + ED9988 + Korean hangul + + + 6F5D3B + D649 + ED9989 + Korean hangul + + + 6F5D3C + D64B + ED998B + Korean hangul + + + 6F5D3D + D64D + ED998D + Korean hangul + + + 6F5D3F + D654 + ED9994 + Korean hangul + + + 6F5D40 + D655 + ED9995 + Korean hangul + + + 6F5D41 + D658 + ED9998 + Korean hangul + + + 6F5D42 + D65C + ED999C + Korean hangul + + + 6F5D44 + D667 + ED99A7 + Korean hangul + + + 6F5D45 + D669 + ED99A9 + Korean hangul + + + 6F5D46 + D670 + ED99B0 + Korean hangul + + + 6F5D47 + D671 + ED99B1 + Korean hangul + + + 6F5D48 + D683 + ED9A83 + Korean hangul + + + 6F5D4A + D68C + ED9A8C + Korean hangul + + + 6F5D4B + D68D + ED9A8D + Korean hangul + + + 6F5D4C + D69F + ED9A9F + Korean hangul + + + 6F5D4D + D6A1 + ED9AA1 + Korean hangul + + + 6F5D4E + D6A8 + ED9AA8 + Korean hangul + + + 6F5D4F + D6C4 + ED9B84 + Korean hangul + + + 6F5D50 + D6C5 + ED9B85 + Korean hangul + + + 6F5D51 + D6C8 + ED9B88 + Korean hangul + + + 6F5D52 + D6CC + ED9B8C + Korean hangul + + + 6F5D53 + D6D1 + ED9B91 + Korean hangul + + + 6F5D54 + D6D4 + ED9B94 + Korean hangul + + + 6F5D55 + D6D7 + ED9B97 + Korean hangul + + + 6F5D56 + D6E0 + ED9BA0 + Korean hangul + + + 6F5D57 + D6E4 + ED9BA4 + Korean hangul + + + 6F5D58 + D6E8 + ED9BA8 + Korean hangul + + + 6F5D59 + D6F0 + ED9BB0 + Korean hangul + + + 6F5D5A + D6FC + ED9BBC + Korean hangul + + + 6F5D5C + D700 + ED9C80 + Korean hangul + + + 6F5D5D + D711 + ED9C91 + Korean hangul + + + 6F5D5E + D718 + ED9C98 + Korean hangul + + + 6F5D5F + D719 + ED9C99 + Korean hangul + + + 6F5D60 + D71C + ED9C9C + Korean hangul + + + 6F5D61 + D720 + ED9CA0 + Korean hangul + + + 6F5D62 + D728 + ED9CA8 + Korean hangul + + + 6F5D63 + D729 + ED9CA9 + Korean hangul + + + 6F5D65 + D72D + ED9CAD + Korean hangul + + + 6F5D66 + D734 + ED9CB4 + Korean hangul + + + 6F5D67 + D73C + ED9CBC + Korean hangul + + + 6F5D68 + D744 + ED9D84 + Korean hangul + + + 6F5D69 + D749 + ED9D89 + Korean hangul + + + 6F5D6A + D750 + ED9D90 + Korean hangul + + + 6F5D6B + D751 + ED9D91 + Korean hangul + + + 6F5D6C + D754 + ED9D94 + Korean hangul + + + 6F5D6D + D757 + ED9D97 + Korean hangul + + + 6F5D6E + D758 + ED9D98 + Korean hangul + + + 6F5D6F + D759 + ED9D99 + Korean hangul + + + 6F5D70 + D760 + ED9DA0 + Korean hangul + + + 6F5D71 + D761 + ED9DA1 + Korean hangul + + + 6F5D72 + D763 + ED9DA3 + Korean hangul + + + 6F5D73 + D765 + ED9DA5 + Korean hangul + + + 6F5D74 + D769 + ED9DA9 + Korean hangul + + + 6F5D75 + D76C + ED9DAC + Korean hangul + + + 6F5D76 + D770 + ED9DB0 + Korean hangul + + + 6F5D77 + D774 + ED9DB4 + Korean hangul + + + 6F5D78 + D788 + ED9E88 + Korean hangul + + + 6F5D79 + D789 + ED9E89 + Korean hangul + + + 6F5D7A + D78C + ED9E8C + Korean hangul + + + 6F5D7B + D790 + ED9E90 + Korean hangul + + + 6F5D7C + D798 + ED9E98 + Korean hangul + + + 6F5D7D + D799 + ED9E99 + Korean hangul + + + 6F5D7E + D79B + ED9E9B + Korean hangul + + + 6F5E21 + D79D + ED9E9D + Korean hangul + + + 6F7621 + 3181 + E38681 + Korean hangul + + + 6F7622 + 3186 + E38686 + Korean hangul + + + 6F7623 + 317F + E385BF + Korean hangul + + + 6F7624 + E8B0 + EEA2B0 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7625 + 318D + E3868D + Korean hangul (ancient) + + + 6F7640 + E8B2 + EEA2B2 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7641 + E8B3 + EEA2B3 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7642 + E8B4 + EEA2B4 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7643 + E8B5 + EEA2B5 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7644 + E8B6 + EEA2B6 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7645 + E8B7 + EEA2B7 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7646 + E8B8 + EEA2B8 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7647 + E8B9 + EEA2B9 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7648 + E8BA + EEA2BA + Korean hangul (ancient) + 3013 + E38093 + + + 6F7649 + E8BB + EEA2BB + Korean hangul (ancient) + 3013 + E38093 + + + 6F764A + E8BC + EEA2BC + Korean hangul (ancient) + 3013 + E38093 + + + 6F764B + E8BD + EEA2BD + Korean hangul (ancient) + 3013 + E38093 + + + 6F764C + E8BE + EEA2BE + Korean hangul (ancient) + 3013 + E38093 + + + 6F764D + E8BF + EEA2BF + Korean hangul (ancient) + 3013 + E38093 + + + 6F764E + E8C0 + EEA380 + Korean hangul (ancient) + 3013 + E38093 + + + 6F764F + E8C1 + EEA381 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7650 + E8C2 + EEA382 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7651 + E8C3 + EEA383 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7652 + E8C4 + EEA384 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7653 + E8C5 + EEA385 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7654 + E8C6 + EEA386 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7655 + E8C7 + EEA387 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7656 + E8C8 + EEA388 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7657 + E8C9 + EEA389 + Korean hangul (ancient) + 3013 + E38093 + + + 6F7721 + AD35 + EAB4B5 + Korean hangul + + + 6F7722 + AD7B + EAB5BB + Korean hangul + + + 6F7723 + E8CA + EEA38A + Korean hangul + 3013 + E38093 + + + 6F7724 + AD89 + EAB689 + Korean hangul + + + 6F7725 + AD9D + EAB69D + Korean hangul + + + 6F7726 + ADB9 + EAB6B9 + Korean hangul + + + 6F7727 + ADD5 + EAB795 + Korean hangul + + + 6F7728 + AE07 + EAB887 + Korean hangul + + + 6F7729 + AE0E + EAB88E + Korean hangul + + + 6F772A + AE0F + EAB88F + Korean hangul + + + 6F772B + AE11 + EAB891 + Korean hangul + + + 6F772C + AE14 + EAB894 + Korean hangul + + + 6F772D + AE5F + EAB99F + Korean hangul + + + 6F772E + AEED + EABBAD + Korean hangul + + + 6F772F + AF09 + EABC89 + Korean hangul + + + 6F7730 + AF50 + EABD90 + Korean hangul + + + 6F7731 + AFBF + EABEBF + Korean hangul + + + 6F7732 + B060 + EB81A0 + Korean hangul + + + 6F7733 + B9C4 + EBA784 + Korean hangul + + + 6F7734 + C54D + EC958D + Korean hangul + + + 6F7735 + C54F + EC958F + Korean hangul + + + 6F7736 + C552 + EC9592 + Korean hangul + + + 6F7737 + C5AB + EC96AB + Korean hangul + + + 6F7738 + C5B1 + EC96B1 + Korean hangul + + + 6F7739 + C61C + EC989C + Korean hangul + + + 6F773A + C61D + EC989D + Korean hangul + + + 6F773B + C6FD + EC9BBD + Korean hangul + + + 6F773C + C717 + EC9C97 + Korean hangul (unified with EACC 6F5658) + + + 6F773D + C733 + EC9CB3 + Korean hangul + + + 6F773E + CB4C + ECAD8C + Korean hangul + +
+ + +

This table contains 25 mappings of character encodings for East + Asian punctuation marks from the East Asian Coded Character set (ANSI/NISO + Z39.64, or "EACC") to character encodings in the Universal Character Set + (UCS, ISO-IEC 10646)/Unicode. Character codes are given in hexadecimal + notation. Each character is presented on a separate row.

+

The first column contains the MARC-8 EACC 24-bit code (in hex), the + second column contains the corresponding UCS/Unicode 16-bit (in hex) code, + the third column contains the UTF-8 code (in hex) for the UCS character, + the fourth column contains a representation of the character (where possible), the fifth column + contains a character name or description.

+

NOTE: The character IDEOGRAPHIC NUMBER ZERO (EACC 212F30, UCS/Unicode + 3007) is not included in this + table. It is listed in the mapping table for East Asian + Ideographs.

+
+ + 212321 + 3000 + E38080 + Ideographic space per ANSI Z39.64 + + + 212320 + 3000 + E38080 + Ideographic space in some implementations + + + 212328 + FF08 + EFBC88 + Ideographic left parenthesis + + + 212329 + FF09 + EFBC89 + Ideographic right parenthesis + + + 21232D + FF0D + EFBC8D + Ideographic hyphen minus + + + 212A46 + 3013 + E38093 + Ideographic geta symbol + + + 212B25 + 300C + E3808C + Ideographic left corner bracket + + + 212B26 + 300D + E3808D + Ideographic right corner bracket + + + 212B31 + FF3B + EFBCBB + Ideographic left square bracket + + + 212B32 + FF3D + EFBCBD + Ideographic right square bracket + + + 212B33 + 3002 + E38082 + Ideographic full stop + + + 212B34 + FF0E + EFBC8E + Ideographic variant full stop + + + 212B35 + 3001 + E38081 + Ideographic comma + + + 212B38 + FF0C + EFBC8C + Ideographic variant comma + + + 212B39 + FF1B + EFBC9B + Ideographic semicolon + + + 212B3A + FF1A + EFBC9A + Ideographic colon + + + 212B3B + FF1F + EFBC9F + Ideographic question mark + + + 212B3D + FF01 + EFBC81 + Ideographic exclamation point + + + 212B59 + FF0F + EFBC8F + Ideographic solidus + + + 692126 + 30FB + E383BB + Ideographic centered point + + + 692139 + 3005 + E38085 + Ideographic iteration mark + + + 692152 + 3008 + E38088 + Ideographic less than sign + + + 692153 + 3009 + E38089 + Ideographic greater than sign + + + 692154 + 300A + E3808A + Ideographic left double angle bracket + + + 692155 + 300B + E3808B + Ideographic right double angle bracket + +
+ + +

This table contains 35 mappings of encodings for component input + method characters from the East Asian Coded Character set (ANSI/NISO + Z39.64, or "EACC") to character encodings in the Private Use Area (PUA) of + the Universal Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes + are given in hexadecimal notation. Each character is presented on a + separate row.

+

The first column contains the MARC-8 EACC 24-bit code (in hex), the + second column contains the corresponding UCS/Unicode 16-bit code (in hex), + the third column contains the UTF-8 code (in hex) for the UCS character, + the fourth column contains a representation of the character (where possible), + the fifth column contains a character + name or description. Most East Asian ideographs are not given unique + names in the MARC-8 or UCS/Unicode.

+

For some characters alternate encodings + in UCS/Unicode and UTF-8 are given. When that occurs the alternate + UCS/Unicode 16-bit code column and + alternate UTF-8 code column follow the character name. + The alternative UCS/Unicode character + codes are provided for cases where MARC-8 characters were mapped to + UCS/Unicode characters in the Private Use Area (PUA). The alternative + character code is a defined Unicode character which should be + supported by applications that claim to support the full repertoire of + defined Unicode characters.

The characters in this table are sorted in + EACC character code order.

+ + +
+ + 212A21 + E8D0 + EEA390 + EACC component character + 3013 + E38093 + + + 212A22 + E8D1 + EEA391 + EACC component character + 3013 + E38093 + + + 212A23 + E8D2 + EEA392 + EACC component character + 3013 + E38093 + + + 212A24 + E8D3 + EEA393 + EACC component character + 3013 + E38093 + + + 212A25 + E8D4 + EEA394 + EACC component character + 3013 + E38093 + + + 212A26 + E8D5 + EEA395 + EACC component character + 3013 + E38093 + + + 212A28 + E8D6 + EEA396 + EACC component character + 3013 + E38093 + + + 212A29 + E8D7 + EEA397 + EACC component character + 3013 + E38093 + + + 212A2A + E8D8 + EEA398 + EACC component character + 3013 + E38093 + + + 212A2B + E8D9 + EEA399 + EACC component character + 3013 + E38093 + + + 212A2C + E8DA + EEA39A + EACC component character + 3013 + E38093 + + + 212A2D + E8DB + EEA39B + EACC component character + 3013 + E38093 + + + 212A2E + E8DC + EEA39C + EACC component character + 3013 + E38093 + + + 212A2F + E8DD + EEA39D + EACC component character + 3013 + E38093 + + + 212A30 + E8DE + EEA39E + EACC component character + 3013 + E38093 + + + 212A32 + E8DF + EEA39F + EACC component character + 3013 + E38093 + + + 212A33 + E8E0 + EEA3A0 + EACC component character + 3013 + E38093 + + + 212A34 + E8E1 + EEA3A1 + EACC component character + 3013 + E38093 + + + 212A35 + E8E2 + EEA3A2 + EACC component character + 3013 + E38093 + + + 212A36 + E8E3 + EEA3A3 + EACC component character + 3013 + E38093 + + + 212A37 + E8E4 + EEA3A4 + EACC component character + 3013 + E38093 + + + 212A38 + E8E5 + EEA3A5 + EACC component character + 3013 + E38093 + + + 212A39 + E8E6 + EEA3A6 + EACC component character + 3013 + E38093 + + + 212A3A + E8E7 + EEA3A7 + EACC component character + 3013 + E38093 + + + 212A3B + E8E8 + EEA3A8 + EACC component character + 3013 + E38093 + + + 212A3C + E8E9 + EEA3A9 + EACC component character + 3013 + E38093 + + + 212A3D + E8EA + EEA3AA + EACC component character + 3013 + E38093 + + + 212A3E + E8EB + EEA3AB + EACC component character + 3013 + E38093 + + + 212A3F + E8EC + EEA3AC + EACC component character + 3013 + E38093 + + + 212A40 + E8ED + EEA3AD + EACC component character + 3013 + E38093 + + + 212A41 + E8EE + EEA3AE + EACC component character + 3013 + E38093 + + + 212A42 + E8EF + EEA3AF + EACC component character + 3013 + E38093 + + + 212A43 + E8F0 + EEA3B0 + EACC component character + 3013 + E38093 + + + 212A44 + E8F1 + EEA3B1 + EACC component character + 3013 + E38093 + + + 212A45 + E8F2 + EEA3B2 + EACC component character + 3013 + E38093 + +
+
+
+
diff --git a/dependencies/yaz-2.1.28/src/comstack.c b/dependencies/yaz-2.1.28/src/comstack.c new file mode 100644 index 0000000..1ea5071 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/comstack.c @@ -0,0 +1,307 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: comstack.c,v 1.16 2006/08/24 13:25:45 adam Exp $ + */ + +/** + * \file comstack.c + * \brief Implements Generic COMSTACK functions + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifdef WIN32 +#define strncasecmp _strnicmp +#endif + +static const char *cs_errlist[] = +{ + "No error or unspecified error", + "System (lower-layer) error", + "Operation out of state", + "No data (operation would block)", + "New data while half of old buffer is on the line (flow control)", + "Permission denied", + "SSL error", + "Too large incoming buffer" +}; + +const char *cs_errmsg(int n) +{ + static char buf[250]; + + if (n < CSNONE || n > CSLASTERROR) { + sprintf(buf, "unknown comstack error %d", n); + return buf; + } + if (n == CSYSERR) { + sprintf(buf, "%s: %s", cs_errlist[n], strerror(errno)); + return buf; + } + return cs_errlist[n]; +} + +const char *cs_strerror(COMSTACK h) +{ + return cs_errmsg(h->cerrno); +} + +void cs_get_host_args(const char *type_and_host, const char **args) +{ + + *args = ""; + if (*type_and_host && strncmp(type_and_host, "unix:", 5)) + { + const char *cp; + cp = strstr(type_and_host, "://"); + if (cp) + cp = cp+3; + else + cp = type_and_host; + cp = strchr(cp, '/'); + if (cp) + *args = cp+1; + } +} + +COMSTACK cs_create_host(const char *type_and_host, int blocking, void **vp) +{ + enum oid_proto proto = PROTO_Z3950; + const char *host = 0; + COMSTACK cs; + CS_TYPE t; + + if (strncmp (type_and_host, "tcp:", 4) == 0) + { + t = tcpip_type; + host = type_and_host + 4; + } + else if (strncmp (type_and_host, "ssl:", 4) == 0) + { +#if HAVE_OPENSSL_SSL_H + t = ssl_type; + host = type_and_host + 4; +#else + return 0; +#endif + } + else if (strncmp (type_and_host, "unix:", 5) == 0) + { +#ifndef WIN32 + t = unix_type; + host = type_and_host + 5; +#else + return 0; +#endif + } + else if (strncmp(type_and_host, "http:", 5) == 0) + { + t = tcpip_type; + host = type_and_host + 5; + while (host[0] == '/') + host++; + proto = PROTO_HTTP; + } + else if (strncmp(type_and_host, "https:", 6) == 0) + { +#if HAVE_OPENSSL_SSL_H + t = ssl_type; + host = type_and_host + 6; + while (host[0] == '/') + host++; + proto = PROTO_HTTP; +#else + return 0; +#endif + } + else + { + t = tcpip_type; + host = type_and_host; + } + cs = cs_create (t, blocking, proto); + if (!cs) + return 0; + + if (!(*vp = cs_straddr(cs, host))) + { + cs_close (cs); + return 0; + } + return cs; +} + +int cs_look (COMSTACK cs) +{ + return cs->event; +} + +#define CHUNK_DEBUG 0 +int cs_complete_auto(const unsigned char *buf, int len) +{ + if (len > 5 && buf[0] >= 0x20 && buf[0] < 0x7f + && buf[1] >= 0x20 && buf[1] < 0x7f + && buf[2] >= 0x20 && buf[2] < 0x7f) + { + /* deal with HTTP request/response */ + int i = 2, content_len = 0, chunked = 0; + + /* if dealing with HTTP responses - then default + content length is unlimited (socket close) */ + if (!memcmp(buf, "HTTP/", 5)) + content_len = -1; + + while (i <= len-4) + { + if (i > 8192) + { + return i; /* do not allow more than 8K HTTP header */ + } + if (buf[i] == '\r' && buf[i+1] == '\n') + { + i += 2; + if (buf[i] == '\r' && buf[i+1] == '\n') + { + if (chunked) + { + /* inside chunked body .. */ + while(1) + { + int j, chunk_len = 0; + i += 2; +#if CHUNK_DEBUG +/* debugging */ + if (i >>\n"); + } +#endif + /* read chunk length */ + while (1) + if (i >= len-2) { +#if CHUNK_DEBUG +/* debugging */ + printf ("XXXXXXXX not there yet 1\n"); + printf ("i=%d len=%d\n", i, len); +#endif + return 0; + } else if (isdigit(buf[i])) + chunk_len = chunk_len * 16 + + (buf[i++] - '0'); + else if (isupper(buf[i])) + chunk_len = chunk_len * 16 + + (buf[i++] - ('A'-10)); + else if (islower(buf[i])) + chunk_len = chunk_len * 16 + + (buf[i++] - ('a'-10)); + else + break; + /* move forward until CRLF - skip chunk ext */ + j = 0; + while (buf[i] != '\r' && buf[i+1] != '\n') + { + if (i >= len-2) + return 0; /* need more buffer .. */ + if (++j > 1000) + return i; /* enough.. stop */ + i++; + } + /* got CRLF */ +#if CHUNK_DEBUG + printf ("XXXXXX chunk_len=%d\n", chunk_len); +#endif + if (chunk_len < 0) + return i+2; /* bad chunk_len */ + if (chunk_len == 0) + break; + i += chunk_len+2; + } + /* consider trailing headers .. */ + while(i <= len-4) + { + if (buf[i] == '\r' && buf[i+1] == '\n' && + buf[i+2] == '\r' && buf[i+3] == '\n') + if (len >= i+4) + return i+4; + i++; + } +#if CHUNK_DEBUG +/* debugging */ + printf ("XXXXXXXXX not there yet 2\n"); + printf ("i=%d len=%d\n", i, len); +#endif + return 0; + } + else + { /* not chunked ; inside body */ + /* i += 2 seems not to work with GCC -O2 .. + so i+2 is used instead .. */ + if (content_len == -1) + return 0; /* no content length */ + else if (len >= (i+2)+ content_len) + { + return (i+2)+ content_len; + } + } + break; + } + else if (i < len - 20 && + !strncasecmp((const char *) buf+i, "Transfer-Encoding:", 18)) + { + i+=18; + while (buf[i] == ' ') + i++; + if (i < len - 8) + if (!strncasecmp((const char *) buf+i, "chunked", 7)) + chunked = 1; + } + else if (i < len - 17 && + !strncasecmp((const char *)buf+i, "Content-Length:", 15)) + { + i+= 15; + while (buf[i] == ' ') + i++; + content_len = 0; + while (i <= len-4 && isdigit(buf[i])) + content_len = content_len*10 + (buf[i++] - '0'); + if (content_len < 0) /* prevent negative offsets */ + content_len = 0; + } + else + i++; + } + else + i++; + } + return 0; + } + return completeBER(buf, len); +} + +void cs_set_max_recv_bytes(COMSTACK cs, int max_recv_bytes) +{ + cs->max_recv_bytes = max_recv_bytes; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cql.c b/dependencies/yaz-2.1.28/src/cql.c new file mode 100644 index 0000000..cf95d1b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cql.c @@ -0,0 +1,1785 @@ +/* A Bison parser, made by GNU Bison 2.1. */ + +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.1" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ +#define yyparse cql_parse +#define yylex cql_lex +#define yyerror cql_error +#define yylval cql_lval +#define yychar cql_char +#define yydebug cql_debug +#define yynerrs cql_nerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + TERM = 258, + AND = 259, + OR = 260, + NOT = 261, + PROX = 262, + GE = 263, + LE = 264, + NE = 265 + }; +#endif +/* Tokens. */ +#define TERM 258 +#define AND 259 +#define OR 260 +#define NOT 261 +#define PROX 262 +#define GE 263 +#define LE 264 +#define NE 265 + + + + +/* Copy the first part of user declarations. */ +#line 11 "cql.y" + +/** + * \file cql.c + * \brief Implements CQL parser. + * + * This is a YACC parser, but since it must be reentrant, Bison is required. + * The original source file is cql.y. + */ +#include +#include +#include +#include +#include +#include +#include + + /** Node in the LALR parse tree. */ + typedef struct { + /** Inhereted attribute: relation */ + struct cql_node *rel; + /** Synthesized attribute: CQL node */ + struct cql_node *cql; + /** string buffer with token */ + char *buf; + /** length of token */ + size_t len; + /** size of buffer (len <= size) */ + size_t size; + } token; + + struct cql_parser { + int (*getbyte)(void *client_data); + void (*ungetbyte)(int b, void *client_data); + void *client_data; + int last_error; + int last_pos; + struct cql_node *top; + NMEM nmem; + }; + +#define YYSTYPE token + +#define YYPARSE_PARAM parm +#define YYLEX_PARAM parm + + int yylex(YYSTYPE *lval, void *vp); + int yyerror(char *s); + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 219 of yacc.c. */ +#line 173 "cql.c" + +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif + +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYINCLUDED_STDLIB_H +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee 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 + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) +# endif +# ifdef __cplusplus +extern "C" { +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ + && (defined (__STDC__) || defined (__cplusplus))) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifdef __cplusplus +} +# endif +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 3 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 75 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 17 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 17 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 43 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 56 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 265 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 11, 12, 2, 2, 2, 2, 2, 15, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 16, 14, 13, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned char yyprhs[] = +{ + 0, 0, 3, 4, 7, 9, 12, 14, 15, 21, + 22, 27, 29, 30, 36, 37, 44, 45, 50, 52, + 54, 56, 58, 62, 68, 69, 71, 73, 75, 77, + 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, + 99, 101, 103, 105 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yysigned_char yyrhs[] = +{ + 18, 0, -1, -1, 19, 20, -1, 21, -1, 21, + 1, -1, 23, -1, -1, 21, 28, 29, 22, 23, + -1, -1, 11, 24, 21, 12, -1, 33, -1, -1, + 32, 31, 29, 25, 23, -1, -1, 13, 33, 14, + 33, 26, 21, -1, -1, 13, 33, 27, 21, -1, + 4, -1, 5, -1, 6, -1, 7, -1, 29, 15, + 33, -1, 29, 15, 33, 30, 33, -1, -1, 14, + -1, 13, -1, 16, -1, 8, -1, 9, -1, 10, + -1, 14, -1, 13, -1, 16, -1, 8, -1, 9, + -1, 10, -1, 3, -1, 33, -1, 3, -1, 4, + -1, 5, -1, 6, -1, 7, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned char yyrline[] = +{ + 0, 66, 66, 66, 76, 77, 84, 86, 86, 101, + 101, 108, 114, 114, 121, 121, 127, 127, 138, 138, + 138, 138, 141, 150, 159, 165, 166, 167, 168, 169, + 170, 174, 175, 176, 177, 178, 179, 180, 184, 187, + 188, 189, 190, 191 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "TERM", "AND", "OR", "NOT", "PROX", "GE", + "LE", "NE", "'('", "')'", "'>'", "'='", "'/'", "'<'", "$accept", "top", + "@1", "cqlQuery1", "cqlQuery", "@2", "searchClause", "@3", "@4", "@5", + "@6", "boolean", "modifiers", "mrelation", "relation", "index", + "searchTerm", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 40, 41, 62, 61, 47, 60 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 17, 19, 18, 20, 20, 21, 22, 21, 24, + 23, 23, 25, 23, 26, 23, 27, 23, 28, 28, + 28, 28, 29, 29, 29, 30, 30, 30, 30, 30, + 30, 31, 31, 31, 31, 31, 31, 31, 32, 33, + 33, 33, 33, 33 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 0, 2, 1, 2, 1, 0, 5, 0, + 4, 1, 0, 5, 0, 6, 0, 4, 1, 1, + 1, 1, 3, 5, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 2, 0, 0, 1, 39, 40, 41, 42, 43, 9, + 0, 3, 0, 6, 0, 11, 0, 16, 5, 18, + 19, 20, 21, 24, 37, 34, 35, 36, 32, 31, + 33, 24, 0, 0, 0, 7, 12, 10, 14, 17, + 0, 0, 0, 0, 22, 8, 13, 15, 28, 29, + 30, 26, 25, 27, 0, 23 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yysigned_char yydefgoto[] = +{ + -1, 1, 2, 11, 12, 41, 13, 16, 42, 43, + 34, 23, 35, 54, 31, 14, 15 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -39 +static const yysigned_char yypact[] = +{ + -39, 5, 28, -39, -39, -39, -39, -39, -39, -39, + 64, -39, 59, -39, -1, 8, 28, -8, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, 50, 64, 28, -5, -5, -39, -39, 68, + 64, 28, 28, 28, 37, -39, -39, 68, -39, -39, + -39, -39, -39, -39, 64, -39 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yysigned_char yypgoto[] = +{ + -39, -39, -39, -39, -15, -39, -38, -39, -39, -39, + -39, -39, -17, -39, -39, -39, -10 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -39 +static const yysigned_char yytable[] = +{ + 17, 32, 24, 45, 46, 3, 33, 25, 26, 27, + 40, -38, 28, 29, 36, 30, -38, -38, -38, 39, + 0, -38, -38, 38, -38, 0, 0, 0, 47, 0, + 44, 4, 5, 6, 7, 8, 0, 0, 0, 9, + 0, 10, 0, 0, 55, 48, 49, 50, 0, 0, + 51, 52, 0, 53, 19, 20, 21, 22, 0, -4, + 18, 0, 37, 19, 20, 21, 22, 4, 5, 6, + 7, 8, 19, 20, 21, 22 +}; + +static const yysigned_char yycheck[] = +{ + 10, 16, 3, 41, 42, 0, 14, 8, 9, 10, + 15, 3, 13, 14, 31, 16, 8, 9, 10, 34, + -1, 13, 14, 33, 16, -1, -1, -1, 43, -1, + 40, 3, 4, 5, 6, 7, -1, -1, -1, 11, + -1, 13, -1, -1, 54, 8, 9, 10, -1, -1, + 13, 14, -1, 16, 4, 5, 6, 7, -1, 0, + 1, -1, 12, 4, 5, 6, 7, 3, 4, 5, + 6, 7, 4, 5, 6, 7 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 18, 19, 0, 3, 4, 5, 6, 7, 11, + 13, 20, 21, 23, 32, 33, 24, 33, 1, 4, + 5, 6, 7, 28, 3, 8, 9, 10, 13, 14, + 16, 31, 21, 14, 27, 29, 29, 12, 33, 21, + 15, 22, 25, 26, 33, 23, 23, 21, 8, 9, + 10, 13, 14, 16, 30, 33 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif +{ + const char *yys = yystr; + + while (*yys++ != '\0') + continue; + + return yys - yystr - 1; +} +# endif +# endif + +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + size_t yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +#endif /* YYERROR_VERBOSE */ + + + +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) +#else +int +yyparse () + ; +#endif +#endif +{ + /* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK (yyvsp--, yyssp--) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ + int yylen; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a look-ahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to look-ahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; + + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + yystate = yyn; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 66 "cql.y" + { + (yyval).rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, + "cql.serverChoice", "scr", 0); + ((CQL_parser) parm)->top = 0; +} + break; + + case 3: +#line 70 "cql.y" + { + cql_node_destroy((yyval).rel); + ((CQL_parser) parm)->top = (yyvsp[0]).cql; +} + break; + + case 5: +#line 77 "cql.y" + { + cql_node_destroy((yyvsp[-1]).cql); + (yyval).cql = 0; +} + break; + + case 7: +#line 86 "cql.y" + { + (yyval).rel = (yyvsp[-3]).rel; + } + break; + + case 8: +#line 88 "cql.y" + { + struct cql_node *cn = cql_node_mk_boolean(((CQL_parser) parm)->nmem, + (yyvsp[-3]).buf); + + cn->u.boolean.modifiers = (yyvsp[-2]).cql; + cn->u.boolean.left = (yyvsp[-4]).cql; + cn->u.boolean.right = (yyvsp[0]).cql; + + (yyval).cql = cn; + } + break; + + case 9: +#line 101 "cql.y" + { + (yyval).rel = (yyvsp[-1]).rel; + + } + break; + + case 10: +#line 104 "cql.y" + { + (yyval).cql = (yyvsp[-1]).cql; + } + break; + + case 11: +#line 108 "cql.y" + { + struct cql_node *st = cql_node_dup (((CQL_parser) parm)->nmem, (yyvsp[-1]).rel); + st->u.st.term = nmem_strdup(((CQL_parser)parm)->nmem, (yyvsp[0]).buf); + (yyval).cql = st; + } + break; + + case 12: +#line 114 "cql.y" + { + (yyval).rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, (yyvsp[-2]).buf, (yyvsp[-1]).buf, 0); + (yyval).rel->u.st.modifiers = (yyvsp[0]).cql; + } + break; + + case 13: +#line 117 "cql.y" + { + (yyval).cql = (yyvsp[0]).cql; + cql_node_destroy((yyvsp[-1]).rel); + } + break; + + case 14: +#line 121 "cql.y" + { + (yyval).rel = (yyvsp[-4]).rel; + } + break; + + case 15: +#line 123 "cql.y" + { + (yyval).cql = cql_apply_prefix(((CQL_parser) parm)->nmem, + (yyvsp[0]).cql, (yyvsp[-4]).buf, (yyvsp[-2]).buf); + } + break; + + case 16: +#line 127 "cql.y" + { + (yyval).rel = (yyvsp[-2]).rel; + } + break; + + case 17: +#line 129 "cql.y" + { + (yyval).cql = cql_apply_prefix(((CQL_parser) parm)->nmem, + (yyvsp[0]).cql, 0, (yyvsp[-2]).buf); + } + break; + + case 22: +#line 142 "cql.y" + { + struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, + (yyvsp[0]).buf, "=", 0); + + mod->u.st.modifiers = (yyvsp[-2]).cql; + (yyval).cql = mod; +} + break; + + case 23: +#line 151 "cql.y" + { + struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, + (yyvsp[-2]).buf, (yyvsp[-1]).buf, (yyvsp[0]).buf); + + mod->u.st.modifiers = (yyvsp[-4]).cql; + (yyval).cql = mod; +} + break; + + case 24: +#line 159 "cql.y" + { + (yyval).cql = 0; +} + break; + + + default: break; + } + +/* Line 1126 of yacc.c. */ +#line 1353 "cql.c" + + yyvsp -= yylen; + yyssp -= yylen; + + + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (YYPACT_NINF < yyn && yyn < YYLAST) + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + char *yymsg = 0; +# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +#if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +#endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= yysize1 < yysize; + yysize = yysize1; + + if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yymsg; + int yyi = 0; + while ((*yyp = *yyf)) + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + yyerror (yymsg); + YYSTACK_FREE (yymsg); + } + else + { + yyerror (YY_("syntax error")); + goto yyexhaustedlab; + } + } + else +#endif /* YYERROR_VERBOSE */ + yyerror (YY_("syntax error")); + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (0) + goto yyerrorlab; + +yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK; + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; +} + + +#line 194 "cql.y" + + +int yyerror(char *s) +{ + return 0; +} + +/** + * putb is a utility that puts one character to the string + * in current lexical token. This routine deallocates as + * necessary using NMEM. + */ + +static void putb(YYSTYPE *lval, CQL_parser cp, int c) +{ + if (lval->len+1 >= lval->size) + { + char *nb = (char *) + nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20)); + memcpy (nb, lval->buf, lval->len); + lval->buf = nb; + } + if (c) + lval->buf[lval->len++] = c; + lval->buf[lval->len] = '\0'; +} + + +/** + * yylex returns next token for Bison to be read. In this + * case one of the CQL terminals are returned. + */ +int yylex(YYSTYPE *lval, void *vp) +{ + CQL_parser cp = (CQL_parser) vp; + int c; + lval->cql = 0; + lval->rel = 0; + lval->len = 0; + lval->size = 10; + lval->buf = (char *) nmem_malloc(cp->nmem, lval->size); + lval->buf[0] = '\0'; + do + { + c = cp->getbyte(cp->client_data); + if (c == 0) + return 0; + if (c == '\n') + return 0; + } while (isspace(c)); + if (strchr("()=>') + { + c1 = cp->getbyte(cp->client_data); + if (c1 == '=') + { + putb(lval, cp, c1); + return GE; + } + else + cp->ungetbyte(c1, cp->client_data); + } + else if (c == '<') + { + c1 = cp->getbyte(cp->client_data); + if (c1 == '=') + { + putb(lval, cp, c1); + return LE; + } + else if (c1 == '>') + { + putb(lval, cp, c1); + return NE; + } + else + cp->ungetbyte(c1, cp->client_data); + } + return c; + } + if (c == '"') + { + while ((c = cp->getbyte(cp->client_data)) != 0 && c != '"') + { + if (c == '\\') + c = cp->getbyte(cp->client_data); + putb(lval, cp, c); + } + putb(lval, cp, 0); + } + else + { + putb(lval, cp, c); + while ((c = cp->getbyte(cp->client_data)) != 0 && + !strchr(" \n()=<>/", c)) + { + if (c == '\\') + c = cp->getbyte(cp->client_data); + putb(lval, cp, c); + } +#if YYDEBUG + printf ("got %s\n", lval->buf); +#endif + if (c != 0) + cp->ungetbyte(c, cp->client_data); + if (!cql_strcmp(lval->buf, "and")) + return AND; + if (!cql_strcmp(lval->buf, "or")) + return OR; + if (!cql_strcmp(lval->buf, "not")) + return NOT; + if (!cql_strcmp(lval->buf, "prox")) + return PROX; + } + return TERM; +} + + +int cql_parser_stream(CQL_parser cp, + int (*getbyte)(void *client_data), + void (*ungetbyte)(int b, void *client_data), + void *client_data) +{ + nmem_reset(cp->nmem); + cp->getbyte = getbyte; + cp->ungetbyte = ungetbyte; + cp->client_data = client_data; + if (cp->top) + cql_node_destroy(cp->top); + cql_parse(cp); + if (cp->top) + return 0; + return -1; +} + +CQL_parser cql_parser_create(void) +{ + CQL_parser cp = (CQL_parser) xmalloc (sizeof(*cp)); + + cp->top = 0; + cp->getbyte = 0; + cp->ungetbyte = 0; + cp->client_data = 0; + cp->last_error = 0; + cp->last_pos = 0; + cp->nmem = nmem_create(); + return cp; +} + +void cql_parser_destroy(CQL_parser cp) +{ + cql_node_destroy(cp->top); + nmem_destroy(cp->nmem); + xfree (cp); +} + +struct cql_node *cql_parser_result(CQL_parser cp) +{ + return cp->top; +} + + diff --git a/dependencies/yaz-2.1.28/src/cql.y b/dependencies/yaz-2.1.28/src/cql.y new file mode 100644 index 0000000..3dc42a0 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cql.y @@ -0,0 +1,356 @@ +/* $Id: cql.y,v 1.9 2005/06/27 22:03:59 adam Exp $ + Copyright (C) 2002-2004 + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE. + + bison parser for CQL grammar. +*/ +%{ +/** + * \file cql.c + * \brief Implements CQL parser. + * + * This is a YACC parser, but since it must be reentrant, Bison is required. + * The original source file is cql.y. + */ +#include +#include +#include +#include +#include +#include +#include + + /** Node in the LALR parse tree. */ + typedef struct { + /** Inhereted attribute: relation */ + struct cql_node *rel; + /** Synthesized attribute: CQL node */ + struct cql_node *cql; + /** string buffer with token */ + char *buf; + /** length of token */ + size_t len; + /** size of buffer (len <= size) */ + size_t size; + } token; + + struct cql_parser { + int (*getbyte)(void *client_data); + void (*ungetbyte)(int b, void *client_data); + void *client_data; + int last_error; + int last_pos; + struct cql_node *top; + NMEM nmem; + }; + +#define YYSTYPE token + +#define YYPARSE_PARAM parm +#define YYLEX_PARAM parm + + int yylex(YYSTYPE *lval, void *vp); + int yyerror(char *s); +%} + +%pure_parser +%token TERM AND OR NOT PROX GE LE NE +%expect 9 + +%% + +top: { + $$.rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, + "cql.serverChoice", "scr", 0); + ((CQL_parser) parm)->top = 0; +} cqlQuery1 { + cql_node_destroy($$.rel); + ((CQL_parser) parm)->top = $2.cql; +} +; + +cqlQuery1: cqlQuery +| cqlQuery error { + cql_node_destroy($1.cql); + $$.cql = 0; +} +; + +cqlQuery: + searchClause +| + cqlQuery boolean modifiers { + $$.rel = $0.rel; + } searchClause { + struct cql_node *cn = cql_node_mk_boolean(((CQL_parser) parm)->nmem, + $2.buf); + + cn->u.boolean.modifiers = $3.cql; + cn->u.boolean.left = $1.cql; + cn->u.boolean.right = $5.cql; + + $$.cql = cn; + } +; + +searchClause: + '(' { + $$.rel = $0.rel; + + } cqlQuery ')' { + $$.cql = $3.cql; + } +| + searchTerm { + struct cql_node *st = cql_node_dup (((CQL_parser) parm)->nmem, $0.rel); + st->u.st.term = nmem_strdup(((CQL_parser)parm)->nmem, $1.buf); + $$.cql = st; + } +| + index relation modifiers { + $$.rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, $1.buf, $2.buf, 0); + $$.rel->u.st.modifiers = $3.cql; + } searchClause { + $$.cql = $5.cql; + cql_node_destroy($4.rel); + } +| '>' searchTerm '=' searchTerm { + $$.rel = $0.rel; + } cqlQuery { + $$.cql = cql_apply_prefix(((CQL_parser) parm)->nmem, + $6.cql, $2.buf, $4.buf); + } +| '>' searchTerm { + $$.rel = $0.rel; + } cqlQuery { + $$.cql = cql_apply_prefix(((CQL_parser) parm)->nmem, + $4.cql, 0, $2.buf); + } +; + +/* unary NOT search TERM here .. */ + +boolean: + AND | OR | NOT | PROX + ; + +modifiers: modifiers '/' searchTerm +{ + struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, + $3.buf, "=", 0); + + mod->u.st.modifiers = $1.cql; + $$.cql = mod; +} +| +modifiers '/' searchTerm mrelation searchTerm +{ + struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, + $3.buf, $4.buf, $5.buf); + + mod->u.st.modifiers = $1.cql; + $$.cql = mod; +} +| +{ + $$.cql = 0; +} +; + +mrelation: + '=' +| '>' +| '<' +| GE +| LE +| NE +; + +relation: + '=' +| '>' +| '<' +| GE +| LE +| NE +| TERM +; + +index: + searchTerm; + +searchTerm: + TERM +| AND +| OR +| NOT +| PROX +; + +%% + +int yyerror(char *s) +{ + return 0; +} + +/** + * putb is a utility that puts one character to the string + * in current lexical token. This routine deallocates as + * necessary using NMEM. + */ + +static void putb(YYSTYPE *lval, CQL_parser cp, int c) +{ + if (lval->len+1 >= lval->size) + { + char *nb = (char *) + nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20)); + memcpy (nb, lval->buf, lval->len); + lval->buf = nb; + } + if (c) + lval->buf[lval->len++] = c; + lval->buf[lval->len] = '\0'; +} + + +/** + * yylex returns next token for Bison to be read. In this + * case one of the CQL terminals are returned. + */ +int yylex(YYSTYPE *lval, void *vp) +{ + CQL_parser cp = (CQL_parser) vp; + int c; + lval->cql = 0; + lval->rel = 0; + lval->len = 0; + lval->size = 10; + lval->buf = (char *) nmem_malloc(cp->nmem, lval->size); + lval->buf[0] = '\0'; + do + { + c = cp->getbyte(cp->client_data); + if (c == 0) + return 0; + if (c == '\n') + return 0; + } while (isspace(c)); + if (strchr("()=>') + { + c1 = cp->getbyte(cp->client_data); + if (c1 == '=') + { + putb(lval, cp, c1); + return GE; + } + else + cp->ungetbyte(c1, cp->client_data); + } + else if (c == '<') + { + c1 = cp->getbyte(cp->client_data); + if (c1 == '=') + { + putb(lval, cp, c1); + return LE; + } + else if (c1 == '>') + { + putb(lval, cp, c1); + return NE; + } + else + cp->ungetbyte(c1, cp->client_data); + } + return c; + } + if (c == '"') + { + while ((c = cp->getbyte(cp->client_data)) != 0 && c != '"') + { + if (c == '\\') + c = cp->getbyte(cp->client_data); + putb(lval, cp, c); + } + putb(lval, cp, 0); + } + else + { + putb(lval, cp, c); + while ((c = cp->getbyte(cp->client_data)) != 0 && + !strchr(" \n()=<>/", c)) + { + if (c == '\\') + c = cp->getbyte(cp->client_data); + putb(lval, cp, c); + } +#if YYDEBUG + printf ("got %s\n", lval->buf); +#endif + if (c != 0) + cp->ungetbyte(c, cp->client_data); + if (!cql_strcmp(lval->buf, "and")) + return AND; + if (!cql_strcmp(lval->buf, "or")) + return OR; + if (!cql_strcmp(lval->buf, "not")) + return NOT; + if (!cql_strcmp(lval->buf, "prox")) + return PROX; + } + return TERM; +} + + +int cql_parser_stream(CQL_parser cp, + int (*getbyte)(void *client_data), + void (*ungetbyte)(int b, void *client_data), + void *client_data) +{ + nmem_reset(cp->nmem); + cp->getbyte = getbyte; + cp->ungetbyte = ungetbyte; + cp->client_data = client_data; + if (cp->top) + cql_node_destroy(cp->top); + cql_parse(cp); + if (cp->top) + return 0; + return -1; +} + +CQL_parser cql_parser_create(void) +{ + CQL_parser cp = (CQL_parser) xmalloc (sizeof(*cp)); + + cp->top = 0; + cp->getbyte = 0; + cp->ungetbyte = 0; + cp->client_data = 0; + cp->last_error = 0; + cp->last_pos = 0; + cp->nmem = nmem_create(); + return cp; +} + +void cql_parser_destroy(CQL_parser cp) +{ + cql_node_destroy(cp->top); + nmem_destroy(cp->nmem); + xfree (cp); +} + +struct cql_node *cql_parser_result(CQL_parser cp) +{ + return cp->top; +} diff --git a/dependencies/yaz-2.1.28/src/cqlstdio.c b/dependencies/yaz-2.1.28/src/cqlstdio.c new file mode 100644 index 0000000..c160291 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cqlstdio.c @@ -0,0 +1,49 @@ +/* $Id: cqlstdio.c,v 1.4 2005/06/25 15:46:03 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE for details. +*/ + +/** + * \file cqlstdio.c + * \brief Implements query stream reading using FILE handle. + */ + +#include + +int getbyte_stream(void *client_data) +{ + FILE *f = (FILE*) client_data; + + int c = fgetc(f); + if (c == EOF) + return 0; + return c; +} + +void ungetbyte_stream (int c, void *client_data) +{ + FILE *f = (FILE*) client_data; + + if (c == 0) + c = EOF; + ungetc(c, f); +} + +int cql_parser_stdio(CQL_parser cp, FILE *f) +{ + return cql_parser_stream(cp, getbyte_stream, ungetbyte_stream, f); +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cqlstrer.c b/dependencies/yaz-2.1.28/src/cqlstrer.c new file mode 100644 index 0000000..b1519c4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cqlstrer.c @@ -0,0 +1,74 @@ +/* $Id: cqlstrer.c,v 1.6 2006/03/10 10:43:32 mike Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE details. +*/ + +/** + * \file cqlstrer.c + * \brief Implements CQL error code map to description string. + */ + +#include + +/* + * The error-messages associated with these codes are taken from + * the SRW diagnostic specifications at + * http://www.loc.gov/standards/sru/diagnostics-list.html + */ +const char *cql_strerror(int code) { + static char buf[80]; + switch (code) { + case 10: return "Illegal query"; + case 11: return "Unsupported query type (XCQL vs CQL)"; + case 12: return "Too many characters in query"; + case 13: return "Unbalanced or illegal use of parentheses"; + case 14: return "Unbalanced or illegal use of quotes"; + case 15: return "Illegal or unsupported context set"; + case 16: return "Illegal or unsupported index"; + case 17: return "Illegal or unsupported combination of index and context set"; + case 18: return "Illegal or unsupported combination of indexes"; + case 19: return "Illegal or unsupported relation"; + case 20: return "Illegal or unsupported relation modifier"; + case 21: return "Illegal or unsupported combination of relation modifers"; + case 22: return "Illegal or unsupported combination of relation and index"; + case 23: return "Too many characters in term"; + case 24: return "Illegal combination of relation and term"; + case 25: return "Special characters not quoted in term"; + case 26: return "Non special character escaped in term"; + case 27: return "Empty term unsupported"; + case 28: return "Masking character not supported"; + case 29: return "Masked words too short"; + case 30: return "Too many masking characters in term"; + case 31: return "Anchoring character not supported"; + case 32: return "Anchoring character in illegal or unsupported position"; + case 33: return "Combination of proximity/adjacency and masking characters not supported"; + case 34: return "Combination of proximity/adjacency and anchoring characters not supported"; + case 35: return "Terms only exclusion (stop) words"; + case 36: return "Term in invalid format for index or relation"; + case 37: return "Illegal or unsupported boolean operator"; + case 38: return "Too many boolean operators in query"; + case 39: return "Proximity not supported"; + case 40: return "Illegal or unsupported proximity relation"; + case 41: return "Illegal or unsupported proximity distance"; + case 42: return "Illegal or unsupported proximity unit"; + case 43: return "Illegal or unsupported proximity ordering"; + case 44: return "Illegal or unsupported combination of proximity modifiers"; + case 45: return "Context set name (prefix) assigned to multiple identifiers"; + default: break; + } + + sprintf(buf, "Unknown CQL error #%d", code); + return buf; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cqlstring.c b/dependencies/yaz-2.1.28/src/cqlstring.c new file mode 100644 index 0000000..2535f94 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cqlstring.c @@ -0,0 +1,54 @@ +/* $Id: cqlstring.c,v 1.5 2005/06/25 15:46:03 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE for details. +*/ + +/** + * \file cqlstring.c + * \brief Implements query stream reader that reads from a C string. + */ + +#include + +struct cql_buf_info { + const char *str; + int off; +}; + +static int getbuf(void *vp) +{ + struct cql_buf_info *bi = (struct cql_buf_info *) vp; + if (bi->str[bi->off] == 0) + return 0; + return bi->str[bi->off++]; +} + +static void ungetbuf(int b, void *vp) +{ + struct cql_buf_info *bi = (struct cql_buf_info *) vp; + if (b) + (bi->off--); +} + +int cql_parser_string(CQL_parser cp, const char *str) +{ + struct cql_buf_info b; + + b.str = str; + b.off = 0; + + return cql_parser_stream(cp, getbuf, ungetbuf, &b); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cqltransform.c b/dependencies/yaz-2.1.28/src/cqltransform.c new file mode 100644 index 0000000..0f51ae0 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cqltransform.c @@ -0,0 +1,643 @@ +/* $Id: cqltransform.c,v 1.23 2006/07/05 14:50:16 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE. +*/ + +/** + * \file cqltransform.c + * \brief Implements CQL transform (CQL to RPN conversion). + * + * Evaluation order of rules: + * + * always + * relation + * structure + * position + * truncation + * index + * relationModifier + */ + +#include +#include +#include +#include +#include +#include + +struct cql_prop_entry { + char *pattern; + char *value; + struct cql_prop_entry *next; +}; + +struct cql_transform_t_ { + struct cql_prop_entry *entry; + int error; + char *addinfo; +}; + +cql_transform_t cql_transform_open_FILE(FILE *f) +{ + char line[1024]; + cql_transform_t ct = (cql_transform_t) xmalloc (sizeof(*ct)); + struct cql_prop_entry **pp = &ct->entry; + + ct->error = 0; + ct->addinfo = 0; + while (fgets(line, sizeof(line)-1, f)) + { + const char *cp_value_start; + const char *cp_value_end; + const char *cp_pattern_end; + const char *cp = line; + while (*cp && !strchr(" \t=\r\n#", *cp)) + cp++; + cp_pattern_end = cp; + if (cp == line) + continue; + while (*cp && strchr(" \t\r\n", *cp)) + cp++; + if (*cp != '=') + continue; + cp++; + while (*cp && strchr(" \t\r\n", *cp)) + cp++; + cp_value_start = cp; + if (!(cp_value_end = strchr(cp, '#'))) + cp_value_end = strlen(line) + line; + + if (cp_value_end != cp_value_start && + strchr(" \t\r\n", cp_value_end[-1])) + cp_value_end--; + *pp = (struct cql_prop_entry *) xmalloc (sizeof(**pp)); + (*pp)->pattern = (char *) xmalloc (cp_pattern_end - line + 1); + memcpy ((*pp)->pattern, line, cp_pattern_end - line); + (*pp)->pattern[cp_pattern_end-line] = 0; + + (*pp)->value = (char *) xmalloc (cp_value_end - cp_value_start + 1); + if (cp_value_start != cp_value_end) + memcpy ((*pp)->value, cp_value_start, cp_value_end-cp_value_start); + (*pp)->value[cp_value_end - cp_value_start] = 0; + pp = &(*pp)->next; + } + *pp = 0; + return ct; +} + +void cql_transform_close(cql_transform_t ct) +{ + struct cql_prop_entry *pe; + if (!ct) + return; + pe = ct->entry; + while (pe) + { + struct cql_prop_entry *pe_next = pe->next; + xfree (pe->pattern); + xfree (pe->value); + xfree (pe); + pe = pe_next; + } + if (ct->addinfo) + xfree (ct->addinfo); + xfree (ct); +} + +cql_transform_t cql_transform_open_fname(const char *fname) +{ + cql_transform_t ct; + FILE *f = fopen(fname, "r"); + if (!f) + return 0; + ct = cql_transform_open_FILE(f); + fclose(f); + return ct; +} + +static const char *cql_lookup_property(cql_transform_t ct, + const char *pat1, const char *pat2, + const char *pat3) +{ + char pattern[120]; + struct cql_prop_entry *e; + + if (pat1 && pat2 && pat3) + sprintf (pattern, "%.39s.%.39s.%.39s", pat1, pat2, pat3); + else if (pat1 && pat2) + sprintf (pattern, "%.39s.%.39s", pat1, pat2); + else if (pat1 && pat3) + sprintf (pattern, "%.39s.%.39s", pat1, pat3); + else if (pat1) + sprintf (pattern, "%.39s", pat1); + else + return 0; + + for (e = ct->entry; e; e = e->next) + { + if (!cql_strcmp(e->pattern, pattern)) + return e->value; + } + return 0; +} + +int cql_pr_attr_uri(cql_transform_t ct, const char *category, + const char *uri, const char *val, const char *default_val, + void (*pr)(const char *buf, void *client_data), + void *client_data, + int errcode) +{ + const char *res = 0; + const char *eval = val ? val : default_val; + const char *prefix = 0; + + if (uri) + { + struct cql_prop_entry *e; + + for (e = ct->entry; e; e = e->next) + if (!memcmp(e->pattern, "set.", 4) && e->value && + !strcmp(e->value, uri)) + { + prefix = e->pattern+4; + break; + } + /* must have a prefix now - if not it's an error */ + } + + if (!uri || prefix) + { + if (!res) + res = cql_lookup_property(ct, category, prefix, eval); + if (!res) + res = cql_lookup_property(ct, category, prefix, "*"); + } + if (res) + { + char buf[64]; + + const char *cp0 = res, *cp1; + while ((cp1 = strchr(cp0, '='))) + { + while (*cp1 && *cp1 != ' ') + cp1++; + if (cp1 - cp0 >= sizeof(buf)) + break; + memcpy (buf, cp0, cp1 - cp0); + buf[cp1-cp0] = 0; + (*pr)("@attr ", client_data); + (*pr)(buf, client_data); + (*pr)(" ", client_data); + cp0 = cp1; + while (*cp0 == ' ') + cp0++; + } + return 1; + } + /* error ... */ + if (errcode && !ct->error) + { + ct->error = errcode; + if (val) + ct->addinfo = xstrdup(val); + else + ct->addinfo = 0; + } + return 0; +} + +int cql_pr_attr(cql_transform_t ct, const char *category, + const char *val, const char *default_val, + void (*pr)(const char *buf, void *client_data), + void *client_data, + int errcode) +{ + return cql_pr_attr_uri(ct, category, 0 /* uri */, + val, default_val, pr, client_data, errcode); +} + + +static void cql_pr_int (int val, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + char buf[21]; /* enough characters to 2^64 */ + sprintf(buf, "%d", val); + (*pr)(buf, client_data); + (*pr)(" ", client_data); +} + + +static int cql_pr_prox(cql_transform_t ct, struct cql_node *mods, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + int exclusion = 0; + int distance; /* to be filled in later depending on unit */ + int distance_defined = 0; + int ordered = 0; + int proxrel = 2; /* less than or equal */ + int unit = 2; /* word */ + + while (mods != 0) { + char *name = mods->u.st.index; + char *term = mods->u.st.term; + char *relation = mods->u.st.relation; + + if (!strcmp(name, "distance")) { + distance = strtol(term, (char**) 0, 0); + distance_defined = 1; + if (!strcmp(relation, "=")) { + proxrel = 3; + } else if (!strcmp(relation, ">")) { + proxrel = 5; + } else if (!strcmp(relation, "<")) { + proxrel = 1; + } else if (!strcmp(relation, ">=")) { + proxrel = 4; + } else if (!strcmp(relation, "<=")) { + proxrel = 2; + } else if (!strcmp(relation, "<>")) { + proxrel = 6; + } else { + ct->error = 40; /* Unsupported proximity relation */ + ct->addinfo = xstrdup(relation); + return 0; + } + } else if (!strcmp(name, "ordered")) { + ordered = 1; + } else if (!strcmp(name, "unordered")) { + ordered = 0; + } else if (!strcmp(name, "unit")) { + if (!strcmp(term, "word")) { + unit = 2; + } else if (!strcmp(term, "sentence")) { + unit = 3; + } else if (!strcmp(term, "paragraph")) { + unit = 4; + } else if (!strcmp(term, "element")) { + unit = 8; + } else { + ct->error = 42; /* Unsupported proximity unit */ + ct->addinfo = xstrdup(term); + return 0; + } + } else { + ct->error = 46; /* Unsupported boolean modifier */ + ct->addinfo = xstrdup(name); + return 0; + } + + mods = mods->u.st.modifiers; + } + + if (!distance_defined) + distance = (unit == 2) ? 1 : 0; + + cql_pr_int(exclusion, pr, client_data); + cql_pr_int(distance, pr, client_data); + cql_pr_int(ordered, pr, client_data); + cql_pr_int(proxrel, pr, client_data); + (*pr)("k ", client_data); + cql_pr_int(unit, pr, client_data); + + return 1; +} + +/* Returns location of first wildcard character in the `length' + * characters starting at `term', or a null pointer of there are + * none -- like memchr(). + */ +static const char *wcchar(const char *term, int length) +{ + const char *best = 0; + const char *current; + char *whichp; + + for (whichp = "*?"; *whichp != '\0'; whichp++) { + current = (const char *) memchr(term, *whichp, length); + if (current != 0 && (best == 0 || current < best)) + best = current; + } + + return best; +} + + +void emit_term(cql_transform_t ct, + struct cql_node *cn, + const char *term, int length, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + int i; + const char *ns = cn->u.st.index_uri; + + assert(cn->which == CQL_NODE_ST); + + if (length > 0) + { + if (length > 1 && term[0] == '^' && term[length-1] == '^') + { + cql_pr_attr(ct, "position", "firstAndLast", 0, + pr, client_data, 32); + term++; + length -= 2; + } + else if (term[0] == '^') + { + cql_pr_attr(ct, "position", "first", 0, + pr, client_data, 32); + term++; + length--; + } + else if (term[length-1] == '^') + { + cql_pr_attr(ct, "position", "last", 0, + pr, client_data, 32); + length--; + } + else + { + cql_pr_attr(ct, "position", "any", 0, + pr, client_data, 32); + } + } + + if (length > 0) + { + /* Check for well-known globbing patterns that represent + * simple truncation attributes as expected by, for example, + * Bath-compliant server. If we find such a pattern but + * there's no mapping for it, that's fine: we just use a + * general pattern-matching attribute. + */ + if (length > 1 && term[0] == '*' && term[length-1] == '*' && + wcchar(term+1, length-2) == 0 && + cql_pr_attr(ct, "truncation", "both", 0, + pr, client_data, 0)) { + term++; + length -= 2; + } + else if (term[0] == '*' && + wcchar(term+1, length-1) == 0 && + cql_pr_attr(ct, "truncation", "left", 0, + pr, client_data, 0)) { + term++; + length--; + } + else if (term[length-1] == '*' && + wcchar(term, length-1) == 0 && + cql_pr_attr(ct, "truncation", "right", 0, + pr, client_data, 0)) { + length--; + } + else if (wcchar(term, length)) + { + /* We have one or more wildcard characters, but not in a + * way that can be dealt with using only the standard + * left-, right- and both-truncation attributes. We need + * to translate the pattern into a Z39.58-type pattern, + * which has been supported in BIB-1 since 1996. If + * there's no configuration element for "truncation.z3958" + * we indicate this as error 28 "Masking character not + * supported". + */ + int i; + char *mem; + cql_pr_attr(ct, "truncation", "z3958", 0, + pr, client_data, 28); + mem = (char *) xmalloc(length+1); + for (i = 0; i < length; i++) { + if (term[i] == '*') mem[i] = '?'; + else if (term[i] == '?') mem[i] = '#'; + else mem[i] = term[i]; + } + mem[length] = '\0'; + term = mem; + } + else { + /* No masking characters. Use "truncation.none" if given. */ + cql_pr_attr(ct, "truncation", "none", 0, + pr, client_data, 0); + } + } + if (ns) { + cql_pr_attr_uri(ct, "index", ns, + cn->u.st.index, "serverChoice", + pr, client_data, 16); + } + if (cn->u.st.modifiers) + { + struct cql_node *mod = cn->u.st.modifiers; + for (; mod; mod = mod->u.st.modifiers) + { + cql_pr_attr(ct, "relationModifier", mod->u.st.index, 0, + pr, client_data, 20); + } + } + + (*pr)("\"", client_data); + for (i = 0; iu.st.term; + const char *cp1; + const char *last_term = 0; + int last_length = 0; + while(cp0) + { + while (*cp0 == ' ') + cp0++; + cp1 = strchr(cp0, ' '); + if (last_term) + { + (*pr)("@", client_data); + (*pr)(op, client_data); + (*pr)(" ", client_data); + emit_term(ct, cn, last_term, last_length, pr, client_data); + } + last_term = cp0; + if (cp1) + last_length = cp1 - cp0; + else + last_length = strlen(cp0); + cp0 = cp1; + } + if (last_term) + emit_term(ct, cn, last_term, last_length, pr, client_data); +} + +void cql_transform_r(cql_transform_t ct, + struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + const char *ns; + struct cql_node *mods; + + if (!cn) + return; + switch (cn->which) + { + case CQL_NODE_ST: + ns = cn->u.st.index_uri; + if (ns) + { + if (!strcmp(ns, cql_uri()) + && cn->u.st.index && !cql_strcmp(cn->u.st.index, "resultSet")) + { + (*pr)("@set \"", client_data); + (*pr)(cn->u.st.term, client_data); + (*pr)("\" ", client_data); + return ; + } + } + else + { + if (!ct->error) + { + ct->error = 15; + ct->addinfo = 0; + } + } + cql_pr_attr(ct, "always", 0, 0, pr, client_data, 0); + if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "=")) + cql_pr_attr(ct, "relation", "eq", "scr", + pr, client_data, 19); + else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "<=")) + cql_pr_attr(ct, "relation", "le", "scr", + pr, client_data, 19); + else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, ">=")) + cql_pr_attr(ct, "relation", "ge", "scr", + pr, client_data, 19); + else + cql_pr_attr(ct, "relation", cn->u.st.relation, "eq", + pr, client_data, 19); + cql_pr_attr(ct, "structure", cn->u.st.relation, 0, + pr, client_data, 24); + if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "all")) + { + emit_wordlist(ct, cn, pr, client_data, "and"); + } + else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "any")) + { + emit_wordlist(ct, cn, pr, client_data, "or"); + } + else + { + emit_term(ct, cn, cn->u.st.term, strlen(cn->u.st.term), + pr, client_data); + } + break; + case CQL_NODE_BOOL: + (*pr)("@", client_data); + (*pr)(cn->u.boolean.value, client_data); + (*pr)(" ", client_data); + mods = cn->u.boolean.modifiers; + if (!strcmp(cn->u.boolean.value, "prox")) { + if (!cql_pr_prox(ct, mods, pr, client_data)) + return; + } else if (mods) { + /* Boolean modifiers other than on proximity not supported */ + ct->error = 46; /* SRW diag: "Unsupported boolean modifier" */ + ct->addinfo = xstrdup(mods->u.st.index); + return; + } + + cql_transform_r(ct, cn->u.boolean.left, pr, client_data); + cql_transform_r(ct, cn->u.boolean.right, pr, client_data); + break; + + default: + fprintf(stderr, "Fatal: impossible CQL node-type %d\n", cn->which); + abort(); + } +} + +int cql_transform(cql_transform_t ct, + struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + struct cql_prop_entry *e; + NMEM nmem = nmem_create(); + + ct->error = 0; + if (ct->addinfo) + xfree (ct->addinfo); + ct->addinfo = 0; + + for (e = ct->entry; e ; e = e->next) + { + if (!cql_strncmp(e->pattern, "set.", 4)) + cql_apply_prefix(nmem, cn, e->pattern+4, e->value); + else if (!cql_strcmp(e->pattern, "set")) + cql_apply_prefix(nmem, cn, 0, e->value); + } + cql_transform_r (ct, cn, pr, client_data); + nmem_destroy(nmem); + return ct->error; +} + + +int cql_transform_FILE(cql_transform_t ct, struct cql_node *cn, FILE *f) +{ + return cql_transform(ct, cn, cql_fputs, f); +} + +int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, + char *out, int max) +{ + struct cql_buf_write_info info; + int r; + + info.off = 0; + info.max = max; + info.buf = out; + r = cql_transform(ct, cn, cql_buf_write_handler, &info); + if (info.off < 0) { + /* Attempt to write past end of buffer. For some reason, this + SRW diagnostic is deprecated, but it's so perfect for our + purposes that it would be stupid not to use it. */ + char numbuf[30]; + ct->error = YAZ_SRW_TOO_MANY_CHARS_IN_QUERY; + sprintf(numbuf, "%ld", (long) info.max); + ct->addinfo = xstrdup(numbuf); + return -1; + } + if (info.off >= 0) + info.buf[info.off] = '\0'; + return r; +} + +int cql_transform_error(cql_transform_t ct, const char **addinfo) +{ + *addinfo = ct->addinfo; + return ct->error; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/cqlutil.c b/dependencies/yaz-2.1.28/src/cqlutil.c new file mode 100644 index 0000000..b20615f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/cqlutil.c @@ -0,0 +1,193 @@ +/* $Id: cqlutil.c,v 1.9 2005/06/27 22:03:59 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE for details. +*/ + +/** + * \file cqlutil.c + * \brief Implements CQL tree node utilities. + */ + +#include +#include + +#include + +void cql_fputs(const char *buf, void *client_data) +{ + FILE *f = (FILE *) client_data; + fputs(buf, f); +} + +struct cql_node *cql_node_dup (NMEM nmem, struct cql_node *cp) +{ + struct cql_node *cn = 0; + + if (!cp) + return 0; + switch (cp->which) + { + case CQL_NODE_ST: + cn = cql_node_mk_sc(nmem, cp->u.st.index, + cp->u.st.relation, + cp->u.st.term); + cn->u.st.modifiers = cql_node_dup(nmem, cp->u.st.modifiers); + cn->u.st.index_uri = cp->u.st.index_uri ? + nmem_strdup(nmem, cp->u.st.index_uri) : 0; + cn->u.st.relation_uri = cp->u.st.relation_uri ? + nmem_strdup(nmem, cp->u.st.relation_uri) : 0; + break; + case CQL_NODE_BOOL: + cn = cql_node_mk_boolean(nmem, cp->u.boolean.value); + cn->u.boolean.left = cql_node_dup(nmem, cp->u.boolean.left); + cn->u.boolean.right = cql_node_dup(nmem, cp->u.boolean.right); + } + return cn; +} + +struct cql_node *cql_node_mk_sc(NMEM nmem, + const char *index, + const char *relation, + const char *term) +{ + struct cql_node *p = (struct cql_node *) nmem_malloc(nmem, sizeof(*p)); + p->which = CQL_NODE_ST; + p->u.st.index = 0; + if (index) + p->u.st.index = nmem_strdup(nmem, index); + p->u.st.index_uri = 0; + p->u.st.term = 0; + if (term) + p->u.st.term = nmem_strdup(nmem, term); + p->u.st.relation = 0; + if (relation) + p->u.st.relation = nmem_strdup(nmem, relation); + p->u.st.relation_uri = 0; + p->u.st.modifiers = 0; + return p; +} + +struct cql_node *cql_node_mk_boolean(NMEM nmem, const char *op) +{ + struct cql_node *p = (struct cql_node *) nmem_malloc(nmem, sizeof(*p)); + p->which = CQL_NODE_BOOL; + p->u.boolean.value = 0; + if (op) + p->u.boolean.value = nmem_strdup(nmem, op); + p->u.boolean.left = 0; + p->u.boolean.right = 0; + p->u.boolean.modifiers = 0; + return p; +} + +const char *cql_uri() +{ + return "info:srw/cql-context-set/1/cql-v1.1"; +} + +struct cql_node *cql_apply_prefix(NMEM nmem, + struct cql_node *n, const char *prefix, + const char *uri) +{ + if (n->which == CQL_NODE_ST) + { + if (!n->u.st.index_uri && n->u.st.index) + { /* not yet resolved.. */ + const char *cp = strchr(n->u.st.index, '.'); + if (prefix && cp && + strlen(prefix) == (size_t) (cp - n->u.st.index) && + !cql_strncmp(n->u.st.index, prefix, strlen(prefix))) + { + char *nval = nmem_strdup(nmem, cp+1); + n->u.st.index_uri = nmem_strdup(nmem, uri); + n->u.st.index = nval; + } + else if (!prefix && !cp) + { + n->u.st.index_uri = nmem_strdup(nmem, uri); + } + } + if (!n->u.st.relation_uri && n->u.st.relation) + { + const char *cp = strchr(n->u.st.relation, '.'); + if (prefix && cp && + strlen(prefix) == (size_t)(cp - n->u.st.relation) && + !cql_strncmp(n->u.st.relation, prefix, strlen(prefix))) + { + char *nval = nmem_strdup(nmem, cp+1); + n->u.st.relation_uri = nmem_strdup(nmem, uri); + n->u.st.relation = nval; + } + } + } + else if (n->which == CQL_NODE_BOOL) + { + cql_apply_prefix(nmem, n->u.boolean.left, prefix, uri); + cql_apply_prefix(nmem, n->u.boolean.right, prefix, uri); + } + return n; +} + +void cql_node_destroy(struct cql_node *cn) +{ + if (!cn) + return; + switch (cn->which) + { + case CQL_NODE_ST: + cql_node_destroy(cn->u.st.modifiers); + break; + case CQL_NODE_BOOL: + cql_node_destroy(cn->u.boolean.left); + cql_node_destroy(cn->u.boolean.right); + cql_node_destroy(cn->u.boolean.modifiers); + } +} + +int cql_strcmp(const char *s1, const char *s2) +{ + while (*s1 && *s2) + { + int c1 = *s1++; + int c2 = *s2++; + if (c1 >= 'A' && c1 <= 'Z') + c1 = c1 + ('a' - 'A'); + if (c2 >= 'A' && c2 <= 'Z') + c2 = c2 + ('a' - 'A'); + if (c1 != c2) + return c1 - c2; + } + return *s1 - *s2; +} + +int cql_strncmp(const char *s1, const char *s2, size_t n) +{ + while (*s1 && *s2 && n) + { + int c1 = *s1++; + int c2 = *s2++; + if (c1 >= 'A' && c1 <= 'Z') + c1 = c1 + ('a' - 'A'); + if (c2 >= 'A' && c2 <= 'Z') + c2 = c2 + ('a' - 'A'); + if (c1 != c2) + return c1 - c2; + --n; + } + if (!n) + return 0; + return *s1 - *s2; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/csvtobib1.tcl b/dependencies/yaz-2.1.28/src/csvtobib1.tcl new file mode 100755 index 0000000..e4e180e --- /dev/null +++ b/dependencies/yaz-2.1.28/src/csvtobib1.tcl @@ -0,0 +1,18 @@ +#!/bin/sh +# the next line restats using tclsh \ +exec tclsh "$0" "$@" +# +# This file is part of the YAZ toolkit +# Copyright (c) Index Data 1996-2006 +# See the file LICENSE for details. +# +# $Id: csvtobib1.tcl,v 1.3 2006/05/23 20:43:37 adam Exp $ +# +# Converts a CSV file with Bib-1 diagnostics to C+H file for easy +# maintenance +# +# $Id: csvtobib1.tcl,v 1.3 2006/05/23 20:43:37 adam Exp $ + +source [lindex $argv 0]/csvtodiag.tcl + +csvtodiag [list [lindex $argv 0]/bib1.csv diagbib1.c [lindex $argv 0]/../include/yaz/diagbib1.h] bib1 diagbib1_str diff --git a/dependencies/yaz-2.1.28/src/csvtodiag.tcl b/dependencies/yaz-2.1.28/src/csvtodiag.tcl new file mode 100644 index 0000000..0d4297b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/csvtodiag.tcl @@ -0,0 +1,93 @@ +# This file is part of the YAZ toolkit +# Copyright (c) Index Data 1996-2006 +# See the file LICENSE for details. +# +# $Id: csvtodiag.tcl,v 1.3 2006/04/20 20:50:51 adam Exp $ +# +# Converts a CSV file with diagnostics to C+H file for easy +# maintenance + +proc csvtodiag {ifiles name alias} { + set uname [string toupper $name] + set funcproto "const char *yaz_diag_${name}_str(int code)" + if {[string length $alias]} { + set funcalias "const char *${alias}(int code)" + } + set csv [open [lindex $ifiles 0] r] + set cfile [open [lindex $ifiles 1] w] + set hfile [open [lindex $ifiles 2] w] + set lineno 0 + puts $cfile "/** \\file [lindex $ifiles 1]" + puts $hfile "/** \\file [lindex $ifiles 2]" + set preamble " \\brief Diagnostics: Generated by csvtodiag.tcl from [lindex $ifiles 0] */" + puts $cfile $preamble + puts $cfile " +#include \"diag-entry.h\" +\#include \"[lindex $ifiles 2]\" +struct yaz_diag_entry yaz_diag_${name}_tab\[\] = \{ +" + puts $hfile $preamble + puts $hfile " +\#include + +\#ifndef YAZ_DIAG_${name}_H +\#define YAZ_DIAG_${name}_H +YAZ_BEGIN_CDECL +YAZ_EXPORT $funcproto;" + + if {[info exists funcalias]} { + puts $hfile "YAZ_EXPORT $funcalias;" +} + while {1} { + incr lineno + set cnt [gets $csv line] + if {$cnt < 0} { + break + } + if {[regexp {([0-9]+)[^\"]*"([^\"]*)"} $line s code msg]} { + puts $cfile "\{$code, \"$msg\"\}," + + set m [string toupper $msg] + regsub -all {DUPLICATE} $m {DUP} m + regsub -all {SECURITY CHALLENGE} $m {SEC_CHAL} m + regsub -all {COULD NOT} $m {COULDNT} m + regsub -all {COULD NOT} $m {COULDNT} m + regsub -all {NOT SUPPORTED} $m {UNSUPP} m + regsub -all {UNSUPPORTED} $m {UNSUPP} m + regsub -all {COMBINATION} $m {COMBI} m + regsub -all {PROXIMITY} $m {PROX} m + regsub -all {CHARACTERS} $m {CHARS} m + regsub -all {CHARACTER} $m {CHAR} m + regsub -all {[-/,:;."' \{\}()]} $m _ m + set m [string map {___ _ __ _} $m] + if {[string length $m] > 55} { + set m [string range $m 0 55] + set p [string last _ $m] + if {$p > 30} { + set m [string range $m 0 $p] + } + } + puts $hfile "\#define YAZ_${uname}_${m} $code" + } + } + puts $cfile "\{0, 0\}\}\;" + puts $cfile $funcproto + puts $cfile "\{" + puts $cfile " return yaz_diag_to_str(yaz_diag_${name}_tab, code);" + puts $cfile "\}" + + if {[info exists funcalias]} { + puts $cfile $funcalias + puts $cfile "\{" + puts $cfile " return yaz_diag_to_str(yaz_diag_${name}_tab, code);" + puts $cfile "\}" + } + puts $hfile " +YAZ_END_CDECL +\#endif +" + close $csv + close $cfile + close $hfile +} + diff --git a/dependencies/yaz-2.1.28/src/csvtosrw.tcl b/dependencies/yaz-2.1.28/src/csvtosrw.tcl new file mode 100755 index 0000000..272a7c7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/csvtosrw.tcl @@ -0,0 +1,18 @@ +#!/bin/sh +# the next line restats using tclsh \ +exec tclsh "$0" "$@" +# +# This file is part of the YAZ toolkit +# Copyright (c) Index Data 1996-2006 +# See the file LICENSE for details. +# +# $Id: csvtosrw.tcl,v 1.3 2006/05/23 20:43:37 adam Exp $ +# +# Converts a CSV file with SRW diagnostics to C+H file for easy +# maintenance +# +# $Id: csvtosrw.tcl,v 1.3 2006/05/23 20:43:37 adam Exp $ + +source [lindex $argv 0]/csvtodiag.tcl + +csvtodiag [list [lindex $argv 0]/srw.csv diagsrw.c [lindex $argv 0]/../include/yaz/diagsrw.h] srw {} diff --git a/dependencies/yaz-2.1.28/src/datetime.asn b/dependencies/yaz-2.1.28/src/datetime.asn new file mode 100644 index 0000000..cab9eb0 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/datetime.asn @@ -0,0 +1,81 @@ +UserInfoFormat-dateTime +{Z39-50-userInfoFormat dateTime (6)} DEFINITIONS ::= +BEGIN +IMPORTS IntUnit FROM Z39-50-APDU-1995; + +DateTime ::= SEQUENCE{ + date [1] Z3950Date OPTIONAL, + time [2] Z3950Time OPTIONAL + -- one or the other, or both + } + +Z3950Date ::= SEQUENCE{ + year [1] IMPLICIT INTEGER, + -- For "positive" years, i.e. 1 AD or later, supply + -- the absolute year, e.g. If the year is 1995, supply + -- the integer 1995; the value 95 would indicate the + -- year 0095. + -- For "negative" years, e.g. 1 BC or earlier, -1 + -- represents 1 BC, -2 represents 2 BC, etc. Zero is + -- invalid, because there was no year zero. + partOfYear [2] CHOICE{ -- may be omitted if only year is significant + monthAndDay [1] IMPLICIT SEQUENCE{ + month [2] IMPLICIT INTEGER, + -- value 1-12 + day [3] IMPLICIT INTEGER OPTIONAL + -- may be omitted if only year and month + -- are significant. Value 1-31. + }, + julianDay [2] IMPLICIT INTEGER, -- Value 1 - 366. + weekNumber [3] IMPLICIT INTEGER, -- Value 1 - 53. + quarter [4] CHOICE{ + first [1] IMPLICIT NULL, + second [2] IMPLICIT NULL, + third [3] IMPLICIT NULL, + fourth [4] IMPLICIT NULL}, + season [5] CHOICE{ + winter [1] IMPLICIT NULL, + spring [2] IMPLICIT NULL, + summer [3] IMPLICIT NULL, + autumn [4] IMPLICIT NULL} + } OPTIONAL, + flags [3] IMPLICIT SEQUENCE{ + circa [1] IMPLICIT NULL OPTIONAL, + -- if this flag is set then the date is "approximate". + era [2] CHOICE{ + -- If era occurs, partOfYear should not occur. + decade [1] IMPLICIT NULL, + -- year must be multiple of 10. + -- For example, 1900 refers to + -- the decade covering the years + -- 1900 through 1909. + century [2] IMPLICIT NULL, + -- year must be multiple of 100. + millennium [3] IMPLICIT NULL + -- year must be multiple of 1000. + } OPTIONAL + } OPTIONAL + } + + +Z3950Time ::= SEQUENCE{ + hour [1] IMPLICIT INTEGER, + -- Value 0-23. + minute [2] IMPLICIT INTEGER OPTIONAL, + -- value 0-59. May be omitted when hour only is + -- significant (in which case second and + -- partOfSecond must also be omitted). + second [3] IMPLICIT INTEGER OPTIONAL, + -- value 0-59. May be omitted when only hour, or + -- hour and minute, is significant (in which case + -- partOfSecond must also be omitted). + partOfSecond [4] IMPLICIT IntUnit OPTIONAL, + -- Use Unit System = 'si', Unit type = 'time'; + -- Unit = 'second', with appropriate value and + -- scale factor. + zone [5] CHOICE{ + local [1] IMPLICIT NULL, + utc [2] IMPLICIT NULL, + utcOffset [3] IMPLICIT INTEGER -- in minutes + }} +END diff --git a/dependencies/yaz-2.1.28/src/diag-entry.c b/dependencies/yaz-2.1.28/src/diag-entry.c new file mode 100644 index 0000000..9d5399d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/diag-entry.c @@ -0,0 +1,34 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: diag-entry.c,v 1.3 2006/04/19 23:15:39 adam Exp $ + */ + +/** + * \file diag-entry.c + * \brief Diagnostic table lookup + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include "diag-entry.h" + +const char *yaz_diag_to_str(struct yaz_diag_entry *tab, int code) +{ + int i; + for (i=0; tab[i].msg; i++) + if (tab[i].code == code) + return tab[i].msg; + return "Unknown error"; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/diag-entry.h b/dependencies/yaz-2.1.28/src/diag-entry.h new file mode 100644 index 0000000..1902fe7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/diag-entry.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: diag-entry.h,v 1.3 2006/04/19 23:15:39 adam Exp $ + */ + +/** + * \file diag-entry.h + * \brief Diagnostic table lookup header + */ + +struct yaz_diag_entry { + int code; + char *msg; +}; + +const char *yaz_diag_to_str(struct yaz_diag_entry *tab, int code); +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/diagbib1.c b/dependencies/yaz-2.1.28/src/diagbib1.c new file mode 100644 index 0000000..cb05809 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/diagbib1.c @@ -0,0 +1,190 @@ +/** \file diagbib1.c + \brief Diagnostics: Generated by csvtodiag.tcl from ./bib1.csv */ + +#include "diag-entry.h" +#include "./../include/yaz/diagbib1.h" +struct yaz_diag_entry yaz_diag_bib1_tab[] = { + +{1, "Permanent system error"}, +{2, "Temporary system error"}, +{3, "Unsupported search"}, +{4, "Terms only exclusion (stop) words"}, +{5, "Too many argument words"}, +{6, "Too many boolean operators"}, +{7, "Too many truncated words"}, +{8, "Too many incomplete subfields"}, +{9, "Truncated words too short"}, +{10, "Invalid format for record number (search term)"}, +{11, "Too many characters in search statement"}, +{12, "Too many records retrieved"}, +{13, "Present request out of range"}, +{14, "System error in presenting records"}, +{15, "Record no authorized to be sent intersystem"}, +{16, "Record exceeds Preferred-message-size"}, +{17, "Record exceeds Maximum-record-size"}, +{18, "Result set not supported as a search term"}, +{19, "Only single result set as search term supported"}, +{20, "Only ANDing of a single result set as search term supported"}, +{21, "Result set exists and replace indicator off"}, +{22, "Result set naming not supported"}, +{23, "Combination of specified databases not supported"}, +{24, "Element set names not supported"}, +{25, "Specified element set name not valid for specified database"}, +{26, "Only a single element set name supported"}, +{27, "Result set no longer exists - unilaterally deleted by target"}, +{28, "Result set is in use"}, +{29, "One of the specified databases is locked"}, +{30, "Specified result set does not exist"}, +{31, "Resources exhausted - no results available"}, +{32, "Resources exhausted - unpredictable partial results available"}, +{33, "Resources exhausted - valid subset of results available"}, +{100, "Unspecified error"}, +{101, "Access-control failure"}, +{102, "Security challenge required but could not be issued - request terminated"}, +{103, "Security challenge required but could not be issued - record not included"}, +{104, "Security challenge failed - record not included"}, +{105, "Terminated by negative continue response"}, +{106, "No abstract syntaxes agreed to for this record"}, +{107, "Query type not supported"}, +{108, "Malformed query"}, +{109, "Database unavailable"}, +{110, "Operator unsupported"}, +{111, "Too many databases specified"}, +{112, "Too many result sets created"}, +{113, "Unsupported attribute type"}, +{114, "Unsupported Use attribute"}, +{115, "Unsupported value for Use attribute"}, +{116, "Use attribute required but not supplied"}, +{117, "Unsupported Relation attribute"}, +{118, "Unsupported Structure attribute"}, +{119, "Unsupported Position attribute"}, +{120, "Unsupported Truncation attribute"}, +{121, "Unsupported Attribute Set"}, +{122, "Unsupported Completeness attribute"}, +{123, "Unsupported attribute combination"}, +{124, "Unsupported coded value for term"}, +{125, "Malformed search term"}, +{126, "Illegal term value for attribute"}, +{127, "Unparsable format for un-normalized value"}, +{128, "Illegal result set name"}, +{129, "Proximity search of sets not supported"}, +{130, "Illegal result set in proximity search"}, +{131, "Unsupported proximity relation"}, +{132, "Unsupported proximity unit code"}, +{201, "Proximity not supported with this attribute combination"}, +{202, "Unsupported distance for proximity"}, +{203, "Ordered flag not supported for proximity"}, +{205, "Only zero step size supported for Scan"}, +{206, "Specified step size not supported for Scan"}, +{207, "Cannot sort according to sequence"}, +{208, "No result set name supplied on Sort"}, +{209, "Generic sort not supported (database-specific sort only supported)"}, +{210, "Database specific sort not supported"}, +{211, "Too many sort keys"}, +{212, "Duplicate sort keys"}, +{213, "Unsupported missing data action"}, +{214, "Illegal sort relation"}, +{215, "Illegal case value"}, +{216, "Illegal missing data action"}, +{217, "Segmentation: Cannot guarantee records will fit in specified segments"}, +{218, "ES: Package name already in use"}, +{219, "ES: no such package, on modify/delete"}, +{220, "ES: quota exceeded"}, +{221, "ES: extended service type not supported"}, +{222, "ES: permission denied on ES - id not authorized"}, +{223, "ES: permission denied on ES - cannot modify or delete"}, +{224, "ES: immediate execution failed"}, +{225, "ES: immediate execution not supported for this service"}, +{226, "ES: immediate execution not supported for these parameters"}, +{227, "No data available in requested record syntax"}, +{228, "Scan: malformed scan"}, +{229, "Term type not supported"}, +{230, "Sort: too many input results"}, +{231, "Sort: incompatible record formats"}, +{232, "Scan: term list not supported"}, +{233, "Scan: unsupported value of position-in-response"}, +{234, "Too many index terms processed"}, +{235, "Database does not exist"}, +{236, "Access to specified database denied"}, +{237, "Sort: illegal sort"}, +{238, "Record not available in requested syntax"}, +{239, "Record syntax not supported"}, +{240, "Scan: Resources exhausted looking for satisfying terms"}, +{241, "Scan: Beginning or end of term list"}, +{242, "Segmentation: max-segment-size too small to segment record"}, +{243, "Present: additional-ranges parameter not supported"}, +{244, "Present: comp-spec parameter not supported"}, +{245, "Type-1 query: restriction ('resultAttr') operand not supported"}, +{246, "Type-1 query: 'complex' attributeValue not supported"}, +{247, "Type-1 query: 'attributeSet' as part of AttributeElement not supported"}, +{1001, "Malformed APDU"}, +{1002, "ES: EXTERNAL form of Item Order request not supported"}, +{1003, "ES: Result set item form of Item Order request not supported"}, +{1004, "ES: Extended services not supported unless access control is in effect"}, +{1005, "Response records in Search response not supported"}, +{1006, "Response records in Search response not possible for specified database (or database combination)"}, +{1007, "No Explain server. Addinfo: pointers to servers that have a surrogate Explain database for this server"}, +{1008, "ES: missing mandatory parameter for specified function. Addinfo: parameter"}, +{1009, "ES: Item Order, unsupported OID in itemRequest. Addinfo: OID"}, +{1010, "Init/AC: Bad Userid"}, +{1011, "Init/AC: Bad Userid and/or Password"}, +{1012, "Init/AC: No searches remaining (pre-purchased searches exhausted)"}, +{1013, "Init/AC: Incorrect interface type (specified id valid only when used with a particular access method or client)"}, +{1014, "Init/AC: Authentication System error"}, +{1015, "Init/AC: Maximum number of simultaneous sessions for Userid"}, +{1016, "Init/AC: Blocked network address"}, +{1017, "Init/AC: No databases available for specified userId"}, +{1018, "Init/AC: System temporarily out of resources"}, +{1019, "Init/AC: System not available due to maintenance"}, +{1020, "Init/AC: System temporarily unavailable (Addinfo: when it's expected back up)"}, +{1021, "Init/AC: Account has expired"}, +{1022, "Init/AC: Password has expired so a new one must be supplied"}, +{1023, "Init/AC: Password has been changed by an administrator so a new one must be supplied"}, +{1024, "Unsupported Attribute"}, +{1025, "Service not supported for this database"}, +{1026, "Record cannot be opened because it is locked"}, +{1027, "SQL error"}, +{1028, "Record deleted"}, +{1029, "Scan: too many terms requested. Addinfo: max terms supported"}, +{1040, "ES: Invalid function"}, +{1041, "ES: Error in retention time"}, +{1042, "ES: Permissions data not understood"}, +{1043, "ES: Invalid OID for task specific parameters"}, +{1044, "ES: Invalid action"}, +{1045, "ES: Unknown schema"}, +{1046, "ES: Too many records in package"}, +{1047, "ES: Invalid wait action"}, +{1048, "ES: Cannot create task package -- exceeds maximum permissable size"}, +{1049, "ES: Cannot return task package -- exceeds maximum permissable size"}, +{1050, "ES: Extended services request too large"}, +{1051, "Scan: Attribute set id required -- not supplied"}, +{1052, "ES: Cannot process task package record -- exceeds maximum permissible record size for ES"}, +{1053, "ES: Cannot return task package record -- exceeds maximum permissible record size for ES response"}, +{1054, "Init: Required negotiation record not included"}, +{1055, "Init: negotiation option required"}, +{1056, "Attribute not supported for database"}, +{1057, "ES: Unsupported value of task package parameter"}, +{1058, "Duplicate Detection: Cannot dedup on requested record portion"}, +{1059, "Duplicate Detection: Requested detection criterion not supported"}, +{1060, "Duplicate Detection: Requested level of match not supported"}, +{1061, "Duplicate Detection: Requested regular expression not supported"}, +{1062, "Duplicate Detection: Cannot do clustering"}, +{1063, "Duplicate Detection: Retention criterion not supported"}, +{1064, "Duplicate Detection: Requested number (or percentage) of entries "}, +{1065, "Duplicate Detection: Requested sort criterion not supported"}, +{1066, "CompSpec: Unknown schema, or schema not supported."}, +{1067, "Encapsulation: Encapsulated sequence of PDUs not supported"}, +{1068, "Encapsulation: Base operation (and encapsulated PDUs) not executed based on pre-screening analysis"}, +{1069, "No syntaxes available for this request"}, +{1070, "user not authorized to receive record(s) in requested syntax"}, +{1071, "preferredRecordSyntax not supplied"}, +{1072, "Query term includes characters that do not translate into the target character set"}, +{0, 0}}; +const char *yaz_diag_bib1_str(int code) +{ + return yaz_diag_to_str(yaz_diag_bib1_tab, code); +} +const char *diagbib1_str(int code) +{ + return yaz_diag_to_str(yaz_diag_bib1_tab, code); +} diff --git a/dependencies/yaz-2.1.28/src/diagsrw.c b/dependencies/yaz-2.1.28/src/diagsrw.c new file mode 100644 index 0000000..c3e8e68 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/diagsrw.c @@ -0,0 +1,105 @@ +/** \file diagsrw.c + \brief Diagnostics: Generated by csvtodiag.tcl from ./srw.csv */ + +#include "diag-entry.h" +#include "./../include/yaz/diagsrw.h" +struct yaz_diag_entry yaz_diag_srw_tab[] = { + +{1, "Permanent system error"}, +{2, "System temporarily unavailable"}, +{3, "Authentication error"}, +{4, "Unsupported operation"}, +{5, "Unsupported version"}, +{6, "Unsupported parameter value"}, +{7, "Mandatory parameter not supplied"}, +{8, "Unsupported parameter"}, +{10, "Query syntax error"}, +{11, "Unsupported query type"}, +{12, "Too many characters in query"}, +{13, "Invalid or unsupported use of parentheses"}, +{14, "Invalid or unsupported use of quotes"}, +{15, "Unsupported context set"}, +{16, "Unsupported index"}, +{17, "Unsupported combination of index and context set"}, +{18, "Unsupported combination of indexes"}, +{19, "Unsupported relation"}, +{20, "Unsupported relation modifier"}, +{21, "Unsupported combination of relation modifers"}, +{22, "Unsupported combination of relation and index"}, +{23, "Too many characters in term"}, +{24, "Unsupported combination of relation and term"}, +{25, "Special characters not quoted in term"}, +{26, "Non special character escaped in term"}, +{27, "Empty term unsupported"}, +{28, "Masking character not supported"}, +{29, "Masked words too short"}, +{30, "Too many masking characters in term"}, +{31, "Anchoring character not supported"}, +{32, "Anchoring character in unsupported position"}, +{33, "Combination of proximity/adjacency and masking characters not supported"}, +{34, "Combination of proximity/adjacency and anchoring characters not supported"}, +{35, "Terms only exclusion stopwords"}, +{36, "Term in invalid format for index or relation"}, +{37, "Unsupported boolean operator"}, +{38, "Too many boolean operators in query"}, +{39, "Proximity not supported"}, +{40, "Unsupported proximity relation"}, +{41, "Unsupported proximity distance"}, +{42, "Unsupported proximity unit"}, +{43, "Unsupported proximity ordering"}, +{44, "Unsupported combination of proximity modifiers"}, +{45, "Prefix assigned to multiple identifiers"}, +{46, "Unsupported boolean modifier"}, +{47, "Cannot process query; reason unknown"}, +{48, "Query feature unsupported"}, +{49, "Masking character in unsupported position"}, +{50, "Result sets not supported"}, +{51, "Result set does not exist"}, +{52, "Result set temporarily unavailable"}, +{53, "Result sets only supported for retrieval"}, +{54, "Retrieval may only occur from an existing result set"}, +{55, "Combination of result sets with search terms not supported"}, +{56, "Only combination of single result set with search terms supported"}, +{57, "Result set created but no records available"}, +{58, "Result set created with unpredictable partial results available"}, +{59, "Result set created with valid partial results available"}, +{60, "Result set no created: too many records retrieved"}, +{61, "First record position out of range"}, +{62, "Negative number of records requested"}, +{63, "System error in retrieving records"}, +{64, "Record temporarily unavailable"}, +{65, "Record does not exist"}, +{66, "Unknown schema for retrieval"}, +{67, "Record not available in this schema"}, +{68, "Not authorised to send record"}, +{69, "Not authorised to send record in this schema"}, +{70, "Record too large to send"}, +{71, "Unsupported record packing"}, +{72, "XPath retrieval unsupported"}, +{73, "XPath expression contains unsupported feature"}, +{74, "Unable to evaluate XPath expression"}, +{80, "Sort not supported"}, +{81, "Unsupported sort type"}, +{82, "Unsupported sort sequence"}, +{83, "Too many records to sort"}, +{84, "Too many sort keys to sort"}, +{85, "Duplicate sort keys"}, +{86, "Cannot sort: incompatible record formats"}, +{87, "Unsupported schema for sort"}, +{88, "Unsupported path for sort"}, +{89, "Path unsupported for schema"}, +{90, "Unsupported direction value"}, +{91, "Unsupported case value"}, +{92, "Unsupported missing value action"}, +{100, "Explain not supported"}, +{101, "Explain request type not supported (SOAP vs GET)"}, +{102, "Explain record temporarily unavailable"}, +{110, "Stylesheets not supported"}, +{111, "Unsupported stylesheet"}, +{120, "Response position out of range"}, +{121, "Too many terms requested"}, +{0, 0}}; +const char *yaz_diag_srw_str(int code) +{ + return yaz_diag_to_str(yaz_diag_srw_tab, code); +} diff --git a/dependencies/yaz-2.1.28/src/dumpber.c b/dependencies/yaz-2.1.28/src/dumpber.c new file mode 100644 index 0000000..a1d77a1 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/dumpber.c @@ -0,0 +1,137 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: dumpber.c,v 1.4 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file dumpber.c + * \brief Implements BER dumping + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +static int do_dumpBER(FILE *f, const char *buf, int len, int level, int offset) +{ + int res, ll, zclass, tag, cons, lenlen, taglen; + const char *b = buf, *bp = buf; + + if (!len) + return 0; + if (!buf[0] && !buf[1]) + return 0; + if ((res = ber_dectag((unsigned char*)b, &zclass, &tag, &cons, len)) <= 0) + return 0; + if (res > len) + { + fprintf(stderr, "Unexpected end of buffer\n"); + return 0; + } + fprintf(f, "%5d: %*s", offset, level * 4, ""); + if (zclass == ODR_UNIVERSAL) + { + static char *nl[] = + { + "[Univ 0]", "BOOLEAN", "INTEGER", "BIT STRING", "OCTET STRING", + "NULL", "OID", "OBJECT DESCIPTOR", "EXTERNAL", "REAL", + "ENUM", "[UNIV 11]", "[UNIV 12]", "[UNIV 13]", "[UNIV 14]", + "[UNIV 15]", "SEQUENCE", "SET", "NUMERICSTRING", "PRINTABLESTRING", + "[UNIV 20]", "[UNIV 21]", "[UNIV 22]", "[UNIV 23]", "[UNIV 24]", + "GRAPHICSTRING", "VISIBLESTRING", "GENERALSTRING", "[UNIV 28]" + }; + + if (tag >= 0 && tag < 28) + fprintf(f, "%s", nl[tag]); + else + fprintf(f, "[UNIV %d]", tag); + } + else if (zclass == ODR_CONTEXT) + fprintf(f, "[%d]", tag); + else + fprintf(f, "[%d:%d]", zclass, tag); + b += res; + taglen = res; + len -= res; + bp = b; + if ((res = ber_declen((unsigned char*)b, &ll, len)) <= 0) + { + fprintf(f, "\n%*sBad length\n", level*4+5, ""); + return 0; + } + lenlen = res; + b += res; + len -= res; + if (ll >= 0) + fprintf(f, " len=%d", ll); + else + fprintf(f, " len=?"); + fprintf(f, " tl=%d, ll=%d cons=%d\n", taglen, lenlen, cons); + if (!cons) + { + if (ll < 0 || ll > len) + { + fprintf(f, "%*sBad length on primitive type. ll=%d len=%d\n", + level*4+5, "", ll, len); + return 0; + } + return ll + (b - buf); + } + if (ll >= 0) + { + if (ll > len) + { + fprintf(f, "%*sBad length of constructed type ll=%d len=%d.\n", + level*4+5, "", ll, len); + return 0; + } + len = ll; + } + /* constructed - cycle through children */ + while ((ll == -1 && len >= 2) || (ll >= 0 && len)) + { + if (ll == -1 && *b == 0 && *(b + 1) == 0) + break; + if (!(res = do_dumpBER(f, b, len, level + 1, offset + (b - buf)))) + { + fprintf(f, "%*sDump of content element failed.\n", level*4+5, ""); + return 0; + } + b += res; + len -= res; + if (len < 0) + { + fprintf(f, "%*sBad length\n", level*4+5, ""); + return 0; + } + } + if (ll == -1) + { + if (len < 2) + { + fprintf(f, "%*sBuffer too short in indefinite length.\n", + level*4+5, ""); + return 0; + } + return (b - buf) + 2; + } + return b - buf; +} + +int odr_dumpBER(FILE *f, const char *buf, int len) +{ + return do_dumpBER(f, buf, len, 0, 0); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/esadmin.asn b/dependencies/yaz-2.1.28/src/esadmin.asn new file mode 100644 index 0000000..9ec766b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/esadmin.asn @@ -0,0 +1,49 @@ +ESFormat-Admin +{Z39-50-extendedService Index-Data(81) AdminES (1)} DEFINITIONS ::= + -- oid is 1.2.840.10003.9.81.1 +BEGIN +IMPORTS DiagRec, InternationalString, Segment +FROM Z39-50-APDU-1995; +Admin ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] + OriginPartToKeep, + targetPart [2] TargetPart}} + +OriginPartToKeep ::= SEQUENCE{ +action [1] CHOICE{ + reIndex [1] NULL, + truncate [2] NULL, + drop [3] NULL, + create [4] NULL, + import [5] ImportParameters, + refresh [6] NULL, -- Review internal representation of records against source files on disk to + -- see if they have been updated. + commit [7] NULL, + shutdown [8] NULL, + start [9] NULL}, +databaseName [2] IMPLICIT InternationalString OPTIONAL} + +OriginPartNotToKeep ::= CHOICE{ +records [1] Segment, +recordsWillFollow [0] NULL} + +TargetPart ::= SEQUENCE{ + updateStatus [1] IMPLICIT INTEGER{ + success (1), + partial (2), + failure (3)}, + globalDiagnostics [2] IMPLICIT SEQUENCE OF + DiagRec OPTIONAL + } + +-- Auxiliary definitions for Admin + +ImportParameters ::= SEQUENCE{ + recordType [1] IMPLICIT InternationalString +} + +END diff --git a/dependencies/yaz-2.1.28/src/esupdate.asn b/dependencies/yaz-2.1.28/src/esupdate.asn new file mode 100644 index 0000000..e6628a1 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/esupdate.asn @@ -0,0 +1,103 @@ +ESFormat-Update +{Z39-50-extendedService Update (5) revisions (1) revision-1 (1)} DEFINITIONS ::= + -- oid is 1.2.840.10003.9.5.1.1 +BEGIN +IMPORTS DiagRec, InternationalString +FROM Z39-50-APDU-1995; +Update ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] + OriginPartToKeep, + targetPart [2] TargetPart}} + +OriginPartToKeep ::= SEQUENCE{ +action [1] IMPLICIT INTEGER{ + recordInsert (1), + recordReplace (2), + recordDelete (3), + elementUpdate (4), + specialUpdate (5)}, + databaseName [2] IMPLICIT InternationalString, + schema [3] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + elementSetName [4] IMPLICIT InternationalString OPTIONAL, + actionQualifier [5] IMPLICIT EXTERNAL OPTIONAL} + +OriginPartNotToKeep ::= SuppliedRecords + +TargetPart ::= SEQUENCE{ + updateStatus [1] IMPLICIT INTEGER{ + success (1), + partial (2), + failure (3)}, + globalDiagnostics [2] IMPLICIT SEQUENCE OF + DiagRec OPTIONAL, + -- These are non-surrogate + -- diagnosticsrelating to the task, + -- not to individual records. + taskPackageRecords [3] IMPLICIT SEQUENCE OF +TaskPackageRecordStructure + -- There should be a + -- TaskPackageRecordStructure + -- for every record supplied. + -- The target should create + -- such a structure for every + -- record immediately upon + -- creating the task package + -- to include correlation + -- information and status. + -- The record itself would not + -- be included until processing + -- for that record is complete. + } + +-- Auxiliary definitions for Update +SuppliedRecords ::= SEQUENCE OF SEQUENCE{ + recordId [1] CHOICE{ + number [1] IMPLICIT INTEGER, + string [2] IMPLICIT InternationalString, + opaque [3] IMPLICIT OCTET STRING} OPTIONAL, + supplementalId [2] CHOICE{ + timeStamp [1] IMPLICIT GeneralizedTime, + versionNumber [2] IMPLICIT InternationalString, + previousVersion [3] IMPLICIT EXTERNAL} OPTIONAL, + correlationInfo [3] IMPLICIT CorrelationInfo OPTIONAL, + record [4] IMPLICIT EXTERNAL} + +CorrelationInfo ::= SEQUENCE{ + -- origin may supply one or both for any record: + note [1] IMPLICIT InternationalString OPTIONAL, + id [2] IMPLICIT INTEGER OPTIONAL} + +TaskPackageRecordStructure ::= SEQUENCE{ + recordOrSurDiag [1] CHOICE { + record [1] IMPLICIT EXTERNAL, + -- Choose 'record' if + -- recordStatus is 'success', and + -- elementSetName was supplied. + + surrogateDiagnostics [2] IMPLICIT + SEQUENCE OF DiagRec + -- Choose 'SurrogateDiagnostics', if + -- RecordStatus is failure. + } OPTIONAL, + -- The parameter recordOrSurDiag + -- will thus be omitted only if + -- 'elementSetName' was omitted and + -- recordStatus is 'success'; or + --if record status is 'queued' + -- or in 'process'. + correlationInfo [2] IMPLICIT + CorrelationInfo OPTIONAL, + -- This should be included + -- if it was supplied by the origin. + recordStatus [3] IMPLICIT INTEGER{ + success (1), + queued (2), + inProcess (3), + failure (4)}, + supplementalDiagnostics [4] IMPLICIT + SEQUENCE OF DiagRec OPTIONAL} +END diff --git a/dependencies/yaz-2.1.28/src/eventl.c b/dependencies/yaz-2.1.28/src/eventl.c new file mode 100644 index 0000000..e3d3538 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/eventl.c @@ -0,0 +1,224 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: eventl.c,v 1.9 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file eventl.c + * \brief Implements event loop handling for GFS. + * + * This source implements the main event loop for the Generic Frontend + * Server. It uses select(2). + */ + +#include +#include +#include +#include +#include + +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_TIME_H +#include +#endif +#ifdef WIN32 +#include +#endif +#if HAVE_UNISTD_H +#include +#endif +#if HAVE_SYS_SELECT_H +#include +#endif + +#include +#include +#include +#include +#include "eventl.h" +#include "session.h" +#include + +#if YAZ_GNU_THREADS +#include +#define YAZ_EV_SELECT pth_select +#endif + +#ifndef YAZ_EV_SELECT +#define YAZ_EV_SELECT select +#endif + +static int log_level=0; +static int log_level_initialized=0; + +IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int chan_id) +{ + IOCHAN new_iochan; + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("eventl"); + log_level_initialized=1; + } + + if (!(new_iochan = (IOCHAN)xmalloc(sizeof(*new_iochan)))) + return 0; + new_iochan->destroyed = 0; + new_iochan->fd = fd; + new_iochan->flags = flags; + new_iochan->fun = cb; + new_iochan->force_event = 0; + new_iochan->last_event = new_iochan->max_idle = 0; + new_iochan->next = NULL; + new_iochan->chan_id = chan_id; + return new_iochan; +} + +int event_loop(IOCHAN *iochans) +{ + do /* loop as long as there are active associations to process */ + { + IOCHAN p, nextp; + fd_set in, out, except; + int res, max; + static struct timeval to; + time_t now = time(0); + + if (statserv_must_terminate()) + { + for (p = *iochans; p; p = p->next) + p->force_event = EVENT_TIMEOUT; + } + FD_ZERO(&in); + FD_ZERO(&out); + FD_ZERO(&except); + to.tv_sec = 3600; + to.tv_usec = 0; + max = 0; + for (p = *iochans; p; p = p->next) + { + time_t w, ftime; + yaz_log(log_level, "fd=%d flags=%d force_event=%d", + p->fd, p->flags, p->force_event); + if (p->force_event) + to.tv_sec = 0; /* polling select */ + if (p->flags & EVENT_INPUT) + FD_SET(p->fd, &in); + if (p->flags & EVENT_OUTPUT) + FD_SET(p->fd, &out); + if (p->flags & EVENT_EXCEPT) + FD_SET(p->fd, &except); + if (p->fd > max) + max = p->fd; + if (p->max_idle && p->last_event) + { + ftime = p->last_event + p->max_idle; + if (ftime < now) + w = p->max_idle; + else + w = ftime - now; + if (w < to.tv_sec) + to.tv_sec = w; + } + } + yaz_log(log_level, "select start %ld", (long) to.tv_sec); + res = YAZ_EV_SELECT(max + 1, &in, &out, &except, &to); + yaz_log(log_level, "select end"); + if (res < 0) + { + if (yaz_errno() == EINTR) + { + if (statserv_must_terminate()) + { + for (p = *iochans; p; p = p->next) + p->force_event = EVENT_TIMEOUT; + } + continue; + } + else + { + /* Destroy the first member in the chain, and try again */ + association *assoc = (association *)iochan_getdata(*iochans); + COMSTACK conn = assoc->client_link; + + cs_close(conn); + destroy_association(assoc); + iochan_destroy(*iochans); + yaz_log(log_level, "error select, destroying iochan %p", + *iochans); + } + } + now = time(0); + for (p = *iochans; p; p = p->next) + { + int force_event = p->force_event; + + p->force_event = 0; + if (!p->destroyed && (FD_ISSET(p->fd, &in) || + force_event == EVENT_INPUT)) + { + p->last_event = now; + (*p->fun)(p, EVENT_INPUT); + } + if (!p->destroyed && (FD_ISSET(p->fd, &out) || + force_event == EVENT_OUTPUT)) + { + p->last_event = now; + (*p->fun)(p, EVENT_OUTPUT); + } + if (!p->destroyed && (FD_ISSET(p->fd, &except) || + force_event == EVENT_EXCEPT)) + { + p->last_event = now; + (*p->fun)(p, EVENT_EXCEPT); + } + if (!p->destroyed && ((p->max_idle && now - p->last_event >= + p->max_idle) || force_event == EVENT_TIMEOUT)) + { + p->last_event = now; + (*p->fun)(p, EVENT_TIMEOUT); + } + } + for (p = *iochans; p; p = nextp) + { + nextp = p->next; + + if (p->destroyed) + { + IOCHAN tmp = p, pr; + + /* We need to inform the threadlist that this channel has been destroyed */ + statserv_remove(p); + + /* Now reset the pointers */ + if (p == *iochans) + *iochans = p->next; + else + { + for (pr = *iochans; pr; pr = pr->next) + if (pr->next == p) + break; + assert(pr); /* grave error if it weren't there */ + pr->next = p->next; + } + if (nextp == p) + nextp = p->next; + xfree(tmp); + } + } + } + while (*iochans); + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/eventl.h b/dependencies/yaz-2.1.28/src/eventl.h new file mode 100644 index 0000000..9068c31 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/eventl.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: eventl.h,v 1.6 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file eventl.h + * \brief Definitions for event loop handling for GFS. + * + * This "private" header defines various functions for the + * main event loop in GFS. + */ + +#ifndef EVENTL_H +#define EVENTL_H + +#include + +struct iochan; + +typedef void (*IOC_CALLBACK)(struct iochan *i, int event); + +typedef struct iochan +{ + int fd; + int flags; +#define EVENT_INPUT 0x01 +#define EVENT_OUTPUT 0x02 +#define EVENT_EXCEPT 0x04 +#define EVENT_TIMEOUT 0x08 +#define EVENT_WORK 0x10 +int force_event; + IOC_CALLBACK fun; + void *data; + int destroyed; + time_t last_event; + time_t max_idle; + + struct iochan *next; + int chan_id; /* listening port (0 if none ) */ +} *IOCHAN; + +#define iochan_destroy(i) (void)((i)->destroyed = 1) +#define iochan_getfd(i) ((i)->fd) +#define iochan_setfd(i, f) ((i)->fd = (f)) +#define iochan_getdata(i) ((i)->data) +#define iochan_setdata(i, d) ((i)->data = d) +#define iochan_getflags(i) ((i)->flags) +#define iochan_setflags(i, d) ((i)->flags = d) +#define iochan_setflag(i, d) ((i)->flags |= d) +#define iochan_clearflag(i, d) ((i)->flags &= ~(d)) +#define iochan_getflag(i, d) ((i)->flags & d ? 1 : 0) +#define iochan_getfun(i) ((i)->fun) +#define iochan_setfun(i, d) ((i)->fun = d) +#define iochan_setevent(i, e) ((i)->force_event = (e)) +#define iochan_getnext(i) ((i)->next) +#define iochan_settimeout(i, t) ((i)->max_idle = (t), (i)->last_event = time(0)) + +IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int port); +int event_loop(IOCHAN *iochans); +void statserv_remove (IOCHAN pIOChannel); +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/grs1disp.c b/dependencies/yaz-2.1.28/src/grs1disp.c new file mode 100644 index 0000000..658ec12 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/grs1disp.c @@ -0,0 +1,130 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: grs1disp.c,v 1.4 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file grs1disp.c + * \brief Implements display of GRS-1 records + */ + +#include +#include +#include +#include + +#include + +static void display_variant(WRBUF w, Z_Variant *v, int level) +{ + int i; + + for (i = 0; i < v->num_triples; i++) + { + printf("%*sclass=%d,type=%d", level * 4, "", *v->triples[i]->zclass, + *v->triples[i]->type); + if (v->triples[i]->which == Z_Triple_internationalString) + printf(",value=%s\n", v->triples[i]->value.internationalString); + else + printf("\n"); + } +} + +static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) +{ + int i; + + if (!r) + { + return; + } + for (i = 0; i < r->num_elements; i++) + { + Z_TaggedElement *t; + + wrbuf_printf(w, "%*s", level * 4, ""); + t = r->elements[i]; + wrbuf_printf(w, "("); + if (t->tagType) + wrbuf_printf(w, "%d,", *t->tagType); + else + wrbuf_printf(w, "?,"); + if (t->tagValue->which == Z_StringOrNumeric_numeric) + wrbuf_printf(w, "%d) ", *t->tagValue->u.numeric); + else + wrbuf_printf(w, "%s) ", t->tagValue->u.string); + if (t->content->which == Z_ElementData_subtree) + { + if (!t->content->u.subtree) + printf (" (no subtree)\n"); + else + { + wrbuf_printf(w, "\n"); + display_grs1(w, t->content->u.subtree, level+1); + } + } + else if (t->content->which == Z_ElementData_string) + wrbuf_printf(w, "%s\n", t->content->u.string); + else if (t->content->which == Z_ElementData_numeric) + wrbuf_printf(w, "%d\n", *t->content->u.numeric); + else if (t->content->which == Z_ElementData_oid) + { + int *ip = t->content->u.oid; + oident *oent; + + if ((oent = oid_getentbyoid(t->content->u.oid))) + wrbuf_printf(w, "OID: %s\n", oent->desc); + else + { + wrbuf_printf(w, "{"); + while (ip && *ip >= 0) + wrbuf_printf(w, " %d", *(ip++)); + wrbuf_printf(w, " }\n"); + } + } + else if (t->content->which == Z_ElementData_noDataRequested) + wrbuf_printf(w, "[No data requested]\n"); + else if (t->content->which == Z_ElementData_elementEmpty) + wrbuf_printf(w, "[Element empty]\n"); + else if (t->content->which == Z_ElementData_elementNotThere) + wrbuf_printf(w, "[Element not there]\n"); + else if (t->content->which == Z_ElementData_date) + wrbuf_printf(w, "Date: %s\n", t->content->u.date); + else if (t->content->which == Z_ElementData_ext) + { + printf ("External\n"); + /* we cannot print externals here. Srry */ + } + else + wrbuf_printf(w, "? type = %d\n",t->content->which); + if (t->appliedVariant) + display_variant(w, t->appliedVariant, level+1); + if (t->metaData && t->metaData->supportedVariants) + { + int c; + + wrbuf_printf(w, "%*s---- variant list\n", (level+1)*4, ""); + for (c = 0; c < t->metaData->num_supportedVariants; c++) + { + wrbuf_printf(w, "%*svariant #%d\n", (level+1)*4, "", c); + display_variant(w, t->metaData->supportedVariants[c], level+2); + } + } + } +} + +void yaz_display_grs1(WRBUF wrbuf, Z_GenericRecord *r, int flags) +{ + display_grs1 (wrbuf, r, 0); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ill-core.c b/dependencies/yaz-2.1.28/src/ill-core.c new file mode 100644 index 0000000..dba79c7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ill-core.c @@ -0,0 +1,1790 @@ +/** \file ill-core.c + \brief ASN.1 Module ISO-10161-ILL-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, ILL_APDU_ILL_Request, + (Odr_fun) ill_Request, "illRequest"}, + {-1, -1, -1, ILL_APDU_Forward_Notification, + (Odr_fun) ill_Forward_Notification, "Forward_Notification"}, + {-1, -1, -1, ILL_APDU_Shipped, + (Odr_fun) ill_Shipped, "Shipped"}, + {-1, -1, -1, ILL_APDU_ILL_Answer, + (Odr_fun) ill_Answer, "illAnswer"}, + {-1, -1, -1, ILL_APDU_Conditional_Reply, + (Odr_fun) ill_Conditional_Reply, "Conditional_Reply"}, + {-1, -1, -1, ILL_APDU_Cancel, + (Odr_fun) ill_Cancel, "Cancel"}, + {-1, -1, -1, ILL_APDU_Cancel_Reply, + (Odr_fun) ill_Cancel_Reply, "Cancel_Reply"}, + {-1, -1, -1, ILL_APDU_Received, + (Odr_fun) ill_Received, "Received"}, + {-1, -1, -1, ILL_APDU_Recall, + (Odr_fun) ill_Recall, "Recall"}, + {-1, -1, -1, ILL_APDU_Returned, + (Odr_fun) ill_Returned, "Returned"}, + {-1, -1, -1, ILL_APDU_Checked_In, + (Odr_fun) ill_Checked_In, "Checked_In"}, + {-1, -1, -1, ILL_APDU_Overdue, + (Odr_fun) ill_Overdue, "Overdue"}, + {-1, -1, -1, ILL_APDU_Renew, + (Odr_fun) ill_Renew, "Renew"}, + {-1, -1, -1, ILL_APDU_Renew_Answer, + (Odr_fun) ill_Renew_Answer, "Renew_Answer"}, + {-1, -1, -1, ILL_APDU_Lost, + (Odr_fun) ill_Lost, "Lost"}, + {-1, -1, -1, ILL_APDU_Damaged, + (Odr_fun) ill_Damaged, "Damaged"}, + {-1, -1, -1, ILL_APDU_Message, + (Odr_fun) ill_Message, "Message"}, + {-1, -1, -1, ILL_APDU_Status_Query, + (Odr_fun) ill_Status_Query, "Status_Query"}, + {-1, -1, -1, ILL_APDU_Status_Or_Error_Report, + (Odr_fun) ill_Status_Or_Error_Report, "Status_Or_Error_Report"}, + {-1, -1, -1, ILL_APDU_Expired, + (Odr_fun) ill_Expired, "Expired"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Request (ODR o, ILL_Request **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 1, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Request *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Transaction_Type, + &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && + odr_implicit_tag (o, ill_Delivery_Address, + &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") && + ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") && + odr_implicit_tag (o, ill_Delivery_Address, + &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") && + odr_implicit_settag (o, ODR_CONTEXT, 9) && + odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type, + &(*p)->num_iLL_service_type, "iLL_service_type") && + odr_explicit_tag (o, odr_external, + &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") && + odr_implicit_tag (o, ill_Requester_Optional_Messages_Type, + &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 0, "requester_optional_messages") && + odr_implicit_tag (o, ill_Search_Type, + &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") && + odr_implicit_settag (o, ODR_CONTEXT, 13) && + (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type, + &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) && + odr_implicit_tag (o, ill_Place_On_Hold_Type, + &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") && + odr_implicit_tag (o, ill_Client_Id, + &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && + odr_implicit_tag (o, ill_Item_Id, + &(*p)->item_id, ODR_CONTEXT, 16, 0, "item_id") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_Cost_Info_Type, + &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") && + odr_explicit_tag (o, ill_String, + &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") && + odr_implicit_tag (o, ill_Third_Party_Info_Type, + &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") && + odr_implicit_tag (o, odr_bool, + &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") && + odr_implicit_tag (o, odr_bool, + &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_explicit_tag (o, ill_String, + &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions, + &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 2, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Forward_Notification *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 0, "responder_id") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->intermediary_id, ODR_CONTEXT, 25, 0, "intermediary_id") && + odr_explicit_tag (o, ill_String, + &(*p)->notification_note, ODR_CONTEXT, 48, 1, "notification_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->forward_notification_extensions, + &(*p)->num_forward_notification_extensions, "forward_notification_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 3, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Shipped *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->intermediary_id, ODR_CONTEXT, 25, 1, "intermediary_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") && + odr_implicit_tag (o, ill_Client_Id, + &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && + odr_implicit_tag (o, ill_Transaction_Type, + &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_Shipped_Service_Type, + &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") && + odr_implicit_tag (o, ill_Responder_Optional_Messages_Type, + &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") && + odr_implicit_tag (o, ill_Supply_Details, + &(*p)->supply_details, ODR_CONTEXT, 29, 0, "supply_details") && + odr_implicit_tag (o, ill_Postal_Address, + &(*p)->return_to_address, ODR_CONTEXT, 30, 1, "return_to_address") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->shipped_extensions, + &(*p)->num_shipped_extensions, "shipped_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Answer_conditional_results, + (Odr_fun) ill_Conditional_Results, "conditional_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_Answer_retry_results, + (Odr_fun) ill_Retry_Results, "retry_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 3, ILL_Answer_unfilled_results, + (Odr_fun) ill_Unfilled_Results, "unfilled_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 4, ILL_Answer_locations_results, + (Odr_fun) ill_Locations_Results, "locations_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Answer_will_supply_results, + (Odr_fun) ill_Will_Supply_Results, "will_supply_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 6, ILL_Answer_hold_placed_results, + (Odr_fun) ill_Hold_Placed_Results, "hold_placed_results"}, + {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Answer_estimate_results, + (Odr_fun) ill_Estimate_Results, "estimate_results"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 4, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Answer *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Transaction_Results, + &(*p)->transaction_results, ODR_CONTEXT, 31, 0, "transaction_results") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 32, "results_explanation") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_explicit_tag (o, odr_external, + &(*p)->responder_specific_results, ODR_CONTEXT, 33, 1, "responder_specific_results") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_Send_To_List_Type, + &(*p)->send_to_list, ODR_CONTEXT, 23, 1, "send_to_list") && + odr_implicit_tag (o, ill_Already_Tried_List_Type, + &(*p)->already_tried_list, ODR_CONTEXT, 34, 1, "already_tried_list") && + odr_implicit_tag (o, ill_Responder_Optional_Messages_Type, + &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->ill_answer_extensions, + &(*p)->num_ill_answer_extensions, "ill_answer_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 5, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Conditional_Reply *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, odr_bool, + &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->conditional_reply_extensions, + &(*p)->num_conditional_reply_extensions, "conditional_reply_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 6, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Cancel *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_extensions, + &(*p)->num_cancel_extensions, "cancel_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 7, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Cancel_Reply *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, odr_bool, + &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_reply_extensions, + &(*p)->num_cancel_reply_extensions, "cancel_reply_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Received (ODR o, ILL_Received **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 8, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Received *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_received, ODR_CONTEXT, 36, 0, "date_received") && + odr_implicit_tag (o, ill_Shipped_Service_Type, + &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->received_extensions, + &(*p)->num_received_extensions, "received_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 9, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Recall *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->recall_extensions, + &(*p)->num_recall_extensions, "recall_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 10, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Returned *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_returned, ODR_CONTEXT, 37, 0, "date_returned") && + odr_explicit_tag (o, ill_Transportation_Mode, + &(*p)->returned_via, ODR_CONTEXT, 38, 1, "returned_via") && + odr_implicit_tag (o, ill_Amount, + &(*p)->insured_for, ODR_CONTEXT, 39, 1, "insured_for") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->returned_extensions, + &(*p)->num_returned_extensions, "returned_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 11, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Checked_In *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_checked_in, ODR_CONTEXT, 40, 0, "date_checked_in") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->checked_in_extensions, + &(*p)->num_checked_in_extensions, "checked_in_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) ill_Extension, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 12, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Overdue *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Date_Due, + &(*p)->date_due, ODR_CONTEXT, 41, 0, "date_due") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_explicit_tag (o, ill_Overdue_ExtensionS, + &(*p)->overdue_extensions, ODR_CONTEXT, 49, 1, "overdue_extensions") && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 13, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Renew *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->desired_due_date, ODR_CONTEXT, 42, 1, "desired_due_date") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_extensions, + &(*p)->num_renew_extensions, "renew_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 14, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Renew_Answer *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, odr_bool, + &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && + odr_implicit_tag (o, ill_Date_Due, + &(*p)->date_due, ODR_CONTEXT, 41, 1, "date_due") && + odr_explicit_tag (o, ill_String, + &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_answer_extensions, + &(*p)->num_renew_answer_extensions, "renew_answer_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 15, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Lost *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_explicit_tag (o, ill_String, + &(*p)->note, ODR_CONTEXT, 46, 1, "note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->lost_extensions, + &(*p)->num_lost_extensions, "lost_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 16, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Damaged *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Damaged_Details, + &(*p)->damaged_details, ODR_CONTEXT, 5, 1, "damaged_details") && + odr_explicit_tag (o, ill_String, + &(*p)->note, ODR_CONTEXT, 46, 1, "note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->damaged_extensions, + &(*p)->num_damaged_extensions, "damaged_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Message (ODR o, ILL_Message **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 17, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Message *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_explicit_tag (o, ill_String, + &(*p)->note, ODR_CONTEXT, 46, 0, "note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->message_extensions, + &(*p)->num_message_extensions, "message_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 18, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Status_Query *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_explicit_tag (o, ill_String, + &(*p)->note, ODR_CONTEXT, 46, 1, "note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_query_extensions, + &(*p)->num_status_query_extensions, "status_query_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 19, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Status_Or_Error_Report *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Reason_No_Report, + &(*p)->reason_no_report, ODR_CONTEXT, 43, 1, "reason_no_report") && + odr_implicit_tag (o, ill_Status_Report, + &(*p)->status_report, ODR_CONTEXT, 44, 1, "status_report") && + odr_implicit_tag (o, ill_Error_Report, + &(*p)->error_report, ODR_CONTEXT, 45, 1, "error_report") && + odr_explicit_tag (o, ill_String, + &(*p)->note, ODR_CONTEXT, 46, 1, "note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_or_error_report_extensions, + &(*p)->num_status_or_error_report_extensions, "status_or_error_report_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name) +{ + if (!odr_constructed_begin (o, p, ODR_APPLICATION, 20, name)) + return odr_missing(o, opt, name); + if (o->direction == ODR_DECODE) + *p = (ILL_Expired *) odr_malloc (o, sizeof(**p)); + if (!odr_sequence_begin (o, p, sizeof(**p), 0)) + { + if(o->direction == ODR_DECODE) + *p = 0; + return 0; + } + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->expired_extensions, + &(*p)->num_expired_extensions, "expired_extensions") || odr_ok(o)) && + odr_sequence_end (o) && + odr_constructed_end (o); +} + +int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name) +{ + return ill_String (o, p, opt, name); +} + +int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 0, 0, "responder_id") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->responder_address, ODR_CONTEXT, 1, 1, "responder_address") && + odr_sequence_end (o); +} + +int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) ill_System_Id, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_visiblestring, + &(*p)->currency_code, ODR_CONTEXT, 0, 1, "currency_code") && + odr_implicit_tag (o, ill_AmountString, + &(*p)->monetary_value, ODR_CONTEXT, 1, 0, "monetary_value") && + odr_sequence_end (o); +} + +int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name) +{ + return odr_visiblestring (o, p, opt, name); +} + +int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_String, + &(*p)->client_name, ODR_CONTEXT, 0, 1, "client_name") && + odr_explicit_tag (o, ill_String, + &(*p)->client_status, ODR_CONTEXT, 1, 1, "client_status") && + odr_explicit_tag (o, ill_String, + &(*p)->client_identifier, ODR_CONTEXT, 2, 1, "client_identifier") && + odr_sequence_end (o); +} + +int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_enum, + &(*p)->conditions, ODR_CONTEXT, 0, 0, "conditions") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_for_reply, ODR_CONTEXT, 1, 1, "date_for_reply") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + ill_Delivery_Service(o, &(*p)->proposed_delivery_service, 1, "proposed_delivery_service") && + odr_sequence_end (o); +} + +int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_Account_Number, + &(*p)->account_number, ODR_CONTEXT, 0, 1, "account_number") && + odr_implicit_tag (o, ill_Amount, + &(*p)->maximum_cost, ODR_CONTEXT, 1, 1, "maximum_cost") && + odr_implicit_tag (o, odr_bool, + &(*p)->reciprocal_agreement, ODR_CONTEXT, 2, 0, "reciprocal_agreement") && + odr_implicit_tag (o, odr_bool, + &(*p)->will_pay_fee, ODR_CONTEXT, 3, 0, "will_pay_fee") && + odr_implicit_tag (o, odr_bool, + &(*p)->payment_provided, ODR_CONTEXT, 4, 0, "payment_provided") && + odr_sequence_end (o); +} + +int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) odr_integer, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Damaged_Details_complete_document, + (Odr_fun) odr_null, "complete_document"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Damaged_Details_specific_units, + (Odr_fun) ill_Damaged_DetailsSpecific_units, "specific_units"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->document_type_id, ODR_CONTEXT, 0, 1, "document_type_id") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_sequence_end (o); +} + +int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_due_field, ODR_CONTEXT, 0, 0, "date_due_field") && + odr_implicit_tag (o, odr_bool, + &(*p)->renewable, ODR_CONTEXT, 1, 0, "renewable") && + odr_sequence_end (o); +} + +int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Postal_Address, + &(*p)->postal_address, ODR_CONTEXT, 0, 1, "postal_address") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->electronic_address, ODR_CONTEXT, 1, 1, "electronic_address") && + odr_sequence_end (o); +} + +int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) ill_Electronic_Delivery_Service, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Delivery_Service_physical_delivery, + (Odr_fun) ill_Transportation_Mode, "physical_delivery"}, + {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Delivery_Service_electronic_delivery, + (Odr_fun) ill_Delivery_ServiceElectronic_delivery, "electronic_delivery"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->e_delivery_mode, ODR_CONTEXT, 0, 0, "e_delivery_mode") && + odr_explicit_tag (o, odr_any, + &(*p)->e_delivery_parameters, ODR_CONTEXT, 1, 0, "e_delivery_parameters") && + odr_sequence_end (o); +} + +int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->document_type_id, ODR_CONTEXT, 2, 0, "document_type_id") && + odr_explicit_tag (o, odr_any, + &(*p)->document_type_parameters, ODR_CONTEXT, 3, 0, "document_type_parameters") && + odr_sequence_end (o); +} + +int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Electronic_Delivery_Service_e_delivery_address, + (Odr_fun) ill_System_Address, "e_delivery_address"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Electronic_Delivery_Service_e_delivery_id, + (Odr_fun) ill_System_Id, "e_delivery_id"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Electronic_Delivery_Service_0, + &(*p)->e_delivery_service, ODR_CONTEXT, 0, 1, "e_delivery_service") && + odr_implicit_tag (o, ill_Electronic_Delivery_Service_1, + &(*p)->document_type, ODR_CONTEXT, 1, 1, "document_type") && + odr_explicit_tag (o, ill_String, + &(*p)->e_delivery_description, ODR_CONTEXT, 4, 1, "e_delivery_description") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "e_delivery_details") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_explicit_tag (o, ill_String, + &(*p)->name_or_code, ODR_CONTEXT, 6, 1, "name_or_code") && + odr_implicit_tag (o, ill_ISO_Time, + &(*p)->delivery_time, ODR_CONTEXT, 7, 1, "delivery_time") && + odr_sequence_end (o); +} + +int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_String, + &(*p)->correlation_information, ODR_CONTEXT, 0, 0, "correlation_information") && + odr_implicit_tag (o, ill_Report_Source, + &(*p)->report_source, ODR_CONTEXT, 1, 0, "report_source") && + odr_explicit_tag (o, ill_User_Error_Report, + &(*p)->user_error_report, ODR_CONTEXT, 2, 1, "user_error_report") && + odr_explicit_tag (o, ill_Provider_Error_Report, + &(*p)->provider_error_report, ODR_CONTEXT, 3, 1, "provider_error_report") && + odr_sequence_end (o); +} + +int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_String, + &(*p)->cost_estimate, ODR_CONTEXT, 0, 0, "cost_estimate") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + odr_sequence_end (o); +} + +int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->identifier, ODR_CONTEXT, 0, 0, "identifier") && + odr_implicit_tag (o, odr_bool, + &(*p)->critical, ODR_CONTEXT, 1, 0, "critical") && + odr_explicit_tag (o, odr_any, + &(*p)->item, ODR_CONTEXT, 2, 0, "item") && + odr_sequence_end (o); +} + +int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_requested, ODR_CONTEXT, 0, 1, "date_requested") && + odr_explicit_tag (o, ill_String, + &(*p)->author, ODR_CONTEXT, 1, 1, "author") && + odr_explicit_tag (o, ill_String, + &(*p)->title, ODR_CONTEXT, 2, 1, "title") && + odr_explicit_tag (o, ill_String, + &(*p)->author_of_article, ODR_CONTEXT, 3, 1, "author_of_article") && + odr_explicit_tag (o, ill_String, + &(*p)->title_of_article, ODR_CONTEXT, 4, 1, "title_of_article") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_of_last_transition, ODR_CONTEXT, 5, 0, "date_of_last_transition") && + odr_implicit_tag (o, odr_enum, + &(*p)->most_recent_service, ODR_CONTEXT, 6, 0, "most_recent_service") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_of_most_recent_service, ODR_CONTEXT, 7, 0, "date_of_most_recent_service") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->initiator_of_most_recent_service, ODR_CONTEXT, 8, 0, "initiator_of_most_recent_service") && + odr_implicit_tag (o, ill_Shipped_Service_Type, + &(*p)->shipped_service_type, ODR_CONTEXT, 9, 1, "shipped_service_type") && + odr_implicit_tag (o, ill_Transaction_Results, + &(*p)->transaction_results, ODR_CONTEXT, 10, 1, "transaction_results") && + odr_explicit_tag (o, ill_String, + &(*p)->most_recent_service_note, ODR_CONTEXT, 11, 1, "most_recent_service_note") && + odr_sequence_end (o); +} + +int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->estimated_date_available, ODR_CONTEXT, 0, 0, "estimated_date_available") && + odr_implicit_tag (o, ill_Medium_Type, + &(*p)->hold_placed_medium_type, ODR_CONTEXT, 1, 1, "hold_placed_medium_type") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + odr_sequence_end (o); +} + +int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_String (ODR o, ILL_String **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, ILL_String_GeneralString, + (Odr_fun) odr_generalstring, "GeneralString"}, + {-1, -1, -1, ILL_String_EDIFACTString, + (Odr_fun) ill_EDIFACTString, "EDIFACTString"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name) +{ + return odr_visiblestring (o, p, opt, name); +} + +int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name) +{ + return odr_visiblestring (o, p, opt, name); +} + +int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_enum, + &(*p)->item_type, ODR_CONTEXT, 0, 1, "item_type") && + odr_implicit_tag (o, ill_Medium_Type, + &(*p)->held_medium_type, ODR_CONTEXT, 1, 1, "held_medium_type") && + odr_explicit_tag (o, ill_String, + &(*p)->call_number, ODR_CONTEXT, 2, 1, "call_number") && + odr_explicit_tag (o, ill_String, + &(*p)->author, ODR_CONTEXT, 3, 1, "author") && + odr_explicit_tag (o, ill_String, + &(*p)->title, ODR_CONTEXT, 4, 1, "title") && + odr_explicit_tag (o, ill_String, + &(*p)->sub_title, ODR_CONTEXT, 5, 1, "sub_title") && + odr_explicit_tag (o, ill_String, + &(*p)->sponsoring_body, ODR_CONTEXT, 6, 1, "sponsoring_body") && + odr_explicit_tag (o, ill_String, + &(*p)->place_of_publication, ODR_CONTEXT, 7, 1, "place_of_publication") && + odr_explicit_tag (o, ill_String, + &(*p)->publisher, ODR_CONTEXT, 8, 1, "publisher") && + odr_explicit_tag (o, ill_String, + &(*p)->series_title_number, ODR_CONTEXT, 9, 1, "series_title_number") && + odr_explicit_tag (o, ill_String, + &(*p)->volume_issue, ODR_CONTEXT, 10, 1, "volume_issue") && + odr_explicit_tag (o, ill_String, + &(*p)->edition, ODR_CONTEXT, 11, 1, "edition") && + odr_explicit_tag (o, ill_String, + &(*p)->publication_date, ODR_CONTEXT, 12, 1, "publication_date") && + odr_explicit_tag (o, ill_String, + &(*p)->publication_date_of_component, ODR_CONTEXT, 13, 1, "publication_date_of_component") && + odr_explicit_tag (o, ill_String, + &(*p)->author_of_article, ODR_CONTEXT, 14, 1, "author_of_article") && + odr_explicit_tag (o, ill_String, + &(*p)->title_of_article, ODR_CONTEXT, 15, 1, "title_of_article") && + odr_explicit_tag (o, ill_String, + &(*p)->pagination, ODR_CONTEXT, 16, 1, "pagination") && + odr_explicit_tag (o, odr_external, + &(*p)->national_bibliography_no, ODR_CONTEXT, 17, 1, "national_bibliography_no") && + odr_explicit_tag (o, ill_String, + &(*p)->iSBN, ODR_CONTEXT, 18, 1, "iSBN") && + odr_explicit_tag (o, ill_String, + &(*p)->iSSN, ODR_CONTEXT, 19, 1, "iSSN") && + odr_explicit_tag (o, odr_external, + &(*p)->system_no, ODR_CONTEXT, 20, 1, "system_no") && + odr_explicit_tag (o, ill_String, + &(*p)->additional_no_letters, ODR_CONTEXT, 21, 1, "additional_no_letters") && + odr_explicit_tag (o, ill_String, + &(*p)->verification_reference_source, ODR_CONTEXT, 22, 1, "verification_reference_source") && + odr_sequence_end (o); +} + +int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_System_Id, + &(*p)->location_id, ODR_CONTEXT, 0, 0, "location_id") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->location_address, ODR_CONTEXT, 1, 1, "location_address") && + odr_explicit_tag (o, ill_String, + &(*p)->location_note, ODR_CONTEXT, 2, 1, "location_note") && + odr_sequence_end (o); +} + +int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Reason_Locs_Provided, + &(*p)->reason_locs_provided, ODR_CONTEXT, 0, 1, "reason_locs_provided") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") && + odr_sequence_end (o); +} + +int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Name_Of_Person_Or_Institution_name_of_person, + (Odr_fun) ill_String, "name_of_person"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Name_Of_Person_Or_Institution_name_of_institution, + (Odr_fun) ill_String, "name_of_institution"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Person_Or_Institution_Symbol_person_symbol, + (Odr_fun) ill_String, "person_symbol"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Person_Or_Institution_Symbol_institution_symbol, + (Odr_fun) ill_String, "institution_symbol"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution, + &(*p)->name_of_person_or_institution, ODR_CONTEXT, 0, 1, "name_of_person_or_institution") && + odr_explicit_tag (o, ill_String, + &(*p)->extended_postal_delivery_address, ODR_CONTEXT, 1, 1, "extended_postal_delivery_address") && + odr_explicit_tag (o, ill_String, + &(*p)->street_and_number, ODR_CONTEXT, 2, 1, "street_and_number") && + odr_explicit_tag (o, ill_String, + &(*p)->post_office_box, ODR_CONTEXT, 3, 1, "post_office_box") && + odr_explicit_tag (o, ill_String, + &(*p)->city, ODR_CONTEXT, 4, 1, "city") && + odr_explicit_tag (o, ill_String, + &(*p)->region, ODR_CONTEXT, 5, 1, "region") && + odr_explicit_tag (o, ill_String, + &(*p)->country, ODR_CONTEXT, 6, 1, "country") && + odr_explicit_tag (o, ill_String, + &(*p)->postal_code, ODR_CONTEXT, 7, 1, "postal_code") && + odr_sequence_end (o); +} + +int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Provider_Error_Report_general_problem, + (Odr_fun) ill_General_Problem, "general_problem"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Provider_Error_Report_transaction_id_problem, + (Odr_fun) ill_Transaction_Id_Problem, "transaction_id_problem"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Provider_Error_Report_state_transition_prohibited, + (Odr_fun) ill_State_Transition_Prohibited, "state_transition_prohibited"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->can_send_RECEIVED, ODR_CONTEXT, 0, 0, "can_send_RECEIVED") && + odr_implicit_tag (o, odr_bool, + &(*p)->can_send_RETURNED, ODR_CONTEXT, 1, 0, "can_send_RETURNED") && + odr_implicit_tag (o, odr_enum, + &(*p)->requester_SHIPPED, ODR_CONTEXT, 2, 0, "requester_SHIPPED") && + odr_implicit_tag (o, odr_enum, + &(*p)->requester_CHECKED_IN, ODR_CONTEXT, 3, 0, "requester_CHECKED_IN") && + odr_sequence_end (o); +} + +int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->can_send_SHIPPED, ODR_CONTEXT, 0, 0, "can_send_SHIPPED") && + odr_implicit_tag (o, odr_bool, + &(*p)->can_send_CHECKED_IN, ODR_CONTEXT, 1, 0, "can_send_CHECKED_IN") && + odr_implicit_tag (o, odr_enum, + &(*p)->responder_RECEIVED, ODR_CONTEXT, 2, 0, "responder_RECEIVED") && + odr_implicit_tag (o, odr_enum, + &(*p)->responder_RETURNED, ODR_CONTEXT, 3, 0, "responder_RETURNED") && + odr_sequence_end (o); +} + +int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_enum, + &(*p)->reason_not_available, ODR_CONTEXT, 0, 1, "reason_not_available") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->retry_date, ODR_CONTEXT, 1, 1, "retry_date") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + odr_sequence_end (o); +} + +int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_String, + &(*p)->level_of_service, ODR_CONTEXT, 0, 1, "level_of_service") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->need_before_date, ODR_CONTEXT, 1, 1, "need_before_date") && + odr_implicit_tag (o, odr_enum, + &(*p)->expiry_flag, ODR_CONTEXT, 2, 0, "expiry_flag") && + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->expiry_date, ODR_CONTEXT, 3, 1, "expiry_date") && + odr_sequence_end (o); +} + +int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name) +{ + return ill_String (o, p, opt, name); +} + +int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_System_Id, + &(*p)->system_id, ODR_CONTEXT, 0, 0, "system_id") && + odr_explicit_tag (o, ill_Account_Number, + &(*p)->account_number, ODR_CONTEXT, 1, 1, "account_number") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->system_address, ODR_CONTEXT, 2, 1, "system_address") && + odr_sequence_end (o); +} + +int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) ill_Send_To_List_Type_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date, ODR_CONTEXT, 0, 0, "date") && + odr_implicit_tag (o, ill_ISO_Time, + &(*p)->time, ODR_CONTEXT, 1, 1, "time") && + odr_sequence_end (o); +} + +int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date, ODR_CONTEXT, 0, 0, "date") && + odr_implicit_tag (o, ill_ISO_Time, + &(*p)->time, ODR_CONTEXT, 1, 1, "time") && + odr_sequence_end (o); +} + +int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Service_Date_this, + &(*p)->date_time_of_this_service, ODR_CONTEXT, 0, 0, "date_time_of_this_service") && + odr_implicit_tag (o, ill_Service_Date_original, + &(*p)->date_time_of_original_service, ODR_CONTEXT, 1, 1, "date_time_of_original_service") && + odr_sequence_end (o); +} + +int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name) +{ + return ill_Service_Type (o, p, opt, name); +} + +int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_APDU_Type, + &(*p)->aPDU_type, ODR_CONTEXT, 0, 0, "aPDU_type") && + odr_implicit_tag (o, ill_Current_State, + &(*p)->current_state, ODR_CONTEXT, 1, 0, "current_state") && + odr_sequence_end (o); +} + +int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_History_Report, + &(*p)->user_status_report, ODR_CONTEXT, 0, 0, "user_status_report") && + odr_implicit_tag (o, ill_Current_State, + &(*p)->provider_status_report, ODR_CONTEXT, 1, 0, "provider_status_report") && + odr_sequence_end (o); +} + +int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) odr_external, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Supply_Details_physical_delivery, + (Odr_fun) ill_Transportation_Mode, "physical_delivery"}, + {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Supply_Details_electronic_delivery, + (Odr_fun) ill_Electronic_Delivery_Service, "electronic_delivery"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_ISO_Date, + &(*p)->date_shipped, ODR_CONTEXT, 0, 1, "date_shipped") && + odr_implicit_tag (o, ill_Date_Due, + &(*p)->date_due, ODR_CONTEXT, 1, 1, "date_due") && + odr_implicit_tag (o, odr_integer, + &(*p)->chargeable_units, ODR_CONTEXT, 2, 1, "chargeable_units") && + odr_implicit_tag (o, ill_Amount, + &(*p)->cost, ODR_CONTEXT, 3, 1, "cost") && + odr_implicit_tag (o, odr_enum, + &(*p)->shipped_conditions, ODR_CONTEXT, 4, 1, "shipped_conditions") && + (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && + odr_implicit_tag (o, ill_Amount, + &(*p)->insured_for, ODR_CONTEXT, 6, 1, "insured_for") && + odr_implicit_tag (o, ill_Amount, + &(*p)->return_insurance_require, ODR_CONTEXT, 7, 1, "return_insurance_require") && + odr_implicit_settag (o, ODR_CONTEXT, 8) && + (odr_sequence_of(o, (Odr_fun) ill_Units_Per_Medium_Type, &(*p)->no_of_units_per_medium, + &(*p)->num_no_of_units_per_medium, "no_of_units_per_medium") || odr_ok(o)) && + odr_sequence_end (o); +} + +int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Supply_Medium_Type, + &(*p)->supply_medium_type, ODR_CONTEXT, 0, 0, "supply_medium_type") && + odr_explicit_tag (o, ill_String, + &(*p)->medium_characteristics, ODR_CONTEXT, 1, 1, "medium_characteristics") && + odr_sequence_end (o); +} + +int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_String, + &(*p)->telecom_service_identifier, ODR_CONTEXT, 0, 1, "telecom_service_identifier") && + odr_explicit_tag (o, ill_String, + &(*p)->telecom_service_address, ODR_CONTEXT, 1, 1, "telecom_service_address") && + odr_sequence_end (o); +} + +int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_Person_Or_Institution_Symbol, + &(*p)->person_or_institution_symbol, ODR_CONTEXT, 0, 1, "person_or_institution_symbol") && + odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution, + &(*p)->name_of_person_or_institution, ODR_CONTEXT, 1, 1, "name_of_person_or_institution") && + odr_sequence_end (o); +} + +int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->permission_to_forward, ODR_CONTEXT, 0, 0, "permission_to_forward") && + odr_implicit_tag (o, odr_bool, + &(*p)->permission_to_chain, ODR_CONTEXT, 1, 0, "permission_to_chain") && + odr_implicit_tag (o, odr_bool, + &(*p)->permission_to_partition, ODR_CONTEXT, 2, 0, "permission_to_partition") && + odr_implicit_tag (o, odr_bool, + &(*p)->permission_to_change_send_to_list, ODR_CONTEXT, 3, 0, "permission_to_change_send_to_list") && + odr_implicit_tag (o, ill_System_Address, + &(*p)->initial_requester_address, ODR_CONTEXT, 4, 1, "initial_requester_address") && + odr_implicit_tag (o, odr_enum, + &(*p)->preference, ODR_CONTEXT, 5, 0, "preference") && + odr_implicit_tag (o, ill_Send_To_List_Type, + &(*p)->send_to_list, ODR_CONTEXT, 6, 1, "send_to_list") && + odr_implicit_tag (o, ill_Already_Tried_List_Type, + &(*p)->already_tried_list, ODR_CONTEXT, 7, 1, "already_tried_list") && + odr_sequence_end (o); +} + +int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_System_Id, + &(*p)->initial_requester_id, ODR_CONTEXT, 0, 1, "initial_requester_id") && + odr_explicit_tag (o, ill_String, + &(*p)->transaction_group_qualifier, ODR_CONTEXT, 1, 0, "transaction_group_qualifier") && + odr_explicit_tag (o, ill_String, + &(*p)->transaction_qualifier, ODR_CONTEXT, 2, 0, "transaction_qualifier") && + odr_explicit_tag (o, ill_String, + &(*p)->sub_transaction_qualifier, ODR_CONTEXT, 3, 1, "sub_transaction_qualifier") && + odr_sequence_end (o); +} + +int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name) +{ + return ill_String (o, p, opt, name); +} + +int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name) +{ + return odr_enum (o, p, opt, name); +} + +int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, ill_Reason_Unfilled, + &(*p)->reason_unfilled, ODR_CONTEXT, 0, 0, "reason_unfilled") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + odr_sequence_end (o); +} + +int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, ill_Supply_Medium_Type, + &(*p)->medium, ODR_CONTEXT, 0, 0, "medium") && + odr_explicit_tag (o, odr_integer, + &(*p)->no_of_units, ODR_CONTEXT, 1, 0, "no_of_units") && + odr_sequence_end (o); +} + +int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_User_Error_Report_already_forwarded, + (Odr_fun) ill_Already_Forwarded, "already_forwarded"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_User_Error_Report_intermediary_problem, + (Odr_fun) ill_Intermediary_Problem, "intermediary_problem"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_User_Error_Report_security_problem, + (Odr_fun) ill_Security_Problem, "security_problem"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, ILL_User_Error_Report_unable_to_perform, + (Odr_fun) ill_Unable_To_Perform, "unable_to_perform"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, odr_enum, + &(*p)->reason_will_supply, ODR_CONTEXT, 0, 0, "reason_will_supply") && + odr_explicit_tag (o, ill_ISO_Date, + &(*p)->supply_date, ODR_CONTEXT, 1, 1, "supply_date") && + odr_explicit_tag (o, ill_Postal_Address, + &(*p)->return_to_address, ODR_CONTEXT, 2, 1, "return_to_address") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, + &(*p)->num_locations, "locations") || odr_ok(o)) && + odr_explicit_tag (o, ill_Electronic_Delivery_Service, + &(*p)->electronic_delivery_service, ODR_CONTEXT, 4, 1, "electronic_delivery_service") && + odr_sequence_end (o); +} + +int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name) +{ + return odr_visiblestring (o, p, opt, name); +} + + diff --git a/dependencies/yaz-2.1.28/src/ill-get.c b/dependencies/yaz-2.1.28/src/ill-get.c new file mode 100644 index 0000000..8aa5ecf --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ill-get.c @@ -0,0 +1,675 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: ill-get.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file ill-get.c + * \brief Implements ILL package creator utilities + */ + +#include +#include + +bool_t *ill_get_bool (struct ill_get_ctl *gc, const char *name, + const char *sub, int val) +{ + ODR o = gc->odr; + char element[128]; + const char *v; + bool_t *r = (bool_t *) odr_malloc (o, sizeof(*r)); + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + + v = (gc->f)(gc->clientData, element); + if (v) + val = atoi(v); + else if (val < 0) + return 0; + *r = val; + return r; +} + +int *ill_get_int (struct ill_get_ctl *gc, const char *name, + const char *sub, int val) +{ + ODR o = gc->odr; + char element[128]; + const char *v; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + v = (gc->f)(gc->clientData, element); + if (v) + val = atoi(v); + return odr_intdup(o, val); +} + +int *ill_get_enumerated (struct ill_get_ctl *gc, const char *name, + const char *sub, int val) +{ + return ill_get_int(gc, name, sub, val); +} + +ILL_String *ill_get_ILL_String_x (struct ill_get_ctl *gc, const char *name, + const char *sub, const char *vdefault) +{ + ILL_String *r = (ILL_String *) odr_malloc (gc->odr, sizeof(*r)); + char element[128]; + const char *v; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + v = (gc->f)(gc->clientData, element); + if (!v) + v = vdefault; + if (!v) + return 0; + r->which = ILL_String_GeneralString; + r->u.GeneralString = odr_strdup (gc->odr, v); + return r; +} + +ILL_String *ill_get_ILL_String(struct ill_get_ctl *gc, const char *name, + const char *sub) +{ + return ill_get_ILL_String_x (gc, name, sub, 0); +} + +ILL_ISO_Date *ill_get_ILL_ISO_Date (struct ill_get_ctl *gc, const char *name, + const char *sub, const char *val) +{ + char element[128]; + const char *v; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + v = (gc->f)(gc->clientData, element); + if (!v) + v = val; + if (!v) + return 0; + return odr_strdup (gc->odr, v); +} + +ILL_ISO_Time *ill_get_ILL_ISO_Time (struct ill_get_ctl *gc, const char *name, + const char *sub, const char *val) +{ + char element[128]; + const char *v; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + v = (gc->f)(gc->clientData, element); + if (!v) + v = val; + if (!v) + return 0; + return odr_strdup (gc->odr, v); +} + +ILL_Person_Or_Institution_Symbol *ill_get_Person_Or_Insitution_Symbol ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + char element[128]; + ODR o = gc->odr; + ILL_Person_Or_Institution_Symbol *p = + (ILL_Person_Or_Institution_Symbol *) odr_malloc (o, sizeof(*p)); + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + p->which = ILL_Person_Or_Institution_Symbol_person_symbol; + if ((p->u.person_symbol = ill_get_ILL_String (gc, element, "person"))) + return p; + + p->which = ILL_Person_Or_Institution_Symbol_institution_symbol; + if ((p->u.institution_symbol = + ill_get_ILL_String (gc, element, "institution"))) + return p; + return 0; +} + +static ILL_Name_Of_Person_Or_Institution *ill_get_Name_Of_Person_Or_Institution( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + char element[128]; + ODR o = gc->odr; + ILL_Name_Of_Person_Or_Institution *p = + (ILL_Name_Of_Person_Or_Institution *) odr_malloc (o, sizeof(*p)); + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + p->which = ILL_Name_Of_Person_Or_Institution_name_of_person; + if ((p->u.name_of_person = + ill_get_ILL_String (gc, element, "name-of-person"))) + return p; + + p->which = ILL_Name_Of_Person_Or_Institution_name_of_institution; + if ((p->u.name_of_institution = + ill_get_ILL_String (gc, element, "name-of-institution"))) + return p; + return 0; +} + +ILL_System_Id *ill_get_System_Id(struct ill_get_ctl *gc, + const char *name, const char *sub) +{ + ODR o = gc->odr; + char element[128]; + ILL_System_Id *p; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + p = (ILL_System_Id *) odr_malloc (o, sizeof(*p)); + p->person_or_institution_symbol = ill_get_Person_Or_Insitution_Symbol ( + gc, element, "person-or-institution-symbol"); + p->name_of_person_or_institution = ill_get_Name_Of_Person_Or_Institution ( + gc, element, "name-of-person-or-institution"); + return p; +} + +ILL_Transaction_Id *ill_get_Transaction_Id (struct ill_get_ctl *gc, + const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Transaction_Id *r = (ILL_Transaction_Id *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->initial_requester_id = + ill_get_System_Id (gc, element, "initial-requester-id"); + r->transaction_group_qualifier = + ill_get_ILL_String_x (gc, element, "transaction-group-qualifier", ""); + r->transaction_qualifier = + ill_get_ILL_String_x (gc, element, "transaction-qualifier", ""); + r->sub_transaction_qualifier = + ill_get_ILL_String (gc, element, "sub-transaction-qualifier"); + return r; +} + + +ILL_Service_Date_this *ill_get_Service_Date_this ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Service_Date_this *r = + (ILL_Service_Date_this *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->date = ill_get_ILL_ISO_Date (gc, element, "date", "20000101"); + r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0); + return r; +} + +ILL_Service_Date_original *ill_get_Service_Date_original ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Service_Date_original *r = + (ILL_Service_Date_original *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->date = ill_get_ILL_ISO_Date (gc, element, "date", 0); + r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0); + if (!r->date && !r->time) + return 0; + return r; +} + +ILL_Service_Date_Time *ill_get_Service_Date_Time ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Service_Date_Time *r = + (ILL_Service_Date_Time *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->date_time_of_this_service = ill_get_Service_Date_this ( + gc, element, "this"); + r->date_time_of_original_service = ill_get_Service_Date_original ( + gc, element, "original"); + return r; +} + +ILL_Requester_Optional_Messages_Type *ill_get_Requester_Optional_Messages_Type ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Requester_Optional_Messages_Type *r = + (ILL_Requester_Optional_Messages_Type *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->can_send_RECEIVED = ill_get_bool (gc, element, "can-send-RECEIVED", 0); + r->can_send_RETURNED = ill_get_bool (gc, element, "can-send-RETURNED", 0); + r->requester_SHIPPED = + ill_get_enumerated (gc, element, "requester-SHIPPED", 1); + r->requester_CHECKED_IN = + ill_get_enumerated (gc, element, "requester-CHECKED-IN", 1); + return r; +} + +ILL_Item_Id *ill_get_Item_Id ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Item_Id *r = (ILL_Item_Id *) odr_malloc (o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->item_type = ill_get_enumerated (gc, element, "item-type", + ILL_Item_Id_monograph); + r->held_medium_type = 0; + r->call_number = ill_get_ILL_String(gc, element, "call-number"); + r->author = ill_get_ILL_String(gc, element, "author"); + r->title = ill_get_ILL_String(gc, element, "title"); + r->sub_title = ill_get_ILL_String(gc, element, "sub-title"); + r->sponsoring_body = ill_get_ILL_String(gc, element, "sponsoring-body"); + r->place_of_publication = + ill_get_ILL_String(gc, element, "place-of-publication"); + r->publisher = ill_get_ILL_String(gc, element, "publisher"); + r->series_title_number = + ill_get_ILL_String(gc, element, "series-title-number"); + r->volume_issue = ill_get_ILL_String(gc, element, "volume-issue"); + r->edition = ill_get_ILL_String(gc, element, "edition"); + r->publication_date = ill_get_ILL_String(gc, element, "publication-date"); + r->publication_date_of_component = + ill_get_ILL_String(gc, element, "publication-date-of-component"); + r->author_of_article = ill_get_ILL_String(gc, element, + "author-of-article"); + r->title_of_article = ill_get_ILL_String(gc, element, "title-of-article"); + r->pagination = ill_get_ILL_String(gc, element, "pagination"); + r->national_bibliography_no = 0; + r->iSBN = ill_get_ILL_String(gc, element, "ISBN"); + r->iSSN = ill_get_ILL_String(gc, element, "ISSN"); + r->system_no = 0; + r->additional_no_letters = + ill_get_ILL_String(gc, element, "additional-no-letters"); + r->verification_reference_source = + ill_get_ILL_String(gc, element, "verification-reference-source"); + return r; +} + + +ILL_Client_Id *ill_get_Client_Id ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + char element[128]; + ODR o = gc->odr; + ILL_Client_Id *r = (ILL_Client_Id *) odr_malloc(o, sizeof(*r)); + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->client_name = ill_get_ILL_String (gc, element, "client-name"); + r->client_status = ill_get_ILL_String (gc, element, "client-status"); + r->client_identifier = ill_get_ILL_String (gc, element, + "client-identifier"); + return r; +} + +ILL_Postal_Address *ill_get_Postal_Address ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Postal_Address *r = + (ILL_Postal_Address *) odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->name_of_person_or_institution = + ill_get_Name_Of_Person_Or_Institution ( + gc, element, "name-of-person-or-institution"); + r->extended_postal_delivery_address = + ill_get_ILL_String ( + gc, element, "extended-postal-delivery-address"); + r->street_and_number = + ill_get_ILL_String (gc, element, "street-and-number"); + r->post_office_box = + ill_get_ILL_String (gc, element, "post-office-box"); + r->city = ill_get_ILL_String (gc, element, "city"); + r->region = ill_get_ILL_String (gc, element, "region"); + r->country = ill_get_ILL_String (gc, element, "country"); + r->postal_code = ill_get_ILL_String (gc, element, "postal-code"); + return r; +} + +ILL_System_Address *ill_get_System_Address ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_System_Address *r = + (ILL_System_Address *) odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->telecom_service_identifier = + ill_get_ILL_String (gc, element, "telecom-service-identifier"); + r->telecom_service_address = + ill_get_ILL_String (gc, element, "telecom-service-addreess"); + return r; +} + +ILL_Delivery_Address *ill_get_Delivery_Address ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Delivery_Address *r = + (ILL_Delivery_Address *) odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->postal_address = + ill_get_Postal_Address (gc, element, "postal-address"); + r->electronic_address = + ill_get_System_Address (gc, element, "electronic-address"); + return r; +} + +ILL_Search_Type *ill_get_Search_Type ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Search_Type *r = (ILL_Search_Type *) odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->level_of_service = ill_get_ILL_String (gc, element, "level-of-service"); + r->need_before_date = ill_get_ILL_ISO_Date (gc, element, + "need-before-date", 0); + r->expiry_date = ill_get_ILL_ISO_Date (gc, element, "expiry-date", 0); + r->expiry_flag = ill_get_enumerated (gc, element, "expiry-flag", 3); + + return r; +} + +ILL_Request *ill_get_ILLRequest ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Request *r = (ILL_Request *) odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->protocol_version_num = + ill_get_enumerated (gc, element, "protocol-version-num", + ILL_Request_version_2); + + r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); + r->service_date_time = + ill_get_Service_Date_Time (gc, element, "service-date-time"); + r->requester_id = ill_get_System_Id (gc, element, "requester-id"); + r->responder_id = ill_get_System_Id (gc, element, "responder-id"); + r->transaction_type = + ill_get_enumerated(gc, element, "transaction-type", 1); + + r->delivery_address = + ill_get_Delivery_Address (gc, element, "delivery-address"); + r->delivery_service = 0; /* TODO */ + /* ill_get_Delivery_Service (gc, element, "delivery-service"); */ + r->billing_address = + ill_get_Delivery_Address (gc, element, "billing-address"); + + r->num_iLL_service_type = 1; + r->iLL_service_type = (ILL_Service_Type **) + odr_malloc (o, sizeof(*r->iLL_service_type)); + *r->iLL_service_type = + ill_get_enumerated (gc, element, "ill-service-type", + ILL_Service_Type_copy_non_returnable); + + r->responder_specific_service = 0; + r->requester_optional_messages = + ill_get_Requester_Optional_Messages_Type ( + gc, element,"requester-optional-messages"); + r->search_type = ill_get_Search_Type(gc, element, "search-type"); + r->num_supply_medium_info_type = 0; + r->supply_medium_info_type = 0; + + r->place_on_hold = ill_get_enumerated ( + gc, element, "place-on-hold", + ILL_Place_On_Hold_Type_according_to_responder_policy); + r->client_id = ill_get_Client_Id (gc, element, "client-id"); + + r->item_id = ill_get_Item_Id (gc, element, "item-id"); + r->supplemental_item_description = 0; + r->cost_info_type = 0; + r->copyright_compliance = + ill_get_ILL_String(gc, element, "copyright-complicance"); + r->third_party_info_type = 0; + r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0); + r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0); + r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); + r->forward_note = ill_get_ILL_String(gc, element, "forward-note"); + r->num_iLL_request_extensions = 0; + r->iLL_request_extensions = 0; + return r; +} + +ILL_ItemRequest *ill_get_ItemRequest ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_ItemRequest *r = (ILL_ItemRequest *)odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->protocol_version_num = + ill_get_enumerated (gc, element, "protocol-version-num", + ILL_Request_version_2); + + r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); + r->service_date_time = + ill_get_Service_Date_Time (gc, element, "service-date-time"); + r->requester_id = ill_get_System_Id (gc, element, "requester-id"); + r->responder_id = ill_get_System_Id (gc, element, "responder-id"); + r->transaction_type = + ill_get_enumerated(gc, element, "transaction-type", 1); + + r->delivery_address = + ill_get_Delivery_Address (gc, element, "delivery-address"); + r->delivery_service = 0; /* TODO */ + /* ill_get_Delivery_Service (gc, element, "delivery-service"); */ + r->billing_address = + ill_get_Delivery_Address (gc, element, "billing-address"); + + r->num_iLL_service_type = 1; + r->iLL_service_type = (ILL_Service_Type **) + odr_malloc (o, sizeof(*r->iLL_service_type)); + *r->iLL_service_type = + ill_get_enumerated (gc, element, "ill-service-type", + ILL_Service_Type_copy_non_returnable); + + r->responder_specific_service = 0; + r->requester_optional_messages = + ill_get_Requester_Optional_Messages_Type ( + gc, element,"requester-optional-messages"); + r->search_type = ill_get_Search_Type(gc, element, "search-type"); + r->num_supply_medium_info_type = 0; + r->supply_medium_info_type = 0; + + r->place_on_hold = ill_get_enumerated ( + gc, element, "place-on-hold", + ILL_Place_On_Hold_Type_according_to_responder_policy); + r->client_id = ill_get_Client_Id (gc, element, "client-id"); + + r->item_id = ill_get_Item_Id (gc, element, "item-id"); + r->supplemental_item_description = 0; + r->cost_info_type = 0; + r->copyright_compliance = + ill_get_ILL_String(gc, element, "copyright-complicance"); + r->third_party_info_type = 0; + r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0); + r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0); + r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); + r->forward_note = ill_get_ILL_String(gc, element, "forward-note"); + r->num_iLL_request_extensions = 0; + r->iLL_request_extensions = 0; + return r; +} + +ILL_Cancel *ill_get_Cancel ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_Cancel *r = (ILL_Cancel *)odr_malloc(o, sizeof(*r)); + char element[128]; + + strcpy(element, name); + if (sub) + { + strcat (element, ","); + strcat (element, sub); + } + r->protocol_version_num = + ill_get_enumerated (gc, element, "protocol-version-num", + ILL_Request_version_2); + + r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); + r->service_date_time = + ill_get_Service_Date_Time (gc, element, "service-date-time"); + r->requester_id = ill_get_System_Id (gc, element, "requester-id"); + r->responder_id = ill_get_System_Id (gc, element, "responder-id"); + r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); + + r->num_cancel_extensions = 0; + r->cancel_extensions = 0; + return r; +} + +ILL_APDU *ill_get_APDU ( + struct ill_get_ctl *gc, const char *name, const char *sub) +{ + ODR o = gc->odr; + ILL_APDU *r = (ILL_APDU *)odr_malloc(o, sizeof(*r)); + char element[128]; + const char *v; + + strcpy (element, name); + strcat (element, ",which"); + + v = (gc->f)(gc->clientData, element); + if (!v) + v = "request"; + if (!strcmp (v, "request")) + { + r->which = ILL_APDU_ILL_Request; + r->u.illRequest = ill_get_ILLRequest(gc, name, sub); + } + else if (!strcmp (v, "cancel")) + { + r->which = ILL_APDU_Cancel; + r->u.Cancel = ill_get_Cancel(gc, name, sub); + } + else + return 0; + return r; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/ill.tcl b/dependencies/yaz-2.1.28/src/ill.tcl new file mode 100644 index 0000000..30aba5d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ill.tcl @@ -0,0 +1,63 @@ +# Config File for ILL +# $Id: ill.tcl,v 1.1 2003/10/27 12:21:30 adam Exp $ +# ---------------------------------------------------------- +# Prefix Specifications +# +# 1: C function prefix +# 2: C type prefix +# 3: C preprocessor prefix + +# Default prefix +set default-prefix {ill_ ILL_ ILL_} + +# ---------------------------------------------------------- +set m ISO-10161-ILL-1 + +# Filename +set filename($m) ill-core + +# Header initialization code +set init($m,h) " +" + +# Header body code +set body($m,h) " +#ifdef __cplusplus +extern \"C\" \{ +#endif + +#ifdef __cplusplus +\} +#endif +" + +# C body code +set body($m,c) " +" + +# Some mappings - that map ill_ILL_ to ill_ +set map($m,ILL-APDU) APDU +set map($m,ILL-Request) Request +set map($m,ILL-Answer) Answer +set map($m,ILL-String) String +set map($m,ILL-APDU-Type) APDU_Type +set map($m,ILL-Service-Type) Service_Type +set map($m,Service_Date_Time_0) Service_Date_this +set map($m,Service_Date_Time_1) Service_Date_original +set map($m,Overdue_0) Overdue_ExtensionS +set membermap($m,APDU,ILL-Request) {APDU_ILL_Request illRequest} +set membermap($m,APDU,ILL-Answer) {APDU_ILL_Answer illAnswer} + +# ---------------------------------------------------------- +set m Z39.50-extendedService-ItemOrder-ItemRequest-1 +# Filename +set filename($m) item-req + +# Mappings of a few basic types +proc asnBasicPrintableString {} { + return {odr_visiblestring char} +} + +proc asnBasicANY {} { + return {odr_any Odr_any} +} diff --git a/dependencies/yaz-2.1.28/src/ill9702.asn b/dependencies/yaz-2.1.28/src/ill9702.asn new file mode 100644 index 0000000..e947489 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/ill9702.asn @@ -0,0 +1,1165 @@ +-- use of parameters and types is to be consistent with their definitions in clause 3 + +ISO-10161-ILL-1 DEFINITIONS EXPLICIT TAGS ::= + +BEGIN +-- ISO-10161-ILL-1 refers to the ILL ISO standard 10161 version 1 +-- and version 2 as specified in ISO standard 10161 Amendment 1 + +ILL-APDU ::= CHOICE { + ILL-Request, + Forward-Notification, + Shipped, + ILL-Answer, + Conditional-Reply, + Cancel, + Cancel-Reply, + Received, + Recall, + Returned, + Checked-In, + Overdue, + Renew, + Renew-Answer, + Lost, + Damaged, + Message, + Status-Query, + Status-Or-Error-Report, + Expired + } + +-- The tagging scheme used in the APDU definitions is as follows: +-- each named type that is a component type of an APDU definition is assigned a different tag +-- that is unique within the set of APDU definitions. Where these component types themselves +-- have structure, the tagging within such type definitions has only local scope. + +ILL-Request ::= [APPLICATION 1] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, + delivery-address [6] IMPLICIT Delivery-Address OPTIONAL, + delivery-service Delivery-Service OPTIONAL, + billing-address [8] IMPLICIT Delivery-Address OPTIONAL, + iLL-service-type [9] IMPLICIT SEQUENCE SIZE (1..5) OF + ILL-Service-Type, + -- this sequence is a list, in order of preference + responder-specific-service [10] EXTERNAL OPTIONAL, + -- use direct reference style + requester-optional-messages [11] IMPLICIT Requester-Optional-Messages-Type, + search-type [12] IMPLICIT Search-Type OPTIONAL, + supply-medium-info-type [13] IMPLICIT SEQUENCE SIZE (1..7) OF + Supply-Medium-Info-Type OPTIONAL, + -- this sequence is a list, in order of preference, + -- with a maximum number of 7 entries + place-on-hold [14] IMPLICIT Place-On-Hold-Type DEFAULT 3, + client-id [15] IMPLICIT Client-Id OPTIONAL, + item-id [16] IMPLICIT Item-Id, + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + cost-info-type [18] IMPLICIT Cost-Info-Type OPTIONAL, + copyright-compliance [19] ILL-String OPTIONAL, + third-party-info-type [20] IMPLICIT Third-Party-Info-Type OPTIONAL, + -- mandatory when initiating a FORWARD service or an + -- ILL-REQUEST service for a partitioned ILL sub- + -- transaction or when initiating an ILL-REQUEST service for + -- an ILL sub-transaction if the received ILL-REQUEST + -- included an "already-tried-list";optional otherwise + retry-flag [21] IMPLICIT BOOLEAN DEFAULT FALSE, + forward-flag [22] IMPLICIT BOOLEAN DEFAULT FALSE, + requester-note [46] ILL-String OPTIONAL, + forward-note [47] ILL-String OPTIONAL, + iLL-request-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Forward-Notification ::= [APPLICATION 2] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id, + -- mandatory in this APDU + responder-address [24] IMPLICIT System-Address OPTIONAL, + intermediary-id [25] IMPLICIT System-Id, + notification-note [48] ILL-String OPTIONAL, + forward-notification-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Shipped ::= [APPLICATION 3] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-address [24] IMPLICIT System-Address OPTIONAL, + intermediary-id [25] IMPLICIT System-Id OPTIONAL, + supplier-id [26] IMPLICIT System-Id OPTIONAL, + client-id [15] IMPLICIT Client-Id OPTIONAL, + transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + shipped-service-type [27] IMPLICIT Shipped-Service-Type, + responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type + OPTIONAL, + supply-details [29] IMPLICIT Supply-Details, + return-to-address [30] IMPLICIT Postal-Address OPTIONAL, + responder-note [46] ILL-String OPTIONAL, + shipped-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +ILL-Answer ::= [APPLICATION 4] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + transaction-results [31] IMPLICIT Transaction-Results, + results-explanation [32] CHOICE { + conditional-results [1] Conditional-Results, + -- chosen if transaction-results=CONDITIONAL + retry-results [2] Retry-Results, + -- chosen if transaction-results=RETRY + unfilled-results [3] Unfilled-Results, + --chosen if transaction-results=UNFILLED + locations-results [4] Locations-Results, + -- chosen if transaction-results=LOCATIONS-PROVIDED + will-supply-results [5] Will-Supply-Results, + -- chosen if transaction-results=WILL-SUPPLY + hold-placed-results [6] Hold-Placed-Results, + -- chosen if transaction-results=HOLD-PLACED + estimate-results [7] Estimate-Results + -- chosen if transaction-results=ESTIMATE + } OPTIONAL, + -- optional if transaction-results equals RETRY, UNFILLED, + -- WILL-SUPPLY or HOLD-PLACED; + -- required if transaction-results equals CONDITIONAL, + -- LOCATIONS-PROVIDED or ESTIMATE + responder-specific-results [33] EXTERNAL OPTIONAL, + -- this type is mandatory if results-explanation + -- chosen for any result + -- has the value "responder-specific". + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + send-to-list [23] IMPLICIT Send-To-List-Type OPTIONAL, + already-tried-list [34] IMPLICIT Already-Tried-List-Type OPTIONAL, + responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type + OPTIONAL, + responder-note [46] ILL-String OPTIONAL, + ill-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Conditional-Reply ::= [APPLICATION 5] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + answer [35] IMPLICIT BOOLEAN, + requester-note [46] ILL-String OPTIONAL, + conditional-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Cancel ::= [APPLICATION 6] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + requester-note [46] ILL-String OPTIONAL, + cancel-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Cancel-Reply ::= [APPLICATION 7] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + answer [35] IMPLICIT BOOLEAN, + responder-note [46] ILL-String OPTIONAL, + cancel-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Received ::= [APPLICATION 8] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + supplier-id [26] IMPLICIT System-Id OPTIONAL, + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + date-received [36] IMPLICIT ISO-Date, + shipped-service-type [27] IMPLICIT Shipped-Service-Type, + requester-note [46] ILL-String OPTIONAL, + received-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Recall ::= [APPLICATION 9] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-note [46] ILL-String OPTIONAL, + recall-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Returned ::= [APPLICATION 10] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + date-returned [37] IMPLICIT ISO-Date, + returned-via [38] Transportation-Mode OPTIONAL, + insured-for [39] IMPLICIT Amount OPTIONAL, + requester-note [46] ILL-String OPTIONAL, + returned-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Checked-In ::= [APPLICATION 11] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + date-checked-in [40] IMPLICIT ISO-Date, + responder-note [46] ILL-String OPTIONAL, + checked-in-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Overdue ::= [APPLICATION 12] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + date-due [41] IMPLICIT Date-Due, + responder-note [46] ILL-String OPTIONAL, + overdue-extensions [49] SEQUENCE OF Extension OPTIONAL + } + +Renew ::= [APPLICATION 13] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + desired-due-date [42] IMPLICIT ISO-Date OPTIONAL, + requester-note [46] ILL-String OPTIONAL, + renew-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Renew-Answer ::= [APPLICATION 14] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + answer [35] IMPLICIT BOOLEAN, + date-due [41] IMPLICIT Date-Due OPTIONAL, + responder-note [46] ILL-String OPTIONAL, + renew-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Lost ::= [APPLICATION 15] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + note [46] ILL-String OPTIONAL, + lost-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Damaged ::= [APPLICATION 16] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + damaged-details [5] IMPLICIT Damaged-Details OPTIONAL, + -- this parameter may only be present in APDU's with a + -- protocol-version-num value of 2 or greater + note [46] ILL-String OPTIONAL, + damaged-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Message ::= [APPLICATION 17] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + note [46] ILL-String, + message-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Status-Query ::= [APPLICATION 18] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + note [46] ILL-String OPTIONAL, + status-query-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Status-Or-Error-Report ::= [APPLICATION 19] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + reason-no-report [43] IMPLICIT Reason-No-Report OPTIONAL, + -- mandatory if no report is present; + -- not present otherwise + status-report [44] IMPLICIT Status-Report OPTIONAL, + error-report [45] IMPLICIT Error-Report OPTIONAL, + note [46] ILL-String OPTIONAL, + status-or-error-report-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Expired ::= [APPLICATION 20] SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id, + service-date-time [2] IMPLICIT Service-Date-Time, + requester-id [3] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + responder-id [4] IMPLICIT System-Id OPTIONAL, + -- mandatory when using store-and-forward communications + -- optional when using connection-oriented communications + expired-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } + +Account-Number ::= ILL-String + +Already-Forwarded ::= SEQUENCE { + responder-id [0] IMPLICIT System-Id, + responder-address [1] IMPLICIT System-Address OPTIONAL + } + +Already-Tried-List-Type ::= SEQUENCE OF System-Id + +Amount ::= SEQUENCE { + currency-code [0] IMPLICIT PrintableString (SIZE (3)) OPTIONAL, + -- values defined in ISO 4217-1981 + monetary-value [1] IMPLICIT AmountString (SIZE (1..10)) + } + +AmountString ::= PrintableString (FROM ("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"0"|" "|"."|",")) + +Client-Id ::= SEQUENCE { + client-name [0] ILL-String OPTIONAL, + client-status [1] ILL-String OPTIONAL, + client-identifier [2] ILL-String OPTIONAL + } + +Conditional-Results ::= SEQUENCE { + conditions [0] IMPLICIT ENUMERATED { + cost-exceeds-limit (13), + charges (14), + prepayment-required (15), + lacks-copyright-compliance (16), + library-use-only (22), + no-reproduction (23), + client-signature-required (24), + special-collections-supervision-required (25), + other (27), + responder-specific (28), + proposed-delivery-service (30) + }, + date-for-reply [1] IMPLICIT ISO-Date OPTIONAL, + locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, + proposed-delivery-service Delivery-Service OPTIONAL + -- this parameter specifies a proposed delivery service the + -- acceptance of which is a condition of supply. It may be a + -- physical service or an electronic service. This parameter + -- may only be present in APDUs with a + -- protocol-version-num value of 2 or greater + } + +Cost-Info-Type ::= SEQUENCE { + account-number [0] Account-Number OPTIONAL, + maximum-cost [1] IMPLICIT Amount OPTIONAL, + reciprocal-agreement [2] IMPLICIT BOOLEAN DEFAULT FALSE, + will-pay-fee [3] IMPLICIT BOOLEAN DEFAULT FALSE, + payment-provided [4] IMPLICIT BOOLEAN DEFAULT FALSE + } + +Current-State ::= ENUMERATED { + nOT-SUPPLIED (1), + pENDING (2), + iN-PROCESS (3), + fORWARD (4), + cONDITIONAL (5), + cANCEL-PENDING (6), + cANCELLED (7), + sHIPPED (8), + rECEIVED (9), + rENEW-PENDING (10), + nOT-RECEIVED-OVERDUE (11), + rENEW-OVERDUE (12), + oVERDUE (13), + rETURNED (14), + cHECKED-IN (15), + rECALL (16), + lOST (17), + uNKNOWN (18) + } + +Damaged-Details ::= SEQUENCE { + document-type-id [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + -- identifies an OSI document type registered in accordance + -- with ISO 9834-2, for use in an automated environment + damaged-portion CHOICE { + complete-document [1] IMPLICIT NULL, + specific-units [2] IMPLICIT SEQUENCE + OF INTEGER + -- the nature and extent of a "unit" is implicit in the + -- value of document-type-id if one is supplied + } + } + +Date-Due ::= SEQUENCE { + date-due-field [0] IMPLICIT ISO-Date, + renewable [1] IMPLICIT BOOLEAN DEFAULT TRUE + } + +Delivery-Address ::= SEQUENCE { + postal-address [0] IMPLICIT Postal-Address OPTIONAL, + electronic-address [1] IMPLICIT System-Address OPTIONAL + } + +Delivery-Service ::= CHOICE { + physical-delivery [7] Transportation-Mode, + electronic-delivery [50] IMPLICIT SEQUENCE OF Electronic-Delivery-Service + -- electronic-delivery may only be present in APDUs + -- with a protocol-version-num value of 2 or greater + } + +Electronic-Delivery-Service ::= SEQUENCE { + -- the first four parameters are intended to be used in an automated + -- environment + e-delivery-service [0] IMPLICIT SEQUENCE { + -- identifies the kind of electronic delivery service, e.g. + -- MOTIS IPM,FTAM, etc., using the assigned object + -- identifier for the standard e.g. {joint-iso-ccitt mhs-motis + -- ipms} + e-delivery-mode [0] IMPLICIT OBJECT IDENTIFIER, + e-delivery-parameters [1] ANY DEFINED BY e-delivery-mode + } OPTIONAL, + document-type [1] IMPLICIT SEQUENCE { + document-type-id [2] IMPLICIT OBJECT IDENTIFIER, + -- identifies an OSI document type registered in accordance + -- with ISO 9834-2 + document-type-parameters [3] ANY DEFINED BY document-type-id + -- any parameters relating to the registered document type + } OPTIONAL, + e-delivery-description [4] ILL-String OPTIONAL, + -- holds a human readable name or description of the + -- required electronic delivery service and document type; + -- this may also be used to identify an electronic delivery + -- service for which there is no object identifier. + -- This parameter may be present instead of, or in addition + -- to, the previous 4 parameters + e-delivery-details [5] CHOICE { + e-delivery-address [0] IMPLICIT System-Address, + e-delivery-id [1] IMPLICIT System-Id + }, + name-or-code [6] ILL-String OPTIONAL, + -- holds a human-readable identifier or correlation + -- information for the document as shipped, e.g. a directory + -- and/or file name or message-id + delivery-time [7] IMPLICIT ISO-Time OPTIONAL + -- holds the requester's preferred delivery time or + -- the responder's proposed or actual delivery time + } + +Error-Report ::= SEQUENCE { + correlation-information [0] ILL-String, + report-source [1] IMPLICIT Report-Source, + user-error-report [2] User-Error-Report OPTIONAL, + -- mandatory if report-source is "user"; not present otherwise + provider-error-report [3] Provider-Error-Report OPTIONAL + -- mandatory if report-source is "provider"; not + -- present otherwise + } + +Estimate-Results ::= SEQUENCE { + cost-estimate [0] ILL-String, + locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL + } + +Extension ::= SEQUENCE { + identifier [0] IMPLICIT INTEGER, + critical [1] IMPLICIT BOOLEAN DEFAULT FALSE, + item [2] ANY DEFINED BY identifier + } + +General-Problem ::= ENUMERATED { + unrecognized-APDU (1), + mistyped-APDU (2), + badly-structured-APDU (3), + protocol-version-not-supported (4), + other (5) + } + +History-Report ::= SEQUENCE { + date-requested [0] IMPLICIT ISO-Date OPTIONAL, + author [1] ILL-String OPTIONAL, + title [2] ILL-String OPTIONAL, + author-of-article [3] ILL-String OPTIONAL, + title-of-article [4] ILL-String OPTIONAL, + date-of-last-transition [5] IMPLICIT ISO-Date, + most-recent-service [6] IMPLICIT ENUMERATED { + iLL-REQUEST (1), + fORWARD (21), + fORWARD-NOTIFICATION (2), + sHIPPED (3), + iLL-ANSWER (4), + cONDITIONAL-REPLY (5), + cANCEL (6), + cANCEL-REPLY (7), + rECEIVED (8), + rECALL (9), + rETURNED (10), + cHECKED-IN (11), + rENEW-ANSWER (14), + lOST (15), + dAMAGED (16), + mESSAGE (17), + sTATUS-QUERY (18), + sTATUS-OR-ERROR-REPORT (19), + eXPIRED (20) + }, + date-of-most-recent-service [7] IMPLICIT ISO-Date, + initiator-of-most-recent-service [8] IMPLICIT System-Id, + shipped-service-type [9] IMPLICIT Shipped-Service-Type OPTIONAL, + -- If the information is available, i.e. if a SHIPPED or + -- RECEIVED APDU has been sent or received, then the + -- value in this parameter shall be supplied. + -- Value must contain the most current information, e.g. if a + -- requester has received a SHIPPED APDU and then + -- invokes a RECEIVED.request, then the value from the + -- RECEIVED.request is used + transaction-results [10] IMPLICIT Transaction-Results OPTIONAL, + -- If the information is available, i.e. if an ILL-ANWSER + -- APDU has been sent or received, then the value in this + -- parameter shall be supplied. + most-recent-service-note [11] ILL-String OPTIONAL + -- If the information is available, i.e. if a note has been + -- supplied in the most recent service primitive, then the + -- value in this parameter shall be supplied. + } + +Hold-Placed-Results ::= SEQUENCE { + estimated-date-available [0] IMPLICIT ISO-Date, + hold-placed-medium-type [1] IMPLICIT Medium-Type OPTIONAL, + locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL + } + +ILL-APDU-Type ::= ENUMERATED { + iLL-REQUEST (1), + fORWARD-NOTIFICATION (2), + sHIPPED (3), + iLL-ANSWER (4), + cONDITIONAL-REPLY (5), + cANCEL (6), + cANCEL-REPLY (7), + rECEIVED (8), + rECALL (9), + rETURNED (10), + cHECKED-IN (11), + oVERDUE (12), + rENEW (13), + rENEW-ANSWER (14), + lOST (15), + dAMAGED (16), + mESSAGE (17), + sTATUS-QUERY (18), + sTATUS-OR-ERROR-REPORT (19), + eXPIRED (20) + } + +ILL-Service-Type ::= ENUMERATED { + loan (1), + copy-non-returnable (2), + locations (3), + estimate (4), + responder-specific (5) + } + +ILL-String ::= CHOICE { + GeneralString, + -- may contain any ISO registered G (graphic) and C + -- (control) character set + EDIFACTString + } + -- may not include leading or trailing spaces + -- may not consist only of space (" ") or non-printing + -- characters + +Intermediary-Problem ::= ENUMERATED { + cannot-send-onward (1) + } + +ISO-Date ::= VisibleString + -- conforms to ISO 8601 + -- length = 8 + -- fixed + -- YYYYMMDD + +ISO-Time ::= VisibleString + -- conforms to ISO 8601 + -- length = 6, + -- fixed + -- HHMMSS + -- local time of person or institution invoking service + +Item-Id ::= SEQUENCE { + item-type [0] IMPLICIT ENUMERATED { + monograph (1), + serial (2), + other (3) + } OPTIONAL, + held-medium-type [1] IMPLICIT Medium-Type OPTIONAL, + call-number [2] ILL-String OPTIONAL, + author [3] ILL-String OPTIONAL, + title [4] ILL-String OPTIONAL, + sub-title [5] ILL-String OPTIONAL, + sponsoring-body [6] ILL-String OPTIONAL, + place-of-publication [7] ILL-String OPTIONAL, + publisher [8] ILL-String OPTIONAL, + series-title-number [9] ILL-String OPTIONAL, + volume-issue [10] ILL-String OPTIONAL, + edition [11] ILL-String OPTIONAL, + publication-date [12] ILL-String OPTIONAL, + publication-date-of-component [13] ILL-String OPTIONAL, + author-of-article [14] ILL-String OPTIONAL, + title-of-article [15] ILL-String OPTIONAL, + pagination [16] ILL-String OPTIONAL, + national-bibliography-no [17] EXTERNAL OPTIONAL, + iSBN [18] ILL-String (SIZE (10)) OPTIONAL, + -- must conform to ISO 2108-1978 + iSSN [19] ILL-String (SIZE (8)) OPTIONAL, + -- must conform to ISO 3297-1986 + system-no [20] EXTERNAL OPTIONAL, + additional-no-letters [21] ILL-String OPTIONAL, + verification-reference-source [22] ILL-String OPTIONAL + } + +Location-Info ::= SEQUENCE { + location-id [0] IMPLICIT System-Id, + location-address [1] IMPLICIT System-Address OPTIONAL, + location-note [2] ILL-String OPTIONAL + } + +Locations-Results ::= SEQUENCE { + reason-locs-provided [0] IMPLICIT Reason-Locs-Provided OPTIONAL, + locations [1] IMPLICIT SEQUENCE OF Location-Info + } + +Medium-Type ::= ENUMERATED { + printed (1), + microform (3), + film-or-video-recording (4), + audio-recording (5), + machine-readable (6), + other (7) + } + +Name-Of-Person-Or-Institution ::= CHOICE { + name-of-person [0] ILL-String, + name-of-institution [1] ILL-String + } + +Person-Or-Institution-Symbol ::= CHOICE { + person-symbol [0] ILL-String, + institution-symbol [1] ILL-String + } + +Place-On-Hold-Type ::= ENUMERATED { + yes (1), + no (2), + according-to-responder-policy (3) + } + +Postal-Address ::= SEQUENCE { + name-of-person-or-institution [0] Name-Of-Person-Or-Institution OPTIONAL, + extended-postal-delivery-address [1] ILL-String OPTIONAL, + street-and-number [2] ILL-String OPTIONAL, + post-office-box [3] ILL-String OPTIONAL, + city [4] ILL-String OPTIONAL, + region [5] ILL-String OPTIONAL, + country [6] ILL-String OPTIONAL, + postal-code [7] ILL-String OPTIONAL + } + +Provider-Error-Report ::= CHOICE { + general-problem [0] IMPLICIT General-Problem, + transaction-id-problem [1] IMPLICIT Transaction-Id-Problem, + state-transition-prohibited [2] IMPLICIT State-Transition-Prohibited + } + +Reason-Locs-Provided ::= ENUMERATED { + in-use-on-loan (1), + in-process (2), + lost (3), + non-circulating (4), + not-owned (5), + on-order (6), + volume-issue-not-yet-available (7), + at-bindery (8), + lacking (9), + not-on-shelf (10), + on-reserve (11), + poor-condition (12), + cost-exceeds-limit (13), + on-hold (19), + other (27), + responder-specific (28) + } + +Reason-No-Report ::= ENUMERATED { + temporary (1), + permanent (2) + } + +Reason-Unfilled ::= ENUMERATED { + in-use-on-loan (1), + in-process (2), + lost (3), + non-circulating (4), + not-owned (5), + on-order (6), + volume-issue-not-yet-available (7), + at-bindery (8), + lacking (9), + not-on-shelf (10), + on-reserve (11), + poor-condition (12), + cost-exceeds-limit (13), + charges (14), + prepayment-required (15), + lacks-copyright-compliance (16), + not-found-as-cited (17), + locations-not-found (18), + on-hold (19), + policy-problem (20), + mandatory-messaging-not-supported (21), + expiry-not-supported (22) , + requested-delivery-services-not-supported (23), + preferred-delivery-time-not-possible (24), + other (27), + responder-specific (28) + } + +Report-Source ::= ENUMERATED { + user (1), + provider (2) + } + +Requester-Optional-Messages-Type ::= SEQUENCE { + can-send-RECEIVED [0] IMPLICIT BOOLEAN, + can-send-RETURNED [1] IMPLICIT BOOLEAN, + requester-SHIPPED [2] IMPLICIT ENUMERATED { + requires (1), + desires (2), + neither (3) + }, + requester-CHECKED-IN [3] IMPLICIT ENUMERATED { + requires (1), + desires (2), + neither (3) + } + } + +Responder-Optional-Messages-Type ::= SEQUENCE { + can-send-SHIPPED [0] IMPLICIT BOOLEAN, + can-send-CHECKED-IN [1] IMPLICIT BOOLEAN, + responder-RECEIVED [2] IMPLICIT ENUMERATED { + requires (1), + desires (2), + neither (3) + }, + responder-RETURNED [3] IMPLICIT ENUMERATED { + requires (1), + desires (2), + neither (3) + } + } + +Retry-Results ::= SEQUENCE { + reason-not-available [0] IMPLICIT ENUMERATED { + in-use-on-loan (1), + in-process (2), + on-order (6), + volume-issue-not-yet-available (7), + at-bindery (8), + cost-exceeds-limit (13), + charges (14), + prepayment-required (15), + lacks-copyright-compliance (16), + not-found-as-cited (17), + on-hold (19), + other (27), + responder-specific (28) + } OPTIONAL, + retry-date [1] IMPLICIT ISO-Date OPTIONAL, + locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL + } + +Search-Type ::= SEQUENCE { + level-of-service [0] ILL-String (SIZE (1)) OPTIONAL, + need-before-date [1] IMPLICIT ISO-Date OPTIONAL, + expiry-flag [2] IMPLICIT ENUMERATED { + need-Before-Date (1), + other-Date (2), + no-Expiry (3) + } DEFAULT 3, + -- value of "need-Before-Date" indicates that + -- need-before-date also specifies transaction expiry + -- date + expiry-date [3] IMPLICIT ISO-Date OPTIONAL + -- alternative expiry date can be used only when expiry-flag + -- is set to "Other-Date" + } + +Security-Problem ::= ILL-String + +Send-To-List-Type ::= SEQUENCE OF SEQUENCE { + system-id [0] IMPLICIT System-Id, + account-number [1] Account-Number OPTIONAL, + system-address [2] IMPLICIT System-Address OPTIONAL + } + +Service-Date-Time ::= SEQUENCE { + date-time-of-this-service [0] IMPLICIT SEQUENCE { + date [0] IMPLICIT ISO-Date, + time [1] IMPLICIT ISO-Time OPTIONAL + -- mandatory for 2nd and subsequent services + -- invoked for a given + -- ILL-transaction on the same day + }, + date-time-of-original-service [1] IMPLICIT SEQUENCE { + date [0] IMPLICIT ISO-Date, + time [1] IMPLICIT ISO-Time OPTIONAL + } OPTIONAL + } + +Shipped-Service-Type ::= ILL-Service-Type (loan | copy-non-returnable) + -- subtype of ILL-Service-Type + +State-Transition-Prohibited ::= SEQUENCE { + aPDU-type [0] IMPLICIT ILL-APDU-Type, + current-state [1] IMPLICIT Current-State + } + +Status-Report ::= SEQUENCE { + user-status-report [0] IMPLICIT History-Report, + provider-status-report [1] IMPLICIT Current-State + } + +Supplemental-Item-Description ::= SEQUENCE OF EXTERNAL + -- the syntax of supplementary item description information is defined outside this standard + +Supply-Details ::= SEQUENCE { + date-shipped [0] IMPLICIT ISO-Date OPTIONAL, + date-due [1] IMPLICIT Date-Due OPTIONAL, + chargeable-units [2] IMPLICIT INTEGER (1..9999) OPTIONAL, + cost [3] IMPLICIT Amount OPTIONAL, + shipped-conditions [4] IMPLICIT ENUMERATED { + library-use-only (22), + no-reproduction (23), + client-signature-required (24), + special-collections-supervision-required (25), + other (27) + } OPTIONAL, + shipped-via CHOICE { + physical-delivery [5] Transportation-Mode, + electronic-delivery [50] IMPLICIT + Electronic-Delivery-Service + } OPTIONAL, + -- electronic-delivery may only be present in APDUs with a + -- protocol-version-num value of 2 or greater + insured-for [6] IMPLICIT Amount OPTIONAL, + return-insurance-require [7] IMPLICIT Amount OPTIONAL, + no-of-units-per-medium [8] IMPLICIT SEQUENCE OF Units-Per-Medium-Type + OPTIONAL + } + +Supply-Medium-Info-Type ::= SEQUENCE { + supply-medium-type [0] IMPLICIT Supply-Medium-Type, + medium-characteristics [1] ILL-String OPTIONAL + } + +Supply-Medium-Type ::= ENUMERATED { + printed (1), + photocopy (2), + microform (3), + film-or-video-recording (4), + audio-recording (5), + machine-readable (6), + other (7) + } + +System-Address ::= SEQUENCE { + telecom-service-identifier [0] ILL-String OPTIONAL, + telecom-service-address [1] ILL-String OPTIONAL + } + +System-Id ::= SEQUENCE { + --at least one of the following must be present + person-or-institution-symbol [0] Person-Or-Institution-Symbol OPTIONAL, + name-of-person-or-institution [1] Name-Of-Person-Or-Institution OPTIONAL + } + +Third-Party-Info-Type ::= SEQUENCE { + permission-to-forward [0] IMPLICIT BOOLEAN DEFAULT FALSE, + permission-to-chain [1] IMPLICIT BOOLEAN DEFAULT FALSE, + permission-to-partition [2] IMPLICIT BOOLEAN DEFAULT FALSE, + permission-to-change-send-to-list [3] IMPLICIT BOOLEAN DEFAULT FALSE, + initial-requester-address [4] IMPLICIT System-Address OPTIONAL, + -- mandatory when initiating a FORWARD service or an + -- ILL-REQUEST service for a partitioned ILL + -- sub-transaction; optional otherwise + preference [5] IMPLICIT ENUMERATED { + ordered (1), + unordered (2) + } DEFAULT 2, + send-to-list [6] IMPLICIT Send-To-List-Type OPTIONAL, + already-tried-list [7] IMPLICIT Already-Tried-List-Type OPTIONAL + -- mandatory when initiating a FORWARD service, or when + -- initiating an ILL-REQUEST service for an ILL + -- sub-transaction if the received ILL-REQUEST included an + -- "already-tried-list"; optional otherwise + } + +Transaction-Id ::= SEQUENCE { + initial-requester-id [0] IMPLICIT System-Id OPTIONAL, + -- mandatory for sub-transactions; not called + -- "requester-id" to distinguish id of initial-requester + --from id of requester of sub-transaction if there is one + transaction-group-qualifier [1] ILL-String, + transaction-qualifier [2] ILL-String, + sub-transaction-qualifier [3] ILL-String OPTIONAL + -- mandatory for sub-transactions + } + +Transaction-Id-Problem ::= ENUMERATED { + duplicate-transaction-id (1), + invalid-transaction-id (2), + unknown-transaction-id (3) + } + +Transaction-Results ::= ENUMERATED { + conditional (1), + retry (2), + unfilled (3), + locations-provided (4), + will-supply (5), + hold-placed (6), + estimate (7) + } + +Transaction-Type ::= ENUMERATED { + simple (1), + chained (2), + partitioned (3) + } + +Transportation-Mode ::= ILL-String + +Unable-To-Perform ::= ENUMERATED { + not-available (1), + resource-limitation (2), + other (3) + } + +Unfilled-Results ::= SEQUENCE { + reason-unfilled [0] IMPLICIT Reason-Unfilled, + locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL + } + +Units-Per-Medium-Type ::= SEQUENCE { + medium [0] Supply-Medium-Type, + no-of-units [1] INTEGER (1..9999) + } + +User-Error-Report ::= CHOICE { + already-forwarded [0] IMPLICIT Already-Forwarded, + intermediary-problem [1] IMPLICIT Intermediary-Problem, + security-problem [2] Security-Problem, + unable-to-perform [3] IMPLICIT Unable-To-Perform + } + + +Will-Supply-Results ::= SEQUENCE { + reason-will-supply [0] ENUMERATED { + in-use-on-loan (1), + in-process (2), + on-order (6), + at-bindery (8), + on-hold (19), + being-processed-for-supply (26), + other (27), + responder-specific (28), + electronic-delivery (30) + }, + supply-date [1] ISO-Date OPTIONAL, + return-to-address [2] Postal-Address OPTIONAL, + locations [3] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, + electronic-delivery-service [4] Electronic-Delivery-Service OPTIONAL + -- if present, this must be one of the services proposed by + -- the requester + } + +EDIFACTString ::= VisibleString + (FROM ("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"|"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"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"| + "9"|"0"|" "|"."|","|"-"|"("|")"|"/"|"="|"!"|"""|"%"|"&"| + "*"|";"|"<"|">"|"'"|"+"|":"|"?")) + +END + + diff --git a/dependencies/yaz-2.1.28/src/initopt.c b/dependencies/yaz-2.1.28/src/initopt.c new file mode 100644 index 0000000..8a31b69 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/initopt.c @@ -0,0 +1,102 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: initopt.c,v 1.6 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file initopt.c + * \brief Implements Z39.50 Init Options Utility + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include + +static struct { + char *name; + int opt; +} opt_array[] = { + {"search", Z_Options_search}, + {"present", Z_Options_present}, + {"delSet", Z_Options_delSet}, + {"resourceReport", Z_Options_resourceReport}, + {"triggerResourceCtrl", Z_Options_triggerResourceCtrl}, + {"resourceCtrl", Z_Options_resourceCtrl}, + {"accessCtrl", Z_Options_accessCtrl}, + {"scan", Z_Options_scan}, + {"sort", Z_Options_sort}, + {"extendedServices", Z_Options_extendedServices}, + {"level_1Segmentation", Z_Options_level_1Segmentation}, + {"level_2Segmentation", Z_Options_level_2Segmentation}, + {"concurrentOperations", Z_Options_concurrentOperations}, + {"namedResultSets", Z_Options_namedResultSets}, + {"encapsulation", Z_Options_encapsulation}, + {"resultCount", Z_Options_resultCount}, + {"negotiationModel", Z_Options_negotiationModel}, + {"duplicationDetection", Z_Options_duplicateDetection}, + {"queryType104", Z_Options_queryType104}, + {"pQESCorrection", Z_Options_pQESCorrection}, + {"stringSchema", Z_Options_stringSchema}, + {0, 0} +}; + +int yaz_init_opt_encode(Z_Options *opt, const char *opt_str, int *error_pos) +{ + const char *cp = opt_str; + + ODR_MASK_ZERO(opt); + while (*cp) + { + char this_opt[42]; + int i, j; + if (*cp == ' ' || *cp == ',') + { + cp++; + continue; + } + for (i = 0; i < (sizeof(this_opt)-1) && + cp[i] && cp[i] != ' ' && cp[i] != ','; i++) + this_opt[i] = cp[i]; + this_opt[i] = 0; + for (j = 0; opt_array[j].name; j++) + { + if (yaz_matchstr(this_opt, opt_array[j].name) == 0) + { + ODR_MASK_SET(opt, opt_array[j].opt); + break; + } + } + if (!opt_array[j].name) + { + if (error_pos) + { + *error_pos = cp - opt_str; + return -1; + } + } + cp += i; + } + return 0; +} + +void yaz_init_opt_decode(Z_Options *opt, void (*pr)(const char *name, + void *clientData), + void *clientData) +{ + int i; + for (i = 0; opt_array[i].name; i++) + if (ODR_MASK_GET(opt, opt_array[i].opt)) + (*pr)(opt_array[i].name, clientData); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/item-req.asn b/dependencies/yaz-2.1.28/src/item-req.asn new file mode 100644 index 0000000..612d509 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/item-req.asn @@ -0,0 +1,58 @@ +Z39.50-extendedService-ItemOrder-ItemRequest-1 DEFINITIONS ::= +BEGIN +IMPORTS + Transaction-Id, + Service-Date-Time, + System-Id, + Transaction-Type, + Delivery-Address, + ILL-Service-Type, + Requester-Optional-Messages-Type, + Search-Type, + Supply-Medium-Info-Type, + Place-On-Hold-Type, + Client-Id, + Item-Id, + Supplemental-Item-Description, + Cost-Info-Type, + ILL-String, + Third-Party-Info-Type, + Extension +FROM ISO-10161-ILL-1; + +ItemRequest ::=SEQUENCE { + protocol-version-num [0] IMPLICIT INTEGER { + version-1 (1), + version-2 (2) + }, + transaction-id [1] IMPLICIT Transaction-Id OPTIONAL, + service-date-time [2] IMPLICIT Service-Date-Time OPTIONAL, + requester-id [3] IMPLICIT System-Id OPTIONAL, + responder-id [4] IMPLICIT System-Id OPTIONAL, + transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, + delivery-address [6] IMPLICIT Delivery-Address OPTIONAL, + delivery-service Delivery-Service OPTIONAL, + billing-address [8] IMPLICIT Delivery-Address OPTIONAL, + iLL-service-type [9] IMPLICIT SEQUENCE SIZE (1..5) OF + ILL-Service-Type OPTIONAL, + responder-specific-service [10] EXTERNAL OPTIONAL, + -- use direct reference style + requester-optional-messages [11] IMPLICIT Requester-Optional-Messages-Type OPTIONAL, + search-type [12] IMPLICIT Search-Type OPTIONAL, + supply-medium-info-type [13] IMPLICIT SEQUENCE SIZE (1..7) OF + Supply-Medium-Info-Type OPTIONAL, + place-on-hold [14] IMPLICIT Place-On-Hold-Type DEFAULT 3, + client-id [15] IMPLICIT Client-Id OPTIONAL, + item-id [16] IMPLICIT Item-Id OPTIONAL, + supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, + cost-info-type [18] IMPLICIT Cost-Info-Type OPTIONAL, + copyright-compliance [19] ILL-String OPTIONAL, + third-party-info-type [20] IMPLICIT Third-Party-Info-Type OPTIONAL, + retry-flag [21] IMPLICIT BOOLEAN DEFAULT FALSE, + forward-flag [22] IMPLICIT BOOLEAN DEFAULT FALSE, + requester-note [46] ILL-String OPTIONAL, + forward-note [47] ILL-String OPTIONAL, + iLL-request-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL + } +END + diff --git a/dependencies/yaz-2.1.28/src/item-req.c b/dependencies/yaz-2.1.28/src/item-req.c new file mode 100644 index 0000000..f24d81a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/item-req.c @@ -0,0 +1,69 @@ +/** \file item-req.c + \brief ASN.1 Module Z39.50-extendedService-ItemOrder-ItemRequest-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int ill_ItemRequest (ODR o, ILL_ItemRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && + odr_implicit_tag (o, ill_Transaction_Id, + &(*p)->transaction_id, ODR_CONTEXT, 1, 1, "transaction_id") && + odr_implicit_tag (o, ill_Service_Date_Time, + &(*p)->service_date_time, ODR_CONTEXT, 2, 1, "service_date_time") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && + odr_implicit_tag (o, ill_System_Id, + &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && + odr_implicit_tag (o, ill_Transaction_Type, + &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && + odr_implicit_tag (o, ill_Delivery_Address, + &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") && + ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") && + odr_implicit_tag (o, ill_Delivery_Address, + &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") && + odr_implicit_settag (o, ODR_CONTEXT, 9) && + (odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type, + &(*p)->num_iLL_service_type, "iLL_service_type") || odr_ok(o)) && + odr_explicit_tag (o, odr_external, + &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") && + odr_implicit_tag (o, ill_Requester_Optional_Messages_Type, + &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 1, "requester_optional_messages") && + odr_implicit_tag (o, ill_Search_Type, + &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") && + odr_implicit_settag (o, ODR_CONTEXT, 13) && + (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type, + &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) && + odr_implicit_tag (o, ill_Place_On_Hold_Type, + &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") && + odr_implicit_tag (o, ill_Client_Id, + &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && + odr_implicit_tag (o, ill_Item_Id, + &(*p)->item_id, ODR_CONTEXT, 16, 1, "item_id") && + odr_implicit_tag (o, ill_Supplemental_Item_Description, + &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && + odr_implicit_tag (o, ill_Cost_Info_Type, + &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") && + odr_explicit_tag (o, ill_String, + &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") && + odr_implicit_tag (o, ill_Third_Party_Info_Type, + &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") && + odr_implicit_tag (o, odr_bool, + &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") && + odr_implicit_tag (o, odr_bool, + &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") && + odr_explicit_tag (o, ill_String, + &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && + odr_explicit_tag (o, ill_String, + &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") && + odr_implicit_settag (o, ODR_CONTEXT, 49) && + (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions, + &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/libxml2_error.c b/dependencies/yaz-2.1.28/src/libxml2_error.c new file mode 100644 index 0000000..9f55bb9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/libxml2_error.c @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: libxml2_error.c,v 1.2 2006/07/06 10:17:53 adam Exp $ + */ +/** + * \file libxml2_error.c + * \brief Libxml2 error handling + */ + +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#endif + +#if YAZ_HAVE_XSLT +#include +#endif + +static int libxml2_error_level = 0; + +static void proxy_xml_error_handler(void *ctx, const char *fmt, ...) +{ + char buf[1024]; + + va_list ap; + va_start(ap, fmt); + +#ifdef WIN32 + vsprintf(buf, fmt, ap); +#else + vsnprintf(buf, sizeof(buf), fmt, ap); +#endif + yaz_log(libxml2_error_level, "%s: %s", (char*) ctx, buf); + + va_end (ap); +} + +int libxml2_error_to_yazlog(int level, const char *lead_msg) +{ + libxml2_error_level = level; +#if YAZ_HAVE_XSLT + xsltSetGenericErrorFunc((void *) "XSLT", proxy_xml_error_handler); +#endif +#if YAZ_HAVE_XML2 + xmlSetGenericErrorFunc((void *) "XML", proxy_xml_error_handler); + return 0; +#else + return -1; +#endif +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/log.c b/dependencies/yaz-2.1.28/src/log.c new file mode 100644 index 0000000..96cf662 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/log.c @@ -0,0 +1,600 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: log.c,v 1.38 2006/07/31 10:05:04 adam Exp $ + */ + +/** + * \file log.c + * \brief Logging utility + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifdef WIN32 +#include +#endif + +#if YAZ_POSIX_THREADS +#include +#endif + +#if YAZ_GNU_THREADS +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static NMEM_MUTEX log_mutex = 0; +static int mutex_init_flag = 0; /* not yet initialized */ + +#define HAS_STRERROR 1 + + +#if HAS_STRERROR + +#else +char *strerror(int n) +{ + extern char *sys_errlist[]; + return sys_errlist[n]; +} + +#endif + + +static int default_log_level() { + char *env = getenv("YAZ_LOG"); + if (env != 0) + return yaz_log_mask_str_x(env, YLOG_DEFAULT_LEVEL); + else + return YLOG_DEFAULT_LEVEL; +} + + +static int l_level = -1; /* will be set from default_log_level() */ + +enum l_file_type { use_stderr, use_none, use_file }; +static enum l_file_type yaz_file_type = use_stderr; +static FILE *yaz_global_log_file = NULL; + +static void (*start_hook_func)(int, const char *, void *) = NULL; +static void *start_hook_info; + +static void (*end_hook_func)(int, const char *, void *) = NULL; +static void *end_hook_info; + +static void (*hook_func)(int, const char *, void *) = NULL; +static void *hook_info; + +static char l_prefix[512] = ""; +static char l_prefix2[512] = ""; +static char l_fname[512] = ""; + + +static char l_old_default_format[] = "%H:%M:%S-%d/%m"; +static char l_new_default_format[] = "%Y%m%d-%H%M%S"; +#define TIMEFORMAT_LEN 50 +static char l_custom_format[TIMEFORMAT_LEN] = ""; +static char *l_actual_format = l_old_default_format; + +/** l_max_size tells when to rotate the log. Default to 1 GB */ +static const int l_def_max_size = 1024*1024*1024; +static int l_max_size = 1024*1024*1024; + +#define MAX_MASK_NAMES 35 /* 32 bits plus a few combo names */ +static struct { + int mask; + char *name; +} mask_names[MAX_MASK_NAMES] = +{ + { YLOG_FATAL, "fatal"}, + { YLOG_DEBUG, "debug"}, + { YLOG_WARN, "warn" }, + { YLOG_LOG, "log" }, + { YLOG_ERRNO, ""}, + { YLOG_MALLOC, "malloc"}, + { YLOG_APP, "app" }, + { YLOG_NOTIME, "notime" }, + { YLOG_APP2, "app2" }, + { YLOG_APP3, "app3" }, + { YLOG_ALL, "all" }, + { YLOG_FLUSH, "flush" }, + { YLOG_LOGLVL, "loglevel" }, + { 0, "none" }, + { 0, NULL } + /* the rest will be filled in if the user defines dynamic modules*/ +}; + +static unsigned int next_log_bit = YLOG_LAST_BIT<<1; /* first dynamic bit */ + +static void init_mutex() +{ + if (mutex_init_flag) + return; + nmem_mutex_create(&log_mutex); + mutex_init_flag = 1; +} + +FILE *yaz_log_file(void) +{ + FILE *f = 0; + switch(yaz_file_type) + { + case use_stderr: f = stderr; break; + case use_none: f = 0; break; + case use_file: f = yaz_global_log_file; break; + } + return f; +} + +void yaz_log_close() +{ + if (yaz_file_type == use_file && yaz_global_log_file) + { + fclose(yaz_global_log_file); + yaz_global_log_file = 0; + } +} + +void yaz_log_init_file(const char *fname) +{ + init_mutex(); + + yaz_log_close(); + if (fname) + { + if (*fname == '\0') + yaz_file_type = use_stderr; /* empty name; use stderr */ + else + yaz_file_type = use_file; + strncpy(l_fname, fname, sizeof(l_fname)-1); + l_fname[sizeof(l_fname)-1] = '\0'; + } + else + { + yaz_file_type = use_none; /* NULL name; use no file at all */ + l_fname[0] = '\0'; + } + yaz_log_reopen(); +} + +static void rotate_log(const char *cur_fname) +{ + char newname[512]; + strncpy(newname, cur_fname, 509); + newname[509] = '\0'; /* make sure it is terminated */ + strcat(newname, ".1"); +#ifdef WIN32 + /* windows can't rename a file if it is open */ + fclose(yaz_global_log_file); + yaz_global_log_file = 0; + MoveFileEx(cur_fname, newname, MOVEFILE_REPLACE_EXISTING); +#else + rename(cur_fname, newname); +#endif +} + + +void yaz_log_init_level(int level) +{ + init_mutex(); + if (l_level < 0) + l_level = default_log_level(); + if ( (l_level & YLOG_FLUSH) != (level & YLOG_FLUSH) ) + { + l_level = level; + yaz_log_reopen(); /* make sure we set buffering right */ + } + else + l_level = level; + if (l_level & YLOG_LOGLVL) + { /* dump the log level bits */ + const char *bittype = "Static "; + int i, sz; + + yaz_log(YLOG_LOGLVL, "Setting log level to %d = 0x%08x", + l_level, l_level); + /* determine size of mask_names (locked) */ + nmem_mutex_enter(log_mutex); + for (sz = 0; mask_names[sz].name; sz++) + ; + nmem_mutex_leave(log_mutex); + /* second pass without lock */ + for (i = 0; i < sz; i++) + if (mask_names[i].mask && *mask_names[i].name) + if (strcmp(mask_names[i].name, "all") != 0) + { + yaz_log(YLOG_LOGLVL, "%s log bit %08x '%s' is %s", + bittype, mask_names[i].mask, mask_names[i].name, + (level & mask_names[i].mask)? "ON": "off"); + if (mask_names[i].mask > YLOG_LAST_BIT) + bittype = "Dynamic"; + } + } +} + +void yaz_log_init_prefix(const char *prefix) +{ + if (prefix && *prefix) + sprintf(l_prefix, "%.511s ", prefix); + else + *l_prefix = 0; +} + +void yaz_log_init_prefix2(const char *prefix) +{ + if (prefix && *prefix) + sprintf(l_prefix2, "%.511s ", prefix); + else + *l_prefix2 = 0; +} + +void yaz_log_init(int level, const char *prefix, const char *fname) +{ + init_mutex(); + yaz_log_init_level(level); + yaz_log_init_prefix(prefix); + if (fname && *fname) + yaz_log_init_file(fname); +} + +void yaz_log_init_max_size(int mx) +{ + if (mx <0) + l_max_size = l_def_max_size; + else + l_max_size = mx; +} + +void yaz_log_set_handler(void (*func)(int, const char *, void *), void *info) +{ + hook_func = func; + hook_info = info; +} + +void log_event_start(void (*func)(int, const char *, void *), void *info) +{ + start_hook_func = func; + start_hook_info = info; +} + +void log_event_end(void (*func)(int, const char *, void *), void *info) +{ + end_hook_func = func; + end_hook_info = info; +} + +static void yaz_log_open_check(struct tm *tm, int force, const char *filemode) +{ + char new_filename[512]; + static char cur_filename[512] = ""; + + if (l_fname && *l_fname) + { + strftime(new_filename, sizeof(new_filename)-1, l_fname, tm); + if (strcmp(new_filename, cur_filename)) + { + strcpy(cur_filename, new_filename); + force = 1; + } + } + + if (l_max_size > 0 && yaz_global_log_file && yaz_file_type == use_file) + { + long flen = ftell(yaz_global_log_file); + if (flen > l_max_size) + { + rotate_log(cur_filename); + force = 1; + } + } + if (force && yaz_file_type == use_file && *cur_filename) + { + yaz_log_close(); + yaz_global_log_file = fopen(cur_filename, filemode); + if (l_level < 0) l_level = default_log_level(); + if (l_level & YLOG_FLUSH) + setvbuf(yaz_global_log_file, 0, _IONBF, 0); + } +} + +static void yaz_log_do_reopen(const char *filemode) +{ + time_t cur_time = time(0); +#if HAVE_LOCALTIME_R + struct tm tm0, *tm = &tm0; +#else + struct tm *tm; +#endif + + nmem_mutex_enter(log_mutex); +#if HAVE_LOCALTIME_R + localtime_r(&cur_time, tm); +#else + tm = localtime(&cur_time); +#endif + yaz_log_open_check(tm, 1, filemode); + nmem_mutex_leave(log_mutex); +} + + +void yaz_log_reopen() +{ + yaz_log_do_reopen("a"); +} + +void yaz_log_trunc() +{ + yaz_log_do_reopen("w"); +} + + + +static void yaz_strftime(char *dst, size_t sz, + const char *fmt, const struct tm *tm) +{ + const char *cp = strstr(fmt, "%!"); + if (cp && strlen(fmt) < 60) + { + char fmt2[80]; + char tpidstr[20]; +#ifdef WIN32 + DWORD tid = GetCurrentThreadId(); +#else + long tid = 0; +#if YAZ_POSIX_THREADS + tid = pthread_self(); +#endif +#endif + memcpy(fmt2, fmt, cp-fmt); + fmt2[cp-fmt] = '\0'; + sprintf(tpidstr, "%08lx", (long) tid); + strcat(fmt2, tpidstr); + strcat(fmt2, cp+2); + strftime(dst, sz, fmt2, tm); + } + else + strftime(dst, sz, fmt, tm); +} + +static void yaz_log_to_file(int level, const char *log_message) +{ + FILE *file; + time_t ti = time(0); +#if HAVE_LOCALTIME_R + struct tm tm0, *tm = &tm0; +#else + struct tm *tm; +#endif + + init_mutex(); + + nmem_mutex_enter(log_mutex); + +#if HAVE_LOCALTIME_R + localtime_r(&ti, tm); +#else + tm = localtime(&ti); +#endif + + yaz_log_open_check(tm, 0, "a"); + file = yaz_log_file(); /* file may change in yaz_log_open_check */ + + if (file) + { + char tbuf[TIMEFORMAT_LEN]; + char flags[1024]; + int i; + + *flags = '\0'; + for (i = 0; level && mask_names[i].name; i++) + if ( mask_names[i].mask & level) + { + if (*mask_names[i].name && mask_names[i].mask && + mask_names[i].mask != YLOG_ALL) + { + sprintf(flags + strlen(flags), "[%s]", mask_names[i].name); + level &= ~mask_names[i].mask; + } + } + + if (l_level & YLOG_NOTIME) + tbuf[0] = '\0'; + else + yaz_strftime(tbuf, TIMEFORMAT_LEN-1, l_actual_format, tm); + tbuf[TIMEFORMAT_LEN-1] = '\0'; + + fprintf(file, "%s %s%s %s%s\n", tbuf, l_prefix, flags, l_prefix2, + log_message); + if (l_level & (YLOG_FLUSH|YLOG_DEBUG) ) + fflush(file); + } + nmem_mutex_leave(log_mutex); +} + +void yaz_log(int level, const char *fmt, ...) +{ + va_list ap; + char buf[4096]; + FILE *file; + int o_level = level; + + if (l_level < 0) + l_level = default_log_level(); + if (!(level & l_level)) + return; + va_start(ap, fmt); +#ifdef WIN32 + _vsnprintf(buf, sizeof(buf)-1, fmt, ap); +#else +/* !WIN32 */ +#if HAVE_VSNPRINTF + vsnprintf(buf, sizeof(buf), fmt, ap); +#else + vsprintf(buf, fmt, ap); +#endif +#endif +/* WIN32 */ + if (o_level & YLOG_ERRNO) + { + strcat(buf, " ["); + yaz_strerror(buf+strlen(buf), 2048); + strcat(buf, "]"); + } + va_end (ap); + if (start_hook_func) + (*start_hook_func)(o_level, buf, start_hook_info); + if (hook_func) + (*hook_func)(o_level, buf, hook_info); + file = yaz_log_file(); + if (file) + yaz_log_to_file(level, buf); + if (end_hook_func) + (*end_hook_func)(o_level, buf, end_hook_info); +} + +void yaz_log_time_format(const char *fmt) +{ + if ( !fmt || !*fmt) + { /* no format, default to new */ + l_actual_format = l_new_default_format; + return; + } + if (0==strcmp(fmt, "old")) + { /* force the old format */ + l_actual_format = l_old_default_format; + return; + } + /* else use custom format */ + strncpy(l_custom_format, fmt, TIMEFORMAT_LEN-1); + l_custom_format[TIMEFORMAT_LEN-1] = '\0'; + l_actual_format = l_custom_format; +} + +/** cleans a loglevel name from leading paths and suffixes */ +static char *clean_name(const char *name, int len, char *namebuf, int buflen) +{ + char *p = namebuf; + char *start = namebuf; + if (buflen <= len) + len = buflen-1; + strncpy(namebuf, name, len); + namebuf[len] = '\0'; + while ((p = strchr(start, '/'))) + start = p+1; + if ((p = strrchr(start, '.'))) + *p = '\0'; + return start; +} + +static int define_module_bit(const char *name) +{ + int i; + init_mutex(); + nmem_mutex_enter(log_mutex); + for (i = 0; mask_names[i].name; i++) + if (0 == strcmp(mask_names[i].name, name)) + { + nmem_mutex_leave(log_mutex); + return mask_names[i].mask; + } + if ( (i>=MAX_MASK_NAMES) || (next_log_bit >= 1<<31 )) + { + nmem_mutex_leave(log_mutex); + yaz_log(YLOG_WARN, "No more log bits left, not logging '%s'", name); + return 0; + } + mask_names[i].mask = next_log_bit; + next_log_bit = next_log_bit<<1; + mask_names[i].name = malloc(strlen(name)+1); + strcpy(mask_names[i].name, name); + mask_names[i+1].name = NULL; + mask_names[i+1].mask = 0; + nmem_mutex_leave(log_mutex); + return mask_names[i].mask; +} + +int yaz_log_module_level(const char *name) +{ + int i; + char clean[255]; + char *n = clean_name(name, strlen(name), clean, sizeof(clean)); + init_mutex(); + + nmem_mutex_enter(log_mutex); + for (i = 0; mask_names[i].name; i++) + if (0==strcmp(n, mask_names[i].name)) + { + nmem_mutex_leave(log_mutex); + yaz_log(YLOG_LOGLVL, "returning log bit 0x%x for '%s' %s", + mask_names[i].mask, n, + strcmp(n,name) ? name : ""); + return mask_names[i].mask; + } + nmem_mutex_leave(log_mutex); + yaz_log(YLOG_LOGLVL, "returning NO log bit for '%s' %s", n, + strcmp(n, name) ? name : "" ); + return 0; +} + +int yaz_log_mask_str(const char *str) +{ + return yaz_log_mask_str_x(str, default_log_level()); +} + +int yaz_log_mask_str_x(const char *str, int level) +{ + const char *p; + + while (*str) + { + int negated = 0; + for (p = str; *p && *p != ','; p++) + ; + if (*str=='-') + { + negated = 1; + str++; + } + if (isdigit(*(unsigned char *) str)) + { + level = atoi(str); + } + else + { + char clean[509]; + char *n = clean_name(str, p-str, clean, sizeof(clean)); + int mask = define_module_bit(n); + if (!mask) + level = 0; /* 'none' clears them all */ + else if (negated) + level &= ~mask; + else + level |= mask; + } + if (*p == ',') + p++; + str = p; + } + return level; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/src/logrpn.c b/dependencies/yaz-2.1.28/src/logrpn.c new file mode 100644 index 0000000..94546ae --- /dev/null +++ b/dependencies/yaz-2.1.28/src/logrpn.c @@ -0,0 +1,445 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * All rights reserved. + * + * $Id: logrpn.c,v 1.14 2006/01/20 10:34:51 adam Exp $ + */ + +/** + * \file logrpn.c + * \brief Implements Z39.50 Query Printing + */ + +#include +#include + +#include +#include + +static const char *relToStr(int v) +{ + const char *str = 0; + switch (v) + { + case 1: str = "Less than"; break; + case 2: str = "Less than or equal"; break; + case 3: str = "Equal"; break; + case 4: str = "Greater or equal"; break; + case 5: str = "Greater than"; break; + case 6: str = "Not equal"; break; + case 100: str = "Phonetic"; break; + case 101: str = "Stem"; break; + case 102: str = "Relevance"; break; + case 103: str = "AlwaysMatches"; break; + } + return str; +} + +static void attrStr (int type, int value, enum oid_value ast, char *str) +{ + const char *rstr; + *str = '\0'; + switch (ast) + { + case VAL_BIB1: + case VAL_EXP1: + case VAL_GILS: + switch (type) + { + case 1: + sprintf (str, "use"); + break; + case 2: + rstr = relToStr(value); + if (rstr) + sprintf(str, "relation=%s", rstr); + else + sprintf(str, "relation=%d", value); + break; + case 3: + switch (value) + { + case 1: + sprintf(str, "position=First in field"); + break; + case 2: + sprintf(str, "position=First in any subfield"); + break; + case 3: + sprintf(str, "position=Any position in field"); + break; + default: + sprintf(str, "position"); + } + break; + case 4: + switch (value) + { + case 1: + sprintf(str, "structure=Phrase"); + break; + case 2: + sprintf(str, "structure=Word"); + break; + case 3: + sprintf(str, "structure=Key"); + break; + case 4: + sprintf(str, "structure=Year"); + break; + case 5: + sprintf(str, "structure=Date"); + break; + case 6: + sprintf(str, "structure=Word list"); + break; + case 100: + sprintf(str, "structure=Date (un)"); + break; + case 101: + sprintf(str, "structure=Name (norm)"); + break; + case 102: + sprintf(str, "structure=Name (un)"); + break; + case 103: + sprintf(str, "structure=Structure"); + break; + case 104: + sprintf(str, "structure=urx"); + break; + case 105: + sprintf(str, "structure=free-form-text"); + break; + case 106: + sprintf(str, "structure=document-text"); + break; + case 107: + sprintf(str, "structure=local-number"); + break; + case 108: + sprintf(str, "structure=string"); + break; + case 109: + sprintf(str, "structure=numeric string"); + break; + default: + sprintf(str, "structure"); + } + break; + case 5: + switch (value) + { + case 1: + sprintf(str, "truncation=Right"); + break; + case 2: + sprintf(str, "truncation=Left"); + break; + case 3: + sprintf(str, "truncation=Left&right"); + break; + case 100: + sprintf(str, "truncation=Do not truncate"); + break; + case 101: + sprintf(str, "truncation=Process #"); + break; + case 102: + sprintf(str, "truncation=re-1"); + break; + case 103: + sprintf(str, "truncation=re-2"); + break; + case 104: + sprintf(str, "truncation=CCL"); + break; + default: + sprintf(str, "truncation"); + } + break; + case 6: + switch(value) + { + case 1: + sprintf(str, "completeness=Incomplete subfield"); + break; + case 2: + sprintf(str, "completeness=Complete subfield"); + break; + case 3: + sprintf(str, "completeness=Complete field"); + break; + default: + sprintf(str, "completeness"); + } + break; + } + break; + default: + break; + } + if (*str) + sprintf(str + strlen(str), " (%d=%d)", type, value); + else + sprintf(str, "%d=%d", type, value); +} + +/* + * zlog_attributes: print attributes of term + */ +static void zlog_attributes (Z_AttributesPlusTerm *t, int depth, + enum oid_value ast, int loglevel) +{ + int of, i; + char str[80]; + int num_attributes = t->attributes->num_attributes; + + for (of = 0; of < num_attributes; of++) + { + const char *attset_name = ""; + Z_AttributeElement *element; + element = t->attributes->attributes[of]; + if (element->attributeSet) + { + oident *attrset; + attrset = oid_getentbyoid (element->attributeSet); + attset_name = attrset->desc; + } + switch (element->which) + { + case Z_AttributeValue_numeric: + attrStr (*element->attributeType, + *element->value.numeric, ast, str); + yaz_log (loglevel, "%*.0s%s %s", depth, "", attset_name, str); + break; + case Z_AttributeValue_complex: + yaz_log (loglevel, "%*.0s%s attributeType=%d complex", + depth, "", attset_name, *element->attributeType); + for (i = 0; ivalue.complex->num_list; i++) + { + if (element->value.complex->list[i]->which == + Z_StringOrNumeric_string) + yaz_log (loglevel, "%*.0s string: '%s'", depth, "", + element->value.complex->list[i]->u.string); + else if (element->value.complex->list[i]->which == + Z_StringOrNumeric_numeric) + yaz_log (loglevel, "%*.0s numeric: '%d'", depth, "", + *element->value.complex->list[i]->u.numeric); + } + break; + default: + yaz_log (loglevel, "%.*s%s attribute unknown", + depth, "", attset_name); + } + } +} + +static char *complex_op_name(Z_Operator *op) +{ + switch (op->which) + { + case Z_Operator_and: + return "and"; + case Z_Operator_or: + return "or"; + case Z_Operator_and_not: + return "not"; + case Z_Operator_prox: + return "prox"; + default: + return "unknown complex operator"; + } +} + +static char *prox_unit_name(Z_ProximityOperator *op) +{ + if (op->which!=Z_ProximityOperator_known) + return "private"; + switch(*op->u.known) + { + case Z_ProxUnit_character: return "character"; + case Z_ProxUnit_word: return "word"; + case Z_ProxUnit_sentence: return "sentence"; + case Z_ProxUnit_paragraph: return "paragraph"; + case Z_ProxUnit_section: return "section"; + case Z_ProxUnit_chapter: return "chapter"; + case Z_ProxUnit_document: return "document"; + case Z_ProxUnit_element: return "element"; + case Z_ProxUnit_subelement: return "subelement"; + case Z_ProxUnit_elementType: return "elementType"; + case Z_ProxUnit_byte: return "byte"; + default: return "unknown"; + } +} + +static void zlog_structure (Z_RPNStructure *zs, int depth, + enum oid_value ast, int loglevel) +{ + if (zs->which == Z_RPNStructure_complex) + { + Z_Operator *op = zs->u.complex->roperator; + switch (op->which) + { + case Z_Operator_and: + case Z_Operator_or: + case Z_Operator_and_not: + yaz_log (loglevel, "%*.0s %s", depth, "", complex_op_name(op) ); + break; + case Z_Operator_prox: + yaz_log (loglevel, "%*.0s prox excl=%s dist=%d order=%s " + "rel=%s unit=%s", + depth, "", op->u.prox->exclusion ? + (*op->u.prox->exclusion ? "T" : "F") : "N", + *op->u.prox->distance, + *op->u.prox->ordered ? "T" : "F", + relToStr(*op->u.prox->relationType), + prox_unit_name(op->u.prox) ); + break; + default: + yaz_log (loglevel, "%*.0s unknown complex", depth, ""); + return; + } + zlog_structure (zs->u.complex->s1, depth+2, ast, loglevel); + zlog_structure (zs->u.complex->s2, depth+2, ast, loglevel); + } + else if (zs->which == Z_RPNStructure_simple) + { + if (zs->u.simple->which == Z_Operand_APT) + { + Z_AttributesPlusTerm *zapt = zs->u.simple->u.attributesPlusTerm; + + switch (zapt->term->which) + { + case Z_Term_general: + yaz_log (loglevel, "%*.0s term '%.*s' (general)", depth, "", + zapt->term->u.general->len, + zapt->term->u.general->buf); + break; + case Z_Term_characterString: + yaz_log (loglevel, "%*.0s term '%s' (string)", depth, "", + zapt->term->u.characterString); + break; + case Z_Term_numeric: + yaz_log (loglevel, "%*.0s term '%d' (numeric)", depth, "", + *zapt->term->u.numeric); + break; + case Z_Term_null: + yaz_log (loglevel, "%*.0s term (null)", depth, ""); + break; + default: + yaz_log (loglevel, "%*.0s term (not general)", depth, ""); + } + zlog_attributes (zapt, depth+2, ast, loglevel); + } + else if (zs->u.simple->which == Z_Operand_resultSetId) + { + yaz_log (loglevel, "%*.0s set '%s'", depth, "", + zs->u.simple->u.resultSetId); + } + else + yaz_log (loglevel, "%*.0s unknown simple structure", depth, ""); + } + else + yaz_log (loglevel, "%*.0s unknown structure", depth, ""); +} + +void log_rpn_query_level (int loglevel, Z_RPNQuery *rpn) +{ + oident *attrset; + enum oid_value ast; + + attrset = oid_getentbyoid (rpn->attributeSetId); + if (attrset) + { + ast = attrset->value; + yaz_log (loglevel, "RPN query. Type: %s", attrset->desc); + } + else + { + ast = VAL_NONE; + yaz_log (loglevel, "RPN query. Unknown type"); + } + zlog_structure (rpn->RPNStructure, 0, ast, loglevel); +} + +void log_rpn_query(Z_RPNQuery *rpn) +{ + log_rpn_query_level(YLOG_LOG, rpn); +} + +void log_scan_term_level(int loglevel, + Z_AttributesPlusTerm *zapt, oid_value ast) +{ + int depth = 0; + if (!loglevel) + return; + if (zapt->term->which == Z_Term_general) + { + yaz_log (loglevel, "%*.0s term '%.*s' (general)", depth, "", + zapt->term->u.general->len, zapt->term->u.general->buf); + } + else + yaz_log (loglevel, "%*.0s term (not general)", depth, ""); + zlog_attributes (zapt, depth+2, ast, loglevel); +} + +void log_scan_term(Z_AttributesPlusTerm *zapt, oid_value ast) +{ + log_scan_term_level (YLOG_LOG, zapt, ast); +} + +void yaz_log_zquery_level (int loglevel, Z_Query *q) +{ + if (!loglevel) + return; + switch (q->which) + { + case Z_Query_type_1: case Z_Query_type_101: + log_rpn_query_level (loglevel, q->u.type_1); + break; + case Z_Query_type_2: + yaz_log(loglevel, "CCL: %.*s", q->u.type_2->len, q->u.type_2->buf); + break; + case Z_Query_type_100: + yaz_log(loglevel, "Z39.58: %.*s", q->u.type_100->len, + q->u.type_100->buf); + break; + case Z_Query_type_104: + if (q->u.type_104->which == Z_External_CQL) + yaz_log (loglevel, "CQL: %s", q->u.type_104->u.cql); + } +} + +void yaz_log_zquery (Z_Query *q) +{ + yaz_log_zquery_level(YLOG_LOG, q); +} + +void wrbuf_diags(WRBUF b, int num_diagnostics,Z_DiagRec **diags) +{ + /* we only dump the first diag - that keeps the log cleaner. */ + wrbuf_printf(b," ERROR "); + if (diags[0]->which != Z_DiagRec_defaultFormat) + wrbuf_printf(b,"(diag not in default format?)"); + else + { + Z_DefaultDiagFormat *e=diags[0]->u.defaultFormat; + if (e->condition) + wrbuf_printf(b, "%d ",*e->condition); + else + wrbuf_printf(b, "?? "); + if ((e->which==Z_DefaultDiagFormat_v2Addinfo) && (e->u.v2Addinfo)) + wrbuf_printf(b,"%s ",e->u.v2Addinfo); + else if ((e->which==Z_DefaultDiagFormat_v3Addinfo) && (e->u.v3Addinfo)) + wrbuf_printf(b,"%s ",e->u.v3Addinfo); + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/marc8.c b/dependencies/yaz-2.1.28/src/marc8.c new file mode 100644 index 0000000..2ce6e6a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/marc8.c @@ -0,0 +1,41623 @@ +/** \file marc8.c + \brief Character conversion, generated from ./codetables.xml + + Generated automatically by charconv.tcl +*/ +#include + + struct yaz_iconv_trie_flat { + char from[6]; + unsigned combining : 1; + unsigned to : 24; + }; + struct yaz_iconv_trie_dir { + int ptr : 15; + unsigned combining : 1; + unsigned to : 24; + }; + + struct yaz_iconv_trie { + struct yaz_iconv_trie_flat *flat; + struct yaz_iconv_trie_dir *dir; + }; + + + static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, + size_t inbytesleft, size_t *no_read, int *combining) + { + struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; + if (!t || inbytesleft < 1) + return 0; + if (t->dir) + { + size_t ch = inp[0] & 0xff; + unsigned long code = + lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); + if (code) + { + (*no_read)++; + return code; + } + if (t->dir[ch].to) + { + code = t->dir[ch].to; + *combining = t->dir[ch].combining; + *no_read = 1; + return code; + } + } + else + { + struct yaz_iconv_trie_flat *flat = t->flat; + while (flat->to) + { + size_t len = strlen(flat->from); + if (len <= inbytesleft) + { + if (memcmp(flat->from, inp, len) == 0) + { + *no_read = len; + *combining = flat->combining; + return flat->to; + } + } + flat++; + } + } + return 0; + } + +/* TRIE: size 166 */ +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_1page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x001B} /* ESCAPE (Unlikely to occur in UCS/Unicode) */, + {0, 0, 0}, + {0, 0, 0x001D} /* RECORD TERMINATOR / GROUP SEPARATOR */, + {0, 0, 0x001E} /* FIELD TERMINATOR / RECORD SEPARATOR */, + {0, 0, 0x001F} /* SUBFIELD DELIMITER / UNIT SEPARATOR */, + {0, 0, 0x0020} /* SPACE, BLANK / SPACE */, + {0, 0, 0x0021} /* EXCLAMATION MARK */, + {0, 0, 0x0022} /* QUOTATION MARK */, + {0, 0, 0x0023} /* NUMBER SIGN */, + {0, 0, 0x0024} /* DOLLAR SIGN */, + {0, 0, 0x0025} /* PERCENT SIGN */, + {0, 0, 0x0026} /* AMPERSAND */, + {0, 0, 0x0027} /* APOSTROPHE */, + {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x0029} /* CLOSING PARENTHESIS / CLOSING PARENTHESIS */, + {0, 0, 0x002A} /* ASTERISK */, + {0, 0, 0x002B} /* PLUS SIGN */, + {0, 0, 0x002C} /* COMMA */, + {0, 0, 0x002D} /* HYPHEN-MINUS */, + {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x002F} /* SLASH / SOLIDUS */, + {0, 0, 0x0030} /* DIGIT ZERO */, + {0, 0, 0x0031} /* DIGIT ONE */, + {0, 0, 0x0032} /* DIGIT TWO */, + {0, 0, 0x0033} /* DIGIT THREE */, + {0, 0, 0x0034} /* DIGIT FOUR */, + {0, 0, 0x0035} /* DIGIT FIVE */, + {0, 0, 0x0036} /* DIGIT SIX */, + {0, 0, 0x0037} /* DIGIT SEVEN */, + {0, 0, 0x0038} /* DIGIT EIGHT */, + {0, 0, 0x0039} /* DIGIT NINE */, + {0, 0, 0x003A} /* COLON */, + {0, 0, 0x003B} /* SEMICOLON */, + {0, 0, 0x003C} /* LESS-THAN SIGN */, + {0, 0, 0x003D} /* EQUALS SIGN */, + {0, 0, 0x003E} /* GREATER-THAN SIGN */, + {0, 0, 0x003F} /* QUESTION MARK */, + {0, 0, 0x0040} /* COMMERCIAL AT */, + {0, 0, 0x0041} /* LATIN CAPITAL LETTER A */, + {0, 0, 0x0042} /* LATIN CAPITAL LETTER B */, + {0, 0, 0x0043} /* LATIN CAPITAL LETTER C */, + {0, 0, 0x0044} /* LATIN CAPITAL LETTER D */, + {0, 0, 0x0045} /* LATIN CAPITAL LETTER E */, + {0, 0, 0x0046} /* LATIN CAPITAL LETTER F */, + {0, 0, 0x0047} /* LATIN CAPITAL LETTER G */, + {0, 0, 0x0048} /* LATIN CAPITAL LETTER H */, + {0, 0, 0x0049} /* LATIN CAPITAL LETTER I */, + {0, 0, 0x004A} /* LATIN CAPITAL LETTER J */, + {0, 0, 0x004B} /* LATIN CAPITAL LETTER K */, + {0, 0, 0x004C} /* LATIN CAPITAL LETTER L */, + {0, 0, 0x004D} /* LATIN CAPITAL LETTER M */, + {0, 0, 0x004E} /* LATIN CAPITAL LETTER N */, + {0, 0, 0x004F} /* LATIN CAPITAL LETTER O */, + {0, 0, 0x0050} /* LATIN CAPITAL LETTER P */, + {0, 0, 0x0051} /* LATIN CAPITAL LETTER Q */, + {0, 0, 0x0052} /* LATIN CAPITAL LETTER R */, + {0, 0, 0x0053} /* LATIN CAPITAL LETTER S */, + {0, 0, 0x0054} /* LATIN CAPITAL LETTER T */, + {0, 0, 0x0055} /* LATIN CAPITAL LETTER U */, + {0, 0, 0x0056} /* LATIN CAPITAL LETTER V */, + {0, 0, 0x0057} /* LATIN CAPITAL LETTER W */, + {0, 0, 0x0058} /* LATIN CAPITAL LETTER X */, + {0, 0, 0x0059} /* LATIN CAPITAL LETTER Y */, + {0, 0, 0x005A} /* LATIN CAPITAL LETTER Z */, + {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0x005C} /* REVERSE SLASH / REVERSE SOLIDUS */, + {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0x005E} /* SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT */, + {0, 0, 0x005F} /* SPACING UNDERSCORE / LOW LINE */, + {0, 0, 0x0060} /* SPACING GRAVE / GRAVE ACCENT */, + {0, 0, 0x0061} /* LATIN SMALL LETTER A */, + {0, 0, 0x0062} /* LATIN SMALL LETTER B */, + {0, 0, 0x0063} /* LATIN SMALL LETTER C */, + {0, 0, 0x0064} /* LATIN SMALL LETTER D */, + {0, 0, 0x0065} /* LATIN SMALL LETTER E */, + {0, 0, 0x0066} /* LATIN SMALL LETTER F */, + {0, 0, 0x0067} /* LATIN SMALL LETTER G */, + {0, 0, 0x0068} /* LATIN SMALL LETTER H */, + {0, 0, 0x0069} /* LATIN SMALL LETTER I */, + {0, 0, 0x006A} /* LATIN SMALL LETTER J */, + {0, 0, 0x006B} /* LATIN SMALL LETTER K */, + {0, 0, 0x006C} /* LATIN SMALL LETTER L */, + {0, 0, 0x006D} /* LATIN SMALL LETTER M */, + {0, 0, 0x006E} /* LATIN SMALL LETTER N */, + {0, 0, 0x006F} /* LATIN SMALL LETTER O */, + {0, 0, 0x0070} /* LATIN SMALL LETTER P */, + {0, 0, 0x0071} /* LATIN SMALL LETTER Q */, + {0, 0, 0x0072} /* LATIN SMALL LETTER R */, + {0, 0, 0x0073} /* LATIN SMALL LETTER S */, + {0, 0, 0x0074} /* LATIN SMALL LETTER T */, + {0, 0, 0x0075} /* LATIN SMALL LETTER U */, + {0, 0, 0x0076} /* LATIN SMALL LETTER V */, + {0, 0, 0x0077} /* LATIN SMALL LETTER W */, + {0, 0, 0x0078} /* LATIN SMALL LETTER X */, + {0, 0, 0x0079} /* LATIN SMALL LETTER Y */, + {0, 0, 0x007A} /* LATIN SMALL LETTER Z */, + {0, 0, 0x007B} /* OPENING CURLY BRACKET / LEFT CURLY BRACKET */, + {0, 0, 0x007C} /* VERTICAL BAR (FILL) / VERTICAL LINE */, + {0, 0, 0x007D} /* CLOSING CURLY BRACKET / RIGHT CURLY BRACKET */, + {0, 0, 0x007E} /* SPACING TILDE / TILDE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0098} /* NON-SORT BEGIN / START OF STRING */, + {0, 0, 0x009C} /* NON-SORT END / STRING TERMINATOR */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x200D} /* JOINER / ZERO WIDTH JOINER */, + {0, 0, 0x200C} /* NON-JOINER / ZERO WIDTH NON-JOINER */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0141} /* UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH STROKE */, + {0, 0, 0x00D8} /* UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER O WITH STROKE */, + {0, 0, 0x0110} /* UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER D WITH STROKE */, + {0, 0, 0x00DE} /* UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER THORN (Icelandic) */, + {0, 0, 0x00C6} /* UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE AE */, + {0, 0, 0x0152} /* UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE OE */, + {0, 0, 0x02B9} /* SOFT SIGN, PRIME / MODIFIER LETTER PRIME */, + {0, 0, 0x00B7} /* MIDDLE DOT */, + {0, 0, 0x266D} /* MUSIC FLAT SIGN */, + {0, 0, 0x00AE} /* PATENT MARK / REGISTERED SIGN */, + {0, 0, 0x00B1} /* PLUS OR MINUS / PLUS-MINUS SIGN */, + {0, 0, 0x01A0} /* UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH HORN */, + {0, 0, 0x01AF} /* UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH HORN */, + {0, 0, 0x02BC} /* ALIF / MODIFIER LETTER APOSTROPHE */, + {0, 0, 0}, + {0, 0, 0x02BB} /* AYN / MODIFIER LETTER TURNED COMMA */, + {0, 0, 0x0142} /* LOWERCASE POLISH L / LATIN SMALL LETTER L WITH STROKE */, + {0, 0, 0x00F8} /* LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O WITH STROKE */, + {0, 0, 0x0111} /* LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER D WITH STROKE */, + {0, 0, 0x00FE} /* LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER THORN (Icelandic) */, + {0, 0, 0x00E6} /* LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE AE */, + {0, 0, 0x0153} /* LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE OE */, + {0, 0, 0x02BA} /* HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE PRIME */, + {0, 0, 0x0131} /* LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS I */, + {0, 0, 0x00A3} /* BRITISH POUND / POUND SIGN */, + {0, 0, 0x00F0} /* LOWERCASE ETH / LATIN SMALL LETTER ETH (Icelandic) */, + {0, 0, 0}, + {0, 0, 0x01A1} /* LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH HORN */, + {0, 0, 0x01B0} /* LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH HORN */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x00B0} /* DEGREE SIGN */, + {0, 0, 0x2113} /* SCRIPT SMALL L */, + {0, 0, 0x2117} /* SOUND RECORDING COPYRIGHT */, + {0, 0, 0x00A9} /* COPYRIGHT SIGN */, + {0, 0, 0x266F} /* MUSIC SHARP SIGN */, + {0, 0, 0x00BF} /* INVERTED QUESTION MARK */, + {0, 0, 0x00A1} /* INVERTED EXCLAMATION MARK */, + {0, 0, 0x00DF} /* ESZETT SYMBOL */, + {0, 0, 0x20AC} /* EURO SIGN */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 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, 0x0309} /* PSEUDO QUESTION MARK / COMBINING HOOK ABOVE */, + {0, 1, 0x0300} /* GRAVE / COMBINING GRAVE ACCENT (Varia) */, + {0, 1, 0x0301} /* ACUTE / COMBINING ACUTE ACCENT (Oxia) */, + {0, 1, 0x0302} /* CIRCUMFLEX / COMBINING CIRCUMFLEX ACCENT */, + {0, 1, 0x0303} /* TILDE / COMBINING TILDE */, + {0, 1, 0x0304} /* MACRON / COMBINING MACRON */, + {0, 1, 0x0306} /* BREVE / COMBINING BREVE (Vrachy) */, + {0, 1, 0x0307} /* SUPERIOR DOT / COMBINING DOT ABOVE */, + {0, 1, 0x0308} /* UMLAUT, DIAERESIS / COMBINING DIAERESIS (Dialytika) */, + {0, 1, 0x030C} /* HACEK / COMBINING CARON */, + {0, 1, 0x030A} /* CIRCLE ABOVE, ANGSTROM / COMBINING RING ABOVE */, + {0, 1, 0x0361} /* LIGATURE, FIRST HALF / COMBINING DOUBLE INVERTED BREVE */, + {0, 0, 0}, + {0, 1, 0x0315} /* HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE RIGHT */, + {0, 1, 0x030B} /* DOUBLE ACUTE / COMBINING DOUBLE ACUTE ACCENT */, + {0, 1, 0x0310} /* CANDRABINDU / COMBINING CANDRABINDU */, + {0, 1, 0x0327} /* CEDILLA / COMBINING CEDILLA */, + {0, 1, 0x0328} /* RIGHT HOOK, OGONEK / COMBINING OGONEK */, + {0, 1, 0x0323} /* DOT BELOW / COMBINING DOT BELOW */, + {0, 1, 0x0324} /* DOUBLE DOT BELOW / COMBINING DIAERESIS BELOW */, + {0, 1, 0x0325} /* CIRCLE BELOW / COMBINING RING BELOW */, + {0, 1, 0x0333} /* DOUBLE UNDERSCORE / COMBINING DOUBLE LOW LINE */, + {0, 1, 0x0332} /* UNDERSCORE / COMBINING LOW LINE */, + {0, 1, 0x0326} /* LEFT HOOK (COMMA BELOW) / COMBINING COMMA BELOW */, + {0, 1, 0x031C} /* RIGHT CEDILLA / COMBINING LEFT HALF RING BELOW */, + {0, 1, 0x032E} /* UPADHMANIYA / COMBINING BREVE BELOW */, + {0, 1, 0x0360} /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 1, 0x0313} /* HIGH COMMA, CENTERED / COMBINING COMMA ABOVE (Psili) */, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_1page0 = { + 0, marc8_1page0_dir +}; +struct yaz_iconv_trie *marc8_1ptrs [] = { + &marc8_1page0, +0, }; + +unsigned long yaz_marc8_1_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_1ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 3 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8_2page0_flat[] = { + {"\x61", 0, 0x03B1}, /* GREEK SMALL LETTER ALPHA */ + {"\x62", 0, 0x03B2}, /* GREEK SMALL LETTER BETA */ + {"\x63", 0, 0x03B3}, /* GREEK SMALL LETTER GAMMA */ + {"", 0} +}; +struct yaz_iconv_trie marc8_2page0 = { + marc8_2page0_flat, 0 +}; +struct yaz_iconv_trie *marc8_2ptrs [] = { + &marc8_2page0, +0, }; + +unsigned long yaz_marc8_2_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_2ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 14 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8_3page0_flat[] = { + {"\x28", 0, 0x208D}, /* SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT PARENTHESIS */ + {"\x29", 0, 0x208E}, /* SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT PARENTHESIS */ + {"\x2B", 0, 0x208A}, /* SUBSCRIPT PLUS SIGN */ + {"\x2D", 0, 0x208B}, /* SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS */ + {"\x30", 0, 0x2080}, /* SUBSCRIPT DIGIT ZERO */ + {"\x31", 0, 0x2081}, /* SUBSCRIPT DIGIT ONE */ + {"\x32", 0, 0x2082}, /* SUBSCRIPT DIGIT TWO */ + {"\x33", 0, 0x2083}, /* SUBSCRIPT DIGIT THREE */ + {"\x34", 0, 0x2084}, /* SUBSCRIPT DIGIT FOUR */ + {"\x35", 0, 0x2085}, /* SUBSCRIPT DIGIT FIVE */ + {"\x36", 0, 0x2086}, /* SUBSCRIPT DIGIT SIX */ + {"\x37", 0, 0x2087}, /* SUBSCRIPT DIGIT SEVEN */ + {"\x38", 0, 0x2088}, /* SUBSCRIPT DIGIT EIGHT */ + {"\x39", 0, 0x2089}, /* SUBSCRIPT DIGIT NINE */ + {"", 0} +}; +struct yaz_iconv_trie marc8_3page0 = { + marc8_3page0_flat, 0 +}; +struct yaz_iconv_trie *marc8_3ptrs [] = { + &marc8_3page0, +0, }; + +unsigned long yaz_marc8_3_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_3ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 14 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8_4page0_flat[] = { + {"\x28", 0, 0x207D}, /* SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT PARENTHESIS */ + {"\x29", 0, 0x207E}, /* SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT RIGHT PARENTHESIS */ + {"\x2B", 0, 0x207A}, /* SUPERSCRIPT PLUS SIGN */ + {"\x2D", 0, 0x207B}, /* SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT MINUS */ + {"\x30", 0, 0x2070}, /* SUPERSCRIPT DIGIT ZERO */ + {"\x31", 0, 0x00B9}, /* SUPERSCRIPT DIGIT ONE */ + {"\x32", 0, 0x00B2}, /* SUPERSCRIPT DIGIT TWO */ + {"\x33", 0, 0x00B3}, /* SUPERSCRIPT DIGIT THREE */ + {"\x34", 0, 0x2074}, /* SUPERSCRIPT DIGIT FOUR */ + {"\x35", 0, 0x2075}, /* SUPERSCRIPT DIGIT FIVE */ + {"\x36", 0, 0x2076}, /* SUPERSCRIPT DIGIT SIX */ + {"\x37", 0, 0x2077}, /* SUPERSCRIPT DIGIT SEVEN */ + {"\x38", 0, 0x2078}, /* SUPERSCRIPT DIGIT EIGHT */ + {"\x39", 0, 0x2079}, /* SUPERSCRIPT DIGIT NINE */ + {"", 0} +}; +struct yaz_iconv_trie marc8_4page0 = { + marc8_4page0_flat, 0 +}; +struct yaz_iconv_trie *marc8_4ptrs [] = { + &marc8_4page0, +0, }; + +unsigned long yaz_marc8_4_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_4ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 78 */ +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_5page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0021} /* EXCLAMATION MARK */, + {0, 0, 0x05F4} /* QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION GERSHAYIM */, + {0, 0, 0x0023} /* NUMBER SIGN */, + {0, 0, 0x0024} /* DOLLAR SIGN */, + {0, 0, 0x0025} /* PERCENT SIGN */, + {0, 0, 0x0026} /* AMPERSAND */, + {0, 0, 0x05F3} /* APOSTROPHE, GERESH / HEBREW PUNCTUATION GERESH */, + {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0x002A} /* ASTERISK */, + {0, 0, 0x002B} /* PLUS SIGN */, + {0, 0, 0x002C} /* COMMA */, + {0, 0, 0x05BE} /* HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION MAQAF */, + {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x002F} /* SLASH / SOLIDUS */, + {0, 0, 0x0030} /* DIGIT ZERO */, + {0, 0, 0x0031} /* DIGIT ONE */, + {0, 0, 0x0032} /* DIGIT TWO */, + {0, 0, 0x0033} /* DIGIT THREE */, + {0, 0, 0x0034} /* DIGIT FOUR */, + {0, 0, 0x0035} /* DIGIT FIVE */, + {0, 0, 0x0036} /* DIGIT SIX */, + {0, 0, 0x0037} /* DIGIT SEVEN */, + {0, 0, 0x0038} /* DIGIT EIGHT */, + {0, 0, 0x0039} /* DIGIT NINE */, + {0, 0, 0x003A} /* COLON */, + {0, 0, 0x003B} /* SEMICOLON */, + {0, 0, 0x003C} /* LESS-THAN SIGN */, + {0, 0, 0x003D} /* EQUALS SIGN */, + {0, 0, 0x003E} /* GREATER-THAN SIGN */, + {0, 0, 0x003F} /* QUESTION MARK */, + {0, 1, 0x05B7} /* HEBREW POINT PATAH */, + {0, 1, 0x05B8} /* KAMATS / HEBREW POINT QAMATS */, + {0, 1, 0x05B6} /* HEBREW POINT SEGOL */, + {0, 1, 0x05B5} /* TSEREH / HEBREW POINT TSERE */, + {0, 1, 0x05B4} /* HIRIK / HEBREW POINT HIRIQ */, + {0, 1, 0x05B9} /* HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM */, + {0, 1, 0x05BB} /* KUBUTS / HEBREW POINT QUBUTS */, + {0, 1, 0x05B0} /* HEBREW POINT SHEVA */, + {0, 1, 0x05B2} /* HEBREW POINT HATAF PATAH */, + {0, 1, 0x05B3} /* HATAF KAMATS / HEBREW POINT HATAF QAMATS */, + {0, 1, 0x05B1} /* HEBREW POINT HATAF SEGOL */, + {0, 1, 0x05BC} /* HEBREW POINT DAGESH OR MAPIQ */, + {0, 1, 0x05BF} /* RAFEH / HEBREW POINT RAFE */, + {0, 1, 0x05C1} /* RIGHT SHIN DOT / HEBREW POINT SHIN DOT */, + {0, 1, 0xFB1E} /* VARIKA / HEBREW POINT JUDEO-SPANISH VARIKA */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x05D0} /* HEBREW LETTER ALEF */, + {0, 0, 0x05D1} /* HEBREW LETTER BET */, + {0, 0, 0x05D2} /* HEBREW LETTER GIMEL */, + {0, 0, 0x05D3} /* HEBREW LETTER DALET */, + {0, 0, 0x05D4} /* HEBREW LETTER HE */, + {0, 0, 0x05D5} /* HEBREW LETTER VAV */, + {0, 0, 0x05D6} /* HEBREW LETTER ZAYIN */, + {0, 0, 0x05D7} /* HEBREW LETTER HET */, + {0, 0, 0x05D8} /* HEBREW LETTER TET */, + {0, 0, 0x05D9} /* HEBREW LETTER YOD */, + {0, 0, 0x05DA} /* HEBREW LETTER FINAL KAF */, + {0, 0, 0x05DB} /* HEBREW LETTER KAF */, + {0, 0, 0x05DC} /* HEBREW LETTER LAMED */, + {0, 0, 0x05DD} /* HEBREW LETTER FINAL MEM */, + {0, 0, 0x05DE} /* HEBREW LETTER MEM */, + {0, 0, 0x05DF} /* HEBREW LETTER FINAL NUN */, + {0, 0, 0x05E0} /* HEBREW LETTER NUN */, + {0, 0, 0x05E1} /* HEBREW LETTER SAMEKH */, + {0, 0, 0x05E2} /* HEBREW LETTER AYIN */, + {0, 0, 0x05E3} /* HEBREW LETTER FINAL PE */, + {0, 0, 0x05E4} /* HEBREW LETTER PE */, + {0, 0, 0x05E5} /* HEBREW LETTER FINAL TSADI */, + {0, 0, 0x05E6} /* HEBREW LETTER TSADI */, + {0, 0, 0x05E7} /* HEBREW LETTER QOF / KOF */, + {0, 0, 0x05E8} /* HEBREW LETTER RESH */, + {0, 0, 0x05E9} /* HEBREW LETTER SHIN */, + {0, 0, 0x05EA} /* HEBREW LETTER TAV */, + {0, 0, 0x05F0} /* HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY VOVN */, + {0, 0, 0x05F1} /* HEBREW LIGATURE YIDDISH VAV YOD / VOV YUD */, + {0, 0, 0x05F2} /* HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY YUDN */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_5page0 = { + 0, marc8_5page0_dir +}; +struct yaz_iconv_trie *marc8_5ptrs [] = { + &marc8_5page0, +0, }; + +unsigned long yaz_marc8_5_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_5ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 136 */ +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_6page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0021} /* EXCLAMATION MARK */, + {0, 0, 0x0022} /* QUOTATION MARK */, + {0, 0, 0x0023} /* NUMBER SIGN */, + {0, 0, 0x0024} /* DOLLAR SIGN */, + {0, 0, 0x0025} /* PERCENT SIGN */, + {0, 0, 0x0026} /* AMPERSAND */, + {0, 0, 0x0027} /* APOSTROPHE */, + {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0x002A} /* ASTERISK */, + {0, 0, 0x002B} /* PLUS SIGN */, + {0, 0, 0x002C} /* COMMA */, + {0, 0, 0x002D} /* HYPHEN-MINUS */, + {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x002F} /* SLASH / SOLIDUS */, + {0, 0, 0x0030} /* DIGIT ZERO */, + {0, 0, 0x0031} /* DIGIT ONE */, + {0, 0, 0x0032} /* DIGIT TWO */, + {0, 0, 0x0033} /* DIGIT THREE */, + {0, 0, 0x0034} /* DIGIT FOUR */, + {0, 0, 0x0035} /* DIGIT FIVE */, + {0, 0, 0x0036} /* DIGIT SIX */, + {0, 0, 0x0037} /* DIGIT SEVEN */, + {0, 0, 0x0038} /* DIGIT EIGHT */, + {0, 0, 0x0039} /* DIGIT NINE */, + {0, 0, 0x003A} /* COLON */, + {0, 0, 0x003B} /* SEMICOLON */, + {0, 0, 0x003C} /* LESS-THAN SIGN */, + {0, 0, 0x003D} /* EQUALS SIGN */, + {0, 0, 0x003E} /* GREATER-THAN SIGN */, + {0, 0, 0x003F} /* QUESTION MARK */, + {0, 0, 0x044E} /* LOWERCASE IU / CYRILLIC SMALL LETTER YU */, + {0, 0, 0x0430} /* CYRILLIC SMALL LETTER A */, + {0, 0, 0x0431} /* CYRILLIC SMALL LETTER BE */, + {0, 0, 0x0446} /* CYRILLIC SMALL LETTER TSE */, + {0, 0, 0x0434} /* CYRILLIC SMALL LETTER DE */, + {0, 0, 0x0435} /* CYRILLIC SMALL LETTER IE */, + {0, 0, 0x0444} /* CYRILLIC SMALL LETTER EF */, + {0, 0, 0x0433} /* LOWERCASE GE / CYRILLIC SMALL LETTER GHE */, + {0, 0, 0x0445} /* LOWERCASE KHA / CYRILLIC SMALL LETTER HA */, + {0, 0, 0x0438} /* LOWERCASE II / CYRILLIC SMALL LETTER I */, + {0, 0, 0x0439} /* LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT I */, + {0, 0, 0x043A} /* CYRILLIC SMALL LETTER KA */, + {0, 0, 0x043B} /* CYRILLIC SMALL LETTER EL */, + {0, 0, 0x043C} /* CYRILLIC SMALL LETTER EM */, + {0, 0, 0x043D} /* CYRILLIC SMALL LETTER EN */, + {0, 0, 0x043E} /* CYRILLIC SMALL LETTER O */, + {0, 0, 0x043F} /* CYRILLIC SMALL LETTER PE */, + {0, 0, 0x044F} /* LOWERCASE IA / CYRILLIC SMALL LETTER YA */, + {0, 0, 0x0440} /* CYRILLIC SMALL LETTER ER */, + {0, 0, 0x0441} /* CYRILLIC SMALL LETTER ES */, + {0, 0, 0x0442} /* CYRILLIC SMALL LETTER TE */, + {0, 0, 0x0443} /* CYRILLIC SMALL LETTER U */, + {0, 0, 0x0436} /* CYRILLIC SMALL LETTER ZHE */, + {0, 0, 0x0432} /* CYRILLIC SMALL LETTER VE */, + {0, 0, 0x044C} /* CYRILLIC SMALL LETTER SOFT SIGN */, + {0, 0, 0x044B} /* LOWERCASE YERI / CYRILLIC SMALL LETTER YERI */, + {0, 0, 0x0437} /* CYRILLIC SMALL LETTER ZE */, + {0, 0, 0x0448} /* CYRILLIC SMALL LETTER SHA */, + {0, 0, 0x044D} /* LOWERCASE REVERSED E / CYRILLIC SMALL LETTER E */, + {0, 0, 0x0449} /* CYRILLIC SMALL LETTER SHCHA */, + {0, 0, 0x0447} /* CYRILLIC SMALL LETTER CHE */, + {0, 0, 0x044A} /* CYRILLIC SMALL LETTER HARD SIGN */, + {0, 0, 0x042E} /* UPPERCASE IU / CYRILLIC CAPITAL LETTER YU */, + {0, 0, 0x0410} /* CYRILLIC CAPITAL LETTER A */, + {0, 0, 0x0411} /* CYRILLIC CAPITAL LETTER BE */, + {0, 0, 0x0426} /* CYRILLIC CAPITAL LETTER TSE */, + {0, 0, 0x0414} /* CYRILLIC CAPITAL LETTER DE */, + {0, 0, 0x0415} /* CYRILLIC CAPITAL LETTER IE */, + {0, 0, 0x0424} /* CYRILLIC CAPITAL LETTER EF */, + {0, 0, 0x0413} /* UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE */, + {0, 0, 0x0425} /* UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA */, + {0, 0, 0x0418} /* UPPERCASE II / CYRILLIC CAPITAL LETTER I */, + {0, 0, 0x0419} /* UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT I */, + {0, 0, 0x041A} /* CYRILLIC CAPITAL LETTER KA */, + {0, 0, 0x041B} /* CYRILLIC CAPITAL LETTER EL */, + {0, 0, 0x041C} /* CYRILLIC CAPITAL LETTER EM */, + {0, 0, 0x041D} /* CYRILLIC CAPITAL LETTER EN */, + {0, 0, 0x041E} /* CYRILLIC CAPITAL LETTER O */, + {0, 0, 0x041F} /* CYRILLIC CAPITAL LETTER PE */, + {0, 0, 0x042F} /* UPPERCASE IA / CYRILLIC CAPITAL LETTER YA */, + {0, 0, 0x0420} /* CYRILLIC CAPITAL LETTER ER */, + {0, 0, 0x0421} /* CYRILLIC CAPITAL LETTER ES */, + {0, 0, 0x0422} /* CYRILLIC CAPITAL LETTER TE */, + {0, 0, 0x0423} /* CYRILLIC CAPITAL LETTER U */, + {0, 0, 0x0416} /* CYRILLIC CAPITAL LETTER ZHE */, + {0, 0, 0x0412} /* CYRILLIC CAPITAL LETTER VE */, + {0, 0, 0x042C} /* CYRILLIC CAPITAL LETTER SOFT SIGN */, + {0, 0, 0x042B} /* UPPERCASE YERI / CYRILLIC CAPITAL LETTER YERI */, + {0, 0, 0x0417} /* CYRILLIC CAPITAL LETTER ZE */, + {0, 0, 0x0428} /* CYRILLIC CAPITAL LETTER SHA */, + {0, 0, 0x042D} /* CYRILLIC CAPITAL LETTER E */, + {0, 0, 0x0429} /* CYRILLIC CAPITAL LETTER SHCHA */, + {0, 0, 0x0427} /* CYRILLIC CAPITAL LETTER CHE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0491} /* LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER GHE WITH UPTURN */, + {0, 0, 0x0452} /* LOWERCASE DJE / CYRILLIC SMALL LETTER DJE (Serbian) */, + {0, 0, 0x0453} /* CYRILLIC SMALL LETTER GJE */, + {0, 0, 0x0454} /* LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN IE */, + {0, 0, 0x0451} /* CYRILLIC SMALL LETTER IO */, + {0, 0, 0x0455} /* CYRILLIC SMALL LETTER DZE */, + {0, 0, 0x0456} /* LOWERCASE I / CYRILLIC SMALL LETTER BYELORUSSIAN-UKRANIAN I */, + {0, 0, 0x0457} /* LOWERCASE YI / CYRILLIC SMALL LETTER YI (Ukrainian) */, + {0, 0, 0x0458} /* CYRILLIC SMALL LETTER JE */, + {0, 0, 0x0459} /* CYRILLIC SMALL LETTER LJE */, + {0, 0, 0x045A} /* CYRILLIC SMALL LETTER NJE */, + {0, 0, 0x045B} /* LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE (Serbian) */, + {0, 0, 0x045C} /* CYRILLIC SMALL LETTER KJE */, + {0, 0, 0x045E} /* LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT U (Byelorussian) */, + {0, 0, 0x045F} /* CYRILLIC SMALL LETTER DZHE */, + {0, 0, 0}, + {0, 0, 0x0463} /* CYRILLIC SMALL LETTER YAT */, + {0, 0, 0x0473} /* CYRILLIC SMALL LETTER FITA */, + {0, 0, 0x0475} /* CYRILLIC SMALL LETTER IZHITSA */, + {0, 0, 0x046B} /* CYRILLIC SMALL LETTER BIG YUS */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x005F} /* SPACING UNDERSCORE / LOW LINE */, + {0, 0, 0x0490} /* UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL LETTER GHE WITH UPTURN */, + {0, 0, 0x0402} /* UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE (Serbian) */, + {0, 0, 0x0403} /* CYRILLIC CAPITAL LETTER GJE */, + {0, 0, 0x0404} /* UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN IE */, + {0, 0, 0x0401} /* CYRILLIC CAPITAL LETTER IO */, + {0, 0, 0x0405} /* CYRILLIC CAPITAL LETTER DZE */, + {0, 0, 0x0406} /* UPPERCASE I / CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRANIAN I */, + {0, 0, 0x0407} /* UPPERCASE YI / CYRILLIC CAPITAL LETTER YI (Ukrainian) */, + {0, 0, 0x0408} /* CYRILLIC CAPITAL LETTER JE */, + {0, 0, 0x0409} /* CYRILLIC CAPITAL LETTER LJE */, + {0, 0, 0x040A} /* CYRILLIC CAPITAL LETTER NJE */, + {0, 0, 0x040B} /* UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE (Serbian) */, + {0, 0, 0x040C} /* CYRILLIC CAPITAL LETTER KJE */, + {0, 0, 0x040E} /* UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) */, + {0, 0, 0x040F} /* CYRILLIC CAPITAL LETTER DZHE */, + {0, 0, 0x042A} /* CYRILLIC CAPITAL LETTER HARD SIGN */, + {0, 0, 0x0462} /* CYRILLIC CAPITAL LETTER YAT */, + {0, 0, 0x0472} /* CYRILLIC CAPITAL LETTER FITA */, + {0, 0, 0x0474} /* CYRILLIC CAPITAL LETTER IZHITSA */, + {0, 0, 0x046A} /* CYRILLIC CAPITAL LETTER BIG YUS */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_6page0 = { + 0, marc8_6page0_dir +}; +struct yaz_iconv_trie *marc8_6ptrs [] = { + &marc8_6page0, +0, }; + +unsigned long yaz_marc8_6_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_6ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 173 */ +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_7page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0021} /* EXCLAMATION MARK */, + {0, 0, 0x0022} /* QUOTATION MARK */, + {0, 0, 0x0023} /* NUMBER SIGN */, + {0, 0, 0x0024} /* DOLLAR SIGN */, + {0, 0, 0x066A} /* PERCENT SIGN / ARABIC PERCENT SIGN */, + {0, 0, 0x0026} /* AMPERSAND */, + {0, 0, 0x0027} /* APOSTROPHE */, + {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0x066D} /* ASTERISK / ARABIC FIVE POINTED STAR */, + {0, 0, 0x002B} /* PLUS SIGN */, + {0, 0, 0x060C} /* ARABIC COMMA */, + {0, 0, 0x002D} /* HYPHEN-MINUS */, + {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x002F} /* SLASH / SOLIDUS */, + {0, 0, 0x0660} /* ARABIC-INDIC DIGIT ZERO */, + {0, 0, 0x0661} /* ARABIC-INDIC DIGIT ONE */, + {0, 0, 0x0662} /* ARABIC-INDIC DIGIT TWO */, + {0, 0, 0x0663} /* ARABIC-INDIC DIGIT THREE */, + {0, 0, 0x0664} /* ARABIC-INDIC DIGIT FOUR */, + {0, 0, 0x0665} /* ARABIC-INDIC DIGIT FIVE */, + {0, 0, 0x0666} /* ARABIC-INDIC DIGIT SIX */, + {0, 0, 0x0667} /* ARABIC-INDIC DIGIT SEVEN */, + {0, 0, 0x0668} /* ARABIC-INDIC DIGIT EIGHT */, + {0, 0, 0x0669} /* ARABIC-INDIC DIGIT NINE */, + {0, 0, 0x003A} /* COLON */, + {0, 0, 0x061B} /* ARABIC SEMICOLON */, + {0, 0, 0x003C} /* LESS-THAN SIGN */, + {0, 0, 0x003D} /* EQUALS SIGN */, + {0, 0, 0x003E} /* GREATER-THAN SIGN */, + {0, 0, 0x061F} /* ARABIC QUESTION MARK */, + {0, 0, 0}, + {0, 0, 0x0621} /* HAMZAH / ARABIC LETTER HAMZA */, + {0, 0, 0x0622} /* ARABIC LETTER ALEF WITH MADDA ABOVE */, + {0, 0, 0x0623} /* ARABIC LETTER ALEF WITH HAMZA ABOVE */, + {0, 0, 0x0624} /* ARABIC LETTER WAW WITH HAMZA ABOVE */, + {0, 0, 0x0625} /* ARABIC LETTER ALEF WITH HAMZA BELOW */, + {0, 0, 0x0626} /* ARABIC LETTER YEH WITH HAMZA ABOVE */, + {0, 0, 0x0627} /* ARABIC LETTER ALEF */, + {0, 0, 0x0628} /* ARABIC LETTER BEH */, + {0, 0, 0x0629} /* ARABIC LETTER TEH MARBUTA */, + {0, 0, 0x062A} /* ARABIC LETTER TEH */, + {0, 0, 0x062B} /* ARABIC LETTER THEH */, + {0, 0, 0x062C} /* ARABIC LETTER JEEM */, + {0, 0, 0x062D} /* ARABIC LETTER HAH */, + {0, 0, 0x062E} /* ARABIC LETTER KHAH */, + {0, 0, 0x062F} /* ARABIC LETTER DAL */, + {0, 0, 0x0630} /* ARABIC LETTER THAL */, + {0, 0, 0x0631} /* ARABIC LETTER REH */, + {0, 0, 0x0632} /* ARABIC LETTER ZAIN */, + {0, 0, 0x0633} /* ARABIC LETTER SEEN */, + {0, 0, 0x0634} /* ARABIC LETTER SHEEN */, + {0, 0, 0x0635} /* ARABIC LETTER SAD */, + {0, 0, 0x0636} /* ARABIC LETTER DAD */, + {0, 0, 0x0637} /* ARABIC LETTER TAH */, + {0, 0, 0x0638} /* ARABIC LETTER ZAH */, + {0, 0, 0x0639} /* ARABIC LETTER AIN */, + {0, 0, 0x063A} /* ARABIC LETTER GHAIN */, + {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0640} /* ARABIC TATWEEL */, + {0, 0, 0x0641} /* ARABIC LETTER FEH */, + {0, 0, 0x0642} /* ARABIC LETTER QAF */, + {0, 0, 0x0643} /* ARABIC LETTER KAF */, + {0, 0, 0x0644} /* ARABIC LETTER LAM */, + {0, 0, 0x0645} /* ARABIC LETTER MEEM */, + {0, 0, 0x0646} /* ARABIC LETTER NOON */, + {0, 0, 0x0647} /* ARABIC LETTER HEH */, + {0, 0, 0x0648} /* ARABIC LETTER WAW */, + {0, 0, 0x0649} /* ARABIC LETTER ALEF MAKSURA */, + {0, 0, 0x064A} /* ARABIC LETTER YEH */, + {0, 1, 0x064B} /* ARABIC FATHATAN */, + {0, 1, 0x064C} /* ARABIC DAMMATAN */, + {0, 1, 0x064D} /* ARABIC KASRATAN */, + {0, 1, 0x064E} /* ARABIC FATHA */, + {0, 1, 0x064F} /* ARABIC DAMMA */, + {0, 1, 0x0650} /* ARABIC KASRA */, + {0, 1, 0x0651} /* ARABIC SHADDA */, + {0, 1, 0x0652} /* ARABIC SUKUN */, + {0, 0, 0x0671} /* ARABIC LETTER ALEF WASLA */, + {0, 0, 0x0670} /* ARABIC LETTER SUPERSCRIPT ALEF */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x066C} /* ARABIC THOUSANDS SEPARATOR */, + {0, 0, 0x201D} /* RIGHT DOUBLE QUOTATION MARK */, + {0, 0, 0x201C} /* LEFT DOUBLE QUOTATION MARK */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x06FD} /* DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI AMPERSAND */, + {0, 0, 0x0672} /* ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE */, + {0, 0, 0x0673} /* ARABIC LETTER ALEF WITH WAVY HAMZA BELOW */, + {0, 0, 0x0679} /* ARABIC LETTER TTEH */, + {0, 0, 0x067A} /* ARABIC LETTER TTEHEH */, + {0, 0, 0x067B} /* ARABIC LETTER BBEH */, + {0, 0, 0x067C} /* ARABIC LETTER TEH WITH RING */, + {0, 0, 0x067D} /* ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS */, + {0, 0, 0x067E} /* ARABIC LETTER PEH */, + {0, 0, 0x067F} /* ARABIC LETTER TEHEH */, + {0, 0, 0x0680} /* ARABIC LETTER BEHEH */, + {0, 0, 0x0681} /* ARABIC LETTER HAH WITH HAMZA ABOVE */, + {0, 0, 0x0682} /* ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL ABOVE */, + {0, 0, 0x0683} /* ARABIC LETTER NYEH */, + {0, 0, 0x0684} /* ARABIC LETTER DYEH */, + {0, 0, 0x0685} /* ARABIC LETTER HAH WITH THREE DOTS ABOVE */, + {0, 0, 0x0686} /* ARABIC LETTER TCHEH */, + {0, 0, 0x06BF} /* ARABIC LETTER TCHEH WITH DOT ABOVE */, + {0, 0, 0x0687} /* ARABIC LETTER TCHEHEH */, + {0, 0, 0x0688} /* ARABIC LETTER DDAL */, + {0, 0, 0x0689} /* ARABIC LETTER DAL WITH RING */, + {0, 0, 0x068A} /* ARABIC LETTER DAL WITH DOT BELOW */, + {0, 0, 0x068B} /* ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH */, + {0, 0, 0x068C} /* ARABIC LETTER DAHAL */, + {0, 0, 0x068D} /* ARABIC LETTER DDAHAL */, + {0, 0, 0x068E} /* ARABIC LETTER DUL */, + {0, 0, 0x068F} /* ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS */, + {0, 0, 0x0690} /* ARABIC LETTER DAL WITH FOUR DOTS ABOVE */, + {0, 0, 0x0691} /* ARABIC LETTER RREH */, + {0, 0, 0x0692} /* ARABIC LETTER REH WITH SMALL V */, + {0, 0, 0x0693} /* ARABIC LETTER REH WITH RING */, + {0, 0, 0x0694} /* ARABIC LETTER REH WITH DOT BELOW */, + {0, 0, 0x0695} /* ARABIC LETTER REH WITH SMALL V BELOW */, + {0, 0, 0x0696} /* ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE */, + {0, 0, 0x0697} /* ARABIC LETTER REH WITH TWO DOTS ABOVE */, + {0, 0, 0x0698} /* ARABIC LETTER JEH */, + {0, 0, 0x0699} /* ARABIC LETTER REH WITH FOUR DOTS ABOVE */, + {0, 0, 0x069A} /* ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE */, + {0, 0, 0x069B} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW */, + {0, 0, 0x069C} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE */, + {0, 0, 0x06FA} /* ARABIC LETTER SHEEN WITH DOT BELOW */, + {0, 0, 0x069D} /* ARABIC LETTER SAD WITH TWO DOTS BELOW */, + {0, 0, 0x069E} /* ARABIC LETTER SAD WITH THREE DOTS ABOVE */, + {0, 0, 0x06FB} /* ARABIC LETTER DAD WITH DOT BELOW */, + {0, 0, 0x069F} /* ARABIC LETTER TAH WITH THREE DOTS ABOVE */, + {0, 0, 0x06A0} /* ARABIC LETTER AIN WITH THREE DOTS ABOVE */, + {0, 0, 0x06FC} /* ARABIC LETTER GHAIN WITH DOT BELOW */, + {0, 0, 0x06A1} /* ARABIC LETTER DOTLESS FEH */, + {0, 0, 0x06A2} /* ARABIC LETTER FEH WITH DOT MOVED BELOW */, + {0, 0, 0x06A3} /* ARABIC LETTER FEH WITH DOT BELOW */, + {0, 0, 0x06A4} /* ARABIC LETTER VEH */, + {0, 0, 0x06A5} /* ARABIC LETTER FEH WITH THREE DOTS BELOW */, + {0, 0, 0x06A6} /* ARABIC LETTER PEHEH */, + {0, 0, 0x06A7} /* ARABIC LETTER QAF WITH DOT ABOVE */, + {0, 0, 0x06A8} /* ARABIC LETTER QAF WITH THREE DOTS ABOVE */, + {0, 0, 0x06A9} /* ARABIC LETTER KEHEH */, + {0, 0, 0x06AA} /* ARABIC LETTER SWASH KAF */, + {0, 0, 0x06AB} /* ARABIC LETTER KAF WITH RING */, + {0, 0, 0x06AC} /* ARABIC LETTER KAF WITH DOT ABOVE */, + {0, 0, 0x06AD} /* ARABIC LETTER NG */, + {0, 0, 0x06AE} /* ARABIC LETTER KAF WITH THREE DOTS BELOW */, + {0, 0, 0x06AF} /* ARABIC LETTER GAF */, + {0, 0, 0x06B0} /* ARABIC LETTER GAF WITH RING */, + {0, 0, 0x06B1} /* ARABIC LETTER NGOEH */, + {0, 0, 0x06B2} /* ARABIC LETTER GAF WITH TWO DOTS BELOW */, + {0, 0, 0x06B3} /* ARABIC LETTER GUEH */, + {0, 0, 0x06B4} /* ARABIC LETTER GAF WITH THREE DOTS ABOVE */, + {0, 0, 0x06B5} /* ARABIC LETTER LAM WITH SMALL V */, + {0, 0, 0x06B6} /* ARABIC LETTER LAM WITH DOT ABOVE */, + {0, 0, 0x06B7} /* ARABIC LETTER LAM WITH THREE DOTS ABOVE */, + {0, 0, 0x06B8} /* ARABIC LETTER LAM WITH THREE DOTS BELOW */, + {0, 0, 0x06BA} /* ARABIC LETTER NOON GHUNNA */, + {0, 0, 0x06BB} /* ARABIC LETTER RNOON */, + {0, 0, 0x06BC} /* ARABIC LETTER NOON WITH RING */, + {0, 0, 0x06BD} /* ARABIC LETTER NOON WITH THREE DOTS ABOVE */, + {0, 0, 0x06B9} /* ARABIC LETTER NOON WITH DOT BELOW */, + {0, 0, 0x06BE} /* ARABIC LETTER HEH DOACHASHMEE */, + {0, 0, 0x06C0} /* HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH YEH ABOVE */, + {0, 0, 0x06C4} /* ARABIC LETTER WAW WITH RING */, + {0, 0, 0x06C5} /* KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE */, + {0, 0, 0x06C6} /* ARABIC LETTER OE */, + {0, 0, 0x06CA} /* ARABIC LETTER WAW WITH TWO DOTS ABOVE */, + {0, 0, 0x06CB} /* ARABIC LETTER VE */, + {0, 0, 0x06CD} /* ARABIC LETTER YEH WITH TAIL */, + {0, 0, 0x06CE} /* ARABIC LETTER YEH WITH SMALL V */, + {0, 0, 0x06D0} /* ARABIC LETTER E */, + {0, 0, 0x06D2} /* ARABIC LETTER YEH BARREE */, + {0, 0, 0x06D3} /* ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 1, 0x0306} /* SHORT E / COMBINING BREVE */, + {0, 1, 0x030C} /* SHORT U / COMBINING CARON */, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_7page0 = { + 0, marc8_7page0_dir +}; +struct yaz_iconv_trie *marc8_7ptrs [] = { + &marc8_7page0, +0, }; + +unsigned long yaz_marc8_7_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_7ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 73 */ +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_8page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 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, 0x0300} /* COMBINING GRAVE ACCENT */, + {0, 1, 0x0301} /* COMBINING ACUTE ACCENT */, + {0, 1, 0x0308} /* COMBINING DIAERESIS */, + {0, 1, 0x0342} /* COMBINING GREEK PERISPOMENI / CIRCUMFLEX */, + {0, 1, 0x0313} /* COMBINING COMMA ABOVE / SMOOTH BREATHING */, + {0, 1, 0x0314} /* COMBINING REVERSED COMMA ABOVE / ROUGH BREATHING */, + {0, 1, 0x0345} /* COMBINING GREEK YPOGEGRAMMENI / IOTA SUBSCRIPT */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x00AB} /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */, + {0, 0, 0x00BB} /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */, + {0, 0, 0x201C} /* LEFT DOUBLE QUOTATION MARK */, + {0, 0, 0x201D} /* RIGHT DOUBLE QUOTATION MARK */, + {0, 0, 0x0374} /* GREEK NUMERAL SIGN / UPPER PRIME */, + {0, 0, 0x0375} /* GREEK LOWER NUMERAL SIGN / LOWER PRIME */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x0387} /* GREEK ANO TELEIA / RAISED DOT, GREEK SEMICOLON */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x037E} /* GREEK QUESTION MARK */, + {0, 0, 0}, + {0, 0, 0x0391} /* GREEK CAPITAL LETTER ALPHA */, + {0, 0, 0x0392} /* GREEK CAPITAL LETTER BETA */, + {0, 0, 0}, + {0, 0, 0x0393} /* GREEK CAPITAL LETTER GAMMA */, + {0, 0, 0x0394} /* GREEK CAPITAL LETTER DELTA */, + {0, 0, 0x0395} /* GREEK CAPITAL LETTER EPSILON */, + {0, 0, 0x03DA} /* GREEK LETTER STIGMA */, + {0, 0, 0x03DC} /* GREEK LETTER DIGAMMA */, + {0, 0, 0x0396} /* GREEK CAPITAL LETTER ZETA */, + {0, 0, 0x0397} /* GREEK CAPITAL LETTER ETA */, + {0, 0, 0x0398} /* GREEK CAPITAL LETTER THETA */, + {0, 0, 0x0399} /* GREEK CAPITAL LETTER IOTA */, + {0, 0, 0x039A} /* GREEK CAPITAL LETTER KAPPA */, + {0, 0, 0x039B} /* GREEK CAPITAL LETTER LAMDA */, + {0, 0, 0x039C} /* GREEK CAPITAL LETTER MU */, + {0, 0, 0x039D} /* GREEK CAPITAL LETTER NU */, + {0, 0, 0x039E} /* GREEK CAPITAL LETTER XI */, + {0, 0, 0x039F} /* GREEK CAPITAL LETTER OMICRON */, + {0, 0, 0x03A0} /* GREEK CAPITAL LETTER PI */, + {0, 0, 0x03DE} /* GREEK LETTER KOPPA */, + {0, 0, 0x03A1} /* GREEK CAPITAL LETTER RHO */, + {0, 0, 0x03A3} /* GREEK CAPITAL LETTER SIGMA */, + {0, 0, 0}, + {0, 0, 0x03A4} /* GREEK CAPITAL LETTER TAU */, + {0, 0, 0x03A5} /* GREEK CAPITAL LETTER UPSILON */, + {0, 0, 0x03A6} /* GREEK CAPITAL LETTER PHI */, + {0, 0, 0x03A7} /* GREEK CAPITAL LETTER CHI */, + {0, 0, 0x03A8} /* GREEK CAPITAL LETTER PSI */, + {0, 0, 0x03A9} /* GREEK CAPITAL LETTER OMEGA */, + {0, 0, 0x03E0} /* GREEK LETTER SAMPI */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x03B1} /* GREEK SMALL LETTER ALPHA */, + {0, 0, 0x03B2} /* GREEK SMALL LETTER BETA / SMALL LETTER BETA BEGINNING OF WORD */, + {0, 0, 0x03D0} /* GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF WORD */, + {0, 0, 0x03B3} /* GREEK SMALL LETTER GAMMA */, + {0, 0, 0x03B4} /* GREEK SMALL LETTER DELTA */, + {0, 0, 0x03B5} /* GREEK SMALL LETTER EPSILON */, + {0, 0, 0x03DB} /* GREEK SMALL LETTER STIGMA */, + {0, 0, 0x03DD} /* GREEK SMALL LETTER DIGAMMA */, + {0, 0, 0x03B6} /* GREEK SMALL LETTER ZETA */, + {0, 0, 0x03B7} /* GREEK SMALL LETTER ETA */, + {0, 0, 0x03B8} /* GREEK SMALL LETTER THETA */, + {0, 0, 0x03B9} /* GREEK SMALL LETTER IOTA */, + {0, 0, 0x03BA} /* GREEK SMALL LETTER KAPPA */, + {0, 0, 0x03BB} /* GREEK SMALL LETTER LAMDA */, + {0, 0, 0x03BC} /* GREEK SMALL LETTER MU */, + {0, 0, 0x03BD} /* GREEK SMALL LETTER NU */, + {0, 0, 0x03BE} /* GREEK SMALL LETTER XI */, + {0, 0, 0x03BF} /* GREEK SMALL LETTER OMICRON */, + {0, 0, 0x03C0} /* GREEK SMALL LETTER PI */, + {0, 0, 0x03DF} /* GREEK SMALL LETTER KOPPA */, + {0, 0, 0x03C1} /* GREEK SMALL LETTER RHO */, + {0, 0, 0x03C3} /* GREEK SMALL LETTER SIGMA */, + {0, 0, 0x03C2} /* GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER SIGMA END OF WORD */, + {0, 0, 0x03C4} /* GREEK SMALL LETTER TAU */, + {0, 0, 0x03C5} /* GREEK SMALL LETTER UPSILON */, + {0, 0, 0x03C6} /* GREEK SMALL LETTER PHI */, + {0, 0, 0x03C7} /* GREEK SMALL LETTER CHI */, + {0, 0, 0x03C8} /* GREEK SMALL LETTER PSI */, + {0, 0, 0x03C9} /* GREEK SMALL LETTER OMEGA */, + {0, 0, 0x03E1} /* GREEK SMALL LETTER SAMPI */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_8page0 = { + 0, marc8_8page0_dir +}; +struct yaz_iconv_trie *marc8_8ptrs [] = { + &marc8_8page0, +0, }; + +unsigned long yaz_marc8_8_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_8ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 15739 */ +/* PAGE 827 */ +struct yaz_iconv_trie_flat marc8_9page827_flat[] = { + {"\x25", 0, 0x300C}, /* Ideographic left corner bracket */ + {"\x26", 0, 0x300D}, /* Ideographic right corner bracket */ + {"\x31", 0, 0xFF3B}, /* Ideographic left square bracket */ + {"\x32", 0, 0xFF3D}, /* Ideographic right square bracket */ + {"\x33", 0, 0x3002}, /* Ideographic full stop */ + {"\x34", 0, 0xFF0E}, /* Ideographic variant full stop */ + {"\x35", 0, 0x3001}, /* Ideographic comma */ + {"\x38", 0, 0xFF0C}, /* Ideographic variant comma */ + {"\x39", 0, 0xFF1B}, /* Ideographic semicolon */ + {"\x3A", 0, 0xFF1A}, /* Ideographic colon */ + {"\x3B", 0, 0xFF1F}, /* Ideographic question mark */ + {"\x3D", 0, 0xFF01}, /* Ideographic exclamation point */ + {"\x59", 0, 0xFF0F}, /* Ideographic solidus */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page827 = { + marc8_9page827_flat, 0 +}; +/* PAGE 826 */ +struct yaz_iconv_trie_flat marc8_9page826_flat[] = { + {"\x46", 0, 0x3013}, /* Ideographic geta symbol */ + {"\x21", 0, 0xE8D0}, /* EACC component character */ + {"\x22", 0, 0xE8D1}, /* EACC component character */ + {"\x23", 0, 0xE8D2}, /* EACC component character */ + {"\x24", 0, 0xE8D3}, /* EACC component character */ + {"\x25", 0, 0xE8D4}, /* EACC component character */ + {"\x26", 0, 0xE8D5}, /* EACC component character */ + {"\x28", 0, 0xE8D6}, /* EACC component character */ + {"\x29", 0, 0xE8D7}, /* EACC component character */ + {"\x2A", 0, 0xE8D8}, /* EACC component character */ + {"\x2B", 0, 0xE8D9}, /* EACC component character */ + {"\x2C", 0, 0xE8DA}, /* EACC component character */ + {"\x2D", 0, 0xE8DB}, /* EACC component character */ + {"\x2E", 0, 0xE8DC}, /* EACC component character */ + {"\x2F", 0, 0xE8DD}, /* EACC component character */ + {"\x30", 0, 0xE8DE}, /* EACC component character */ + {"\x32", 0, 0xE8DF}, /* EACC component character */ + {"\x33", 0, 0xE8E0}, /* EACC component character */ + {"\x34", 0, 0xE8E1}, /* EACC component character */ + {"\x35", 0, 0xE8E2}, /* EACC component character */ + {"\x36", 0, 0xE8E3}, /* EACC component character */ + {"\x37", 0, 0xE8E4}, /* EACC component character */ + {"\x38", 0, 0xE8E5}, /* EACC component character */ + {"\x39", 0, 0xE8E6}, /* EACC component character */ + {"\x3A", 0, 0xE8E7}, /* EACC component character */ + {"\x3B", 0, 0xE8E8}, /* EACC component character */ + {"\x3C", 0, 0xE8E9}, /* EACC component character */ + {"\x3D", 0, 0xE8EA}, /* EACC component character */ + {"\x3E", 0, 0xE8EB}, /* EACC component character */ + {"\x3F", 0, 0xE8EC}, /* EACC component character */ + {"\x40", 0, 0xE8ED}, /* EACC component character */ + {"\x41", 0, 0xE8EE}, /* EACC component character */ + {"\x42", 0, 0xE8EF}, /* EACC component character */ + {"\x43", 0, 0xE8F0}, /* EACC component character */ + {"\x44", 0, 0xE8F1}, /* EACC component character */ + {"\x45", 0, 0xE8F2}, /* EACC component character */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page826 = { + marc8_9page826_flat, 0 +}; +/* PAGE 825 */ +struct yaz_iconv_trie_flat marc8_9page825_flat[] = { + {"\x21", 0, 0x3000}, /* Ideographic space per ANSI Z39.64 */ + {"\x20", 0, 0x3000}, /* Ideographic space in some implementations */ + {"\x28", 0, 0xFF08}, /* Ideographic left parenthesis */ + {"\x29", 0, 0xFF09}, /* Ideographic right parenthesis */ + {"\x2D", 0, 0xFF0D}, /* Ideographic hyphen minus */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page825 = { + marc8_9page825_flat, 0 +}; +/* PAGE 824 */ +struct yaz_iconv_trie_flat marc8_9page824_flat[] = { + {"\x21", 0, 0xAD35}, /* Korean hangul */ + {"\x22", 0, 0xAD7B}, /* Korean hangul */ + {"\x23", 0, 0xE8CA}, /* Korean hangul */ + {"\x24", 0, 0xAD89}, /* Korean hangul */ + {"\x25", 0, 0xAD9D}, /* Korean hangul */ + {"\x26", 0, 0xADB9}, /* Korean hangul */ + {"\x27", 0, 0xADD5}, /* Korean hangul */ + {"\x28", 0, 0xAE07}, /* Korean hangul */ + {"\x29", 0, 0xAE0E}, /* Korean hangul */ + {"\x2A", 0, 0xAE0F}, /* Korean hangul */ + {"\x2B", 0, 0xAE11}, /* Korean hangul */ + {"\x2C", 0, 0xAE14}, /* Korean hangul */ + {"\x2D", 0, 0xAE5F}, /* Korean hangul */ + {"\x2E", 0, 0xAEED}, /* Korean hangul */ + {"\x2F", 0, 0xAF09}, /* Korean hangul */ + {"\x30", 0, 0xAF50}, /* Korean hangul */ + {"\x31", 0, 0xAFBF}, /* Korean hangul */ + {"\x32", 0, 0xB060}, /* Korean hangul */ + {"\x33", 0, 0xB9C4}, /* Korean hangul */ + {"\x34", 0, 0xC54D}, /* Korean hangul */ + {"\x35", 0, 0xC54F}, /* Korean hangul */ + {"\x36", 0, 0xC552}, /* Korean hangul */ + {"\x37", 0, 0xC5AB}, /* Korean hangul */ + {"\x38", 0, 0xC5B1}, /* Korean hangul */ + {"\x39", 0, 0xC61C}, /* Korean hangul */ + {"\x3A", 0, 0xC61D}, /* Korean hangul */ + {"\x3B", 0, 0xC6FD}, /* Korean hangul */ + {"\x3C", 0, 0xC717}, /* Korean hangul (unified with EACC 6F5658) */ + {"\x3D", 0, 0xC733}, /* Korean hangul */ + {"\x3E", 0, 0xCB4C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page824 = { + marc8_9page824_flat, 0 +}; +/* PAGE 823 */ +struct yaz_iconv_trie_flat marc8_9page823_flat[] = { + {"\x21", 0, 0x3181}, /* Korean hangul */ + {"\x22", 0, 0x3186}, /* Korean hangul */ + {"\x23", 0, 0x317F}, /* Korean hangul */ + {"\x24", 0, 0xE8B0}, /* Korean hangul (ancient) */ + {"\x25", 0, 0x318D}, /* Korean hangul (ancient) */ + {"\x40", 0, 0xE8B2}, /* Korean hangul (ancient) */ + {"\x41", 0, 0xE8B3}, /* Korean hangul (ancient) */ + {"\x42", 0, 0xE8B4}, /* Korean hangul (ancient) */ + {"\x43", 0, 0xE8B5}, /* Korean hangul (ancient) */ + {"\x44", 0, 0xE8B6}, /* Korean hangul (ancient) */ + {"\x45", 0, 0xE8B7}, /* Korean hangul (ancient) */ + {"\x46", 0, 0xE8B8}, /* Korean hangul (ancient) */ + {"\x47", 0, 0xE8B9}, /* Korean hangul (ancient) */ + {"\x48", 0, 0xE8BA}, /* Korean hangul (ancient) */ + {"\x49", 0, 0xE8BB}, /* Korean hangul (ancient) */ + {"\x4A", 0, 0xE8BC}, /* Korean hangul (ancient) */ + {"\x4B", 0, 0xE8BD}, /* Korean hangul (ancient) */ + {"\x4C", 0, 0xE8BE}, /* Korean hangul (ancient) */ + {"\x4D", 0, 0xE8BF}, /* Korean hangul (ancient) */ + {"\x4E", 0, 0xE8C0}, /* Korean hangul (ancient) */ + {"\x4F", 0, 0xE8C1}, /* Korean hangul (ancient) */ + {"\x50", 0, 0xE8C2}, /* Korean hangul (ancient) */ + {"\x51", 0, 0xE8C3}, /* Korean hangul (ancient) */ + {"\x52", 0, 0xE8C4}, /* Korean hangul (ancient) */ + {"\x53", 0, 0xE8C5}, /* Korean hangul (ancient) */ + {"\x54", 0, 0xE8C6}, /* Korean hangul (ancient) */ + {"\x55", 0, 0xE8C7}, /* Korean hangul (ancient) */ + {"\x56", 0, 0xE8C8}, /* Korean hangul (ancient) */ + {"\x57", 0, 0xE8C9}, /* Korean hangul (ancient) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page823 = { + marc8_9page823_flat, 0 +}; +/* PAGE 822 */ +struct yaz_iconv_trie_flat marc8_9page822_flat[] = { + {"\x21", 0, 0xD79D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page822 = { + marc8_9page822_flat, 0 +}; +/* PAGE 821 */ +struct yaz_iconv_trie_dir marc8_9page821_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD5D9} /* Korean hangul */, + {0, 0, 0xD5DB} /* Korean hangul */, + {0, 0, 0xD5DD} /* Korean hangul */, + {0, 0, 0xD5E4} /* Korean hangul */, + {0, 0, 0xD5E5} /* Korean hangul */, + {0, 0, 0xD5E8} /* Korean hangul */, + {0, 0, 0xD5EC} /* Korean hangul */, + {0, 0, 0xD5F4} /* Korean hangul */, + {0, 0, 0xD5F5} /* Korean hangul */, + {0, 0, 0xD5F7} /* Korean hangul */, + {0, 0, 0xD5F9} /* Korean hangul */, + {0, 0, 0xD600} /* Korean hangul */, + {0, 0, 0xD601} /* Korean hangul */, + {0, 0, 0xD604} /* Korean hangul */, + {0, 0, 0xD608} /* Korean hangul */, + {0, 0, 0xD610} /* Korean hangul */, + {0, 0, 0xD611} /* Korean hangul */, + {0, 0, 0xD613} /* Korean hangul */, + {0, 0, 0xD614} /* Korean hangul */, + {0, 0, 0xD615} /* Korean hangul */, + {0, 0, 0xD61C} /* Korean hangul */, + {0, 0, 0xD638} /* Korean hangul */, + {0, 0, 0xD639} /* Korean hangul */, + {0, 0, 0xD63C} /* Korean hangul */, + {0, 0, 0xD640} /* Korean hangul */, + {0, 0, 0xD648} /* Korean hangul */, + {0, 0, 0xD649} /* Korean hangul */, + {0, 0, 0xD64B} /* Korean hangul */, + {0, 0, 0xD64D} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD654} /* Korean hangul */, + {0, 0, 0xD655} /* Korean hangul */, + {0, 0, 0xD658} /* Korean hangul */, + {0, 0, 0xD65C} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD667} /* Korean hangul */, + {0, 0, 0xD669} /* Korean hangul */, + {0, 0, 0xD670} /* Korean hangul */, + {0, 0, 0xD671} /* Korean hangul */, + {0, 0, 0xD683} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD68C} /* Korean hangul */, + {0, 0, 0xD68D} /* Korean hangul */, + {0, 0, 0xD69F} /* Korean hangul */, + {0, 0, 0xD6A1} /* Korean hangul */, + {0, 0, 0xD6A8} /* Korean hangul */, + {0, 0, 0xD6C4} /* Korean hangul */, + {0, 0, 0xD6C5} /* Korean hangul */, + {0, 0, 0xD6C8} /* Korean hangul */, + {0, 0, 0xD6CC} /* Korean hangul */, + {0, 0, 0xD6D1} /* Korean hangul */, + {0, 0, 0xD6D4} /* Korean hangul */, + {0, 0, 0xD6D7} /* Korean hangul */, + {0, 0, 0xD6E0} /* Korean hangul */, + {0, 0, 0xD6E4} /* Korean hangul */, + {0, 0, 0xD6E8} /* Korean hangul */, + {0, 0, 0xD6F0} /* Korean hangul */, + {0, 0, 0xD6FC} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD700} /* Korean hangul */, + {0, 0, 0xD711} /* Korean hangul */, + {0, 0, 0xD718} /* Korean hangul */, + {0, 0, 0xD719} /* Korean hangul */, + {0, 0, 0xD71C} /* Korean hangul */, + {0, 0, 0xD720} /* Korean hangul */, + {0, 0, 0xD728} /* Korean hangul */, + {0, 0, 0xD729} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD72D} /* Korean hangul */, + {0, 0, 0xD734} /* Korean hangul */, + {0, 0, 0xD73C} /* Korean hangul */, + {0, 0, 0xD744} /* Korean hangul */, + {0, 0, 0xD749} /* Korean hangul */, + {0, 0, 0xD750} /* Korean hangul */, + {0, 0, 0xD751} /* Korean hangul */, + {0, 0, 0xD754} /* Korean hangul */, + {0, 0, 0xD757} /* Korean hangul */, + {0, 0, 0xD758} /* Korean hangul */, + {0, 0, 0xD759} /* Korean hangul */, + {0, 0, 0xD760} /* Korean hangul */, + {0, 0, 0xD761} /* Korean hangul */, + {0, 0, 0xD763} /* Korean hangul */, + {0, 0, 0xD765} /* Korean hangul */, + {0, 0, 0xD769} /* Korean hangul */, + {0, 0, 0xD76C} /* Korean hangul */, + {0, 0, 0xD770} /* Korean hangul */, + {0, 0, 0xD774} /* Korean hangul */, + {0, 0, 0xD788} /* Korean hangul */, + {0, 0, 0xD789} /* Korean hangul */, + {0, 0, 0xD78C} /* Korean hangul */, + {0, 0, 0xD790} /* Korean hangul */, + {0, 0, 0xD798} /* Korean hangul */, + {0, 0, 0xD799} /* Korean hangul */, + {0, 0, 0xD79B} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page821 = { + 0, marc8_9page821_dir +}; +/* PAGE 820 */ +struct yaz_iconv_trie_dir marc8_9page820_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD33D} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD37C} /* Korean hangul */, + {0, 0, 0xD37D} /* Korean hangul */, + {0, 0, 0xD380} /* Korean hangul */, + {0, 0, 0xD384} /* Korean hangul */, + {0, 0, 0xD38C} /* Korean hangul */, + {0, 0, 0xD38D} /* Korean hangul */, + {0, 0, 0xD38F} /* Korean hangul */, + {0, 0, 0xD390} /* Korean hangul */, + {0, 0, 0xD391} /* Korean hangul */, + {0, 0, 0xD398} /* Korean hangul */, + {0, 0, 0xD399} /* Korean hangul */, + {0, 0, 0xD39C} /* Korean hangul */, + {0, 0, 0xD3A0} /* Korean hangul */, + {0, 0, 0xD3A8} /* Korean hangul */, + {0, 0, 0xD3A9} /* Korean hangul */, + {0, 0, 0xD3AB} /* Korean hangul */, + {0, 0, 0xD3AD} /* Korean hangul */, + {0, 0, 0xD3B4} /* Korean hangul */, + {0, 0, 0xD3B5} /* Korean hangul */, + {0, 0, 0xD3B8} /* Korean hangul */, + {0, 0, 0xD3BC} /* Korean hangul */, + {0, 0, 0xD3C4} /* Korean hangul */, + {0, 0, 0xD3C5} /* Korean hangul */, + {0, 0, 0xD3C8} /* Korean hangul */, + {0, 0, 0xD3C9} /* Korean hangul */, + {0, 0, 0xD3D0} /* Korean hangul */, + {0, 0, 0xD3EC} /* Korean hangul */, + {0, 0, 0xD3ED} /* Korean hangul */, + {0, 0, 0xD3F0} /* Korean hangul */, + {0, 0, 0xD3F4} /* Korean hangul */, + {0, 0, 0xD3FC} /* Korean hangul */, + {0, 0, 0xD3FD} /* Korean hangul */, + {0, 0, 0xD3FF} /* Korean hangul */, + {0, 0, 0xD401} /* Korean hangul */, + {0, 0, 0xD440} /* Korean hangul */, + {0, 0, 0xD444} /* Korean hangul */, + {0, 0, 0xD45C} /* Korean hangul */, + {0, 0, 0xD46F} /* Korean hangul */, + {0, 0, 0xD478} /* Korean hangul */, + {0, 0, 0xD479} /* Korean hangul */, + {0, 0, 0xD47C} /* Korean hangul */, + {0, 0, 0xD480} /* Korean hangul */, + {0, 0, 0xD488} /* Korean hangul */, + {0, 0, 0xD489} /* Korean hangul */, + {0, 0, 0xD48B} /* Korean hangul */, + {0, 0, 0xD48D} /* Korean hangul */, + {0, 0, 0xD4CC} /* Korean hangul */, + {0, 0, 0xD4E8} /* Korean hangul */, + {0, 0, 0xD504} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD508} /* Korean hangul */, + {0, 0, 0xD50C} /* Korean hangul */, + {0, 0, 0xD514} /* Korean hangul */, + {0, 0, 0xD515} /* Korean hangul */, + {0, 0, 0xD53C} /* Korean hangul */, + {0, 0, 0xD53D} /* Korean hangul */, + {0, 0, 0xD540} /* Korean hangul */, + {0, 0, 0xD544} /* Korean hangul */, + {0, 0, 0xD54C} /* Korean hangul */, + {0, 0, 0xD54D} /* Korean hangul */, + {0, 0, 0xD54F} /* Korean hangul */, + {0, 0, 0xD551} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD558} /* Korean hangul */, + {0, 0, 0xD559} /* Korean hangul */, + {0, 0, 0xD55C} /* Korean hangul */, + {0, 0, 0xD560} /* Korean hangul */, + {0, 0, 0xD565} /* Korean hangul */, + {0, 0, 0xD568} /* Korean hangul */, + {0, 0, 0xD569} /* Korean hangul */, + {0, 0, 0xD56B} /* Korean hangul */, + {0, 0, 0xD56C} /* Korean hangul */, + {0, 0, 0xD56D} /* Korean hangul */, + {0, 0, 0xD571} /* Korean hangul */, + {0, 0, 0xD574} /* Korean hangul */, + {0, 0, 0xD575} /* Korean hangul */, + {0, 0, 0xD578} /* Korean hangul */, + {0, 0, 0xD57C} /* Korean hangul */, + {0, 0, 0xD584} /* Korean hangul */, + {0, 0, 0xD585} /* Korean hangul */, + {0, 0, 0xD587} /* Korean hangul */, + {0, 0, 0xD588} /* Korean hangul */, + {0, 0, 0xD589} /* Korean hangul */, + {0, 0, 0xD590} /* Korean hangul */, + {0, 0, 0xD5A5} /* Korean hangul */, + {0, 0, 0xD5C8} /* Korean hangul */, + {0, 0, 0xD5C9} /* Korean hangul */, + {0, 0, 0xD5CC} /* Korean hangul */, + {0, 0, 0xD5D0} /* Korean hangul */, + {0, 0, 0xD5D2} /* Korean hangul */, + {0, 0, 0xD5D8} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page820 = { + 0, marc8_9page820_dir +}; +/* PAGE 819 */ +struct yaz_iconv_trie_dir marc8_9page819_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD0ED} /* Korean hangul */, + {0, 0, 0xD0EF} /* Korean hangul */, + {0, 0, 0xD0F0} /* Korean hangul */, + {0, 0, 0xD0F1} /* Korean hangul */, + {0, 0, 0xD130} /* Korean hangul */, + {0, 0, 0xD131} /* Korean hangul */, + {0, 0, 0xD134} /* Korean hangul */, + {0, 0, 0xD138} /* Korean hangul */, + {0, 0, 0xD140} /* Korean hangul */, + {0, 0, 0xD141} /* Korean hangul */, + {0, 0, 0xD143} /* Korean hangul */, + {0, 0, 0xD144} /* Korean hangul */, + {0, 0, 0xD145} /* Korean hangul */, + {0, 0, 0xD14C} /* Korean hangul */, + {0, 0, 0xD14D} /* Korean hangul */, + {0, 0, 0xD150} /* Korean hangul */, + {0, 0, 0xD154} /* Korean hangul */, + {0, 0, 0xD15C} /* Korean hangul */, + {0, 0, 0xD15D} /* Korean hangul */, + {0, 0, 0xD15F} /* Korean hangul */, + {0, 0, 0xD160} /* Korean hangul */, + {0, 0, 0xD161} /* Korean hangul */, + {0, 0, 0xD168} /* Korean hangul */, + {0, 0, 0xD1A0} /* Korean hangul */, + {0, 0, 0xD1A1} /* Korean hangul */, + {0, 0, 0xD1A4} /* Korean hangul */, + {0, 0, 0xD1A8} /* Korean hangul */, + {0, 0, 0xD1B0} /* Korean hangul */, + {0, 0, 0xD1B1} /* Korean hangul */, + {0, 0, 0xD1B3} /* Korean hangul */, + {0, 0, 0xD1B5} /* Korean hangul */, + {0, 0, 0xD1D8} /* Korean hangul */, + {0, 0, 0xD1F4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD22C} /* Korean hangul */, + {0, 0, 0xD22D} /* Korean hangul */, + {0, 0, 0xD230} /* Korean hangul */, + {0, 0, 0xD234} /* Korean hangul */, + {0, 0, 0xD23C} /* Korean hangul */, + {0, 0, 0xD23D} /* Korean hangul */, + {0, 0, 0xD23F} /* Korean hangul */, + {0, 0, 0xD241} /* Korean hangul */, + {0, 0, 0xD264} /* Korean hangul */, + {0, 0, 0xD277} /* Korean hangul */, + {0, 0, 0xD280} /* Korean hangul */, + {0, 0, 0xD284} /* Korean hangul */, + {0, 0, 0xD288} /* Korean hangul */, + {0, 0, 0xD290} /* Korean hangul */, + {0, 0, 0xD291} /* Korean hangul */, + {0, 0, 0xD293} /* Korean hangul */, + {0, 0, 0xD295} /* Korean hangul */, + {0, 0, 0xD29C} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD2AC} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD2B8} /* Korean hangul */, + {0, 0, 0xD2B9} /* Korean hangul */, + {0, 0, 0xD2BC} /* Korean hangul */, + {0, 0, 0xD2BF} /* Korean hangul */, + {0, 0, 0xD2C0} /* Korean hangul */, + {0, 0, 0xD2C8} /* Korean hangul */, + {0, 0, 0xD2C9} /* Korean hangul */, + {0, 0, 0xD2CB} /* Korean hangul */, + {0, 0, 0xD2D4} /* Korean hangul */, + {0, 0, 0xD1F8} /* Korean hangul */, + {0, 0, 0xD2F0} /* Korean hangul */, + {0, 0, 0xD2F1} /* Korean hangul */, + {0, 0, 0xD2F4} /* Korean hangul */, + {0, 0, 0xD2F8} /* Korean hangul */, + {0, 0, 0xD300} /* Korean hangul */, + {0, 0, 0xD301} /* Korean hangul */, + {0, 0, 0xD305} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD30C} /* Korean hangul */, + {0, 0, 0xD30D} /* Korean hangul */, + {0, 0, 0xD30E} /* Korean hangul */, + {0, 0, 0xD310} /* Korean hangul */, + {0, 0, 0xD314} /* Korean hangul */, + {0, 0, 0xD31C} /* Korean hangul */, + {0, 0, 0xD31D} /* Korean hangul */, + {0, 0, 0xD31F} /* Korean hangul */, + {0, 0, 0xD320} /* Korean hangul */, + {0, 0, 0xD321} /* Korean hangul */, + {0, 0, 0xD325} /* Korean hangul */, + {0, 0, 0xD328} /* Korean hangul */, + {0, 0, 0xD329} /* Korean hangul */, + {0, 0, 0xD32C} /* Korean hangul */, + {0, 0, 0xD330} /* Korean hangul */, + {0, 0, 0xD338} /* Korean hangul */, + {0, 0, 0xD339} /* Korean hangul */, + {0, 0, 0xD33B} /* Korean hangul */, + {0, 0, 0xD33C} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page819 = { + 0, marc8_9page819_dir +}; +/* PAGE 818 */ +struct yaz_iconv_trie_dir marc8_9page818_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xCEA5} /* Korean hangul */, + {0, 0, 0xCEAC} /* Korean hangul */, + {0, 0, 0xCEAD} /* Korean hangul */, + {0, 0, 0xCEE4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xCEE8} /* Korean hangul */, + {0, 0, 0xCEEC} /* Korean hangul */, + {0, 0, 0xCEF4} /* Korean hangul */, + {0, 0, 0xCEF5} /* Korean hangul */, + {0, 0, 0xCEF7} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xCEF9} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xCF00} /* Korean hangul */, + {0, 0, 0xCF01} /* Korean hangul */, + {0, 0, 0xCF04} /* Korean hangul */, + {0, 0, 0xCF08} /* Korean hangul */, + {0, 0, 0xCF10} /* Korean hangul */, + {0, 0, 0xCF11} /* Korean hangul */, + {0, 0, 0xCF13} /* Korean hangul */, + {0, 0, 0xCF15} /* Korean hangul */, + {0, 0, 0xCF1C} /* Korean hangul */, + {0, 0, 0xCF20} /* Korean hangul */, + {0, 0, 0xCF24} /* Korean hangul */, + {0, 0, 0xCF2C} /* Korean hangul */, + {0, 0, 0xCF2D} /* Korean hangul */, + {0, 0, 0xCF2F} /* Korean hangul */, + {0, 0, 0xCF30} /* Korean hangul */, + {0, 0, 0xCF54} /* Korean hangul */, + {0, 0, 0xCF55} /* Korean hangul */, + {0, 0, 0xCF58} /* Korean hangul */, + {0, 0, 0xCF5C} /* Korean hangul */, + {0, 0, 0xCF64} /* Korean hangul */, + {0, 0, 0xCF65} /* Korean hangul */, + {0, 0, 0xCF67} /* Korean hangul */, + {0, 0, 0xCF69} /* Korean hangul */, + {0, 0, 0xCF70} /* Korean hangul */, + {0, 0, 0xCF71} /* Korean hangul */, + {0, 0, 0xCF74} /* Korean hangul */, + {0, 0, 0xCF78} /* Korean hangul */, + {0, 0, 0xCF80} /* Korean hangul */, + {0, 0, 0xCF85} /* Korean hangul */, + {0, 0, 0xCF8C} /* Korean hangul */, + {0, 0, 0xCF8D} /* Korean hangul */, + {0, 0, 0xCFA1} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xCFB0} /* Korean hangul */, + {0, 0, 0xCFC4} /* Korean hangul */, + {0, 0, 0xCFE0} /* Korean hangul */, + {0, 0, 0xCFE1} /* Korean hangul */, + {0, 0, 0xCFE4} /* Korean hangul */, + {0, 0, 0xCFE8} /* Korean hangul */, + {0, 0, 0xCFF0} /* Korean hangul */, + {0, 0, 0xCFF3} /* Korean hangul */, + {0, 0, 0xCFF5} /* Korean hangul */, + {0, 0, 0xCFFC} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xD018} /* Korean hangul */, + {0, 0, 0xD02D} /* Korean hangul */, + {0, 0, 0xD034} /* Korean hangul */, + {0, 0, 0xD035} /* Korean hangul */, + {0, 0, 0xD038} /* Korean hangul */, + {0, 0, 0xD050} /* Korean hangul */, + {0, 0, 0xD06C} /* Korean hangul */, + {0, 0, 0xD070} /* Korean hangul */, + {0, 0, 0xD074} /* Korean hangul */, + {0, 0, 0xD07C} /* Korean hangul */, + {0, 0, 0xD07D} /* Korean hangul */, + {0, 0, 0xD081} /* Korean hangul */, + {0, 0, 0xD0A4} /* Korean hangul */, + {0, 0, 0xD0A5} /* Korean hangul */, + {0, 0, 0xD0A8} /* Korean hangul */, + {0, 0, 0xD0AC} /* Korean hangul */, + {0, 0, 0xD0B4} /* Korean hangul */, + {0, 0, 0xD0B5} /* Korean hangul */, + {0, 0, 0xD0B7} /* Korean hangul */, + {0, 0, 0xD0B9} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xD0C0} /* Korean hangul */, + {0, 0, 0xD0C1} /* Korean hangul */, + {0, 0, 0xD0C4} /* Korean hangul */, + {0, 0, 0xD0C8} /* Korean hangul */, + {0, 0, 0xD0C9} /* Korean hangul */, + {0, 0, 0xD0D0} /* Korean hangul */, + {0, 0, 0xD0D1} /* Korean hangul */, + {0, 0, 0xD0D3} /* Korean hangul */, + {0, 0, 0xD0D4} /* Korean hangul */, + {0, 0, 0xD0D5} /* Korean hangul */, + {0, 0, 0xD0DC} /* Korean hangul */, + {0, 0, 0xD0DD} /* Korean hangul */, + {0, 0, 0xD0E0} /* Korean hangul */, + {0, 0, 0xD0E4} /* Korean hangul */, + {0, 0, 0xD0EC} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page818 = { + 0, marc8_9page818_dir +}; +/* PAGE 817 */ +struct yaz_iconv_trie_dir marc8_9page817_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xCC29} /* Korean hangul */, + {0, 0, 0xCC2C} /* Korean hangul */, + {0, 0, 0xCC2E} /* Korean hangul */, + {0, 0, 0xCC2F} /* Korean hangul */, + {0, 0, 0xCC30} /* Korean hangul */, + {0, 0, 0xCC38} /* Korean hangul */, + {0, 0, 0xCC39} /* Korean hangul */, + {0, 0, 0xCC3B} /* Korean hangul */, + {0, 0, 0xCC3C} /* Korean hangul */, + {0, 0, 0xCC3D} /* Korean hangul */, + {0, 0, 0xCC3E} /* Korean hangul */, + {0, 0, 0xCC3F} /* Korean hangul */, + {0, 0, 0xCC44} /* Korean hangul */, + {0, 0, 0xCC45} /* Korean hangul */, + {0, 0, 0xCC48} /* Korean hangul */, + {0, 0, 0xCC4C} /* Korean hangul */, + {0, 0, 0xCC54} /* Korean hangul */, + {0, 0, 0xCC55} /* Korean hangul */, + {0, 0, 0xCC58} /* Korean hangul */, + {0, 0, 0xCC59} /* Korean hangul */, + {0, 0, 0xCC60} /* Korean hangul */, + {0, 0, 0xCC64} /* Korean hangul */, + {0, 0, 0xCC70} /* Korean hangul */, + {0, 0, 0xCC71} /* Korean hangul */, + {0, 0, 0xCC98} /* Korean hangul */, + {0, 0, 0xCC99} /* Korean hangul */, + {0, 0, 0xCC9C} /* Korean hangul */, + {0, 0, 0xCCA0} /* Korean hangul */, + {0, 0, 0xCCA8} /* Korean hangul */, + {0, 0, 0xCCA9} /* Korean hangul */, + {0, 0, 0xCCAB} /* Korean hangul */, + {0, 0, 0xCCAD} /* Korean hangul */, + {0, 0, 0xCCB4} /* Korean hangul */, + {0, 0, 0xCCB5} /* Korean hangul */, + {0, 0, 0xCCB8} /* Korean hangul */, + {0, 0, 0xCCBC} /* Korean hangul */, + {0, 0, 0xCCC7} /* Korean hangul */, + {0, 0, 0xCCD0} /* Korean hangul */, + {0, 0, 0xCCE4} /* Korean hangul */, + {0, 0, 0xCD08} /* Korean hangul */, + {0, 0, 0xCD09} /* Korean hangul */, + {0, 0, 0xCD0C} /* Korean hangul */, + {0, 0, 0xCD10} /* Korean hangul */, + {0, 0, 0xCD18} /* Korean hangul */, + {0, 0, 0xCD19} /* Korean hangul */, + {0, 0, 0xCD1B} /* Korean hangul */, + {0, 0, 0xCD1D} /* Korean hangul */, + {0, 0, 0xCD2C} /* Korean hangul */, + {0, 0, 0xCD5C} /* Korean hangul */, + {0, 0, 0xCD78} /* Korean hangul */, + {0, 0, 0xCD94} /* Korean hangul */, + {0, 0, 0xCD95} /* Korean hangul */, + {0, 0, 0xCD98} /* Korean hangul */, + {0, 0, 0xCD9C} /* Korean hangul */, + {0, 0, 0xCDA4} /* Korean hangul */, + {0, 0, 0xCDA5} /* Korean hangul */, + {0, 0, 0xCDA7} /* Korean hangul */, + {0, 0, 0xCDA9} /* Korean hangul */, + {0, 0, 0xCDB0} /* Korean hangul */, + {0, 0, 0xCDC4} /* Korean hangul */, + {0, 0, 0xCDCC} /* Korean hangul */, + {0, 0, 0xCDE8} /* Korean hangul */, + {0, 0, 0xCE04} /* Korean hangul */, + {0, 0, 0xCE20} /* Korean hangul */, + {0, 0, 0xCE21} /* Korean hangul */, + {0, 0, 0xCE30} /* Korean hangul */, + {0, 0, 0xCE35} /* Korean hangul */, + {0, 0, 0xCE58} /* Korean hangul */, + {0, 0, 0xCE59} /* Korean hangul */, + {0, 0, 0xCE5C} /* Korean hangul */, + {0, 0, 0xCE60} /* Korean hangul */, + {0, 0, 0xCE61} /* Korean hangul */, + {0, 0, 0xCE68} /* Korean hangul */, + {0, 0, 0xCE69} /* Korean hangul */, + {0, 0, 0xCE6B} /* Korean hangul */, + {0, 0, 0xCE6D} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xCE74} /* Korean hangul */, + {0, 0, 0xCE75} /* Korean hangul */, + {0, 0, 0xCE78} /* Korean hangul */, + {0, 0, 0xCE7C} /* Korean hangul */, + {0, 0, 0xCE84} /* Korean hangul */, + {0, 0, 0xCE85} /* Korean hangul */, + {0, 0, 0xCE87} /* Korean hangul */, + {0, 0, 0xCE89} /* Korean hangul */, + {0, 0, 0xCE90} /* Korean hangul */, + {0, 0, 0xCE91} /* Korean hangul */, + {0, 0, 0xCE94} /* Korean hangul */, + {0, 0, 0xCE98} /* Korean hangul */, + {0, 0, 0xCEA0} /* Korean hangul */, + {0, 0, 0xCEA1} /* Korean hangul */, + {0, 0, 0xCEA3} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page817 = { + 0, marc8_9page817_dir +}; +/* PAGE 816 */ +struct yaz_iconv_trie_dir marc8_9page816_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC974} /* Korean hangul */, + {0, 0, 0xC988} /* Korean hangul */, + {0, 0, 0xC989} /* Korean hangul */, + {0, 0, 0xC98C} /* Korean hangul */, + {0, 0, 0xC990} /* Korean hangul */, + {0, 0, 0xC998} /* Korean hangul */, + {0, 0, 0xC999} /* Korean hangul */, + {0, 0, 0xC99D} /* Korean hangul */, + {0, 0, 0xC9C0} /* Korean hangul */, + {0, 0, 0xC9C1} /* Korean hangul */, + {0, 0, 0xC9C4} /* Korean hangul */, + {0, 0, 0xC9C7} /* Korean hangul */, + {0, 0, 0xC9C8} /* Korean hangul */, + {0, 0, 0xC9CA} /* Korean hangul */, + {0, 0, 0xC9D0} /* Korean hangul */, + {0, 0, 0xC9D1} /* Korean hangul */, + {0, 0, 0xC9D3} /* Korean hangul */, + {0, 0, 0xC9D5} /* Korean hangul */, + {0, 0, 0xC9D6} /* Korean hangul */, + {0, 0, 0xC9D9} /* Korean hangul */, + {0, 0, 0xC9DA} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC9DC} /* Korean hangul */, + {0, 0, 0xC9DD} /* Korean hangul */, + {0, 0, 0xC9E0} /* Korean hangul */, + {0, 0, 0xC9E2} /* Korean hangul */, + {0, 0, 0xC9E4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC9E7} /* Korean hangul */, + {0, 0, 0xC9EC} /* Korean hangul */, + {0, 0, 0xC9ED} /* Korean hangul */, + {0, 0, 0xC9EF} /* Korean hangul */, + {0, 0, 0xC9F0} /* Korean hangul */, + {0, 0, 0xC9F1} /* Korean hangul */, + {0, 0, 0xC9F8} /* Korean hangul */, + {0, 0, 0xC9F9} /* Korean hangul */, + {0, 0, 0xC9FC} /* Korean hangul */, + {0, 0, 0xCA00} /* Korean hangul */, + {0, 0, 0xCA08} /* Korean hangul */, + {0, 0, 0xCA09} /* Korean hangul */, + {0, 0, 0xCA0B} /* Korean hangul */, + {0, 0, 0xCA0C} /* Korean hangul */, + {0, 0, 0xCA0D} /* Korean hangul */, + {0, 0, 0xCA18} /* Korean hangul */, + {0, 0, 0xCA4C} /* Korean hangul */, + {0, 0, 0xCA4D} /* Korean hangul */, + {0, 0, 0xCA50} /* Korean hangul */, + {0, 0, 0xCA54} /* Korean hangul */, + {0, 0, 0xCA5C} /* Korean hangul */, + {0, 0, 0xCA5D} /* Korean hangul */, + {0, 0, 0xCA61} /* Korean hangul */, + {0, 0, 0xCA84} /* Korean hangul */, + {0, 0, 0xCA98} /* Korean hangul */, + {0, 0, 0xCABC} /* Korean hangul */, + {0, 0, 0xCABD} /* Korean hangul */, + {0, 0, 0xCAC0} /* Korean hangul */, + {0, 0, 0xCAC4} /* Korean hangul */, + {0, 0, 0xCACC} /* Korean hangul */, + {0, 0, 0xCACD} /* Korean hangul */, + {0, 0, 0xCAD1} /* Korean hangul */, + {0, 0, 0xCAD2} /* Korean hangul */, + {0, 0, 0xCAD3} /* Korean hangul */, + {0, 0, 0xCAD8} /* Korean hangul */, + {0, 0, 0xCAD9} /* Korean hangul */, + {0, 0, 0xCB10} /* Korean hangul */, + {0, 0, 0xCB14} /* Korean hangul */, + {0, 0, 0xCB18} /* Korean hangul */, + {0, 0, 0xCB20} /* Korean hangul */, + {0, 0, 0xCB21} /* Korean hangul */, + {0, 0, 0xCB41} /* Korean hangul */, + {0, 0, 0xCB48} /* Korean hangul */, + {0, 0, 0xCB49} /* Korean hangul */, + {0, 0, 0xCB50} /* Korean hangul */, + {0, 0, 0xCB58} /* Korean hangul */, + {0, 0, 0xCB59} /* Korean hangul */, + {0, 0, 0xCB5D} /* Korean hangul */, + {0, 0, 0xCB64} /* Korean hangul */, + {0, 0, 0xCBB8} /* Korean hangul */, + {0, 0, 0xCBD4} /* Korean hangul */, + {0, 0, 0xCBE4} /* Korean hangul */, + {0, 0, 0xCBE7} /* Korean hangul */, + {0, 0, 0xCC0C} /* Korean hangul */, + {0, 0, 0xCC0D} /* Korean hangul */, + {0, 0, 0xCC10} /* Korean hangul */, + {0, 0, 0xCC14} /* Korean hangul */, + {0, 0, 0xCC1C} /* Korean hangul */, + {0, 0, 0xCC1D} /* Korean hangul */, + {0, 0, 0xCC21} /* Korean hangul */, + {0, 0, 0xCC22} /* Korean hangul */, + {0, 0, 0xCC27} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xCC28} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page816 = { + 0, marc8_9page816_dir +}; +/* PAGE 815 */ +struct yaz_iconv_trie_dir marc8_9page815_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC7A1} /* Korean hangul */, + {0, 0, 0xC7A3} /* Korean hangul */, + {0, 0, 0xC7A4} /* Korean hangul */, + {0, 0, 0xC7A5} /* Korean hangul */, + {0, 0, 0xC7A6} /* Korean hangul */, + {0, 0, 0xC7A7} /* Korean hangul */, + {0, 0, 0xC7AC} /* Korean hangul */, + {0, 0, 0xC7AD} /* Korean hangul */, + {0, 0, 0xC7B0} /* Korean hangul */, + {0, 0, 0xC7B4} /* Korean hangul */, + {0, 0, 0xC7BC} /* Korean hangul */, + {0, 0, 0xC7BD} /* Korean hangul */, + {0, 0, 0xC7BF} /* Korean hangul */, + {0, 0, 0xC7C0} /* Korean hangul */, + {0, 0, 0xC7C1} /* Korean hangul */, + {0, 0, 0xC7C8} /* Korean hangul */, + {0, 0, 0xC7C9} /* Korean hangul */, + {0, 0, 0xC7CC} /* Korean hangul */, + {0, 0, 0xC7D8} /* Korean hangul */, + {0, 0, 0xC800} /* Korean hangul */, + {0, 0, 0xC801} /* Korean hangul */, + {0, 0, 0xC804} /* Korean hangul */, + {0, 0, 0xC808} /* Korean hangul */, + {0, 0, 0xC80A} /* Korean hangul */, + {0, 0, 0xC810} /* Korean hangul */, + {0, 0, 0xC811} /* Korean hangul */, + {0, 0, 0xC813} /* Korean hangul */, + {0, 0, 0xC814} /* Korean hangul */, + {0, 0, 0xC815} /* Korean hangul */, + {0, 0, 0xC816} /* Korean hangul */, + {0, 0, 0xC81C} /* Korean hangul */, + {0, 0, 0xC81D} /* Korean hangul */, + {0, 0, 0xC820} /* Korean hangul */, + {0, 0, 0xC824} /* Korean hangul */, + {0, 0, 0xC82C} /* Korean hangul */, + {0, 0, 0xC82D} /* Korean hangul */, + {0, 0, 0xC82F} /* Korean hangul */, + {0, 0, 0xC838} /* Korean hangul */, + {0, 0, 0xC83C} /* Korean hangul */, + {0, 0, 0xC84C} /* Korean hangul */, + {0, 0, 0xC870} /* Korean hangul */, + {0, 0, 0xC871} /* Korean hangul */, + {0, 0, 0xC874} /* Korean hangul */, + {0, 0, 0xC878} /* Korean hangul */, + {0, 0, 0xC87A} /* Korean hangul */, + {0, 0, 0xC880} /* Korean hangul */, + {0, 0, 0xC881} /* Korean hangul */, + {0, 0, 0xC885} /* Korean hangul */, + {0, 0, 0xC886} /* Korean hangul */, + {0, 0, 0xC887} /* Korean hangul */, + {0, 0, 0xC88B} /* Korean hangul */, + {0, 0, 0xC88C} /* Korean hangul */, + {0, 0, 0xC88D} /* Korean hangul */, + {0, 0, 0xC890} /* Korean hangul */, + {0, 0, 0xC894} /* Korean hangul */, + {0, 0, 0xC89C} /* Korean hangul */, + {0, 0, 0xC89D} /* Korean hangul */, + {0, 0, 0xC89F} /* Korean hangul */, + {0, 0, 0xC8A0} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC8A8} /* Korean hangul */, + {0, 0, 0xC8AC} /* Korean hangul */, + {0, 0, 0xC8B0} /* Korean hangul */, + {0, 0, 0xC8B8} /* Korean hangul */, + {0, 0, 0xC8C4} /* Korean hangul */, + {0, 0, 0xC8C8} /* Korean hangul */, + {0, 0, 0xC8CC} /* Korean hangul */, + {0, 0, 0xC8D4} /* Korean hangul */, + {0, 0, 0xC8D5} /* Korean hangul */, + {0, 0, 0xC8D7} /* Korean hangul */, + {0, 0, 0xC8E0} /* Korean hangul */, + {0, 0, 0xC8E4} /* Korean hangul */, + {0, 0, 0xC8F0} /* Korean hangul */, + {0, 0, 0xC8F1} /* Korean hangul */, + {0, 0, 0xC8F5} /* Korean hangul */, + {0, 0, 0xC8FC} /* Korean hangul */, + {0, 0, 0xC8FD} /* Korean hangul */, + {0, 0, 0xC900} /* Korean hangul */, + {0, 0, 0xC904} /* Korean hangul */, + {0, 0, 0xC906} /* Korean hangul */, + {0, 0, 0xC90C} /* Korean hangul */, + {0, 0, 0xC90D} /* Korean hangul */, + {0, 0, 0xC90F} /* Korean hangul */, + {0, 0, 0xC911} /* Korean hangul */, + {0, 0, 0xC918} /* Korean hangul */, + {0, 0, 0xC92C} /* Korean hangul */, + {0, 0, 0xC950} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC954} /* Korean hangul */, + {0, 0, 0xC958} /* Korean hangul */, + {0, 0, 0xC960} /* Korean hangul */, + {0, 0, 0xC961} /* Korean hangul */, + {0, 0, 0xC96C} /* Korean hangul */, + {0, 0, 0xC970} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page815 = { + 0, marc8_9page815_dir +}; +/* PAGE 814 */ +struct yaz_iconv_trie_dir marc8_9page814_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC641} /* Korean hangul */, + {0, 0, 0xC644} /* Korean hangul */, + {0, 0, 0xC648} /* Korean hangul */, + {0, 0, 0xC650} /* Korean hangul */, + {0, 0, 0xC651} /* Korean hangul */, + {0, 0, 0xC653} /* Korean hangul */, + {0, 0, 0xC654} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC65C} /* Korean hangul */, + {0, 0, 0xC65D} /* Korean hangul */, + {0, 0, 0xC660} /* Korean hangul */, + {0, 0, 0xC671} /* Korean hangul */, + {0, 0, 0xC678} /* Korean hangul */, + {0, 0, 0xC679} /* Korean hangul */, + {0, 0, 0xC67C} /* Korean hangul */, + {0, 0, 0xC680} /* Korean hangul */, + {0, 0, 0xC688} /* Korean hangul */, + {0, 0, 0xC68B} /* Korean hangul */, + {0, 0, 0xC68D} /* Korean hangul */, + {0, 0, 0xC694} /* Korean hangul */, + {0, 0, 0xC695} /* Korean hangul */, + {0, 0, 0xC698} /* Korean hangul */, + {0, 0, 0xC6A5} /* Korean hangul */, + {0, 0, 0xC6A7} /* Korean hangul */, + {0, 0, 0xC6A9} /* Korean hangul */, + {0, 0, 0xC6B0} /* Korean hangul */, + {0, 0, 0xC6B1} /* Korean hangul */, + {0, 0, 0xC6B4} /* Korean hangul */, + {0, 0, 0xC6B7} /* Korean hangul */, + {0, 0, 0xC6B8} /* Korean hangul */, + {0, 0, 0xC6B9} /* Korean hangul */, + {0, 0, 0xC6BA} /* Korean hangul */, + {0, 0, 0xC6C0} /* Korean hangul */, + {0, 0, 0xC6C1} /* Korean hangul */, + {0, 0, 0xC6C3} /* Korean hangul */, + {0, 0, 0xC6C5} /* Korean hangul */, + {0, 0, 0xC6CC} /* Korean hangul */, + {0, 0, 0xC6CD} /* Korean hangul */, + {0, 0, 0xC6D0} /* Korean hangul */, + {0, 0, 0xC6D4} /* Korean hangul */, + {0, 0, 0xC6DC} /* Korean hangul */, + {0, 0, 0xC6DD} /* Korean hangul */, + {0, 0, 0xC6DF} /* Korean hangul */, + {0, 0, 0xC6E0} /* Korean hangul */, + {0, 0, 0xC6E1} /* Korean hangul */, + {0, 0, 0xC6E8} /* Korean hangul */, + {0, 0, 0xC6E9} /* Korean hangul */, + {0, 0, 0xC6EC} /* Korean hangul */, + {0, 0, 0xC6F0} /* Korean hangul */, + {0, 0, 0xC6F8} /* Korean hangul */, + {0, 0, 0xC704} /* Korean hangul */, + {0, 0, 0xC705} /* Korean hangul */, + {0, 0, 0xC708} /* Korean hangul */, + {0, 0, 0xC70C} /* Korean hangul */, + {0, 0, 0xC714} /* Korean hangul */, + {0, 0, 0xC717} /* Korean hangul */, + {0, 0, 0xC719} /* Korean hangul */, + {0, 0, 0xC720} /* Korean hangul */, + {0, 0, 0xC721} /* Korean hangul */, + {0, 0, 0xC724} /* Korean hangul */, + {0, 0, 0xC728} /* Korean hangul */, + {0, 0, 0xC730} /* Korean hangul */, + {0, 0, 0xC735} /* Korean hangul */, + {0, 0, 0xC737} /* Korean hangul */, + {0, 0, 0xC73C} /* Korean hangul */, + {0, 0, 0xC73D} /* Korean hangul */, + {0, 0, 0xC740} /* Korean hangul */, + {0, 0, 0xC744} /* Korean hangul */, + {0, 0, 0xC74A} /* Korean hangul */, + {0, 0, 0xC74C} /* Korean hangul */, + {0, 0, 0xC74D} /* Korean hangul */, + {0, 0, 0xC751} /* Korean hangul */, + {0, 0, 0xC758} /* Korean hangul */, + {0, 0, 0xC774} /* Korean hangul */, + {0, 0, 0xC775} /* Korean hangul */, + {0, 0, 0xC778} /* Korean hangul */, + {0, 0, 0xC77C} /* Korean hangul */, + {0, 0, 0xC77D} /* Korean hangul */, + {0, 0, 0xC783} /* Korean hangul */, + {0, 0, 0xC784} /* Korean hangul */, + {0, 0, 0xC785} /* Korean hangul */, + {0, 0, 0xC787} /* Korean hangul */, + {0, 0, 0xC788} /* Korean hangul */, + {0, 0, 0xC789} /* Korean hangul */, + {0, 0, 0xC78A} /* Korean hangul */, + {0, 0, 0xC78E} /* Korean hangul */, + {0, 0, 0xC655} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC790} /* Korean hangul */, + {0, 0, 0xC791} /* Korean hangul */, + {0, 0, 0xC794} /* Korean hangul */, + {0, 0, 0xC796} /* Korean hangul */, + {0, 0, 0xC798} /* Korean hangul */, + {0, 0, 0xC7A0} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page814 = { + 0, marc8_9page814_dir +}; +/* PAGE 813 */ +struct yaz_iconv_trie_dir marc8_9page813_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC549} /* Korean hangul */, + {0, 0, 0xC54A} /* Korean hangul */, + {0, 0, 0xC54C} /* Korean hangul */, + {0, 0, 0xC54E} /* Korean hangul */, + {0, 0, 0xC553} /* Korean hangul */, + {0, 0, 0xC554} /* Korean hangul */, + {0, 0, 0xC555} /* Korean hangul */, + {0, 0, 0xC557} /* Korean hangul */, + {0, 0, 0xC558} /* Korean hangul */, + {0, 0, 0xC559} /* Korean hangul */, + {0, 0, 0xC55E} /* Korean hangul */, + {0, 0, 0xC55F} /* Korean hangul */, + {0, 0, 0xC560} /* Korean hangul */, + {0, 0, 0xC561} /* Korean hangul */, + {0, 0, 0xC564} /* Korean hangul */, + {0, 0, 0xC568} /* Korean hangul */, + {0, 0, 0xC570} /* Korean hangul */, + {0, 0, 0xC571} /* Korean hangul */, + {0, 0, 0xC573} /* Korean hangul */, + {0, 0, 0xC574} /* Korean hangul */, + {0, 0, 0xC575} /* Korean hangul */, + {0, 0, 0xC57C} /* Korean hangul */, + {0, 0, 0xC57D} /* Korean hangul */, + {0, 0, 0xC580} /* Korean hangul */, + {0, 0, 0xC584} /* Korean hangul */, + {0, 0, 0xC587} /* Korean hangul */, + {0, 0, 0xC58C} /* Korean hangul */, + {0, 0, 0xC58D} /* Korean hangul */, + {0, 0, 0xC58F} /* Korean hangul */, + {0, 0, 0xC590} /* Korean hangul */, + {0, 0, 0xC591} /* Korean hangul */, + {0, 0, 0xC595} /* Korean hangul */, + {0, 0, 0xC597} /* Korean hangul */, + {0, 0, 0xC598} /* Korean hangul */, + {0, 0, 0xC59C} /* Korean hangul */, + {0, 0, 0xC5B4} /* Korean hangul */, + {0, 0, 0xC5B5} /* Korean hangul */, + {0, 0, 0xC5B6} /* Korean hangul */, + {0, 0, 0xC5B8} /* Korean hangul */, + {0, 0, 0xC5B9} /* Korean hangul */, + {0, 0, 0xC5BA} /* Korean hangul */, + {0, 0, 0xC5BB} /* Korean hangul */, + {0, 0, 0xC5BC} /* Korean hangul */, + {0, 0, 0xC5BD} /* Korean hangul */, + {0, 0, 0xC5C4} /* Korean hangul */, + {0, 0, 0xC5C5} /* Korean hangul */, + {0, 0, 0xC5C6} /* Korean hangul */, + {0, 0, 0xC5C7} /* Korean hangul */, + {0, 0, 0xC5C8} /* Korean hangul */, + {0, 0, 0xC5C9} /* Korean hangul */, + {0, 0, 0xC5CA} /* Korean hangul */, + {0, 0, 0xC5CC} /* Korean hangul */, + {0, 0, 0xC5CE} /* Korean hangul */, + {0, 0, 0xC5D0} /* Korean hangul */, + {0, 0, 0xC5D1} /* Korean hangul */, + {0, 0, 0xC5D4} /* Korean hangul */, + {0, 0, 0xC5D8} /* Korean hangul */, + {0, 0, 0xC5E0} /* Korean hangul */, + {0, 0, 0xC5E1} /* Korean hangul */, + {0, 0, 0xC5E3} /* Korean hangul */, + {0, 0, 0xC5E5} /* Korean hangul */, + {0, 0, 0xC5EC} /* Korean hangul */, + {0, 0, 0xC5ED} /* Korean hangul */, + {0, 0, 0xC5EE} /* Korean hangul */, + {0, 0, 0xC5F0} /* Korean hangul */, + {0, 0, 0xC5F4} /* Korean hangul */, + {0, 0, 0xC5F6} /* Korean hangul */, + {0, 0, 0xC5F7} /* Korean hangul */, + {0, 0, 0xC5FC} /* Korean hangul */, + {0, 0, 0xC5FD} /* Korean hangul */, + {0, 0, 0xC5FE} /* Korean hangul */, + {0, 0, 0xC5FF} /* Korean hangul */, + {0, 0, 0xC600} /* Korean hangul */, + {0, 0, 0xC601} /* Korean hangul */, + {0, 0, 0xC606} /* Korean hangul */, + {0, 0, 0xC607} /* Korean hangul */, + {0, 0, 0xC608} /* Korean hangul */, + {0, 0, 0xC60C} /* Korean hangul */, + {0, 0, 0xC610} /* Korean hangul */, + {0, 0, 0xC61B} /* Korean hangul */, + {0, 0, 0xC624} /* Korean hangul */, + {0, 0, 0xC625} /* Korean hangul */, + {0, 0, 0xC628} /* Korean hangul */, + {0, 0, 0xC62C} /* Korean hangul */, + {0, 0, 0xC62D} /* Korean hangul */, + {0, 0, 0xC62E} /* Korean hangul */, + {0, 0, 0xC633} /* Korean hangul */, + {0, 0, 0xC634} /* Korean hangul */, + {0, 0, 0xC635} /* Korean hangul */, + {0, 0, 0xC637} /* Korean hangul */, + {0, 0, 0xC639} /* Korean hangul */, + {0, 0, 0xC63A} /* Korean hangul */, + {0, 0, 0xC63B} /* Korean hangul */, + {0, 0, 0xC640} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page813 = { + 0, marc8_9page813_dir +}; +/* PAGE 812 */ +struct yaz_iconv_trie_dir marc8_9page812_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC2B7} /* Korean hangul */, + {0, 0, 0xC2B9} /* Korean hangul */, + {0, 0, 0xC2DC} /* Korean hangul */, + {0, 0, 0xC2DD} /* Korean hangul */, + {0, 0, 0xC2E0} /* Korean hangul */, + {0, 0, 0xC2E3} /* Korean hangul */, + {0, 0, 0xC2E4} /* Korean hangul */, + {0, 0, 0xC2EB} /* Korean hangul */, + {0, 0, 0xC2EC} /* Korean hangul */, + {0, 0, 0xC2ED} /* Korean hangul */, + {0, 0, 0xC2EF} /* Korean hangul */, + {0, 0, 0xC2F1} /* Korean hangul */, + {0, 0, 0xC2F6} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC2F8} /* Korean hangul */, + {0, 0, 0xC2F9} /* Korean hangul */, + {0, 0, 0xC2FC} /* Korean hangul */, + {0, 0, 0xC300} /* Korean hangul */, + {0, 0, 0xC308} /* Korean hangul */, + {0, 0, 0xC309} /* Korean hangul */, + {0, 0, 0xC30B} /* Korean hangul */, + {0, 0, 0xC30C} /* Korean hangul */, + {0, 0, 0xC30D} /* Korean hangul */, + {0, 0, 0xC313} /* Korean hangul */, + {0, 0, 0xC314} /* Korean hangul */, + {0, 0, 0xC315} /* Korean hangul */, + {0, 0, 0xC318} /* Korean hangul */, + {0, 0, 0xC31C} /* Korean hangul */, + {0, 0, 0xC324} /* Korean hangul */, + {0, 0, 0xC327} /* Korean hangul */, + {0, 0, 0xC328} /* Korean hangul */, + {0, 0, 0xC329} /* Korean hangul */, + {0, 0, 0xC330} /* Korean hangul */, + {0, 0, 0xC343} /* Korean hangul */, + {0, 0, 0xC345} /* Korean hangul */, + {0, 0, 0xC368} /* Korean hangul */, + {0, 0, 0xC369} /* Korean hangul */, + {0, 0, 0xC36C} /* Korean hangul */, + {0, 0, 0xC370} /* Korean hangul */, + {0, 0, 0xC372} /* Korean hangul */, + {0, 0, 0xC378} /* Korean hangul */, + {0, 0, 0xC379} /* Korean hangul */, + {0, 0, 0xC37C} /* Korean hangul */, + {0, 0, 0xC37D} /* Korean hangul */, + {0, 0, 0xC384} /* Korean hangul */, + {0, 0, 0xC388} /* Korean hangul */, + {0, 0, 0xC399} /* Korean hangul */, + {0, 0, 0xC3D8} /* Korean hangul */, + {0, 0, 0xC3D9} /* Korean hangul */, + {0, 0, 0xC3DC} /* Korean hangul */, + {0, 0, 0xC3DF} /* Korean hangul */, + {0, 0, 0xC3E0} /* Korean hangul */, + {0, 0, 0xC3E8} /* Korean hangul */, + {0, 0, 0xC3ED} /* Korean hangul */, + {0, 0, 0xC3F4} /* Korean hangul */, + {0, 0, 0xC3F5} /* Korean hangul */, + {0, 0, 0xC410} /* Korean hangul */, + {0, 0, 0xC42C} /* Korean hangul */, + {0, 0, 0xC430} /* Korean hangul */, + {0, 0, 0xC434} /* Korean hangul */, + {0, 0, 0xC43C} /* Korean hangul */, + {0, 0, 0xC43F} /* Korean hangul */, + {0, 0, 0xC464} /* Korean hangul */, + {0, 0, 0xC465} /* Korean hangul */, + {0, 0, 0xC468} /* Korean hangul */, + {0, 0, 0xC46C} /* Korean hangul */, + {0, 0, 0xC474} /* Korean hangul */, + {0, 0, 0xC479} /* Korean hangul */, + {0, 0, 0xC480} /* Korean hangul */, + {0, 0, 0xC494} /* Korean hangul */, + {0, 0, 0xC4D4} /* Korean hangul */, + {0, 0, 0xC4D5} /* Korean hangul */, + {0, 0, 0xC4F0} /* Korean hangul */, + {0, 0, 0xC4F1} /* Korean hangul */, + {0, 0, 0xC4F4} /* Korean hangul */, + {0, 0, 0xC4F8} /* Korean hangul */, + {0, 0, 0xC500} /* Korean hangul */, + {0, 0, 0xC501} /* Korean hangul */, + {0, 0, 0xC50C} /* Korean hangul */, + {0, 0, 0xC510} /* Korean hangul */, + {0, 0, 0xC528} /* Korean hangul */, + {0, 0, 0xC529} /* Korean hangul */, + {0, 0, 0xC52C} /* Korean hangul */, + {0, 0, 0xC530} /* Korean hangul */, + {0, 0, 0xC538} /* Korean hangul */, + {0, 0, 0xC539} /* Korean hangul */, + {0, 0, 0xC53B} /* Korean hangul */, + {0, 0, 0xC53D} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC544} /* Korean hangul */, + {0, 0, 0xC545} /* Korean hangul */, + {0, 0, 0xC548} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page812 = { + 0, marc8_9page812_dir +}; +/* PAGE 811 */ +struct yaz_iconv_trie_dir marc8_9page811_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC11C} /* Korean hangul */, + {0, 0, 0xC11D} /* Korean hangul */, + {0, 0, 0xC11E} /* Korean hangul */, + {0, 0, 0xC120} /* Korean hangul */, + {0, 0, 0xC123} /* Korean hangul */, + {0, 0, 0xC124} /* Korean hangul */, + {0, 0, 0xC125} /* Korean hangul */, + {0, 0, 0xC126} /* Korean hangul */, + {0, 0, 0xC127} /* Korean hangul */, + {0, 0, 0xC12A} /* Korean hangul */, + {0, 0, 0xC12C} /* Korean hangul */, + {0, 0, 0xC12D} /* Korean hangul */, + {0, 0, 0xC12F} /* Korean hangul */, + {0, 0, 0xC130} /* Korean hangul */, + {0, 0, 0xC131} /* Korean hangul */, + {0, 0, 0xC136} /* Korean hangul */, + {0, 0, 0xC138} /* Korean hangul */, + {0, 0, 0xC139} /* Korean hangul */, + {0, 0, 0xC13C} /* Korean hangul */, + {0, 0, 0xC140} /* Korean hangul */, + {0, 0, 0xC148} /* Korean hangul */, + {0, 0, 0xC149} /* Korean hangul */, + {0, 0, 0xC14B} /* Korean hangul */, + {0, 0, 0xC14D} /* Korean hangul */, + {0, 0, 0xC151} /* Korean hangul */, + {0, 0, 0xC154} /* Korean hangul */, + {0, 0, 0xC158} /* Korean hangul */, + {0, 0, 0xC167} /* Korean hangul */, + {0, 0, 0xC168} /* Korean hangul */, + {0, 0, 0xC170} /* Korean hangul */, + {0, 0, 0xC18C} /* Korean hangul */, + {0, 0, 0xC18D} /* Korean hangul */, + {0, 0, 0xC18E} /* Korean hangul */, + {0, 0, 0xC190} /* Korean hangul */, + {0, 0, 0xC194} /* Korean hangul */, + {0, 0, 0xC19C} /* Korean hangul */, + {0, 0, 0xC19D} /* Korean hangul */, + {0, 0, 0xC19F} /* Korean hangul */, + {0, 0, 0xC1A1} /* Korean hangul */, + {0, 0, 0xC1A5} /* Korean hangul */, + {0, 0, 0xC1A8} /* Korean hangul */, + {0, 0, 0xC1A9} /* Korean hangul */, + {0, 0, 0xC1B0} /* Korean hangul */, + {0, 0, 0xC1C4} /* Korean hangul */, + {0, 0, 0xC1C8} /* Korean hangul */, + {0, 0, 0xC1D7} /* Korean hangul */, + {0, 0, 0xC1E0} /* Korean hangul */, + {0, 0, 0xC1E4} /* Korean hangul */, + {0, 0, 0xC1E8} /* Korean hangul */, + {0, 0, 0xC1F0} /* Korean hangul */, + {0, 0, 0xC1F1} /* Korean hangul */, + {0, 0, 0xC1F3} /* Korean hangul */, + {0, 0, 0xC1FC} /* Korean hangul */, + {0, 0, 0xC1FD} /* Korean hangul */, + {0, 0, 0xC200} /* Korean hangul */, + {0, 0, 0xC204} /* Korean hangul */, + {0, 0, 0xC20D} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC218} /* Korean hangul */, + {0, 0, 0xC219} /* Korean hangul */, + {0, 0, 0xC21C} /* Korean hangul */, + {0, 0, 0xC21F} /* Korean hangul */, + {0, 0, 0xC220} /* Korean hangul */, + {0, 0, 0xC228} /* Korean hangul */, + {0, 0, 0xC229} /* Korean hangul */, + {0, 0, 0xC22B} /* Korean hangul */, + {0, 0, 0xC22D} /* Korean hangul */, + {0, 0, 0xC22F} /* Korean hangul */, + {0, 0, 0xC231} /* Korean hangul */, + {0, 0, 0xC232} /* Korean hangul */, + {0, 0, 0xC234} /* Korean hangul */, + {0, 0, 0xC250} /* Korean hangul */, + {0, 0, 0xC258} /* Korean hangul */, + {0, 0, 0xC26C} /* Korean hangul */, + {0, 0, 0xC270} /* Korean hangul */, + {0, 0, 0xC274} /* Korean hangul */, + {0, 0, 0xC27C} /* Korean hangul */, + {0, 0, 0xC27D} /* Korean hangul */, + {0, 0, 0xC27F} /* Korean hangul */, + {0, 0, 0xC281} /* Korean hangul */, + {0, 0, 0xC288} /* Korean hangul */, + {0, 0, 0xC289} /* Korean hangul */, + {0, 0, 0xC290} /* Korean hangul */, + {0, 0, 0xC298} /* Korean hangul */, + {0, 0, 0xC29B} /* Korean hangul */, + {0, 0, 0xC29D} /* Korean hangul */, + {0, 0, 0xC2A4} /* Korean hangul */, + {0, 0, 0xC2A5} /* Korean hangul */, + {0, 0, 0xC2A8} /* Korean hangul */, + {0, 0, 0xC2AC} /* Korean hangul */, + {0, 0, 0xC2AD} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xC2B4} /* Korean hangul */, + {0, 0, 0xC2B5} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page811 = { + 0, marc8_9page811_dir +}; +/* PAGE 810 */ +struct yaz_iconv_trie_dir marc8_9page810_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xBE70} /* Korean hangul */, + {0, 0, 0xBE71} /* Korean hangul */, + {0, 0, 0xBE73} /* Korean hangul */, + {0, 0, 0xBE74} /* Korean hangul */, + {0, 0, 0xBE75} /* Korean hangul */, + {0, 0, 0xBE7B} /* Korean hangul */, + {0, 0, 0xBE7C} /* Korean hangul */, + {0, 0, 0xBE7D} /* Korean hangul */, + {0, 0, 0xBE80} /* Korean hangul */, + {0, 0, 0xBE84} /* Korean hangul */, + {0, 0, 0xBE8C} /* Korean hangul */, + {0, 0, 0xBE8F} /* Korean hangul */, + {0, 0, 0xBE90} /* Korean hangul */, + {0, 0, 0xBE91} /* Korean hangul */, + {0, 0, 0xBE98} /* Korean hangul */, + {0, 0, 0xBEA8} /* Korean hangul */, + {0, 0, 0xBED0} /* Korean hangul */, + {0, 0, 0xBED1} /* Korean hangul */, + {0, 0, 0xBED4} /* Korean hangul */, + {0, 0, 0xBED7} /* Korean hangul */, + {0, 0, 0xBED8} /* Korean hangul */, + {0, 0, 0xBEE0} /* Korean hangul */, + {0, 0, 0xBEE3} /* Korean hangul */, + {0, 0, 0xBEE4} /* Korean hangul */, + {0, 0, 0xBEE5} /* Korean hangul */, + {0, 0, 0xBEEC} /* Korean hangul */, + {0, 0, 0xBF08} /* Korean hangul */, + {0, 0, 0xBF09} /* Korean hangul */, + {0, 0, 0xBF18} /* Korean hangul */, + {0, 0, 0xBF1D} /* Korean hangul */, + {0, 0, 0xBF40} /* Korean hangul */, + {0, 0, 0xBF41} /* Korean hangul */, + {0, 0, 0xBF44} /* Korean hangul */, + {0, 0, 0xBF48} /* Korean hangul */, + {0, 0, 0xBF50} /* Korean hangul */, + {0, 0, 0xBF51} /* Korean hangul */, + {0, 0, 0xBF55} /* Korean hangul */, + {0, 0, 0xBFB0} /* Korean hangul */, + {0, 0, 0xBFC0} /* Korean hangul */, + {0, 0, 0xBFC5} /* Korean hangul */, + {0, 0, 0xBFCC} /* Korean hangul */, + {0, 0, 0xBFCD} /* Korean hangul */, + {0, 0, 0xBFD0} /* Korean hangul */, + {0, 0, 0xBFD4} /* Korean hangul */, + {0, 0, 0xBFDC} /* Korean hangul */, + {0, 0, 0xBFDD} /* Korean hangul */, + {0, 0, 0xBFE1} /* Korean hangul */, + {0, 0, 0xC058} /* Korean hangul */, + {0, 0, 0xC059} /* Korean hangul */, + {0, 0, 0xC05C} /* Korean hangul */, + {0, 0, 0xC060} /* Korean hangul */, + {0, 0, 0xC068} /* Korean hangul */, + {0, 0, 0xC069} /* Korean hangul */, + {0, 0, 0xC090} /* Korean hangul */, + {0, 0, 0xC091} /* Korean hangul */, + {0, 0, 0xC094} /* Korean hangul */, + {0, 0, 0xC098} /* Korean hangul */, + {0, 0, 0xC0A0} /* Korean hangul */, + {0, 0, 0xC0A3} /* Korean hangul */, + {0, 0, 0xC0A5} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xC0AC} /* Korean hangul */, + {0, 0, 0xC0AD} /* Korean hangul */, + {0, 0, 0xC0AE} /* Korean hangul */, + {0, 0, 0xC0AF} /* Korean hangul */, + {0, 0, 0xC0B0} /* Korean hangul */, + {0, 0, 0xC0B3} /* Korean hangul */, + {0, 0, 0xC0B4} /* Korean hangul */, + {0, 0, 0xC0B5} /* Korean hangul */, + {0, 0, 0xC0B6} /* Korean hangul */, + {0, 0, 0xC0BC} /* Korean hangul */, + {0, 0, 0xC0BD} /* Korean hangul */, + {0, 0, 0xC0BF} /* Korean hangul */, + {0, 0, 0xC0C0} /* Korean hangul */, + {0, 0, 0xC0C1} /* Korean hangul */, + {0, 0, 0xC0C5} /* Korean hangul */, + {0, 0, 0xC0C8} /* Korean hangul */, + {0, 0, 0xC0C9} /* Korean hangul */, + {0, 0, 0xC0CC} /* Korean hangul */, + {0, 0, 0xC0CF} /* Korean hangul */, + {0, 0, 0xC0D0} /* Korean hangul */, + {0, 0, 0xC0D8} /* Korean hangul */, + {0, 0, 0xC0D9} /* Korean hangul */, + {0, 0, 0xC0DB} /* Korean hangul */, + {0, 0, 0xC0DC} /* Korean hangul */, + {0, 0, 0xC0DD} /* Korean hangul */, + {0, 0, 0xC0E4} /* Korean hangul */, + {0, 0, 0xC0E5} /* Korean hangul */, + {0, 0, 0xC0E8} /* Korean hangul */, + {0, 0, 0xC0EC} /* Korean hangul */, + {0, 0, 0xC0F4} /* Korean hangul */, + {0, 0, 0xC0F7} /* Korean hangul */, + {0, 0, 0xC0F9} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page810 = { + 0, marc8_9page810_dir +}; +/* PAGE 809 */ +struct yaz_iconv_trie_dir marc8_9page809_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xBC40} /* Korean hangul */, + {0, 0, 0xBC41} /* Korean hangul */, + {0, 0, 0xBC43} /* Korean hangul */, + {0, 0, 0xBC44} /* Korean hangul */, + {0, 0, 0xBC45} /* Korean hangul */, + {0, 0, 0xBC84} /* Korean hangul */, + {0, 0, 0xBC85} /* Korean hangul */, + {0, 0, 0xBC88} /* Korean hangul */, + {0, 0, 0xBC8B} /* Korean hangul */, + {0, 0, 0xBC8C} /* Korean hangul */, + {0, 0, 0xBC94} /* Korean hangul */, + {0, 0, 0xBC95} /* Korean hangul */, + {0, 0, 0xBC97} /* Korean hangul */, + {0, 0, 0xBC98} /* Korean hangul */, + {0, 0, 0xBC99} /* Korean hangul */, + {0, 0, 0xBC9A} /* Korean hangul */, + {0, 0, 0xBCA0} /* Korean hangul */, + {0, 0, 0xBCA1} /* Korean hangul */, + {0, 0, 0xBCA4} /* Korean hangul */, + {0, 0, 0xBCA7} /* Korean hangul */, + {0, 0, 0xBCA8} /* Korean hangul */, + {0, 0, 0xBCB0} /* Korean hangul */, + {0, 0, 0xBCB1} /* Korean hangul */, + {0, 0, 0xBCB3} /* Korean hangul */, + {0, 0, 0xBCB5} /* Korean hangul */, + {0, 0, 0xBCBC} /* Korean hangul */, + {0, 0, 0xBCBD} /* Korean hangul */, + {0, 0, 0xBCC0} /* Korean hangul */, + {0, 0, 0xBCC4} /* Korean hangul */, + {0, 0, 0xBCCC} /* Korean hangul */, + {0, 0, 0xBCCD} /* Korean hangul */, + {0, 0, 0xBCCF} /* Korean hangul */, + {0, 0, 0xBCD0} /* Korean hangul */, + {0, 0, 0xBCD1} /* Korean hangul */, + {0, 0, 0xBCD2} /* Korean hangul */, + {0, 0, 0xBCD5} /* Korean hangul */, + {0, 0, 0xBCF4} /* Korean hangul */, + {0, 0, 0xBCF5} /* Korean hangul */, + {0, 0, 0xBCF6} /* Korean hangul */, + {0, 0, 0xBCF8} /* Korean hangul */, + {0, 0, 0xBCFC} /* Korean hangul */, + {0, 0, 0xBD04} /* Korean hangul */, + {0, 0, 0xBD05} /* Korean hangul */, + {0, 0, 0xBD07} /* Korean hangul */, + {0, 0, 0xBD09} /* Korean hangul */, + {0, 0, 0xBD10} /* Korean hangul */, + {0, 0, 0xBD14} /* Korean hangul */, + {0, 0, 0xBD24} /* Korean hangul */, + {0, 0, 0xBD48} /* Korean hangul */, + {0, 0, 0xBD49} /* Korean hangul */, + {0, 0, 0xBD4C} /* Korean hangul */, + {0, 0, 0xBD50} /* Korean hangul */, + {0, 0, 0xBD58} /* Korean hangul */, + {0, 0, 0xBD59} /* Korean hangul */, + {0, 0, 0xBD64} /* Korean hangul */, + {0, 0, 0xBD80} /* Korean hangul */, + {0, 0, 0xBD81} /* Korean hangul */, + {0, 0, 0xBD84} /* Korean hangul */, + {0, 0, 0xBD87} /* Korean hangul */, + {0, 0, 0xBD88} /* Korean hangul */, + {0, 0, 0xBD89} /* Korean hangul */, + {0, 0, 0xBD90} /* Korean hangul */, + {0, 0, 0xBD91} /* Korean hangul */, + {0, 0, 0xBD93} /* Korean hangul */, + {0, 0, 0xBD95} /* Korean hangul */, + {0, 0, 0xBD99} /* Korean hangul */, + {0, 0, 0xBD9C} /* Korean hangul */, + {0, 0, 0xBDD4} /* Korean hangul */, + {0, 0, 0xBDF0} /* Korean hangul */, + {0, 0, 0xBE0C} /* Korean hangul */, + {0, 0, 0xBE0D} /* Korean hangul */, + {0, 0, 0xBE10} /* Korean hangul */, + {0, 0, 0xBE14} /* Korean hangul */, + {0, 0, 0xBE1C} /* Korean hangul */, + {0, 0, 0xBE1D} /* Korean hangul */, + {0, 0, 0xBE1F} /* Korean hangul */, + {0, 0, 0xBE44} /* Korean hangul */, + {0, 0, 0xBE45} /* Korean hangul */, + {0, 0, 0xBE48} /* Korean hangul */, + {0, 0, 0xBE4B} /* Korean hangul */, + {0, 0, 0xBE4C} /* Korean hangul */, + {0, 0, 0xBE4E} /* Korean hangul */, + {0, 0, 0xBE54} /* Korean hangul */, + {0, 0, 0xBE55} /* Korean hangul */, + {0, 0, 0xBE57} /* Korean hangul */, + {0, 0, 0xBE59} /* Korean hangul */, + {0, 0, 0xBE5A} /* Korean hangul */, + {0, 0, 0xBE5B} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xBE60} /* Korean hangul */, + {0, 0, 0xBE61} /* Korean hangul */, + {0, 0, 0xBE64} /* Korean hangul */, + {0, 0, 0xBE68} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page809 = { + 0, marc8_9page809_dir +}; +/* PAGE 808 */ +struct yaz_iconv_trie_dir marc8_9page808_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xBA38} /* Korean hangul */, + {0, 0, 0xBA39} /* Korean hangul */, + {0, 0, 0xBA3C} /* Korean hangul */, + {0, 0, 0xBA40} /* Korean hangul */, + {0, 0, 0xBA48} /* Korean hangul */, + {0, 0, 0xBA49} /* Korean hangul */, + {0, 0, 0xBA4B} /* Korean hangul */, + {0, 0, 0xBA4D} /* Korean hangul */, + {0, 0, 0xBA4E} /* Korean hangul */, + {0, 0, 0xBA53} /* Korean hangul */, + {0, 0, 0xBA54} /* Korean hangul */, + {0, 0, 0xBA55} /* Korean hangul */, + {0, 0, 0xBA58} /* Korean hangul */, + {0, 0, 0xBA5C} /* Korean hangul */, + {0, 0, 0xBA64} /* Korean hangul */, + {0, 0, 0xBA65} /* Korean hangul */, + {0, 0, 0xBA67} /* Korean hangul */, + {0, 0, 0xBA70} /* Korean hangul */, + {0, 0, 0xBA71} /* Korean hangul */, + {0, 0, 0xBA74} /* Korean hangul */, + {0, 0, 0xBA78} /* Korean hangul */, + {0, 0, 0xBA83} /* Korean hangul */, + {0, 0, 0xBA84} /* Korean hangul */, + {0, 0, 0xBA85} /* Korean hangul */, + {0, 0, 0xBA87} /* Korean hangul */, + {0, 0, 0xBAA8} /* Korean hangul */, + {0, 0, 0xBAA9} /* Korean hangul */, + {0, 0, 0xBAAB} /* Korean hangul */, + {0, 0, 0xBAAC} /* Korean hangul */, + {0, 0, 0xBAB0} /* Korean hangul */, + {0, 0, 0xBAB8} /* Korean hangul */, + {0, 0, 0xBAB9} /* Korean hangul */, + {0, 0, 0xBABB} /* Korean hangul */, + {0, 0, 0xBABD} /* Korean hangul */, + {0, 0, 0xBAC3} /* Korean hangul */, + {0, 0, 0xBAFC} /* Korean hangul */, + {0, 0, 0xBB0F} /* Korean hangul */, + {0, 0, 0xBB18} /* Korean hangul */, + {0, 0, 0xBB34} /* Korean hangul */, + {0, 0, 0xBB35} /* Korean hangul */, + {0, 0, 0xBB36} /* Korean hangul */, + {0, 0, 0xBB38} /* Korean hangul */, + {0, 0, 0xBB3B} /* Korean hangul */, + {0, 0, 0xBB3C} /* Korean hangul */, + {0, 0, 0xBB3D} /* Korean hangul */, + {0, 0, 0xBB44} /* Korean hangul */, + {0, 0, 0xBB47} /* Korean hangul */, + {0, 0, 0xBB49} /* Korean hangul */, + {0, 0, 0xBB4D} /* Korean hangul */, + {0, 0, 0xBB4F} /* Korean hangul */, + {0, 0, 0xBB50} /* Korean hangul */, + {0, 0, 0xBB54} /* Korean hangul */, + {0, 0, 0xBB58} /* Korean hangul */, + {0, 0, 0xBB61} /* Korean hangul */, + {0, 0, 0xBB63} /* Korean hangul */, + {0, 0, 0xBB88} /* Korean hangul */, + {0, 0, 0xBB8C} /* Korean hangul */, + {0, 0, 0xBBA4} /* Korean hangul */, + {0, 0, 0xBBC0} /* Korean hangul */, + {0, 0, 0xBBC4} /* Korean hangul */, + {0, 0, 0xBBC8} /* Korean hangul */, + {0, 0, 0xBBD0} /* Korean hangul */, + {0, 0, 0xBBF8} /* Korean hangul */, + {0, 0, 0xBBF9} /* Korean hangul */, + {0, 0, 0xBBFC} /* Korean hangul */, + {0, 0, 0xBBFF} /* Korean hangul */, + {0, 0, 0xBC00} /* Korean hangul */, + {0, 0, 0xBC08} /* Korean hangul */, + {0, 0, 0xBC09} /* Korean hangul */, + {0, 0, 0xBC0B} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xBC0D} /* Korean hangul */, + {0, 0, 0xBC0F} /* Korean hangul */, + {0, 0, 0xBC11} /* Korean hangul */, + {0, 0, 0xBBB4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xBC14} /* Korean hangul */, + {0, 0, 0xBC15} /* Korean hangul */, + {0, 0, 0xBC16} /* Korean hangul */, + {0, 0, 0xBC18} /* Korean hangul */, + {0, 0, 0xBC1B} /* Korean hangul */, + {0, 0, 0xBC1C} /* Korean hangul */, + {0, 0, 0xBC1D} /* Korean hangul */, + {0, 0, 0xBC1F} /* Korean hangul */, + {0, 0, 0xBC24} /* Korean hangul */, + {0, 0, 0xBC25} /* Korean hangul */, + {0, 0, 0xBC27} /* Korean hangul */, + {0, 0, 0xBC29} /* Korean hangul */, + {0, 0, 0xBC2D} /* Korean hangul */, + {0, 0, 0xBC30} /* Korean hangul */, + {0, 0, 0xBC31} /* Korean hangul */, + {0, 0, 0xBC34} /* Korean hangul */, + {0, 0, 0xBC37} /* Korean hangul */, + {0, 0, 0xBC38} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page808 = { + 0, marc8_9page808_dir +}; +/* PAGE 807 */ +struct yaz_iconv_trie_dir marc8_9page807_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB7FD} /* Korean hangul */, + {0, 0, 0xB7FF} /* Korean hangul */, + {0, 0, 0xB800} /* Korean hangul */, + {0, 0, 0xB801} /* Korean hangul */, + {0, 0, 0xB807} /* Korean hangul */, + {0, 0, 0xB808} /* Korean hangul */, + {0, 0, 0xB809} /* Korean hangul */, + {0, 0, 0xB80C} /* Korean hangul */, + {0, 0, 0xB810} /* Korean hangul */, + {0, 0, 0xB818} /* Korean hangul */, + {0, 0, 0xB819} /* Korean hangul */, + {0, 0, 0xB81B} /* Korean hangul */, + {0, 0, 0xB81D} /* Korean hangul */, + {0, 0, 0xB824} /* Korean hangul */, + {0, 0, 0xB825} /* Korean hangul */, + {0, 0, 0xB828} /* Korean hangul */, + {0, 0, 0xB82C} /* Korean hangul */, + {0, 0, 0xB834} /* Korean hangul */, + {0, 0, 0xB835} /* Korean hangul */, + {0, 0, 0xB837} /* Korean hangul */, + {0, 0, 0xB838} /* Korean hangul */, + {0, 0, 0xB839} /* Korean hangul */, + {0, 0, 0xB840} /* Korean hangul */, + {0, 0, 0xB85C} /* Korean hangul */, + {0, 0, 0xB85D} /* Korean hangul */, + {0, 0, 0xB860} /* Korean hangul */, + {0, 0, 0xB864} /* Korean hangul */, + {0, 0, 0xB86C} /* Korean hangul */, + {0, 0, 0xB86D} /* Korean hangul */, + {0, 0, 0xB86F} /* Korean hangul */, + {0, 0, 0xB871} /* Korean hangul */, + {0, 0, 0xB8B0} /* Korean hangul */, + {0, 0, 0xB8CC} /* Korean hangul */, + {0, 0, 0xB8E1} /* Korean hangul */, + {0, 0, 0xB8E8} /* Korean hangul */, + {0, 0, 0xB8E9} /* Korean hangul */, + {0, 0, 0xB8EC} /* Korean hangul */, + {0, 0, 0xB8F0} /* Korean hangul */, + {0, 0, 0xB8F8} /* Korean hangul */, + {0, 0, 0xB8F9} /* Korean hangul */, + {0, 0, 0xB8FB} /* Korean hangul */, + {0, 0, 0xB8FD} /* Korean hangul */, + {0, 0, 0xB904} /* Korean hangul */, + {0, 0, 0xB93C} /* Korean hangul */, + {0, 0, 0xB958} /* Korean hangul */, + {0, 0, 0xB959} /* Korean hangul */, + {0, 0, 0xB95C} /* Korean hangul */, + {0, 0, 0xB960} /* Korean hangul */, + {0, 0, 0xB968} /* Korean hangul */, + {0, 0, 0xB96D} /* Korean hangul */, + {0, 0, 0xB974} /* Korean hangul */, + {0, 0, 0xB975} /* Korean hangul */, + {0, 0, 0xB978} /* Korean hangul */, + {0, 0, 0xB97C} /* Korean hangul */, + {0, 0, 0xB984} /* Korean hangul */, + {0, 0, 0xB985} /* Korean hangul */, + {0, 0, 0xB987} /* Korean hangul */, + {0, 0, 0xB989} /* Korean hangul */, + {0, 0, 0xB98E} /* Korean hangul */, + {0, 0, 0xB9AC} /* Korean hangul */, + {0, 0, 0xB9AD} /* Korean hangul */, + {0, 0, 0xB9B0} /* Korean hangul */, + {0, 0, 0xB9B4} /* Korean hangul */, + {0, 0, 0xB9BC} /* Korean hangul */, + {0, 0, 0xB9BD} /* Korean hangul */, + {0, 0, 0xB9BF} /* Korean hangul */, + {0, 0, 0xB9C1} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB9C8} /* Korean hangul */, + {0, 0, 0xB9C9} /* Korean hangul */, + {0, 0, 0xB9CC} /* Korean hangul */, + {0, 0, 0xB9CE} /* Korean hangul */, + {0, 0, 0xB9CF} /* Korean hangul */, + {0, 0, 0xB9D0} /* Korean hangul */, + {0, 0, 0xB9D1} /* Korean hangul */, + {0, 0, 0xB9D8} /* Korean hangul */, + {0, 0, 0xB9D9} /* Korean hangul */, + {0, 0, 0xB9DB} /* Korean hangul */, + {0, 0, 0xB9DD} /* Korean hangul */, + {0, 0, 0xB9DE} /* Korean hangul */, + {0, 0, 0xB9E1} /* Korean hangul */, + {0, 0, 0xB9E3} /* Korean hangul */, + {0, 0, 0xB9E4} /* Korean hangul */, + {0, 0, 0xB9E5} /* Korean hangul */, + {0, 0, 0xB9E8} /* Korean hangul */, + {0, 0, 0xB9EC} /* Korean hangul */, + {0, 0, 0xB9F4} /* Korean hangul */, + {0, 0, 0xB9F5} /* Korean hangul */, + {0, 0, 0xB9F7} /* Korean hangul */, + {0, 0, 0xB9F8} /* Korean hangul */, + {0, 0, 0xB9F9} /* Korean hangul */, + {0, 0, 0xB9FA} /* Korean hangul */, + {0, 0, 0xBA00} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page807 = { + 0, marc8_9page807_dir +}; +/* PAGE 806 */ +struct yaz_iconv_trie_dir marc8_9page806_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB540} /* Korean hangul */, + {0, 0, 0xB541} /* Korean hangul */, + {0, 0, 0xB543} /* Korean hangul */, + {0, 0, 0xB544} /* Korean hangul */, + {0, 0, 0xB545} /* Korean hangul */, + {0, 0, 0xB54B} /* Korean hangul */, + {0, 0, 0xB54C} /* Korean hangul */, + {0, 0, 0xB54D} /* Korean hangul */, + {0, 0, 0xB550} /* Korean hangul */, + {0, 0, 0xB554} /* Korean hangul */, + {0, 0, 0xB55C} /* Korean hangul */, + {0, 0, 0xB55D} /* Korean hangul */, + {0, 0, 0xB55F} /* Korean hangul */, + {0, 0, 0xB560} /* Korean hangul */, + {0, 0, 0xB561} /* Korean hangul */, + {0, 0, 0xB5A0} /* Korean hangul */, + {0, 0, 0xB5A1} /* Korean hangul */, + {0, 0, 0xB5A4} /* Korean hangul */, + {0, 0, 0xB5A8} /* Korean hangul */, + {0, 0, 0xB5AB} /* Korean hangul */, + {0, 0, 0xB5B0} /* Korean hangul */, + {0, 0, 0xB5B1} /* Korean hangul */, + {0, 0, 0xB5B3} /* Korean hangul */, + {0, 0, 0xB5B4} /* Korean hangul */, + {0, 0, 0xB5B5} /* Korean hangul */, + {0, 0, 0xB5BB} /* Korean hangul */, + {0, 0, 0xB5BC} /* Korean hangul */, + {0, 0, 0xB5C0} /* Korean hangul */, + {0, 0, 0xB5C4} /* Korean hangul */, + {0, 0, 0xB5CC} /* Korean hangul */, + {0, 0, 0xB5CF} /* Korean hangul */, + {0, 0, 0xB5D1} /* Korean hangul */, + {0, 0, 0xB610} /* Korean hangul */, + {0, 0, 0xB611} /* Korean hangul */, + {0, 0, 0xB614} /* Korean hangul */, + {0, 0, 0xB618} /* Korean hangul */, + {0, 0, 0xB625} /* Korean hangul */, + {0, 0, 0xB664} /* Korean hangul */, + {0, 0, 0xB69C} /* Korean hangul */, + {0, 0, 0xB69D} /* Korean hangul */, + {0, 0, 0xB6A4} /* Korean hangul */, + {0, 0, 0xB6AB} /* Korean hangul */, + {0, 0, 0xB6AC} /* Korean hangul */, + {0, 0, 0xB6B1} /* Korean hangul */, + {0, 0, 0xB6F0} /* Korean hangul */, + {0, 0, 0xB6F4} /* Korean hangul */, + {0, 0, 0xB6F8} /* Korean hangul */, + {0, 0, 0xB700} /* Korean hangul */, + {0, 0, 0xB701} /* Korean hangul */, + {0, 0, 0xB728} /* Korean hangul */, + {0, 0, 0xB729} /* Korean hangul */, + {0, 0, 0xB72C} /* Korean hangul */, + {0, 0, 0xB72F} /* Korean hangul */, + {0, 0, 0xB730} /* Korean hangul */, + {0, 0, 0xB738} /* Korean hangul */, + {0, 0, 0xB739} /* Korean hangul */, + {0, 0, 0xB73B} /* Korean hangul */, + {0, 0, 0xB744} /* Korean hangul */, + {0, 0, 0xB748} /* Korean hangul */, + {0, 0, 0xB760} /* Korean hangul */, + {0, 0, 0xB764} /* Korean hangul */, + {0, 0, 0xB768} /* Korean hangul */, + {0, 0, 0xB770} /* Korean hangul */, + {0, 0, 0xB771} /* Korean hangul */, + {0, 0, 0xB775} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB77C} /* Korean hangul */, + {0, 0, 0xB77D} /* Korean hangul */, + {0, 0, 0xB780} /* Korean hangul */, + {0, 0, 0xB784} /* Korean hangul */, + {0, 0, 0xB78C} /* Korean hangul */, + {0, 0, 0xB78D} /* Korean hangul */, + {0, 0, 0xB78F} /* Korean hangul */, + {0, 0, 0xB790} /* Korean hangul */, + {0, 0, 0xB791} /* Korean hangul */, + {0, 0, 0xB797} /* Korean hangul */, + {0, 0, 0xB798} /* Korean hangul */, + {0, 0, 0xB799} /* Korean hangul */, + {0, 0, 0xB79C} /* Korean hangul */, + {0, 0, 0xB7A0} /* Korean hangul */, + {0, 0, 0xB7A8} /* Korean hangul */, + {0, 0, 0xB7A9} /* Korean hangul */, + {0, 0, 0xB7AB} /* Korean hangul */, + {0, 0, 0xB7AC} /* Korean hangul */, + {0, 0, 0xB7AD} /* Korean hangul */, + {0, 0, 0xB7B4} /* Korean hangul */, + {0, 0, 0xB7B5} /* Korean hangul */, + {0, 0, 0xB7C9} /* Korean hangul */, + {0, 0, 0xB7EC} /* Korean hangul */, + {0, 0, 0xB7ED} /* Korean hangul */, + {0, 0, 0xB7F0} /* Korean hangul */, + {0, 0, 0xB7F4} /* Korean hangul */, + {0, 0, 0xB7FC} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page806 = { + 0, marc8_9page806_dir +}; +/* PAGE 805 */ +struct yaz_iconv_trie_dir marc8_9page805_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB304} /* Korean hangul */, + {0, 0, 0xB308} /* Korean hangul */, + {0, 0, 0xB310} /* Korean hangul */, + {0, 0, 0xB311} /* Korean hangul */, + {0, 0, 0xB313} /* Korean hangul */, + {0, 0, 0xB314} /* Korean hangul */, + {0, 0, 0xB315} /* Korean hangul */, + {0, 0, 0xB354} /* Korean hangul */, + {0, 0, 0xB355} /* Korean hangul */, + {0, 0, 0xB358} /* Korean hangul */, + {0, 0, 0xB35B} /* Korean hangul */, + {0, 0, 0xB35C} /* Korean hangul */, + {0, 0, 0xB35F} /* Korean hangul */, + {0, 0, 0xB364} /* Korean hangul */, + {0, 0, 0xB365} /* Korean hangul */, + {0, 0, 0xB367} /* Korean hangul */, + {0, 0, 0xB368} /* Korean hangul */, + {0, 0, 0xB369} /* Korean hangul */, + {0, 0, 0xB36A} /* Korean hangul */, + {0, 0, 0xB36B} /* Korean hangul */, + {0, 0, 0xB36E} /* Korean hangul */, + {0, 0, 0xB370} /* Korean hangul */, + {0, 0, 0xB371} /* Korean hangul */, + {0, 0, 0xB374} /* Korean hangul */, + {0, 0, 0xB378} /* Korean hangul */, + {0, 0, 0xB380} /* Korean hangul */, + {0, 0, 0xB383} /* Korean hangul */, + {0, 0, 0xB385} /* Korean hangul */, + {0, 0, 0xB38C} /* Korean hangul */, + {0, 0, 0xB3C4} /* Korean hangul */, + {0, 0, 0xB3C5} /* Korean hangul */, + {0, 0, 0xB3C8} /* Korean hangul */, + {0, 0, 0xB3CB} /* Korean hangul */, + {0, 0, 0xB3CC} /* Korean hangul */, + {0, 0, 0xB3D0} /* Korean hangul */, + {0, 0, 0xB3D4} /* Korean hangul */, + {0, 0, 0xB3D5} /* Korean hangul */, + {0, 0, 0xB3D7} /* Korean hangul */, + {0, 0, 0xB3D9} /* Korean hangul */, + {0, 0, 0xB3DB} /* Korean hangul */, + {0, 0, 0xB3FC} /* Korean hangul */, + {0, 0, 0xB400} /* Korean hangul */, + {0, 0, 0xB410} /* Korean hangul */, + {0, 0, 0xB418} /* Korean hangul */, + {0, 0, 0xB41C} /* Korean hangul */, + {0, 0, 0xB420} /* Korean hangul */, + {0, 0, 0xB428} /* Korean hangul */, + {0, 0, 0xB429} /* Korean hangul */, + {0, 0, 0xB42B} /* Korean hangul */, + {0, 0, 0xB42C} /* Korean hangul */, + {0, 0, 0xB450} /* Korean hangul */, + {0, 0, 0xB451} /* Korean hangul */, + {0, 0, 0xB454} /* Korean hangul */, + {0, 0, 0xB458} /* Korean hangul */, + {0, 0, 0xB460} /* Korean hangul */, + {0, 0, 0xB461} /* Korean hangul */, + {0, 0, 0xB463} /* Korean hangul */, + {0, 0, 0xB465} /* Korean hangul */, + {0, 0, 0xB46C} /* Korean hangul */, + {0, 0, 0xB480} /* Korean hangul */, + {0, 0, 0xB488} /* Korean hangul */, + {0, 0, 0xB4A4} /* Korean hangul */, + {0, 0, 0xB4B7} /* Korean hangul */, + {0, 0, 0xB4C0} /* Korean hangul */, + {0, 0, 0xB4D0} /* Korean hangul */, + {0, 0, 0xB4DC} /* Korean hangul */, + {0, 0, 0xB4DD} /* Korean hangul */, + {0, 0, 0xB4E0} /* Korean hangul */, + {0, 0, 0xB4E3} /* Korean hangul */, + {0, 0, 0xB4E4} /* Korean hangul */, + {0, 0, 0xB4EC} /* Korean hangul */, + {0, 0, 0xB4ED} /* Korean hangul */, + {0, 0, 0xB4EF} /* Korean hangul */, + {0, 0, 0xB4F1} /* Korean hangul */, + {0, 0, 0xB514} /* Korean hangul */, + {0, 0, 0xB515} /* Korean hangul */, + {0, 0, 0xB518} /* Korean hangul */, + {0, 0, 0xB51B} /* Korean hangul */, + {0, 0, 0xB51C} /* Korean hangul */, + {0, 0, 0xB524} /* Korean hangul */, + {0, 0, 0xB525} /* Korean hangul */, + {0, 0, 0xB527} /* Korean hangul */, + {0, 0, 0xB528} /* Korean hangul */, + {0, 0, 0xB529} /* Korean hangul */, + {0, 0, 0xB52A} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB530} /* Korean hangul */, + {0, 0, 0xB531} /* Korean hangul */, + {0, 0, 0xB532} /* Korean hangul */, + {0, 0, 0xB534} /* Korean hangul */, + {0, 0, 0xB537} /* Korean hangul */, + {0, 0, 0xB538} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page805 = { + 0, marc8_9page805_dir +}; +/* PAGE 804 */ +struct yaz_iconv_trie_dir marc8_9page804_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB128} /* Korean hangul */, + {0, 0, 0xB12C} /* Korean hangul */, + {0, 0, 0xB134} /* Korean hangul */, + {0, 0, 0xB135} /* Korean hangul */, + {0, 0, 0xB137} /* Korean hangul */, + {0, 0, 0xB140} /* Korean hangul */, + {0, 0, 0xB141} /* Korean hangul */, + {0, 0, 0xB144} /* Korean hangul */, + {0, 0, 0xB150} /* Korean hangul */, + {0, 0, 0xB151} /* Korean hangul */, + {0, 0, 0xB153} /* Korean hangul */, + {0, 0, 0xB154} /* Korean hangul */, + {0, 0, 0xB155} /* Korean hangul */, + {0, 0, 0xB158} /* Korean hangul */, + {0, 0, 0xB15C} /* Korean hangul */, + {0, 0, 0xB178} /* Korean hangul */, + {0, 0, 0xB179} /* Korean hangul */, + {0, 0, 0xB17A} /* Korean hangul */, + {0, 0, 0xB17C} /* Korean hangul */, + {0, 0, 0xB180} /* Korean hangul */, + {0, 0, 0xB188} /* Korean hangul */, + {0, 0, 0xB189} /* Korean hangul */, + {0, 0, 0xB18B} /* Korean hangul */, + {0, 0, 0xB18D} /* Korean hangul */, + {0, 0, 0xB192} /* Korean hangul */, + {0, 0, 0xB193} /* Korean hangul */, + {0, 0, 0xB194} /* Korean hangul */, + {0, 0, 0xB1A8} /* Korean hangul */, + {0, 0, 0xB1CC} /* Korean hangul */, + {0, 0, 0xB1D0} /* Korean hangul */, + {0, 0, 0xB1D4} /* Korean hangul */, + {0, 0, 0xB1DC} /* Korean hangul */, + {0, 0, 0xB1E8} /* Korean hangul */, + {0, 0, 0xB1FD} /* Korean hangul */, + {0, 0, 0xB204} /* Korean hangul */, + {0, 0, 0xB205} /* Korean hangul */, + {0, 0, 0xB208} /* Korean hangul */, + {0, 0, 0xB20B} /* Korean hangul */, + {0, 0, 0xB20C} /* Korean hangul */, + {0, 0, 0xB213} /* Korean hangul */, + {0, 0, 0xB214} /* Korean hangul */, + {0, 0, 0xB215} /* Korean hangul */, + {0, 0, 0xB217} /* Korean hangul */, + {0, 0, 0xB220} /* Korean hangul */, + {0, 0, 0xB233} /* Korean hangul */, + {0, 0, 0xB234} /* Korean hangul */, + {0, 0, 0xB258} /* Korean hangul */, + {0, 0, 0xB25C} /* Korean hangul */, + {0, 0, 0xB260} /* Korean hangul */, + {0, 0, 0xB268} /* Korean hangul */, + {0, 0, 0xB269} /* Korean hangul */, + {0, 0, 0xB274} /* Korean hangul */, + {0, 0, 0xB284} /* Korean hangul */, + {0, 0, 0xB289} /* Korean hangul */, + {0, 0, 0xB290} /* Korean hangul */, + {0, 0, 0xB291} /* Korean hangul */, + {0, 0, 0xB294} /* Korean hangul */, + {0, 0, 0xB298} /* Korean hangul */, + {0, 0, 0xB299} /* Korean hangul */, + {0, 0, 0xB2A0} /* Korean hangul */, + {0, 0, 0xB2A1} /* Korean hangul */, + {0, 0, 0xB2A5} /* Korean hangul */, + {0, 0, 0xB2A6} /* Korean hangul */, + {0, 0, 0xB2AA} /* Korean hangul */, + {0, 0, 0xB2AC} /* Korean hangul */, + {0, 0, 0xB2C8} /* Korean hangul */, + {0, 0, 0xB2C9} /* Korean hangul */, + {0, 0, 0xB2CC} /* Korean hangul */, + {0, 0, 0xB2D0} /* Korean hangul */, + {0, 0, 0xB2D8} /* Korean hangul */, + {0, 0, 0xB2D9} /* Korean hangul */, + {0, 0, 0xB2DB} /* Korean hangul */, + {0, 0, 0xB2DD} /* Korean hangul */, + {0, 0, 0xB2E2} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB2E4} /* Korean hangul */, + {0, 0, 0xB2E5} /* Korean hangul */, + {0, 0, 0xB2E6} /* Korean hangul */, + {0, 0, 0xB2E8} /* Korean hangul */, + {0, 0, 0xB2EB} /* Korean hangul */, + {0, 0, 0xB2EC} /* Korean hangul */, + {0, 0, 0xB2ED} /* Korean hangul */, + {0, 0, 0xB2EE} /* Korean hangul */, + {0, 0, 0xB2F3} /* Korean hangul */, + {0, 0, 0xB2F4} /* Korean hangul */, + {0, 0, 0xB2F5} /* Korean hangul */, + {0, 0, 0xB2F7} /* Korean hangul */, + {0, 0, 0xB2F9} /* Korean hangul */, + {0, 0, 0xB2FA} /* Korean hangul */, + {0, 0, 0xB2FB} /* Korean hangul */, + {0, 0, 0xB2FF} /* Korean hangul */, + {0, 0, 0xB300} /* Korean hangul */, + {0, 0, 0xB301} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page804 = { + 0, marc8_9page804_dir +}; +/* PAGE 803 */ +struct yaz_iconv_trie_dir marc8_9page803_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xAF9C} /* Korean hangul */, + {0, 0, 0xAFB8} /* Korean hangul */, + {0, 0, 0xAFB9} /* Korean hangul */, + {0, 0, 0xAFBC} /* Korean hangul */, + {0, 0, 0xAFC0} /* Korean hangul */, + {0, 0, 0xAFC7} /* Korean hangul */, + {0, 0, 0xAFC8} /* Korean hangul */, + {0, 0, 0xAFC9} /* Korean hangul */, + {0, 0, 0xAFCB} /* Korean hangul */, + {0, 0, 0xAFCD} /* Korean hangul */, + {0, 0, 0xAFCE} /* Korean hangul */, + {0, 0, 0xAFD4} /* Korean hangul */, + {0, 0, 0xAFD8} /* Korean hangul */, + {0, 0, 0xAFE9} /* Korean hangul */, + {0, 0, 0xAFF0} /* Korean hangul */, + {0, 0, 0xB000} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xB00C} /* Korean hangul */, + {0, 0, 0xB00D} /* Korean hangul */, + {0, 0, 0xB010} /* Korean hangul */, + {0, 0, 0xB014} /* Korean hangul */, + {0, 0, 0xB01C} /* Korean hangul */, + {0, 0, 0xB01D} /* Korean hangul */, + {0, 0, 0xB028} /* Korean hangul */, + {0, 0, 0xB044} /* Korean hangul */, + {0, 0, 0xB045} /* Korean hangul */, + {0, 0, 0xB048} /* Korean hangul */, + {0, 0, 0xB04A} /* Korean hangul */, + {0, 0, 0xB04C} /* Korean hangul */, + {0, 0, 0xB053} /* Korean hangul */, + {0, 0, 0xB054} /* Korean hangul */, + {0, 0, 0xB055} /* Korean hangul */, + {0, 0, 0xB057} /* Korean hangul */, + {0, 0, 0xB059} /* Korean hangul */, + {0, 0, 0xB05D} /* Korean hangul */, + {0, 0, 0xB07C} /* Korean hangul */, + {0, 0, 0xB07D} /* Korean hangul */, + {0, 0, 0xB080} /* Korean hangul */, + {0, 0, 0xB084} /* Korean hangul */, + {0, 0, 0xB08C} /* Korean hangul */, + {0, 0, 0xB08D} /* Korean hangul */, + {0, 0, 0xB08F} /* Korean hangul */, + {0, 0, 0xB090} /* Korean hangul */, + {0, 0, 0xB091} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xB098} /* Korean hangul */, + {0, 0, 0xB099} /* Korean hangul */, + {0, 0, 0xB09A} /* Korean hangul */, + {0, 0, 0xB09C} /* Korean hangul */, + {0, 0, 0xB09F} /* Korean hangul */, + {0, 0, 0xB0A0} /* Korean hangul */, + {0, 0, 0xB0A1} /* Korean hangul */, + {0, 0, 0xB0A8} /* Korean hangul */, + {0, 0, 0xB0A9} /* Korean hangul */, + {0, 0, 0xB0AB} /* Korean hangul */, + {0, 0, 0xB0AC} /* Korean hangul */, + {0, 0, 0xB0AD} /* Korean hangul */, + {0, 0, 0xB0AE} /* Korean hangul */, + {0, 0, 0xB0AF} /* Korean hangul */, + {0, 0, 0xB0B1} /* Korean hangul */, + {0, 0, 0xB0B3} /* Korean hangul */, + {0, 0, 0xB0B4} /* Korean hangul */, + {0, 0, 0xB0B5} /* Korean hangul */, + {0, 0, 0xB0B8} /* Korean hangul */, + {0, 0, 0xB0BB} /* Korean hangul */, + {0, 0, 0xB0BC} /* Korean hangul */, + {0, 0, 0xB0C4} /* Korean hangul */, + {0, 0, 0xB0C5} /* Korean hangul */, + {0, 0, 0xB0C7} /* Korean hangul */, + {0, 0, 0xB0C8} /* Korean hangul */, + {0, 0, 0xB0C9} /* Korean hangul */, + {0, 0, 0xB0D0} /* Korean hangul */, + {0, 0, 0xB0D1} /* Korean hangul */, + {0, 0, 0xB0E0} /* Korean hangul */, + {0, 0, 0xB0E5} /* Korean hangul */, + {0, 0, 0xB0EC} /* Korean hangul */, + {0, 0, 0xB108} /* Korean hangul */, + {0, 0, 0xB109} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xB10B} /* Korean hangul */, + {0, 0, 0xB10C} /* Korean hangul */, + {0, 0, 0xB10F} /* Korean hangul */, + {0, 0, 0xB110} /* Korean hangul */, + {0, 0, 0xB113} /* Korean hangul */, + {0, 0, 0xB118} /* Korean hangul */, + {0, 0, 0xB119} /* Korean hangul */, + {0, 0, 0xB11B} /* Korean hangul */, + {0, 0, 0xB11C} /* Korean hangul */, + {0, 0, 0xB11D} /* Korean hangul */, + {0, 0, 0xB11E} /* Korean hangul */, + {0, 0, 0xB123} /* Korean hangul */, + {0, 0, 0xB124} /* Korean hangul */, + {0, 0, 0xB125} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page803 = { + 0, marc8_9page803_dir +}; +/* PAGE 802 */ +struct yaz_iconv_trie_dir marc8_9page802_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xADC0} /* Korean hangul */, + {0, 0, 0xADC4} /* Korean hangul */, + {0, 0, 0xADC8} /* Korean hangul */, + {0, 0, 0xADD0} /* Korean hangul */, + {0, 0, 0xADD1} /* Korean hangul */, + {0, 0, 0xADD3} /* Korean hangul */, + {0, 0, 0xADDC} /* Korean hangul */, + {0, 0, 0xADE0} /* Korean hangul */, + {0, 0, 0xADE4} /* Korean hangul */, + {0, 0, 0xADEC} /* Korean hangul */, + {0, 0, 0xADF8} /* Korean hangul */, + {0, 0, 0xADF9} /* Korean hangul */, + {0, 0, 0xADFC} /* Korean hangul */, + {0, 0, 0xADFF} /* Korean hangul */, + {0, 0, 0xAE00} /* Korean hangul */, + {0, 0, 0xAE01} /* Korean hangul */, + {0, 0, 0xAE08} /* Korean hangul */, + {0, 0, 0xAE09} /* Korean hangul */, + {0, 0, 0xAE0B} /* Korean hangul */, + {0, 0, 0xAE0D} /* Korean hangul */, + {0, 0, 0xAE30} /* Korean hangul */, + {0, 0, 0xAE31} /* Korean hangul */, + {0, 0, 0xAE34} /* Korean hangul */, + {0, 0, 0xAE37} /* Korean hangul */, + {0, 0, 0xAE38} /* Korean hangul */, + {0, 0, 0xAE40} /* Korean hangul */, + {0, 0, 0xAE41} /* Korean hangul */, + {0, 0, 0xAE43} /* Korean hangul */, + {0, 0, 0xAE44} /* Korean hangul */, + {0, 0, 0xAE45} /* Korean hangul */, + {0, 0, 0xAE4A} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xAE4C} /* Korean hangul */, + {0, 0, 0xAE4D} /* Korean hangul */, + {0, 0, 0xAE4E} /* Korean hangul */, + {0, 0, 0xAE50} /* Korean hangul */, + {0, 0, 0xAE54} /* Korean hangul */, + {0, 0, 0xAE5C} /* Korean hangul */, + {0, 0, 0xAE5D} /* Korean hangul */, + {0, 0, 0xAE60} /* Korean hangul */, + {0, 0, 0xAE61} /* Korean hangul */, + {0, 0, 0xAE62} /* Korean hangul */, + {0, 0, 0xAE65} /* Korean hangul */, + {0, 0, 0xAE68} /* Korean hangul */, + {0, 0, 0xAE69} /* Korean hangul */, + {0, 0, 0xAE6C} /* Korean hangul */, + {0, 0, 0xAE70} /* Korean hangul */, + {0, 0, 0xAE78} /* Korean hangul */, + {0, 0, 0xAE79} /* Korean hangul */, + {0, 0, 0xAE7B} /* Korean hangul */, + {0, 0, 0xAE7C} /* Korean hangul */, + {0, 0, 0xAE7D} /* Korean hangul */, + {0, 0, 0xAE84} /* Korean hangul */, + {0, 0, 0xAE85} /* Korean hangul */, + {0, 0, 0xAEBC} /* Korean hangul */, + {0, 0, 0xAEBD} /* Korean hangul */, + {0, 0, 0xAEBE} /* Korean hangul */, + {0, 0, 0xAEC0} /* Korean hangul */, + {0, 0, 0xAEC4} /* Korean hangul */, + {0, 0, 0xAECC} /* Korean hangul */, + {0, 0, 0xAECD} /* Korean hangul */, + {0, 0, 0xAECF} /* Korean hangul */, + {0, 0, 0xAED0} /* Korean hangul */, + {0, 0, 0xAED1} /* Korean hangul */, + {0, 0, 0xAED8} /* Korean hangul */, + {0, 0, 0xAEDC} /* Korean hangul */, + {0, 0, 0xAEF4} /* Korean hangul */, + {0, 0, 0xAF0D} /* Korean hangul */, + {0, 0, 0xAF2C} /* Korean hangul */, + {0, 0, 0xAF2D} /* Korean hangul */, + {0, 0, 0xAF30} /* Korean hangul */, + {0, 0, 0xAF34} /* Korean hangul */, + {0, 0, 0xAF3C} /* Korean hangul */, + {0, 0, 0xAF3D} /* Korean hangul */, + {0, 0, 0xAF3F} /* Korean hangul */, + {0, 0, 0xAF41} /* Korean hangul */, + {0, 0, 0xAF42} /* Korean hangul */, + {0, 0, 0xAF43} /* Korean hangul */, + {0, 0, 0xAF48} /* Korean hangul */, + {0, 0, 0xAF49} /* Korean hangul */, + {0, 0, 0xAF4C} /* Korean hangul */, + {0, 0, 0xAF58} /* Korean hangul */, + {0, 0, 0xAF5C} /* Korean hangul */, + {0, 0, 0xAF5D} /* Korean hangul */, + {0, 0, 0xAF64} /* Korean hangul */, + {0, 0, 0xAF65} /* Korean hangul */, + {0, 0, 0xAF79} /* Korean hangul */, + {0, 0, 0xAF80} /* Korean hangul */, + {0, 0, 0xAF84} /* Korean hangul */, + {0, 0, 0xAF88} /* Korean hangul */, + {0, 0, 0xAF90} /* Korean hangul */, + {0, 0, 0xAF95} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page802 = { + 0, marc8_9page802_dir +}; +/* PAGE 801 */ +struct yaz_iconv_trie_dir marc8_9page801_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xAC70} /* Korean hangul */, + {0, 0, 0xAC71} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xAC74} /* Korean hangul */, + {0, 0, 0xAC77} /* Korean hangul */, + {0, 0, 0xAC78} /* Korean hangul */, + {0, 0, 0xAC79} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xAC80} /* Korean hangul */, + {0, 0, 0xAC81} /* Korean hangul */, + {0, 0, 0xAC83} /* Korean hangul */, + {0, 0, 0xAC84} /* Korean hangul */, + {0, 0, 0xAC85} /* Korean hangul */, + {0, 0, 0xAC86} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xAC89} /* Korean hangul */, + {0, 0, 0xAC8A} /* Korean hangul */, + {0, 0, 0xAC8B} /* Korean hangul */, + {0, 0, 0xAC8C} /* Korean hangul */, + {0, 0, 0xAC90} /* Korean hangul */, + {0, 0, 0xAC94} /* Korean hangul */, + {0, 0, 0xAC9C} /* Korean hangul */, + {0, 0, 0xAC9F} /* Korean hangul */, + {0, 0, 0xACA0} /* Korean hangul */, + {0, 0, 0xACA1} /* Korean hangul */, + {0, 0, 0xACA8} /* Korean hangul */, + {0, 0, 0xACA9} /* Korean hangul */, + {0, 0, 0xACAA} /* Korean hangul */, + {0, 0, 0xACAC} /* Korean hangul */, + {0, 0, 0xACAF} /* Korean hangul */, + {0, 0, 0xACB0} /* Korean hangul */, + {0, 0, 0xACB8} /* Korean hangul */, + {0, 0, 0xACB9} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xACBC} /* Korean hangul */, + {0, 0, 0xACBD} /* Korean hangul */, + {0, 0, 0xACC1} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xACC4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xACD7} /* Korean hangul */, + {0, 0, 0xACE0} /* Korean hangul */, + {0, 0, 0xACE1} /* Korean hangul */, + {0, 0, 0xACE4} /* Korean hangul */, + {0, 0, 0xACE7} /* Korean hangul */, + {0, 0, 0xACE8} /* Korean hangul */, + {0, 0, 0xACEA} /* Korean hangul */, + {0, 0, 0xACEC} /* Korean hangul */, + {0, 0, 0xACEF} /* Korean hangul */, + {0, 0, 0xACF0} /* Korean hangul */, + {0, 0, 0xACF1} /* Korean hangul */, + {0, 0, 0xACF3} /* Korean hangul */, + {0, 0, 0xACF5} /* Korean hangul */, + {0, 0, 0xACF6} /* Korean hangul */, + {0, 0, 0xACFA} /* Korean hangul */, + {0, 0, 0xACFC} /* Korean hangul */, + {0, 0, 0xACFD} /* Korean hangul */, + {0, 0, 0xAD00} /* Korean hangul */, + {0, 0, 0xAD04} /* Korean hangul */, + {0, 0, 0xAD0C} /* Korean hangul */, + {0, 0, 0xAD0D} /* Korean hangul */, + {0, 0, 0xAD0F} /* Korean hangul */, + {0, 0, 0xAD11} /* Korean hangul */, + {0, 0, 0xAD18} /* Korean hangul */, + {0, 0, 0xAD19} /* Korean hangul */, + {0, 0, 0xAD1C} /* Korean hangul */, + {0, 0, 0xAD20} /* Korean hangul */, + {0, 0, 0xAD28} /* Korean hangul */, + {0, 0, 0xAD29} /* Korean hangul */, + {0, 0, 0xAD2D} /* Korean hangul */, + {0, 0, 0xAD34} /* Korean hangul */, + {0, 0, 0xAD38} /* Korean hangul */, + {0, 0, 0xAD3C} /* Korean hangul */, + {0, 0, 0xAD44} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xAD49} /* Korean hangul */, + {0, 0, 0xAD50} /* Korean hangul */, + {0, 0, 0xAD6C} /* Korean hangul */, + {0, 0, 0xAD6D} /* Korean hangul */, + {0, 0, 0xAD70} /* Korean hangul */, + {0, 0, 0xAD73} /* Korean hangul */, + {0, 0, 0xAD74} /* Korean hangul */, + {0, 0, 0xAD75} /* Korean hangul */, + {0, 0, 0xAD76} /* Korean hangul */, + {0, 0, 0xAD7C} /* Korean hangul */, + {0, 0, 0xAD7D} /* Korean hangul */, + {0, 0, 0xAD7F} /* Korean hangul */, + {0, 0, 0xAD81} /* Korean hangul */, + {0, 0, 0xAD82} /* Korean hangul */, + {0, 0, 0xAD88} /* Korean hangul */, + {0, 0, 0xAD8C} /* Korean hangul */, + {0, 0, 0xAD90} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0xADA4} /* Korean hangul */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page801 = { + 0, marc8_9page801_dir +}; +/* PAGE 800 */ +struct yaz_iconv_trie_flat marc8_9page800_flat[] = { + {"\x5F", 0, 0xAC00}, /* Korean hangul */ + {"\x60", 0, 0xAC01}, /* Korean hangul */ + {"\x61", 0, 0xAC02}, /* Korean hangul */ + {"\x62", 0, 0xAC04}, /* Korean hangul */ + {"\x63", 0, 0xAC07}, /* Korean hangul */ + {"\x64", 0, 0xAC08}, /* Korean hangul */ + {"\x65", 0, 0xAC09}, /* Korean hangul */ + {"\x66", 0, 0xAC10}, /* Korean hangul */ + {"\x67", 0, 0xAC11}, /* Korean hangul */ + {"\x68", 0, 0xAC12}, /* Korean hangul */ + {"\x69", 0, 0xAC13}, /* Korean hangul */ + {"\x6A", 0, 0xAC14}, /* Korean hangul */ + {"\x6B", 0, 0xAC15}, /* Korean hangul */ + {"\x6C", 0, 0xAC16}, /* Korean hangul */ + {"\x6D", 0, 0xAC17}, /* Korean hangul */ + {"\x6E", 0, 0xAC19}, /* Korean hangul */ + {"\x6F", 0, 0xAC1A}, /* Korean hangul */ + {"\x70", 0, 0xAC1B}, /* Korean hangul */ + {"\x70", 0, 0xAC1B}, /* Korean hangul */ + {"\x71", 0, 0xAC1C}, /* Korean hangul */ + {"\x72", 0, 0xAC1D}, /* Korean hangul */ + {"\x73", 0, 0xAC20}, /* Korean hangul */ + {"\x75", 0, 0xAC24}, /* Korean hangul */ + {"\x76", 0, 0xAC2C}, /* Korean hangul */ + {"\x77", 0, 0xAC2D}, /* Korean hangul */ + {"\x78", 0, 0xAC2F}, /* Korean hangul */ + {"\x79", 0, 0xAC30}, /* Korean hangul */ + {"\x7A", 0, 0xAC31}, /* Korean hangul */ + {"\x7B", 0, 0xAC38}, /* Korean hangul */ + {"\x7C", 0, 0xAC39}, /* Korean hangul */ + {"\x7D", 0, 0xAC40}, /* Korean hangul */ + {"\x7E", 0, 0xAC54}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page800 = { + marc8_9page800_flat, 0 +}; +/* PAGE 799 */ +struct yaz_iconv_trie_flat marc8_9page799_flat[] = { + {"\x21", 0, 0x315C}, /* Korean hangul */ + {"\x25", 0, 0x3160}, /* Korean hangul */ + {"\x26", 0, 0x3161}, /* Korean hangul */ + {"\x27", 0, 0x3162}, /* Korean hangul */ + {"\x28", 0, 0x3163}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page799 = { + marc8_9page799_flat, 0 +}; +/* PAGE 798 */ +struct yaz_iconv_trie_flat marc8_9page798_flat[] = { + {"\x57", 0, 0x3131}, /* Korean hangul */ + {"\x58", 0, 0x3134}, /* Korean hangul */ + {"\x59", 0, 0x3137}, /* Korean hangul */ + {"\x5A", 0, 0x3139}, /* Korean hangul */ + {"\x5B", 0, 0x3141}, /* Korean hangul */ + {"\x5C", 0, 0x3142}, /* Korean hangul */ + {"\x5D", 0, 0x3145}, /* Korean hangul */ + {"\x5E", 0, 0x3147}, /* Korean hangul */ + {"\x5F", 0, 0x3148}, /* Korean hangul */ + {"\x60", 0, 0x314A}, /* Korean hangul */ + {"\x61", 0, 0x314B}, /* Korean hangul */ + {"\x62", 0, 0x314C}, /* Korean hangul */ + {"\x63", 0, 0x314D}, /* Korean hangul */ + {"\x64", 0, 0x314E}, /* Korean hangul */ + {"\x65", 0, 0x3132}, /* Korean hangul */ + {"\x69", 0, 0x3138}, /* Korean hangul */ + {"\x6E", 0, 0x3143}, /* Korean hangul */ + {"\x70", 0, 0x3146}, /* Korean hangul */ + {"\x71", 0, 0x3149}, /* Korean hangul */ + {"\x72", 0, 0x314F}, /* Korean hangul */ + {"\x73", 0, 0x3150}, /* Korean hangul */ + {"\x74", 0, 0x3151}, /* Korean hangul */ + {"\x76", 0, 0x3153}, /* Korean hangul */ + {"\x77", 0, 0x3154}, /* Korean hangul */ + {"\x78", 0, 0x3155}, /* Korean hangul */ + {"\x7A", 0, 0x3157}, /* Korean hangul */ + {"\x7B", 0, 0x3158}, /* Korean hangul */ + {"\x7E", 0, 0x315B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page798 = { + marc8_9page798_flat, 0 +}; +/* PAGE 797 */ +struct yaz_iconv_trie_dir marc8_9page797_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {799, 0, 0}, + {800, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {801, 0, 0}, + {802, 0, 0}, + {803, 0, 0}, + {804, 0, 0}, + {805, 0, 0}, + {806, 0, 0}, + {807, 0, 0}, + {808, 0, 0}, + {809, 0, 0}, + {810, 0, 0}, + {811, 0, 0}, + {812, 0, 0}, + {813, 0, 0}, + {814, 0, 0}, + {815, 0, 0}, + {816, 0, 0}, + {817, 0, 0}, + {818, 0, 0}, + {819, 0, 0}, + {820, 0, 0}, + {821, 0, 0}, + {822, 0, 0}, + {823, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {824, 0, 0}, + {825, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page797 = { + 0, marc8_9page797_dir +}; +/* PAGE 796 */ +struct yaz_iconv_trie_dir marc8_9page796_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x30A1} /* Katakana letter small A */, + {0, 0, 0x30A2} /* Katakana letter A */, + {0, 0, 0x30A3} /* Katakana letter small I */, + {0, 0, 0x30A4} /* Katakana letter I */, + {0, 0, 0x30A5} /* Katakana letter small U */, + {0, 0, 0x30A6} /* Katakana letter U */, + {0, 0, 0x30A7} /* Katakana letter small E */, + {0, 0, 0x30A8} /* Katakana letter E */, + {0, 0, 0x30A9} /* Katakana letter small O */, + {0, 0, 0x30AA} /* Katakana letter O */, + {0, 0, 0x30AB} /* Katakana letter KA */, + {0, 0, 0x30AC} /* Katakana letter GA */, + {0, 0, 0x30AD} /* Katakana letter KI */, + {0, 0, 0x30AE} /* Katakana letter GI */, + {0, 0, 0x30AF} /* Katakana letter KU */, + {0, 0, 0x30B0} /* Katakana letter GU */, + {0, 0, 0x30B1} /* Katakana letter KE */, + {0, 0, 0x30B2} /* Katakana letter GE */, + {0, 0, 0x30B3} /* Katakana letter KO */, + {0, 0, 0x30B4} /* Katakana letter GO */, + {0, 0, 0x30B5} /* Katakana letter SA */, + {0, 0, 0x30B6} /* Katakana letter ZA */, + {0, 0, 0x30B7} /* Katakana letter SI */, + {0, 0, 0x30B8} /* Katakana letter ZI */, + {0, 0, 0x30B9} /* Katakana letter SU */, + {0, 0, 0x30BA} /* Katakana letter ZU */, + {0, 0, 0x30BB} /* Katakana letter SE */, + {0, 0, 0x30BC} /* Katakana letter ZE */, + {0, 0, 0x30BD} /* Katakana letter SO */, + {0, 0, 0x30BE} /* Katakana letter ZO */, + {0, 0, 0x30BF} /* Katakana letter TA */, + {0, 0, 0x30C0} /* Katakana letter DA */, + {0, 0, 0x30C1} /* Katakana letter TI */, + {0, 0, 0x30C2} /* Katakana letter DI */, + {0, 0, 0x30C3} /* Katakana letter small TU */, + {0, 0, 0x30C4} /* Katakana letter TU */, + {0, 0, 0x30C5} /* Katakana letter DU */, + {0, 0, 0x30C6} /* Katakana letter TE */, + {0, 0, 0x30C7} /* Katakana letter DE */, + {0, 0, 0x30C8} /* Katakana letter TO */, + {0, 0, 0x30C9} /* Katakana letter DO */, + {0, 0, 0x30CA} /* Katakana letter NA */, + {0, 0, 0x30CB} /* Katakana letter NI */, + {0, 0, 0x30CC} /* Katakana letter NU */, + {0, 0, 0x30CD} /* Katakana letter NE */, + {0, 0, 0x30CE} /* Katakana letter NO */, + {0, 0, 0x30CF} /* Katakana letter HA */, + {0, 0, 0x30D0} /* Katakana letter BA */, + {0, 0, 0x30D1} /* Katakana letter PA */, + {0, 0, 0x30D2} /* Katakana letter HI */, + {0, 0, 0x30D3} /* Katakana letter BI */, + {0, 0, 0x30D4} /* Katakana letter PI */, + {0, 0, 0x30D5} /* Katakana letter HU */, + {0, 0, 0x30D6} /* Katakana letter BU */, + {0, 0, 0x30D7} /* Katakana letter PU */, + {0, 0, 0x30D8} /* Katakana letter HE */, + {0, 0, 0x30D9} /* Katakana letter BE */, + {0, 0, 0x30DA} /* Katakana letter PE */, + {0, 0, 0x30DB} /* Katakana letter HO */, + {0, 0, 0x30DC} /* Katakana letter BO */, + {0, 0, 0x30DD} /* Katakana letter PO */, + {0, 0, 0x30DE} /* Katakana letter MA */, + {0, 0, 0x30DF} /* Katakana letter MI */, + {0, 0, 0x30E0} /* Katakana letter MU */, + {0, 0, 0x30E1} /* Katakana letter ME */, + {0, 0, 0x30E2} /* Katakana letter MO */, + {0, 0, 0x30E3} /* Katakana letter small YA */, + {0, 0, 0x30E4} /* Katakana letter YA */, + {0, 0, 0x30E5} /* Katakana letter small YU */, + {0, 0, 0x30E6} /* Katakana letter YU */, + {0, 0, 0x30E7} /* Katakana letter small YO */, + {0, 0, 0x30E8} /* Katakana letter YO */, + {0, 0, 0x30E9} /* Katakana letter RA */, + {0, 0, 0x30EA} /* Katakana letter RI */, + {0, 0, 0x30EB} /* Katakana letter RU */, + {0, 0, 0x30EC} /* Katakana letter RE */, + {0, 0, 0x30ED} /* Katakana letter RO */, + {0, 0, 0x30EE} /* Katakana letter small WA */, + {0, 0, 0x30EF} /* Katakana letter WA */, + {0, 0, 0x30F0} /* Katakana letter WI */, + {0, 0, 0x30F1} /* Katakana letter WE */, + {0, 0, 0x30F2} /* Katakana letter WO */, + {0, 0, 0x30F3} /* Katakana letter N */, + {0, 0, 0x30F4} /* Katakana letter VU */, + {0, 0, 0x30F5} /* Katakana letter small KA */, + {0, 0, 0x30F6} /* Katakana letter small KE */, + {0, 0, 0x309B} /* Katakana-hiragana voiced sound mark */, + {0, 0, 0x309C} /* Katakana-hiragana semi-voiced sound mark */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page796 = { + 0, marc8_9page796_dir +}; +/* PAGE 795 */ +struct yaz_iconv_trie_dir marc8_9page795_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x3041} /* Hiragana letter small A */, + {0, 0, 0x3042} /* Hiragana letter A */, + {0, 0, 0x3043} /* Hiragana letter small I */, + {0, 0, 0x3044} /* Hiragana letter I */, + {0, 0, 0x3045} /* Hiragana letter small U */, + {0, 0, 0x3046} /* Hiragana letter U */, + {0, 0, 0x3047} /* Hiragana letter small E */, + {0, 0, 0x3048} /* Hiragana letter E */, + {0, 0, 0x3049} /* Hiragana letter small O */, + {0, 0, 0x304A} /* Hiragana letter O */, + {0, 0, 0x304B} /* Hiragana letter KA */, + {0, 0, 0x304C} /* Hiragana letter GA */, + {0, 0, 0x304D} /* Hiragana letter KI */, + {0, 0, 0x304E} /* Hiragana letter GI */, + {0, 0, 0x304F} /* Hiragana letter KU */, + {0, 0, 0x3050} /* Hiragana letter GU */, + {0, 0, 0x3051} /* Hiragana letter KE */, + {0, 0, 0x3052} /* Hiragana letter GE */, + {0, 0, 0x3053} /* Hiragana letter KO */, + {0, 0, 0x3054} /* Hiragana letter GO */, + {0, 0, 0x3055} /* Hiragana letter SA */, + {0, 0, 0x3056} /* Hiragana letter ZA */, + {0, 0, 0x3057} /* Hiragana letter SI */, + {0, 0, 0x3058} /* Hiragana letter ZI */, + {0, 0, 0x3059} /* Hiragana letter SU */, + {0, 0, 0x305A} /* Hiragana letter ZU */, + {0, 0, 0x305B} /* Hiragana letter SE */, + {0, 0, 0x305C} /* Hiragana letter ZE */, + {0, 0, 0x305D} /* Hiragana letter SO */, + {0, 0, 0x305E} /* Hiragana letter ZO */, + {0, 0, 0x305F} /* Hiragana letter TA */, + {0, 0, 0x3060} /* Hiragana letter DA */, + {0, 0, 0x3061} /* Hiragana letter TI */, + {0, 0, 0x3062} /* Hiragana letter DI */, + {0, 0, 0x3063} /* Hiragana letter small TU */, + {0, 0, 0x3064} /* Hiragana letter TU */, + {0, 0, 0x3065} /* Hiragana letter DU */, + {0, 0, 0x3066} /* Hiragana letter TE */, + {0, 0, 0x3067} /* Hiragana letter DE */, + {0, 0, 0x3068} /* Hiragana letter TO */, + {0, 0, 0x3069} /* Hiragana letter DO */, + {0, 0, 0x306A} /* Hiragana letter NA */, + {0, 0, 0x306B} /* Hiragana letter NI */, + {0, 0, 0x306C} /* Hiragana letter NU */, + {0, 0, 0x306D} /* Hiragana letter NE */, + {0, 0, 0x306E} /* Hiragana letter NO */, + {0, 0, 0x306F} /* Hiragana letter HA */, + {0, 0, 0x3070} /* Hiragana letter BA */, + {0, 0, 0x3071} /* Hiragana letter PA */, + {0, 0, 0x3072} /* Hiragana letter HI */, + {0, 0, 0x3073} /* Hiragana letter BI */, + {0, 0, 0x3074} /* Hiragana letter PI */, + {0, 0, 0x3075} /* Hiragana letter HU */, + {0, 0, 0x3076} /* Hiragana letter BU */, + {0, 0, 0x3077} /* Hiragana letter PU */, + {0, 0, 0x3078} /* Hiragana letter HE */, + {0, 0, 0x3079} /* Hiragana letter BE */, + {0, 0, 0x307A} /* Hiragana letter PE */, + {0, 0, 0x307B} /* Hiragana letter HO */, + {0, 0, 0x307C} /* Hiragana letter BO */, + {0, 0, 0x307D} /* Hiragana letter PO */, + {0, 0, 0x307E} /* Hiragana letter MA */, + {0, 0, 0x307F} /* Hiragana letter MI */, + {0, 0, 0x3080} /* Hiragana letter MU */, + {0, 0, 0x3081} /* Hiragana letter ME */, + {0, 0, 0x3082} /* Hiragana letter MO */, + {0, 0, 0x3083} /* Hiragana letter small YA */, + {0, 0, 0x3084} /* Hiragana letter YA */, + {0, 0, 0x3085} /* Hiragana letter small YU */, + {0, 0, 0x3086} /* Hiragana letter YU */, + {0, 0, 0x3087} /* Hiragana letter small YO */, + {0, 0, 0x3088} /* Hiragana letter YO */, + {0, 0, 0x3089} /* Hiragana letter RA */, + {0, 0, 0x308A} /* Hiragana letter RI */, + {0, 0, 0x308B} /* Hiragana letter RU */, + {0, 0, 0x308C} /* Hiragana letter RE */, + {0, 0, 0x308D} /* Hiragana letter RO */, + {0, 0, 0x308E} /* Hiragana letter small WA */, + {0, 0, 0x308F} /* Hiragana letter WA */, + {0, 0, 0x3090} /* Hiragana letter WI */, + {0, 0, 0x3091} /* Hiragana letter WE */, + {0, 0, 0x3092} /* Hiragana letter WO */, + {0, 0, 0x3093} /* Hiragana letter N */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page795 = { + 0, marc8_9page795_dir +}; +/* PAGE 794 */ +struct yaz_iconv_trie_flat marc8_9page794_flat[] = { + {"\x3C", 0, 0x30FC}, /* Vowel elongation mark for kana */ + {"\x26", 0, 0x30FB}, /* Ideographic centered point */ + {"\x39", 0, 0x3005}, /* Ideographic iteration mark */ + {"\x52", 0, 0x3008}, /* Ideographic less than sign */ + {"\x53", 0, 0x3009}, /* Ideographic greater than sign */ + {"\x54", 0, 0x300A}, /* Ideographic left double angle bracket */ + {"\x55", 0, 0x300B}, /* Ideographic right double angle bracket */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page794 = { + marc8_9page794_flat, 0 +}; +/* PAGE 793 */ +struct yaz_iconv_trie_flat marc8_9page793_flat[] = { + {"\x4C\x2A", 0, 0x915E}, /* East Asian ideograph */ + {"\x58\x6F", 0, 0x4EEB}, /* East Asian ideograph */ + {"\x5B\x71", 0, 0x57B4}, /* East Asian ideograph */ + {"\x5C\x43", 0, 0x82CA}, /* East Asian ideograph */ + {"\x5C\x50", 0, 0x82C4}, /* East Asian ideograph */ + {"\x5D\x46", 0, 0x841C}, /* East Asian ideograph */ + {"\x5D\x5C", 0, 0x8488}, /* East Asian ideograph */ + {"\x5F\x30", 0, 0x7519}, /* East Asian ideograph */ + {"\x5F\x39", 0, 0x5416}, /* East Asian ideograph */ + {"\x5F\x50", 0, 0x549D}, /* East Asian ideograph */ + {"\x5F\x51", 0, 0x54D0}, /* East Asian ideograph */ + {"\x5F\x54", 0, 0x54B4}, /* East Asian ideograph */ + {"\x5F\x5B", 0, 0x54A3}, /* East Asian ideograph */ + {"\x5F\x61", 0, 0x54DA}, /* East Asian ideograph */ + {"\x60\x2D", 0, 0x55B9}, /* East Asian ideograph */ + {"\x60\x3A", 0, 0x55EA}, /* East Asian ideograph */ + {"\x60\x4C", 0, 0x55F5}, /* East Asian ideograph */ + {"\x60\x54", 0, 0x5623}, /* East Asian ideograph */ + {"\x60\x58", 0, 0x562D}, /* East Asian ideograph */ + {"\x60\x67", 0, 0x567B}, /* East Asian ideograph */ + {"\x61\x31", 0, 0x5C9C}, /* East Asian ideograph */ + {"\x62\x2A", 0, 0x7339}, /* East Asian ideograph */ + {"\x62\x47", 0, 0x9987}, /* East Asian ideograph */ + {"\x62\x4E", 0, 0x9995}, /* East Asian ideograph */ + {"\x63\x40", 0, 0x61B7}, /* East Asian ideograph */ + {"\x66\x40", 0, 0x80EC}, /* East Asian ideograph */ + {"\x6B\x42", 0, 0x80BC}, /* East Asian ideograph */ + {"\x6B\x44", 0, 0x80BD}, /* East Asian ideograph */ + {"\x6B\x4C", 0, 0x80E9}, /* East Asian ideograph */ + {"\x6B\x5B", 0, 0x810E}, /* East Asian ideograph */ + {"\x6B\x5F", 0, 0x8112}, /* East Asian ideograph */ + {"\x6B\x6A", 0, 0x8159}, /* East Asian ideograph */ + {"\x6C\x42", 0, 0x70BB}, /* East Asian ideograph */ + {"\x6C\x43", 0, 0x70C0}, /* East Asian ideograph */ + {"\x6D\x3B", 0, 0x7818}, /* East Asian ideograph */ + {"\x6D\x3F", 0, 0x781C}, /* East Asian ideograph */ + {"\x6D\x45", 0, 0x783C}, /* East Asian ideograph */ + {"\x72\x7D", 0, 0x87A8}, /* East Asian ideograph */ + {"\x73\x60", 0, 0x7B7B}, /* East Asian ideograph */ + {"\x73\x6E", 0, 0x7BA2}, /* East Asian ideograph */ + {"\x74\x38", 0, 0x823E}, /* East Asian ideograph */ + {"\x75\x23", 0, 0x9170}, /* East Asian ideograph */ + {"\x75\x5D", 0, 0x8E3A}, /* East Asian ideograph */ + {"\x77\x5D", 0, 0x9B0F}, /* East Asian ideograph */ + {"\x77\x71", 0, 0x9EE2}, /* East Asian ideograph (Version J extension) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page793 = { + marc8_9page793_flat, 0 +}; +/* PAGE 792 */ +struct yaz_iconv_trie_flat marc8_9page792_flat[] = { + {"\x23", 0, 0x9D64}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page792 = { + marc8_9page792_flat, 0 +}; +/* PAGE 791 */ +struct yaz_iconv_trie_flat marc8_9page791_flat[] = { + {"\x3B", 0, 0x9B96}, /* East Asian ideograph */ + {"\x40", 0, 0x9BB4}, /* East Asian ideograph */ + {"\x45", 0, 0x9BCF}, /* East Asian ideograph */ + {"\x46", 0, 0x9BD1}, /* East Asian ideograph */ + {"\x4E", 0, 0x9BF2}, /* East Asian ideograph */ + {"\x60", 0, 0x9C30}, /* East Asian ideograph */ + {"\x65", 0, 0x9C5A}, /* East Asian ideograph */ + {"\x7E", 0, 0x9D48}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page791 = { + marc8_9page791_flat, 0 +}; +/* PAGE 790 */ +struct yaz_iconv_trie_flat marc8_9page790_flat[] = { + {"\x24", 0, 0x98AA}, /* East Asian ideograph */ + {"\x52", 0, 0x99F2}, /* East Asian ideograph */ + {"\x74", 0, 0x9ADE}, /* East Asian ideograph */ + {"\x7D", 0, 0x9AF1}, /* East Asian ideograph */ + {"\x7E", 0, 0x9AF7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page790 = { + marc8_9page790_flat, 0 +}; +/* PAGE 789 */ +struct yaz_iconv_trie_flat marc8_9page789_flat[] = { + {"\x23", 0, 0x9666}, /* East Asian ideograph */ + {"\x58", 0, 0x9779}, /* East Asian ideograph */ + {"\x5D", 0, 0x9786}, /* East Asian ideograph */ + {"\x60", 0, 0x9790}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page789 = { + marc8_9page789_flat, 0 +}; +/* PAGE 788 */ +struct yaz_iconv_trie_flat marc8_9page788_flat[] = { + {"\x27", 0, 0x933B}, /* East Asian ideograph */ + {"\x5B", 0, 0x958A}, /* East Asian ideograph */ + {"\x5D", 0, 0x9596}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page788 = { + marc8_9page788_flat, 0 +}; +/* PAGE 787 */ +struct yaz_iconv_trie_flat marc8_9page787_flat[] = { + {"\x28", 0, 0x9056}, /* East Asian ideograph */ + {"\x5C", 0, 0x91DF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page787 = { + marc8_9page787_flat, 0 +}; +/* PAGE 786 */ +struct yaz_iconv_trie_flat marc8_9page786_flat[] = { + {"\x3F", 0, 0x8EBE}, /* East Asian ideograph */ + {"\x40", 0, 0x8EC5}, /* East Asian ideograph */ + {"\x41", 0, 0x8EC8}, /* East Asian ideograph */ + {"\x5A", 0, 0x8F4C}, /* East Asian ideograph */ + {"\x7A", 0, 0x9027}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page786 = { + marc8_9page786_flat, 0 +}; +/* PAGE 785 */ +struct yaz_iconv_trie_flat marc8_9page785_flat[] = { + {"\x27", 0, 0x8977}, /* East Asian ideograph */ + {"\x5C", 0, 0x8ADA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page785 = { + marc8_9page785_flat, 0 +}; +/* PAGE 784 */ +struct yaz_iconv_trie_flat marc8_9page784_flat[] = { + {"\x2C", 0, 0x87D0}, /* East Asian ideograph */ + {"\x5E", 0, 0x88B0}, /* East Asian ideograph */ + {"\x61", 0, 0x88C3}, /* East Asian ideograph */ + {"\x6D", 0, 0x8904}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page784 = { + marc8_9page784_flat, 0 +}; +/* PAGE 783 */ +struct yaz_iconv_trie_flat marc8_9page783_flat[] = { + {"\x46", 0, 0x8630}, /* East Asian ideograph */ + {"\x5B", 0, 0x86AB}, /* East Asian ideograph */ + {"\x62", 0, 0x86EF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page783 = { + marc8_9page783_flat, 0 +}; +/* PAGE 782 */ +struct yaz_iconv_trie_flat marc8_9page782_flat[] = { + {"\x4D", 0, 0x8422}, /* East Asian ideograph */ + {"\x68", 0, 0x84D9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page782 = { + marc8_9page782_flat, 0 +}; +/* PAGE 781 */ +struct yaz_iconv_trie_flat marc8_9page781_flat[] = { + {"\x33", 0, 0x81A4}, /* East Asian ideograph */ + {"\x5C", 0, 0x825D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page781 = { + marc8_9page781_flat, 0 +}; +/* PAGE 780 */ +struct yaz_iconv_trie_flat marc8_9page780_flat[] = { + {"\x4F", 0, 0x7E05}, /* East Asian ideograph */ + {"\x6D", 0, 0x7E83}, /* East Asian ideograph */ + {"\x6E", 0, 0x7DD5}, /* East Asian ideograph */ + {"\x76", 0, 0x7E90}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page780 = { + marc8_9page780_flat, 0 +}; +/* PAGE 779 */ +struct yaz_iconv_trie_flat marc8_9page779_flat[] = { + {"\x49", 0, 0x7C13}, /* East Asian ideograph */ + {"\x4C", 0, 0x7C17}, /* East Asian ideograph */ + {"\x4E", 0, 0x7BF6}, /* East Asian ideograph */ + {"\x64", 0, 0x7C90}, /* East Asian ideograph */ + {"\x66", 0, 0x7CAD}, /* East Asian ideograph */ + {"\x71", 0, 0x7CC0}, /* East Asian ideograph */ + {"\x74", 0, 0x7CD8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page779 = { + marc8_9page779_flat, 0 +}; +/* PAGE 778 */ +struct yaz_iconv_trie_flat marc8_9page778_flat[] = { + {"\x25", 0, 0x7907}, /* East Asian ideograph */ + {"\x4E", 0, 0x7A43}, /* East Asian ideograph */ + {"\x73", 0, 0x7B02}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page778 = { + marc8_9page778_flat, 0 +}; +/* PAGE 777 */ +struct yaz_iconv_trie_flat marc8_9page777_flat[] = { + {"\x6D", 0, 0x7874}, /* East Asian ideograph */ + {"\x73", 0, 0x78B5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page777 = { + marc8_9page777_flat, 0 +}; +/* PAGE 776 */ +struct yaz_iconv_trie_flat marc8_9page776_flat[] = { + {"\x26", 0, 0x74F2}, /* East Asian ideograph */ + {"\x36", 0, 0x753C}, /* East Asian ideograph */ + {"\x3A", 0, 0x7549}, /* East Asian ideograph */ + {"\x3E", 0, 0x7569}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page776 = { + marc8_9page776_flat, 0 +}; +/* PAGE 775 */ +struct yaz_iconv_trie_flat marc8_9page775_flat[] = { + {"\x70", 0, 0x7195}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page775 = { + marc8_9page775_flat, 0 +}; +/* PAGE 774 */ +struct yaz_iconv_trie_flat marc8_9page774_flat[] = { + {"\x63", 0, 0x6E82}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page774 = { + marc8_9page774_flat, 0 +}; +/* PAGE 773 */ +struct yaz_iconv_trie_flat marc8_9page773_flat[] = { + {"\x36", 0, 0x6B1F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page773 = { + marc8_9page773_flat, 0 +}; +/* PAGE 772 */ +struct yaz_iconv_trie_flat marc8_9page772_flat[] = { + {"\x29", 0, 0x6925}, /* East Asian ideograph */ + {"\x2D", 0, 0x6928}, /* East Asian ideograph */ + {"\x30", 0, 0x6923}, /* East Asian ideograph */ + {"\x30", 0, 0x6923}, /* East Asian ideograph */ + {"\x31", 0, 0x6921}, /* East Asian ideograph */ + {"\x39", 0, 0x697E}, /* East Asian ideograph */ + {"\x43", 0, 0x6981}, /* East Asian ideograph */ + {"\x4F", 0, 0x69DD}, /* East Asian ideograph */ + {"\x53", 0, 0x6A2E}, /* East Asian ideograph */ + {"\x71", 0, 0x6A78}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page772 = { + marc8_9page772_flat, 0 +}; +/* PAGE 771 */ +struct yaz_iconv_trie_flat marc8_9page771_flat[] = { + {"\x37", 0, 0x6737}, /* East Asian ideograph */ + {"\x7B", 0, 0x6926}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page771 = { + marc8_9page771_flat, 0 +}; +/* PAGE 770 */ +struct yaz_iconv_trie_flat marc8_9page770_flat[] = { + {"\x31", 0, 0x64F6}, /* East Asian ideograph */ + {"\x73", 0, 0x6683}, /* East Asian ideograph */ + {"\x7E", 0, 0x66BC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page770 = { + marc8_9page770_flat, 0 +}; +/* PAGE 769 */ +struct yaz_iconv_trie_flat marc8_9page769_flat[] = { + {"\x4B", 0, 0x6327}, /* East Asian ideograph */ + {"\x5E", 0, 0x63B5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page769 = { + marc8_9page769_flat, 0 +}; +/* PAGE 768 */ +struct yaz_iconv_trie_flat marc8_9page768_flat[] = { + {"\x37", 0, 0x5F16}, /* East Asian ideograph */ + {"\x3B", 0, 0x5F41}, /* East Asian ideograph */ + {"\x6A", 0, 0x603A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page768 = { + marc8_9page768_flat, 0 +}; +/* PAGE 767 */ +struct yaz_iconv_trie_flat marc8_9page767_flat[] = { + {"\x26", 0, 0x4E62}, /* East Asian ideograph */ + {"\x2C", 0, 0x599B}, /* East Asian ideograph */ + {"\x2E", 0, 0x5CBB}, /* East Asian ideograph */ + {"\x30", 0, 0x5CBC}, /* East Asian ideograph */ + {"\x32", 0, 0x5CC5}, /* East Asian ideograph */ + {"\x33", 0, 0x5CBE}, /* East Asian ideograph */ + {"\x4E", 0, 0x5D76}, /* East Asian ideograph */ + {"\x57", 0, 0x5D90}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page767 = { + marc8_9page767_flat, 0 +}; +/* PAGE 766 */ +struct yaz_iconv_trie_flat marc8_9page766_flat[] = { + {"\x4E", 0, 0x5B36}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page766 = { + marc8_9page766_flat, 0 +}; +/* PAGE 765 */ +struct yaz_iconv_trie_flat marc8_9page765_flat[] = { + {"\x29", 0, 0x5726}, /* East Asian ideograph */ + {"\x2A", 0, 0x5737}, /* East Asian ideograph */ + {"\x38", 0, 0x57B3}, /* East Asian ideograph */ + {"\x3A", 0, 0x57AA}, /* East Asian ideograph */ + {"\x3B", 0, 0x57B0}, /* East Asian ideograph */ + {"\x42", 0, 0x57D6}, /* East Asian ideograph */ + {"\x4B", 0, 0x5870}, /* East Asian ideograph */ + {"\x51", 0, 0x58B9}, /* East Asian ideograph */ + {"\x57", 0, 0x58B8}, /* East Asian ideograph */ + {"\x5C", 0, 0x58D7}, /* East Asian ideograph */ + {"\x5F", 0, 0x58E5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page765 = { + marc8_9page765_flat, 0 +}; +/* PAGE 764 */ +struct yaz_iconv_trie_flat marc8_9page764_flat[] = { + {"\x26", 0, 0x54D8}, /* East Asian ideograph */ + {"\x3B", 0, 0x555D}, /* East Asian ideograph */ + {"\x75", 0, 0x56CE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page764 = { + marc8_9page764_flat, 0 +}; +/* PAGE 763 */ +struct yaz_iconv_trie_flat marc8_9page763_flat[] = { + {"\x5D", 0, 0x53FA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page763 = { + marc8_9page763_flat, 0 +}; +/* PAGE 762 */ +struct yaz_iconv_trie_flat marc8_9page762_flat[] = { + {"\x30", 0, 0x5116}, /* East Asian ideograph */ + {"\x5E", 0, 0x51E9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page762 = { + marc8_9page762_flat, 0 +}; +/* PAGE 761 */ +struct yaz_iconv_trie_flat marc8_9page761_flat[] = { + {"\x5D", 0, 0x6762}, /* East Asian ideograph */ + {"\x68", 0, 0x5301}, /* East Asian ideograph */ + {"\x7A", 0, 0x9453}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page761 = { + marc8_9page761_flat, 0 +}; +/* PAGE 760 */ +struct yaz_iconv_trie_flat marc8_9page760_flat[] = { + {"\x7B", 0, 0x9EBF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page760 = { + marc8_9page760_flat, 0 +}; +/* PAGE 759 */ +struct yaz_iconv_trie_flat marc8_9page759_flat[] = { + {"\x23", 0, 0x7872}, /* East Asian ideograph */ + {"\x2B", 0, 0x7560}, /* East Asian ideograph */ + {"\x38", 0, 0x567A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page759 = { + marc8_9page759_flat, 0 +}; +/* PAGE 758 */ +struct yaz_iconv_trie_flat marc8_9page758_flat[] = { + {"\x64", 0, 0x51EA}, /* East Asian ideograph */ + {"\x77", 0, 0x5302}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page758 = { + marc8_9page758_flat, 0 +}; +/* PAGE 757 */ +struct yaz_iconv_trie_flat marc8_9page757_flat[] = { + {"\x32", 0, 0x9D2B}, /* East Asian ideograph */ + {"\x36", 0, 0x96EB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page757 = { + marc8_9page757_flat, 0 +}; +/* PAGE 756 */ +struct yaz_iconv_trie_flat marc8_9page756_flat[] = { + {"\x29", 0, 0x7C82}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page756 = { + marc8_9page756_flat, 0 +}; +/* PAGE 755 */ +struct yaz_iconv_trie_dir marc8_9page755_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {795, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {796, 0, 0}, + {797, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {757, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {758, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {759, 0, 0}, + {0, 0, 0}, + {760, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {761, 0, 0}, + {762, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {763, 0, 0}, + {764, 0, 0}, + {765, 0, 0}, + {766, 0, 0}, + {767, 0, 0}, + {768, 0, 0}, + {769, 0, 0}, + {0, 0, 0}, + {770, 0, 0}, + {771, 0, 0}, + {772, 0, 0}, + {773, 0, 0}, + {774, 0, 0}, + {775, 0, 0}, + {776, 0, 0}, + {0, 0, 0}, + {777, 0, 0}, + {778, 0, 0}, + {779, 0, 0}, + {780, 0, 0}, + {781, 0, 0}, + {0, 0, 0}, + {782, 0, 0}, + {783, 0, 0}, + {784, 0, 0}, + {785, 0, 0}, + {786, 0, 0}, + {0, 0, 0}, + {787, 0, 0}, + {788, 0, 0}, + {789, 0, 0}, + {790, 0, 0}, + {791, 0, 0}, + {792, 0, 0}, + {793, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page755 = { + 0, marc8_9page755_dir +}; +/* PAGE 754 */ +struct yaz_iconv_trie_flat marc8_9page754_flat[] = { + {"\x73\x5D", 0, 0x7E8A}, /* East Asian ideograph (variant of EACC 22735D) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page754 = { + marc8_9page754_flat, 0 +}; +/* PAGE 753 */ +struct yaz_iconv_trie_flat marc8_9page753_flat[] = { + {"\x30\x51", 0, 0x8CAE}, /* East Asian ideograph */ + {"\x30\x57", 0, 0x4E98}, /* East Asian ideograph */ + {"\x34\x21", 0, 0x91D6}, /* East Asian ideograph */ + {"\x35\x6A", 0, 0x8BC3}, /* East Asian ideograph */ + {"\x38\x4D", 0, 0x51C3}, /* East Asian ideograph */ + {"\x3A\x47", 0, 0x8885}, /* East Asian ideograph */ + {"\x3B\x52", 0, 0x6C3D}, /* East Asian ideograph */ + {"\x3D\x67", 0, 0x8FF3}, /* East Asian ideograph */ + {"\x45\x6D", 0, 0x822E}, /* East Asian ideograph */ + {"\x49\x6B", 0, 0x852B}, /* East Asian ideograph */ + {"\x4E\x5B", 0, 0x9271}, /* East Asian ideograph */ + {"\x51\x3B", 0, 0x7E9F}, /* East Asian ideograph */ + {"\x56\x3F", 0, 0x8616}, /* East Asian ideograph */ + {"\x5E\x5D", 0, 0x9616}, /* East Asian ideograph */ + {"\x61\x22", 0, 0x9988}, /* East Asian ideograph */ + {"\x6A\x26", 0, 0x51B4}, /* East Asian ideograph */ + {"\x79\x54", 0, 0x734E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page753 = { + marc8_9page753_flat, 0 +}; +/* PAGE 752 */ +struct yaz_iconv_trie_flat marc8_9page752_flat[] = { + {"\x22\x2A", 0, 0x83B5}, /* East Asian ideograph */ + {"\x29\x25", 0, 0x8770}, /* East Asian ideograph */ + {"\x29\x62", 0, 0x86C9}, /* East Asian ideograph (variant of EACC 232962) */ + {"\x2C\x3C", 0, 0x87E5}, /* East Asian ideograph */ + {"\x2D\x75", 0, 0x8872}, /* East Asian ideograph (variant of EACC 232D75) */ + {"\x2F\x5D", 0, 0x8941}, /* East Asian ideograph (variant of EACC 232F5D) */ + {"\x2F\x73", 0, 0x7E5D}, /* East Asian ideograph */ + {"\x2F\x7A", 0, 0x891D}, /* East Asian ideograph */ + {"\x30\x32", 0, 0x88AE}, /* East Asian ideograph */ + {"\x33\x59", 0, 0x56AF}, /* East Asian ideograph */ + {"\x33\x63", 0, 0x8C25}, /* East Asian ideograph */ + {"\x38\x6F", 0, 0x544B}, /* East Asian ideograph */ + {"\x3C\x6C", 0, 0x8FB6}, /* East Asian ideograph */ + {"\x41\x34", 0, 0x919B}, /* East Asian ideograph */ + {"\x41\x76", 0, 0x91DB}, /* East Asian ideograph */ + {"\x44\x5B", 0, 0x9306}, /* East Asian ideograph (variant of EACC 23445B) */ + {"\x44\x6B", 0, 0x954E}, /* East Asian ideograph */ + {"\x47\x2C", 0, 0x952A}, /* East Asian ideograph */ + {"\x47\x54", 0, 0x9544}, /* East Asian ideograph */ + {"\x47\x7B", 0, 0x943E}, /* East Asian ideograph */ + {"\x48\x32", 0, 0x953F}, /* East Asian ideograph */ + {"\x48\x35", 0, 0x954C}, /* East Asian ideograph */ + {"\x48\x62", 0, 0x9229}, /* East Asian ideograph */ + {"\x4A\x6C", 0, 0x9667}, /* East Asian ideograph */ + {"\x4D\x61", 0, 0x7EF1}, /* East Asian ideograph */ + {"\x4F\x39", 0, 0x988C}, /* East Asian ideograph */ + {"\x50\x3A", 0, 0x98D1}, /* East Asian ideograph */ + {"\x50\x53", 0, 0x98DA}, /* East Asian ideograph */ + {"\x51\x54", 0, 0x9942}, /* East Asian ideograph */ + {"\x55\x74", 0, 0x9B2E}, /* East Asian ideograph */ + {"\x58\x58", 0, 0x9BE3}, /* East Asian ideograph */ + {"\x58\x75", 0, 0x9CD0}, /* East Asian ideograph */ + {"\x59\x34", 0, 0x9CA6}, /* East Asian ideograph */ + {"\x59\x4E", 0, 0x9BF5}, /* East Asian ideograph */ + {"\x59\x73", 0, 0x51EB}, /* East Asian ideograph */ + {"\x5A\x6C", 0, 0x9D46}, /* East Asian ideograph */ + {"\x5B\x35", 0, 0x9DAB}, /* East Asian ideograph */ + {"\x5B\x7E", 0, 0x9DC6}, /* East Asian ideograph */ + {"\x5C\x6B", 0, 0x9D50}, /* East Asian ideograph */ + {"\x5D\x49", 0, 0x9E81}, /* East Asian ideograph */ + {"\x5F\x70", 0, 0x9F44}, /* East Asian ideograph */ + {"\x5F\x7B", 0, 0x97F2}, /* East Asian ideograph */ + {"\x60\x47", 0, 0x816D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page752 = { + marc8_9page752_flat, 0 +}; +/* PAGE 751 */ +struct yaz_iconv_trie_flat marc8_9page751_flat[] = { + {"\x4D", 0, 0x8343}, /* East Asian ideograph */ + {"\x6A", 0, 0x8323}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page751 = { + marc8_9page751_flat, 0 +}; +/* PAGE 750 */ +struct yaz_iconv_trie_flat marc8_9page750_flat[] = { + {"\x45", 0, 0x82AE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page750 = { + marc8_9page750_flat, 0 +}; +/* PAGE 749 */ +struct yaz_iconv_trie_flat marc8_9page749_flat[] = { + {"\x4E", 0, 0x80B7}, /* East Asian ideograph */ + {"\x59", 0, 0x817D}, /* East Asian ideograph */ + {"\x6B", 0, 0x815F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page749 = { + marc8_9page749_flat, 0 +}; +/* PAGE 748 */ +struct yaz_iconv_trie_flat marc8_9page748_flat[] = { + {"\x28", 0, 0x5FAD}, /* East Asian ideograph (variant of EACC 2E7328) */ + {"\x5D", 0, 0x7D4B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page748 = { + marc8_9page748_flat, 0 +}; +/* PAGE 747 */ +struct yaz_iconv_trie_flat marc8_9page747_flat[] = { + {"\x5D", 0, 0x7A39}, /* East Asian ideograph */ + {"\x65", 0, 0x7DFC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page747 = { + marc8_9page747_flat, 0 +}; +/* PAGE 746 */ +struct yaz_iconv_trie_flat marc8_9page746_flat[] = { + {"\x5A", 0, 0x7EE6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page746 = { + marc8_9page746_flat, 0 +}; +/* PAGE 745 */ +struct yaz_iconv_trie_flat marc8_9page745_flat[] = { + {"\x43", 0, 0x7CCD}, /* East Asian ideograph */ + {"\x7B", 0, 0x7CE8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page745 = { + marc8_9page745_flat, 0 +}; +/* PAGE 744 */ +struct yaz_iconv_trie_flat marc8_9page744_flat[] = { + {"\x42", 0, 0x7C31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page744 = { + marc8_9page744_flat, 0 +}; +/* PAGE 743 */ +struct yaz_iconv_trie_flat marc8_9page743_flat[] = { + {"\x46", 0, 0x7B9F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page743 = { + marc8_9page743_flat, 0 +}; +/* PAGE 742 */ +struct yaz_iconv_trie_flat marc8_9page742_flat[] = { + {"\x62", 0, 0x7B4C}, /* East Asian ideograph (variant of EACC 226B62) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page742 = { + marc8_9page742_flat, 0 +}; +/* PAGE 741 */ +struct yaz_iconv_trie_flat marc8_9page741_flat[] = { + {"\x5C", 0, 0x7A06}, /* East Asian ideograph */ + {"\x5F", 0, 0x7A63}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page741 = { + marc8_9page741_flat, 0 +}; +/* PAGE 740 */ +struct yaz_iconv_trie_flat marc8_9page740_flat[] = { + {"\x3E", 0, 0x79EB}, /* East Asian ideograph */ + {"\x3E", 0, 0x79EB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page740 = { + marc8_9page740_flat, 0 +}; +/* PAGE 739 */ +struct yaz_iconv_trie_flat marc8_9page739_flat[] = { + {"\x75", 0, 0x7962}, /* East Asian ideograph (unrelated variant of EACC 293032) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page739 = { + marc8_9page739_flat, 0 +}; +/* PAGE 738 */ +struct yaz_iconv_trie_flat marc8_9page738_flat[] = { + {"\x64", 0, 0x78D9}, /* East Asian ideograph */ + {"\x65", 0, 0x78B9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page738 = { + marc8_9page738_flat, 0 +}; +/* PAGE 737 */ +struct yaz_iconv_trie_flat marc8_9page737_flat[] = { + {"\x76", 0, 0x7839}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page737 = { + marc8_9page737_flat, 0 +}; +/* PAGE 736 */ +struct yaz_iconv_trie_flat marc8_9page736_flat[] = { + {"\x66", 0, 0x778B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page736 = { + marc8_9page736_flat, 0 +}; +/* PAGE 735 */ +struct yaz_iconv_trie_flat marc8_9page735_flat[] = { + {"\x22", 0, 0x7596}, /* East Asian ideograph */ + {"\x74", 0, 0x76B9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page735 = { + marc8_9page735_flat, 0 +}; +/* PAGE 734 */ +struct yaz_iconv_trie_flat marc8_9page734_flat[] = { + {"\x58", 0, 0x7640}, /* East Asian ideograph */ + {"\x69", 0, 0x75EB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page734 = { + marc8_9page734_flat, 0 +}; +/* PAGE 733 */ +struct yaz_iconv_trie_flat marc8_9page733_flat[] = { + {"\x3A", 0, 0x73F1}, /* East Asian ideograph */ + {"\x61", 0, 0x74F4}, /* East Asian ideograph (variant of EACC 225C61) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page733 = { + marc8_9page733_flat, 0 +}; +/* PAGE 732 */ +struct yaz_iconv_trie_flat marc8_9page732_flat[] = { + {"\x38", 0, 0x729F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page732 = { + marc8_9page732_flat, 0 +}; +/* PAGE 731 */ +struct yaz_iconv_trie_flat marc8_9page731_flat[] = { + {"\x41", 0, 0x4E2C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page731 = { + marc8_9page731_flat, 0 +}; +/* PAGE 730 */ +struct yaz_iconv_trie_flat marc8_9page730_flat[] = { + {"\x47", 0, 0x71E0}, /* East Asian ideograph (variant of EACC 225447) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page730 = { + marc8_9page730_flat, 0 +}; +/* PAGE 729 */ +struct yaz_iconv_trie_flat marc8_9page729_flat[] = { + {"\x3A", 0, 0x717A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page729 = { + marc8_9page729_flat, 0 +}; +/* PAGE 728 */ +struct yaz_iconv_trie_flat marc8_9page728_flat[] = { + {"\x75", 0, 0x8315}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page728 = { + marc8_9page728_flat, 0 +}; +/* PAGE 727 */ +struct yaz_iconv_trie_flat marc8_9page727_flat[] = { + {"\x24", 0, 0x6F46}, /* East Asian ideograph */ + {"\x26", 0, 0x6EDD}, /* East Asian ideograph */ + {"\x2B", 0, 0x701E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page727 = { + marc8_9page727_flat, 0 +}; +/* PAGE 726 */ +struct yaz_iconv_trie_flat marc8_9page726_flat[] = { + {"\x3D", 0, 0x6F62}, /* East Asian ideograph */ + {"\x63", 0, 0x6F99}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page726 = { + marc8_9page726_flat, 0 +}; +/* PAGE 725 */ +struct yaz_iconv_trie_flat marc8_9page725_flat[] = { + {"\x35", 0, 0x6E0C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page725 = { + marc8_9page725_flat, 0 +}; +/* PAGE 724 */ +struct yaz_iconv_trie_flat marc8_9page724_flat[] = { + {"\x6E", 0, 0x6CAD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page724 = { + marc8_9page724_flat, 0 +}; +/* PAGE 723 */ +struct yaz_iconv_trie_flat marc8_9page723_flat[] = { + {"\x46", 0, 0x6B4E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page723 = { + marc8_9page723_flat, 0 +}; +/* PAGE 722 */ +struct yaz_iconv_trie_flat marc8_9page722_flat[] = { + {"\x33", 0, 0x6AAA}, /* East Asian ideograph */ + {"\x39", 0, 0x69DE}, /* East Asian ideograph */ + {"\x3F", 0, 0x6A65}, /* East Asian ideograph */ + {"\x45", 0, 0x67A6}, /* East Asian ideograph */ + {"\x59", 0, 0x6B05}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page722 = { + marc8_9page722_flat, 0 +}; +/* PAGE 721 */ +struct yaz_iconv_trie_flat marc8_9page721_flat[] = { + {"\x46", 0, 0x8538}, /* East Asian ideograph */ + {"\x77", 0, 0x8223}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page721 = { + marc8_9page721_flat, 0 +}; +/* PAGE 720 */ +struct yaz_iconv_trie_flat marc8_9page720_flat[] = { + {"\x68", 0, 0x69C7}, /* East Asian ideograph */ + {"\x7A", 0, 0x6922}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page720 = { + marc8_9page720_flat, 0 +}; +/* PAGE 719 */ +struct yaz_iconv_trie_flat marc8_9page719_flat[] = { + {"\x22", 0, 0x6860}, /* East Asian ideograph */ + {"\x31", 0, 0x6798}, /* East Asian ideograph */ + {"\x60", 0, 0x6764}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page719 = { + marc8_9page719_flat, 0 +}; +/* PAGE 718 */ +struct yaz_iconv_trie_flat marc8_9page718_flat[] = { + {"\x33", 0, 0x80AD}, /* East Asian ideograph (variant of EACC 2E3A33) */ + {"\x55", 0, 0x6741}, /* East Asian ideograph */ + {"\x5B", 0, 0x6859}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page718 = { + marc8_9page718_flat, 0 +}; +/* PAGE 717 */ +struct yaz_iconv_trie_flat marc8_9page717_flat[] = { + {"\x44", 0, 0x65D9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page717 = { + marc8_9page717_flat, 0 +}; +/* PAGE 716 */ +struct yaz_iconv_trie_flat marc8_9page716_flat[] = { + {"\x4A", 0, 0x64B8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page716 = { + marc8_9page716_flat, 0 +}; +/* PAGE 715 */ +struct yaz_iconv_trie_flat marc8_9page715_flat[] = { + {"\x74", 0, 0x631D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page715 = { + marc8_9page715_flat, 0 +}; +/* PAGE 714 */ +struct yaz_iconv_trie_flat marc8_9page714_flat[] = { + {"\x61", 0, 0x622C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page714 = { + marc8_9page714_flat, 0 +}; +/* PAGE 713 */ +struct yaz_iconv_trie_flat marc8_9page713_flat[] = { + {"\x62", 0, 0x5F4D}, /* East Asian ideograph (variant of EACC 222962) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page713 = { + marc8_9page713_flat, 0 +}; +/* PAGE 712 */ +struct yaz_iconv_trie_flat marc8_9page712_flat[] = { + {"\x4C", 0, 0x53A9}, /* East Asian ideograph */ + {"\x67", 0, 0x5EDB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page712 = { + marc8_9page712_flat, 0 +}; +/* PAGE 711 */ +struct yaz_iconv_trie_flat marc8_9page711_flat[] = { + {"\x32", 0, 0x5D5B}, /* East Asian ideograph */ + {"\x39", 0, 0x5D73}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page711 = { + marc8_9page711_flat, 0 +}; +/* PAGE 710 */ +struct yaz_iconv_trie_flat marc8_9page710_flat[] = { + {"\x30", 0, 0x5C53}, /* East Asian ideograph */ + {"\x3F", 0, 0x5C76}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page710 = { + marc8_9page710_flat, 0 +}; +/* PAGE 709 */ +struct yaz_iconv_trie_dir marc8_9page709_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {711, 0, 0}, + {0, 0, 0}, + {712, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {713, 0, 0}, + {714, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {715, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {716, 0, 0}, + {717, 0, 0}, + {0, 0, 0}, + {718, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {719, 0, 0}, + {720, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {721, 0, 0}, + {0, 0, 0}, + {722, 0, 0}, + {0, 0, 0}, + {723, 0, 0}, + {724, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {725, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {726, 0, 0}, + {727, 0, 0}, + {0, 0, 0}, + {728, 0, 0}, + {0, 0, 0}, + {729, 0, 0}, + {730, 0, 0}, + {0, 0, 0}, + {731, 0, 0}, + {732, 0, 0}, + {733, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {734, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {735, 0, 0}, + {736, 0, 0}, + {0, 0, 0}, + {737, 0, 0}, + {738, 0, 0}, + {0, 0, 0}, + {739, 0, 0}, + {0, 0, 0}, + {740, 0, 0}, + {741, 0, 0}, + {742, 0, 0}, + {0, 0, 0}, + {743, 0, 0}, + {744, 0, 0}, + {0, 0, 0}, + {745, 0, 0}, + {746, 0, 0}, + {0, 0, 0}, + {747, 0, 0}, + {748, 0, 0}, + {749, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {750, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {751, 0, 0}, + {752, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page709 = { + 0, marc8_9page709_dir +}; +/* PAGE 708 */ +struct yaz_iconv_trie_flat marc8_9page708_flat[] = { + {"\x6A", 0, 0x5BC3}, /* East Asian ideograph (variant of EACC 217E6A) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page708 = { + marc8_9page708_flat, 0 +}; +/* PAGE 707 */ +struct yaz_iconv_trie_flat marc8_9page707_flat[] = { + {"\x54", 0, 0x5968}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page707 = { + marc8_9page707_flat, 0 +}; +/* PAGE 706 */ +struct yaz_iconv_trie_flat marc8_9page706_flat[] = { + {"\x74", 0, 0x590A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page706 = { + marc8_9page706_flat, 0 +}; +/* PAGE 705 */ +struct yaz_iconv_trie_flat marc8_9page705_flat[] = { + {"\x3D", 0, 0x57F4}, /* East Asian ideograph (variant of EACC 21763D) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page705 = { + marc8_9page705_flat, 0 +}; +/* PAGE 704 */ +struct yaz_iconv_trie_flat marc8_9page704_flat[] = { + {"\x77", 0, 0x57D3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page704 = { + marc8_9page704_flat, 0 +}; +/* PAGE 703 */ +struct yaz_iconv_trie_flat marc8_9page703_flat[] = { + {"\x21", 0, 0x56F9}, /* East Asian ideograph (variant of EACC 217421) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page703 = { + marc8_9page703_flat, 0 +}; +/* PAGE 702 */ +struct yaz_iconv_trie_flat marc8_9page702_flat[] = { + {"\x22", 0, 0x7F83}, /* East Asian ideograph */ + {"\x26", 0, 0x6C8D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page702 = { + marc8_9page702_flat, 0 +}; +/* PAGE 701 */ +struct yaz_iconv_trie_flat marc8_9page701_flat[] = { + {"\x2E", 0, 0x4EC2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page701 = { + marc8_9page701_flat, 0 +}; +/* PAGE 700 */ +struct yaz_iconv_trie_flat marc8_9page700_flat[] = { + {"\x37", 0, 0x4FE3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page700 = { + marc8_9page700_flat, 0 +}; +/* PAGE 699 */ +struct yaz_iconv_trie_flat marc8_9page699_flat[] = { + {"\x55", 0, 0x4EB6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page699 = { + marc8_9page699_flat, 0 +}; +/* PAGE 698 */ +struct yaz_iconv_trie_flat marc8_9page698_flat[] = { + {"\x24", 0, 0x9F62}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page698 = { + marc8_9page698_flat, 0 +}; +/* PAGE 697 */ +struct yaz_iconv_trie_flat marc8_9page697_flat[] = { + {"\x3B", 0, 0x9D12}, /* East Asian ideograph */ + {"\x47", 0, 0x9D2C}, /* East Asian ideograph */ + {"\x4F", 0, 0x9D49}, /* East Asian ideograph */ + {"\x58", 0, 0x68BA}, /* East Asian ideograph */ + {"\x5C", 0, 0x9EB8}, /* East Asian ideograph (variant of EACC 27625C) */ + {"\x60", 0, 0x9EBD}, /* East Asian ideograph */ + {"\x66", 0, 0x9ED2}, /* East Asian ideograph */ + {"\x68", 0, 0x9ED9}, /* East Asian ideograph */ + {"\x78", 0, 0x9F21}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page697 = { + marc8_9page697_flat, 0 +}; +/* PAGE 696 */ +struct yaz_iconv_trie_flat marc8_9page696_flat[] = { + {"\x22", 0, 0x994B}, /* East Asian ideograph */ + {"\x30", 0, 0x99C4}, /* East Asian ideograph */ + {"\x3F", 0, 0x9A08}, /* East Asian ideograph */ + {"\x45", 0, 0x9A12}, /* East Asian ideograph */ + {"\x47", 0, 0x99C6}, /* East Asian ideograph */ + {"\x4D", 0, 0x9A13}, /* East Asian ideograph */ + {"\x59", 0, 0x81B8}, /* East Asian ideograph */ + {"\x5F", 0, 0x9AEA}, /* East Asian ideograph */ + {"\x67", 0, 0x95D8}, /* East Asian ideograph */ + {"\x68", 0, 0x9599}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page696 = { + marc8_9page696_flat, 0 +}; +/* PAGE 695 */ +struct yaz_iconv_trie_flat marc8_9page695_flat[] = { + {"\x2D", 0, 0x9771}, /* East Asian ideograph */ + {"\x44", 0, 0x9818}, /* East Asian ideograph */ + {"\x48", 0, 0x981A}, /* East Asian ideograph */ + {"\x53", 0, 0x985E}, /* East Asian ideograph */ + {"\x6F", 0, 0x991D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page695 = { + marc8_9page695_flat, 0 +}; +/* PAGE 694 */ +struct yaz_iconv_trie_flat marc8_9page694_flat[] = { + {"\x30", 0, 0x9686}, /* East Asian ideograph (variant of EACC 215F30) */ + {"\x35", 0, 0x6B92}, /* East Asian ideograph */ + {"\x3A", 0, 0x967A}, /* East Asian ideograph */ + {"\x49", 0, 0x51CB}, /* East Asian ideograph */ + {"\x4C", 0, 0x9D8F}, /* East Asian ideograph */ + {"\x50", 0, 0x96E3}, /* East Asian ideograph */ + {"\x58", 0, 0x96F6}, /* East Asian ideograph (variant of EACC 215F58 */ + {"\x62", 0, 0x7668}, /* East Asian ideograph */ + {"\x6F", 0, 0x970A}, /* East Asian ideograph */ + {"\x70", 0, 0x9752}, /* East Asian ideograph */ + {"\x71", 0, 0x9756}, /* East Asian ideograph */ + {"\x72", 0, 0x975B}, /* East Asian ideograph */ + {"\x73", 0, 0x975C}, /* East Asian ideograph (variant of EACC 215F73) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page694 = { + marc8_9page694_flat, 0 +}; +/* PAGE 693 */ +struct yaz_iconv_trie_flat marc8_9page693_flat[] = { + {"\x27", 0, 0x93AD}, /* East Asian ideograph */ + {"\x3D", 0, 0x9421}, /* East Asian ideograph */ + {"\x3F", 0, 0x922C}, /* East Asian ideograph */ + {"\x5D", 0, 0x95D4}, /* East Asian ideograph */ + {"\x69", 0, 0x95A2}, /* East Asian ideograph */ + {"\x6C", 0, 0x961D}, /* East Asian ideograph (duplicate simplified) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page693 = { + marc8_9page693_flat, 0 +}; +/* PAGE 692 */ +struct yaz_iconv_trie_flat marc8_9page692_flat[] = { + {"\x2B", 0, 0x9162}, /* East Asian ideograph */ + {"\x34", 0, 0x91B8}, /* East Asian ideograph */ + {"\x36", 0, 0x91C6}, /* East Asian ideograph */ + {"\x38", 0, 0x91C8}, /* East Asian ideograph */ + {"\x42", 0, 0x91E1}, /* East Asian ideograph */ + {"\x58", 0, 0x9234}, /* East Asian ideograph */ + {"\x65", 0, 0x8217}, /* East Asian ideograph */ + {"\x70", 0, 0x92AD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page692 = { + marc8_9page692_flat, 0 +}; +/* PAGE 691 */ +struct yaz_iconv_trie_flat marc8_9page691_flat[] = { + {"\x32", 0, 0x9038}, /* East Asian ideograph */ + {"\x39", 0, 0x9039}, /* East Asian ideograph */ + {"\x47", 0, 0x9059}, /* East Asian ideograph */ + {"\x50", 0, 0x9045}, /* East Asian ideograph */ + {"\x54", 0, 0x8F9F}, /* East Asian ideograph (duplicate simplified) */ + {"\x5B", 0, 0x8FBA}, /* East Asian ideograph */ + {"\x5E", 0, 0x961D}, /* East Asian ideograph */ + {"\x72", 0, 0x9119}, /* East Asian ideograph (variant of EACC 215C72) */ + {"\x77", 0, 0x9139}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page691 = { + marc8_9page691_flat, 0 +}; +/* PAGE 690 */ +struct yaz_iconv_trie_flat marc8_9page690_flat[] = { + {"\x29", 0, 0x8E8D}, /* East Asian ideograph */ + {"\x46", 0, 0x8F0C}, /* East Asian ideograph */ + {"\x52", 0, 0x8F42}, /* East Asian ideograph */ + {"\x55", 0, 0x8EE2}, /* East Asian ideograph */ + {"\x58", 0, 0x8EE3}, /* East Asian ideograph */ + {"\x5E", 0, 0x5F01}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page690 = { + marc8_9page690_flat, 0 +}; +/* PAGE 689 */ +struct yaz_iconv_trie_flat marc8_9page689_flat[] = { + {"\x23", 0, 0x621D}, /* East Asian ideograph */ + {"\x31", 0, 0x8CCE}, /* East Asian ideograph */ + {"\x3B", 0, 0x8D08}, /* East Asian ideograph */ + {"\x68", 0, 0x8DF5}, /* East Asian ideograph (variant of EACC 275A68) */ + {"\x7E", 0, 0x5C69}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page689 = { + marc8_9page689_flat, 0 +}; +/* PAGE 688 */ +struct yaz_iconv_trie_flat marc8_9page688_flat[] = { + {"\x36", 0, 0x8B20}, /* East Asian ideograph */ + {"\x46", 0, 0x8A33}, /* East Asian ideograph */ + {"\x4A", 0, 0x8AAD}, /* East Asian ideograph */ + {"\x4B", 0, 0x5909}, /* East Asian ideograph */ + {"\x59", 0, 0x8273}, /* East Asian ideograph */ + {"\x63", 0, 0x734F}, /* East Asian ideograph */ + {"\x64", 0, 0x72E2}, /* East Asian ideograph */ + {"\x73", 0, 0x8D2E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page688 = { + marc8_9page688_flat, 0 +}; +/* PAGE 687 */ +struct yaz_iconv_trie_flat marc8_9page687_flat[] = { + {"\x24", 0, 0x897E}, /* East Asian ideograph */ + {"\x26", 0, 0x8983}, /* East Asian ideograph (variant of EACC 215826) */ + {"\x30", 0, 0x899A}, /* East Asian ideograph */ + {"\x32", 0, 0x89B3}, /* East Asian ideograph */ + {"\x61", 0, 0x4F89}, /* East Asian ideograph */ + {"\x71", 0, 0x8AA4}, /* East Asian ideograph */ + {"\x7A", 0, 0x8ACB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page687 = { + marc8_9page687_flat, 0 +}; +/* PAGE 686 */ +struct yaz_iconv_trie_flat marc8_9page686_flat[] = { + {"\x24", 0, 0x86CD}, /* East Asian ideograph */ + {"\x36", 0, 0x877F}, /* East Asian ideograph */ + {"\x40", 0, 0x8827}, /* East Asian ideograph */ + {"\x46", 0, 0x8853}, /* East Asian ideograph */ + {"\x6C", 0, 0x523E}, /* East Asian ideograph */ + {"\x6F", 0, 0x8910}, /* East Asian ideograph (variant of EACC 21576F) */ + {"\x73", 0, 0x7ED4}, /* East Asian ideograph */ + {"\x7E", 0, 0x7E7F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page686 = { + marc8_9page686_flat, 0 +}; +/* PAGE 685 */ +struct yaz_iconv_trie_flat marc8_9page685_flat[] = { + {"\x29", 0, 0x85CD}, /* East Asian ideograph */ + {"\x2B", 0, 0x8535}, /* East Asian ideograph */ + {"\x31", 0, 0x82B8}, /* East Asian ideograph */ + {"\x32", 0, 0x7C54}, /* East Asian ideograph */ + {"\x3A", 0, 0x82A6}, /* East Asian ideograph (variant of EACC 27563A) */ + {"\x3F", 0, 0x6A98}, /* East Asian ideograph */ + {"\x47", 0, 0x51E6}, /* East Asian ideograph */ + {"\x6A", 0, 0x8708}, /* East Asian ideograph (variant of EACC 21566A) */ + {"\x71", 0, 0x873B}, /* East Asian ideograph (variant of EACC 215671) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page685 = { + marc8_9page685_flat, 0 +}; +/* PAGE 684 */ +struct yaz_iconv_trie_flat marc8_9page684_flat[] = { + {"\x21", 0, 0x8332}, /* East Asian ideograph */ + {"\x2C", 0, 0x8392}, /* East Asian ideograph */ + {"\x3A", 0, 0x83C1}, /* East Asian ideograph (variant of EACC 21553A) */ + {"\x3F", 0, 0x83BD}, /* East Asian ideograph (variant of EACC 21553F) */ + {"\x42", 0, 0x8420}, /* East Asian ideograph */ + {"\x64", 0, 0x77C7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page684 = { + marc8_9page684_flat, 0 +}; +/* PAGE 683 */ +struct yaz_iconv_trie_flat marc8_9page683_flat[] = { + {"\x22", 0, 0x81D3}, /* East Asian ideograph */ + {"\x28", 0, 0x81ED}, /* East Asian ideograph (variant of EACC 215428) */ + {"\x34", 0, 0x6319}, /* East Asian ideograph */ + {"\x37", 0, 0x820E}, /* East Asian ideograph */ + {"\x6D", 0, 0x82D3}, /* East Asian ideograph (variant of EACC 21546D) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page683 = { + marc8_9page683_flat, 0 +}; +/* PAGE 682 */ +struct yaz_iconv_trie_flat marc8_9page682_flat[] = { + {"\x3B", 0, 0x695C}, /* East Asian ideograph */ + {"\x61", 0, 0x89D2}, /* East Asian ideograph (duplicate simplified) */ + {"\x65", 0, 0x8133}, /* East Asian ideograph */ + {"\x7D", 0, 0x9ACC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page682 = { + marc8_9page682_flat, 0 +}; +/* PAGE 681 */ +struct yaz_iconv_trie_flat marc8_9page681_flat[] = { + {"\x21", 0, 0x7D9A}, /* East Asian ideograph */ + {"\x23", 0, 0x7E4A}, /* East Asian ideograph */ + {"\x27", 0, 0x6B20}, /* East Asian ideograph */ + {"\x2B", 0, 0x7F36}, /* East Asian ideograph */ + {"\x38", 0, 0x7F87}, /* East Asian ideograph */ + {"\x3E", 0, 0x7F9A}, /* East Asian ideograph (variant of EACC 21523E) */ + {"\x47", 0, 0x7FAE}, /* East Asian ideograph */ + {"\x4E", 0, 0x7FCE}, /* East Asian ideograph */ + {"\x5A", 0, 0x7FFA}, /* East Asian ideograph */ + {"\x5B", 0, 0x66DC}, /* East Asian ideograph (variant of EACC 39525B) */ + {"\x5C", 0, 0x8002}, /* East Asian ideograph */ + {"\x6E", 0, 0x8046}, /* East Asian ideograph (variant of EACC 21526E) */ + {"\x77", 0, 0x8068}, /* East Asian ideograph */ + {"\x7C", 0, 0x8080}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page681 = { + marc8_9page681_flat, 0 +}; +/* PAGE 680 */ +struct yaz_iconv_trie_flat marc8_9page680_flat[] = { + {"\x3B", 0, 0x7CF8}, /* East Asian ideograph */ + {"\x54", 0, 0x7DF4}, /* East Asian ideograph */ + {"\x5A", 0, 0x7E01}, /* East Asian ideograph */ + {"\x64", 0, 0x770C}, /* East Asian ideograph */ + {"\x6A", 0, 0x7EF7}, /* East Asian ideograph */ + {"\x6D", 0, 0x7DCF}, /* East Asian ideograph */ + {"\x6E", 0, 0x7E26}, /* East Asian ideograph */ + {"\x76", 0, 0x7E04}, /* East Asian ideograph */ + {"\x79", 0, 0x7F0B}, /* East Asian ideograph */ + {"\x7E", 0, 0x7E92}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page680 = { + marc8_9page680_flat, 0 +}; +/* PAGE 679 */ +struct yaz_iconv_trie_flat marc8_9page679_flat[] = { + {"\x36", 0, 0x7C14}, /* East Asian ideograph */ + {"\x3B", 0, 0x7C12}, /* East Asian ideograph */ + {"\x44", 0, 0x7C27}, /* East Asian ideograph (variant of EACC 215044) */ + {"\x52", 0, 0x7C56}, /* East Asian ideograph */ + {"\x61", 0, 0x7CBE}, /* East Asian ideograph */ + {"\x6C", 0, 0x7CAB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page679 = { + marc8_9page679_flat, 0 +}; +/* PAGE 678 */ +struct yaz_iconv_trie_flat marc8_9page678_flat[] = { + {"\x29", 0, 0x7A50}, /* East Asian ideograph */ + {"\x3C", 0, 0x79F0}, /* East Asian ideograph (variant of EACC 274F3C) */ + {"\x43", 0, 0x7A32}, /* East Asian ideograph */ + {"\x4C", 0, 0x7A4F}, /* East Asian ideograph */ + {"\x7B", 0, 0x7B7A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page678 = { + marc8_9page678_flat, 0 +}; +/* PAGE 677 */ +struct yaz_iconv_trie_flat marc8_9page677_flat[] = { + {"\x21", 0, 0x7B36}, /* East Asian ideograph */ + {"\x37", 0, 0x7814}, /* East Asian ideograph */ + {"\x39", 0, 0x5CFA}, /* East Asian ideograph */ + {"\x56", 0, 0x78FA}, /* East Asian ideograph */ + {"\x5B", 0, 0x783F}, /* East Asian ideograph */ + {"\x67", 0, 0x79D8}, /* East Asian ideograph */ + {"\x7B", 0, 0x7985}, /* East Asian ideograph (variant of EACC 274E7B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page677 = { + marc8_9page677_flat, 0 +}; +/* PAGE 676 */ +struct yaz_iconv_trie_flat marc8_9page676_flat[] = { + {"\x41", 0, 0x862F}, /* East Asian ideograph */ + {"\x45", 0, 0x76F4}, /* East Asian ideograph (variant of EACC 214D45) */ + {"\x56", 0, 0x8846}, /* East Asian ideograph */ + {"\x59", 0, 0x775B}, /* East Asian ideograph (variant of EACC 214D59) */ + {"\x73", 0, 0x66B8}, /* East Asian ideograph */ + {"\x7B", 0, 0x77D7}, /* East Asian ideograph (variant of EACC 214D7B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page676 = { + marc8_9page676_flat, 0 +}; +/* PAGE 675 */ +struct yaz_iconv_trie_flat marc8_9page675_flat[] = { + {"\x36", 0, 0x7575}, /* East Asian ideograph */ + {"\x3C", 0, 0x7573}, /* East Asian ideograph */ + {"\x51", 0, 0x75CA}, /* East Asian ideograph */ + {"\x5B", 0, 0x75F3}, /* East Asian ideograph */ + {"\x67", 0, 0x761F}, /* East Asian ideograph (variant of EACC 214C67) */ + {"\x79", 0, 0x7672}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page675 = { + marc8_9page675_flat, 0 +}; +/* PAGE 674 */ +struct yaz_iconv_trie_flat marc8_9page674_flat[] = { + {"\x2B", 0, 0x7363}, /* East Asian ideograph */ + {"\x2C", 0, 0x731F}, /* East Asian ideograph */ + {"\x3E", 0, 0x73B2}, /* East Asian ideograph (variant of EACC 214B3E) */ + {"\x63", 0, 0x749C}, /* East Asian ideograph */ + {"\x71", 0, 0x7F3E}, /* East Asian ideograph (variant of EACC 2D4B71) */ + {"\x77", 0, 0x4EC0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page674 = { + marc8_9page674_flat, 0 +}; +/* PAGE 673 */ +struct yaz_iconv_trie_flat marc8_9page673_flat[] = { + {"\x2E", 0, 0x55B6}, /* East Asian ideograph */ + {"\x38", 0, 0x71D7}, /* East Asian ideograph */ + {"\x3E", 0, 0x7235}, /* East Asian ideograph */ + {"\x45", 0, 0x5C13}, /* East Asian ideograph */ + {"\x62", 0, 0x72A0}, /* East Asian ideograph */ + {"\x74", 0, 0x731C}, /* East Asian ideograph (variant of EACC 214A74) */ + {"\x78", 0, 0x72F0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page673 = { + marc8_9page673_flat, 0 +}; +/* PAGE 672 */ +struct yaz_iconv_trie_flat marc8_9page672_flat[] = { + {"\x21", 0, 0x6CA2}, /* East Asian ideograph */ + {"\x25", 0, 0x6FB3}, /* East Asian ideograph (variant of EACC 214925) */ + {"\x2B", 0, 0x6FEB}, /* East Asian ideograph */ + {"\x2E", 0, 0x6E0B}, /* East Asian ideograph */ + {"\x31", 0, 0x6E16}, /* East Asian ideograph */ + {"\x37", 0, 0x56A0}, /* East Asian ideograph */ + {"\x40", 0, 0x6F45}, /* East Asian ideograph */ + {"\x47", 0, 0x7AC3}, /* East Asian ideograph */ + {"\x6A", 0, 0x932C}, /* East Asian ideograph */ + {"\x6B", 0, 0x83F8}, /* East Asian ideograph */ + {"\x73", 0, 0x7115}, /* East Asian ideograph */ + {"\x75", 0, 0x6427}, /* East Asian ideograph */ + {"\x77", 0, 0x7188}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page672 = { + marc8_9page672_flat, 0 +}; +/* PAGE 671 */ +struct yaz_iconv_trie_flat marc8_9page671_flat[] = { + {"\x35", 0, 0x6DA3}, /* East Asian ideograph */ + {"\x46", 0, 0x78C6}, /* East Asian ideograph */ + {"\x4A", 0, 0x6E13}, /* East Asian ideograph */ + {"\x4B", 0, 0x51D6}, /* East Asian ideograph */ + {"\x4C", 0, 0x6F91}, /* East Asian ideograph */ + {"\x57", 0, 0x6F22}, /* East Asian ideograph */ + {"\x58", 0, 0x6E80}, /* East Asian ideograph */ + {"\x5F", 0, 0x6EDE}, /* East Asian ideograph (variant of EACC 27485F) */ + {"\x66", 0, 0x6E89}, /* East Asian ideograph */ + {"\x74", 0, 0x6FF3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page671 = { + marc8_9page671_flat, 0 +}; +/* PAGE 670 */ +struct yaz_iconv_trie_flat marc8_9page670_flat[] = { + {"\x41", 0, 0x51BD}, /* East Asian ideograph */ + {"\x59", 0, 0x6D99}, /* East Asian ideograph */ + {"\x61", 0, 0x6E05}, /* East Asian ideograph */ + {"\x67", 0, 0x6DB5}, /* East Asian ideograph (variant of EACC 214767) */ + {"\x6C", 0, 0x51C5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page670 = { + marc8_9page670_flat, 0 +}; +/* PAGE 669 */ +struct yaz_iconv_trie_flat marc8_9page669_flat[] = { + {"\x21", 0, 0x6B53}, /* East Asian ideograph */ + {"\x2A", 0, 0x6B74}, /* East Asian ideograph */ + {"\x2E", 0, 0x6B81}, /* East Asian ideograph */ + {"\x38", 0, 0x6BB1}, /* East Asian ideograph */ + {"\x55", 0, 0x6C17}, /* East Asian ideograph */ + {"\x5A", 0, 0x6C32}, /* East Asian ideograph */ + {"\x76", 0, 0x6C89}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page669 = { + marc8_9page669_flat, 0 +}; +/* PAGE 668 */ +struct yaz_iconv_trie_flat marc8_9page668_flat[] = { + {"\x34", 0, 0x6994}, /* East Asian ideograph (variant of EACC 214534) */ + {"\x37", 0, 0x6804}, /* East Asian ideograph */ + {"\x44", 0, 0x69D8}, /* East Asian ideograph */ + {"\x45", 0, 0x6982}, /* East Asian ideograph */ + {"\x53", 0, 0x6955}, /* East Asian ideograph */ + {"\x56", 0, 0x6A2A}, /* East Asian ideograph */ + {"\x59", 0, 0x9792}, /* East Asian ideograph */ + {"\x61", 0, 0x691C}, /* East Asian ideograph */ + {"\x69", 0, 0x6A71}, /* East Asian ideograph */ + {"\x6C", 0, 0x6ADB}, /* East Asian ideograph (variant of EACC 21456C) */ + {"\x6D", 0, 0x823B}, /* East Asian ideograph */ + {"\x6F", 0, 0x685C}, /* East Asian ideograph */ + {"\x70", 0, 0x6A29}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page668 = { + marc8_9page668_flat, 0 +}; +/* PAGE 667 */ +struct yaz_iconv_trie_flat marc8_9page667_flat[] = { + {"\x2D", 0, 0x67A9}, /* East Asian ideograph */ + {"\x44", 0, 0x8988}, /* East Asian ideograph (Version J extension) */ + {"\x56", 0, 0x6813}, /* East Asian ideograph */ + {"\x76", 0, 0x685F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page667 = { + marc8_9page667_flat, 0 +}; +/* PAGE 666 */ +struct yaz_iconv_trie_flat marc8_9page666_flat[] = { + {"\x39", 0, 0x6674}, /* East Asian ideograph */ + {"\x47", 0, 0x66A8}, /* East Asian ideograph */ + {"\x4D", 0, 0x663F}, /* East Asian ideograph */ + {"\x52", 0, 0x66F5}, /* East Asian ideograph */ + {"\x58", 0, 0x66FD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page666 = { + marc8_9page666_flat, 0 +}; +/* PAGE 665 */ +struct yaz_iconv_trie_flat marc8_9page665_flat[] = { + {"\x35", 0, 0x6442}, /* East Asian ideograph */ + {"\x36", 0, 0x643A}, /* East Asian ideograph */ + {"\x3A", 0, 0x64B9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page665 = { + marc8_9page665_flat, 0 +}; +/* PAGE 664 */ +struct yaz_iconv_trie_flat marc8_9page664_flat[] = { + {"\x2A", 0, 0x6323}, /* East Asian ideograph */ + {"\x35", 0, 0x6368}, /* East Asian ideograph */ + {"\x46", 0, 0x6362}, /* East Asian ideograph */ + {"\x47", 0, 0x633F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page664 = { + marc8_9page664_flat, 0 +}; +/* PAGE 663 */ +struct yaz_iconv_trie_flat marc8_9page663_flat[] = { + {"\x3D", 0, 0x62DD}, /* East Asian ideograph */ + {"\x46", 0, 0x629C}, /* East Asian ideograph */ + {"\x49", 0, 0x62D0}, /* East Asian ideograph */ + {"\x53", 0, 0x627A}, /* East Asian ideograph */ + {"\x66", 0, 0x62F4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page663 = { + marc8_9page663_flat, 0 +}; +/* PAGE 662 */ +struct yaz_iconv_trie_flat marc8_9page662_flat[] = { + {"\x40", 0, 0x618E}, /* East Asian ideograph (variant of EACC 213F40) */ + {"\x4A", 0, 0x5FDC}, /* East Asian ideograph */ + {"\x4B", 0, 0x601C}, /* East Asian ideograph (variant of EACC 273F4B) */ + {"\x50", 0, 0x61CA}, /* East Asian ideograph (variant of EACC 213F50) */ + {"\x51", 0, 0x61D1}, /* East Asian ideograph */ + {"\x53", 0, 0x61F2}, /* East Asian ideograph */ + {"\x74", 0, 0x623B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page662 = { + marc8_9page662_flat, 0 +}; +/* PAGE 661 */ +struct yaz_iconv_trie_flat marc8_9page661_flat[] = { + {"\x2A", 0, 0x6035}, /* East Asian ideograph */ + {"\x40", 0, 0x6046}, /* East Asian ideograph */ + {"\x5B", 0, 0x60C5}, /* East Asian ideograph */ + {"\x7E", 0, 0x60A9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page661 = { + marc8_9page661_flat, 0 +}; +/* PAGE 660 */ +struct yaz_iconv_trie_flat marc8_9page660_flat[] = { + {"\x24", 0, 0x53A6}, /* East Asian ideograph */ + {"\x27", 0, 0x5EC3}, /* East Asian ideograph */ + {"\x2A", 0, 0x5EE3}, /* East Asian ideograph */ + {"\x2C", 0, 0x53B0}, /* East Asian ideograph */ + {"\x2F", 0, 0x5EF0}, /* East Asian ideograph */ + {"\x4B", 0, 0x5F3E}, /* East Asian ideograph */ + {"\x4C", 0, 0x5F25}, /* East Asian ideograph (variant of EACC 273D4C) */ + {"\x5C", 0, 0x5F83}, /* East Asian ideograph */ + {"\x67", 0, 0x5F84}, /* East Asian ideograph (variant of EACC 273D67) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page660 = { + marc8_9page660_flat, 0 +}; +/* PAGE 659 */ +struct yaz_iconv_trie_flat marc8_9page659_flat[] = { + {"\x21", 0, 0x5D5C}, /* East Asian ideograph */ + {"\x23", 0, 0x5CE5}, /* East Asian ideograph */ + {"\x2B", 0, 0x67C3}, /* East Asian ideograph (Version J extension) */ + {"\x2F", 0, 0x5DBA}, /* East Asian ideograph */ + {"\x32", 0, 0x5DD3}, /* East Asian ideograph */ + {"\x33", 0, 0x5DCC}, /* East Asian ideograph */ + {"\x38", 0, 0x949C}, /* East Asian ideograph */ + {"\x53", 0, 0x5E2F}, /* East Asian ideograph */ + {"\x5E", 0, 0x5E64}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page659 = { + marc8_9page659_flat, 0 +}; +/* PAGE 658 */ +struct yaz_iconv_trie_flat marc8_9page658_flat[] = { + {"\x22", 0, 0x51A6}, /* East Asian ideograph */ + {"\x31", 0, 0x5B9F}, /* East Asian ideograph */ + {"\x37", 0, 0x51A9}, /* East Asian ideograph */ + {"\x43", 0, 0x5BFE}, /* East Asian ideograph */ + {"\x52", 0, 0x8132}, /* East Asian ideograph */ + {"\x61", 0, 0x5C64}, /* East Asian ideograph */ + {"\x67", 0, 0x6B67}, /* East Asian ideograph */ + {"\x79", 0, 0x5D8C}, /* East Asian ideograph */ + {"\x7E", 0, 0x5D15}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page658 = { + marc8_9page658_flat, 0 +}; +/* PAGE 657 */ +struct yaz_iconv_trie_flat marc8_9page657_flat[] = { + {"\x2F", 0, 0x805F}, /* East Asian ideograph */ + {"\x47", 0, 0x88CA}, /* East Asian ideograph */ + {"\x49", 0, 0x5B37}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page657 = { + marc8_9page657_flat, 0 +}; +/* PAGE 656 */ +struct yaz_iconv_trie_flat marc8_9page656_flat[] = { + {"\x38", 0, 0x5942}, /* East Asian ideograph */ + {"\x3A", 0, 0x5F09}, /* East Asian ideograph */ + {"\x3E", 0, 0x5965}, /* East Asian ideograph */ + {"\x3F", 0, 0x5333}, /* East Asian ideograph */ + {"\x74", 0, 0x5B22}, /* East Asian ideograph */ + {"\x7B", 0, 0x5A2F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page656 = { + marc8_9page656_flat, 0 +}; +/* PAGE 655 */ +struct yaz_iconv_trie_flat marc8_9page655_flat[] = { + {"\x2E", 0, 0x57C0}, /* East Asian ideograph */ + {"\x50", 0, 0x5861}, /* East Asian ideograph (variant of EACC 213850) */ + {"\x50", 0, 0x5861}, /* East Asian ideograph (variant of EACC 213850) */ + {"\x53", 0, 0x586D}, /* East Asian ideograph */ + {"\x5E", 0, 0x5897}, /* East Asian ideograph */ + {"\x64", 0, 0x58C7}, /* East Asian ideograph */ + {"\x69", 0, 0x5727}, /* East Asian ideograph */ + {"\x6C", 0, 0x5841}, /* East Asian ideograph */ + {"\x70", 0, 0x58CC}, /* East Asian ideograph */ + {"\x71", 0, 0x57BB}, /* East Asian ideograph */ + {"\x7D", 0, 0x591B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page655 = { + marc8_9page655_flat, 0 +}; +/* PAGE 654 */ +struct yaz_iconv_trie_flat marc8_9page654_flat[] = { + {"\x2C", 0, 0x5606}, /* East Asian ideograph */ + {"\x2F", 0, 0x5C1C}, /* East Asian ideograph */ + {"\x49", 0, 0x5668}, /* East Asian ideograph (variant of EACC 213749) */ + {"\x4C", 0, 0x5662}, /* East Asian ideograph */ + {"\x58", 0, 0x56A5}, /* East Asian ideograph (variant of EACC 213758) */ + {"\x5A", 0, 0x53B3}, /* East Asian ideograph */ + {"\x68", 0, 0x56D8}, /* East Asian ideograph */ + {"\x6F", 0, 0x56FD}, /* East Asian ideograph */ + {"\x72", 0, 0x5186}, /* East Asian ideograph */ + {"\x73", 0, 0x56E3}, /* East Asian ideograph */ + {"\x74", 0, 0x56F3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page654 = { + marc8_9page654_flat, 0 +}; +/* PAGE 653 */ +struct yaz_iconv_trie_flat marc8_9page653_flat[] = { + {"\x22", 0, 0x8C18}, /* East Asian ideograph */ + {"\x42", 0, 0x8BF6}, /* East Asian ideograph */ + {"\x66", 0, 0x5A1A}, /* East Asian ideograph */ + {"\x68", 0, 0x5358}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page653 = { + marc8_9page653_flat, 0 +}; +/* PAGE 652 */ +struct yaz_iconv_trie_flat marc8_9page652_flat[] = { + {"\x6A", 0, 0x55EC}, /* East Asian ideograph */ + {"\x7B", 0, 0x54CC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page652 = { + marc8_9page652_flat, 0 +}; +/* PAGE 651 */ +struct yaz_iconv_trie_flat marc8_9page651_flat[] = { + {"\x21", 0, 0x5263}, /* East Asian ideograph */ + {"\x35", 0, 0x52B4}, /* East Asian ideograph */ + {"\x36", 0, 0x52F2}, /* East Asian ideograph */ + {"\x6B", 0, 0x5DF5}, /* East Asian ideograph */ + {"\x74", 0, 0x537F}, /* East Asian ideograph (variant of EACC 213474) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page651 = { + marc8_9page651_flat, 0 +}; +/* PAGE 650 */ +struct yaz_iconv_trie_flat marc8_9page650_flat[] = { + {"\x21", 0, 0x5185}, /* East Asian ideograph */ + {"\x22", 0, 0x5168}, /* East Asian ideograph (variant of EACC 213322) */ + {"\x24", 0, 0x634C}, /* East Asian ideograph (variant of EACC 2D3324) */ + {"\x3E", 0, 0x51B7}, /* East Asian ideograph (variant of EACC 21333E) */ + {"\x51", 0, 0x5204}, /* East Asian ideograph */ + {"\x54", 0, 0x82C5}, /* East Asian ideograph */ + {"\x55", 0, 0x520B}, /* East Asian ideograph */ + {"\x5B", 0, 0x522B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page650 = { + marc8_9page650_flat, 0 +}; +/* PAGE 649 */ +struct yaz_iconv_trie_flat marc8_9page649_flat[] = { + {"\x31", 0, 0x4EEE}, /* East Asian ideograph */ + {"\x48", 0, 0x50B2}, /* East Asian ideograph */ + {"\x4E", 0, 0x50E7}, /* East Asian ideograph (variant of EACC 21324E) */ + {"\x5F", 0, 0x50BB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page649 = { + marc8_9page649_flat, 0 +}; +/* PAGE 648 */ +struct yaz_iconv_trie_flat marc8_9page648_flat[] = { + {"\x2D", 0, 0x4F2B}, /* East Asian ideograph */ + {"\x30", 0, 0x4FAB}, /* East Asian ideograph */ + {"\x44", 0, 0x4F36}, /* East Asian ideograph (variant of EACC 213144) */ + {"\x4C", 0, 0x5F95}, /* East Asian ideograph */ + {"\x6A", 0, 0x723C}, /* East Asian ideograph */ + {"\x78", 0, 0x5029}, /* East Asian ideograph (variant of EACC 213178) */ + {"\x7C", 0, 0x5024}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page648 = { + marc8_9page648_flat, 0 +}; +/* PAGE 647 */ +struct yaz_iconv_trie_flat marc8_9page647_flat[] = { + {"\x21", 0, 0x58F1}, /* East Asian ideograph */ + {"\x50", 0, 0x4E8A}, /* East Asian ideograph */ + {"\x51", 0, 0x5F10}, /* East Asian ideograph */ + {"\x52", 0, 0x6275}, /* East Asian ideograph */ + {"\x57", 0, 0x4E99}, /* East Asian ideograph */ + {"\x6C", 0, 0x96E0}, /* East Asian ideograph */ + {"\x6E", 0, 0x4EE4}, /* East Asian ideograph (variant of EACC 21306E) */ + {"\x72", 0, 0x4EED}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page647 = { + marc8_9page647_flat, 0 +}; +/* PAGE 646 */ +struct yaz_iconv_trie_dir marc8_9page646_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {648, 0, 0}, + {649, 0, 0}, + {650, 0, 0}, + {651, 0, 0}, + {652, 0, 0}, + {653, 0, 0}, + {654, 0, 0}, + {655, 0, 0}, + {656, 0, 0}, + {657, 0, 0}, + {658, 0, 0}, + {659, 0, 0}, + {660, 0, 0}, + {661, 0, 0}, + {662, 0, 0}, + {663, 0, 0}, + {664, 0, 0}, + {665, 0, 0}, + {666, 0, 0}, + {667, 0, 0}, + {668, 0, 0}, + {669, 0, 0}, + {670, 0, 0}, + {671, 0, 0}, + {672, 0, 0}, + {673, 0, 0}, + {674, 0, 0}, + {675, 0, 0}, + {676, 0, 0}, + {677, 0, 0}, + {678, 0, 0}, + {679, 0, 0}, + {680, 0, 0}, + {681, 0, 0}, + {682, 0, 0}, + {683, 0, 0}, + {684, 0, 0}, + {685, 0, 0}, + {686, 0, 0}, + {687, 0, 0}, + {688, 0, 0}, + {689, 0, 0}, + {690, 0, 0}, + {691, 0, 0}, + {692, 0, 0}, + {693, 0, 0}, + {694, 0, 0}, + {695, 0, 0}, + {696, 0, 0}, + {697, 0, 0}, + {698, 0, 0}, + {699, 0, 0}, + {700, 0, 0}, + {0, 0, 0}, + {701, 0, 0}, + {0, 0, 0}, + {702, 0, 0}, + {0, 0, 0}, + {703, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {704, 0, 0}, + {705, 0, 0}, + {706, 0, 0}, + {0, 0, 0}, + {707, 0, 0}, + {708, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {709, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page646 = { + 0, marc8_9page646_dir +}; +/* PAGE 645 */ +struct yaz_iconv_trie_flat marc8_9page645_flat[] = { + {"\x2C\x4D", 0, 0x8801}, /* East Asian ideograph (variant of EACC 232C4D) */ + {"\x34\x22", 0, 0x8C2A}, /* East Asian ideograph */ + {"\x34\x7B", 0, 0x8C2B}, /* East Asian ideograph */ + {"\x35\x39", 0, 0x8B9E}, /* East Asian ideograph */ + {"\x36\x6F", 0, 0x8D4D}, /* East Asian ideograph */ + {"\x42\x36", 0, 0x949A}, /* East Asian ideograph */ + {"\x42\x70", 0, 0x94BC}, /* East Asian ideograph */ + {"\x49\x31", 0, 0x95F6}, /* East Asian ideograph */ + {"\x4E\x5C", 0, 0x97DE}, /* East Asian ideograph (variant of EACC 234E5C) */ + {"\x52\x22", 0, 0x9957}, /* East Asian ideograph */ + {"\x57\x7A", 0, 0x9BD6}, /* East Asian ideograph (variant of EACC 23577A) */ + {"\x59\x4E", 0, 0x9C3A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page645 = { + marc8_9page645_flat, 0 +}; +/* PAGE 644 */ +struct yaz_iconv_trie_flat marc8_9page644_flat[] = { + {"\x28\x4C", 0, 0x5ED0}, /* East Asian ideograph */ + {"\x60\x74", 0, 0x76B2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page644 = { + marc8_9page644_flat, 0 +}; +/* PAGE 643 */ +struct yaz_iconv_trie_flat marc8_9page643_flat[] = { + {"\x30\x4C", 0, 0x69A6}, /* East Asian ideograph */ + {"\x30\x51", 0, 0x8D30}, /* East Asian ideograph */ + {"\x33\x36", 0, 0x5B82}, /* East Asian ideograph */ + {"\x34\x21", 0, 0x5271}, /* East Asian ideograph */ + {"\x36\x66", 0, 0x5AD0}, /* East Asian ideograph */ + {"\x37\x55", 0, 0x56AE}, /* East Asian ideograph */ + {"\x37\x68", 0, 0x5EFB}, /* East Asian ideograph */ + {"\x3D\x53", 0, 0x5F66}, /* East Asian ideograph */ + {"\x3F\x6D", 0, 0x52E0}, /* East Asian ideograph */ + {"\x41\x46", 0, 0x63DB}, /* East Asian ideograph */ + {"\x45\x6D", 0, 0x6A10}, /* East Asian ideograph */ + {"\x46\x2B", 0, 0x7688}, /* East Asian ideograph */ + {"\x46\x5B", 0, 0x6C2F}, /* East Asian ideograph */ + {"\x47\x38", 0, 0x6CFA}, /* East Asian ideograph */ + {"\x47\x74", 0, 0x6E15}, /* East Asian ideograph */ + {"\x4B\x7A", 0, 0x7523}, /* East Asian ideograph */ + {"\x4C\x3C", 0, 0x7589}, /* East Asian ideograph */ + {"\x4E\x43", 0, 0x788C}, /* East Asian ideograph (variant of EACC 214E43) */ + {"\x4E\x75", 0, 0x7984}, /* East Asian ideograph */ + {"\x4F\x45", 0, 0x9896}, /* East Asian ideograph */ + {"\x51\x22", 0, 0x7D0D}, /* East Asian ideograph */ + {"\x51\x64", 0, 0x53BF}, /* East Asian ideograph */ + {"\x55\x64", 0, 0x6FDB}, /* East Asian ideograph (Version J extension) */ + {"\x56\x4B", 0, 0x865E}, /* East Asian ideograph (variant of EACC 21564B) */ + {"\x57\x46", 0, 0x672F}, /* East Asian ideograph */ + {"\x58\x37", 0, 0x8BA0}, /* East Asian ideograph */ + {"\x58\x47", 0, 0x8A25}, /* East Asian ideograph (variant of EACC 215847) */ + {"\x5D\x3E", 0, 0x9485}, /* East Asian ideograph */ + {"\x5E\x21", 0, 0x953A}, /* East Asian ideograph */ + {"\x5E\x60", 0, 0x95EB}, /* East Asian ideograph (Version J extension) */ + {"\x5F\x35", 0, 0x9668}, /* East Asian ideograph (Version J extension) */ + {"\x60\x36", 0, 0x97FF}, /* East Asian ideograph */ + {"\x60\x4E", 0, 0x984F}, /* East Asian ideograph */ + {"\x60\x64", 0, 0x9963}, /* East Asian ideograph */ + {"\x60\x6B", 0, 0x98F0}, /* East Asian ideograph */ + {"\x60\x76", 0, 0x9980}, /* East Asian ideograph */ + {"\x62\x60", 0, 0x5E7A}, /* East Asian ideograph */ + {"\x63\x24", 0, 0x9F61}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page643 = { + marc8_9page643_flat, 0 +}; +/* PAGE 642 */ +struct yaz_iconv_trie_flat marc8_9page642_flat[] = { + {"\x30\x4C", 0, 0x5E79}, /* East Asian ideograph */ + {"\x30\x78", 0, 0x5023}, /* East Asian ideograph */ + {"\x34\x7D", 0, 0x84E1}, /* East Asian ideograph */ + {"\x35\x73", 0, 0x8B3C}, /* East Asian ideograph */ + {"\x37\x7B", 0, 0x784E}, /* East Asian ideograph (Version J extension) */ + {"\x3D\x6F", 0, 0x8986}, /* East Asian ideograph */ + {"\x3E\x47", 0, 0x5379}, /* East Asian ideograph */ + {"\x3F\x24", 0, 0x614E}, /* East Asian ideograph */ + {"\x40\x4F", 0, 0x638A}, /* East Asian ideograph */ + {"\x42\x4F", 0, 0x542F}, /* East Asian ideograph (variant of EACC 27424F) */ + {"\x44\x72", 0, 0x7881}, /* East Asian ideograph */ + {"\x45\x6D", 0, 0x8263}, /* East Asian ideograph */ + {"\x46\x21", 0, 0x9A69}, /* East Asian ideograph */ + {"\x46\x29", 0, 0x4E97}, /* East Asian ideograph */ + {"\x46\x2B", 0, 0x5E30}, /* East Asian ideograph */ + {"\x47\x6F", 0, 0x51C8}, /* East Asian ideograph */ + {"\x49\x26", 0, 0x6E08}, /* East Asian ideograph */ + {"\x49\x56", 0, 0x7832}, /* East Asian ideograph */ + {"\x4A\x28", 0, 0x9DF0}, /* East Asian ideograph */ + {"\x4A\x60", 0, 0x7266}, /* East Asian ideograph */ + {"\x4C\x3C", 0, 0x7582}, /* East Asian ideograph */ + {"\x51\x6D", 0, 0x6403}, /* East Asian ideograph */ + {"\x55\x64", 0, 0x61DE}, /* East Asian ideograph */ + {"\x56\x31", 0, 0x517F}, /* East Asian ideograph */ + {"\x59\x59", 0, 0x8276}, /* East Asian ideograph */ + {"\x5E\x60", 0, 0x9586}, /* East Asian ideograph */ + {"\x5F\x34", 0, 0x9699}, /* East Asian ideograph */ + {"\x5F\x35", 0, 0x6B9E}, /* East Asian ideograph */ + {"\x5F\x49", 0, 0x7431}, /* East Asian ideograph */ + {"\x61\x4C", 0, 0x99C5}, /* East Asian ideograph */ + {"\x61\x79", 0, 0x5C1F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page642 = { + marc8_9page642_flat, 0 +}; +/* PAGE 641 */ +struct yaz_iconv_trie_flat marc8_9page641_flat[] = { + {"\x2D\x44", 0, 0x8842}, /* East Asian ideograph */ + {"\x39\x22", 0, 0x8DB5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page641 = { + marc8_9page641_flat, 0 +}; +/* PAGE 640 */ +struct yaz_iconv_trie_flat marc8_9page640_flat[] = { + {"\x28\x4C", 0, 0x53A9}, /* East Asian ideograph (variant of EACC 4C284C) */ + {"\x2F\x7C", 0, 0x64C0}, /* East Asian ideograph */ + {"\x3B\x7D", 0, 0x67B1}, /* East Asian ideograph */ + {"\x40\x34", 0, 0x6855}, /* East Asian ideograph */ + {"\x6A\x7C", 0, 0x7BEA}, /* East Asian ideograph */ + {"\x78\x7D", 0, 0x80FC}, /* East Asian ideograph */ + {"\x79\x70", 0, 0x81D5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page640 = { + marc8_9page640_flat, 0 +}; +/* PAGE 639 */ +struct yaz_iconv_trie_flat marc8_9page639_flat[] = { + {"\x6B", 0, 0x60A4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page639 = { + marc8_9page639_flat, 0 +}; +/* PAGE 638 */ +struct yaz_iconv_trie_flat marc8_9page638_flat[] = { + {"\x2F", 0, 0x521F}, /* East Asian ideograph */ + {"\x33", 0, 0x5259}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page638 = { + marc8_9page638_flat, 0 +}; +/* PAGE 637 */ +struct yaz_iconv_trie_flat marc8_9page637_flat[] = { + {"\x23", 0, 0x9BFD}, /* East Asian ideograph (variant of EACC 216223) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page637 = { + marc8_9page637_flat, 0 +}; +/* PAGE 636 */ +struct yaz_iconv_trie_flat marc8_9page636_flat[] = { + {"\x67", 0, 0x9B2A}, /* East Asian ideograph */ + {"\x79", 0, 0x5C20}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page636 = { + marc8_9page636_flat, 0 +}; +/* PAGE 635 */ +struct yaz_iconv_trie_flat marc8_9page635_flat[] = { + {"\x74", 0, 0x55B0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page635 = { + marc8_9page635_flat, 0 +}; +/* PAGE 634 */ +struct yaz_iconv_trie_flat marc8_9page634_flat[] = { + {"\x49", 0, 0x5F6B}, /* East Asian ideograph */ + {"\x68", 0, 0x8987}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page634 = { + marc8_9page634_flat, 0 +}; +/* PAGE 633 */ +struct yaz_iconv_trie_flat marc8_9page633_flat[] = { + {"\x2F", 0, 0x5277}, /* East Asian ideograph */ + {"\x3D", 0, 0x9295}, /* East Asian ideograph */ + {"\x42", 0, 0x9274}, /* East Asian ideograph */ + {"\x6F", 0, 0x7A7D}, /* East Asian ideograph */ + {"\x71", 0, 0x5742}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page633 = { + marc8_9page633_flat, 0 +}; +/* PAGE 632 */ +struct yaz_iconv_trie_flat marc8_9page632_flat[] = { + {"\x23", 0, 0x91BB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page632 = { + marc8_9page632_flat, 0 +}; +/* PAGE 631 */ +struct yaz_iconv_trie_flat marc8_9page631_flat[] = { + {"\x2F", 0, 0x58F2}, /* East Asian ideograph */ + {"\x36", 0, 0x983C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page631 = { + marc8_9page631_flat, 0 +}; +/* PAGE 630 */ +struct yaz_iconv_trie_flat marc8_9page630_flat[] = { + {"\x3F", 0, 0x8A3C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page630 = { + marc8_9page630_flat, 0 +}; +/* PAGE 629 */ +struct yaz_iconv_trie_flat marc8_9page629_flat[] = { + {"\x21", 0, 0x97E4}, /* East Asian ideograph */ + {"\x29", 0, 0x69FB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page629 = { + marc8_9page629_flat, 0 +}; +/* PAGE 628 */ +struct yaz_iconv_trie_flat marc8_9page628_flat[] = { + {"\x73", 0, 0x7DAF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page628 = { + marc8_9page628_flat, 0 +}; +/* PAGE 627 */ +struct yaz_iconv_trie_flat marc8_9page627_flat[] = { + {"\x3C", 0, 0x56CC}, /* East Asian ideograph */ + {"\x43", 0, 0x4E55}, /* East Asian ideograph */ + {"\x52", 0, 0x87A1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page627 = { + marc8_9page627_flat, 0 +}; +/* PAGE 626 */ +struct yaz_iconv_trie_flat marc8_9page626_flat[] = { + {"\x3C", 0, 0x5D0B}, /* East Asian ideograph */ + {"\x64", 0, 0x6726}, /* East Asian ideograph */ + {"\x68", 0, 0x83DD}, /* East Asian ideograph */ + {"\x77", 0, 0x854B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page626 = { + marc8_9page626_flat, 0 +}; +/* PAGE 625 */ +struct yaz_iconv_trie_flat marc8_9page625_flat[] = { + {"\x77", 0, 0x85A6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page625 = { + marc8_9page625_flat, 0 +}; +/* PAGE 624 */ +struct yaz_iconv_trie_flat marc8_9page624_flat[] = { + {"\x30", 0, 0x5BD8}, /* East Asian ideograph */ + {"\x5B", 0, 0x66DC}, /* East Asian ideograph */ + {"\x6B", 0, 0x7094}, /* East Asian ideograph */ + {"\x6B", 0, 0x7094}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page624 = { + marc8_9page624_flat, 0 +}; +/* PAGE 623 */ +struct yaz_iconv_trie_flat marc8_9page623_flat[] = { + {"\x79", 0, 0x7D75}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page623 = { + marc8_9page623_flat, 0 +}; +/* PAGE 622 */ +struct yaz_iconv_trie_flat marc8_9page622_flat[] = { + {"\x50", 0, 0x7BED}, /* East Asian ideograph */ + {"\x5B", 0, 0x9B3B}, /* East Asian ideograph */ + {"\x63", 0, 0x9939}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page622 = { + marc8_9page622_flat, 0 +}; +/* PAGE 621 */ +struct yaz_iconv_trie_flat marc8_9page621_flat[] = { + {"\x2D", 0, 0x7546}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page621 = { + marc8_9page621_flat, 0 +}; +/* PAGE 620 */ +struct yaz_iconv_trie_flat marc8_9page620_flat[] = { + {"\x60", 0, 0x9AE6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page620 = { + marc8_9page620_flat, 0 +}; +/* PAGE 619 */ +struct yaz_iconv_trie_flat marc8_9page619_flat[] = { + {"\x28", 0, 0x6D5C}, /* East Asian ideograph */ + {"\x44", 0, 0x6B12}, /* East Asian ideograph */ + {"\x56", 0, 0x792E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page619 = { + marc8_9page619_flat, 0 +}; +/* PAGE 618 */ +struct yaz_iconv_trie_flat marc8_9page618_flat[] = { + {"\x3B", 0, 0x9061}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page618 = { + marc8_9page618_flat, 0 +}; +/* PAGE 617 */ +struct yaz_iconv_trie_flat marc8_9page617_flat[] = { + {"\x35", 0, 0x6C3E}, /* East Asian ideograph */ + {"\x6F", 0, 0x51C0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page617 = { + marc8_9page617_flat, 0 +}; +/* PAGE 616 */ +struct yaz_iconv_trie_flat marc8_9page616_flat[] = { + {"\x34", 0, 0x6B96}, /* East Asian ideograph (variant of EACC 214634) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page616 = { + marc8_9page616_flat, 0 +}; +/* PAGE 615 */ +struct yaz_iconv_trie_flat marc8_9page615_flat[] = { + {"\x6D", 0, 0x826B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page615 = { + marc8_9page615_flat, 0 +}; +/* PAGE 614 */ +struct yaz_iconv_trie_flat marc8_9page614_flat[] = { + {"\x44", 0, 0x8988}, /* East Asian ideograph */ + {"\x7D", 0, 0x6AC2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page614 = { + marc8_9page614_flat, 0 +}; +/* PAGE 613 */ +struct yaz_iconv_trie_flat marc8_9page613_flat[] = { + {"\x30", 0, 0x6644}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page613 = { + marc8_9page613_flat, 0 +}; +/* PAGE 612 */ +struct yaz_iconv_trie_flat marc8_9page612_flat[] = { + {"\x43", 0, 0x4FF2}, /* East Asian ideograph */ + {"\x4F", 0, 0x5554}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page612 = { + marc8_9page612_flat, 0 +}; +/* PAGE 611 */ +struct yaz_iconv_trie_flat marc8_9page611_flat[] = { + {"\x7C", 0, 0x62E0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page611 = { + marc8_9page611_flat, 0 +}; +/* PAGE 610 */ +struct yaz_iconv_trie_flat marc8_9page610_flat[] = { + {"\x22", 0, 0x6443}, /* East Asian ideograph */ + {"\x42", 0, 0x646D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page610 = { + marc8_9page610_flat, 0 +}; +/* PAGE 609 */ +struct yaz_iconv_trie_flat marc8_9page609_flat[] = { + {"\x47", 0, 0x8CC9}, /* East Asian ideograph */ + {"\x4C", 0, 0x6142}, /* East Asian ideograph */ + {"\x61", 0, 0x60AA}, /* East Asian ideograph */ + {"\x7D", 0, 0x7609}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page609 = { + marc8_9page609_flat, 0 +}; +/* PAGE 608 */ +struct yaz_iconv_trie_flat marc8_9page608_flat[] = { + {"\x6F", 0, 0x8907}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page608 = { + marc8_9page608_flat, 0 +}; +/* PAGE 607 */ +struct yaz_iconv_trie_flat marc8_9page607_flat[] = { + {"\x52", 0, 0x8D26}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page607 = { + marc8_9page607_flat, 0 +}; +/* PAGE 606 */ +struct yaz_iconv_trie_flat marc8_9page606_flat[] = { + {"\x39", 0, 0x5BF3}, /* East Asian ideograph */ + {"\x6E", 0, 0x5C97}, /* East Asian ideograph */ + {"\x78", 0, 0x5CC4}, /* East Asian ideograph (duplicate simplified) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page606 = { + marc8_9page606_flat, 0 +}; +/* PAGE 605 */ +struct yaz_iconv_trie_flat marc8_9page605_flat[] = { + {"\x44", 0, 0x59B3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page605 = { + marc8_9page605_flat, 0 +}; +/* PAGE 604 */ +struct yaz_iconv_trie_flat marc8_9page604_flat[] = { + {"\x70", 0, 0x56F2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page604 = { + marc8_9page604_flat, 0 +}; +/* PAGE 603 */ +struct yaz_iconv_trie_flat marc8_9page603_flat[] = { + {"\x5A", 0, 0x8AE0}, /* East Asian ideograph */ + {"\x5E", 0, 0x559E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page603 = { + marc8_9page603_flat, 0 +}; +/* PAGE 602 */ +struct yaz_iconv_trie_flat marc8_9page602_flat[] = { + {"\x73", 0, 0x5611}, /* East Asian ideograph */ + {"\x77", 0, 0x9FA2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page602 = { + marc8_9page602_flat, 0 +}; +/* PAGE 601 */ +struct yaz_iconv_trie_flat marc8_9page601_flat[] = { + {"\x28", 0, 0x5227}, /* East Asian ideograph */ + {"\x39", 0, 0x61C3}, /* East Asian ideograph */ + {"\x5B", 0, 0x965E}, /* East Asian ideograph */ + {"\x60", 0, 0x604A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page601 = { + marc8_9page601_flat, 0 +}; +/* PAGE 600 */ +struct yaz_iconv_trie_flat marc8_9page600_flat[] = { + {"\x46", 0, 0x4F1D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page600 = { + marc8_9page600_flat, 0 +}; +/* PAGE 599 */ +struct yaz_iconv_trie_flat marc8_9page599_flat[] = { + {"\x2D", 0, 0x534B}, /* East Asian ideograph */ + {"\x3A", 0, 0x5EFC}, /* East Asian ideograph */ + {"\x4C", 0, 0x4E81}, /* East Asian ideograph */ + {"\x52", 0, 0x65BC}, /* East Asian ideograph */ + {"\x54", 0, 0x4F0D}, /* East Asian ideograph */ + {"\x78", 0, 0x9AE3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page599 = { + marc8_9page599_flat, 0 +}; +/* PAGE 598 */ +struct yaz_iconv_trie_dir marc8_9page598_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {600, 0, 0}, + {0, 0, 0}, + {601, 0, 0}, + {0, 0, 0}, + {602, 0, 0}, + {603, 0, 0}, + {604, 0, 0}, + {605, 0, 0}, + {0, 0, 0}, + {606, 0, 0}, + {0, 0, 0}, + {607, 0, 0}, + {608, 0, 0}, + {609, 0, 0}, + {610, 0, 0}, + {0, 0, 0}, + {611, 0, 0}, + {612, 0, 0}, + {613, 0, 0}, + {614, 0, 0}, + {615, 0, 0}, + {616, 0, 0}, + {617, 0, 0}, + {618, 0, 0}, + {619, 0, 0}, + {620, 0, 0}, + {621, 0, 0}, + {0, 0, 0}, + {622, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {623, 0, 0}, + {624, 0, 0}, + {625, 0, 0}, + {0, 0, 0}, + {626, 0, 0}, + {627, 0, 0}, + {628, 0, 0}, + {629, 0, 0}, + {630, 0, 0}, + {631, 0, 0}, + {632, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {633, 0, 0}, + {634, 0, 0}, + {635, 0, 0}, + {636, 0, 0}, + {637, 0, 0}, + {638, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {639, 0, 0}, + {640, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page598 = { + 0, marc8_9page598_dir +}; +/* PAGE 597 */ +struct yaz_iconv_trie_flat marc8_9page597_flat[] = { + {"\x34\x4D", 0, 0x8B5B}, /* East Asian ideograph */ + {"\x34\x7B", 0, 0x8B2D}, /* East Asian ideograph */ + {"\x41\x56", 0, 0x91BE}, /* East Asian ideograph */ + {"\x50\x53", 0, 0x98C8}, /* East Asian ideograph */ + {"\x57\x39", 0, 0x9C76}, /* East Asian ideograph */ + {"\x5D\x5C", 0, 0x8C8E}, /* East Asian ideograph */ + {"\x5E\x76", 0, 0x82BE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page597 = { + marc8_9page597_flat, 0 +}; +/* PAGE 596 */ +struct yaz_iconv_trie_flat marc8_9page596_flat[] = { + {"\x24\x53", 0, 0x5CBD}, /* East Asian ideograph */ + {"\x38\x75", 0, 0x5FDE}, /* East Asian ideograph */ + {"\x3A\x5B", 0, 0x572C}, /* East Asian ideograph */ + {"\x3E\x38", 0, 0x7BDA}, /* East Asian ideograph */ + {"\x41\x38", 0, 0x8022}, /* East Asian ideograph */ + {"\x41\x77", 0, 0x8264}, /* East Asian ideograph */ + {"\x49\x2F", 0, 0x6D34}, /* East Asian ideograph */ + {"\x51\x75", 0, 0x7162}, /* East Asian ideograph */ + {"\x54\x52", 0, 0x7118}, /* East Asian ideograph */ + {"\x5D\x6B", 0, 0x756D}, /* East Asian ideograph */ + {"\x5E\x3B", 0, 0x80AC}, /* East Asian ideograph */ + {"\x5E\x47", 0, 0x75FE}, /* East Asian ideograph */ + {"\x61\x26", 0, 0x6900}, /* East Asian ideograph */ + {"\x66\x22", 0, 0x589D}, /* East Asian ideograph */ + {"\x68\x2A", 0, 0x7C7C}, /* East Asian ideograph */ + {"\x71\x5A", 0, 0x7E1A}, /* East Asian ideograph */ + {"\x74\x31", 0, 0x58DC}, /* East Asian ideograph */ + {"\x78\x2A", 0, 0x90C5}, /* East Asian ideograph */ + {"\x7D\x24", 0, 0x83C7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page596 = { + marc8_9page596_flat, 0 +}; +/* PAGE 595 */ +struct yaz_iconv_trie_flat marc8_9page595_flat[] = { + {"\x45", 0, 0x9F67}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page595 = { + marc8_9page595_flat, 0 +}; +/* PAGE 594 */ +struct yaz_iconv_trie_flat marc8_9page594_flat[] = { + {"\x6B", 0, 0x6031}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page594 = { + marc8_9page594_flat, 0 +}; +/* PAGE 593 */ +struct yaz_iconv_trie_flat marc8_9page593_flat[] = { + {"\x33", 0, 0x524F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page593 = { + marc8_9page593_flat, 0 +}; +/* PAGE 592 */ +struct yaz_iconv_trie_flat marc8_9page592_flat[] = { + {"\x21", 0, 0x6B6F}, /* East Asian ideograph */ + {"\x2B", 0, 0x7ADC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page592 = { + marc8_9page592_flat, 0 +}; +/* PAGE 591 */ +struct yaz_iconv_trie_flat marc8_9page591_flat[] = { + {"\x5E", 0, 0x9EAA}, /* East Asian ideograph */ + {"\x5F", 0, 0x8534}, /* East Asian ideograph */ + {"\x75", 0, 0x76BC}, /* East Asian ideograph */ + {"\x7D", 0, 0x6589}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page591 = { + marc8_9page591_flat, 0 +}; +/* PAGE 590 */ +struct yaz_iconv_trie_flat marc8_9page590_flat[] = { + {"\x5A", 0, 0x8EB0}, /* East Asian ideograph */ + {"\x62", 0, 0x9A23}, /* East Asian ideograph */ + {"\x79", 0, 0x9C7B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page590 = { + marc8_9page590_flat, 0 +}; +/* PAGE 589 */ +struct yaz_iconv_trie_flat marc8_9page589_flat[] = { + {"\x54", 0, 0x985B}, /* East Asian ideograph */ + {"\x58", 0, 0x9855}, /* East Asian ideograph */ + {"\x62", 0, 0x98C3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page589 = { + marc8_9page589_flat, 0 +}; +/* PAGE 588 */ +struct yaz_iconv_trie_flat marc8_9page588_flat[] = { + {"\x34", 0, 0x90C4}, /* East Asian ideograph */ + {"\x3D", 0, 0x96B7}, /* East Asian ideograph */ + {"\x43", 0, 0x9D08}, /* East Asian ideograph */ + {"\x49", 0, 0x9D70}, /* East Asian ideograph */ + {"\x73", 0, 0x9759}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page588 = { + marc8_9page588_flat, 0 +}; +/* PAGE 587 */ +struct yaz_iconv_trie_flat marc8_9page587_flat[] = { + {"\x21", 0, 0x9221}, /* East Asian ideograph */ + {"\x2F", 0, 0x5257}, /* East Asian ideograph */ + {"\x3D", 0, 0x9244}, /* East Asian ideograph */ + {"\x42", 0, 0x9452}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page587 = { + marc8_9page587_flat, 0 +}; +/* PAGE 586 */ +struct yaz_iconv_trie_flat marc8_9page586_flat[] = { + {"\x23", 0, 0x8A76}, /* East Asian ideograph */ + {"\x3B", 0, 0x57DC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page586 = { + marc8_9page586_flat, 0 +}; +/* PAGE 585 */ +struct yaz_iconv_trie_flat marc8_9page585_flat[] = { + {"\x70", 0, 0x5EF8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page585 = { + marc8_9page585_flat, 0 +}; +/* PAGE 584 */ +struct yaz_iconv_trie_flat marc8_9page584_flat[] = { + {"\x7B", 0, 0x8E28}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page584 = { + marc8_9page584_flat, 0 +}; +/* PAGE 583 */ +struct yaz_iconv_trie_flat marc8_9page583_flat[] = { + {"\x41", 0, 0x54D7}, /* East Asian ideograph */ + {"\x58", 0, 0x8C4A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page583 = { + marc8_9page583_flat, 0 +}; +/* PAGE 582 */ +struct yaz_iconv_trie_flat marc8_9page582_flat[] = { + {"\x21", 0, 0x97C8}, /* East Asian ideograph */ + {"\x30", 0, 0x658D}, /* East Asian ideograph */ + {"\x34", 0, 0x89E7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page582 = { + marc8_9page582_flat, 0 +}; +/* PAGE 581 */ +struct yaz_iconv_trie_flat marc8_9page581_flat[] = { + {"\x2E", 0, 0x880E}, /* East Asian ideograph */ + {"\x38", 0, 0x880F}, /* East Asian ideograph */ + {"\x60", 0, 0x88E0}, /* East Asian ideograph */ + {"\x72", 0, 0x8943}, /* East Asian ideograph */ + {"\x73", 0, 0x88B4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page581 = { + marc8_9page581_flat, 0 +}; +/* PAGE 580 */ +struct yaz_iconv_trie_flat marc8_9page580_flat[] = { + {"\x35", 0, 0x85AC}, /* East Asian ideograph */ + {"\x52", 0, 0x87C1}, /* East Asian ideograph */ + {"\x7C", 0, 0x8671}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page580 = { + marc8_9page580_flat, 0 +}; +/* PAGE 579 */ +struct yaz_iconv_trie_flat marc8_9page579_flat[] = { + {"\x61", 0, 0x8462}, /* East Asian ideograph */ + {"\x68", 0, 0x8406}, /* East Asian ideograph */ + {"\x77", 0, 0x8602}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page579 = { + marc8_9page579_flat, 0 +}; +/* PAGE 578 */ +struct yaz_iconv_trie_flat marc8_9page578_flat[] = { + {"\x45", 0, 0x67C1}, /* East Asian ideograph */ + {"\x46", 0, 0x8221}, /* East Asian ideograph */ + {"\x61", 0, 0x6CD6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page578 = { + marc8_9page578_flat, 0 +}; +/* PAGE 577 */ +struct yaz_iconv_trie_flat marc8_9page577_flat[] = { + {"\x33", 0, 0x80BB}, /* East Asian ideograph */ + {"\x47", 0, 0x81D9}, /* East Asian ideograph */ + {"\x7D", 0, 0x9AD5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page577 = { + marc8_9page577_flat, 0 +}; +/* PAGE 576 */ +struct yaz_iconv_trie_flat marc8_9page576_flat[] = { + {"\x23", 0, 0x7E8E}, /* East Asian ideograph */ + {"\x28", 0, 0x94B5}, /* East Asian ideograph */ + {"\x30", 0, 0x7F6E}, /* East Asian ideograph (variant of EACC 215230) */ + {"\x34", 0, 0x99E1}, /* East Asian ideograph */ + {"\x38", 0, 0x8989}, /* East Asian ideograph */ + {"\x3F", 0, 0x8B71}, /* East Asian ideograph */ + {"\x59", 0, 0x7E59}, /* East Asian ideograph */ + {"\x5B", 0, 0x71FF}, /* East Asian ideograph */ + {"\x76", 0, 0x8061}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page576 = { + marc8_9page576_flat, 0 +}; +/* PAGE 575 */ +struct yaz_iconv_trie_flat marc8_9page575_flat[] = { + {"\x2E", 0, 0x7E8D}, /* East Asian ideograph */ + {"\x3C", 0, 0x7D4C}, /* East Asian ideograph */ + {"\x47", 0, 0x7EEE}, /* East Asian ideograph */ + {"\x4C", 0, 0x7DD1}, /* East Asian ideograph */ + {"\x5C", 0, 0x7DAB}, /* East Asian ideograph */ + {"\x6B", 0, 0x7DD0}, /* East Asian ideograph */ + {"\x6D", 0, 0x6374}, /* East Asian ideograph */ + {"\x72", 0, 0x7D89}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page575 = { + marc8_9page575_flat, 0 +}; +/* PAGE 574 */ +struct yaz_iconv_trie_flat marc8_9page574_flat[] = { + {"\x2A", 0, 0x9257}, /* East Asian ideograph */ + {"\x2B", 0, 0x724B}, /* East Asian ideograph */ + {"\x65", 0, 0x7A45}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page574 = { + marc8_9page574_flat, 0 +}; +/* PAGE 573 */ +struct yaz_iconv_trie_flat marc8_9page573_flat[] = { + {"\x37", 0, 0x5EE9}, /* East Asian ideograph */ + {"\x3A", 0, 0x7A49}, /* East Asian ideograph */ + {"\x59", 0, 0x7A93}, /* East Asian ideograph */ + {"\x5E", 0, 0x7A91}, /* East Asian ideograph */ + {"\x71", 0, 0x54B2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page573 = { + marc8_9page573_flat, 0 +}; +/* PAGE 572 */ +struct yaz_iconv_trie_flat marc8_9page572_flat[] = { + {"\x37", 0, 0x784E}, /* East Asian ideograph */ + {"\x73", 0, 0x79A5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page572 = { + marc8_9page572_flat, 0 +}; +/* PAGE 571 */ +struct yaz_iconv_trie_flat marc8_9page571_flat[] = { + {"\x2C", 0, 0x754D}, /* East Asian ideograph */ + {"\x36", 0, 0x753B}, /* East Asian ideograph (variant of EACC 274C36) */ + {"\x37", 0, 0x8E6F}, /* East Asian ideograph */ + {"\x3E", 0, 0x8E08}, /* East Asian ideograph */ + {"\x7B", 0, 0x767A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page571 = { + marc8_9page571_flat, 0 +}; +/* PAGE 570 */ +struct yaz_iconv_trie_flat marc8_9page570_flat[] = { + {"\x28", 0, 0x91BC}, /* East Asian ideograph */ + {"\x58", 0, 0x89DD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page570 = { + marc8_9page570_flat, 0 +}; +/* PAGE 569 */ +struct yaz_iconv_trie_flat marc8_9page569_flat[] = { + {"\x2E", 0, 0x6F81}, /* East Asian ideograph */ + {"\x4A", 0, 0x70D6}, /* East Asian ideograph */ + {"\x68", 0, 0x7133}, /* East Asian ideograph */ + {"\x6A", 0, 0x934A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page569 = { + marc8_9page569_flat, 0 +}; +/* PAGE 568 */ +struct yaz_iconv_trie_flat marc8_9page568_flat[] = { + {"\x3B", 0, 0x6CDD}, /* East Asian ideograph */ + {"\x5E", 0, 0x67D2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page568 = { + marc8_9page568_flat, 0 +}; +/* PAGE 567 */ +struct yaz_iconv_trie_flat marc8_9page567_flat[] = { + {"\x29", 0, 0x6E2B}, /* East Asian ideograph */ + {"\x30", 0, 0x6E5F}, /* East Asian ideograph */ + {"\x40", 0, 0x6D1A}, /* East Asian ideograph */ + {"\x4A", 0, 0x6D1F}, /* East Asian ideograph */ + {"\x55", 0, 0x6FEC}, /* East Asian ideograph */ + {"\x5E", 0, 0x6FB9}, /* East Asian ideograph */ + {"\x5F", 0, 0x60BD}, /* East Asian ideograph */ + {"\x6F", 0, 0x6D44}, /* East Asian ideograph */ + {"\x70", 0, 0x5A6C}, /* East Asian ideograph */ + {"\x7B", 0, 0x904A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page567 = { + marc8_9page567_flat, 0 +}; +/* PAGE 566 */ +struct yaz_iconv_trie_flat marc8_9page566_flat[] = { + {"\x21", 0, 0x8B99}, /* East Asian ideograph */ + {"\x33", 0, 0x6B8B}, /* East Asian ideograph (variant of EACC 274633) */ + {"\x3C", 0, 0x6BBB}, /* East Asian ideograph */ + {"\x65", 0, 0x6C61}, /* East Asian ideograph */ + {"\x74", 0, 0x76C5}, /* East Asian ideograph */ + {"\x7A", 0, 0x6CA1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page566 = { + marc8_9page566_flat, 0 +}; +/* PAGE 565 */ +struct yaz_iconv_trie_flat marc8_9page565_flat[] = { + {"\x27", 0, 0x6918}, /* East Asian ideograph */ + {"\x50", 0, 0x7F47}, /* East Asian ideograph */ + {"\x6D", 0, 0x826A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page565 = { + marc8_9page565_flat, 0 +}; +/* PAGE 564 */ +struct yaz_iconv_trie_flat marc8_9page564_flat[] = { + {"\x25", 0, 0x76C3}, /* East Asian ideograph */ + {"\x49", 0, 0x6144}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page564 = { + marc8_9page564_flat, 0 +}; +/* PAGE 563 */ +struct yaz_iconv_trie_flat marc8_9page563_flat[] = { + {"\x2F", 0, 0x664B}, /* East Asian ideograph */ + {"\x3E", 0, 0x95C7}, /* East Asian ideograph */ + {"\x42", 0, 0x7156}, /* East Asian ideograph */ + {"\x57", 0, 0x6702}, /* East Asian ideograph */ + {"\x69", 0, 0x5932}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page563 = { + marc8_9page563_flat, 0 +}; +/* PAGE 562 */ +struct yaz_iconv_trie_flat marc8_9page562_flat[] = { + {"\x2A", 0, 0x62E1}, /* East Asian ideograph */ + {"\x3D", 0, 0x53CE}, /* East Asian ideograph */ + {"\x43", 0, 0x52B9}, /* East Asian ideograph */ + {"\x44", 0, 0x6559}, /* East Asian ideograph */ + {"\x56", 0, 0x6B5B}, /* East Asian ideograph */ + {"\x60", 0, 0x89D4}, /* East Asian ideograph */ + {"\x77", 0, 0x65EF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page562 = { + marc8_9page562_flat, 0 +}; +/* PAGE 561 */ +struct yaz_iconv_trie_flat marc8_9page561_flat[] = { + {"\x31", 0, 0x6425}, /* East Asian ideograph */ + {"\x7E", 0, 0x629E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page561 = { + marc8_9page561_flat, 0 +}; +/* PAGE 560 */ +struct yaz_iconv_trie_flat marc8_9page560_flat[] = { + {"\x45", 0, 0x629B}, /* East Asian ideograph */ + {"\x50", 0, 0x62D5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page560 = { + marc8_9page560_flat, 0 +}; +/* PAGE 559 */ +struct yaz_iconv_trie_flat marc8_9page559_flat[] = { + {"\x22", 0, 0x6168}, /* East Asian ideograph (variant of EACC 213F22) */ + {"\x24", 0, 0x7718}, /* East Asian ideograph */ + {"\x3F", 0, 0x51F4}, /* East Asian ideograph */ + {"\x55", 0, 0x5B3E}, /* East Asian ideograph */ + {"\x58", 0, 0x61F4}, /* East Asian ideograph */ + {"\x5B", 0, 0x6133}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page559 = { + marc8_9page559_flat, 0 +}; +/* PAGE 558 */ +struct yaz_iconv_trie_flat marc8_9page558_flat[] = { + {"\x7D", 0, 0x7652}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page558 = { + marc8_9page558_flat, 0 +}; +/* PAGE 557 */ +struct yaz_iconv_trie_flat marc8_9page557_flat[] = { + {"\x28", 0, 0x53A8}, /* East Asian ideograph */ + {"\x2A", 0, 0x5E83}, /* East Asian ideograph */ + {"\x2F", 0, 0x5E81}, /* East Asian ideograph */ + {"\x42", 0, 0x7D43}, /* East Asian ideograph */ + {"\x48", 0, 0x5F3A}, /* East Asian ideograph */ + {"\x4C", 0, 0x7030}, /* East Asian ideograph */ + {"\x54", 0, 0x4EFD}, /* East Asian ideograph */ + {"\x75", 0, 0x5FB3}, /* East Asian ideograph */ + {"\x75", 0, 0x5FB3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page557 = { + marc8_9page557_flat, 0 +}; +/* PAGE 556 */ +struct yaz_iconv_trie_flat marc8_9page556_flat[] = { + {"\x21", 0, 0x7895}, /* East Asian ideograph */ + {"\x52", 0, 0x8CEC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page556 = { + marc8_9page556_flat, 0 +}; +/* PAGE 555 */ +struct yaz_iconv_trie_flat marc8_9page555_flat[] = { + {"\x2F", 0, 0x9029}, /* East Asian ideograph */ + {"\x44", 0, 0x5B2D}, /* East Asian ideograph */ + {"\x63", 0, 0x59C9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page555 = { + marc8_9page555_flat, 0 +}; +/* PAGE 554 */ +struct yaz_iconv_trie_flat marc8_9page554_flat[] = { + {"\x6E", 0, 0x576F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page554 = { + marc8_9page554_flat, 0 +}; +/* PAGE 553 */ +struct yaz_iconv_trie_flat marc8_9page553_flat[] = { + {"\x68", 0, 0x8FF4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page553 = { + marc8_9page553_flat, 0 +}; +/* PAGE 552 */ +struct yaz_iconv_trie_flat marc8_9page552_flat[] = { + {"\x23", 0, 0x9F69}, /* East Asian ideograph */ + {"\x2A", 0, 0x9B28}, /* East Asian ideograph */ + {"\x42", 0, 0x8A92}, /* East Asian ideograph */ + {"\x5A", 0, 0x5405}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page552 = { + marc8_9page552_flat, 0 +}; +/* PAGE 551 */ +struct yaz_iconv_trie_flat marc8_9page551_flat[] = { + {"\x29", 0, 0x53DC}, /* East Asian ideograph */ + {"\x4E", 0, 0x608B}, /* East Asian ideograph */ + {"\x56", 0, 0x9A03}, /* East Asian ideograph */ + {"\x5C", 0, 0x5449}, /* East Asian ideograph */ + {"\x64", 0, 0x5415}, /* East Asian ideograph */ + {"\x73", 0, 0x8656}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page551 = { + marc8_9page551_flat, 0 +}; +/* PAGE 550 */ +struct yaz_iconv_trie_flat marc8_9page550_flat[] = { + {"\x21", 0, 0x91FC}, /* East Asian ideograph */ + {"\x23", 0, 0x5264}, /* East Asian ideograph */ + {"\x28", 0, 0x523C}, /* East Asian ideograph */ + {"\x75", 0, 0x9628}, /* East Asian ideograph */ + {"\x7D", 0, 0x53C1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page550 = { + marc8_9page550_flat, 0 +}; +/* PAGE 549 */ +struct yaz_iconv_trie_flat marc8_9page549_flat[] = { + {"\x23", 0, 0x4E21}, /* East Asian ideograph */ + {"\x2A", 0, 0x4E93}, /* East Asian ideograph */ + {"\x30", 0, 0x518A}, /* East Asian ideograph */ + {"\x3C", 0, 0x6C37}, /* East Asian ideograph */ + {"\x44", 0, 0x51DB}, /* East Asian ideograph */ + {"\x4E", 0, 0x51FE}, /* East Asian ideograph */ + {"\x77", 0, 0x5270}, /* East Asian ideograph */ + {"\x7B", 0, 0x52E6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page549 = { + marc8_9page549_flat, 0 +}; +/* PAGE 548 */ +struct yaz_iconv_trie_flat marc8_9page548_flat[] = { + {"\x40", 0, 0x4FFB}, /* East Asian ideograph */ + {"\x51", 0, 0x5FBA}, /* East Asian ideograph */ + {"\x5D", 0, 0x4FA1}, /* East Asian ideograph */ + {"\x7A", 0, 0x5150}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page548 = { + marc8_9page548_flat, 0 +}; +/* PAGE 547 */ +struct yaz_iconv_trie_flat marc8_9page547_flat[] = { + {"\x4C", 0, 0x5FA0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page547 = { + marc8_9page547_flat, 0 +}; +/* PAGE 546 */ +struct yaz_iconv_trie_flat marc8_9page546_flat[] = { + {"\x21", 0, 0x58F9}, /* East Asian ideograph */ + {"\x3A", 0, 0x8FFA}, /* East Asian ideograph */ + {"\x4C", 0, 0x4E79}, /* East Asian ideograph */ + {"\x51", 0, 0x8CB3}, /* East Asian ideograph */ + {"\x60", 0, 0x4EAF}, /* East Asian ideograph */ + {"\x66", 0, 0x5FC8}, /* East Asian ideograph */ + {"\x6C", 0, 0x8B90}, /* East Asian ideograph */ + {"\x78", 0, 0x5F77}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page546 = { + marc8_9page546_flat, 0 +}; +/* PAGE 545 */ +struct yaz_iconv_trie_dir marc8_9page545_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {547, 0, 0}, + {548, 0, 0}, + {549, 0, 0}, + {550, 0, 0}, + {551, 0, 0}, + {552, 0, 0}, + {553, 0, 0}, + {554, 0, 0}, + {555, 0, 0}, + {556, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {557, 0, 0}, + {558, 0, 0}, + {559, 0, 0}, + {560, 0, 0}, + {561, 0, 0}, + {562, 0, 0}, + {563, 0, 0}, + {564, 0, 0}, + {565, 0, 0}, + {566, 0, 0}, + {567, 0, 0}, + {568, 0, 0}, + {569, 0, 0}, + {570, 0, 0}, + {571, 0, 0}, + {0, 0, 0}, + {572, 0, 0}, + {0, 0, 0}, + {573, 0, 0}, + {574, 0, 0}, + {575, 0, 0}, + {576, 0, 0}, + {577, 0, 0}, + {578, 0, 0}, + {579, 0, 0}, + {580, 0, 0}, + {581, 0, 0}, + {582, 0, 0}, + {583, 0, 0}, + {584, 0, 0}, + {585, 0, 0}, + {586, 0, 0}, + {0, 0, 0}, + {587, 0, 0}, + {588, 0, 0}, + {589, 0, 0}, + {590, 0, 0}, + {591, 0, 0}, + {592, 0, 0}, + {593, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {594, 0, 0}, + {595, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {596, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page545 = { + 0, marc8_9page545_dir +}; +/* PAGE 544 */ +struct yaz_iconv_trie_flat marc8_9page544_flat[] = { + {"\x25\x2D", 0, 0x6A22}, /* East Asian ideograph */ + {"\x25\x2E", 0, 0x8507}, /* East Asian ideograph */ + {"\x2A\x5A", 0, 0x868B}, /* East Asian ideograph (unrelated variant of EACC 23293D) */ + {"\x2A\x64", 0, 0x87B5}, /* East Asian ideograph */ + {"\x2A\x73", 0, 0x87CA}, /* East Asian ideograph */ + {"\x2D\x79", 0, 0x88B5}, /* East Asian ideograph */ + {"\x2F\x5D", 0, 0x7E48}, /* East Asian ideograph */ + {"\x31\x2B", 0, 0x89BB}, /* East Asian ideograph */ + {"\x31\x43", 0, 0x89F5}, /* East Asian ideograph (unrelated variant of EACC 23315E) */ + {"\x31\x7D", 0, 0x8A7E}, /* East Asian ideograph */ + {"\x33\x63", 0, 0x8B1A}, /* East Asian ideograph */ + {"\x36\x39", 0, 0x8C7C}, /* East Asian ideograph */ + {"\x38\x33", 0, 0x8D91}, /* East Asian ideograph */ + {"\x38\x6F", 0, 0x8DD7}, /* East Asian ideograph */ + {"\x3A\x5E", 0, 0x8E6E}, /* East Asian ideograph */ + {"\x3B\x63", 0, 0x5E32}, /* East Asian ideograph */ + {"\x3C\x2D", 0, 0x8F3C}, /* East Asian ideograph */ + {"\x3D\x5D", 0, 0x900E}, /* East Asian ideograph */ + {"\x40\x53", 0, 0x914F}, /* East Asian ideograph */ + {"\x42\x31", 0, 0x8019}, /* East Asian ideograph (unrelated variant of EACC 215266) */ + {"\x44\x5F", 0, 0x941A}, /* East Asian ideograph */ + {"\x4A\x2E", 0, 0x90B4}, /* East Asian ideograph */ + {"\x4A\x4A", 0, 0x5F8F}, /* East Asian ideograph */ + {"\x51\x58", 0, 0x7CC7}, /* East Asian ideograph */ + {"\x54\x76", 0, 0x9AE1}, /* East Asian ideograph */ + {"\x57\x5F", 0, 0x9ABE}, /* East Asian ideograph */ + {"\x58\x5C", 0, 0x9C51}, /* East Asian ideograph (unrelated variant of EACC 235945) */ + {"\x58\x70", 0, 0x9C1B}, /* East Asian ideograph */ + {"\x59\x73", 0, 0x9CEC}, /* East Asian ideograph */ + {"\x5A\x48", 0, 0x9D44}, /* East Asian ideograph */ + {"\x5D\x3C", 0, 0x6EF7}, /* East Asian ideograph */ + {"\x5D\x49", 0, 0x9EA4}, /* East Asian ideograph */ + {"\x5D\x5C", 0, 0x730A}, /* East Asian ideograph */ + {"\x5E\x42", 0, 0x9EC9}, /* East Asian ideograph */ + {"\x5E\x66", 0, 0x9B12}, /* East Asian ideograph */ + {"\x5E\x7D", 0, 0x6641}, /* East Asian ideograph */ + {"\x5F\x45", 0, 0x86A1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page544 = { + marc8_9page544_flat, 0 +}; +/* PAGE 543 */ +struct yaz_iconv_trie_flat marc8_9page543_flat[] = { + {"\x24", 0, 0x83F0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page543 = { + marc8_9page543_flat, 0 +}; +/* PAGE 542 */ +struct yaz_iconv_trie_flat marc8_9page542_flat[] = { + {"\x2E", 0, 0x831C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page542 = { + marc8_9page542_flat, 0 +}; +/* PAGE 541 */ +struct yaz_iconv_trie_flat marc8_9page541_flat[] = { + {"\x5F", 0, 0x8037}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page541 = { + marc8_9page541_flat, 0 +}; +/* PAGE 540 */ +struct yaz_iconv_trie_flat marc8_9page540_flat[] = { + {"\x2E", 0, 0x7516}, /* East Asian ideograph */ + {"\x31", 0, 0x7F48}, /* East Asian ideograph */ + {"\x50", 0, 0x7F82}, /* East Asian ideograph */ + {"\x51", 0, 0x7F58}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page540 = { + marc8_9page540_flat, 0 +}; +/* PAGE 539 */ +struct yaz_iconv_trie_flat marc8_9page539_flat[] = { + {"\x28", 0, 0x5FAD}, /* East Asian ideograph */ + {"\x5D", 0, 0x7D56}, /* East Asian ideograph */ + {"\x74", 0, 0x7E89}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page539 = { + marc8_9page539_flat, 0 +}; +/* PAGE 538 */ +struct yaz_iconv_trie_flat marc8_9page538_flat[] = { + {"\x5A", 0, 0x7E27}, /* East Asian ideograph */ + {"\x7C", 0, 0x7D63}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page538 = { + marc8_9page538_flat, 0 +}; +/* PAGE 537 */ +struct yaz_iconv_trie_flat marc8_9page537_flat[] = { + {"\x62", 0, 0x7D4F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page537 = { + marc8_9page537_flat, 0 +}; +/* PAGE 536 */ +struct yaz_iconv_trie_flat marc8_9page536_flat[] = { + {"\x35", 0, 0x6CD4}, /* East Asian ideograph */ + {"\x43", 0, 0x9908}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page536 = { + marc8_9page536_flat, 0 +}; +/* PAGE 535 */ +struct yaz_iconv_trie_flat marc8_9page535_flat[] = { + {"\x26", 0, 0x7BE0}, /* East Asian ideograph */ + {"\x27", 0, 0x7B2E}, /* East Asian ideograph */ + {"\x3E", 0, 0x7B59}, /* East Asian ideograph */ + {"\x46", 0, 0x7BE6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page535 = { + marc8_9page535_flat, 0 +}; +/* PAGE 534 */ +struct yaz_iconv_trie_flat marc8_9page534_flat[] = { + {"\x54", 0, 0x7B04}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page534 = { + marc8_9page534_flat, 0 +}; +/* PAGE 533 */ +struct yaz_iconv_trie_flat marc8_9page533_flat[] = { + {"\x4E", 0, 0x8020}, /* East Asian ideograph */ + {"\x6F", 0, 0x7A19}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page533 = { + marc8_9page533_flat, 0 +}; +/* PAGE 532 */ +struct yaz_iconv_trie_flat marc8_9page532_flat[] = { + {"\x4F", 0, 0x772D}, /* East Asian ideograph */ + {"\x5F", 0, 0x77C1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page532 = { + marc8_9page532_flat, 0 +}; +/* PAGE 531 */ +struct yaz_iconv_trie_flat marc8_9page531_flat[] = { + {"\x4A", 0, 0x7690}, /* East Asian ideograph */ + {"\x4A", 0, 0x7690}, /* East Asian ideograph */ + {"\x60", 0, 0x76A1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page531 = { + marc8_9page531_flat, 0 +}; +/* PAGE 530 */ +struct yaz_iconv_trie_flat marc8_9page530_flat[] = { + {"\x6F", 0, 0x75B8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page530 = { + marc8_9page530_flat, 0 +}; +/* PAGE 529 */ +struct yaz_iconv_trie_flat marc8_9page529_flat[] = { + {"\x40", 0, 0x73B3}, /* East Asian ideograph */ + {"\x78", 0, 0x74A2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page529 = { + marc8_9page529_flat, 0 +}; +/* PAGE 528 */ +struct yaz_iconv_trie_flat marc8_9page528_flat[] = { + {"\x52", 0, 0x71FE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page528 = { + marc8_9page528_flat, 0 +}; +/* PAGE 527 */ +struct yaz_iconv_trie_flat marc8_9page527_flat[] = { + {"\x5D", 0, 0x715B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page527 = { + marc8_9page527_flat, 0 +}; +/* PAGE 526 */ +struct yaz_iconv_trie_flat marc8_9page526_flat[] = { + {"\x6D", 0, 0x70B1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page526 = { + marc8_9page526_flat, 0 +}; +/* PAGE 525 */ +struct yaz_iconv_trie_flat marc8_9page525_flat[] = { + {"\x41", 0, 0x7032}, /* East Asian ideograph */ + {"\x56", 0, 0x9800}, /* East Asian ideograph */ + {"\x5D", 0, 0x6DE0}, /* East Asian ideograph */ + {"\x72", 0, 0x6F74}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page525 = { + marc8_9page525_flat, 0 +}; +/* PAGE 524 */ +struct yaz_iconv_trie_flat marc8_9page524_flat[] = { + {"\x3D", 0, 0x6D38}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page524 = { + marc8_9page524_flat, 0 +}; +/* PAGE 523 */ +struct yaz_iconv_trie_flat marc8_9page523_flat[] = { + {"\x35", 0, 0x6DE5}, /* East Asian ideograph */ + {"\x7B", 0, 0x6E86}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page523 = { + marc8_9page523_flat, 0 +}; +/* PAGE 522 */ +struct yaz_iconv_trie_flat marc8_9page522_flat[] = { + {"\x6B", 0, 0x6EA6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page522 = { + marc8_9page522_flat, 0 +}; +/* PAGE 521 */ +struct yaz_iconv_trie_flat marc8_9page521_flat[] = { + {"\x2F", 0, 0x6CD9}, /* East Asian ideograph */ + {"\x3B", 0, 0x6E7C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page521 = { + marc8_9page521_flat, 0 +}; +/* PAGE 520 */ +struct yaz_iconv_trie_flat marc8_9page520_flat[] = { + {"\x73", 0, 0x6FA3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page520 = { + marc8_9page520_flat, 0 +}; +/* PAGE 519 */ +struct yaz_iconv_trie_flat marc8_9page519_flat[] = { + {"\x31", 0, 0x6C73}, /* East Asian ideograph */ + {"\x39", 0, 0x6C67}, /* East Asian ideograph (variant of EACC 224739) */ + {"\x47", 0, 0x6D64}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page519 = { + marc8_9page519_flat, 0 +}; +/* PAGE 518 */ +struct yaz_iconv_trie_flat marc8_9page518_flat[] = { + {"\x70", 0, 0x6CD0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page518 = { + marc8_9page518_flat, 0 +}; +/* PAGE 517 */ +struct yaz_iconv_trie_flat marc8_9page517_flat[] = { + {"\x74", 0, 0x6AA9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page517 = { + marc8_9page517_flat, 0 +}; +/* PAGE 516 */ +struct yaz_iconv_trie_flat marc8_9page516_flat[] = { + {"\x3D", 0, 0x6AC1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page516 = { + marc8_9page516_flat, 0 +}; +/* PAGE 515 */ +struct yaz_iconv_trie_flat marc8_9page515_flat[] = { + {"\x2D", 0, 0x69B2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page515 = { + marc8_9page515_flat, 0 +}; +/* PAGE 514 */ +struct yaz_iconv_trie_flat marc8_9page514_flat[] = { + {"\x3F", 0, 0x7BA0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page514 = { + marc8_9page514_flat, 0 +}; +/* PAGE 513 */ +struct yaz_iconv_trie_flat marc8_9page513_flat[] = { + {"\x62", 0, 0x684A}, /* East Asian ideograph */ + {"\x73", 0, 0x7A1C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page513 = { + marc8_9page513_flat, 0 +}; +/* PAGE 512 */ +struct yaz_iconv_trie_flat marc8_9page512_flat[] = { + {"\x22", 0, 0x690F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page512 = { + marc8_9page512_flat, 0 +}; +/* PAGE 511 */ +struct yaz_iconv_trie_flat marc8_9page511_flat[] = { + {"\x26", 0, 0x661D}, /* East Asian ideograph */ + {"\x33", 0, 0x80AD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page511 = { + marc8_9page511_flat, 0 +}; +/* PAGE 510 */ +struct yaz_iconv_trie_flat marc8_9page510_flat[] = { + {"\x36", 0, 0x66CD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page510 = { + marc8_9page510_flat, 0 +}; +/* PAGE 509 */ +struct yaz_iconv_trie_flat marc8_9page509_flat[] = { + {"\x70", 0, 0x714A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page509 = { + marc8_9page509_flat, 0 +}; +/* PAGE 508 */ +struct yaz_iconv_trie_flat marc8_9page508_flat[] = { + {"\x29", 0, 0x65B5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page508 = { + marc8_9page508_flat, 0 +}; +/* PAGE 507 */ +struct yaz_iconv_trie_flat marc8_9page507_flat[] = { + {"\x3F", 0, 0x52C5}, /* East Asian ideograph */ + {"\x45", 0, 0x69E3}, /* East Asian ideograph */ + {"\x54", 0, 0x657F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page507 = { + marc8_9page507_flat, 0 +}; +/* PAGE 506 */ +struct yaz_iconv_trie_flat marc8_9page506_flat[] = { + {"\x28", 0, 0x6528}, /* East Asian ideograph */ + {"\x7B", 0, 0x630E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page506 = { + marc8_9page506_flat, 0 +}; +/* PAGE 505 */ +struct yaz_iconv_trie_flat marc8_9page505_flat[] = { + {"\x3A", 0, 0x6332}, /* East Asian ideograph */ + {"\x44", 0, 0x651F}, /* East Asian ideograph */ + {"\x72", 0, 0x5261}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page505 = { + marc8_9page505_flat, 0 +}; +/* PAGE 504 */ +struct yaz_iconv_trie_flat marc8_9page504_flat[] = { + {"\x28", 0, 0x640B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page504 = { + marc8_9page504_flat, 0 +}; +/* PAGE 503 */ +struct yaz_iconv_trie_flat marc8_9page503_flat[] = { + {"\x7A", 0, 0x6738}, /* East Asian ideograph */ + {"\x7C", 0, 0x634D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page503 = { + marc8_9page503_flat, 0 +}; +/* PAGE 502 */ +struct yaz_iconv_trie_flat marc8_9page502_flat[] = { + {"\x79", 0, 0x6128}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page502 = { + marc8_9page502_flat, 0 +}; +/* PAGE 501 */ +struct yaz_iconv_trie_flat marc8_9page501_flat[] = { + {"\x5B", 0, 0x605A}, /* East Asian ideograph */ + {"\x74", 0, 0x609B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page501 = { + marc8_9page501_flat, 0 +}; +/* PAGE 500 */ +struct yaz_iconv_trie_flat marc8_9page500_flat[] = { + {"\x68", 0, 0x5F51}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page500 = { + marc8_9page500_flat, 0 +}; +/* PAGE 499 */ +struct yaz_iconv_trie_flat marc8_9page499_flat[] = { + {"\x4C", 0, 0x5ECF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page499 = { + marc8_9page499_flat, 0 +}; +/* PAGE 498 */ +struct yaz_iconv_trie_flat marc8_9page498_flat[] = { + {"\x7B", 0, 0x5D1F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page498 = { + marc8_9page498_flat, 0 +}; +/* PAGE 497 */ +struct yaz_iconv_trie_dir marc8_9page497_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {499, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {500, 0, 0}, + {501, 0, 0}, + {0, 0, 0}, + {502, 0, 0}, + {0, 0, 0}, + {503, 0, 0}, + {0, 0, 0}, + {504, 0, 0}, + {505, 0, 0}, + {506, 0, 0}, + {0, 0, 0}, + {507, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {508, 0, 0}, + {509, 0, 0}, + {510, 0, 0}, + {511, 0, 0}, + {512, 0, 0}, + {513, 0, 0}, + {0, 0, 0}, + {514, 0, 0}, + {515, 0, 0}, + {516, 0, 0}, + {517, 0, 0}, + {518, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {519, 0, 0}, + {520, 0, 0}, + {521, 0, 0}, + {522, 0, 0}, + {523, 0, 0}, + {0, 0, 0}, + {524, 0, 0}, + {525, 0, 0}, + {526, 0, 0}, + {0, 0, 0}, + {527, 0, 0}, + {0, 0, 0}, + {528, 0, 0}, + {0, 0, 0}, + {529, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {530, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {531, 0, 0}, + {532, 0, 0}, + {0, 0, 0}, + {533, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {534, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {535, 0, 0}, + {536, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {537, 0, 0}, + {538, 0, 0}, + {539, 0, 0}, + {0, 0, 0}, + {540, 0, 0}, + {541, 0, 0}, + {0, 0, 0}, + {542, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {543, 0, 0}, + {544, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page497 = { + 0, marc8_9page497_dir +}; +/* PAGE 496 */ +struct yaz_iconv_trie_flat marc8_9page496_flat[] = { + {"\x6A", 0, 0x51A4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page496 = { + marc8_9page496_flat, 0 +}; +/* PAGE 495 */ +struct yaz_iconv_trie_flat marc8_9page495_flat[] = { + {"\x44", 0, 0x598D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page495 = { + marc8_9page495_flat, 0 +}; +/* PAGE 494 */ +struct yaz_iconv_trie_flat marc8_9page494_flat[] = { + {"\x3A", 0, 0x9654}, /* East Asian ideograph */ + {"\x52", 0, 0x579B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page494 = { + marc8_9page494_flat, 0 +}; +/* PAGE 493 */ +struct yaz_iconv_trie_flat marc8_9page493_flat[] = { + {"\x45", 0, 0x56D3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page493 = { + marc8_9page493_flat, 0 +}; +/* PAGE 492 */ +struct yaz_iconv_trie_flat marc8_9page492_flat[] = { + {"\x43", 0, 0x55E2}, /* East Asian ideograph */ + {"\x64", 0, 0x55D4}, /* East Asian ideograph (variant of EACC 217164) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page492 = { + marc8_9page492_flat, 0 +}; +/* PAGE 491 */ +struct yaz_iconv_trie_flat marc8_9page491_flat[] = { + {"\x7D", 0, 0x8123}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page491 = { + marc8_9page491_flat, 0 +}; +/* PAGE 490 */ +struct yaz_iconv_trie_flat marc8_9page490_flat[] = { + {"\x33", 0, 0x5231}, /* East Asian ideograph */ + {"\x5F", 0, 0x5273}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page490 = { + marc8_9page490_flat, 0 +}; +/* PAGE 489 */ +struct yaz_iconv_trie_flat marc8_9page489_flat[] = { + {"\x2B", 0, 0x5C28}, /* East Asian ideograph */ + {"\x2D", 0, 0x4E80}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page489 = { + marc8_9page489_flat, 0 +}; +/* PAGE 488 */ +struct yaz_iconv_trie_flat marc8_9page488_flat[] = { + {"\x22", 0, 0x9C0C}, /* East Asian ideograph */ + {"\x29", 0, 0x9C53}, /* East Asian ideograph */ + {"\x2C", 0, 0x9F08}, /* East Asian ideograph */ + {"\x35", 0, 0x9D76}, /* East Asian ideograph */ + {"\x41", 0, 0x9D5E}, /* East Asian ideograph */ + {"\x51", 0, 0x5869}, /* East Asian ideograph */ + {"\x52", 0, 0x78B1}, /* East Asian ideograph */ + {"\x5F", 0, 0x83FB}, /* East Asian ideograph */ + {"\x60", 0, 0x5E85}, /* East Asian ideograph */ + {"\x62", 0, 0x9EC4}, /* East Asian ideograph */ + {"\x75", 0, 0x76B7}, /* East Asian ideograph */ + {"\x7E", 0, 0x658B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page488 = { + marc8_9page488_flat, 0 +}; +/* PAGE 487 */ +struct yaz_iconv_trie_flat marc8_9page487_flat[] = { + {"\x32", 0, 0x99EE}, /* East Asian ideograph */ + {"\x34", 0, 0x99DE}, /* East Asian ideograph */ + {"\x47", 0, 0x99C8}, /* East Asian ideograph */ + {"\x59", 0, 0x9AC4}, /* East Asian ideograph */ + {"\x5A", 0, 0x8EC6}, /* East Asian ideograph */ + {"\x62", 0, 0x9A0C}, /* East Asian ideograph */ + {"\x6A", 0, 0x6B1D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page487 = { + marc8_9page487_flat, 0 +}; +/* PAGE 486 */ +struct yaz_iconv_trie_flat marc8_9page486_flat[] = { + {"\x21", 0, 0x978C}, /* East Asian ideograph */ + {"\x2D", 0, 0x976D}, /* East Asian ideograph */ + {"\x30", 0, 0x97EE}, /* East Asian ideograph */ + {"\x56", 0, 0x980B}, /* East Asian ideograph */ + {"\x78", 0, 0x9920}, /* East Asian ideograph */ + {"\x79", 0, 0x8218}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page486 = { + marc8_9page486_flat, 0 +}; +/* PAGE 485 */ +struct yaz_iconv_trie_flat marc8_9page485_flat[] = { + {"\x28", 0, 0x9665}, /* East Asian ideograph */ + {"\x2C", 0, 0x5826}, /* East Asian ideograph */ + {"\x2D", 0, 0x964F}, /* East Asian ideograph */ + {"\x2E", 0, 0x661C}, /* East Asian ideograph */ + {"\x35", 0, 0x78D2}, /* East Asian ideograph */ + {"\x3B", 0, 0x96A0}, /* East Asian ideograph */ + {"\x43", 0, 0x9CEB}, /* East Asian ideograph */ + {"\x46", 0, 0x96BD}, /* East Asian ideograph */ + {"\x4B", 0, 0x96D1}, /* East Asian ideograph */ + {"\x4C", 0, 0x9DC4}, /* East Asian ideograph */ + {"\x63", 0, 0x873A}, /* East Asian ideograph */ + {"\x73", 0, 0x975A}, /* East Asian ideograph (unrelated variant of EACC 234C76) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page485 = { + marc8_9page485_flat, 0 +}; +/* PAGE 484 */ +struct yaz_iconv_trie_flat marc8_9page484_flat[] = { + {"\x21", 0, 0x9418}, /* East Asian ideograph */ + {"\x24", 0, 0x7145}, /* East Asian ideograph */ + {"\x26", 0, 0x7194}, /* East Asian ideograph */ + {"\x28", 0, 0x93C1}, /* East Asian ideograph */ + {"\x3B", 0, 0x92B9}, /* East Asian ideograph */ + {"\x43", 0, 0x92F3}, /* East Asian ideograph */ + {"\x4A", 0, 0x945A}, /* East Asian ideograph */ + {"\x50", 0, 0x9587}, /* East Asian ideograph */ + {"\x61", 0, 0x6FF6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page484 = { + marc8_9page484_flat, 0 +}; +/* PAGE 483 */ +struct yaz_iconv_trie_flat marc8_9page483_flat[] = { + {"\x23", 0, 0x9167}, /* East Asian ideograph */ + {"\x2F", 0, 0x9196}, /* East Asian ideograph */ + {"\x56", 0, 0x920E}, /* East Asian ideograph */ + {"\x65", 0, 0x8216}, /* East Asian ideograph */ + {"\x68", 0, 0x8021}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page483 = { + marc8_9page483_flat, 0 +}; +/* PAGE 482 */ +struct yaz_iconv_trie_flat marc8_9page482_flat[] = { + {"\x2F", 0, 0x8FE8}, /* East Asian ideograph */ + {"\x3F", 0, 0x5FA7}, /* East Asian ideograph */ + {"\x40", 0, 0x5FA8}, /* East Asian ideograph */ + {"\x48", 0, 0x9013}, /* East Asian ideograph */ + {"\x5A", 0, 0x8FE9}, /* East Asian ideograph */ + {"\x5B", 0, 0x9089}, /* East Asian ideograph */ + {"\x74", 0, 0x96A3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page482 = { + marc8_9page482_flat, 0 +}; +/* PAGE 481 */ +struct yaz_iconv_trie_flat marc8_9page481_flat[] = { + {"\x2F", 0, 0x8EB1}, /* East Asian ideograph */ + {"\x42", 0, 0x8F19}, /* East Asian ideograph */ + {"\x43", 0, 0x8EFD}, /* East Asian ideograph */ + {"\x5D", 0, 0x8FA2}, /* East Asian ideograph */ + {"\x5E", 0, 0x8FA7}, /* East Asian ideograph */ + {"\x69", 0, 0x5EF5}, /* East Asian ideograph */ + {"\x7A", 0, 0x8FEF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page481 = { + marc8_9page481_flat, 0 +}; +/* PAGE 480 */ +struct yaz_iconv_trie_flat marc8_9page480_flat[] = { + {"\x34", 0, 0x8CAD}, /* East Asian ideograph */ + {"\x3D", 0, 0x8CDB}, /* East Asian ideograph */ + {"\x48", 0, 0x8D71}, /* East Asian ideograph */ + {"\x4E", 0, 0x8D82}, /* East Asian ideograph */ + {"\x5F", 0, 0x8E5F}, /* East Asian ideograph */ + {"\x63", 0, 0x8DE5}, /* East Asian ideograph */ + {"\x7E", 0, 0x8E7B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page480 = { + marc8_9page480_flat, 0 +}; +/* PAGE 479 */ +struct yaz_iconv_trie_flat marc8_9page479_flat[] = { + {"\x27", 0, 0x8ACC}, /* East Asian ideograph */ + {"\x2C", 0, 0x8B01}, /* East Asian ideograph */ + {"\x3D", 0, 0x8AE9}, /* East Asian ideograph */ + {"\x41", 0, 0x5629}, /* East Asian ideograph */ + {"\x4C", 0, 0x8B72}, /* East Asian ideograph */ + {"\x4F", 0, 0x8B83}, /* East Asian ideograph */ + {"\x57", 0, 0x7AEA}, /* East Asian ideograph */ + {"\x59", 0, 0x8277}, /* East Asian ideograph */ + {"\x5F", 0, 0x732A}, /* East Asian ideograph */ + {"\x60", 0, 0x72B2}, /* East Asian ideograph */ + {"\x63", 0, 0x8C98}, /* East Asian ideograph */ + {"\x65", 0, 0x72F8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page479 = { + marc8_9page479_flat, 0 +}; +/* PAGE 478 */ +struct yaz_iconv_trie_flat marc8_9page478_flat[] = { + {"\x31", 0, 0x89A7}, /* East Asian ideograph */ + {"\x33", 0, 0x752A}, /* East Asian ideograph */ + {"\x36", 0, 0x89E6}, /* East Asian ideograph */ + {"\x4D", 0, 0x548F}, /* East Asian ideograph */ + {"\x56", 0, 0x612C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page478 = { + marc8_9page478_flat, 0 +}; +/* PAGE 477 */ +struct yaz_iconv_trie_flat marc8_9page477_flat[] = { + {"\x2B", 0, 0x8797}, /* East Asian ideograph */ + {"\x2D", 0, 0x8748}, /* East Asian ideograph */ + {"\x30", 0, 0x87C7}, /* East Asian ideograph */ + {"\x3B", 0, 0x60F7}, /* East Asian ideograph */ + {"\x49", 0, 0x885E}, /* East Asian ideograph */ + {"\x58", 0, 0x890E}, /* East Asian ideograph */ + {"\x5B", 0, 0x886E}, /* East Asian ideograph */ + {"\x60", 0, 0x5E2C}, /* East Asian ideograph */ + {"\x63", 0, 0x88E1}, /* East Asian ideograph */ + {"\x73", 0, 0x7D5D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page477 = { + marc8_9page477_flat, 0 +}; +/* PAGE 476 */ +struct yaz_iconv_trie_flat marc8_9page476_flat[] = { + {"\x2E", 0, 0x8024}, /* East Asian ideograph */ + {"\x35", 0, 0x846F}, /* East Asian ideograph */ + {"\x3C", 0, 0x8613}, /* East Asian ideograph */ + {"\x3F", 0, 0x6A97}, /* East Asian ideograph */ + {"\x64", 0, 0x9F04}, /* East Asian ideograph */ + {"\x75", 0, 0x9F05}, /* East Asian ideograph */ + {"\x7B", 0, 0x8717}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page476 = { + marc8_9page476_flat, 0 +}; +/* PAGE 475 */ +struct yaz_iconv_trie_flat marc8_9page475_flat[] = { + {"\x29", 0, 0x830E}, /* East Asian ideograph (variant of EACC 275529) */ + {"\x2D", 0, 0x8358}, /* East Asian ideograph */ + {"\x2E", 0, 0x82FA}, /* East Asian ideograph (variant of EACC 227C68) */ + {"\x47", 0, 0x837D}, /* East Asian ideograph */ + {"\x50", 0, 0x585F}, /* East Asian ideograph */ + {"\x54", 0, 0x855A}, /* East Asian ideograph */ + {"\x5A", 0, 0x8386}, /* East Asian ideograph */ + {"\x5B", 0, 0x8385}, /* East Asian ideograph */ + {"\x61", 0, 0x76D6}, /* East Asian ideograph */ + {"\x73", 0, 0x83D4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page475 = { + marc8_9page475_flat, 0 +}; +/* PAGE 474 */ +struct yaz_iconv_trie_flat marc8_9page474_flat[] = { + {"\x21", 0, 0x9AD7}, /* East Asian ideograph */ + {"\x24", 0, 0x5367}, /* East Asian ideograph */ + {"\x34", 0, 0x64E7}, /* East Asian ideograph */ + {"\x40", 0, 0x6841}, /* East Asian ideograph */ + {"\x46", 0, 0x8229}, /* East Asian ideograph */ + {"\x47", 0, 0x824A}, /* East Asian ideograph */ + {"\x61", 0, 0x8306}, /* East Asian ideograph */ + {"\x68", 0, 0x6959}, /* East Asian ideograph */ + {"\x6F", 0, 0x83C0}, /* East Asian ideograph */ + {"\x76", 0, 0x8318}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page474 = { + marc8_9page474_flat, 0 +}; +/* PAGE 473 */ +struct yaz_iconv_trie_flat marc8_9page473_flat[] = { + {"\x21", 0, 0x7C9B}, /* East Asian ideograph */ + {"\x23", 0, 0x5B8D}, /* East Asian ideograph */ + {"\x2C", 0, 0x6BD3}, /* East Asian ideograph */ + {"\x40", 0, 0x812C}, /* East Asian ideograph */ + {"\x44", 0, 0x8107}, /* East Asian ideograph */ + {"\x4B", 0, 0x80F7}, /* East Asian ideograph */ + {"\x5E", 0, 0x8193}, /* East Asian ideograph */ + {"\x61", 0, 0x811A}, /* East Asian ideograph */ + {"\x7E", 0, 0x81C8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page473 = { + marc8_9page473_flat, 0 +}; +/* PAGE 472 */ +struct yaz_iconv_trie_flat marc8_9page472_flat[] = { + {"\x28", 0, 0x9262}, /* East Asian ideograph */ + {"\x2B", 0, 0x9475}, /* East Asian ideograph */ + {"\x32", 0, 0x8FA0}, /* East Asian ideograph */ + {"\x33", 0, 0x7F78}, /* East Asian ideograph */ + {"\x38", 0, 0x898A}, /* East Asian ideograph */ + {"\x40", 0, 0x7FA1}, /* East Asian ideograph */ + {"\x41", 0, 0x7FA3}, /* East Asian ideograph */ + {"\x4A", 0, 0x7FC4}, /* East Asian ideograph */ + {"\x59", 0, 0x98DC}, /* East Asian ideograph */ + {"\x5D", 0, 0x6537}, /* East Asian ideograph */ + {"\x65", 0, 0x79D0}, /* East Asian ideograph */ + {"\x67", 0, 0x79CF}, /* East Asian ideograph */ + {"\x6B", 0, 0x7085}, /* East Asian ideograph */ + {"\x6C", 0, 0x8EAD}, /* East Asian ideograph */ + {"\x7B", 0, 0x8074}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page472 = { + marc8_9page472_flat, 0 +}; +/* PAGE 471 */ +struct yaz_iconv_trie_flat marc8_9page471_flat[] = { + {"\x24", 0, 0x5E0B}, /* East Asian ideograph */ + {"\x29", 0, 0x7D25}, /* East Asian ideograph */ + {"\x4A", 0, 0x6DD6}, /* East Asian ideograph */ + {"\x4D", 0, 0x7D2C}, /* East Asian ideograph */ + {"\x6A", 0, 0x7DB3}, /* East Asian ideograph */ + {"\x79", 0, 0x7E62}, /* East Asian ideograph */ + {"\x7D", 0, 0x7D99}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page471 = { + marc8_9page471_flat, 0 +}; +/* PAGE 470 */ +struct yaz_iconv_trie_flat marc8_9page470_flat[] = { + {"\x2B", 0, 0x693E}, /* East Asian ideograph */ + {"\x2D", 0, 0x7B5D}, /* East Asian ideograph */ + {"\x36", 0, 0x84D1}, /* East Asian ideograph */ + {"\x4F", 0, 0x7C58}, /* East Asian ideograph */ + {"\x6F", 0, 0x7CFA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page470 = { + marc8_9page470_flat, 0 +}; +/* PAGE 469 */ +struct yaz_iconv_trie_flat marc8_9page469_flat[] = { + {"\x29", 0, 0x9F9D}, /* East Asian ideograph */ + {"\x37", 0, 0x7980}, /* East Asian ideograph */ + {"\x3E", 0, 0x7A3E}, /* East Asian ideograph */ + {"\x41", 0, 0x4E69}, /* East Asian ideograph */ + {"\x45", 0, 0x9834}, /* East Asian ideograph */ + {"\x48", 0, 0x7A42}, /* East Asian ideograph */ + {"\x5E", 0, 0x7AB0}, /* East Asian ideograph */ + {"\x6B", 0, 0x7AF8}, /* East Asian ideograph */ + {"\x7C", 0, 0x7B5E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page469 = { + marc8_9page469_flat, 0 +}; +/* PAGE 468 */ +struct yaz_iconv_trie_flat marc8_9page468_flat[] = { + {"\x24", 0, 0x6998}, /* East Asian ideograph */ + {"\x33", 0, 0x78AA}, /* East Asian ideograph */ + {"\x5B", 0, 0x945B}, /* East Asian ideograph */ + {"\x79", 0, 0x5FA1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page468 = { + marc8_9page468_flat, 0 +}; +/* PAGE 467 */ +struct yaz_iconv_trie_flat marc8_9page467_flat[] = { + {"\x21", 0, 0x7681}, /* East Asian ideograph */ + {"\x34", 0, 0x76C7}, /* East Asian ideograph */ + {"\x38", 0, 0x76D7}, /* East Asian ideograph */ + {"\x4F", 0, 0x771F}, /* East Asian ideograph */ + {"\x5F", 0, 0x7741}, /* East Asian ideograph */ + {"\x65", 0, 0x53E1}, /* East Asian ideograph */ + {"\x6D", 0, 0x7792}, /* East Asian ideograph */ + {"\x71", 0, 0x7719}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page467 = { + marc8_9page467_flat, 0 +}; +/* PAGE 466 */ +struct yaz_iconv_trie_flat marc8_9page466_flat[] = { + {"\x2C", 0, 0x583A}, /* East Asian ideograph */ + {"\x2D", 0, 0x756E}, /* East Asian ideograph */ + {"\x35", 0, 0x7567}, /* East Asian ideograph */ + {"\x3C", 0, 0x53E0}, /* East Asian ideograph */ + {"\x3E", 0, 0x758E}, /* East Asian ideograph */ + {"\x5D", 0, 0x7661}, /* East Asian ideograph */ + {"\x7E", 0, 0x4F70}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page466 = { + marc8_9page466_flat, 0 +}; +/* PAGE 465 */ +struct yaz_iconv_trie_flat marc8_9page465_flat[] = { + {"\x22", 0, 0x736A}, /* East Asian ideograph */ + {"\x35", 0, 0x73C9}, /* East Asian ideograph */ + {"\x3F", 0, 0x73CE}, /* East Asian ideograph */ + {"\x43", 0, 0x746F}, /* East Asian ideograph */ + {"\x45", 0, 0x6BEC}, /* East Asian ideograph */ + {"\x5B", 0, 0x78AF}, /* East Asian ideograph */ + {"\x71", 0, 0x7F3E}, /* East Asian ideograph */ + {"\x72", 0, 0x7506}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page465 = { + marc8_9page465_flat, 0 +}; +/* PAGE 464 */ +struct yaz_iconv_trie_flat marc8_9page464_flat[] = { + {"\x26", 0, 0x713C}, /* East Asian ideograph */ + {"\x28", 0, 0x8B8C}, /* East Asian ideograph */ + {"\x34", 0, 0x718F}, /* East Asian ideograph */ + {"\x3B", 0, 0x4E89}, /* East Asian ideograph */ + {"\x45", 0, 0x5C12}, /* East Asian ideograph */ + {"\x46", 0, 0x58BB}, /* East Asian ideograph */ + {"\x58", 0, 0x7F9D}, /* East Asian ideograph */ + {"\x5B", 0, 0x7282}, /* East Asian ideograph */ + {"\x60", 0, 0x6C02}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page464 = { + marc8_9page464_flat, 0 +}; +/* PAGE 463 */ +struct yaz_iconv_trie_flat marc8_9page463_flat[] = { + {"\x3A", 0, 0x702C}, /* East Asian ideograph */ + {"\x47", 0, 0x7AC8}, /* East Asian ideograph */ + {"\x54", 0, 0x70F1}, /* East Asian ideograph */ + {"\x56", 0, 0x70B0}, /* East Asian ideograph */ + {"\x6B", 0, 0x70DF}, /* East Asian ideograph */ + {"\x71", 0, 0x70A4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page463 = { + marc8_9page463_flat, 0 +}; +/* PAGE 462 */ +struct yaz_iconv_trie_flat marc8_9page462_flat[] = { + {"\x29", 0, 0x51CF}, /* East Asian ideograph */ + {"\x2F", 0, 0x6E07}, /* East Asian ideograph */ + {"\x44", 0, 0x6FD5}, /* East Asian ideograph */ + {"\x45", 0, 0x6E29}, /* East Asian ideograph */ + {"\x50", 0, 0x6EDA}, /* East Asian ideograph */ + {"\x53", 0, 0x7001}, /* East Asian ideograph */ + {"\x5C", 0, 0x6F44}, /* East Asian ideograph */ + {"\x6B", 0, 0x6F82}, /* East Asian ideograph */ + {"\x6E", 0, 0x6F97}, /* East Asian ideograph */ + {"\x74", 0, 0x6F5C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page462 = { + marc8_9page462_flat, 0 +}; +/* PAGE 461 */ +struct yaz_iconv_trie_flat marc8_9page461_flat[] = { + {"\x29", 0, 0x6D29}, /* East Asian ideograph */ + {"\x30", 0, 0x51B5}, /* East Asian ideograph */ + {"\x35", 0, 0x6C4E}, /* East Asian ideograph */ + {"\x38", 0, 0x6FFC}, /* East Asian ideograph */ + {"\x46", 0, 0x6C79}, /* East Asian ideograph */ + {"\x56", 0, 0x6F94}, /* East Asian ideograph */ + {"\x5B", 0, 0x51C9}, /* East Asian ideograph */ + {"\x5F", 0, 0x51C4}, /* East Asian ideograph */ + {"\x68", 0, 0x6D45}, /* East Asian ideograph (variant of EACC 274768) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page461 = { + marc8_9page461_flat, 0 +}; +/* PAGE 460 */ +struct yaz_iconv_trie_flat marc8_9page460_flat[] = { + {"\x21", 0, 0x61FD}, /* East Asian ideograph */ + {"\x2C", 0, 0x6B7A}, /* East Asian ideograph */ + {"\x47", 0, 0x6BD8}, /* East Asian ideograph */ + {"\x6D", 0, 0x51B3}, /* East Asian ideograph */ + {"\x74", 0, 0x51B2}, /* East Asian ideograph */ + {"\x7C", 0, 0x6CB2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page460 = { + marc8_9page460_flat, 0 +}; +/* PAGE 459 */ +struct yaz_iconv_trie_flat marc8_9page459_flat[] = { + {"\x39", 0, 0x6406}, /* East Asian ideograph */ + {"\x3A", 0, 0x6760}, /* East Asian ideograph */ + {"\x43", 0, 0x6901}, /* East Asian ideograph */ + {"\x4E", 0, 0x697D}, /* East Asian ideograph */ + {"\x50", 0, 0x58AB}, /* East Asian ideograph */ + {"\x62", 0, 0x681D}, /* East Asian ideograph */ + {"\x64", 0, 0x68B9}, /* East Asian ideograph */ + {"\x69", 0, 0x6AC9}, /* East Asian ideograph */ + {"\x74", 0, 0x5FFB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page459 = { + marc8_9page459_flat, 0 +}; +/* PAGE 458 */ +struct yaz_iconv_trie_flat marc8_9page458_flat[] = { + {"\x25", 0, 0x686E}, /* East Asian ideograph */ + {"\x2D", 0, 0x6780}, /* East Asian ideograph */ + {"\x37", 0, 0x67FE}, /* East Asian ideograph */ + {"\x3A", 0, 0x6942}, /* East Asian ideograph */ + {"\x40", 0, 0x6822}, /* East Asian ideograph */ + {"\x44", 0, 0x69C5}, /* East Asian ideograph */ + {"\x4B", 0, 0x6852}, /* East Asian ideograph */ + {"\x50", 0, 0x8308}, /* East Asian ideograph */ + {"\x61", 0, 0x6746}, /* East Asian ideograph */ + {"\x66", 0, 0x6973}, /* East Asian ideograph */ + {"\x6B", 0, 0x6936}, /* East Asian ideograph */ + {"\x72", 0, 0x68CA}, /* East Asian ideograph */ + {"\x74", 0, 0x690D}, /* East Asian ideograph (variant of EACC 214474) */ + {"\x7D", 0, 0x684C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page458 = { + marc8_9page458_flat, 0 +}; +/* PAGE 457 */ +struct yaz_iconv_trie_flat marc8_9page457_flat[] = { + {"\x27", 0, 0x6630}, /* East Asian ideograph */ + {"\x29", 0, 0x668E}, /* East Asian ideograph */ + {"\x2E", 0, 0x66EC}, /* East Asian ideograph */ + {"\x3B", 0, 0x6662}, /* East Asian ideograph */ + {"\x3E", 0, 0x667B}, /* East Asian ideograph */ + {"\x43", 0, 0x6636}, /* East Asian ideograph */ + {"\x48", 0, 0x6681}, /* East Asian ideograph */ + {"\x49", 0, 0x66A6}, /* East Asian ideograph */ + {"\x5F", 0, 0x6716}, /* East Asian ideograph */ + {"\x62", 0, 0x6722}, /* East Asian ideograph */ + {"\x64", 0, 0x671E}, /* East Asian ideograph */ + {"\x70", 0, 0x6736}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page457 = { + marc8_9page457_flat, 0 +}; +/* PAGE 456 */ +struct yaz_iconv_trie_flat marc8_9page456_flat[] = { + {"\x28", 0, 0x5117}, /* East Asian ideograph */ + {"\x49", 0, 0x53D9}, /* East Asian ideograph */ + {"\x4F", 0, 0x555F}, /* East Asian ideograph */ + {"\x72", 0, 0x65E3}, /* East Asian ideograph */ + {"\x77", 0, 0x65EE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page456 = { + marc8_9page456_flat, 0 +}; +/* PAGE 455 */ +struct yaz_iconv_trie_flat marc8_9page455_flat[] = { + {"\x22", 0, 0x6485}, /* East Asian ideograph */ + {"\x32", 0, 0x642F}, /* East Asian ideograph */ + {"\x41", 0, 0x63B2}, /* East Asian ideograph */ + {"\x47", 0, 0x6271}, /* East Asian ideograph */ + {"\x50", 0, 0x6428}, /* East Asian ideograph */ + {"\x52", 0, 0x6447}, /* East Asian ideograph */ + {"\x53", 0, 0x64E3}, /* East Asian ideograph */ + {"\x54", 0, 0x635C}, /* East Asian ideograph */ + {"\x6E", 0, 0x6534}, /* East Asian ideograph */ + {"\x71", 0, 0x62CA}, /* East Asian ideograph */ + {"\x76", 0, 0x6483}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page455 = { + marc8_9page455_flat, 0 +}; +/* PAGE 454 */ +struct yaz_iconv_trie_flat marc8_9page454_flat[] = { + {"\x29", 0, 0x5214}, /* East Asian ideograph */ + {"\x31", 0, 0x64A6}, /* East Asian ideograph */ + {"\x39", 0, 0x67C6}, /* East Asian ideograph */ + {"\x3F", 0, 0x6255}, /* East Asian ideograph */ + {"\x49", 0, 0x67B4}, /* East Asian ideograph */ + {"\x4C", 0, 0x6283}, /* East Asian ideograph */ + {"\x4F", 0, 0x6294}, /* East Asian ideograph */ + {"\x66", 0, 0x63CE}, /* East Asian ideograph */ + {"\x67", 0, 0x62CF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page454 = { + marc8_9page454_flat, 0 +}; +/* PAGE 453 */ +struct yaz_iconv_trie_flat marc8_9page453_flat[] = { + {"\x24", 0, 0x661A}, /* East Asian ideograph */ + {"\x27", 0, 0x6120}, /* East Asian ideograph */ + {"\x2A", 0, 0x5ABF}, /* East Asian ideograph */ + {"\x31", 0, 0x6159}, /* East Asian ideograph */ + {"\x3A", 0, 0x6185}, /* East Asian ideograph */ + {"\x54", 0, 0x61D0}, /* East Asian ideograph */ + {"\x67", 0, 0x621E}, /* East Asian ideograph */ + {"\x6E", 0, 0x6226}, /* East Asian ideograph */ + {"\x6F", 0, 0x622F}, /* East Asian ideograph */ + {"\x76", 0, 0x78A5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page453 = { + marc8_9page453_flat, 0 +}; +/* PAGE 452 */ +struct yaz_iconv_trie_flat marc8_9page452_flat[] = { + {"\x2B", 0, 0x6060}, /* East Asian ideograph */ + {"\x3C", 0, 0x803B}, /* East Asian ideograph */ + {"\x40", 0, 0x6052}, /* East Asian ideograph */ + {"\x60", 0, 0x6075}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page452 = { + marc8_9page452_flat, 0 +}; +/* PAGE 451 */ +struct yaz_iconv_trie_flat marc8_9page451_flat[] = { + {"\x29", 0, 0x53AE}, /* East Asian ideograph */ + {"\x2B", 0, 0x5EBF}, /* East Asian ideograph */ + {"\x2D", 0, 0x5396}, /* East Asian ideograph */ + {"\x2F", 0, 0x539B}, /* East Asian ideograph */ + {"\x34", 0, 0x5EFE}, /* East Asian ideograph */ + {"\x48", 0, 0x5F4A}, /* East Asian ideograph */ + {"\x4E", 0, 0x7BF2}, /* East Asian ideograph */ + {"\x50", 0, 0x5F5C}, /* East Asian ideograph */ + {"\x5E", 0, 0x9AF4}, /* East Asian ideograph */ + {"\x67", 0, 0x9015}, /* East Asian ideograph */ + {"\x6C", 0, 0x5F93}, /* East Asian ideograph */ + {"\x75", 0, 0x60EA}, /* East Asian ideograph */ + {"\x76", 0, 0x5FB4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page451 = { + marc8_9page451_flat, 0 +}; +/* PAGE 450 */ +struct yaz_iconv_trie_flat marc8_9page450_flat[] = { + {"\x21", 0, 0x57FC}, /* East Asian ideograph */ + {"\x22", 0, 0x5D10}, /* East Asian ideograph */ + {"\x26", 0, 0x5D18}, /* East Asian ideograph */ + {"\x36", 0, 0x5DE3}, /* East Asian ideograph */ + {"\x38", 0, 0x9245}, /* East Asian ideograph */ + {"\x49", 0, 0x83F7}, /* East Asian ideograph */ + {"\x5F", 0, 0x6A66}, /* East Asian ideograph */ + {"\x61", 0, 0x5E47}, /* East Asian ideograph */ + {"\x65", 0, 0x79CA}, /* East Asian ideograph */ + {"\x6A", 0, 0x51FC}, /* East Asian ideograph */ + {"\x6D", 0, 0x8298}, /* East Asian ideograph (duplicate simplified) */ + {"\x6E", 0, 0x7240}, /* East Asian ideograph */ + {"\x70", 0, 0x576B}, /* East Asian ideograph */ + {"\x7C", 0, 0x83F4}, /* East Asian ideograph */ + {"\x7D", 0, 0x53A2}, /* East Asian ideograph */ + {"\x7E", 0, 0x53A0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page450 = { + marc8_9page450_flat, 0 +}; +/* PAGE 449 */ +struct yaz_iconv_trie_flat marc8_9page449_flat[] = { + {"\x27", 0, 0x51A8}, /* East Asian ideograph */ + {"\x2A", 0, 0x5EBD}, /* East Asian ideograph */ + {"\x33", 0, 0x8A67}, /* East Asian ideograph */ + {"\x3F", 0, 0x5C02}, /* East Asian ideograph */ + {"\x40", 0, 0x5C06}, /* East Asian ideograph (variant of EACC 273B40) */ + {"\x52", 0, 0x6EBA}, /* East Asian ideograph */ + {"\x54", 0, 0x5C4A}, /* East Asian ideograph */ + {"\x6E", 0, 0x5D17}, /* East Asian ideograph */ + {"\x77", 0, 0x5CE9}, /* East Asian ideograph */ + {"\x78", 0, 0x5CEF}, /* East Asian ideograph */ + {"\x79", 0, 0x5D8B}, /* East Asian ideograph */ + {"\x7B", 0, 0x5D08}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page449 = { + marc8_9page449_flat, 0 +}; +/* PAGE 448 */ +struct yaz_iconv_trie_flat marc8_9page448_flat[] = { + {"\x26", 0, 0x5A3F}, /* East Asian ideograph */ + {"\x2F", 0, 0x58FB}, /* East Asian ideograph */ + {"\x41", 0, 0x5AFA}, /* East Asian ideograph */ + {"\x47", 0, 0x5ACB}, /* East Asian ideograph */ + {"\x60", 0, 0x6588}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page448 = { + marc8_9page448_flat, 0 +}; +/* PAGE 447 */ +struct yaz_iconv_trie_flat marc8_9page447_flat[] = { + {"\x21", 0, 0x591F}, /* East Asian ideograph */ + {"\x29", 0, 0x6B80}, /* East Asian ideograph */ + {"\x2F", 0, 0x7287}, /* East Asian ideograph */ + {"\x31", 0, 0x67F0}, /* East Asian ideograph */ + {"\x32", 0, 0x7AD2}, /* East Asian ideograph */ + {"\x44", 0, 0x511E}, /* East Asian ideograph */ + {"\x4D", 0, 0x59AC}, /* East Asian ideograph */ + {"\x54", 0, 0x7385}, /* East Asian ideograph */ + {"\x56", 0, 0x59D9}, /* East Asian ideograph */ + {"\x6E", 0, 0x4F84}, /* East Asian ideograph */ + {"\x70", 0, 0x5A63}, /* East Asian ideograph */ + {"\x74", 0, 0x5B43}, /* East Asian ideograph */ + {"\x7B", 0, 0x5A31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page447 = { + marc8_9page447_flat, 0 +}; +/* PAGE 446 */ +struct yaz_iconv_trie_flat marc8_9page446_flat[] = { + {"\x21", 0, 0x962F}, /* East Asian ideograph */ + {"\x30", 0, 0x573B}, /* East Asian ideograph */ + {"\x3F", 0, 0x575A}, /* East Asian ideograph */ + {"\x4A", 0, 0x5872}, /* East Asian ideograph */ + {"\x52", 0, 0x51A2}, /* East Asian ideograph */ + {"\x54", 0, 0x5896}, /* East Asian ideograph */ + {"\x6E", 0, 0x58CA}, /* East Asian ideograph */ + {"\x76", 0, 0x58F7}, /* East Asian ideograph */ + {"\x77", 0, 0x5900}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page446 = { + marc8_9page446_flat, 0 +}; +/* PAGE 445 */ +struct yaz_iconv_trie_flat marc8_9page445_flat[] = { + {"\x30", 0, 0x751E}, /* East Asian ideograph */ + {"\x48", 0, 0x8B5F}, /* East Asian ideograph */ + {"\x49", 0, 0x5650}, /* East Asian ideograph */ + {"\x58", 0, 0x54BD}, /* East Asian ideograph */ + {"\x65", 0, 0x8086}, /* East Asian ideograph */ + {"\x68", 0, 0x56EC}, /* East Asian ideograph */ + {"\x6F", 0, 0x5700}, /* East Asian ideograph */ + {"\x7C", 0, 0x962C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page445 = { + marc8_9page445_flat, 0 +}; +/* PAGE 444 */ +struct yaz_iconv_trie_flat marc8_9page444_flat[] = { + {"\x22", 0, 0x8AEE}, /* East Asian ideograph */ + {"\x2A", 0, 0x95A7}, /* East Asian ideograph */ + {"\x32", 0, 0x8A7B}, /* East Asian ideograph */ + {"\x42", 0, 0x6B38}, /* East Asian ideograph */ + {"\x44", 0, 0x5557}, /* East Asian ideograph */ + {"\x61", 0, 0x6199}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page444 = { + marc8_9page444_flat, 0 +}; +/* PAGE 443 */ +struct yaz_iconv_trie_flat marc8_9page443_flat[] = { + {"\x39", 0, 0x52FE}, /* East Asian ideograph */ + {"\x3C", 0, 0x6B62}, /* East Asian ideograph */ + {"\x43", 0, 0x4EDD}, /* East Asian ideograph */ + {"\x47", 0, 0x55AB}, /* East Asian ideograph */ + {"\x56", 0, 0x7343}, /* East Asian ideograph */ + {"\x5C", 0, 0x5434}, /* East Asian ideograph */ + {"\x6A", 0, 0x8A36}, /* East Asian ideograph */ + {"\x71", 0, 0x546A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page443 = { + marc8_9page443_flat, 0 +}; +/* PAGE 442 */ +struct yaz_iconv_trie_flat marc8_9page442_flat[] = { + {"\x21", 0, 0x5294}, /* East Asian ideograph */ + {"\x28", 0, 0x5226}, /* East Asian ideograph */ + {"\x2E", 0, 0x8274}, /* East Asian ideograph */ + {"\x36", 0, 0x52F3}, /* East Asian ideograph */ + {"\x3C", 0, 0x52A2}, /* East Asian ideograph */ + {"\x3D", 0, 0x52E7}, /* East Asian ideograph */ + {"\x53", 0, 0x758B}, /* East Asian ideograph */ + {"\x57", 0, 0x62FE}, /* East Asian ideograph */ + {"\x58", 0, 0x4EDF}, /* East Asian ideograph */ + {"\x5B", 0, 0x6607}, /* East Asian ideograph */ + {"\x5D", 0, 0x5349}, /* East Asian ideograph */ + {"\x64", 0, 0x613D}, /* East Asian ideograph */ + {"\x6A", 0, 0x5918}, /* East Asian ideograph */ + {"\x6E", 0, 0x5373}, /* East Asian ideograph */ + {"\x6E", 0, 0x5373}, /* East Asian ideograph */ + {"\x73", 0, 0x5374}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page442 = { + marc8_9page442_flat, 0 +}; +/* PAGE 441 */ +struct yaz_iconv_trie_flat marc8_9page441_flat[] = { + {"\x24", 0, 0x634C}, /* East Asian ideograph */ + {"\x2A", 0, 0x4E0C}, /* East Asian ideograph */ + {"\x32", 0, 0x5190}, /* East Asian ideograph */ + {"\x4F", 0, 0x5202}, /* East Asian ideograph */ + {"\x56", 0, 0x5211}, /* East Asian ideograph */ + {"\x5F", 0, 0x52B5}, /* East Asian ideograph */ + {"\x66", 0, 0x5234}, /* East Asian ideograph */ + {"\x6B", 0, 0x5C05}, /* East Asian ideograph */ + {"\x72", 0, 0x5265}, /* East Asian ideograph */ + {"\x77", 0, 0x8CF8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page441 = { + marc8_9page441_flat, 0 +}; +/* PAGE 440 */ +struct yaz_iconv_trie_flat marc8_9page440_flat[] = { + {"\x24", 0, 0x7B87}, /* East Asian ideograph */ + {"\x51", 0, 0x510C}, /* East Asian ideograph */ + {"\x53", 0, 0x50E3}, /* East Asian ideograph */ + {"\x5F", 0, 0x50BB}, /* East Asian ideograph (variant of EACC 4B325F) */ + {"\x61", 0, 0x5039}, /* East Asian ideograph */ + {"\x63", 0, 0x4FAD}, /* East Asian ideograph */ + {"\x72", 0, 0x706E}, /* East Asian ideograph */ + {"\x79", 0, 0x514E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page440 = { + marc8_9page440_flat, 0 +}; +/* PAGE 439 */ +struct yaz_iconv_trie_flat marc8_9page439_flat[] = { + {"\x32", 0, 0x4ECF}, /* East Asian ideograph */ + {"\x3A", 0, 0x62BB}, /* East Asian ideograph */ + {"\x40", 0, 0x4F32}, /* East Asian ideograph */ + {"\x47", 0, 0x5002}, /* East Asian ideograph */ + {"\x4C", 0, 0x5008}, /* East Asian ideograph */ + {"\x5F", 0, 0x4FA3}, /* East Asian ideograph */ + {"\x64", 0, 0x7AE2}, /* East Asian ideograph */ + {"\x65", 0, 0x349E}, /* East Asian ideograph (Unicode CJK Extension A) */ + {"\x77", 0, 0x5E78}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page439 = { + marc8_9page439_flat, 0 +}; +/* PAGE 438 */ +struct yaz_iconv_trie_flat marc8_9page438_flat[] = { + {"\x21", 0, 0x5F0C}, /* East Asian ideograph */ + {"\x2D", 0, 0x4E17}, /* East Asian ideograph */ + {"\x32", 0, 0x7ADD}, /* East Asian ideograph */ + {"\x45", 0, 0x4E57}, /* East Asian ideograph */ + {"\x51", 0, 0x5F0D}, /* East Asian ideograph */ + {"\x53", 0, 0x4E3C}, /* East Asian ideograph */ + {"\x58", 0, 0x4E9C}, /* East Asian ideograph */ + {"\x5B", 0, 0x4EBE}, /* East Asian ideograph */ + {"\x61", 0, 0x4EB0}, /* East Asian ideograph */ + {"\x6C", 0, 0x8B8E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page438 = { + marc8_9page438_flat, 0 +}; +/* PAGE 437 */ +struct yaz_iconv_trie_dir marc8_9page437_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {439, 0, 0}, + {440, 0, 0}, + {441, 0, 0}, + {442, 0, 0}, + {443, 0, 0}, + {444, 0, 0}, + {445, 0, 0}, + {446, 0, 0}, + {447, 0, 0}, + {448, 0, 0}, + {449, 0, 0}, + {450, 0, 0}, + {451, 0, 0}, + {452, 0, 0}, + {453, 0, 0}, + {454, 0, 0}, + {455, 0, 0}, + {456, 0, 0}, + {457, 0, 0}, + {458, 0, 0}, + {459, 0, 0}, + {460, 0, 0}, + {461, 0, 0}, + {462, 0, 0}, + {463, 0, 0}, + {464, 0, 0}, + {465, 0, 0}, + {466, 0, 0}, + {467, 0, 0}, + {468, 0, 0}, + {469, 0, 0}, + {470, 0, 0}, + {471, 0, 0}, + {472, 0, 0}, + {473, 0, 0}, + {474, 0, 0}, + {475, 0, 0}, + {476, 0, 0}, + {477, 0, 0}, + {478, 0, 0}, + {479, 0, 0}, + {480, 0, 0}, + {481, 0, 0}, + {482, 0, 0}, + {483, 0, 0}, + {484, 0, 0}, + {485, 0, 0}, + {486, 0, 0}, + {487, 0, 0}, + {488, 0, 0}, + {489, 0, 0}, + {490, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {491, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {492, 0, 0}, + {0, 0, 0}, + {493, 0, 0}, + {0, 0, 0}, + {494, 0, 0}, + {0, 0, 0}, + {495, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {496, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {497, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page437 = { + 0, marc8_9page437_dir +}; +/* PAGE 436 */ +struct yaz_iconv_trie_flat marc8_9page436_flat[] = { + {"\x28", 0, 0x9F86}, /* East Asian ideograph */ + {"\x2B", 0, 0x9F85}, /* East Asian ideograph */ + {"\x62", 0, 0x9F9B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page436 = { + marc8_9page436_flat, 0 +}; +/* PAGE 435 */ +struct yaz_iconv_trie_flat marc8_9page435_flat[] = { + {"\x2B", 0, 0x9F0D}, /* East Asian ideograph */ + {"\x7B", 0, 0x9F51}, /* East Asian ideograph */ + {"\x7C", 0, 0x9F80}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page435 = { + marc8_9page435_flat, 0 +}; +/* PAGE 434 */ +struct yaz_iconv_trie_flat marc8_9page434_flat[] = { + {"\x6A", 0, 0x9EEA}, /* East Asian ideograph */ + {"\x7A", 0, 0x9EFE}, /* East Asian ideograph */ + {"\x7C", 0, 0x9F0B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page434 = { + marc8_9page434_flat, 0 +}; +/* PAGE 433 */ +struct yaz_iconv_trie_flat marc8_9page433_flat[] = { + {"\x29", 0, 0x9E71}, /* East Asian ideograph */ + {"\x36", 0, 0x9E2C}, /* East Asian ideograph */ + {"\x3A", 0, 0x9E73}, /* East Asian ideograph */ + {"\x3B", 0, 0x9E42}, /* East Asian ideograph */ + {"\x3C", 0, 0x5364}, /* East Asian ideograph */ + {"\x42", 0, 0x9E7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page433 = { + marc8_9page433_flat, 0 +}; +/* PAGE 432 */ +struct yaz_iconv_trie_flat marc8_9page432_flat[] = { + {"\x28", 0, 0x9E58}, /* East Asian ideograph */ + {"\x3E", 0, 0x9E37}, /* East Asian ideograph */ + {"\x47", 0, 0x9E68}, /* East Asian ideograph */ + {"\x49", 0, 0x9E47}, /* East Asian ideograph */ + {"\x57", 0, 0x9E6B}, /* East Asian ideograph */ + {"\x5B", 0, 0x9E6C}, /* East Asian ideograph */ + {"\x65", 0, 0x9E69}, /* East Asian ideograph */ + {"\x6C", 0, 0x9E6A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page432 = { + marc8_9page432_flat, 0 +}; +/* PAGE 431 */ +struct yaz_iconv_trie_flat marc8_9page431_flat[] = { + {"\x2A", 0, 0x9E46}, /* East Asian ideograph */ + {"\x35", 0, 0x9E2B}, /* East Asian ideograph */ + {"\x52", 0, 0x9E4E}, /* East Asian ideograph */ + {"\x59", 0, 0x9E5C}, /* East Asian ideograph */ + {"\x5C", 0, 0x9E5B}, /* East Asian ideograph */ + {"\x60", 0, 0x9E55}, /* East Asian ideograph */ + {"\x6B", 0, 0x9E57}, /* East Asian ideograph */ + {"\x6C", 0, 0x9E4B}, /* East Asian ideograph */ + {"\x77", 0, 0x9E63}, /* East Asian ideograph */ + {"\x79", 0, 0x9E5A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page431 = { + marc8_9page431_flat, 0 +}; +/* PAGE 430 */ +struct yaz_iconv_trie_flat marc8_9page430_flat[] = { + {"\x28", 0, 0x9E28}, /* East Asian ideograph */ + {"\x44", 0, 0x9E32}, /* East Asian ideograph */ + {"\x48", 0, 0x9E31}, /* East Asian ideograph */ + {"\x59", 0, 0x9E38}, /* East Asian ideograph */ + {"\x65", 0, 0x9E39}, /* East Asian ideograph */ + {"\x68", 0, 0x9E3A}, /* East Asian ideograph */ + {"\x70", 0, 0x9E48}, /* East Asian ideograph */ + {"\x75", 0, 0x9E41}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page430 = { + marc8_9page430_flat, 0 +}; +/* PAGE 429 */ +struct yaz_iconv_trie_flat marc8_9page429_flat[] = { + {"\x21", 0, 0x9CD9}, /* East Asian ideograph */ + {"\x25", 0, 0x9CCC}, /* East Asian ideograph */ + {"\x28", 0, 0x9CD5}, /* East Asian ideograph */ + {"\x29", 0, 0x9CA3}, /* East Asian ideograph */ + {"\x2A", 0, 0x9CD3}, /* East Asian ideograph */ + {"\x32", 0, 0x9CD8}, /* East Asian ideograph */ + {"\x38", 0, 0x9CDF}, /* East Asian ideograph */ + {"\x3A", 0, 0x9C85}, /* East Asian ideograph */ + {"\x3B", 0, 0x9C9F}, /* East Asian ideograph */ + {"\x40", 0, 0x9CBC}, /* East Asian ideograph */ + {"\x4F", 0, 0x9CE2}, /* East Asian ideograph */ + {"\x55", 0, 0x9C8E}, /* East Asian ideograph */ + {"\x58", 0, 0x9C9A}, /* East Asian ideograph */ + {"\x6B", 0, 0x9CA1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page429 = { + marc8_9page429_flat, 0 +}; +/* PAGE 428 */ +struct yaz_iconv_trie_flat marc8_9page428_flat[] = { + {"\x22", 0, 0x9CAE}, /* East Asian ideograph */ + {"\x25", 0, 0x9CBA}, /* East Asian ideograph */ + {"\x27", 0, 0x9CB2}, /* East Asian ideograph */ + {"\x28", 0, 0x9CB4}, /* East Asian ideograph */ + {"\x2C", 0, 0x9CB1}, /* East Asian ideograph */ + {"\x2D", 0, 0x9CB7}, /* East Asian ideograph */ + {"\x2F", 0, 0x9CB5}, /* East Asian ideograph */ + {"\x31", 0, 0x9CB6}, /* East Asian ideograph */ + {"\x34", 0, 0x9CBB}, /* East Asian ideograph */ + {"\x3E", 0, 0x9CCA}, /* East Asian ideograph */ + {"\x4B", 0, 0x9CBD}, /* East Asian ideograph */ + {"\x54", 0, 0x9CC4}, /* East Asian ideograph */ + {"\x59", 0, 0x9CC6}, /* East Asian ideograph */ + {"\x5C", 0, 0x9CC7}, /* East Asian ideograph */ + {"\x6A", 0, 0x9CCB}, /* East Asian ideograph */ + {"\x6E", 0, 0x9CA5}, /* East Asian ideograph */ + {"\x71", 0, 0x9CCE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page428 = { + marc8_9page428_flat, 0 +}; +/* PAGE 427 */ +struct yaz_iconv_trie_flat marc8_9page427_flat[] = { + {"\x21", 0, 0x9C86}, /* East Asian ideograph */ + {"\x29", 0, 0x9C87}, /* East Asian ideograph */ + {"\x2B", 0, 0x9C90}, /* East Asian ideograph */ + {"\x31", 0, 0x9C8B}, /* East Asian ideograph */ + {"\x39", 0, 0x9C9E}, /* East Asian ideograph */ + {"\x3C", 0, 0x9C91}, /* East Asian ideograph */ + {"\x3D", 0, 0x9C92}, /* East Asian ideograph */ + {"\x42", 0, 0x9C95}, /* East Asian ideograph */ + {"\x56", 0, 0x9CA9}, /* East Asian ideograph */ + {"\x5F", 0, 0x9CA0}, /* East Asian ideograph */ + {"\x6E", 0, 0x9CA7}, /* East Asian ideograph */ + {"\x7A", 0, 0x9CAD}, /* East Asian ideograph */ + {"\x7C", 0, 0x9CB0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page427 = { + marc8_9page427_flat, 0 +}; +/* PAGE 426 */ +struct yaz_iconv_trie_flat marc8_9page426_flat[] = { + {"\x3C", 0, 0x9B49}, /* East Asian ideograph */ + {"\x5D", 0, 0x9C82}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page426 = { + marc8_9page426_flat, 0 +}; +/* PAGE 425 */ +struct yaz_iconv_trie_flat marc8_9page425_flat[] = { + {"\x6C", 0, 0x960B}, /* East Asian ideograph */ + {"\x74", 0, 0x9604}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page425 = { + marc8_9page425_flat, 0 +}; +/* PAGE 424 */ +struct yaz_iconv_trie_flat marc8_9page424_flat[] = { + {"\x21", 0, 0x9AA3}, /* East Asian ideograph */ + {"\x22", 0, 0x9A81}, /* East Asian ideograph */ + {"\x27", 0, 0x9A85}, /* East Asian ideograph */ + {"\x33", 0, 0x9AA7}, /* East Asian ideograph */ + {"\x6D", 0, 0x9ACB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page424 = { + marc8_9page424_flat, 0 +}; +/* PAGE 423 */ +struct yaz_iconv_trie_flat marc8_9page423_flat[] = { + {"\x3D", 0, 0x9A90}, /* East Asian ideograph */ + {"\x40", 0, 0x9A92}, /* East Asian ideograph */ + {"\x47", 0, 0x9A93}, /* East Asian ideograph */ + {"\x5A", 0, 0x9A9F}, /* East Asian ideograph */ + {"\x60", 0, 0x9A98}, /* East Asian ideograph */ + {"\x69", 0, 0x9A7A}, /* East Asian ideograph */ + {"\x6A", 0, 0x9A9D}, /* East Asian ideograph */ + {"\x70", 0, 0x9A9C}, /* East Asian ideograph */ + {"\x79", 0, 0x9A96}, /* East Asian ideograph */ + {"\x7A", 0, 0x9AA2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page423 = { + marc8_9page423_flat, 0 +}; +/* PAGE 422 */ +struct yaz_iconv_trie_flat marc8_9page422_flat[] = { + {"\x22", 0, 0x98E8}, /* East Asian ideograph */ + {"\x63", 0, 0x9A75}, /* East Asian ideograph */ + {"\x69", 0, 0x9A80}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page422 = { + marc8_9page422_flat, 0 +}; +/* PAGE 421 */ +struct yaz_iconv_trie_flat marc8_9page421_flat[] = { + {"\x32", 0, 0x997D}, /* East Asian ideograph */ + {"\x53", 0, 0x9967}, /* East Asian ideograph */ + {"\x66", 0, 0x9969}, /* East Asian ideograph */ + {"\x6A", 0, 0x9990}, /* East Asian ideograph */ + {"\x6D", 0, 0x9991}, /* East Asian ideograph */ + {"\x70", 0, 0x998D}, /* East Asian ideograph */ + {"\x72", 0, 0x9994}, /* East Asian ideograph */ + {"\x75", 0, 0x9993}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page421 = { + marc8_9page421_flat, 0 +}; +/* PAGE 420 */ +struct yaz_iconv_trie_flat marc8_9page420_flat[] = { + {"\x21", 0, 0x98A2}, /* East Asian ideograph */ + {"\x29", 0, 0x98A5}, /* East Asian ideograph */ + {"\x30", 0, 0x989E}, /* East Asian ideograph */ + {"\x31", 0, 0x98A7}, /* East Asian ideograph */ + {"\x53", 0, 0x98D9}, /* East Asian ideograph */ + {"\x6C", 0, 0x996B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page420 = { + marc8_9page420_flat, 0 +}; +/* PAGE 419 */ +struct yaz_iconv_trie_flat marc8_9page419_flat[] = { + {"\x23", 0, 0x9880}, /* East Asian ideograph */ + {"\x2C", 0, 0x988F}, /* East Asian ideograph */ + {"\x6B", 0, 0x98A1}, /* East Asian ideograph */ + {"\x77", 0, 0x989F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page419 = { + marc8_9page419_flat, 0 +}; +/* PAGE 418 */ +struct yaz_iconv_trie_flat marc8_9page418_flat[] = { + {"\x43", 0, 0x97AF}, /* East Asian ideograph */ + {"\x54", 0, 0x97EA}, /* East Asian ideograph */ + {"\x5C", 0, 0x97EB}, /* East Asian ideograph */ + {"\x79", 0, 0x9878}, /* East Asian ideograph */ + {"\x7B", 0, 0x9883}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page418 = { + marc8_9page418_flat, 0 +}; +/* PAGE 417 */ +struct yaz_iconv_trie_flat marc8_9page417_flat[] = { + {"\x76", 0, 0x9753}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page417 = { + marc8_9page417_flat, 0 +}; +/* PAGE 416 */ +struct yaz_iconv_trie_flat marc8_9page416_flat[] = { + {"\x44", 0, 0x9655}, /* East Asian ideograph */ + {"\x46", 0, 0x9649}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page416 = { + marc8_9page416_flat, 0 +}; +/* PAGE 415 */ +struct yaz_iconv_trie_flat marc8_9page415_flat[] = { + {"\x36", 0, 0x95F3}, /* East Asian ideograph */ + {"\x42", 0, 0x9606}, /* East Asian ideograph */ + {"\x44", 0, 0x9603}, /* East Asian ideograph */ + {"\x48", 0, 0x960F}, /* East Asian ideograph */ + {"\x49", 0, 0x9608}, /* East Asian ideograph */ + {"\x4D", 0, 0x9609}, /* East Asian ideograph */ + {"\x4F", 0, 0x960A}, /* East Asian ideograph */ + {"\x50", 0, 0x960C}, /* East Asian ideograph */ + {"\x52", 0, 0x960D}, /* East Asian ideograph */ + {"\x5A", 0, 0x9612}, /* East Asian ideograph */ + {"\x60", 0, 0x9619}, /* East Asian ideograph */ + {"\x69", 0, 0x961A}, /* East Asian ideograph */ + {"\x6F", 0, 0x95FC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page415 = { + marc8_9page415_flat, 0 +}; +/* PAGE 414 */ +struct yaz_iconv_trie_flat marc8_9page414_flat[] = { + {"\x3E", 0, 0x9554}, /* East Asian ideograph */ + {"\x3F", 0, 0x9572}, /* East Asian ideograph */ + {"\x4A", 0, 0x956C}, /* East Asian ideograph */ + {"\x5C", 0, 0x9565}, /* East Asian ideograph */ + {"\x69", 0, 0x9567}, /* East Asian ideograph */ + {"\x6F", 0, 0x9569}, /* East Asian ideograph */ + {"\x71", 0, 0x954A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page414 = { + marc8_9page414_flat, 0 +}; +/* PAGE 413 */ +struct yaz_iconv_trie_flat marc8_9page413_flat[] = { + {"\x2F", 0, 0x94E9}, /* East Asian ideograph */ + {"\x32", 0, 0x94F4}, /* East Asian ideograph */ + {"\x34", 0, 0x9566}, /* East Asian ideograph */ + {"\x3C", 0, 0x9568}, /* East Asian ideograph */ + {"\x3E", 0, 0x94F9}, /* East Asian ideograph */ + {"\x4D", 0, 0x956B}, /* East Asian ideograph */ + {"\x50", 0, 0x950E}, /* East Asian ideograph */ + {"\x51", 0, 0x950F}, /* East Asian ideograph */ + {"\x58", 0, 0x9561}, /* East Asian ideograph */ + {"\x5E", 0, 0x9562}, /* East Asian ideograph */ + {"\x60", 0, 0x9563}, /* East Asian ideograph */ + {"\x67", 0, 0x94E7}, /* East Asian ideograph */ + {"\x69", 0, 0x9564}, /* East Asian ideograph */ + {"\x74", 0, 0x9571}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page413 = { + marc8_9page413_flat, 0 +}; +/* PAGE 412 */ +struct yaz_iconv_trie_flat marc8_9page412_flat[] = { + {"\x21", 0, 0x9553}, /* East Asian ideograph */ + {"\x28", 0, 0x9552}, /* East Asian ideograph */ + {"\x29", 0, 0x84E5}, /* East Asian ideograph */ + {"\x2D", 0, 0x9549}, /* East Asian ideograph */ + {"\x42", 0, 0x94E0}, /* East Asian ideograph */ + {"\x47", 0, 0x954F}, /* East Asian ideograph */ + {"\x4A", 0, 0x953C}, /* East Asian ideograph */ + {"\x56", 0, 0x955B}, /* East Asian ideograph */ + {"\x5A", 0, 0x955F}, /* East Asian ideograph */ + {"\x62", 0, 0x956A}, /* East Asian ideograph */ + {"\x66", 0, 0x933E}, /* East Asian ideograph */ + {"\x7C", 0, 0x9546}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page412 = { + marc8_9page412_flat, 0 +}; +/* PAGE 411 */ +struct yaz_iconv_trie_flat marc8_9page411_flat[] = { + {"\x31", 0, 0x9528}, /* East Asian ideograph */ + {"\x32", 0, 0x9531}, /* East Asian ideograph */ + {"\x4D", 0, 0x9534}, /* East Asian ideograph */ + {"\x4E", 0, 0x9545}, /* East Asian ideograph */ + {"\x51", 0, 0x9517}, /* East Asian ideograph */ + {"\x5E", 0, 0x94E1}, /* East Asian ideograph */ + {"\x64", 0, 0x9536}, /* East Asian ideograph */ + {"\x67", 0, 0x9537}, /* East Asian ideograph */ + {"\x68", 0, 0x9518}, /* East Asian ideograph */ + {"\x6F", 0, 0x9538}, /* East Asian ideograph */ + {"\x7A", 0, 0x9550}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page411 = { + marc8_9page411_flat, 0 +}; +/* PAGE 410 */ +struct yaz_iconv_trie_flat marc8_9page410_flat[] = { + {"\x27", 0, 0x94D7}, /* East Asian ideograph */ + {"\x2B", 0, 0x9503}, /* East Asian ideograph */ + {"\x2D", 0, 0x94A1}, /* East Asian ideograph */ + {"\x2E", 0, 0x9502}, /* East Asian ideograph */ + {"\x35", 0, 0x950A}, /* East Asian ideograph */ + {"\x3E", 0, 0x94E4}, /* East Asian ideograph */ + {"\x40", 0, 0x9506}, /* East Asian ideograph */ + {"\x41", 0, 0x9507}, /* East Asian ideograph */ + {"\x4D", 0, 0x952B}, /* East Asian ideograph */ + {"\x57", 0, 0x9529}, /* East Asian ideograph */ + {"\x58", 0, 0x952C}, /* East Asian ideograph */ + {"\x5B", 0, 0x9516}, /* East Asian ideograph */ + {"\x66", 0, 0x9515}, /* East Asian ideograph */ + {"\x69", 0, 0x94FC}, /* East Asian ideograph */ + {"\x6D", 0, 0x951B}, /* East Asian ideograph */ + {"\x71", 0, 0x951D}, /* East Asian ideograph */ + {"\x72", 0, 0x951E}, /* East Asian ideograph */ + {"\x74", 0, 0x951F}, /* East Asian ideograph */ + {"\x75", 0, 0x9494}, /* East Asian ideograph */ + {"\x78", 0, 0x9522}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page410 = { + marc8_9page410_flat, 0 +}; +/* PAGE 409 */ +struct yaz_iconv_trie_flat marc8_9page409_flat[] = { + {"\x2B", 0, 0x94C6}, /* East Asian ideograph */ + {"\x2F", 0, 0x94F3}, /* East Asian ideograph */ + {"\x31", 0, 0x94F1}, /* East Asian ideograph */ + {"\x35", 0, 0x94F5}, /* East Asian ideograph */ + {"\x40", 0, 0x94D6}, /* East Asian ideograph */ + {"\x43", 0, 0x94D2}, /* East Asian ideograph */ + {"\x46", 0, 0x94D1}, /* East Asian ideograph */ + {"\x49", 0, 0x94D5}, /* East Asian ideograph */ + {"\x4F", 0, 0x94DE}, /* East Asian ideograph */ + {"\x50", 0, 0x94DF}, /* East Asian ideograph */ + {"\x55", 0, 0x94EB}, /* East Asian ideograph */ + {"\x58", 0, 0x94EF}, /* East Asian ideograph */ + {"\x59", 0, 0x94E5}, /* East Asian ideograph */ + {"\x5B", 0, 0x94E3}, /* East Asian ideograph */ + {"\x62", 0, 0x94EA}, /* East Asian ideograph */ + {"\x64", 0, 0x94F7}, /* East Asian ideograph */ + {"\x6A", 0, 0x9512}, /* East Asian ideograph */ + {"\x6C", 0, 0x950D}, /* East Asian ideograph */ + {"\x71", 0, 0x94FD}, /* East Asian ideograph */ + {"\x72", 0, 0x9513}, /* East Asian ideograph */ + {"\x75", 0, 0x9514}, /* East Asian ideograph */ + {"\x7D", 0, 0x94D8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page409 = { + marc8_9page409_flat, 0 +}; +/* PAGE 408 */ +struct yaz_iconv_trie_flat marc8_9page408_flat[] = { + {"\x21", 0, 0x9495}, /* East Asian ideograph */ + {"\x22", 0, 0x9490}, /* East Asian ideograph */ + {"\x23", 0, 0x94AD}, /* East Asian ideograph */ + {"\x24", 0, 0x94AA}, /* East Asian ideograph */ + {"\x25", 0, 0x94AB}, /* East Asian ideograph */ + {"\x28", 0, 0x94AC}, /* East Asian ideograph */ + {"\x31", 0, 0x94AF}, /* East Asian ideograph */ + {"\x37", 0, 0x949B}, /* East Asian ideograph */ + {"\x4B", 0, 0x94A3}, /* East Asian ideograph */ + {"\x51", 0, 0x94C8}, /* East Asian ideograph */ + {"\x52", 0, 0x94C9}, /* East Asian ideograph */ + {"\x54", 0, 0x94CB}, /* East Asian ideograph */ + {"\x55", 0, 0x94CA}, /* East Asian ideograph */ + {"\x58", 0, 0x94B0}, /* East Asian ideograph */ + {"\x5C", 0, 0x94CC}, /* East Asian ideograph */ + {"\x5F", 0, 0x94B6}, /* East Asian ideograph */ + {"\x60", 0, 0x94B7}, /* East Asian ideograph */ + {"\x61", 0, 0x94B2}, /* East Asian ideograph */ + {"\x64", 0, 0x94BA}, /* East Asian ideograph */ + {"\x6D", 0, 0x94CD}, /* East Asian ideograph */ + {"\x6F", 0, 0x94BD}, /* East Asian ideograph */ + {"\x74", 0, 0x94BF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page408 = { + marc8_9page408_flat, 0 +}; +/* PAGE 407 */ +struct yaz_iconv_trie_flat marc8_9page407_flat[] = { + {"\x5C", 0, 0x917E}, /* East Asian ideograph */ + {"\x5D", 0, 0x917D}, /* East Asian ideograph */ + {"\x61", 0, 0x9487}, /* East Asian ideograph */ + {"\x62", 0, 0x9486}, /* East Asian ideograph */ + {"\x63", 0, 0x948C}, /* East Asian ideograph */ + {"\x64", 0, 0x948B}, /* East Asian ideograph */ + {"\x6A", 0, 0x948D}, /* East Asian ideograph */ + {"\x6B", 0, 0x948E}, /* East Asian ideograph */ + {"\x79", 0, 0x9492}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page407 = { + marc8_9page407_flat, 0 +}; +/* PAGE 406 */ +struct yaz_iconv_trie_flat marc8_9page406_flat[] = { + {"\x21", 0, 0x90F8}, /* East Asian ideograph */ + {"\x2B", 0, 0x90BA}, /* East Asian ideograph */ + {"\x2C", 0, 0x90D0}, /* East Asian ideograph */ + {"\x31", 0, 0x909D}, /* East Asian ideograph */ + {"\x40", 0, 0x90E6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page406 = { + marc8_9page406_flat, 0 +}; +/* PAGE 405 */ +struct yaz_iconv_trie_flat marc8_9page405_flat[] = { + {"\x23", 0, 0x90CF}, /* East Asian ideograph */ + {"\x4C", 0, 0x90D3}, /* East Asian ideograph */ + {"\x5A", 0, 0x90E7}, /* East Asian ideograph */ + {"\x5C", 0, 0x90AC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page405 = { + marc8_9page405_flat, 0 +}; +/* PAGE 404 */ +struct yaz_iconv_trie_flat marc8_9page404_flat[] = { + {"\x4E", 0, 0x8FF8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page404 = { + marc8_9page404_flat, 0 +}; +/* PAGE 403 */ +struct yaz_iconv_trie_flat marc8_9page403_flat[] = { + {"\x30", 0, 0x8F98}, /* East Asian ideograph */ + {"\x57", 0, 0x8F79}, /* East Asian ideograph */ + {"\x5A", 0, 0x8F73}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page403 = { + marc8_9page403_flat, 0 +}; +/* PAGE 402 */ +struct yaz_iconv_trie_flat marc8_9page402_flat[] = { + {"\x3E", 0, 0x8F71}, /* East Asian ideograph */ + {"\x3F", 0, 0x8F7A}, /* East Asian ideograph */ + {"\x42", 0, 0x8F75}, /* East Asian ideograph */ + {"\x47", 0, 0x8F77}, /* East Asian ideograph */ + {"\x4F", 0, 0x8F78}, /* East Asian ideograph */ + {"\x59", 0, 0x8F82}, /* East Asian ideograph */ + {"\x5B", 0, 0x8F81}, /* East Asian ideograph */ + {"\x6B", 0, 0x8F8B}, /* East Asian ideograph */ + {"\x6D", 0, 0x8F8A}, /* East Asian ideograph */ + {"\x7A", 0, 0x8F8F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page402 = { + marc8_9page402_flat, 0 +}; +/* PAGE 401 */ +struct yaz_iconv_trie_flat marc8_9page401_flat[] = { + {"\x2E", 0, 0x8DC4}, /* East Asian ideograph */ + {"\x40", 0, 0x8DF8}, /* East Asian ideograph */ + {"\x46", 0, 0x8E70}, /* East Asian ideograph */ + {"\x57", 0, 0x8DFB}, /* East Asian ideograph */ + {"\x5E", 0, 0x8DF9}, /* East Asian ideograph */ + {"\x5F", 0, 0x8DDE}, /* East Asian ideograph */ + {"\x60", 0, 0x8E2C}, /* East Asian ideograph */ + {"\x6B", 0, 0x8E7F}, /* East Asian ideograph */ + {"\x70", 0, 0x8E9C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page401 = { + marc8_9page401_flat, 0 +}; +/* PAGE 400 */ +struct yaz_iconv_trie_flat marc8_9page400_flat[] = { + {"\x66", 0, 0x8DB1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page400 = { + marc8_9page400_flat, 0 +}; +/* PAGE 399 */ +struct yaz_iconv_trie_flat marc8_9page399_flat[] = { + {"\x25", 0, 0x8D3D}, /* East Asian ideograph */ + {"\x26", 0, 0x8D5C}, /* East Asian ideograph */ + {"\x3A", 0, 0x8D46}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page399 = { + marc8_9page399_flat, 0 +}; +/* PAGE 398 */ +struct yaz_iconv_trie_flat marc8_9page398_flat[] = { + {"\x4E", 0, 0x8D33}, /* East Asian ideograph */ + {"\x51", 0, 0x8D36}, /* East Asian ideograph */ + {"\x5F", 0, 0x8D47}, /* East Asian ideograph */ + {"\x6A", 0, 0x8D53}, /* East Asian ideograph */ + {"\x6B", 0, 0x8D55}, /* East Asian ideograph */ + {"\x70", 0, 0x8D49}, /* East Asian ideograph */ + {"\x7E", 0, 0x8D59}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page398 = { + marc8_9page398_flat, 0 +}; +/* PAGE 397 */ +struct yaz_iconv_trie_flat marc8_9page397_flat[] = { + {"\x2D", 0, 0x8C30}, /* East Asian ideograph */ + {"\x37", 0, 0x8C20}, /* East Asian ideograph */ + {"\x39", 0, 0x8C33}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page397 = { + marc8_9page397_flat, 0 +}; +/* PAGE 396 */ +struct yaz_iconv_trie_flat marc8_9page396_flat[] = { + {"\x30", 0, 0x8BB4}, /* East Asian ideograph */ + {"\x38", 0, 0x8C29}, /* East Asian ideograph */ + {"\x4D", 0, 0x8C2E}, /* East Asian ideograph */ + {"\x59", 0, 0x8C2F}, /* East Asian ideograph */ + {"\x68", 0, 0x8C35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page396 = { + marc8_9page396_flat, 0 +}; +/* PAGE 395 */ +struct yaz_iconv_trie_flat marc8_9page395_flat[] = { + {"\x25", 0, 0x8BF9}, /* East Asian ideograph */ + {"\x2C", 0, 0x8BFC}, /* East Asian ideograph */ + {"\x36", 0, 0x8BE4}, /* East Asian ideograph */ + {"\x38", 0, 0x8BFD}, /* East Asian ideograph */ + {"\x3B", 0, 0x8C00}, /* East Asian ideograph */ + {"\x40", 0, 0x8C02}, /* East Asian ideograph */ + {"\x44", 0, 0x8C19}, /* East Asian ideograph */ + {"\x45", 0, 0x8BE8}, /* East Asian ideograph */ + {"\x4E", 0, 0x8C0C}, /* East Asian ideograph */ + {"\x57", 0, 0x8C14}, /* East Asian ideograph */ + {"\x59", 0, 0x8C11}, /* East Asian ideograph */ + {"\x5D", 0, 0x8C16}, /* East Asian ideograph */ + {"\x62", 0, 0x8C1D}, /* East Asian ideograph */ + {"\x73", 0, 0x8C21}, /* East Asian ideograph */ + {"\x7A", 0, 0x8BCC}, /* East Asian ideograph */ + {"\x7D", 0, 0x8C27}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page395 = { + marc8_9page395_flat, 0 +}; +/* PAGE 394 */ +struct yaz_iconv_trie_flat marc8_9page394_flat[] = { + {"\x2A", 0, 0x8BB5}, /* East Asian ideograph */ + {"\x3B", 0, 0x8BCE}, /* East Asian ideograph */ + {"\x3C", 0, 0x8BD2}, /* East Asian ideograph */ + {"\x3C", 0, 0x8BD2}, /* East Asian ideograph */ + {"\x4F", 0, 0x8BD6}, /* East Asian ideograph */ + {"\x50", 0, 0x8BD3}, /* East Asian ideograph */ + {"\x56", 0, 0x8BE9}, /* East Asian ideograph */ + {"\x5D", 0, 0x8BD4}, /* East Asian ideograph */ + {"\x5E", 0, 0x8BDC}, /* East Asian ideograph */ + {"\x71", 0, 0x8BEE}, /* East Asian ideograph */ + {"\x7E", 0, 0x8C07}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page394 = { + marc8_9page394_flat, 0 +}; +/* PAGE 393 */ +struct yaz_iconv_trie_flat marc8_9page393_flat[] = { + {"\x2B", 0, 0x89D1}, /* East Asian ideograph */ + {"\x32", 0, 0x89CC}, /* East Asian ideograph */ + {"\x60", 0, 0x89EF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page393 = { + marc8_9page393_flat, 0 +}; +/* PAGE 392 */ +struct yaz_iconv_trie_flat marc8_9page392_flat[] = { + {"\x2D", 0, 0x88E3}, /* East Asian ideograph */ + {"\x32", 0, 0x7962}, /* East Asian ideograph */ + {"\x66", 0, 0x89C7}, /* East Asian ideograph */ + {"\x6F", 0, 0x89CB}, /* East Asian ideograph */ + {"\x7D", 0, 0x89CF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page392 = { + marc8_9page392_flat, 0 +}; +/* PAGE 391 */ +struct yaz_iconv_trie_flat marc8_9page391_flat[] = { + {"\x60", 0, 0x88E2}, /* East Asian ideograph */ + {"\x72", 0, 0x88E5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page391 = { + marc8_9page391_flat, 0 +}; +/* PAGE 390 */ +struct yaz_iconv_trie_flat marc8_9page390_flat[] = { + {"\x51", 0, 0x8511}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page390 = { + marc8_9page390_flat, 0 +}; +/* PAGE 389 */ +struct yaz_iconv_trie_flat marc8_9page389_flat[] = { + {"\x4C", 0, 0x866E}, /* East Asian ideograph */ + {"\x55", 0, 0x86CF}, /* East Asian ideograph */ + {"\x5D", 0, 0x867F}, /* East Asian ideograph */ + {"\x61", 0, 0x86F4}, /* East Asian ideograph */ + {"\x64", 0, 0x877E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page389 = { + marc8_9page389_flat, 0 +}; +/* PAGE 388 */ +struct yaz_iconv_trie_flat marc8_9page388_flat[] = { + {"\x55", 0, 0x86F3}, /* East Asian ideograph */ + {"\x6E", 0, 0x86F0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page388 = { + marc8_9page388_flat, 0 +}; +/* PAGE 387 */ +struct yaz_iconv_trie_flat marc8_9page387_flat[] = { + {"\x2F", 0, 0x86F1}, /* East Asian ideograph */ + {"\x34", 0, 0x86AC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page387 = { + marc8_9page387_flat, 0 +}; +/* PAGE 386 */ +struct yaz_iconv_trie_flat marc8_9page386_flat[] = { + {"\x2A", 0, 0x8539}, /* East Asian ideograph */ + {"\x40", 0, 0x84E0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page386 = { + marc8_9page386_flat, 0 +}; +/* PAGE 385 */ +struct yaz_iconv_trie_flat marc8_9page385_flat[] = { + {"\x52", 0, 0x830F}, /* East Asian ideograph */ + {"\x65", 0, 0x82C8}, /* East Asian ideograph */ + {"\x68", 0, 0x8572}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page385 = { + marc8_9page385_flat, 0 +}; +/* PAGE 384 */ +struct yaz_iconv_trie_flat marc8_9page384_flat[] = { + {"\x33", 0, 0x84E3}, /* East Asian ideograph */ + {"\x51", 0, 0x84DF}, /* East Asian ideograph */ + {"\x57", 0, 0x835F}, /* East Asian ideograph */ + {"\x58", 0, 0x83B6}, /* East Asian ideograph */ + {"\x61", 0, 0x8360}, /* East Asian ideograph */ + {"\x68", 0, 0x8369}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page384 = { + marc8_9page384_flat, 0 +}; +/* PAGE 383 */ +struct yaz_iconv_trie_flat marc8_9page383_flat[] = { + {"\x24", 0, 0x848C}, /* East Asian ideograph */ + {"\x2D", 0, 0x8311}, /* East Asian ideograph */ + {"\x35", 0, 0x82C1}, /* East Asian ideograph */ + {"\x46", 0, 0x8368}, /* East Asian ideograph */ + {"\x4B", 0, 0x835B}, /* East Asian ideograph */ + {"\x5A", 0, 0x8487}, /* East Asian ideograph */ + {"\x64", 0, 0x8489}, /* East Asian ideograph */ + {"\x67", 0, 0x836C}, /* East Asian ideograph */ + {"\x71", 0, 0x835E}, /* East Asian ideograph */ + {"\x74", 0, 0x83B8}, /* East Asian ideograph */ + {"\x77", 0, 0x8297}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page383 = { + marc8_9page383_flat, 0 +}; +/* PAGE 382 */ +struct yaz_iconv_trie_flat marc8_9page382_flat[] = { + {"\x33", 0, 0x8298}, /* East Asian ideograph (duplicate simplified) */ + {"\x3A", 0, 0x83BC}, /* East Asian ideograph */ + {"\x7D", 0, 0x835C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page382 = { + marc8_9page382_flat, 0 +}; +/* PAGE 381 */ +struct yaz_iconv_trie_flat marc8_9page381_flat[] = { + {"\x3C", 0, 0x836D}, /* East Asian ideograph */ + {"\x3D", 0, 0x836E}, /* East Asian ideograph */ + {"\x75", 0, 0x83B3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page381 = { + marc8_9page381_flat, 0 +}; +/* PAGE 380 */ +struct yaz_iconv_trie_dir marc8_9page380_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {382, 0, 0}, + {383, 0, 0}, + {384, 0, 0}, + {385, 0, 0}, + {386, 0, 0}, + {387, 0, 0}, + {0, 0, 0}, + {388, 0, 0}, + {389, 0, 0}, + {390, 0, 0}, + {391, 0, 0}, + {0, 0, 0}, + {392, 0, 0}, + {393, 0, 0}, + {394, 0, 0}, + {395, 0, 0}, + {396, 0, 0}, + {397, 0, 0}, + {398, 0, 0}, + {399, 0, 0}, + {400, 0, 0}, + {401, 0, 0}, + {0, 0, 0}, + {402, 0, 0}, + {403, 0, 0}, + {404, 0, 0}, + {405, 0, 0}, + {0, 0, 0}, + {406, 0, 0}, + {407, 0, 0}, + {408, 0, 0}, + {409, 0, 0}, + {410, 0, 0}, + {411, 0, 0}, + {412, 0, 0}, + {413, 0, 0}, + {414, 0, 0}, + {415, 0, 0}, + {416, 0, 0}, + {417, 0, 0}, + {0, 0, 0}, + {418, 0, 0}, + {0, 0, 0}, + {419, 0, 0}, + {420, 0, 0}, + {421, 0, 0}, + {422, 0, 0}, + {423, 0, 0}, + {424, 0, 0}, + {425, 0, 0}, + {426, 0, 0}, + {427, 0, 0}, + {428, 0, 0}, + {429, 0, 0}, + {430, 0, 0}, + {431, 0, 0}, + {432, 0, 0}, + {433, 0, 0}, + {434, 0, 0}, + {435, 0, 0}, + {436, 0, 0}, + {437, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page380 = { + 0, marc8_9page380_dir +}; +/* PAGE 379 */ +struct yaz_iconv_trie_flat marc8_9page379_flat[] = { + {"\x61", 0, 0x82CC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page379 = { + marc8_9page379_flat, 0 +}; +/* PAGE 378 */ +struct yaz_iconv_trie_flat marc8_9page378_flat[] = { + {"\x56", 0, 0x8114}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page378 = { + marc8_9page378_flat, 0 +}; +/* PAGE 377 */ +struct yaz_iconv_trie_flat marc8_9page377_flat[] = { + {"\x41", 0, 0x8136}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page377 = { + marc8_9page377_flat, 0 +}; +/* PAGE 376 */ +struct yaz_iconv_trie_flat marc8_9page376_flat[] = { + {"\x55", 0, 0x80EB}, /* East Asian ideograph */ + {"\x6E", 0, 0x80E8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page376 = { + marc8_9page376_flat, 0 +}; +/* PAGE 375 */ +struct yaz_iconv_trie_flat marc8_9page375_flat[] = { + {"\x39", 0, 0x8069}, /* East Asian ideograph */ + {"\x3F", 0, 0x804D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page375 = { + marc8_9page375_flat, 0 +}; +/* PAGE 374 */ +struct yaz_iconv_trie_flat marc8_9page374_flat[] = { + {"\x55", 0, 0x8027}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page374 = { + marc8_9page374_flat, 0 +}; +/* PAGE 373 */ +struct yaz_iconv_trie_flat marc8_9page373_flat[] = { + {"\x31", 0, 0x7F9F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page373 = { + marc8_9page373_flat, 0 +}; +/* PAGE 372 */ +struct yaz_iconv_trie_flat marc8_9page372_flat[] = { + {"\x2E", 0, 0x7F42}, /* East Asian ideograph */ + {"\x31", 0, 0x575B}, /* East Asian ideograph (duplicate simplified) */ + {"\x72", 0, 0x7F74}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page372 = { + marc8_9page372_flat, 0 +}; +/* PAGE 371 */ +struct yaz_iconv_trie_flat marc8_9page371_flat[] = { + {"\x21", 0, 0x7F26}, /* East Asian ideograph */ + {"\x2D", 0, 0x7F2F}, /* East Asian ideograph */ + {"\x49", 0, 0x7F30}, /* East Asian ideograph */ + {"\x4E", 0, 0x7F32}, /* East Asian ideograph */ + {"\x51", 0, 0x7F33}, /* East Asian ideograph */ + {"\x52", 0, 0x7F34}, /* East Asian ideograph */ + {"\x59", 0, 0x7F31}, /* East Asian ideograph */ + {"\x5D", 0, 0x7EA9}, /* East Asian ideograph */ + {"\x60", 0, 0x7F2C}, /* East Asian ideograph */ + {"\x6D", 0, 0x624D}, /* East Asian ideograph */ + {"\x74", 0, 0x7F35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page371 = { + marc8_9page371_flat, 0 +}; +/* PAGE 370 */ +struct yaz_iconv_trie_flat marc8_9page370_flat[] = { + {"\x29", 0, 0x7F17}, /* East Asian ideograph */ + {"\x2A", 0, 0x7F02}, /* East Asian ideograph */ + {"\x31", 0, 0x7F03}, /* East Asian ideograph */ + {"\x36", 0, 0x7F07}, /* East Asian ideograph */ + {"\x3C", 0, 0x7F08}, /* East Asian ideograph */ + {"\x3E", 0, 0x7F0C}, /* East Asian ideograph */ + {"\x47", 0, 0x7F11}, /* East Asian ideograph */ + {"\x48", 0, 0x7F0F}, /* East Asian ideograph */ + {"\x51", 0, 0x7F1F}, /* East Asian ideograph */ + {"\x53", 0, 0x7F12}, /* East Asian ideograph */ + {"\x5D", 0, 0x7F1C}, /* East Asian ideograph */ + {"\x5E", 0, 0x7F19}, /* East Asian ideograph */ + {"\x5F", 0, 0x7F1B}, /* East Asian ideograph */ + {"\x69", 0, 0x7EC9}, /* East Asian ideograph */ + {"\x71", 0, 0x7EA4}, /* East Asian ideograph (duplicate simplified) */ + {"\x72", 0, 0x7F21}, /* East Asian ideograph */ + {"\x75", 0, 0x7D77}, /* East Asian ideograph */ + {"\x79", 0, 0x7F25}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page370 = { + marc8_9page370_flat, 0 +}; +/* PAGE 369 */ +struct yaz_iconv_trie_flat marc8_9page369_flat[] = { + {"\x30", 0, 0x7EDB}, /* East Asian ideograph */ + {"\x34", 0, 0x7ED7}, /* East Asian ideograph */ + {"\x39", 0, 0x7EE8}, /* East Asian ideograph */ + {"\x44", 0, 0x7EE0}, /* East Asian ideograph */ + {"\x4D", 0, 0x7EE1}, /* East Asian ideograph */ + {"\x61", 0, 0x7EFB}, /* East Asian ideograph */ + {"\x67", 0, 0x7EEF}, /* East Asian ideograph */ + {"\x74", 0, 0x7EF2}, /* East Asian ideograph */ + {"\x78", 0, 0x7EF6}, /* East Asian ideograph */ + {"\x7D", 0, 0x7EFA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page369 = { + marc8_9page369_flat, 0 +}; +/* PAGE 368 */ +struct yaz_iconv_trie_flat marc8_9page368_flat[] = { + {"\x22", 0, 0x7CC1}, /* East Asian ideograph */ + {"\x2E", 0, 0x56E2}, /* East Asian ideograph (duplicate simplified) */ + {"\x30", 0, 0x7C9D}, /* East Asian ideograph */ + {"\x35", 0, 0x7C74}, /* East Asian ideograph */ + {"\x42", 0, 0x7EA1}, /* East Asian ideograph */ + {"\x45", 0, 0x7EA8}, /* East Asian ideograph */ + {"\x4A", 0, 0x7EBE}, /* East Asian ideograph */ + {"\x61", 0, 0x7EC0}, /* East Asian ideograph */ + {"\x62", 0, 0x7EC1}, /* East Asian ideograph */ + {"\x65", 0, 0x7EC2}, /* East Asian ideograph */ + {"\x6A", 0, 0x7ED0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page368 = { + marc8_9page368_flat, 0 +}; +/* PAGE 367 */ +struct yaz_iconv_trie_flat marc8_9page367_flat[] = { + {"\x56", 0, 0x7BA8}, /* East Asian ideograph */ + {"\x68", 0, 0x7B3E}, /* East Asian ideograph */ + {"\x69", 0, 0x7C16}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page367 = { + marc8_9page367_flat, 0 +}; +/* PAGE 366 */ +struct yaz_iconv_trie_flat marc8_9page366_flat[] = { + {"\x47", 0, 0x7BA6}, /* East Asian ideograph */ + {"\x54", 0, 0x7B5A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page366 = { + marc8_9page366_flat, 0 +}; +/* PAGE 365 */ +struct yaz_iconv_trie_flat marc8_9page365_flat[] = { + {"\x58", 0, 0x7BA7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page365 = { + marc8_9page365_flat, 0 +}; +/* PAGE 364 */ +struct yaz_iconv_trie_flat marc8_9page364_flat[] = { + {"\x7C", 0, 0x7B15}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page364 = { + marc8_9page364_flat, 0 +}; +/* PAGE 363 */ +struct yaz_iconv_trie_flat marc8_9page363_flat[] = { + {"\x3C", 0, 0x7AAD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page363 = { + marc8_9page363_flat, 0 +}; +/* PAGE 362 */ +struct yaz_iconv_trie_flat marc8_9page362_flat[] = { + {"\x22", 0, 0x7857}, /* East Asian ideograph */ + {"\x55", 0, 0x783B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page362 = { + marc8_9page362_flat, 0 +}; +/* PAGE 361 */ +struct yaz_iconv_trie_flat marc8_9page361_flat[] = { + {"\x40", 0, 0x7800}, /* East Asian ideograph */ + {"\x6A", 0, 0x789B}, /* East Asian ideograph */ + {"\x77", 0, 0x789C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page361 = { + marc8_9page361_flat, 0 +}; +/* PAGE 360 */ +struct yaz_iconv_trie_flat marc8_9page360_flat[] = { + {"\x5A", 0, 0x7817}, /* East Asian ideograph */ + {"\x60", 0, 0x7856}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page360 = { + marc8_9page360_flat, 0 +}; +/* PAGE 359 */ +struct yaz_iconv_trie_flat marc8_9page359_flat[] = { + {"\x2C", 0, 0x7751}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page359 = { + marc8_9page359_flat, 0 +}; +/* PAGE 358 */ +struct yaz_iconv_trie_flat marc8_9page358_flat[] = { + {"\x22", 0, 0x7726}, /* East Asian ideograph */ + {"\x72", 0, 0x770D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page358 = { + marc8_9page358_flat, 0 +}; +/* PAGE 357 */ +struct yaz_iconv_trie_flat marc8_9page357_flat[] = { + {"\x2B", 0, 0x762A}, /* East Asian ideograph */ + {"\x32", 0, 0x75AC}, /* East Asian ideograph */ + {"\x37", 0, 0x763F}, /* East Asian ideograph */ + {"\x3A", 0, 0x75C8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page357 = { + marc8_9page357_flat, 0 +}; +/* PAGE 356 */ +struct yaz_iconv_trie_flat marc8_9page356_flat[] = { + {"\x48", 0, 0x7617}, /* East Asian ideograph */ + {"\x5E", 0, 0x7618}, /* East Asian ideograph */ + {"\x6F", 0, 0x7605}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page356 = { + marc8_9page356_flat, 0 +}; +/* PAGE 355 */ +struct yaz_iconv_trie_flat marc8_9page355_flat[] = { + {"\x7A", 0, 0x75D6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page355 = { + marc8_9page355_flat, 0 +}; +/* PAGE 354 */ +struct yaz_iconv_trie_flat marc8_9page354_flat[] = { + {"\x6B", 0, 0x7572}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page354 = { + marc8_9page354_flat, 0 +}; +/* PAGE 353 */ +struct yaz_iconv_trie_flat marc8_9page353_flat[] = { + {"\x3A", 0, 0x748E}, /* East Asian ideograph */ + {"\x40", 0, 0x74D2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page353 = { + marc8_9page353_flat, 0 +}; +/* PAGE 352 */ +struct yaz_iconv_trie_flat marc8_9page352_flat[] = { + {"\x21", 0, 0x740F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page352 = { + marc8_9page352_flat, 0 +}; +/* PAGE 351 */ +struct yaz_iconv_trie_flat marc8_9page351_flat[] = { + {"\x47", 0, 0x73AE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page351 = { + marc8_9page351_flat, 0 +}; +/* PAGE 350 */ +struct yaz_iconv_trie_flat marc8_9page350_flat[] = { + {"\x2B", 0, 0x7303}, /* East Asian ideograph */ + {"\x36", 0, 0x7315}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page350 = { + marc8_9page350_flat, 0 +}; +/* PAGE 349 */ +struct yaz_iconv_trie_flat marc8_9page349_flat[] = { + {"\x5E", 0, 0x72B8}, /* East Asian ideograph */ + {"\x5F", 0, 0x72F2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page349 = { + marc8_9page349_flat, 0 +}; +/* PAGE 348 */ +struct yaz_iconv_trie_flat marc8_9page348_flat[] = { + {"\x24", 0, 0x70E8}, /* East Asian ideograph */ + {"\x4F", 0, 0x70EC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page348 = { + marc8_9page348_flat, 0 +}; +/* PAGE 347 */ +struct yaz_iconv_trie_flat marc8_9page347_flat[] = { + {"\x23", 0, 0x8367}, /* East Asian ideograph */ + {"\x3C", 0, 0x709D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page347 = { + marc8_9page347_flat, 0 +}; +/* PAGE 346 */ +struct yaz_iconv_trie_flat marc8_9page346_flat[] = { + {"\x52", 0, 0x709C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page346 = { + marc8_9page346_flat, 0 +}; +/* PAGE 345 */ +struct yaz_iconv_trie_flat marc8_9page345_flat[] = { + {"\x50", 0, 0x70C3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page345 = { + marc8_9page345_flat, 0 +}; +/* PAGE 344 */ +struct yaz_iconv_trie_flat marc8_9page344_flat[] = { + {"\x29", 0, 0x6EDF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page344 = { + marc8_9page344_flat, 0 +}; +/* PAGE 343 */ +struct yaz_iconv_trie_flat marc8_9page343_flat[] = { + {"\x26", 0, 0x6CF7}, /* East Asian ideograph */ + {"\x39", 0, 0x6CF8}, /* East Asian ideograph */ + {"\x5D", 0, 0x6CA3}, /* East Asian ideograph */ + {"\x61", 0, 0x6EE0}, /* East Asian ideograph */ + {"\x6B", 0, 0x6F13}, /* East Asian ideograph */ + {"\x7D", 0, 0x704F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page343 = { + marc8_9page343_flat, 0 +}; +/* PAGE 342 */ +struct yaz_iconv_trie_flat marc8_9page342_flat[] = { + {"\x30", 0, 0x6E11}, /* East Asian ideograph */ + {"\x3E", 0, 0x6CF6}, /* East Asian ideograph */ + {"\x41", 0, 0x6F4B}, /* East Asian ideograph */ + {"\x42", 0, 0x6D4D}, /* East Asian ideograph */ + {"\x62", 0, 0x6F4D}, /* East Asian ideograph */ + {"\x66", 0, 0x6EE2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page342 = { + marc8_9page342_flat, 0 +}; +/* PAGE 341 */ +struct yaz_iconv_trie_flat marc8_9page341_flat[] = { + {"\x27", 0, 0x6D9D}, /* East Asian ideograph */ + {"\x2B", 0, 0x6D54}, /* East Asian ideograph */ + {"\x49", 0, 0x6DA0}, /* East Asian ideograph */ + {"\x58", 0, 0x6CA9}, /* East Asian ideograph */ + {"\x59", 0, 0x6ED7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page341 = { + marc8_9page341_flat, 0 +}; +/* PAGE 340 */ +struct yaz_iconv_trie_flat marc8_9page340_flat[] = { + {"\x2E", 0, 0x6D52}, /* East Asian ideograph */ + {"\x41", 0, 0x6CA4}, /* East Asian ideograph */ + {"\x62", 0, 0x988D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page340 = { + marc8_9page340_flat, 0 +}; +/* PAGE 339 */ +struct yaz_iconv_trie_flat marc8_9page339_flat[] = { + {"\x28", 0, 0x6D48}, /* East Asian ideograph */ + {"\x43", 0, 0x8365}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page339 = { + marc8_9page339_flat, 0 +}; +/* PAGE 338 */ +struct yaz_iconv_trie_flat marc8_9page338_flat[] = { + {"\x34", 0, 0x6D43}, /* East Asian ideograph */ + {"\x71", 0, 0x6D9E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page338 = { + marc8_9page338_flat, 0 +}; +/* PAGE 337 */ +struct yaz_iconv_trie_flat marc8_9page337_flat[] = { + {"\x42", 0, 0x6BF5}, /* East Asian ideograph */ + {"\x4C", 0, 0x6BE1}, /* East Asian ideograph */ + {"\x51", 0, 0x6C07}, /* East Asian ideograph */ + {"\x68", 0, 0x6C29}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page337 = { + marc8_9page337_flat, 0 +}; +/* PAGE 336 */ +struct yaz_iconv_trie_flat marc8_9page336_flat[] = { + {"\x39", 0, 0x6B9A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page336 = { + marc8_9page336_flat, 0 +}; +/* PAGE 335 */ +struct yaz_iconv_trie_flat marc8_9page335_flat[] = { + {"\x33", 0, 0x680E}, /* East Asian ideograph */ + {"\x35", 0, 0x6A7C}, /* East Asian ideograph */ + {"\x37", 0, 0x6987}, /* East Asian ideograph */ + {"\x39", 0, 0x680A}, /* East Asian ideograph */ + {"\x3A", 0, 0x69E0}, /* East Asian ideograph */ + {"\x40", 0, 0x67A5}, /* East Asian ideograph */ + {"\x45", 0, 0x680C}, /* East Asian ideograph */ + {"\x50", 0, 0x68C2}, /* East Asian ideograph */ + {"\x59", 0, 0x6989}, /* East Asian ideograph */ + {"\x66", 0, 0x6924}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page335 = { + marc8_9page335_flat, 0 +}; +/* PAGE 334 */ +struct yaz_iconv_trie_flat marc8_9page334_flat[] = { + {"\x2B", 0, 0x6A2F}, /* East Asian ideograph */ + {"\x57", 0, 0x68BC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page334 = { + marc8_9page334_flat, 0 +}; +/* PAGE 333 */ +struct yaz_iconv_trie_flat marc8_9page333_flat[] = { + {"\x40", 0, 0x6861}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page333 = { + marc8_9page333_flat, 0 +}; +/* PAGE 332 */ +struct yaz_iconv_trie_flat marc8_9page332_flat[] = { + {"\x27", 0, 0x6864}, /* East Asian ideograph */ + {"\x27", 0, 0x6864}, /* East Asian ideograph */ + {"\x56", 0, 0x6920}, /* East Asian ideograph */ + {"\x5E", 0, 0x67FD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page332 = { + marc8_9page332_flat, 0 +}; +/* PAGE 331 */ +struct yaz_iconv_trie_flat marc8_9page331_flat[] = { + {"\x30", 0, 0x6966}, /* East Asian ideograph */ + {"\x5C", 0, 0x6769}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page331 = { + marc8_9page331_flat, 0 +}; +/* PAGE 330 */ +struct yaz_iconv_trie_flat marc8_9page330_flat[] = { + {"\x30", 0, 0x67A7}, /* East Asian ideograph */ + {"\x6E", 0, 0x67A8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page330 = { + marc8_9page330_flat, 0 +}; +/* PAGE 329 */ +struct yaz_iconv_trie_flat marc8_9page329_flat[] = { + {"\x22", 0, 0x4E2B}, /* East Asian ideograph */ + {"\x7D", 0, 0x53F0}, /* East Asian ideograph (duplicate simplified) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page329 = { + marc8_9page329_flat, 0 +}; +/* PAGE 328 */ +struct yaz_iconv_trie_flat marc8_9page328_flat[] = { + {"\x55", 0, 0x6619}, /* East Asian ideograph */ + {"\x5C", 0, 0x6654}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page328 = { + marc8_9page328_flat, 0 +}; +/* PAGE 327 */ +struct yaz_iconv_trie_flat marc8_9page327_flat[] = { + {"\x71", 0, 0x6593}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page327 = { + marc8_9page327_flat, 0 +}; +/* PAGE 326 */ +struct yaz_iconv_trie_flat marc8_9page326_flat[] = { + {"\x2A", 0, 0x6448}, /* East Asian ideograph */ + {"\x42", 0, 0x64B7}, /* East Asian ideograph */ + {"\x46", 0, 0x6445}, /* East Asian ideograph */ + {"\x5B", 0, 0x6484}, /* East Asian ideograph */ + {"\x61", 0, 0x64BA}, /* East Asian ideograph */ + {"\x6D", 0, 0x6512}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page326 = { + marc8_9page326_flat, 0 +}; +/* PAGE 325 */ +struct yaz_iconv_trie_flat marc8_9page325_flat[] = { + {"\x2C", 0, 0x63BA}, /* East Asian ideograph */ + {"\x2E", 0, 0x63BC}, /* East Asian ideograph */ + {"\x57", 0, 0x63B8}, /* East Asian ideograph */ + {"\x62", 0, 0x6322}, /* East Asian ideograph */ + {"\x66", 0, 0x63FF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page325 = { + marc8_9page325_flat, 0 +}; +/* PAGE 324 */ +struct yaz_iconv_trie_flat marc8_9page324_flat[] = { + {"\x6F", 0, 0x629F}, /* East Asian ideograph */ + {"\x7B", 0, 0x62A0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page324 = { + marc8_9page324_flat, 0 +}; +/* PAGE 323 */ +struct yaz_iconv_trie_flat marc8_9page323_flat[] = { + {"\x43", 0, 0x6206}, /* East Asian ideograph */ + {"\x47", 0, 0x620B}, /* East Asian ideograph */ + {"\x66", 0, 0x6217}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page323 = { + marc8_9page323_flat, 0 +}; +/* PAGE 322 */ +struct yaz_iconv_trie_flat marc8_9page322_flat[] = { + {"\x4C", 0, 0x6126}, /* East Asian ideograph */ + {"\x52", 0, 0x6003}, /* East Asian ideograph */ + {"\x5C", 0, 0x603F}, /* East Asian ideograph */ + {"\x79", 0, 0x6079}, /* East Asian ideograph */ + {"\x7E", 0, 0x603C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page322 = { + marc8_9page322_flat, 0 +}; +/* PAGE 321 */ +struct yaz_iconv_trie_flat marc8_9page321_flat[] = { + {"\x34", 0, 0x607D}, /* East Asian ideograph */ + {"\x5E", 0, 0x607A}, /* East Asian ideograph */ + {"\x74", 0, 0x6004}, /* East Asian ideograph */ + {"\x77", 0, 0x60AD}, /* East Asian ideograph */ + {"\x79", 0, 0x60AB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page321 = { + marc8_9page321_flat, 0 +}; +/* PAGE 320 */ +struct yaz_iconv_trie_flat marc8_9page320_flat[] = { + {"\x51", 0, 0x5F2A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page320 = { + marc8_9page320_flat, 0 +}; +/* PAGE 319 */ +struct yaz_iconv_trie_flat marc8_9page319_flat[] = { + {"\x68", 0, 0x5E91}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page319 = { + marc8_9page319_flat, 0 +}; +/* PAGE 318 */ +struct yaz_iconv_trie_flat marc8_9page318_flat[] = { + {"\x36", 0, 0x5E0F}, /* East Asian ideograph */ + {"\x47", 0, 0x5E3B}, /* East Asian ideograph */ + {"\x5F", 0, 0x5E31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page318 = { + marc8_9page318_flat, 0 +}; +/* PAGE 317 */ +struct yaz_iconv_trie_flat marc8_9page317_flat[] = { + {"\x26", 0, 0x5CC4}, /* East Asian ideograph */ + {"\x32", 0, 0x5D58}, /* East Asian ideograph */ + {"\x47", 0, 0x5CBF}, /* East Asian ideograph */ + {"\x59", 0, 0x5DEF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page317 = { + marc8_9page317_flat, 0 +}; +/* PAGE 316 */ +struct yaz_iconv_trie_flat marc8_9page316_flat[] = { + {"\x5A", 0, 0x5D5D}, /* East Asian ideograph */ + {"\x69", 0, 0x5D02}, /* East Asian ideograph */ + {"\x77", 0, 0x5CE4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page316 = { + marc8_9page316_flat, 0 +}; +/* PAGE 315 */ +struct yaz_iconv_trie_flat marc8_9page315_flat[] = { + {"\x41", 0, 0x5C98}, /* East Asian ideograph */ + {"\x58", 0, 0x5D03}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page315 = { + marc8_9page315_flat, 0 +}; +/* PAGE 314 */ +struct yaz_iconv_trie_flat marc8_9page314_flat[] = { + {"\x2B", 0, 0x5C66}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page314 = { + marc8_9page314_flat, 0 +}; +/* PAGE 313 */ +struct yaz_iconv_trie_dir marc8_9page313_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {315, 0, 0}, + {316, 0, 0}, + {317, 0, 0}, + {318, 0, 0}, + {319, 0, 0}, + {320, 0, 0}, + {321, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {322, 0, 0}, + {323, 0, 0}, + {324, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {325, 0, 0}, + {326, 0, 0}, + {327, 0, 0}, + {328, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {329, 0, 0}, + {0, 0, 0}, + {330, 0, 0}, + {0, 0, 0}, + {331, 0, 0}, + {0, 0, 0}, + {332, 0, 0}, + {333, 0, 0}, + {334, 0, 0}, + {335, 0, 0}, + {336, 0, 0}, + {0, 0, 0}, + {337, 0, 0}, + {338, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {339, 0, 0}, + {0, 0, 0}, + {340, 0, 0}, + {341, 0, 0}, + {342, 0, 0}, + {343, 0, 0}, + {344, 0, 0}, + {345, 0, 0}, + {346, 0, 0}, + {347, 0, 0}, + {348, 0, 0}, + {349, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {350, 0, 0}, + {351, 0, 0}, + {0, 0, 0}, + {352, 0, 0}, + {353, 0, 0}, + {354, 0, 0}, + {355, 0, 0}, + {356, 0, 0}, + {357, 0, 0}, + {358, 0, 0}, + {0, 0, 0}, + {359, 0, 0}, + {360, 0, 0}, + {361, 0, 0}, + {362, 0, 0}, + {363, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {364, 0, 0}, + {365, 0, 0}, + {366, 0, 0}, + {367, 0, 0}, + {368, 0, 0}, + {0, 0, 0}, + {369, 0, 0}, + {370, 0, 0}, + {371, 0, 0}, + {372, 0, 0}, + {373, 0, 0}, + {374, 0, 0}, + {375, 0, 0}, + {376, 0, 0}, + {377, 0, 0}, + {378, 0, 0}, + {379, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {380, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page313 = { + 0, marc8_9page313_dir +}; +/* PAGE 312 */ +struct yaz_iconv_trie_flat marc8_9page312_flat[] = { + {"\x2B", 0, 0x5A06}, /* East Asian ideograph */ + {"\x40", 0, 0x5AF1}, /* East Asian ideograph */ + {"\x48", 0, 0x5AD2}, /* East Asian ideograph */ + {"\x74", 0, 0x5A08}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page312 = { + marc8_9page312_flat, 0 +}; +/* PAGE 311 */ +struct yaz_iconv_trie_flat marc8_9page311_flat[] = { + {"\x24", 0, 0x5A32}, /* East Asian ideograph */ + {"\x36", 0, 0x59AB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page311 = { + marc8_9page311_flat, 0 +}; +/* PAGE 310 */ +struct yaz_iconv_trie_flat marc8_9page310_flat[] = { + {"\x3C", 0, 0x5A05}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page310 = { + marc8_9page310_flat, 0 +}; +/* PAGE 309 */ +struct yaz_iconv_trie_flat marc8_9page309_flat[] = { + {"\x54", 0, 0x5956}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page309 = { + marc8_9page309_flat, 0 +}; +/* PAGE 308 */ +struct yaz_iconv_trie_flat marc8_9page308_flat[] = { + {"\x5A", 0, 0x5785}, /* East Asian ideograph */ + {"\x5E", 0, 0x5786}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page308 = { + marc8_9page308_flat, 0 +}; +/* PAGE 307 */ +struct yaz_iconv_trie_flat marc8_9page307_flat[] = { + {"\x42", 0, 0x57D8}, /* East Asian ideograph */ + {"\x45", 0, 0x57D9}, /* East Asian ideograph */ + {"\x48", 0, 0x57B2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page307 = { + marc8_9page307_flat, 0 +}; +/* PAGE 306 */ +struct yaz_iconv_trie_flat marc8_9page306_flat[] = { + {"\x38", 0, 0x57AD}, /* East Asian ideograph */ + {"\x7A", 0, 0x57DA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page306 = { + marc8_9page306_flat, 0 +}; +/* PAGE 305 */ +struct yaz_iconv_trie_flat marc8_9page305_flat[] = { + {"\x2E", 0, 0x56F5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page305 = { + marc8_9page305_flat, 0 +}; +/* PAGE 304 */ +struct yaz_iconv_trie_flat marc8_9page304_flat[] = { + {"\x28", 0, 0x54DC}, /* East Asian ideograph */ + {"\x45", 0, 0x556E}, /* East Asian ideograph */ + {"\x4C", 0, 0x5456}, /* East Asian ideograph */ + {"\x5A", 0, 0x55BE}, /* East Asian ideograph */ + {"\x60", 0, 0x5181}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page304 = { + marc8_9page304_flat, 0 +}; +/* PAGE 303 */ +struct yaz_iconv_trie_flat marc8_9page303_flat[] = { + {"\x34", 0, 0x551B}, /* East Asian ideograph */ + {"\x39", 0, 0x54D4}, /* East Asian ideograph */ + {"\x55", 0, 0x54D3}, /* East Asian ideograph */ + {"\x58", 0, 0x6076}, /* East Asian ideograph (duplicate simplified) */ + {"\x67", 0, 0x5452}, /* East Asian ideograph */ + {"\x72", 0, 0x54D2}, /* East Asian ideograph */ + {"\x7A", 0, 0x54D5}, /* East Asian ideograph */ + {"\x7E", 0, 0x54D9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page303 = { + marc8_9page303_flat, 0 +}; +/* PAGE 302 */ +struct yaz_iconv_trie_flat marc8_9page302_flat[] = { + {"\x69", 0, 0x5522}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page302 = { + marc8_9page302_flat, 0 +}; +/* PAGE 301 */ +struct yaz_iconv_trie_flat marc8_9page301_flat[] = { + {"\x30", 0, 0x5457}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page301 = { + marc8_9page301_flat, 0 +}; +/* PAGE 300 */ +struct yaz_iconv_trie_flat marc8_9page300_flat[] = { + {"\x69", 0, 0x5459}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page300 = { + marc8_9page300_flat, 0 +}; +/* PAGE 299 */ +struct yaz_iconv_trie_flat marc8_9page299_flat[] = { + {"\x2A", 0, 0x53A3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page299 = { + marc8_9page299_flat, 0 +}; +/* PAGE 298 */ +struct yaz_iconv_trie_flat marc8_9page298_flat[] = { + {"\x2E", 0, 0x5326}, /* East Asian ideograph */ + {"\x6D", 0, 0x538D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page298 = { + marc8_9page298_flat, 0 +}; +/* PAGE 297 */ +struct yaz_iconv_trie_flat marc8_9page297_flat[] = { + {"\x3E", 0, 0x522D}, /* East Asian ideograph */ + {"\x5B", 0, 0x5250}, /* East Asian ideograph */ + {"\x5F", 0, 0x672D}, /* East Asian ideograph */ + {"\x79", 0, 0x523F}, /* East Asian ideograph */ + {"\x7A", 0, 0x523D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page297 = { + marc8_9page297_flat, 0 +}; +/* PAGE 296 */ +struct yaz_iconv_trie_flat marc8_9page296_flat[] = { + {"\x44", 0, 0x50A9}, /* East Asian ideograph */ + {"\x48", 0, 0x50A5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page296 = { + marc8_9page296_flat, 0 +}; +/* PAGE 295 */ +struct yaz_iconv_trie_flat marc8_9page295_flat[] = { + {"\x22", 0, 0x507B}, /* East Asian ideograph */ + {"\x42", 0, 0x507E}, /* East Asian ideograph */ + {"\x71", 0, 0x4FAA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page295 = { + marc8_9page295_flat, 0 +}; +/* PAGE 294 */ +struct yaz_iconv_trie_flat marc8_9page294_flat[] = { + {"\x75", 0, 0x4F65}, /* East Asian ideograph */ + {"\x7C", 0, 0x4F1B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page294 = { + marc8_9page294_flat, 0 +}; +/* PAGE 293 */ +struct yaz_iconv_trie_flat marc8_9page293_flat[] = { + {"\x49", 0, 0x4F1C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page293 = { + marc8_9page293_flat, 0 +}; +/* PAGE 292 */ +struct yaz_iconv_trie_flat marc8_9page292_flat[] = { + {"\x21", 0, 0x9F7F}, /* East Asian ideograph */ + {"\x22", 0, 0x9F83}, /* East Asian ideograph */ + {"\x24", 0, 0x9F84}, /* East Asian ideograph */ + {"\x25", 0, 0x9F88}, /* East Asian ideograph */ + {"\x26", 0, 0x9F87}, /* East Asian ideograph */ + {"\x27", 0, 0x9F89}, /* East Asian ideograph */ + {"\x28", 0, 0x9F8A}, /* East Asian ideograph */ + {"\x29", 0, 0x9F8C}, /* East Asian ideograph */ + {"\x2A", 0, 0x9F8B}, /* East Asian ideograph */ + {"\x2B", 0, 0x9F99}, /* East Asian ideograph */ + {"\x2C", 0, 0x9F9A}, /* East Asian ideograph */ + {"\x2D", 0, 0x9F9F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page292 = { + marc8_9page292_flat, 0 +}; +/* PAGE 291 */ +struct yaz_iconv_trie_dir marc8_9page291_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9CC3} /* East Asian ideograph */, + {0, 0, 0x9CC5} /* East Asian ideograph */, + {0, 0, 0x9CAB} /* East Asian ideograph */, + {0, 0, 0x9CCD} /* East Asian ideograph */, + {0, 0, 0x9CCF} /* East Asian ideograph */, + {0, 0, 0x9CA2} /* East Asian ideograph */, + {0, 0, 0x9CD4} /* East Asian ideograph */, + {0, 0, 0x9CD7} /* East Asian ideograph */, + {0, 0, 0x9CDD} /* East Asian ideograph */, + {0, 0, 0x9CDE} /* East Asian ideograph */, + {0, 0, 0x9CDC} /* East Asian ideograph */, + {0, 0, 0x9CD6} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9C88} /* East Asian ideograph */, + {0, 0, 0x9E1F} /* East Asian ideograph */, + {0, 0, 0x9E20} /* East Asian ideograph */, + {0, 0, 0x9E22} /* East Asian ideograph */, + {0, 0, 0x9E23} /* East Asian ideograph */, + {0, 0, 0x51E4} /* East Asian ideograph */, + {0, 0, 0x9E29} /* East Asian ideograph */, + {0, 0, 0x9E26} /* East Asian ideograph */, + {0, 0, 0x9E35} /* East Asian ideograph */, + {0, 0, 0x9E2A} /* East Asian ideograph */, + {0, 0, 0x9E2D} /* East Asian ideograph */, + {0, 0, 0x9E2F} /* East Asian ideograph */, + {0, 0, 0x9E33} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9E3F} /* East Asian ideograph */, + {0, 0, 0x9E3D} /* East Asian ideograph */, + {0, 0, 0x9E49} /* East Asian ideograph */, + {0, 0, 0x9E43} /* East Asian ideograph */, + {0, 0, 0x9E44} /* East Asian ideograph */, + {0, 0, 0x9E45} /* East Asian ideograph */, + {0, 0, 0x9E51} /* East Asian ideograph */, + {0, 0, 0x9E4A} /* East Asian ideograph */, + {0, 0, 0x9E4C} /* East Asian ideograph */, + {0, 0, 0x9E4F} /* East Asian ideograph */, + {0, 0, 0x9E64} /* East Asian ideograph */, + {0, 0, 0x83BA} /* East Asian ideograph */, + {0, 0, 0x9E5E} /* East Asian ideograph */, + {0, 0, 0x9E67} /* East Asian ideograph */, + {0, 0, 0x9E25} /* East Asian ideograph */, + {0, 0, 0x9E36} /* East Asian ideograph */, + {0, 0, 0x9E70} /* East Asian ideograph */, + {0, 0, 0x9E6D} /* East Asian ideograph */, + {0, 0, 0x9E66} /* East Asian ideograph */, + {0, 0, 0x9E3E} /* East Asian ideograph */, + {0, 0, 0x54B8} /* East Asian ideograph */, + {0, 0, 0x76D0} /* East Asian ideograph */, + {0, 0, 0x7877} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4E3D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9EA6} /* East Asian ideograph */, + {0, 0, 0x9EB8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9762} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E48} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x70B9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x515A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9EE9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x51AC} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9F50} /* East Asian ideograph */, + {0, 0, 0x658E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page291 = { + 0, marc8_9page291_dir +}; +/* PAGE 290 */ +struct yaz_iconv_trie_dir marc8_9page290_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x998A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9992} /* East Asian ideograph */, + {0, 0, 0x9976} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x990D} /* East Asian ideograph */, + {0, 0, 0x998B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9A6C} /* East Asian ideograph */, + {0, 0, 0x51AF} /* East Asian ideograph */, + {0, 0, 0x9A6D} /* East Asian ideograph */, + {0, 0, 0x9A70} /* East Asian ideograph */, + {0, 0, 0x9A6E} /* East Asian ideograph */, + {0, 0, 0x9A6F} /* East Asian ideograph */, + {0, 0, 0x9A73} /* East Asian ideograph */, + {0, 0, 0x9A7B} /* East Asian ideograph */, + {0, 0, 0x9A7C} /* East Asian ideograph */, + {0, 0, 0x9A7E} /* East Asian ideograph */, + {0, 0, 0x9A77} /* East Asian ideograph */, + {0, 0, 0x9A76} /* East Asian ideograph */, + {0, 0, 0x9A79} /* East Asian ideograph */, + {0, 0, 0x9A78} /* East Asian ideograph */, + {0, 0, 0x9A7D} /* East Asian ideograph */, + {0, 0, 0x9A87} /* East Asian ideograph */, + {0, 0, 0x9A86} /* East Asian ideograph */, + {0, 0, 0x9A8B} /* East Asian ideograph */, + {0, 0, 0x9A8F} /* East Asian ideograph */, + {0, 0, 0x9A88} /* East Asian ideograph */, + {0, 0, 0x9A91} /* East Asian ideograph */, + {0, 0, 0x9A97} /* East Asian ideograph */, + {0, 0, 0x9A9B} /* East Asian ideograph */, + {0, 0, 0x9A9E} /* East Asian ideograph */, + {0, 0, 0x817E} /* East Asian ideograph */, + {0, 0, 0x9A9A} /* East Asian ideograph */, + {0, 0, 0x9AA0} /* East Asian ideograph */, + {0, 0, 0x9A71} /* East Asian ideograph */, + {0, 0, 0x84E6} /* East Asian ideograph */, + {0, 0, 0x9AA1} /* East Asian ideograph */, + {0, 0, 0x9A84} /* East Asian ideograph */, + {0, 0, 0x60CA} /* East Asian ideograph */, + {0, 0, 0x9A7F} /* East Asian ideograph */, + {0, 0, 0x9A8C} /* East Asian ideograph */, + {0, 0, 0x9AA4} /* East Asian ideograph */, + {0, 0, 0x9A74} /* East Asian ideograph */, + {0, 0, 0x9AA5} /* East Asian ideograph */, + {0, 0, 0x9A8A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x80AE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9AC5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4F53} /* East Asian ideograph */, + {0, 0, 0x810F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x53D1} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x677E} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x80E1} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x987B} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x9B13} /* East Asian ideograph */, + {0, 0, 0x6597} /* East Asian ideograph */, + {0, 0, 0x95F9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x90C1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9B47} /* East Asian ideograph */, + {0, 0, 0x9C7C} /* East Asian ideograph */, + {0, 0, 0x9C7F} /* East Asian ideograph */, + {0, 0, 0x9C81} /* East Asian ideograph */, + {0, 0, 0x9C8D} /* East Asian ideograph */, + {0, 0, 0x9C9B} /* East Asian ideograph */, + {0, 0, 0x9C9C} /* East Asian ideograph */, + {0, 0, 0x9C94} /* East Asian ideograph */, + {0, 0, 0x9CA8} /* East Asian ideograph */, + {0, 0, 0x9CA4} /* East Asian ideograph */, + {0, 0, 0x9CB8} /* East Asian ideograph */, + {0, 0, 0x9CB3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page290 = { + 0, marc8_9page290_dir +}; +/* PAGE 289 */ +struct yaz_iconv_trie_dir marc8_9page289_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5DE9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9791} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x97E6} /* East Asian ideograph */, + {0, 0, 0x97E7} /* East Asian ideograph */, + {0, 0, 0x97E9} /* East Asian ideograph */, + {0, 0, 0x97EC} /* East Asian ideograph */, + {0, 0, 0x827D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x54CD} /* East Asian ideograph */, + {0, 0, 0x9875} /* East Asian ideograph */, + {0, 0, 0x9876} /* East Asian ideograph */, + {0, 0, 0x9877} /* East Asian ideograph */, + {0, 0, 0x9879} /* East Asian ideograph */, + {0, 0, 0x987A} /* East Asian ideograph */, + {0, 0, 0x987B} /* East Asian ideograph */, + {0, 0, 0x9884} /* East Asian ideograph */, + {0, 0, 0x987C} /* East Asian ideograph */, + {0, 0, 0x987D} /* East Asian ideograph */, + {0, 0, 0x987F} /* East Asian ideograph */, + {0, 0, 0x9881} /* East Asian ideograph */, + {0, 0, 0x9882} /* East Asian ideograph */, + {0, 0, 0x9887} /* East Asian ideograph */, + {0, 0, 0x9886} /* East Asian ideograph */, + {0, 0, 0x9889} /* East Asian ideograph */, + {0, 0, 0x5934} /* East Asian ideograph */, + {0, 0, 0x988A} /* East Asian ideograph */, + {0, 0, 0x9888} /* East Asian ideograph */, + {0, 0, 0x9891} /* East Asian ideograph */, + {0, 0, 0x9893} /* East Asian ideograph */, + {0, 0, 0x9894} /* East Asian ideograph */, + {0, 0, 0x9890} /* East Asian ideograph */, + {0, 0, 0x9897} /* East Asian ideograph */, + {0, 0, 0x989C} /* East Asian ideograph */, + {0, 0, 0x989D} /* East Asian ideograph */, + {0, 0, 0x9898} /* East Asian ideograph */, + {0, 0, 0x989A} /* East Asian ideograph */, + {0, 0, 0x989B} /* East Asian ideograph */, + {0, 0, 0x7C7B} /* East Asian ideograph */, + {0, 0, 0x98A0} /* East Asian ideograph */, + {0, 0, 0x613F} /* East Asian ideograph */, + {0, 0, 0x987E} /* East Asian ideograph */, + {0, 0, 0x98A4} /* East Asian ideograph */, + {0, 0, 0x663E} /* East Asian ideograph */, + {0, 0, 0x9885} /* East Asian ideograph */, + {0, 0, 0x98A6} /* East Asian ideograph */, + {0, 0, 0x98CE} /* East Asian ideograph */, + {0, 0, 0x98D2} /* East Asian ideograph */, + {0, 0, 0x53F0} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x522E} /* East Asian ideograph */, + {0, 0, 0x98D3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x98D5} /* East Asian ideograph */, + {0, 0, 0x98D8} /* East Asian ideograph */, + {0, 0, 0x98DE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9965} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9968} /* East Asian ideograph */, + {0, 0, 0x996C} /* East Asian ideograph */, + {0, 0, 0x996A} /* East Asian ideograph */, + {0, 0, 0x996E} /* East Asian ideograph */, + {0, 0, 0x996D} /* East Asian ideograph */, + {0, 0, 0x9972} /* East Asian ideograph */, + {0, 0, 0x9974} /* East Asian ideograph */, + {0, 0, 0x9971} /* East Asian ideograph */, + {0, 0, 0x9970} /* East Asian ideograph */, + {0, 0, 0x997A} /* East Asian ideograph */, + {0, 0, 0x517B} /* East Asian ideograph */, + {0, 0, 0x9975} /* East Asian ideograph */, + {0, 0, 0x9977} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9981} /* East Asian ideograph */, + {0, 0, 0x4F59} /* East Asian ideograph */, + {0, 0, 0x997F} /* East Asian ideograph */, + {0, 0, 0x997C} /* East Asian ideograph */, + {0, 0, 0x9986} /* East Asian ideograph */, + {0, 0, 0x996F} /* East Asian ideograph */, + {0, 0, 0x9984} /* East Asian ideograph */, + {0, 0, 0x9985} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x998F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page289 = { + 0, marc8_9page289_dir +}; +/* PAGE 288 */ +struct yaz_iconv_trie_flat marc8_9page288_flat[] = { + {"\x23", 0, 0x9648}, /* East Asian ideograph */ + {"\x24", 0, 0x9646}, /* East Asian ideograph */ + {"\x2A", 0, 0x9634}, /* East Asian ideograph */ + {"\x2B", 0, 0x961F}, /* East Asian ideograph */ + {"\x2C", 0, 0x9636}, /* East Asian ideograph */ + {"\x2E", 0, 0x9633}, /* East Asian ideograph */ + {"\x37", 0, 0x9645}, /* East Asian ideograph */ + {"\x39", 0, 0x968F}, /* East Asian ideograph */ + {"\x3A", 0, 0x9669}, /* East Asian ideograph */ + {"\x3B", 0, 0x9690}, /* East Asian ideograph */ + {"\x3C", 0, 0x9647}, /* East Asian ideograph */ + {"\x3D", 0, 0x96B6}, /* East Asian ideograph */ + {"\x3E", 0, 0x53EA}, /* East Asian ideograph (duplicate simplified) */ + {"\x4A", 0, 0x867D}, /* East Asian ideograph */ + {"\x4B", 0, 0x6742}, /* East Asian ideograph */ + {"\x4C", 0, 0x9E21}, /* East Asian ideograph */ + {"\x4D", 0, 0x96CF}, /* East Asian ideograph */ + {"\x4E", 0, 0x53CC}, /* East Asian ideograph */ + {"\x4F", 0, 0x79BB}, /* East Asian ideograph */ + {"\x50", 0, 0x96BE}, /* East Asian ideograph */ + {"\x54", 0, 0x4E91}, /* East Asian ideograph */ + {"\x55", 0, 0x7535}, /* East Asian ideograph */ + {"\x67", 0, 0x96FE}, /* East Asian ideograph */ + {"\x6B", 0, 0x9701}, /* East Asian ideograph */ + {"\x6D", 0, 0x972D}, /* East Asian ideograph */ + {"\x6E", 0, 0x96F3}, /* East Asian ideograph */ + {"\x6F", 0, 0x7075}, /* East Asian ideograph */ + {"\x79", 0, 0x9765}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page288 = { + marc8_9page288_flat, 0 +}; +/* PAGE 287 */ +struct yaz_iconv_trie_dir marc8_9page287_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x949F} /* East Asian ideograph */, + {0, 0, 0x9524} /* East Asian ideograph */, + {0, 0, 0x9539} /* East Asian ideograph */, + {0, 0, 0x953B} /* East Asian ideograph */, + {0, 0, 0x9551} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9547} /* East Asian ideograph */, + {0, 0, 0x9501} /* East Asian ideograph */, + {0, 0, 0x94A8} /* East Asian ideograph */, + {0, 0, 0x954D} /* East Asian ideograph */, + {0, 0, 0x955C} /* East Asian ideograph */, + {0, 0, 0x955D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x955E} /* East Asian ideograph */, + {0, 0, 0x94F2} /* East Asian ideograph */, + {0, 0, 0x94FF} /* East Asian ideograph */, + {0, 0, 0x94FE} /* East Asian ideograph */, + {0, 0, 0x9556} /* East Asian ideograph */, + {0, 0, 0x9557} /* East Asian ideograph */, + {0, 0, 0x9542} /* East Asian ideograph */, + {0, 0, 0x9558} /* East Asian ideograph */, + {0, 0, 0x9559} /* East Asian ideograph */, + {0, 0, 0x9535} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x94D9} /* East Asian ideograph */, + {0, 0, 0x9570} /* East Asian ideograph */, + {0, 0, 0x9508} /* East Asian ideograph */, + {0, 0, 0x956D} /* East Asian ideograph */, + {0, 0, 0x94C1} /* East Asian ideograph */, + {0, 0, 0x94DB} /* East Asian ideograph */, + {0, 0, 0x94CE} /* East Asian ideograph */, + {0, 0, 0x956F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x94F8} /* East Asian ideograph */, + {0, 0, 0x9573} /* East Asian ideograph */, + {0, 0, 0x94C4} /* East Asian ideograph */, + {0, 0, 0x9576} /* East Asian ideograph */, + {0, 0, 0x94A5} /* East Asian ideograph */, + {0, 0, 0x92AE} /* East Asian ideograph */, + {0, 0, 0x9523} /* East Asian ideograph */, + {0, 0, 0x94BB} /* East Asian ideograph */, + {0, 0, 0x51FF} /* East Asian ideograph */, + {0, 0, 0x957F} /* East Asian ideograph */, + {0, 0, 0x95E8} /* East Asian ideograph */, + {0, 0, 0x95E9} /* East Asian ideograph */, + {0, 0, 0x95EA} /* East Asian ideograph */, + {0, 0, 0x95ED} /* East Asian ideograph */, + {0, 0, 0x95F5} /* East Asian ideograph */, + {0, 0, 0x95F0} /* East Asian ideograph */, + {0, 0, 0x5F00} /* East Asian ideograph */, + {0, 0, 0x95F2} /* East Asian ideograph */, + {0, 0, 0x95F4} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x95F8} /* East Asian ideograph */, + {0, 0, 0x9602} /* East Asian ideograph */, + {0, 0, 0x95FA} /* East Asian ideograph */, + {0, 0, 0x95FD} /* East Asian ideograph */, + {0, 0, 0x9601} /* East Asian ideograph */, + {0, 0, 0x9600} /* East Asian ideograph */, + {0, 0, 0x5408} /* East Asian ideograph */, + {0, 0, 0x9605} /* East Asian ideograph */, + {0, 0, 0x95FE} /* East Asian ideograph */, + {0, 0, 0x960E} /* East Asian ideograph */, + {0, 0, 0x9614} /* East Asian ideograph */, + {0, 0, 0x9615} /* East Asian ideograph */, + {0, 0, 0x9611} /* East Asian ideograph */, + {0, 0, 0x95F1} /* East Asian ideograph */, + {0, 0, 0x677F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x95EF} /* East Asian ideograph */, + {0, 0, 0x9617} /* East Asian ideograph */, + {0, 0, 0x5173} /* East Asian ideograph */, + {0, 0, 0x9610} /* East Asian ideograph */, + {0, 0, 0x8F9F} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9635} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page287 = { + 0, marc8_9page287_dir +}; +/* PAGE 286 */ +struct yaz_iconv_trie_dir marc8_9page286_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9154} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x915D} /* East Asian ideograph */, + {0, 0, 0x4E11} /* East Asian ideograph */, + {0, 0, 0x533B} /* East Asian ideograph */, + {0, 0, 0x9171} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x917F} /* East Asian ideograph */, + {0, 0, 0x8845} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x91CA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5398} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9488} /* East Asian ideograph */, + {0, 0, 0x9489} /* East Asian ideograph */, + {0, 0, 0x948A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9497} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9493} /* East Asian ideograph */, + {0, 0, 0x948F} /* East Asian ideograph */, + {0, 0, 0x9499} /* East Asian ideograph */, + {0, 0, 0x949D} /* East Asian ideograph */, + {0, 0, 0x94AE} /* East Asian ideograph */, + {0, 0, 0x94A0} /* East Asian ideograph */, + {0, 0, 0x949E} /* East Asian ideograph */, + {0, 0, 0x94A7} /* East Asian ideograph */, + {0, 0, 0x94A4} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x94B4} /* East Asian ideograph */, + {0, 0, 0x94B9} /* East Asian ideograph */, + {0, 0, 0x94B8} /* East Asian ideograph */, + {0, 0, 0x94C0} /* East Asian ideograph */, + {0, 0, 0x94BE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x94C5} /* East Asian ideograph */, + {0, 0, 0x94A9} /* East Asian ideograph */, + {0, 0, 0x94C2} /* East Asian ideograph */, + {0, 0, 0x94C3} /* East Asian ideograph */, + {0, 0, 0x94F0} /* East Asian ideograph */, + {0, 0, 0x94F6} /* East Asian ideograph */, + {0, 0, 0x94D0} /* East Asian ideograph */, + {0, 0, 0x94DC} /* East Asian ideograph */, + {0, 0, 0x94ED} /* East Asian ideograph */, + {0, 0, 0x94E2} /* East Asian ideograph */, + {0, 0, 0x94EC} /* East Asian ideograph */, + {0, 0, 0x94E8} /* East Asian ideograph */, + {0, 0, 0x8854} /* East Asian ideograph */, + {0, 0, 0x950C} /* East Asian ideograph */, + {0, 0, 0x9511} /* East Asian ideograph */, + {0, 0, 0x9510} /* East Asian ideograph */, + {0, 0, 0x94FA} /* East Asian ideograph */, + {0, 0, 0x9500} /* East Asian ideograph */, + {0, 0, 0x94DD} /* East Asian ideograph */, + {0, 0, 0x9504} /* East Asian ideograph */, + {0, 0, 0x9509} /* East Asian ideograph */, + {0, 0, 0x950B} /* East Asian ideograph */, + {0, 0, 0x952D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x952F} /* East Asian ideograph */, + {0, 0, 0x9530} /* East Asian ideograph */, + {0, 0, 0x9519} /* East Asian ideograph */, + {0, 0, 0x94B1} /* East Asian ideograph */, + {0, 0, 0x94A2} /* East Asian ideograph */, + {0, 0, 0x9521} /* East Asian ideograph */, + {0, 0, 0x94EE} /* East Asian ideograph */, + {0, 0, 0x5F55} /* East Asian ideograph */, + {0, 0, 0x9525} /* East Asian ideograph */, + {0, 0, 0x9526} /* East Asian ideograph */, + {0, 0, 0x9540} /* East Asian ideograph */, + {0, 0, 0x9541} /* East Asian ideograph */, + {0, 0, 0x952E} /* East Asian ideograph */, + {0, 0, 0x9532} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9505} /* East Asian ideograph */, + {0, 0, 0x951A} /* East Asian ideograph */, + {0, 0, 0x953E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page286 = { + 0, marc8_9page286_dir +}; +/* PAGE 285 */ +struct yaz_iconv_trie_flat marc8_9page285_flat[] = { + {"\x33", 0, 0x8FDB}, /* East Asian ideograph */ + {"\x34", 0, 0x8FD0}, /* East Asian ideograph */ + {"\x39", 0, 0x8FBE}, /* East Asian ideograph */ + {"\x3A", 0, 0x8FDD}, /* East Asian ideograph */ + {"\x3C", 0, 0x8FC2}, /* East Asian ideograph */ + {"\x3E", 0, 0x8FC7}, /* East Asian ideograph */ + {"\x44", 0, 0x8FDC}, /* East Asian ideograph */ + {"\x45", 0, 0x900A}, /* East Asian ideograph */ + {"\x48", 0, 0x9012}, /* East Asian ideograph */ + {"\x49", 0, 0x9002}, /* East Asian ideograph */ + {"\x4F", 0, 0x9009}, /* East Asian ideograph */ + {"\x50", 0, 0x8FDF}, /* East Asian ideograph */ + {"\x51", 0, 0x8FC1}, /* East Asian ideograph */ + {"\x52", 0, 0x8FBD}, /* East Asian ideograph */ + {"\x53", 0, 0x9057}, /* East Asian ideograph */ + {"\x56", 0, 0x8FC8}, /* East Asian ideograph */ + {"\x57", 0, 0x8FD8}, /* East Asian ideograph */ + {"\x5A", 0, 0x8FE9}, /* East Asian ideograph (variant of EACC 2D5C5A) */ + {"\x5B", 0, 0x8FB9}, /* East Asian ideograph */ + {"\x5C", 0, 0x9026}, /* East Asian ideograph */ + {"\x5D", 0, 0x903B}, /* East Asian ideograph */ + {"\x6B", 0, 0x5369}, /* East Asian ideograph */ + {"\x6D", 0, 0x90AE}, /* East Asian ideograph */ + {"\x70", 0, 0x4E61}, /* East Asian ideograph */ + {"\x71", 0, 0x90B9}, /* East Asian ideograph */ + {"\x73", 0, 0x90D1}, /* East Asian ideograph */ + {"\x74", 0, 0x90BB}, /* East Asian ideograph */ + {"\x75", 0, 0x9093}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page285 = { + marc8_9page285_flat, 0 +}; +/* PAGE 284 */ +struct yaz_iconv_trie_dir marc8_9page284_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8DB8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8E0C} /* East Asian ideograph */, + {0, 0, 0x8DC3} /* East Asian ideograph */, + {0, 0, 0x8E2F} /* East Asian ideograph */, + {0, 0, 0x8E51} /* East Asian ideograph */, + {0, 0, 0x8E8F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8EAF} /* East Asian ideograph */, + {0, 0, 0x8F66} /* East Asian ideograph */, + {0, 0, 0x8F67} /* East Asian ideograph */, + {0, 0, 0x519B} /* East Asian ideograph */, + {0, 0, 0x8F68} /* East Asian ideograph */, + {0, 0, 0x8F69} /* East Asian ideograph */, + {0, 0, 0x8F6B} /* East Asian ideograph */, + {0, 0, 0x8F6F} /* East Asian ideograph */, + {0, 0, 0x8F6D} /* East Asian ideograph */, + {0, 0, 0x8F72} /* East Asian ideograph */, + {0, 0, 0x8F74} /* East Asian ideograph */, + {0, 0, 0x8F76} /* East Asian ideograph */, + {0, 0, 0x8F83} /* East Asian ideograph */, + {0, 0, 0x8F7C} /* East Asian ideograph */, + {0, 0, 0x8F7D} /* East Asian ideograph */, + {0, 0, 0x8F7E} /* East Asian ideograph */, + {0, 0, 0x8F85} /* East Asian ideograph */, + {0, 0, 0x8F84} /* East Asian ideograph */, + {0, 0, 0x8F7B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8F87} /* East Asian ideograph */, + {0, 0, 0x8F86} /* East Asian ideograph */, + {0, 0, 0x8F8D} /* East Asian ideograph */, + {0, 0, 0x8F89} /* East Asian ideograph */, + {0, 0, 0x8F88} /* East Asian ideograph */, + {0, 0, 0x8F6E} /* East Asian ideograph */, + {0, 0, 0x8F8E} /* East Asian ideograph */, + {0, 0, 0x8F90} /* East Asian ideograph */, + {0, 0, 0x8F91} /* East Asian ideograph */, + {0, 0, 0x8F93} /* East Asian ideograph */, + {0, 0, 0x8F96} /* East Asian ideograph */, + {0, 0, 0x8F97} /* East Asian ideograph */, + {0, 0, 0x8F95} /* East Asian ideograph */, + {0, 0, 0x6BC2} /* East Asian ideograph */, + {0, 0, 0x8206} /* East Asian ideograph */, + {0, 0, 0x8F99} /* East Asian ideograph */, + {0, 0, 0x8F6C} /* East Asian ideograph */, + {0, 0, 0x8F9A} /* East Asian ideograph */, + {0, 0, 0x8F7F} /* East Asian ideograph */, + {0, 0, 0x8F70} /* East Asian ideograph */, + {0, 0, 0x8F94} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x529E} /* East Asian ideograph */, + {0, 0, 0x8F9E} /* East Asian ideograph */, + {0, 0, 0x8FA9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x519C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8FF0} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8FD9} /* East Asian ideograph */, + {0, 0, 0x8FDE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page284 = { + 0, marc8_9page284_dir +}; +/* PAGE 283 */ +struct yaz_iconv_trie_flat marc8_9page283_flat[] = { + {"\x21", 0, 0x8D45}, /* East Asian ideograph */ + {"\x22", 0, 0x8D44}, /* East Asian ideograph */ + {"\x23", 0, 0x8D3C}, /* East Asian ideograph */ + {"\x24", 0, 0x8D3E}, /* East Asian ideograph */ + {"\x25", 0, 0x8D3F}, /* East Asian ideograph */ + {"\x26", 0, 0x8D40}, /* East Asian ideograph */ + {"\x27", 0, 0x8D41}, /* East Asian ideograph */ + {"\x28", 0, 0x8D42}, /* East Asian ideograph */ + {"\x29", 0, 0x5BBE}, /* East Asian ideograph */ + {"\x2A", 0, 0x8D48}, /* East Asian ideograph */ + {"\x2B", 0, 0x8D4A}, /* East Asian ideograph */ + {"\x2C", 0, 0x8D54}, /* East Asian ideograph */ + {"\x2D", 0, 0x8D4B}, /* East Asian ideograph */ + {"\x2F", 0, 0x5356}, /* East Asian ideograph */ + {"\x30", 0, 0x8D24}, /* East Asian ideograph */ + {"\x31", 0, 0x8D31}, /* East Asian ideograph */ + {"\x32", 0, 0x8D4F}, /* East Asian ideograph */ + {"\x33", 0, 0x8D50}, /* East Asian ideograph */ + {"\x34", 0, 0x8D28}, /* East Asian ideograph */ + {"\x35", 0, 0x8D4C}, /* East Asian ideograph */ + {"\x36", 0, 0x8D56}, /* East Asian ideograph */ + {"\x37", 0, 0x8D5B}, /* East Asian ideograph */ + {"\x38", 0, 0x8D5A}, /* East Asian ideograph */ + {"\x39", 0, 0x8D58}, /* East Asian ideograph */ + {"\x3A", 0, 0x8D2D}, /* East Asian ideograph */ + {"\x3B", 0, 0x8D60}, /* East Asian ideograph */ + {"\x3C", 0, 0x8D5D}, /* East Asian ideograph */ + {"\x3D", 0, 0x8D5E}, /* East Asian ideograph */ + {"\x3E", 0, 0x8D62}, /* East Asian ideograph */ + {"\x3F", 0, 0x8D61}, /* East Asian ideograph */ + {"\x40", 0, 0x8D43}, /* East Asian ideograph */ + {"\x41", 0, 0x8D4E}, /* East Asian ideograph */ + {"\x42", 0, 0x8D63}, /* East Asian ideograph */ + {"\x4F", 0, 0x8D75}, /* East Asian ideograph */ + {"\x50", 0, 0x8D76}, /* East Asian ideograph */ + {"\x53", 0, 0x8D8B}, /* East Asian ideograph */ + {"\x68", 0, 0x8DF5}, /* East Asian ideograph */ + {"\x71", 0, 0x8E0A}, /* East Asian ideograph */ + {"\x78", 0, 0x8E52}, /* East Asian ideograph */ + {"\x7E", 0, 0x8DF7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page283 = { + marc8_9page283_flat, 0 +}; +/* PAGE 282 */ +struct yaz_iconv_trie_dir marc8_9page282_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8C04} /* East Asian ideograph */, + {0, 0, 0x8C01} /* East Asian ideograph */, + {0, 0, 0x8BDE} /* East Asian ideograph */, + {0, 0, 0x8BBA} /* East Asian ideograph */, + {0, 0, 0x8C1B} /* East Asian ideograph */, + {0, 0, 0x8C1A} /* East Asian ideograph */, + {0, 0, 0x8C0F} /* East Asian ideograph */, + {0, 0, 0x8BB3} /* East Asian ideograph */, + {0, 0, 0x8C10} /* East Asian ideograph */, + {0, 0, 0x8C0D} /* East Asian ideograph */, + {0, 0, 0x8C0B} /* East Asian ideograph */, + {0, 0, 0x8C12} /* East Asian ideograph */, + {0, 0, 0x8C13} /* East Asian ideograph */, + {0, 0, 0x8BFA} /* East Asian ideograph */, + {0, 0, 0x8BBD} /* East Asian ideograph */, + {0, 0, 0x8C15} /* East Asian ideograph */, + {0, 0, 0x8C24} /* East Asian ideograph */, + {0, 0, 0x8C26} /* East Asian ideograph */, + {0, 0, 0x8C1C} /* East Asian ideograph */, + {0, 0, 0x8BB2} /* East Asian ideograph */, + {0, 0, 0x8C0E} /* East Asian ideograph */, + {0, 0, 0x8C23} /* East Asian ideograph */, + {0, 0, 0x8A8A} /* East Asian ideograph */, + {0, 0, 0x8C22} /* East Asian ideograph */, + {0, 0, 0x8C28} /* East Asian ideograph */, + {0, 0, 0x8C2C} /* East Asian ideograph */, + {0, 0, 0x8C1F} /* East Asian ideograph */, + {0, 0, 0x8BC6} /* East Asian ideograph */, + {0, 0, 0x8C31} /* East Asian ideograph */, + {0, 0, 0x8C32} /* East Asian ideograph */, + {0, 0, 0x8BC1} /* East Asian ideograph */, + {0, 0, 0x8C2D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BA5} /* East Asian ideograph */, + {0, 0, 0x8BAE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8BD1} /* East Asian ideograph */, + {0, 0, 0x8C34} /* East Asian ideograph */, + {0, 0, 0x62A4} /* East Asian ideograph */, + {0, 0, 0x8A89} /* East Asian ideograph */, + {0, 0, 0x8BFB} /* East Asian ideograph */, + {0, 0, 0x53D8} /* East Asian ideograph */, + {0, 0, 0x8BA9} /* East Asian ideograph */, + {0, 0, 0x8C36} /* East Asian ideograph */, + {0, 0, 0x8C17} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5C82} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7AD6} /* East Asian ideograph */, + {0, 0, 0x4E30} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4E88} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7683} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8D1D} /* East Asian ideograph */, + {0, 0, 0x8D1E} /* East Asian ideograph */, + {0, 0, 0x8D1F} /* East Asian ideograph */, + {0, 0, 0x8D21} /* East Asian ideograph */, + {0, 0, 0x8D22} /* East Asian ideograph */, + {0, 0, 0x8D23} /* East Asian ideograph */, + {0, 0, 0x8D2F} /* East Asian ideograph */, + {0, 0, 0x8D27} /* East Asian ideograph */, + {0, 0, 0x8D2A} /* East Asian ideograph */, + {0, 0, 0x8D2B} /* East Asian ideograph */, + {0, 0, 0x8D29} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8D39} /* East Asian ideograph */, + {0, 0, 0x8D32} /* East Asian ideograph */, + {0, 0, 0x8D3A} /* East Asian ideograph */, + {0, 0, 0x8D35} /* East Asian ideograph */, + {0, 0, 0x8D34} /* East Asian ideograph */, + {0, 0, 0x4E70} /* East Asian ideograph */, + {0, 0, 0x8D2C} /* East Asian ideograph */, + {0, 0, 0x8D3B} /* East Asian ideograph */, + {0, 0, 0x8D37} /* East Asian ideograph */, + {0, 0, 0x8D38} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page282 = { + 0, marc8_9page282_dir +}; +/* PAGE 281 */ +struct yaz_iconv_trie_dir marc8_9page281_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x889C} /* East Asian ideograph */, + {0, 0, 0x886C} /* East Asian ideograph */, + {0, 0, 0x88AD} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x89C1} /* East Asian ideograph */, + {0, 0, 0x89C4} /* East Asian ideograph */, + {0, 0, 0x89C5} /* East Asian ideograph */, + {0, 0, 0x89C6} /* East Asian ideograph */, + {0, 0, 0x4EB2} /* East Asian ideograph */, + {0, 0, 0x89CE} /* East Asian ideograph */, + {0, 0, 0x89CA} /* East Asian ideograph */, + {0, 0, 0x89D0} /* East Asian ideograph */, + {0, 0, 0x89C9} /* East Asian ideograph */, + {0, 0, 0x89C8} /* East Asian ideograph */, + {0, 0, 0x89C2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x89DE} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8BA1} /* East Asian ideograph */, + {0, 0, 0x8BA2} /* East Asian ideograph */, + {0, 0, 0x8BA3} /* East Asian ideograph */, + {0, 0, 0x8BA6} /* East Asian ideograph */, + {0, 0, 0x8BB0} /* East Asian ideograph */, + {0, 0, 0x8BA8} /* East Asian ideograph */, + {0, 0, 0x8BA7} /* East Asian ideograph */, + {0, 0, 0x8BAA} /* East Asian ideograph */, + {0, 0, 0x8BAF} /* East Asian ideograph */, + {0, 0, 0x8BAB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BAD} /* East Asian ideograph */, + {0, 0, 0x8BBF} /* East Asian ideograph */, + {0, 0, 0x8BC0} /* East Asian ideograph */, + {0, 0, 0x8BB6} /* East Asian ideograph */, + {0, 0, 0x8BB7} /* East Asian ideograph */, + {0, 0, 0x8BB8} /* East Asian ideograph */, + {0, 0, 0x8BBE} /* East Asian ideograph */, + {0, 0, 0x8BB9} /* East Asian ideograph */, + {0, 0, 0x8BBC} /* East Asian ideograph */, + {0, 0, 0x6CE8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BC4} /* East Asian ideograph */, + {0, 0, 0x8BCD} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BC2} /* East Asian ideograph */, + {0, 0, 0x8BCF} /* East Asian ideograph */, + {0, 0, 0x8BC5} /* East Asian ideograph */, + {0, 0, 0x8BC8} /* East Asian ideograph */, + {0, 0, 0x8BCB} /* East Asian ideograph */, + {0, 0, 0x8BC9} /* East Asian ideograph */, + {0, 0, 0x8BCA} /* East Asian ideograph */, + {0, 0, 0x8BE7} /* East Asian ideograph */, + {0, 0, 0x8BE5} /* East Asian ideograph */, + {0, 0, 0x8BE6} /* East Asian ideograph */, + {0, 0, 0x8BD5} /* East Asian ideograph */, + {0, 0, 0x8BD7} /* East Asian ideograph */, + {0, 0, 0x8BD8} /* East Asian ideograph */, + {0, 0, 0x8BE3} /* East Asian ideograph */, + {0, 0, 0x8BD9} /* East Asian ideograph */, + {0, 0, 0x8BDA} /* East Asian ideograph */, + {0, 0, 0x5938} /* East Asian ideograph */, + {0, 0, 0x8BDB} /* East Asian ideograph */, + {0, 0, 0x8BE1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BE2} /* East Asian ideograph */, + {0, 0, 0x8BDD} /* East Asian ideograph */, + {0, 0, 0x8BE0} /* East Asian ideograph */, + {0, 0, 0x8BDF} /* East Asian ideograph */, + {0, 0, 0x8BF4} /* East Asian ideograph */, + {0, 0, 0x8BF5} /* East Asian ideograph */, + {0, 0, 0x8BEB} /* East Asian ideograph */, + {0, 0, 0x8BED} /* East Asian ideograph */, + {0, 0, 0x5FD7} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8BEC} /* East Asian ideograph */, + {0, 0, 0x8BA4} /* East Asian ideograph */, + {0, 0, 0x8BEF} /* East Asian ideograph */, + {0, 0, 0x8BF2} /* East Asian ideograph */, + {0, 0, 0x8BF0} /* East Asian ideograph */, + {0, 0, 0x8BF1} /* East Asian ideograph */, + {0, 0, 0x8BF3} /* East Asian ideograph */, + {0, 0, 0x8C0A} /* East Asian ideograph */, + {0, 0, 0x8C06} /* East Asian ideograph */, + {0, 0, 0x8C05} /* East Asian ideograph */, + {0, 0, 0x8C08} /* East Asian ideograph */, + {0, 0, 0x8BF7} /* East Asian ideograph */, + {0, 0, 0x8BF8} /* East Asian ideograph */, + {0, 0, 0x8BFE} /* East Asian ideograph */, + {0, 0, 0x8C03} /* East Asian ideograph */, + {0, 0, 0x8BFF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page281 = { + 0, marc8_9page281_dir +}; +/* PAGE 280 */ +struct yaz_iconv_trie_flat marc8_9page280_flat[] = { + {"\x24", 0, 0x8424}, /* East Asian ideograph */ + {"\x25", 0, 0x8682}, /* East Asian ideograph */ + {"\x2C", 0, 0x877C}, /* East Asian ideograph */ + {"\x32", 0, 0x86F2}, /* East Asian ideograph */ + {"\x33", 0, 0x866B}, /* East Asian ideograph */ + {"\x34", 0, 0x8749}, /* East Asian ideograph */ + {"\x35", 0, 0x8681}, /* East Asian ideograph */ + {"\x36", 0, 0x8747}, /* East Asian ideograph */ + {"\x3C", 0, 0x86CE}, /* East Asian ideograph */ + {"\x3E", 0, 0x8721}, /* East Asian ideograph */ + {"\x3F", 0, 0x86CA}, /* East Asian ideograph */ + {"\x41", 0, 0x8695}, /* East Asian ideograph */ + {"\x42", 0, 0x86EE}, /* East Asian ideograph */ + {"\x46", 0, 0x672E}, /* East Asian ideograph */ + {"\x47", 0, 0x4E8D}, /* East Asian ideograph */ + {"\x49", 0, 0x536B}, /* East Asian ideograph */ + {"\x4A", 0, 0x51B2}, /* East Asian ideograph (duplicate simplified) */ + {"\x62", 0, 0x8865}, /* East Asian ideograph */ + {"\x63", 0, 0x91CC}, /* East Asian ideograph */ + {"\x65", 0, 0x88C5}, /* East Asian ideograph */ + {"\x6C", 0, 0x5236}, /* East Asian ideograph */ + {"\x71", 0, 0x8934}, /* East Asian ideograph */ + {"\x73", 0, 0x88E4}, /* East Asian ideograph */ + {"\x77", 0, 0x4EB5}, /* East Asian ideograph */ + {"\x79", 0, 0x891B}, /* East Asian ideograph */ + {"\x7C", 0, 0x88C6}, /* East Asian ideograph */ + {"\x7D", 0, 0x8884}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page280 = { + marc8_9page280_flat, 0 +}; +/* PAGE 279 */ +struct yaz_iconv_trie_flat marc8_9page279_flat[] = { + {"\x22", 0, 0x8427}, /* East Asian ideograph */ + {"\x24", 0, 0x59DC}, /* East Asian ideograph */ + {"\x26", 0, 0x8537}, /* East Asian ideograph */ + {"\x29", 0, 0x84DD}, /* East Asian ideograph */ + {"\x2A", 0, 0x8428}, /* East Asian ideograph */ + {"\x2E", 0, 0x501F}, /* East Asian ideograph */ + {"\x31", 0, 0x827A}, /* East Asian ideograph */ + {"\x32", 0, 0x85AE}, /* East Asian ideograph */ + {"\x35", 0, 0x836F}, /* East Asian ideograph */ + {"\x37", 0, 0x853C}, /* East Asian ideograph */ + {"\x39", 0, 0x853A}, /* East Asian ideograph */ + {"\x3A", 0, 0x82A6}, /* East Asian ideograph */ + {"\x3B", 0, 0x82F9}, /* East Asian ideograph */ + {"\x3C", 0, 0x82CF}, /* East Asian ideograph */ + {"\x3D", 0, 0x8574}, /* East Asian ideograph */ + {"\x3E", 0, 0x5170}, /* East Asian ideograph */ + {"\x40", 0, 0x85D3}, /* East Asian ideograph */ + {"\x42", 0, 0x841D}, /* East Asian ideograph */ + {"\x44", 0, 0x4E47}, /* East Asian ideograph */ + {"\x47", 0, 0x5904}, /* East Asian ideograph */ + {"\x48", 0, 0x864F}, /* East Asian ideograph */ + {"\x4A", 0, 0x53F7}, /* East Asian ideograph */ + {"\x4C", 0, 0x4E8F}, /* East Asian ideograph */ + {"\x5A", 0, 0x65E6}, /* East Asian ideograph */ + {"\x76", 0, 0x8680}, /* East Asian ideograph */ + {"\x79", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ + {"\x7A", 0, 0x867E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page279 = { + marc8_9page279_flat, 0 +}; +/* PAGE 278 */ +struct yaz_iconv_trie_flat marc8_9page278_flat[] = { + {"\x28", 0, 0x835A}, /* East Asian ideograph */ + {"\x29", 0, 0x830E}, /* East Asian ideograph */ + {"\x2A", 0, 0x82CB}, /* East Asian ideograph */ + {"\x2D", 0, 0x5E84}, /* East Asian ideograph */ + {"\x3C", 0, 0x534E}, /* East Asian ideograph */ + {"\x41", 0, 0x83B1}, /* East Asian ideograph */ + {"\x4D", 0, 0x82C7}, /* East Asian ideograph */ + {"\x4F", 0, 0x53F6}, /* East Asian ideograph */ + {"\x51", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ + {"\x53", 0, 0x8364}, /* East Asian ideograph */ + {"\x55", 0, 0x83B4}, /* East Asian ideograph */ + {"\x5D", 0, 0x5E2D}, /* East Asian ideograph */ + {"\x63", 0, 0x836A}, /* East Asian ideograph */ + {"\x64", 0, 0x82CE}, /* East Asian ideograph */ + {"\x67", 0, 0x82CD}, /* East Asian ideograph */ + {"\x68", 0, 0x8298}, /* East Asian ideograph */ + {"\x6C", 0, 0x83B2}, /* East Asian ideograph */ + {"\x6E", 0, 0x836B}, /* East Asian ideograph */ + {"\x71", 0, 0x848B}, /* East Asian ideograph */ + {"\x73", 0, 0x535C}, /* East Asian ideograph */ + {"\x76", 0, 0x8361}, /* East Asian ideograph */ + {"\x7C", 0, 0x829C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page278 = { + marc8_9page278_flat, 0 +}; +/* PAGE 277 */ +struct yaz_iconv_trie_flat marc8_9page277_flat[] = { + {"\x21", 0, 0x80EA}, /* East Asian ideograph */ + {"\x22", 0, 0x810F}, /* East Asian ideograph (duplicate simplified) */ + {"\x25", 0, 0x4E34}, /* East Asian ideograph */ + {"\x2B", 0, 0x53F0}, /* East Asian ideograph */ + {"\x32", 0, 0x4E0E}, /* East Asian ideograph */ + {"\x33", 0, 0x5174}, /* East Asian ideograph */ + {"\x34", 0, 0x4E3E}, /* East Asian ideograph */ + {"\x35", 0, 0x65E7}, /* East Asian ideograph */ + {"\x4A", 0, 0x8231}, /* East Asian ideograph */ + {"\x4B", 0, 0x8230}, /* East Asian ideograph */ + {"\x4E", 0, 0x8270}, /* East Asian ideograph */ + {"\x58", 0, 0x5DF4}, /* East Asian ideograph (duplicate simplified) */ + {"\x5C", 0, 0x520D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page277 = { + marc8_9page277_flat, 0 +}; +/* PAGE 276 */ +struct yaz_iconv_trie_flat marc8_9page276_flat[] = { + {"\x21", 0, 0x8083}, /* East Asian ideograph */ + {"\x44", 0, 0x80C1}, /* East Asian ideograph */ + {"\x4A", 0, 0x8090}, /* East Asian ideograph */ + {"\x4D", 0, 0x8109}, /* East Asian ideograph */ + {"\x58", 0, 0x80BE}, /* East Asian ideograph */ + {"\x59", 0, 0x80C0}, /* East Asian ideograph */ + {"\x5E", 0, 0x80A0}, /* East Asian ideograph */ + {"\x62", 0, 0x80BF}, /* East Asian ideograph */ + {"\x65", 0, 0x8111}, /* East Asian ideograph */ + {"\x6C", 0, 0x80F6}, /* East Asian ideograph */ + {"\x6E", 0, 0x80A4}, /* East Asian ideograph */ + {"\x71", 0, 0x817B}, /* East Asian ideograph */ + {"\x78", 0, 0x8113}, /* East Asian ideograph */ + {"\x79", 0, 0x80C6}, /* East Asian ideograph */ + {"\x7A", 0, 0x8138}, /* East Asian ideograph */ + {"\x7B", 0, 0x810D}, /* East Asian ideograph */ + {"\x7C", 0, 0x8110}, /* East Asian ideograph */ + {"\x7D", 0, 0x8191}, /* East Asian ideograph */ + {"\x7E", 0, 0x814A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page276 = { + marc8_9page276_flat, 0 +}; +/* PAGE 275 */ +struct yaz_iconv_trie_flat marc8_9page275_flat[] = { + {"\x21", 0, 0x7EED}, /* East Asian ideograph */ + {"\x22", 0, 0x7F28}, /* East Asian ideograph */ + {"\x23", 0, 0x7EA4}, /* East Asian ideograph */ + {"\x24", 0, 0x7F06}, /* East Asian ideograph */ + {"\x33", 0, 0x7F5A}, /* East Asian ideograph */ + {"\x34", 0, 0x9A82}, /* East Asian ideograph */ + {"\x35", 0, 0x7F62}, /* East Asian ideograph */ + {"\x37", 0, 0x7F57}, /* East Asian ideograph */ + {"\x38", 0, 0x7F81}, /* East Asian ideograph */ + {"\x42", 0, 0x4E49}, /* East Asian ideograph */ + {"\x4D", 0, 0x4E60}, /* East Asian ideograph */ + {"\x51", 0, 0x7FC6}, /* East Asian ideograph */ + {"\x58", 0, 0x7FD8}, /* East Asian ideograph */ + {"\x6F", 0, 0x5723}, /* East Asian ideograph */ + {"\x71", 0, 0x95FB}, /* East Asian ideograph */ + {"\x74", 0, 0x58F0}, /* East Asian ideograph */ + {"\x75", 0, 0x8038}, /* East Asian ideograph */ + {"\x76", 0, 0x806A}, /* East Asian ideograph */ + {"\x77", 0, 0x8054}, /* East Asian ideograph */ + {"\x78", 0, 0x804C}, /* East Asian ideograph */ + {"\x79", 0, 0x8042}, /* East Asian ideograph */ + {"\x7A", 0, 0x804B}, /* East Asian ideograph */ + {"\x7B", 0, 0x542C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page275 = { + marc8_9page275_flat, 0 +}; +/* PAGE 274 */ +struct yaz_iconv_trie_dir marc8_9page274_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7EB1} /* East Asian ideograph */, + {0, 0, 0x7EB3} /* East Asian ideograph */, + {0, 0, 0x7EA7} /* East Asian ideograph */, + {0, 0, 0x7EB8} /* East Asian ideograph */, + {0, 0, 0x7EB7} /* East Asian ideograph */, + {0, 0, 0x7ECA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7ECB} /* East Asian ideograph */, + {0, 0, 0x624E} /* East Asian ideograph */, + {0, 0, 0x7ECD} /* East Asian ideograph */, + {0, 0, 0x7EC4} /* East Asian ideograph */, + {0, 0, 0x7EC6} /* East Asian ideograph */, + {0, 0, 0x7EC5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7ECC} /* East Asian ideograph */, + {0, 0, 0x7EC8} /* East Asian ideograph */, + {0, 0, 0x7EDF} /* East Asian ideograph */, + {0, 0, 0x7EDE} /* East Asian ideograph */, + {0, 0, 0x7ED2} /* East Asian ideograph */, + {0, 0, 0x7ED3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7EDA} /* East Asian ideograph */, + {0, 0, 0x7EDD} /* East Asian ideograph */, + {0, 0, 0x7EDC} /* East Asian ideograph */, + {0, 0, 0x7ED9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E1D} /* East Asian ideograph */, + {0, 0, 0x7ECF} /* East Asian ideograph */, + {0, 0, 0x6346} /* East Asian ideograph */, + {0, 0, 0x7EE2} /* East Asian ideograph */, + {0, 0, 0x7EE5} /* East Asian ideograph */, + {0, 0, 0x7ED1} /* East Asian ideograph */, + {0, 0, 0x7EFC} /* East Asian ideograph */, + {0, 0, 0x7EFD} /* East Asian ideograph */, + {0, 0, 0x7EFE} /* East Asian ideograph */, + {0, 0, 0x7D27} /* East Asian ideograph */, + {0, 0, 0x7EEB} /* East Asian ideograph */, + {0, 0, 0x7F00} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7F51} /* East Asian ideograph */, + {0, 0, 0x7EB2} /* East Asian ideograph */, + {0, 0, 0x7EF0} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7EFF} /* East Asian ideograph */, + {0, 0, 0x7EF8} /* East Asian ideograph */, + {0, 0, 0x7EF4} /* East Asian ideograph */, + {0, 0, 0x7EF5} /* East Asian ideograph */, + {0, 0, 0x7EB6} /* East Asian ideograph */, + {0, 0, 0x7F01} /* East Asian ideograph */, + {0, 0, 0x7F14} /* East Asian ideograph */, + {0, 0, 0x7EAC} /* East Asian ideograph */, + {0, 0, 0x7EC3} /* East Asian ideograph */, + {0, 0, 0x7EEA} /* East Asian ideograph */, + {0, 0, 0x7F04} /* East Asian ideograph */, + {0, 0, 0x7F05} /* East Asian ideograph */, + {0, 0, 0x7F09} /* East Asian ideograph */, + {0, 0, 0x7F13} /* East Asian ideograph */, + {0, 0, 0x7F18} /* East Asian ideograph */, + {0, 0, 0x7F16} /* East Asian ideograph */, + {0, 0, 0x7EBF} /* East Asian ideograph */, + {0, 0, 0x7F0D} /* East Asian ideograph */, + {0, 0, 0x7F0E} /* East Asian ideograph */, + {0, 0, 0x7F23} /* East Asian ideograph */, + {0, 0, 0x7F22} /* East Asian ideograph */, + {0, 0, 0x8426} /* East Asian ideograph */, + {0, 0, 0x7F1A} /* East Asian ideograph */, + {0, 0, 0x81F4} /* East Asian ideograph */, + {0, 0, 0x53BF} /* East Asian ideograph (variant of EACC 455164) */, + {0, 0, 0x7F29} /* East Asian ideograph */, + {0, 0, 0x7EE9} /* East Asian ideograph */, + {0, 0, 0x7F2A} /* East Asian ideograph */, + {0, 0, 0x7F15} /* East Asian ideograph */, + {0, 0, 0x7F27} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7F1D} /* East Asian ideograph */, + {0, 0, 0x603B} /* East Asian ideograph */, + {0, 0, 0x7EB5} /* East Asian ideograph */, + {0, 0, 0x7F2B} /* East Asian ideograph */, + {0, 0, 0x7F2E} /* East Asian ideograph */, + {0, 0, 0x7EC7} /* East Asian ideograph */, + {0, 0, 0x7EE3} /* East Asian ideograph */, + {0, 0, 0x7ED5} /* East Asian ideograph */, + {0, 0, 0x7F2D} /* East Asian ideograph */, + {0, 0, 0x7CFB} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x7EF3} /* East Asian ideograph */, + {0, 0, 0x8327} /* East Asian ideograph */, + {0, 0, 0x7ECE} /* East Asian ideograph */, + {0, 0, 0x7ED8} /* East Asian ideograph */, + {0, 0, 0x8FAB} /* East Asian ideograph */, + {0, 0, 0x7F24} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7EE7} /* East Asian ideograph */, + {0, 0, 0x7F20} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page274 = { + 0, marc8_9page274_dir +}; +/* PAGE 273 */ +struct yaz_iconv_trie_flat marc8_9page273_flat[] = { + {"\x21", 0, 0x7B0B}, /* East Asian ideograph */ + {"\x23", 0, 0x8345}, /* East Asian ideograph */ + {"\x2A", 0, 0x94B3}, /* East Asian ideograph */ + {"\x2B", 0, 0x7B3A}, /* East Asian ideograph */ + {"\x30", 0, 0x8303}, /* East Asian ideograph */ + {"\x33", 0, 0x8282}, /* East Asian ideograph */ + {"\x38", 0, 0x7BAC}, /* East Asian ideograph */ + {"\x39", 0, 0x7B03}, /* East Asian ideograph */ + {"\x3A", 0, 0x7B51}, /* East Asian ideograph */ + {"\x3C", 0, 0x7B5B}, /* East Asian ideograph */ + {"\x3E", 0, 0x7BD3}, /* East Asian ideograph */ + {"\x41", 0, 0x7B80}, /* East Asian ideograph */ + {"\x42", 0, 0x7BAB}, /* East Asian ideograph */ + {"\x45", 0, 0x7BAA}, /* East Asian ideograph */ + {"\x46", 0, 0x7BD1}, /* East Asian ideograph */ + {"\x48", 0, 0x5E18}, /* East Asian ideograph */ + {"\x4B", 0, 0x7B7E}, /* East Asian ideograph */ + {"\x4C", 0, 0x7BEE}, /* East Asian ideograph */ + {"\x4D", 0, 0x7B79}, /* East Asian ideograph */ + {"\x50", 0, 0x7B3C}, /* East Asian ideograph */ + {"\x51", 0, 0x7C41}, /* East Asian ideograph */ + {"\x52", 0, 0x7B7E}, /* East Asian ideograph (duplicate simplified) */ + {"\x53", 0, 0x7BF1}, /* East Asian ideograph */ + {"\x54", 0, 0x7BA9}, /* East Asian ideograph */ + {"\x55", 0, 0x5401}, /* East Asian ideograph */ + {"\x60", 0, 0x7C8B}, /* East Asian ideograph */ + {"\x62", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ + {"\x68", 0, 0x7CAA}, /* East Asian ideograph */ + {"\x6B", 0, 0x7CAE}, /* East Asian ideograph */ + {"\x6F", 0, 0x7EA0}, /* East Asian ideograph */ + {"\x70", 0, 0x7EAA}, /* East Asian ideograph */ + {"\x71", 0, 0x7EA3}, /* East Asian ideograph */ + {"\x72", 0, 0x7EA2}, /* East Asian ideograph */ + {"\x73", 0, 0x7EAB}, /* East Asian ideograph */ + {"\x74", 0, 0x7EA6}, /* East Asian ideograph */ + {"\x75", 0, 0x7EA5}, /* East Asian ideograph */ + {"\x76", 0, 0x7EBA}, /* East Asian ideograph */ + {"\x77", 0, 0x7EB9}, /* East Asian ideograph */ + {"\x7A", 0, 0x7EAD}, /* East Asian ideograph */ + {"\x7C", 0, 0x7EB0}, /* East Asian ideograph */ + {"\x7D", 0, 0x7EAF}, /* East Asian ideograph */ + {"\x7E", 0, 0x7EBD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page273 = { + marc8_9page273_flat, 0 +}; +/* PAGE 272 */ +struct yaz_iconv_trie_flat marc8_9page272_flat[] = { + {"\x22", 0, 0x4E07}, /* East Asian ideograph */ + {"\x25", 0, 0x53B6}, /* East Asian ideograph */ + {"\x36", 0, 0x5E0C}, /* East Asian ideograph */ + {"\x3C", 0, 0x79F0}, /* East Asian ideograph */ + {"\x3D", 0, 0x79CD}, /* East Asian ideograph */ + {"\x40", 0, 0x8C37}, /* East Asian ideograph */ + {"\x44", 0, 0x79EF}, /* East Asian ideograph */ + {"\x46", 0, 0x7A23}, /* East Asian ideograph */ + {"\x49", 0, 0x7A51}, /* East Asian ideograph */ + {"\x4A", 0, 0x79FD}, /* East Asian ideograph */ + {"\x4B", 0, 0x83B7}, /* East Asian ideograph (duplicate simplified) */ + {"\x4C", 0, 0x7A33}, /* East Asian ideograph */ + {"\x5C", 0, 0x6D3C}, /* East Asian ideograph */ + {"\x5D", 0, 0x7A9D}, /* East Asian ideograph */ + {"\x5F", 0, 0x7A77}, /* East Asian ideograph */ + {"\x60", 0, 0x7AA5}, /* East Asian ideograph */ + {"\x61", 0, 0x7A8D}, /* East Asian ideograph */ + {"\x62", 0, 0x7A9C}, /* East Asian ideograph */ + {"\x63", 0, 0x7AA6}, /* East Asian ideograph */ + {"\x64", 0, 0x7A83}, /* East Asian ideograph */ + {"\x6B", 0, 0x7ADE}, /* East Asian ideograph */ + {"\x70", 0, 0x5DF4}, /* East Asian ideograph (duplicate simplified) */ + {"\x79", 0, 0x7B14}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page272 = { + marc8_9page272_flat, 0 +}; +/* PAGE 271 */ +struct yaz_iconv_trie_flat marc8_9page271_flat[] = { + {"\x27", 0, 0x77EB}, /* East Asian ideograph */ + {"\x3B", 0, 0x781A}, /* East Asian ideograph */ + {"\x3E", 0, 0x7815}, /* East Asian ideograph */ + {"\x45", 0, 0x7855}, /* East Asian ideograph */ + {"\x49", 0, 0x786E}, /* East Asian ideograph */ + {"\x4C", 0, 0x7801}, /* East Asian ideograph */ + {"\x53", 0, 0x7816}, /* East Asian ideograph */ + {"\x58", 0, 0x77F6}, /* East Asian ideograph */ + {"\x59", 0, 0x7840}, /* East Asian ideograph */ + {"\x5A", 0, 0x788D}, /* East Asian ideograph */ + {"\x5B", 0, 0x77FF}, /* East Asian ideograph */ + {"\x5C", 0, 0x77FE}, /* East Asian ideograph */ + {"\x5D", 0, 0x783A}, /* East Asian ideograph */ + {"\x5E", 0, 0x783E}, /* East Asian ideograph */ + {"\x6F", 0, 0x53EA}, /* East Asian ideograph (duplicate simplified) */ + {"\x77", 0, 0x7978}, /* East Asian ideograph */ + {"\x78", 0, 0x796F}, /* East Asian ideograph */ + {"\x7B", 0, 0x7985}, /* East Asian ideograph */ + {"\x7C", 0, 0x793C}, /* East Asian ideograph */ + {"\x7D", 0, 0x7977}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page271 = { + marc8_9page271_flat, 0 +}; +/* PAGE 270 */ +struct yaz_iconv_trie_flat marc8_9page270_flat[] = { + {"\x29", 0, 0x7691}, /* East Asian ideograph */ + {"\x2D", 0, 0x76B1}, /* East Asian ideograph */ + {"\x3A", 0, 0x76CF}, /* East Asian ideograph */ + {"\x3C", 0, 0x5C3D}, /* East Asian ideograph */ + {"\x3D", 0, 0x76D1}, /* East Asian ideograph */ + {"\x3E", 0, 0x76D8}, /* East Asian ideograph */ + {"\x3F", 0, 0x5362}, /* East Asian ideograph */ + {"\x56", 0, 0x4F17}, /* East Asian ideograph */ + {"\x57", 0, 0x56F0}, /* East Asian ideograph */ + {"\x5D", 0, 0x7750}, /* East Asian ideograph */ + {"\x73", 0, 0x4E86}, /* East Asian ideograph */ + {"\x7C", 0, 0x77A9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page270 = { + marc8_9page270_flat, 0 +}; +/* PAGE 269 */ +struct yaz_iconv_trie_flat marc8_9page269_flat[] = { + {"\x2D", 0, 0x4EA9}, /* East Asian ideograph */ + {"\x31", 0, 0x7544}, /* East Asian ideograph */ + {"\x33", 0, 0x6BD5}, /* East Asian ideograph */ + {"\x34", 0, 0x5F02}, /* East Asian ideograph */ + {"\x36", 0, 0x753B}, /* East Asian ideograph */ + {"\x39", 0, 0x5F53}, /* East Asian ideograph */ + {"\x3B", 0, 0x7574}, /* East Asian ideograph */ + {"\x3C", 0, 0x8FED}, /* East Asian ideograph */ + {"\x56", 0, 0x75C9}, /* East Asian ideograph */ + {"\x60", 0, 0x75A1}, /* East Asian ideograph */ + {"\x61", 0, 0x759F}, /* East Asian ideograph */ + {"\x62", 0, 0x75EA}, /* East Asian ideograph */ + {"\x63", 0, 0x75AF}, /* East Asian ideograph */ + {"\x6A", 0, 0x75AE}, /* East Asian ideograph */ + {"\x6D", 0, 0x75E8}, /* East Asian ideograph */ + {"\x6E", 0, 0x7597}, /* East Asian ideograph */ + {"\x71", 0, 0x75A0}, /* East Asian ideograph */ + {"\x73", 0, 0x75D2}, /* East Asian ideograph */ + {"\x75", 0, 0x765E}, /* East Asian ideograph */ + {"\x76", 0, 0x763E}, /* East Asian ideograph */ + {"\x77", 0, 0x7663}, /* East Asian ideograph */ + {"\x78", 0, 0x762B}, /* East Asian ideograph */ + {"\x79", 0, 0x766B}, /* East Asian ideograph */ + {"\x7B", 0, 0x53D1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page269 = { + marc8_9page269_flat, 0 +}; +/* PAGE 268 */ +struct yaz_iconv_trie_flat marc8_9page268_flat[] = { + {"\x22", 0, 0x72EF}, /* East Asian ideograph */ + {"\x23", 0, 0x72EE}, /* East Asian ideograph */ + {"\x27", 0, 0x72EC}, /* East Asian ideograph */ + {"\x28", 0, 0x72DE}, /* East Asian ideograph */ + {"\x29", 0, 0x83B7}, /* East Asian ideograph */ + {"\x2A", 0, 0x72B7}, /* East Asian ideograph */ + {"\x2B", 0, 0x517D}, /* East Asian ideograph */ + {"\x2C", 0, 0x730E}, /* East Asian ideograph */ + {"\x2D", 0, 0x736D}, /* East Asian ideograph */ + {"\x2E", 0, 0x732E}, /* East Asian ideograph */ + {"\x2F", 0, 0x7321}, /* East Asian ideograph */ + {"\x47", 0, 0x73B0}, /* East Asian ideograph */ + {"\x57", 0, 0x73F2}, /* East Asian ideograph */ + {"\x5E", 0, 0x739B}, /* East Asian ideograph */ + {"\x5F", 0, 0x7410}, /* East Asian ideograph */ + {"\x64", 0, 0x7391}, /* East Asian ideograph */ + {"\x67", 0, 0x73AF}, /* East Asian ideograph */ + {"\x68", 0, 0x7477}, /* East Asian ideograph */ + {"\x69", 0, 0x73BA}, /* East Asian ideograph */ + {"\x6B", 0, 0x73D1}, /* East Asian ideograph */ + {"\x74", 0, 0x74EF}, /* East Asian ideograph */ + {"\x7A", 0, 0x4EA7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page268 = { + marc8_9page268_flat, 0 +}; +/* PAGE 267 */ +struct yaz_iconv_trie_flat marc8_9page267_flat[] = { + {"\x21", 0, 0x70BD}, /* East Asian ideograph */ + {"\x22", 0, 0x7096}, /* East Asian ideograph */ + {"\x24", 0, 0x706F}, /* East Asian ideograph */ + {"\x25", 0, 0x7116}, /* East Asian ideograph */ + {"\x26", 0, 0x70E7}, /* East Asian ideograph */ + {"\x2E", 0, 0x8425}, /* East Asian ideograph */ + {"\x30", 0, 0x70DB}, /* East Asian ideograph */ + {"\x31", 0, 0x707F}, /* East Asian ideograph */ + {"\x33", 0, 0x70E9}, /* East Asian ideograph */ + {"\x36", 0, 0x70C1}, /* East Asian ideograph */ + {"\x37", 0, 0x7089}, /* East Asian ideograph */ + {"\x38", 0, 0x70C2}, /* East Asian ideograph */ + {"\x42", 0, 0x7237}, /* East Asian ideograph */ + {"\x45", 0, 0x5C14}, /* East Asian ideograph */ + {"\x46", 0, 0x5899}, /* East Asian ideograph */ + {"\x4C", 0, 0x724D}, /* East Asian ideograph */ + {"\x53", 0, 0x5B83}, /* East Asian ideograph */ + {"\x5A", 0, 0x7275}, /* East Asian ideograph */ + {"\x5E", 0, 0x8366}, /* East Asian ideograph */ + {"\x61", 0, 0x728A}, /* East Asian ideograph */ + {"\x62", 0, 0x727A}, /* East Asian ideograph */ + {"\x68", 0, 0x72B6}, /* East Asian ideograph */ + {"\x70", 0, 0x72ED}, /* East Asian ideograph */ + {"\x72", 0, 0x72C8}, /* East Asian ideograph */ + {"\x79", 0, 0x72B9}, /* East Asian ideograph */ + {"\x7E", 0, 0x72F1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page267 = { + marc8_9page267_flat, 0 +}; +/* PAGE 266 */ +struct yaz_iconv_trie_flat marc8_9page266_flat[] = { + {"\x21", 0, 0x6CFD}, /* East Asian ideograph */ + {"\x22", 0, 0x6D4A}, /* East Asian ideograph */ + {"\x26", 0, 0x6D4E}, /* East Asian ideograph */ + {"\x27", 0, 0x6CDE}, /* East Asian ideograph */ + {"\x28", 0, 0x6EE8}, /* East Asian ideograph */ + {"\x2B", 0, 0x6EE5}, /* East Asian ideograph */ + {"\x2D", 0, 0x6D9B}, /* East Asian ideograph */ + {"\x2E", 0, 0x6DA9}, /* East Asian ideograph */ + {"\x31", 0, 0x6C88}, /* East Asian ideograph */ + {"\x32", 0, 0x6CFB}, /* East Asian ideograph */ + {"\x33", 0, 0x6E0E}, /* East Asian ideograph */ + {"\x34", 0, 0x6E85}, /* East Asian ideograph */ + {"\x36", 0, 0x6EE4}, /* East Asian ideograph */ + {"\x37", 0, 0x6D4F}, /* East Asian ideograph */ + {"\x3A", 0, 0x6FD1}, /* East Asian ideograph */ + {"\x3B", 0, 0x6CA5}, /* East Asian ideograph */ + {"\x3C", 0, 0x6FD2}, /* East Asian ideograph */ + {"\x3D", 0, 0x6F47}, /* East Asian ideograph */ + {"\x3F", 0, 0x6F9C}, /* East Asian ideograph */ + {"\x41", 0, 0x6D12}, /* East Asian ideograph */ + {"\x42", 0, 0x6EE9}, /* East Asian ideograph */ + {"\x43", 0, 0x6E7E}, /* East Asian ideograph */ + {"\x44", 0, 0x6EE6}, /* East Asian ideograph */ + {"\x4A", 0, 0x707E}, /* East Asian ideograph */ + {"\x51", 0, 0x4E3A}, /* East Asian ideograph */ + {"\x5D", 0, 0x4E4C}, /* East Asian ideograph */ + {"\x66", 0, 0x65E0}, /* East Asian ideograph */ + {"\x6A", 0, 0x70BC}, /* East Asian ideograph */ + {"\x6D", 0, 0x70E6}, /* East Asian ideograph */ + {"\x6F", 0, 0x7080}, /* East Asian ideograph */ + {"\x75", 0, 0x6247}, /* East Asian ideograph */ + {"\x7D", 0, 0x70ED}, /* East Asian ideograph */ + {"\x7E", 0, 0x70EB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page266 = { + marc8_9page266_flat, 0 +}; +/* PAGE 265 */ +struct yaz_iconv_trie_flat marc8_9page265_flat[] = { + {"\x2D", 0, 0x6C64}, /* East Asian ideograph */ + {"\x30", 0, 0x6D4B}, /* East Asian ideograph */ + {"\x31", 0, 0x6DA1}, /* East Asian ideograph */ + {"\x33", 0, 0x6D51}, /* East Asian ideograph */ + {"\x3D", 0, 0x6C9F}, /* East Asian ideograph */ + {"\x41", 0, 0x6C85}, /* East Asian ideograph */ + {"\x42", 0, 0x706D}, /* East Asian ideograph */ + {"\x44", 0, 0x6E7F}, /* East Asian ideograph */ + {"\x48", 0, 0x6CA7}, /* East Asian ideograph */ + {"\x4B", 0, 0x51C6}, /* East Asian ideograph */ + {"\x4F", 0, 0x6CAA}, /* East Asian ideograph */ + {"\x54", 0, 0x6E0D}, /* East Asian ideograph */ + {"\x55", 0, 0x6DA8}, /* East Asian ideograph */ + {"\x57", 0, 0x6C49}, /* East Asian ideograph */ + {"\x58", 0, 0x6EE1}, /* East Asian ideograph */ + {"\x59", 0, 0x6D9F}, /* East Asian ideograph */ + {"\x5A", 0, 0x6E10}, /* East Asian ideograph */ + {"\x5F", 0, 0x6EDE}, /* East Asian ideograph */ + {"\x63", 0, 0x6D46}, /* East Asian ideograph */ + {"\x64", 0, 0x6E17}, /* East Asian ideograph */ + {"\x65", 0, 0x6E14}, /* East Asian ideograph */ + {"\x6C", 0, 0x6CFC}, /* East Asian ideograph */ + {"\x6D", 0, 0x6DA6}, /* East Asian ideograph */ + {"\x6E", 0, 0x6DA7}, /* East Asian ideograph */ + {"\x6F", 0, 0x6D01}, /* East Asian ideograph */ + {"\x71", 0, 0x6D47}, /* East Asian ideograph */ + {"\x78", 0, 0x6E83}, /* East Asian ideograph */ + {"\x7B", 0, 0x6DC0}, /* East Asian ideograph */ + {"\x7C", 0, 0x6D53}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page265 = { + marc8_9page265_flat, 0 +}; +/* PAGE 264 */ +struct yaz_iconv_trie_flat marc8_9page264_flat[] = { + {"\x4E", 0, 0x6CFE}, /* East Asian ideograph */ + {"\x59", 0, 0x6CEA}, /* East Asian ideograph */ + {"\x68", 0, 0x6D45}, /* East Asian ideograph */ + {"\x74", 0, 0x6E0A}, /* East Asian ideograph */ + {"\x77", 0, 0x6CA6}, /* East Asian ideograph */ + {"\x7D", 0, 0x6D8C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page264 = { + marc8_9page264_flat, 0 +}; +/* PAGE 263 */ +struct yaz_iconv_trie_flat marc8_9page263_flat[] = { + {"\x21", 0, 0x6B22}, /* East Asian ideograph */ + {"\x29", 0, 0x5C81}, /* East Asian ideograph */ + {"\x2A", 0, 0x5386}, /* East Asian ideograph */ + {"\x2B", 0, 0x5F52}, /* East Asian ideograph */ + {"\x33", 0, 0x6B8B}, /* East Asian ideograph */ + {"\x35", 0, 0x6B87}, /* East Asian ideograph */ + {"\x36", 0, 0x6B93}, /* East Asian ideograph */ + {"\x37", 0, 0x6BA1}, /* East Asian ideograph */ + {"\x38", 0, 0x6B7C}, /* East Asian ideograph */ + {"\x3B", 0, 0x6740}, /* East Asian ideograph */ + {"\x3C", 0, 0x58F3}, /* East Asian ideograph */ + {"\x40", 0, 0x6BB4}, /* East Asian ideograph */ + {"\x55", 0, 0x6C14}, /* East Asian ideograph */ + {"\x58", 0, 0x6C22}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page263 = { + marc8_9page263_flat, 0 +}; +/* PAGE 262 */ +struct yaz_iconv_trie_flat marc8_9page262_flat[] = { + {"\x26", 0, 0x6781}, /* East Asian ideograph */ + {"\x2A", 0, 0x6768}, /* East Asian ideograph */ + {"\x2B", 0, 0x6862}, /* East Asian ideograph */ + {"\x2D", 0, 0x4E1A}, /* East Asian ideograph */ + {"\x2F", 0, 0x67AB}, /* East Asian ideograph */ + {"\x37", 0, 0x8363}, /* East Asian ideograph */ + {"\x39", 0, 0x6784}, /* East Asian ideograph */ + {"\x40", 0, 0x67AA}, /* East Asian ideograph */ + {"\x44", 0, 0x6837}, /* East Asian ideograph */ + {"\x46", 0, 0x6869}, /* East Asian ideograph */ + {"\x47", 0, 0x6807}, /* East Asian ideograph */ + {"\x49", 0, 0x67A2}, /* East Asian ideograph */ + {"\x4A", 0, 0x697C}, /* East Asian ideograph */ + {"\x4C", 0, 0x6868}, /* East Asian ideograph */ + {"\x4E", 0, 0x4E50}, /* East Asian ideograph */ + {"\x4F", 0, 0x679E}, /* East Asian ideograph */ + {"\x53", 0, 0x692D}, /* East Asian ideograph */ + {"\x55", 0, 0x6811}, /* East Asian ideograph */ + {"\x57", 0, 0x6866}, /* East Asian ideograph */ + {"\x58", 0, 0x6734}, /* East Asian ideograph */ + {"\x5B", 0, 0x6865}, /* East Asian ideograph */ + {"\x5D", 0, 0x673A}, /* East Asian ideograph */ + {"\x5F", 0, 0x6863}, /* East Asian ideograph */ + {"\x61", 0, 0x68C0}, /* East Asian ideograph */ + {"\x62", 0, 0x6867}, /* East Asian ideograph */ + {"\x63", 0, 0x67E0}, /* East Asian ideograph */ + {"\x64", 0, 0x69DF}, /* East Asian ideograph */ + {"\x65", 0, 0x67DC}, /* East Asian ideograph */ + {"\x66", 0, 0x69DB}, /* East Asian ideograph */ + {"\x6A", 0, 0x6988}, /* East Asian ideograph */ + {"\x6B", 0, 0x691F}, /* East Asian ideograph */ + {"\x6C", 0, 0x6809}, /* East Asian ideograph */ + {"\x6D", 0, 0x6A79}, /* East Asian ideograph */ + {"\x6E", 0, 0x680F}, /* East Asian ideograph */ + {"\x6F", 0, 0x6A31}, /* East Asian ideograph */ + {"\x70", 0, 0x6743}, /* East Asian ideograph */ + {"\x71", 0, 0x6984}, /* East Asian ideograph */ + {"\x78", 0, 0x94A6}, /* East Asian ideograph */ + {"\x7A", 0, 0x6B20}, /* East Asian ideograph (duplicate simplified) */ + {"\x7C", 0, 0x6B27}, /* East Asian ideograph */ + {"\x7E", 0, 0x6B24}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page262 = { + marc8_9page262_flat, 0 +}; +/* PAGE 261 */ +struct yaz_iconv_trie_flat marc8_9page261_flat[] = { + {"\x26", 0, 0x4E1C}, /* East Asian ideograph */ + {"\x63", 0, 0x6761}, /* East Asian ideograph */ + {"\x68", 0, 0x67AD}, /* East Asian ideograph */ + {"\x69", 0, 0x6800}, /* East Asian ideograph */ + {"\x6D", 0, 0x5F03}, /* East Asian ideograph */ + {"\x6E", 0, 0x6816}, /* East Asian ideograph */ + {"\x71", 0, 0x680B}, /* East Asian ideograph */ + {"\x76", 0, 0x6808}, /* East Asian ideograph */ + {"\x7A", 0, 0x67A3}, /* East Asian ideograph */ + {"\x7C", 0, 0x832D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page261 = { + marc8_9page261_flat, 0 +}; +/* PAGE 260 */ +struct yaz_iconv_trie_flat marc8_9page260_flat[] = { + {"\x2D", 0, 0x65F6}, /* East Asian ideograph */ + {"\x32", 0, 0x663C}, /* East Asian ideograph */ + {"\x40", 0, 0x6656}, /* East Asian ideograph */ + {"\x41", 0, 0x6655}, /* East Asian ideograph */ + {"\x43", 0, 0x7545}, /* East Asian ideograph */ + {"\x44", 0, 0x6682}, /* East Asian ideograph */ + {"\x48", 0, 0x6653}, /* East Asian ideograph */ + {"\x49", 0, 0x5386}, /* East Asian ideograph (duplicate simplified) */ + {"\x4B", 0, 0x66A7}, /* East Asian ideograph */ + {"\x4D", 0, 0x65F7}, /* East Asian ideograph */ + {"\x55", 0, 0x4E66}, /* East Asian ideograph */ + {"\x5A", 0, 0x4F1A}, /* East Asian ideograph */ + {"\x66", 0, 0x80E7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page260 = { + marc8_9page260_flat, 0 +}; +/* PAGE 259 */ +struct yaz_iconv_trie_flat marc8_9page259_flat[] = { + {"\x22", 0, 0x62C5}, /* East Asian ideograph */ + {"\x24", 0, 0x6361}, /* East Asian ideograph */ + {"\x25", 0, 0x6324}, /* East Asian ideograph */ + {"\x26", 0, 0x62E7}, /* East Asian ideograph */ + {"\x28", 0, 0x62DF}, /* East Asian ideograph */ + {"\x29", 0, 0x6401}, /* East Asian ideograph */ + {"\x2A", 0, 0x6269}, /* East Asian ideograph */ + {"\x2B", 0, 0x63B7}, /* East Asian ideograph */ + {"\x2C", 0, 0x64B5}, /* East Asian ideograph */ + {"\x2E", 0, 0x6270}, /* East Asian ideograph */ + {"\x2F", 0, 0x64DE}, /* East Asian ideograph */ + {"\x30", 0, 0x6446}, /* East Asian ideograph */ + {"\x31", 0, 0x62E2}, /* East Asian ideograph */ + {"\x33", 0, 0x62E6}, /* East Asian ideograph */ + {"\x34", 0, 0x6400}, /* East Asian ideograph */ + {"\x35", 0, 0x6444}, /* East Asian ideograph */ + {"\x37", 0, 0x631B}, /* East Asian ideograph */ + {"\x38", 0, 0x644A}, /* East Asian ideograph */ + {"\x3A", 0, 0x6405}, /* East Asian ideograph */ + {"\x3B", 0, 0x63FD}, /* East Asian ideograph */ + {"\x47", 0, 0x8D25}, /* East Asian ideograph */ + {"\x4F", 0, 0x542F}, /* East Asian ideograph */ + {"\x52", 0, 0x654C}, /* East Asian ideograph */ + {"\x54", 0, 0x6570}, /* East Asian ideograph */ + {"\x56", 0, 0x655B}, /* East Asian ideograph */ + {"\x57", 0, 0x6BD9}, /* East Asian ideograph */ + {"\x63", 0, 0x65A9}, /* East Asian ideograph */ + {"\x66", 0, 0x65AD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page259 = { + marc8_9page259_flat, 0 +}; +/* PAGE 258 */ +struct yaz_iconv_trie_flat marc8_9page258_flat[] = { + {"\x23", 0, 0x6302}, /* East Asian ideograph */ + {"\x36", 0, 0x62A1}, /* East Asian ideograph */ + {"\x3C", 0, 0x62E3}, /* East Asian ideograph */ + {"\x3F", 0, 0x626C}, /* East Asian ideograph */ + {"\x42", 0, 0x6325}, /* East Asian ideograph */ + {"\x4F", 0, 0x635F}, /* East Asian ideograph */ + {"\x53", 0, 0x6363}, /* East Asian ideograph */ + {"\x55", 0, 0x62A2}, /* East Asian ideograph */ + {"\x5A", 0, 0x5C4F}, /* East Asian ideograph */ + {"\x5B", 0, 0x631A}, /* East Asian ideograph */ + {"\x5F", 0, 0x6402}, /* East Asian ideograph */ + {"\x60", 0, 0x63B4}, /* East Asian ideograph */ + {"\x65", 0, 0x635E}, /* East Asian ideograph */ + {"\x66", 0, 0x62E8}, /* East Asian ideograph */ + {"\x68", 0, 0x6320}, /* East Asian ideograph */ + {"\x6E", 0, 0x6251}, /* East Asian ideograph */ + {"\x71", 0, 0x629A}, /* East Asian ideograph */ + {"\x74", 0, 0x62E5}, /* East Asian ideograph */ + {"\x76", 0, 0x51FB}, /* East Asian ideograph */ + {"\x77", 0, 0x631E}, /* East Asian ideograph */ + {"\x7A", 0, 0x6321}, /* East Asian ideograph */ + {"\x7C", 0, 0x636E}, /* East Asian ideograph */ + {"\x7D", 0, 0x63B3}, /* East Asian ideograph */ + {"\x7E", 0, 0x62E9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page258 = { + marc8_9page258_flat, 0 +}; +/* PAGE 257 */ +struct yaz_iconv_trie_flat marc8_9page257_flat[] = { + {"\x6C", 0, 0x631F}, /* East Asian ideograph */ + {"\x7B", 0, 0x5377}, /* East Asian ideograph */ + {"\x7D", 0, 0x626B}, /* East Asian ideograph */ + {"\x7E", 0, 0x626A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page257 = { + marc8_9page257_flat, 0 +}; +/* PAGE 256 */ +struct yaz_iconv_trie_flat marc8_9page256_flat[] = { + {"\x28", 0, 0x6001}, /* East Asian ideograph */ + {"\x29", 0, 0x5FFE}, /* East Asian ideograph */ + {"\x2B", 0, 0x6006}, /* East Asian ideograph */ + {"\x2E", 0, 0x5E86}, /* East Asian ideograph */ + {"\x31", 0, 0x60ED}, /* East Asian ideograph */ + {"\x33", 0, 0x5FE7}, /* East Asian ideograph */ + {"\x36", 0, 0x8651}, /* East Asian ideograph */ + {"\x38", 0, 0x60E8}, /* East Asian ideograph */ + {"\x39", 0, 0x60EF}, /* East Asian ideograph */ + {"\x3A", 0, 0x6078}, /* East Asian ideograph */ + {"\x3B", 0, 0x6002}, /* East Asian ideograph */ + {"\x3C", 0, 0x6B32}, /* East Asian ideograph */ + {"\x3E", 0, 0x5BAA}, /* East Asian ideograph */ + {"\x3F", 0, 0x51ED}, /* East Asian ideograph */ + {"\x41", 0, 0x60AF}, /* East Asian ideograph */ + {"\x42", 0, 0x6124}, /* East Asian ideograph */ + {"\x44", 0, 0x60EE}, /* East Asian ideograph */ + {"\x45", 0, 0x6187}, /* East Asian ideograph */ + {"\x47", 0, 0x60EB}, /* East Asian ideograph */ + {"\x48", 0, 0x5FC6}, /* East Asian ideograph */ + {"\x4A", 0, 0x5E94}, /* East Asian ideograph */ + {"\x4B", 0, 0x601C}, /* East Asian ideograph */ + {"\x4E", 0, 0x6073}, /* East Asian ideograph */ + {"\x54", 0, 0x6000}, /* East Asian ideograph */ + {"\x55", 0, 0x61D2}, /* East Asian ideograph */ + {"\x56", 0, 0x60AC}, /* East Asian ideograph */ + {"\x58", 0, 0x5FCF}, /* East Asian ideograph */ + {"\x59", 0, 0x6151}, /* East Asian ideograph */ + {"\x5B", 0, 0x60E7}, /* East Asian ideograph */ + {"\x5C", 0, 0x604B}, /* East Asian ideograph */ + {"\x6E", 0, 0x6218}, /* East Asian ideograph */ + {"\x6F", 0, 0x620F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page256 = { + marc8_9page256_flat, 0 +}; +/* PAGE 255 */ +struct yaz_iconv_trie_flat marc8_9page255_flat[] = { + {"\x57", 0, 0x5FF0}, /* East Asian ideograph */ + {"\x5C", 0, 0x95F7}, /* East Asian ideograph */ + {"\x5E", 0, 0x6005}, /* East Asian ideograph */ + {"\x61", 0, 0x6076}, /* East Asian ideograph */ + {"\x6C", 0, 0x60EC}, /* East Asian ideograph */ + {"\x70", 0, 0x607B}, /* East Asian ideograph */ + {"\x77", 0, 0x7231}, /* East Asian ideograph */ + {"\x7E", 0, 0x607C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page255 = { + marc8_9page255_flat, 0 +}; +/* PAGE 254 */ +struct yaz_iconv_trie_flat marc8_9page254_flat[] = { + {"\x27", 0, 0x5E9F}, /* East Asian ideograph */ + {"\x2A", 0, 0x5E7F}, /* East Asian ideograph */ + {"\x2B", 0, 0x5E99}, /* East Asian ideograph */ + {"\x2C", 0, 0x5382}, /* East Asian ideograph */ + {"\x2D", 0, 0x5E9E}, /* East Asian ideograph */ + {"\x2E", 0, 0x5E90}, /* East Asian ideograph */ + {"\x2F", 0, 0x5385}, /* East Asian ideograph */ + {"\x47", 0, 0x5F20}, /* East Asian ideograph */ + {"\x4B", 0, 0x5F39}, /* East Asian ideograph */ + {"\x4C", 0, 0x5F25}, /* East Asian ideograph */ + {"\x4D", 0, 0x5F2F}, /* East Asian ideograph */ + {"\x4F", 0, 0x6C47}, /* East Asian ideograph (duplicate simplified) */ + {"\x65", 0, 0x540E}, /* East Asian ideograph */ + {"\x67", 0, 0x5F84}, /* East Asian ideograph */ + {"\x6C", 0, 0x4ECE}, /* East Asian ideograph */ + {"\x6F", 0, 0x590D}, /* East Asian ideograph */ + {"\x74", 0, 0x5F7B}, /* East Asian ideograph */ + {"\x76", 0, 0x5F81}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page254 = { + marc8_9page254_flat, 0 +}; +/* PAGE 253 */ +struct yaz_iconv_trie_flat marc8_9page253_flat[] = { + {"\x28", 0, 0x5C9A}, /* East Asian ideograph */ + {"\x2A", 0, 0x5D2D}, /* East Asian ideograph */ + {"\x2B", 0, 0x5C96}, /* East Asian ideograph */ + {"\x2D", 0, 0x5C7F}, /* East Asian ideograph */ + {"\x2E", 0, 0x5CB3}, /* East Asian ideograph */ + {"\x31", 0, 0x5CE6}, /* East Asian ideograph */ + {"\x32", 0, 0x5DC5}, /* East Asian ideograph */ + {"\x33", 0, 0x5CA9}, /* East Asian ideograph */ + {"\x4F", 0, 0x5E05}, /* East Asian ideograph */ + {"\x51", 0, 0x5E08}, /* East Asian ideograph */ + {"\x52", 0, 0x5E10}, /* East Asian ideograph */ + {"\x53", 0, 0x5E26}, /* East Asian ideograph */ + {"\x58", 0, 0x5E27}, /* East Asian ideograph */ + {"\x5C", 0, 0x5E3C}, /* East Asian ideograph */ + {"\x5E", 0, 0x5E01}, /* East Asian ideograph */ + {"\x60", 0, 0x5E1C}, /* East Asian ideograph */ + {"\x61", 0, 0x5E2E}, /* East Asian ideograph */ + {"\x67", 0, 0x5E72}, /* East Asian ideograph (Version J extension) */ + {"\x6B", 0, 0x51E0}, /* East Asian ideograph */ + {"\x76", 0, 0x5E93}, /* East Asian ideograph */ + {"\x77", 0, 0x5750}, /* East Asian ideograph */ + {"\x7E", 0, 0x5395}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page253 = { + marc8_9page253_flat, 0 +}; +/* PAGE 252 */ +struct yaz_iconv_trie_flat marc8_9page252_flat[] = { + {"\x2E", 0, 0x5BDD}, /* East Asian ideograph */ + {"\x31", 0, 0x5B9E}, /* East Asian ideograph */ + {"\x32", 0, 0x5B81}, /* East Asian ideograph */ + {"\x35", 0, 0x5BBD}, /* East Asian ideograph */ + {"\x36", 0, 0x5BA1}, /* East Asian ideograph */ + {"\x37", 0, 0x5199}, /* East Asian ideograph */ + {"\x38", 0, 0x5BA0}, /* East Asian ideograph */ + {"\x39", 0, 0x5B9D}, /* East Asian ideograph */ + {"\x3F", 0, 0x4E13}, /* East Asian ideograph */ + {"\x40", 0, 0x5C06}, /* East Asian ideograph */ + {"\x42", 0, 0x5BFB}, /* East Asian ideograph */ + {"\x43", 0, 0x5BF9}, /* East Asian ideograph */ + {"\x44", 0, 0x5BFC}, /* East Asian ideograph */ + {"\x4C", 0, 0x5C34}, /* East Asian ideograph */ + {"\x60", 0, 0x5C61}, /* East Asian ideograph */ + {"\x61", 0, 0x5C42}, /* East Asian ideograph */ + {"\x63", 0, 0x5C5E}, /* East Asian ideograph */ + {"\x6E", 0, 0x5188}, /* East Asian ideograph */ + {"\x74", 0, 0x5CE1}, /* East Asian ideograph */ + {"\x79", 0, 0x5C9B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page252 = { + marc8_9page252_flat, 0 +}; +/* PAGE 251 */ +struct yaz_iconv_trie_flat marc8_9page251_flat[] = { + {"\x27", 0, 0x5987}, /* East Asian ideograph */ + {"\x28", 0, 0x5A04}, /* East Asian ideograph */ + {"\x36", 0, 0x5988}, /* East Asian ideograph */ + {"\x3B", 0, 0x59AA}, /* East Asian ideograph */ + {"\x41", 0, 0x5A34}, /* East Asian ideograph */ + {"\x43", 0, 0x5A75}, /* East Asian ideograph */ + {"\x44", 0, 0x5A07}, /* East Asian ideograph */ + {"\x45", 0, 0x59A9}, /* East Asian ideograph */ + {"\x48", 0, 0x5AD4}, /* East Asian ideograph */ + {"\x4A", 0, 0x5A74}, /* East Asian ideograph */ + {"\x4B", 0, 0x5A76}, /* East Asian ideograph */ + {"\x5B", 0, 0x5B59}, /* East Asian ideograph */ + {"\x5F", 0, 0x5B5A}, /* East Asian ideograph */ + {"\x60", 0, 0x5B66}, /* East Asian ideograph */ + {"\x63", 0, 0x5B6A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page251 = { + marc8_9page251_flat, 0 +}; +/* PAGE 250 */ +struct yaz_iconv_trie_flat marc8_9page250_flat[] = { + {"\x23", 0, 0x4F19}, /* East Asian ideograph */ + {"\x24", 0, 0x68A6}, /* East Asian ideograph */ + {"\x2E", 0, 0x5939}, /* East Asian ideograph */ + {"\x3F", 0, 0x5941}, /* East Asian ideograph */ + {"\x40", 0, 0x593A}, /* East Asian ideograph */ + {"\x41", 0, 0x594B}, /* East Asian ideograph */ + {"\x53", 0, 0x5986}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page250 = { + marc8_9page250_flat, 0 +}; +/* PAGE 249 */ +struct yaz_iconv_trie_flat marc8_9page249_flat[] = { + {"\x3B", 0, 0x6267}, /* East Asian ideograph */ + {"\x3E", 0, 0x57A9}, /* East Asian ideograph */ + {"\x44", 0, 0x62A5}, /* East Asian ideograph */ + {"\x45", 0, 0x5C27}, /* East Asian ideograph */ + {"\x4A", 0, 0x573A}, /* East Asian ideograph */ + {"\x4D", 0, 0x6D82}, /* East Asian ideograph */ + {"\x55", 0, 0x575E}, /* East Asian ideograph */ + {"\x56", 0, 0x5757}, /* East Asian ideograph */ + {"\x59", 0, 0x5C18}, /* East Asian ideograph */ + {"\x5A", 0, 0x57AB}, /* East Asian ideograph */ + {"\x5B", 0, 0x5811}, /* East Asian ideograph */ + {"\x60", 0, 0x575F}, /* East Asian ideograph */ + {"\x61", 0, 0x5760}, /* East Asian ideograph */ + {"\x62", 0, 0x5815}, /* East Asian ideograph */ + {"\x64", 0, 0x575B}, /* East Asian ideograph */ + {"\x67", 0, 0x57A6}, /* East Asian ideograph */ + {"\x69", 0, 0x538B}, /* East Asian ideograph */ + {"\x6B", 0, 0x5739}, /* East Asian ideograph */ + {"\x6C", 0, 0x5792}, /* East Asian ideograph */ + {"\x6D", 0, 0x5784}, /* East Asian ideograph */ + {"\x6E", 0, 0x574F}, /* East Asian ideograph */ + {"\x6F", 0, 0x575C}, /* East Asian ideograph */ + {"\x71", 0, 0x575D}, /* East Asian ideograph */ + {"\x74", 0, 0x58EE}, /* East Asian ideograph */ + {"\x76", 0, 0x58F6}, /* East Asian ideograph */ + {"\x77", 0, 0x5BFF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page249 = { + marc8_9page249_flat, 0 +}; +/* PAGE 248 */ +struct yaz_iconv_trie_flat marc8_9page248_flat[] = { + {"\x21", 0, 0x545C}, /* East Asian ideograph */ + {"\x22", 0, 0x545B}, /* East Asian ideograph */ + {"\x27", 0, 0x5567}, /* East Asian ideograph */ + {"\x2C", 0, 0x53F9}, /* East Asian ideograph */ + {"\x2E", 0, 0x5455}, /* East Asian ideograph */ + {"\x30", 0, 0x5C1D}, /* East Asian ideograph */ + {"\x31", 0, 0x55BD}, /* East Asian ideograph */ + {"\x32", 0, 0x5520}, /* East Asian ideograph */ + {"\x33", 0, 0x5578}, /* East Asian ideograph */ + {"\x3D", 0, 0x5480}, /* East Asian ideograph */ + {"\x40", 0, 0x53FD}, /* East Asian ideograph */ + {"\x44", 0, 0x5428}, /* East Asian ideograph */ + {"\x45", 0, 0x55B7}, /* East Asian ideograph */ + {"\x46", 0, 0x5F53}, /* East Asian ideograph (duplicate simplified) */ + {"\x47", 0, 0x54DD}, /* East Asian ideograph */ + {"\x4B", 0, 0x55F3}, /* East Asian ideograph */ + {"\x4E", 0, 0x549B}, /* East Asian ideograph */ + {"\x51", 0, 0x5413}, /* East Asian ideograph */ + {"\x54", 0, 0x565C}, /* East Asian ideograph */ + {"\x55", 0, 0x5411}, /* East Asian ideograph */ + {"\x56", 0, 0x5499}, /* East Asian ideograph */ + {"\x5A", 0, 0x4E25}, /* East Asian ideograph */ + {"\x5B", 0, 0x5624}, /* East Asian ideograph */ + {"\x5C", 0, 0x556D}, /* East Asian ideograph */ + {"\x5D", 0, 0x55EB}, /* East Asian ideograph */ + {"\x5E", 0, 0x56A3}, /* East Asian ideograph */ + {"\x61", 0, 0x7F57}, /* East Asian ideograph (duplicate simplified) */ + {"\x62", 0, 0x5453}, /* East Asian ideograph */ + {"\x64", 0, 0x5631}, /* East Asian ideograph */ + {"\x6F", 0, 0x56EF}, /* East Asian ideograph */ + {"\x70", 0, 0x56F4}, /* East Asian ideograph */ + {"\x71", 0, 0x56ED}, /* East Asian ideograph */ + {"\x72", 0, 0x5706}, /* East Asian ideograph */ + {"\x73", 0, 0x56E2}, /* East Asian ideograph */ + {"\x74", 0, 0x56FE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page248 = { + marc8_9page248_flat, 0 +}; +/* PAGE 247 */ +struct yaz_iconv_trie_flat marc8_9page247_flat[] = { + {"\x3E", 0, 0x5458}, /* East Asian ideograph */ + {"\x48", 0, 0x95EE}, /* East Asian ideograph */ + {"\x49", 0, 0x54D1}, /* East Asian ideograph */ + {"\x63", 0, 0x4E27}, /* East Asian ideograph */ + {"\x68", 0, 0x5355}, /* East Asian ideograph */ + {"\x6D", 0, 0x5524}, /* East Asian ideograph */ + {"\x6F", 0, 0x4E54}, /* East Asian ideograph */ + {"\x71", 0, 0x54DF}, /* East Asian ideograph */ + {"\x78", 0, 0x556C}, /* East Asian ideograph */ + {"\x7A", 0, 0x5417}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page247 = { + marc8_9page247_flat, 0 +}; +/* PAGE 246 */ +struct yaz_iconv_trie_flat marc8_9page246_flat[] = { + {"\x2B", 0, 0x4E1B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page246 = { + marc8_9page246_flat, 0 +}; +/* PAGE 245 */ +struct yaz_iconv_trie_flat marc8_9page245_flat[] = { + {"\x21", 0, 0x5251}, /* East Asian ideograph */ + {"\x22", 0, 0x5218}, /* East Asian ideograph */ + {"\x23", 0, 0x5242}, /* East Asian ideograph */ + {"\x2F", 0, 0x52B2}, /* East Asian ideograph */ + {"\x33", 0, 0x52A1}, /* East Asian ideograph */ + {"\x34", 0, 0x52A8}, /* East Asian ideograph */ + {"\x35", 0, 0x52B3}, /* East Asian ideograph */ + {"\x36", 0, 0x52CB}, /* East Asian ideograph */ + {"\x37", 0, 0x80DC}, /* East Asian ideograph */ + {"\x38", 0, 0x52BF}, /* East Asian ideograph */ + {"\x3C", 0, 0x52B1}, /* East Asian ideograph */ + {"\x3D", 0, 0x529D}, /* East Asian ideograph */ + {"\x51", 0, 0x6C47}, /* East Asian ideograph */ + {"\x52", 0, 0x532E}, /* East Asian ideograph */ + {"\x55", 0, 0x533A}, /* East Asian ideograph */ + {"\x5F", 0, 0x5346}, /* East Asian ideograph */ + {"\x60", 0, 0x534F}, /* East Asian ideograph */ + {"\x7A", 0, 0x538C}, /* East Asian ideograph */ + {"\x7B", 0, 0x5389}, /* East Asian ideograph */ + {"\x7D", 0, 0x53C2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page245 = { + marc8_9page245_flat, 0 +}; +/* PAGE 244 */ +struct yaz_iconv_trie_flat marc8_9page244_flat[] = { + {"\x23", 0, 0x4E24}, /* East Asian ideograph */ + {"\x40", 0, 0x51BB}, /* East Asian ideograph */ + {"\x48", 0, 0x51EF}, /* East Asian ideograph */ + {"\x6B", 0, 0x514B}, /* East Asian ideograph */ + {"\x6D", 0, 0x5219}, /* East Asian ideograph */ + {"\x70", 0, 0x521A}, /* East Asian ideograph */ + {"\x76", 0, 0x5240}, /* East Asian ideograph */ + {"\x78", 0, 0x521B}, /* East Asian ideograph */ + {"\x7C", 0, 0x5212}, /* East Asian ideograph */ + {"\x7E", 0, 0x5267}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page244 = { + marc8_9page244_flat, 0 +}; +/* PAGE 243 */ +struct yaz_iconv_trie_flat marc8_9page243_flat[] = { + {"\x24", 0, 0x4E2A}, /* East Asian ideograph */ + {"\x26", 0, 0x4F25}, /* East Asian ideograph */ + {"\x2D", 0, 0x4F26}, /* East Asian ideograph */ + {"\x2E", 0, 0x4EC3}, /* East Asian ideograph (duplicate simplified) */ + {"\x33", 0, 0x4F1F}, /* East Asian ideograph */ + {"\x35", 0, 0x4FA7}, /* East Asian ideograph */ + {"\x38", 0, 0x4FA6}, /* East Asian ideograph */ + {"\x3E", 0, 0x5BB6}, /* East Asian ideograph */ + {"\x40", 0, 0x5907}, /* East Asian ideograph */ + {"\x41", 0, 0x6770}, /* East Asian ideograph */ + {"\x43", 0, 0x4F27}, /* East Asian ideograph */ + {"\x44", 0, 0x4F1E}, /* East Asian ideograph */ + {"\x46", 0, 0x4F20}, /* East Asian ideograph */ + {"\x47", 0, 0x503A}, /* East Asian ideograph */ + {"\x49", 0, 0x4EC5}, /* East Asian ideograph */ + {"\x4A", 0, 0x503E}, /* East Asian ideograph */ + {"\x4C", 0, 0x4F24}, /* East Asian ideograph */ + {"\x51", 0, 0x4FA5}, /* East Asian ideograph */ + {"\x55", 0, 0x4EC6}, /* East Asian ideograph */ + {"\x56", 0, 0x4F2A}, /* East Asian ideograph */ + {"\x57", 0, 0x8C61}, /* East Asian ideograph */ + {"\x58", 0, 0x4FA8}, /* East Asian ideograph */ + {"\x59", 0, 0x4EEA}, /* East Asian ideograph */ + {"\x5A", 0, 0x4EBF}, /* East Asian ideograph */ + {"\x5D", 0, 0x4EF7}, /* East Asian ideograph */ + {"\x5E", 0, 0x4FAC}, /* East Asian ideograph */ + {"\x60", 0, 0x4FA9}, /* East Asian ideograph */ + {"\x61", 0, 0x4FED}, /* East Asian ideograph */ + {"\x62", 0, 0x50A7}, /* East Asian ideograph */ + {"\x63", 0, 0x5C3D}, /* East Asian ideograph (duplicate simplified) */ + {"\x65", 0, 0x4FE6}, /* East Asian ideograph */ + {"\x66", 0, 0x4F18}, /* East Asian ideograph */ + {"\x67", 0, 0x507F}, /* East Asian ideograph */ + {"\x69", 0, 0x50A8}, /* East Asian ideograph */ + {"\x6A", 0, 0x4FEA}, /* East Asian ideograph */ + {"\x6B", 0, 0x4FE8}, /* East Asian ideograph */ + {"\x73", 0, 0x51F6}, /* East Asian ideograph */ + {"\x7A", 0, 0x513F}, /* East Asian ideograph */ + {"\x7A", 0, 0x513F}, /* East Asian ideograph */ + {"\x7B", 0, 0x5156}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page243 = { + marc8_9page243_flat, 0 +}; +/* PAGE 242 */ +struct yaz_iconv_trie_flat marc8_9page242_flat[] = { + {"\x38", 0, 0x5E03}, /* East Asian ideograph */ + {"\x3C", 0, 0x5360}, /* East Asian ideograph */ + {"\x4C", 0, 0x6765}, /* East Asian ideograph */ + {"\x4F", 0, 0x4ED1}, /* East Asian ideograph */ + {"\x5D", 0, 0x4FA0}, /* East Asian ideograph */ + {"\x69", 0, 0x7CFB}, /* East Asian ideograph (duplicate simplified) */ + {"\x6C", 0, 0x4ED3}, /* East Asian ideograph */ + {"\x73", 0, 0x4EEC}, /* East Asian ideograph */ + {"\x79", 0, 0x4FE9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page242 = { + marc8_9page242_flat, 0 +}; +/* PAGE 241 */ +struct yaz_iconv_trie_flat marc8_9page241_flat[] = { + {"\x32", 0, 0x5E76}, /* East Asian ideograph */ + {"\x4C", 0, 0x5E72}, /* East Asian ideograph */ + {"\x4D", 0, 0x4E71}, /* East Asian ideograph */ + {"\x58", 0, 0x4E9A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page241 = { + marc8_9page241_flat, 0 +}; +/* PAGE 240 */ +struct yaz_iconv_trie_dir marc8_9page240_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {242, 0, 0}, + {243, 0, 0}, + {244, 0, 0}, + {245, 0, 0}, + {246, 0, 0}, + {247, 0, 0}, + {248, 0, 0}, + {249, 0, 0}, + {250, 0, 0}, + {251, 0, 0}, + {252, 0, 0}, + {253, 0, 0}, + {254, 0, 0}, + {255, 0, 0}, + {256, 0, 0}, + {257, 0, 0}, + {258, 0, 0}, + {259, 0, 0}, + {260, 0, 0}, + {261, 0, 0}, + {262, 0, 0}, + {263, 0, 0}, + {264, 0, 0}, + {265, 0, 0}, + {266, 0, 0}, + {267, 0, 0}, + {268, 0, 0}, + {269, 0, 0}, + {270, 0, 0}, + {271, 0, 0}, + {272, 0, 0}, + {273, 0, 0}, + {274, 0, 0}, + {275, 0, 0}, + {276, 0, 0}, + {277, 0, 0}, + {278, 0, 0}, + {279, 0, 0}, + {280, 0, 0}, + {281, 0, 0}, + {282, 0, 0}, + {283, 0, 0}, + {284, 0, 0}, + {285, 0, 0}, + {286, 0, 0}, + {287, 0, 0}, + {288, 0, 0}, + {289, 0, 0}, + {290, 0, 0}, + {291, 0, 0}, + {292, 0, 0}, + {293, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {294, 0, 0}, + {295, 0, 0}, + {296, 0, 0}, + {297, 0, 0}, + {0, 0, 0}, + {298, 0, 0}, + {0, 0, 0}, + {299, 0, 0}, + {300, 0, 0}, + {301, 0, 0}, + {302, 0, 0}, + {303, 0, 0}, + {304, 0, 0}, + {305, 0, 0}, + {306, 0, 0}, + {0, 0, 0}, + {307, 0, 0}, + {308, 0, 0}, + {309, 0, 0}, + {310, 0, 0}, + {0, 0, 0}, + {311, 0, 0}, + {312, 0, 0}, + {313, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page240 = { + 0, marc8_9page240_dir +}; +/* PAGE 239 */ +struct yaz_iconv_trie_flat marc8_9page239_flat[] = { + {"\x23", 0, 0x9F57}, /* East Asian ideograph */ + {"\x28", 0, 0x9F60}, /* East Asian ideograph */ + {"\x3F", 0, 0x9F6E}, /* East Asian ideograph */ + {"\x40", 0, 0x9F6F}, /* East Asian ideograph */ + {"\x47", 0, 0x9F76}, /* East Asian ideograph */ + {"\x5B", 0, 0x9F8E}, /* East Asian ideograph */ + {"\x61", 0, 0x9F93}, /* East Asian ideograph */ + {"\x62", 0, 0x9F95}, /* East Asian ideograph */ + {"\x6B", 0, 0x9FA0}, /* East Asian ideograph */ + {"\x71", 0, 0x9FA5}, /* East Asian ideograph */ + {"\x72", 0, 0x9FA4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page239 = { + marc8_9page239_flat, 0 +}; +/* PAGE 238 */ +struct yaz_iconv_trie_flat marc8_9page238_flat[] = { + {"\x2F", 0, 0x9F0F}, /* East Asian ideograph */ + {"\x31", 0, 0x9F10}, /* East Asian ideograph */ + {"\x32", 0, 0x9F12}, /* East Asian ideograph */ + {"\x33", 0, 0x9F16}, /* East Asian ideograph */ + {"\x34", 0, 0x9F17}, /* East Asian ideograph */ + {"\x37", 0, 0x9F1A}, /* East Asian ideograph */ + {"\x45", 0, 0x9F22}, /* East Asian ideograph */ + {"\x48", 0, 0x9F2B}, /* East Asian ideograph */ + {"\x49", 0, 0x9F26}, /* East Asian ideograph */ + {"\x53", 0, 0x9F2F}, /* East Asian ideograph */ + {"\x5E", 0, 0x9F39}, /* East Asian ideograph */ + {"\x5F", 0, 0x9F37}, /* East Asian ideograph */ + {"\x64", 0, 0x9F3D}, /* East Asian ideograph */ + {"\x69", 0, 0x9F41}, /* East Asian ideograph */ + {"\x6D", 0, 0x9F45}, /* East Asian ideograph */ + {"\x6F", 0, 0x9F46}, /* East Asian ideograph */ + {"\x71", 0, 0x9F48}, /* East Asian ideograph */ + {"\x73", 0, 0x9F49}, /* East Asian ideograph */ + {"\x79", 0, 0x9F4E}, /* East Asian ideograph */ + {"\x7B", 0, 0x9F4F}, /* East Asian ideograph */ + {"\x7C", 0, 0x9F54}, /* East Asian ideograph */ + {"\x7E", 0, 0x9F55}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page238 = { + marc8_9page238_flat, 0 +}; +/* PAGE 237 */ +struct yaz_iconv_trie_flat marc8_9page237_flat[] = { + {"\x30", 0, 0x9EC1}, /* East Asian ideograph */ + {"\x35", 0, 0x9EC6}, /* East Asian ideograph */ + {"\x37", 0, 0x9EC8}, /* East Asian ideograph */ + {"\x42", 0, 0x9ECC}, /* East Asian ideograph */ + {"\x4A", 0, 0x9ED0}, /* East Asian ideograph */ + {"\x4C", 0, 0x9ED3}, /* East Asian ideograph */ + {"\x53", 0, 0x9EDA}, /* East Asian ideograph */ + {"\x55", 0, 0x9EDF}, /* East Asian ideograph */ + {"\x57", 0, 0x9EE3}, /* East Asian ideograph */ + {"\x59", 0, 0x9EE5}, /* East Asian ideograph */ + {"\x5C", 0, 0x9EE7}, /* East Asian ideograph */ + {"\x60", 0, 0x9EEE}, /* East Asian ideograph */ + {"\x66", 0, 0x9EF0}, /* East Asian ideograph */ + {"\x6F", 0, 0x9EF6}, /* East Asian ideograph */ + {"\x74", 0, 0x9EF9}, /* East Asian ideograph */ + {"\x76", 0, 0x9EFB}, /* East Asian ideograph */ + {"\x77", 0, 0x9EFC}, /* East Asian ideograph */ + {"\x7A", 0, 0x9EFD}, /* East Asian ideograph */ + {"\x7B", 0, 0x9EFE}, /* East Asian ideograph */ + {"\x7C", 0, 0x9EFF}, /* East Asian ideograph */ + {"\x7D", 0, 0x9F02}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page237 = { + marc8_9page237_flat, 0 +}; +/* PAGE 236 */ +struct yaz_iconv_trie_flat marc8_9page236_flat[] = { + {"\x27", 0, 0x9E0E}, /* East Asian ideograph */ + {"\x2B", 0, 0x9E11}, /* East Asian ideograph */ + {"\x36", 0, 0x9E15}, /* East Asian ideograph */ + {"\x37", 0, 0x9E18}, /* East Asian ideograph */ + {"\x39", 0, 0x9E1C}, /* East Asian ideograph */ + {"\x3A", 0, 0x9E1B}, /* East Asian ideograph */ + {"\x3B", 0, 0x9E1D}, /* East Asian ideograph */ + {"\x3C", 0, 0x9E75}, /* East Asian ideograph */ + {"\x42", 0, 0x9E7A}, /* East Asian ideograph */ + {"\x43", 0, 0x9E7B}, /* East Asian ideograph */ + {"\x47", 0, 0x9E80}, /* East Asian ideograph */ + {"\x48", 0, 0x9E83}, /* East Asian ideograph */ + {"\x49", 0, 0x9E84}, /* East Asian ideograph */ + {"\x4B", 0, 0x9E88}, /* East Asian ideograph */ + {"\x4F", 0, 0x9E87}, /* East Asian ideograph */ + {"\x55", 0, 0x9E90}, /* East Asian ideograph */ + {"\x58", 0, 0x9E8C}, /* East Asian ideograph */ + {"\x5A", 0, 0x9E95}, /* East Asian ideograph */ + {"\x5C", 0, 0x9E91}, /* East Asian ideograph */ + {"\x5D", 0, 0x9E9B}, /* East Asian ideograph */ + {"\x66", 0, 0x9E9E}, /* East Asian ideograph */ + {"\x77", 0, 0x9EAD}, /* East Asian ideograph */ + {"\x79", 0, 0x9EAF}, /* East Asian ideograph */ + {"\x7A", 0, 0x9EB0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page236 = { + marc8_9page236_flat, 0 +}; +/* PAGE 235 */ +struct yaz_iconv_trie_flat marc8_9page235_flat[] = { + {"\x22", 0, 0x9DC7}, /* East Asian ideograph */ + {"\x27", 0, 0x9DC3}, /* East Asian ideograph */ + {"\x28", 0, 0x9DBB}, /* East Asian ideograph */ + {"\x32", 0, 0x9DB9}, /* East Asian ideograph */ + {"\x34", 0, 0x9DAC}, /* East Asian ideograph */ + {"\x36", 0, 0x9DB2}, /* East Asian ideograph */ + {"\x3A", 0, 0x9DDF}, /* East Asian ideograph */ + {"\x3E", 0, 0x9DD9}, /* East Asian ideograph */ + {"\x45", 0, 0x9DD6}, /* East Asian ideograph */ + {"\x46", 0, 0x9DDE}, /* East Asian ideograph */ + {"\x4F", 0, 0x9DE9}, /* East Asian ideograph */ + {"\x57", 0, 0x9DF2}, /* East Asian ideograph */ + {"\x5B", 0, 0x9DF8}, /* East Asian ideograph */ + {"\x5C", 0, 0x9DFC}, /* East Asian ideograph */ + {"\x5F", 0, 0x9DEB}, /* East Asian ideograph */ + {"\x65", 0, 0x9DEF}, /* East Asian ideograph */ + {"\x6A", 0, 0x9DED}, /* East Asian ideograph */ + {"\x6C", 0, 0x9DE6}, /* East Asian ideograph */ + {"\x6D", 0, 0x9DEE}, /* East Asian ideograph */ + {"\x71", 0, 0x9E07}, /* East Asian ideograph */ + {"\x7E", 0, 0x9DFD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page235 = { + marc8_9page235_flat, 0 +}; +/* PAGE 234 */ +struct yaz_iconv_trie_flat marc8_9page234_flat[] = { + {"\x26", 0, 0x9D5A}, /* East Asian ideograph */ + {"\x2A", 0, 0x9D52}, /* East Asian ideograph */ + {"\x2C", 0, 0x9D77}, /* East Asian ideograph */ + {"\x2E", 0, 0x9D8A}, /* East Asian ideograph */ + {"\x2F", 0, 0x9D7A}, /* East Asian ideograph */ + {"\x35", 0, 0x9D87}, /* East Asian ideograph */ + {"\x3F", 0, 0x9D78}, /* East Asian ideograph */ + {"\x42", 0, 0x9D7E}, /* East Asian ideograph */ + {"\x47", 0, 0x9D69}, /* East Asian ideograph */ + {"\x4D", 0, 0x9D7B}, /* East Asian ideograph */ + {"\x4F", 0, 0x9D83}, /* East Asian ideograph */ + {"\x52", 0, 0x9D6F}, /* East Asian ideograph */ + {"\x59", 0, 0x9DA9}, /* East Asian ideograph */ + {"\x5E", 0, 0x9D92}, /* East Asian ideograph */ + {"\x60", 0, 0x9D98}, /* East Asian ideograph */ + {"\x66", 0, 0x9DA4}, /* East Asian ideograph */ + {"\x67", 0, 0x9DAA}, /* East Asian ideograph */ + {"\x6A", 0, 0x9DA1}, /* East Asian ideograph */ + {"\x6B", 0, 0x9D9A}, /* East Asian ideograph */ + {"\x70", 0, 0x9D96}, /* East Asian ideograph */ + {"\x74", 0, 0x9DB1}, /* East Asian ideograph */ + {"\x76", 0, 0x9DB6}, /* East Asian ideograph */ + {"\x77", 0, 0x9DBC}, /* East Asian ideograph */ + {"\x79", 0, 0x9DC0}, /* East Asian ideograph */ + {"\x7A", 0, 0x9DC1}, /* East Asian ideograph */ + {"\x7B", 0, 0x9DB8}, /* East Asian ideograph */ + {"\x7C", 0, 0x9DBA}, /* East Asian ideograph */ + {"\x7E", 0, 0x9DCF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page234 = { + marc8_9page234_flat, 0 +}; +/* PAGE 233 */ +struct yaz_iconv_trie_flat marc8_9page233_flat[] = { + {"\x21", 0, 0x9D02}, /* East Asian ideograph */ + {"\x22", 0, 0x9D03}, /* East Asian ideograph */ + {"\x23", 0, 0x9CF7}, /* East Asian ideograph */ + {"\x24", 0, 0x9D04}, /* East Asian ideograph */ + {"\x28", 0, 0x9D07}, /* East Asian ideograph */ + {"\x2C", 0, 0x9CF8}, /* East Asian ideograph */ + {"\x2F", 0, 0x9D2A}, /* East Asian ideograph */ + {"\x30", 0, 0x9D25}, /* East Asian ideograph */ + {"\x3F", 0, 0x9D1E}, /* East Asian ideograph */ + {"\x44", 0, 0x9D1D}, /* East Asian ideograph */ + {"\x48", 0, 0x9D1F}, /* East Asian ideograph */ + {"\x4F", 0, 0x9D41}, /* East Asian ideograph */ + {"\x53", 0, 0x9D36}, /* East Asian ideograph */ + {"\x63", 0, 0x9D3E}, /* East Asian ideograph */ + {"\x65", 0, 0x9D30}, /* East Asian ideograph */ + {"\x68", 0, 0x9D42}, /* East Asian ideograph */ + {"\x69", 0, 0x9D40}, /* East Asian ideograph */ + {"\x6B", 0, 0x9D3D}, /* East Asian ideograph */ + {"\x70", 0, 0x9D5C}, /* East Asian ideograph */ + {"\x75", 0, 0x9D53}, /* East Asian ideograph */ + {"\x7B", 0, 0x9D59}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page233 = { + marc8_9page233_flat, 0 +}; +/* PAGE 232 */ +struct yaz_iconv_trie_flat marc8_9page232_flat[] = { + {"\x25", 0, 0x9C32}, /* East Asian ideograph */ + {"\x26", 0, 0x9C44}, /* East Asian ideograph */ + {"\x28", 0, 0x9C48}, /* East Asian ideograph */ + {"\x29", 0, 0x9C39}, /* East Asian ideograph */ + {"\x2A", 0, 0x9C33}, /* East Asian ideograph */ + {"\x30", 0, 0x9C47}, /* East Asian ideograph */ + {"\x32", 0, 0x9C35}, /* East Asian ideograph */ + {"\x34", 0, 0x9C37}, /* East Asian ideograph */ + {"\x38", 0, 0x9C52}, /* East Asian ideograph */ + {"\x3B", 0, 0x9C58}, /* East Asian ideograph */ + {"\x45", 0, 0x9C51}, /* East Asian ideograph */ + {"\x49", 0, 0x9C63}, /* East Asian ideograph */ + {"\x4F", 0, 0x9C67}, /* East Asian ideograph */ + {"\x55", 0, 0x9C5F}, /* East Asian ideograph */ + {"\x56", 0, 0x9C60}, /* East Asian ideograph */ + {"\x58", 0, 0x9C6D}, /* East Asian ideograph */ + {"\x5B", 0, 0x9C68}, /* East Asian ideograph */ + {"\x5C", 0, 0x9C6F}, /* East Asian ideograph */ + {"\x5E", 0, 0x9C6E}, /* East Asian ideograph */ + {"\x6B", 0, 0x9C7A}, /* East Asian ideograph */ + {"\x73", 0, 0x9CE7}, /* East Asian ideograph */ + {"\x74", 0, 0x9CF0}, /* East Asian ideograph */ + {"\x77", 0, 0x9CF2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page232 = { + marc8_9page232_flat, 0 +}; +/* PAGE 231 */ +struct yaz_iconv_trie_flat marc8_9page231_flat[] = { + {"\x23", 0, 0x9BD5}, /* East Asian ideograph */ + {"\x27", 0, 0x9BE4}, /* East Asian ideograph */ + {"\x2B", 0, 0x9BF1}, /* East Asian ideograph */ + {"\x2C", 0, 0x9BE1}, /* East Asian ideograph */ + {"\x2D", 0, 0x9BDB}, /* East Asian ideograph */ + {"\x2F", 0, 0x9BE2}, /* East Asian ideograph */ + {"\x31", 0, 0x9BF0}, /* East Asian ideograph */ + {"\x34", 0, 0x9BD4}, /* East Asian ideograph */ + {"\x3E", 0, 0x9BFF}, /* East Asian ideograph */ + {"\x43", 0, 0x9C06}, /* East Asian ideograph */ + {"\x44", 0, 0x9C15}, /* East Asian ideograph */ + {"\x49", 0, 0x9C0A}, /* East Asian ideograph */ + {"\x4B", 0, 0x9C08}, /* East Asian ideograph */ + {"\x4C", 0, 0x9C14}, /* East Asian ideograph */ + {"\x4D", 0, 0x9C04}, /* East Asian ideograph */ + {"\x52", 0, 0x9C02}, /* East Asian ideograph */ + {"\x54", 0, 0x9C10}, /* East Asian ideograph */ + {"\x59", 0, 0x9C12}, /* East Asian ideograph */ + {"\x5C", 0, 0x9C09}, /* East Asian ideograph */ + {"\x66", 0, 0x9C1C}, /* East Asian ideograph */ + {"\x69", 0, 0x9C2F}, /* East Asian ideograph */ + {"\x6E", 0, 0x9C23}, /* East Asian ideograph */ + {"\x70", 0, 0x9C2E}, /* East Asian ideograph */ + {"\x71", 0, 0x9C28}, /* East Asian ideograph */ + {"\x78", 0, 0x9C21}, /* East Asian ideograph */ + {"\x79", 0, 0x9C24}, /* East Asian ideograph */ + {"\x7E", 0, 0x9C46}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page231 = { + marc8_9page231_flat, 0 +}; +/* PAGE 230 */ +struct yaz_iconv_trie_flat marc8_9page230_flat[] = { + {"\x21", 0, 0x9B83}, /* East Asian ideograph */ + {"\x29", 0, 0x9B8E}, /* East Asian ideograph */ + {"\x2B", 0, 0x9B90}, /* East Asian ideograph */ + {"\x2E", 0, 0x9B93}, /* East Asian ideograph */ + {"\x2F", 0, 0x9B97}, /* East Asian ideograph */ + {"\x31", 0, 0x9B92}, /* East Asian ideograph */ + {"\x32", 0, 0x9B98}, /* East Asian ideograph */ + {"\x36", 0, 0x9B9F}, /* East Asian ideograph */ + {"\x39", 0, 0x9B9D}, /* East Asian ideograph */ + {"\x3C", 0, 0x9BAD}, /* East Asian ideograph */ + {"\x3D", 0, 0x9B9A}, /* East Asian ideograph */ + {"\x3F", 0, 0x9BA8}, /* East Asian ideograph */ + {"\x42", 0, 0x9B9E}, /* East Asian ideograph */ + {"\x43", 0, 0x9B99}, /* East Asian ideograph */ + {"\x49", 0, 0x9B86}, /* East Asian ideograph */ + {"\x4E", 0, 0x9BA0}, /* East Asian ideograph */ + {"\x56", 0, 0x9BC7}, /* East Asian ideograph */ + {"\x59", 0, 0x9BD2}, /* East Asian ideograph */ + {"\x5D", 0, 0x9BC6}, /* East Asian ideograph */ + {"\x5E", 0, 0x9BBF}, /* East Asian ideograph */ + {"\x5F", 0, 0x9BC1}, /* East Asian ideograph */ + {"\x66", 0, 0x9BB9}, /* East Asian ideograph */ + {"\x6B", 0, 0x9BBB}, /* East Asian ideograph */ + {"\x6C", 0, 0x9BD3}, /* East Asian ideograph */ + {"\x6E", 0, 0x9BC0}, /* East Asian ideograph */ + {"\x72", 0, 0x9BC8}, /* East Asian ideograph */ + {"\x77", 0, 0x9BD7}, /* East Asian ideograph */ + {"\x7A", 0, 0x9BD6}, /* East Asian ideograph */ + {"\x7C", 0, 0x9BEB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page230 = { + marc8_9page230_flat, 0 +}; +/* PAGE 229 */ +struct yaz_iconv_trie_flat marc8_9page229_flat[] = { + {"\x22", 0, 0x9B35}, /* East Asian ideograph */ + {"\x23", 0, 0x9B37}, /* East Asian ideograph */ + {"\x36", 0, 0x9B43}, /* East Asian ideograph */ + {"\x3A", 0, 0x9B48}, /* East Asian ideograph */ + {"\x3C", 0, 0x9B4E}, /* East Asian ideograph */ + {"\x3E", 0, 0x9B4D}, /* East Asian ideograph */ + {"\x41", 0, 0x9B4B}, /* East Asian ideograph */ + {"\x47", 0, 0x9B51}, /* East Asian ideograph */ + {"\x5D", 0, 0x9B74}, /* East Asian ideograph */ + {"\x63", 0, 0x9B68}, /* East Asian ideograph */ + {"\x72", 0, 0x9B80}, /* East Asian ideograph */ + {"\x73", 0, 0x9B8C}, /* East Asian ideograph */ + {"\x7A", 0, 0x9B95}, /* East Asian ideograph */ + {"\x7B", 0, 0x9B7D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page229 = { + marc8_9page229_flat, 0 +}; +/* PAGE 228 */ +struct yaz_iconv_trie_flat marc8_9page228_flat[] = { + {"\x21", 0, 0x9AE7}, /* East Asian ideograph */ + {"\x27", 0, 0x9AEB}, /* East Asian ideograph */ + {"\x28", 0, 0x9AF2}, /* East Asian ideograph */ + {"\x2A", 0, 0x9AEF}, /* East Asian ideograph */ + {"\x32", 0, 0x9AF9}, /* East Asian ideograph */ + {"\x35", 0, 0x9AFD}, /* East Asian ideograph */ + {"\x36", 0, 0x9B01}, /* East Asian ideograph */ + {"\x38", 0, 0x9B02}, /* East Asian ideograph */ + {"\x3B", 0, 0x9B00}, /* East Asian ideograph */ + {"\x3C", 0, 0x9B08}, /* East Asian ideograph */ + {"\x3E", 0, 0x9B04}, /* East Asian ideograph */ + {"\x41", 0, 0x9B05}, /* East Asian ideograph */ + {"\x43", 0, 0x9B0B}, /* East Asian ideograph */ + {"\x47", 0, 0x9B0E}, /* East Asian ideograph */ + {"\x4E", 0, 0x9B11}, /* East Asian ideograph */ + {"\x4F", 0, 0x9B10}, /* East Asian ideograph */ + {"\x54", 0, 0x9B18}, /* East Asian ideograph */ + {"\x56", 0, 0x9B1D}, /* East Asian ideograph */ + {"\x5E", 0, 0x9B1F}, /* East Asian ideograph */ + {"\x66", 0, 0x9B23}, /* East Asian ideograph */ + {"\x6C", 0, 0x9B29}, /* East Asian ideograph */ + {"\x73", 0, 0x9B2D}, /* East Asian ideograph */ + {"\x74", 0, 0x9B2E}, /* East Asian ideograph */ + {"\x76", 0, 0x9B2F}, /* East Asian ideograph */ + {"\x7D", 0, 0x9B34}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page228 = { + marc8_9page228_flat, 0 +}; +/* PAGE 227 */ +struct yaz_iconv_trie_flat marc8_9page227_flat[] = { + {"\x22", 0, 0x9A4D}, /* East Asian ideograph */ + {"\x24", 0, 0x9A52}, /* East Asian ideograph */ + {"\x27", 0, 0x9A4A}, /* East Asian ideograph */ + {"\x2A", 0, 0x9A58}, /* East Asian ideograph */ + {"\x2C", 0, 0x9A56}, /* East Asian ideograph */ + {"\x33", 0, 0x9A64}, /* East Asian ideograph */ + {"\x34", 0, 0x9A66}, /* East Asian ideograph */ + {"\x3A", 0, 0x9A6B}, /* East Asian ideograph */ + {"\x3F", 0, 0x9AAD}, /* East Asian ideograph */ + {"\x41", 0, 0x9AAB}, /* East Asian ideograph */ + {"\x43", 0, 0x9AB1}, /* East Asian ideograph */ + {"\x45", 0, 0x9AB3}, /* East Asian ideograph */ + {"\x49", 0, 0x9AB6}, /* East Asian ideograph */ + {"\x4C", 0, 0x9ABB}, /* East Asian ideograph */ + {"\x50", 0, 0x9ABA}, /* East Asian ideograph */ + {"\x54", 0, 0x9ABD}, /* East Asian ideograph */ + {"\x57", 0, 0x9AC1}, /* East Asian ideograph */ + {"\x59", 0, 0x9AC0}, /* East Asian ideograph */ + {"\x5A", 0, 0x9AC2}, /* East Asian ideograph */ + {"\x5D", 0, 0x9AC8}, /* East Asian ideograph */ + {"\x66", 0, 0x9AD0}, /* East Asian ideograph */ + {"\x6A", 0, 0x9AD1}, /* East Asian ideograph */ + {"\x6D", 0, 0x9AD6}, /* East Asian ideograph */ + {"\x72", 0, 0x9ADC}, /* East Asian ideograph */ + {"\x74", 0, 0x9ADF}, /* East Asian ideograph */ + {"\x76", 0, 0x9AE0}, /* East Asian ideograph */ + {"\x77", 0, 0x9AE2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page227 = { + marc8_9page227_flat, 0 +}; +/* PAGE 226 */ +struct yaz_iconv_trie_flat marc8_9page226_flat[] = { + {"\x24", 0, 0x9A02}, /* East Asian ideograph */ + {"\x29", 0, 0x99F8}, /* East Asian ideograph */ + {"\x2A", 0, 0x99F4}, /* East Asian ideograph */ + {"\x30", 0, 0x99FB}, /* East Asian ideograph */ + {"\x31", 0, 0x99FD}, /* East Asian ideograph */ + {"\x3D", 0, 0x9A0F}, /* East Asian ideograph */ + {"\x3E", 0, 0x9A0B}, /* East Asian ideograph */ + {"\x3F", 0, 0x9A09}, /* East Asian ideograph */ + {"\x44", 0, 0x9A04}, /* East Asian ideograph */ + {"\x45", 0, 0x9A11}, /* East Asian ideograph */ + {"\x47", 0, 0x9A05}, /* East Asian ideograph */ + {"\x48", 0, 0x9A10}, /* East Asian ideograph */ + {"\x4C", 0, 0x9A24}, /* East Asian ideograph */ + {"\x4D", 0, 0x9A22}, /* East Asian ideograph */ + {"\x4F", 0, 0x9A20}, /* East Asian ideograph */ + {"\x52", 0, 0x9A27}, /* East Asian ideograph */ + {"\x59", 0, 0x9A2F}, /* East Asian ideograph */ + {"\x5A", 0, 0x9A38}, /* East Asian ideograph */ + {"\x60", 0, 0x9A2D}, /* East Asian ideograph */ + {"\x61", 0, 0x9A35}, /* East Asian ideograph */ + {"\x64", 0, 0x9A32}, /* East Asian ideograph */ + {"\x69", 0, 0x9A36}, /* East Asian ideograph */ + {"\x6A", 0, 0x9A2E}, /* East Asian ideograph */ + {"\x70", 0, 0x9A41}, /* East Asian ideograph */ + {"\x74", 0, 0x9A3B}, /* East Asian ideograph */ + {"\x79", 0, 0x9A42}, /* East Asian ideograph */ + {"\x7A", 0, 0x9A44}, /* East Asian ideograph */ + {"\x7D", 0, 0x9A48}, /* East Asian ideograph */ + {"\x7E", 0, 0x9A4C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page226 = { + marc8_9page226_flat, 0 +}; +/* PAGE 225 */ +struct yaz_iconv_trie_flat marc8_9page225_flat[] = { + {"\x22", 0, 0x9957}, /* East Asian ideograph (variant of EACC 475222) */ + {"\x29", 0, 0x995D}, /* East Asian ideograph */ + {"\x2B", 0, 0x995F}, /* East Asian ideograph */ + {"\x2F", 0, 0x9997}, /* East Asian ideograph */ + {"\x30", 0, 0x9998}, /* East Asian ideograph */ + {"\x3B", 0, 0x99A3}, /* East Asian ideograph */ + {"\x3C", 0, 0x99A1}, /* East Asian ideograph */ + {"\x3E", 0, 0x99A6}, /* East Asian ideograph */ + {"\x41", 0, 0x99A9}, /* East Asian ideograph */ + {"\x42", 0, 0x99AA}, /* East Asian ideograph */ + {"\x49", 0, 0x99B5}, /* East Asian ideograph */ + {"\x4D", 0, 0x99BF}, /* East Asian ideograph */ + {"\x4E", 0, 0x99BC}, /* East Asian ideograph */ + {"\x4F", 0, 0x99C3}, /* East Asian ideograph */ + {"\x53", 0, 0x99B9}, /* East Asian ideograph */ + {"\x54", 0, 0x99BD}, /* East Asian ideograph */ + {"\x61", 0, 0x99D3}, /* East Asian ideograph */ + {"\x63", 0, 0x99D4}, /* East Asian ideograph */ + {"\x65", 0, 0x99C9}, /* East Asian ideograph */ + {"\x69", 0, 0x99D8}, /* East Asian ideograph */ + {"\x74", 0, 0x99EC}, /* East Asian ideograph */ + {"\x7A", 0, 0x99F0}, /* East Asian ideograph */ + {"\x7B", 0, 0x99E3}, /* East Asian ideograph */ + {"\x7C", 0, 0x99EA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page225 = { + marc8_9page225_flat, 0 +}; +/* PAGE 224 */ +struct yaz_iconv_trie_flat marc8_9page224_flat[] = { + {"\x24", 0, 0x9907}, /* East Asian ideograph */ + {"\x28", 0, 0x9902}, /* East Asian ideograph */ + {"\x2F", 0, 0x9916}, /* East Asian ideograph */ + {"\x30", 0, 0x9914}, /* East Asian ideograph */ + {"\x31", 0, 0x9917}, /* East Asian ideograph */ + {"\x32", 0, 0x9911}, /* East Asian ideograph */ + {"\x38", 0, 0x9915}, /* East Asian ideograph */ + {"\x3A", 0, 0x9924}, /* East Asian ideograph */ + {"\x3B", 0, 0x991F}, /* East Asian ideograph */ + {"\x40", 0, 0x991C}, /* East Asian ideograph */ + {"\x43", 0, 0x9929}, /* East Asian ideograph */ + {"\x45", 0, 0x9927}, /* East Asian ideograph */ + {"\x47", 0, 0x991A}, /* East Asian ideograph */ + {"\x4F", 0, 0x992E}, /* East Asian ideograph */ + {"\x50", 0, 0x992C}, /* East Asian ideograph */ + {"\x51", 0, 0x992A}, /* East Asian ideograph */ + {"\x53", 0, 0x9933}, /* East Asian ideograph */ + {"\x54", 0, 0x9942}, /* East Asian ideograph (variant of EACC 4D5154) */ + {"\x55", 0, 0x9932}, /* East Asian ideograph */ + {"\x56", 0, 0x992B}, /* East Asian ideograph */ + {"\x58", 0, 0x9931}, /* East Asian ideograph */ + {"\x5C", 0, 0x993B}, /* East Asian ideograph */ + {"\x60", 0, 0x993A}, /* East Asian ideograph */ + {"\x61", 0, 0x9941}, /* East Asian ideograph */ + {"\x64", 0, 0x9940}, /* East Asian ideograph */ + {"\x66", 0, 0x993C}, /* East Asian ideograph */ + {"\x6A", 0, 0x9948}, /* East Asian ideograph */ + {"\x6C", 0, 0x9947}, /* East Asian ideograph */ + {"\x6D", 0, 0x9949}, /* East Asian ideograph */ + {"\x70", 0, 0x9943}, /* East Asian ideograph */ + {"\x71", 0, 0x994D}, /* East Asian ideograph */ + {"\x72", 0, 0x994C}, /* East Asian ideograph */ + {"\x73", 0, 0x994E}, /* East Asian ideograph */ + {"\x74", 0, 0x9950}, /* East Asian ideograph */ + {"\x7A", 0, 0x9958}, /* East Asian ideograph */ + {"\x7B", 0, 0x9954}, /* East Asian ideograph */ + {"\x7E", 0, 0x9955}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page224 = { + marc8_9page224_flat, 0 +}; +/* PAGE 223 */ +struct yaz_iconv_trie_flat marc8_9page223_flat[] = { + {"\x21", 0, 0x9865}, /* East Asian ideograph */ + {"\x22", 0, 0x9866}, /* East Asian ideograph */ + {"\x29", 0, 0x986C}, /* East Asian ideograph */ + {"\x30", 0, 0x9873}, /* East Asian ideograph */ + {"\x31", 0, 0x9874}, /* East Asian ideograph */ + {"\x39", 0, 0x98AD}, /* East Asian ideograph */ + {"\x40", 0, 0x98B4}, /* East Asian ideograph */ + {"\x48", 0, 0x98B8}, /* East Asian ideograph */ + {"\x4A", 0, 0x98BF}, /* East Asian ideograph */ + {"\x4D", 0, 0x98BB}, /* East Asian ideograph */ + {"\x4E", 0, 0x98C0}, /* East Asian ideograph */ + {"\x53", 0, 0x98C6}, /* East Asian ideograph */ + {"\x5F", 0, 0x98E1}, /* East Asian ideograph */ + {"\x60", 0, 0x98E3}, /* East Asian ideograph */ + {"\x61", 0, 0x98E4}, /* East Asian ideograph */ + {"\x63", 0, 0x98E5}, /* East Asian ideograph */ + {"\x68", 0, 0x98F1}, /* East Asian ideograph */ + {"\x6C", 0, 0x98EB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page223 = { + marc8_9page223_flat, 0 +}; +/* PAGE 222 */ +struct yaz_iconv_trie_flat marc8_9page222_flat[] = { + {"\x23", 0, 0x980E}, /* East Asian ideograph */ + {"\x26", 0, 0x9816}, /* East Asian ideograph */ + {"\x2C", 0, 0x9826}, /* East Asian ideograph */ + {"\x2D", 0, 0x981E}, /* East Asian ideograph */ + {"\x34", 0, 0x982B}, /* East Asian ideograph */ + {"\x37", 0, 0x9820}, /* East Asian ideograph */ + {"\x38", 0, 0x981F}, /* East Asian ideograph */ + {"\x3D", 0, 0x9833}, /* East Asian ideograph */ + {"\x40", 0, 0x982E}, /* East Asian ideograph */ + {"\x44", 0, 0x982F}, /* East Asian ideograph */ + {"\x45", 0, 0x9832}, /* East Asian ideograph */ + {"\x4B", 0, 0x9847}, /* East Asian ideograph */ + {"\x4E", 0, 0x9844}, /* East Asian ideograph */ + {"\x60", 0, 0x9852}, /* East Asian ideograph */ + {"\x62", 0, 0x984B}, /* East Asian ideograph */ + {"\x66", 0, 0x983F}, /* East Asian ideograph */ + {"\x6A", 0, 0x985C}, /* East Asian ideograph */ + {"\x6B", 0, 0x9859}, /* East Asian ideograph */ + {"\x6F", 0, 0x9857}, /* East Asian ideograph */ + {"\x72", 0, 0x9856}, /* East Asian ideograph */ + {"\x77", 0, 0x9862}, /* East Asian ideograph */ + {"\x7E", 0, 0x9868}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page222 = { + marc8_9page222_flat, 0 +}; +/* PAGE 221 */ +struct yaz_iconv_trie_flat marc8_9page221_flat[] = { + {"\x24", 0, 0x97B3}, /* East Asian ideograph */ + {"\x26", 0, 0x97B5}, /* East Asian ideograph */ + {"\x29", 0, 0x97B9}, /* East Asian ideograph */ + {"\x2D", 0, 0x97B8}, /* East Asian ideograph */ + {"\x35", 0, 0x97BE}, /* East Asian ideograph */ + {"\x38", 0, 0x97C0}, /* East Asian ideograph */ + {"\x3B", 0, 0x97C5}, /* East Asian ideograph */ + {"\x43", 0, 0x97C9}, /* East Asian ideograph */ + {"\x4B", 0, 0x97CE}, /* East Asian ideograph */ + {"\x4C", 0, 0x97CD}, /* East Asian ideograph */ + {"\x4E", 0, 0x97D0}, /* East Asian ideograph */ + {"\x51", 0, 0x97D4}, /* East Asian ideograph */ + {"\x53", 0, 0x97D8}, /* East Asian ideograph */ + {"\x54", 0, 0x97D9}, /* East Asian ideograph */ + {"\x59", 0, 0x97DD}, /* East Asian ideograph */ + {"\x5C", 0, 0x97DE}, /* East Asian ideograph */ + {"\x5E", 0, 0x97E0}, /* East Asian ideograph */ + {"\x60", 0, 0x97E1}, /* East Asian ideograph */ + {"\x6C", 0, 0x97F5}, /* East Asian ideograph */ + {"\x73", 0, 0x97FA}, /* East Asian ideograph */ + {"\x79", 0, 0x9807}, /* East Asian ideograph */ + {"\x7B", 0, 0x980F}, /* East Asian ideograph */ + {"\x7E", 0, 0x980D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page221 = { + marc8_9page221_flat, 0 +}; +/* PAGE 220 */ +struct yaz_iconv_trie_flat marc8_9page220_flat[] = { + {"\x25", 0, 0x9767}, /* East Asian ideograph */ + {"\x2C", 0, 0x976B}, /* East Asian ideograph */ + {"\x30", 0, 0x976E}, /* East Asian ideograph */ + {"\x31", 0, 0x9777}, /* East Asian ideograph */ + {"\x32", 0, 0x9778}, /* East Asian ideograph */ + {"\x35", 0, 0x9773}, /* East Asian ideograph */ + {"\x37", 0, 0x9783}, /* East Asian ideograph */ + {"\x38", 0, 0x977A}, /* East Asian ideograph */ + {"\x3A", 0, 0x9780}, /* East Asian ideograph */ + {"\x3C", 0, 0x9781}, /* East Asian ideograph */ + {"\x40", 0, 0x9784}, /* East Asian ideograph */ + {"\x43", 0, 0x977F}, /* East Asian ideograph */ + {"\x49", 0, 0x9789}, /* East Asian ideograph */ + {"\x54", 0, 0x9794}, /* East Asian ideograph */ + {"\x59", 0, 0x979B}, /* East Asian ideograph */ + {"\x5A", 0, 0x979F}, /* East Asian ideograph */ + {"\x5C", 0, 0x979A}, /* East Asian ideograph */ + {"\x62", 0, 0x979C}, /* East Asian ideograph */ + {"\x6A", 0, 0x97AC}, /* East Asian ideograph */ + {"\x70", 0, 0x97AE}, /* East Asian ideograph */ + {"\x71", 0, 0x97A8}, /* East Asian ideograph */ + {"\x74", 0, 0x97AB}, /* East Asian ideograph */ + {"\x78", 0, 0x97A5}, /* East Asian ideograph */ + {"\x7A", 0, 0x97B2}, /* East Asian ideograph */ + {"\x7C", 0, 0x97B4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page220 = { + marc8_9page220_flat, 0 +}; +/* PAGE 219 */ +struct yaz_iconv_trie_flat marc8_9page219_flat[] = { + {"\x22", 0, 0x96FF}, /* East Asian ideograph */ + {"\x27", 0, 0x9702}, /* East Asian ideograph */ + {"\x29", 0, 0x9708}, /* East Asian ideograph */ + {"\x2A", 0, 0x9705}, /* East Asian ideograph */ + {"\x38", 0, 0x971B}, /* East Asian ideograph */ + {"\x3D", 0, 0x971D}, /* East Asian ideograph */ + {"\x3E", 0, 0x9719}, /* East Asian ideograph */ + {"\x47", 0, 0x9723}, /* East Asian ideograph */ + {"\x49", 0, 0x9722}, /* East Asian ideograph */ + {"\x4A", 0, 0x9724}, /* East Asian ideograph */ + {"\x4E", 0, 0x9728}, /* East Asian ideograph */ + {"\x50", 0, 0x9726}, /* East Asian ideograph */ + {"\x52", 0, 0x9731}, /* East Asian ideograph */ + {"\x58", 0, 0x9730}, /* East Asian ideograph */ + {"\x5C", 0, 0x9736}, /* East Asian ideograph */ + {"\x6A", 0, 0x9741}, /* East Asian ideograph */ + {"\x6B", 0, 0x9747}, /* East Asian ideograph */ + {"\x6C", 0, 0x9746}, /* East Asian ideograph */ + {"\x6E", 0, 0x9749}, /* East Asian ideograph */ + {"\x75", 0, 0x9758}, /* East Asian ideograph */ + {"\x76", 0, 0x975A}, /* East Asian ideograph */ + {"\x78", 0, 0x975D}, /* East Asian ideograph */ + {"\x7B", 0, 0x975F}, /* East Asian ideograph */ + {"\x7D", 0, 0x9764}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page219 = { + marc8_9page219_flat, 0 +}; +/* PAGE 218 */ +struct yaz_iconv_trie_flat marc8_9page218_flat[] = { + {"\x2F", 0, 0x96A4}, /* East Asian ideograph */ + {"\x35", 0, 0x96A9}, /* East Asian ideograph */ + {"\x37", 0, 0x96AE}, /* East Asian ideograph */ + {"\x3B", 0, 0x96B0}, /* East Asian ideograph */ + {"\x3C", 0, 0x96B2}, /* East Asian ideograph */ + {"\x3E", 0, 0x96B3}, /* East Asian ideograph */ + {"\x48", 0, 0x96B9}, /* East Asian ideograph */ + {"\x49", 0, 0x96BC}, /* East Asian ideograph */ + {"\x52", 0, 0x96CE}, /* East Asian ideograph */ + {"\x53", 0, 0x96CA}, /* East Asian ideograph */ + {"\x57", 0, 0x96D2}, /* East Asian ideograph */ + {"\x64", 0, 0x96DF}, /* East Asian ideograph */ + {"\x66", 0, 0x96D8}, /* East Asian ideograph */ + {"\x67", 0, 0x96DD}, /* East Asian ideograph */ + {"\x71", 0, 0x96E9}, /* East Asian ideograph */ + {"\x74", 0, 0x96F1}, /* East Asian ideograph */ + {"\x76", 0, 0x96F0}, /* East Asian ideograph */ + {"\x77", 0, 0x96F4}, /* East Asian ideograph */ + {"\x78", 0, 0x96FA}, /* East Asian ideograph */ + {"\x7A", 0, 0x96F5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page218 = { + marc8_9page218_flat, 0 +}; +/* PAGE 217 */ +struct yaz_iconv_trie_flat marc8_9page217_flat[] = { + {"\x21", 0, 0x9627}, /* East Asian ideograph */ + {"\x2F", 0, 0x9642}, /* East Asian ideograph */ + {"\x30", 0, 0x963D}, /* East Asian ideograph */ + {"\x32", 0, 0x963C}, /* East Asian ideograph */ + {"\x3C", 0, 0x9651}, /* East Asian ideograph */ + {"\x42", 0, 0x9660}, /* East Asian ideograph */ + {"\x44", 0, 0x965C}, /* East Asian ideograph */ + {"\x46", 0, 0x9658}, /* East Asian ideograph */ + {"\x4A", 0, 0x965F}, /* East Asian ideograph */ + {"\x4B", 0, 0x9656}, /* East Asian ideograph */ + {"\x51", 0, 0x966C}, /* East Asian ideograph */ + {"\x5D", 0, 0x967B}, /* East Asian ideograph */ + {"\x5E", 0, 0x967F}, /* East Asian ideograph */ + {"\x62", 0, 0x967E}, /* East Asian ideograph */ + {"\x63", 0, 0x9684}, /* East Asian ideograph */ + {"\x65", 0, 0x9688}, /* East Asian ideograph */ + {"\x6C", 0, 0x9689}, /* East Asian ideograph */ + {"\x6D", 0, 0x9682}, /* East Asian ideograph */ + {"\x6E", 0, 0x9683}, /* East Asian ideograph */ + {"\x79", 0, 0x9696}, /* East Asian ideograph */ + {"\x7A", 0, 0x9697}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page217 = { + marc8_9page217_flat, 0 +}; +/* PAGE 216 */ +struct yaz_iconv_trie_flat marc8_9page216_flat[] = { + {"\x2E", 0, 0x9585}, /* East Asian ideograph */ + {"\x30", 0, 0x9588}, /* East Asian ideograph */ + {"\x31", 0, 0x958C}, /* East Asian ideograph */ + {"\x34", 0, 0x9597}, /* East Asian ideograph */ + {"\x36", 0, 0x958E}, /* East Asian ideograph */ + {"\x38", 0, 0x959F}, /* East Asian ideograph */ + {"\x3A", 0, 0x95A0}, /* East Asian ideograph */ + {"\x42", 0, 0x95AC}, /* East Asian ideograph */ + {"\x44", 0, 0x95AB}, /* East Asian ideograph */ + {"\x48", 0, 0x95BC}, /* East Asian ideograph */ + {"\x49", 0, 0x95BE}, /* East Asian ideograph */ + {"\x4A", 0, 0x95CD}, /* East Asian ideograph */ + {"\x4D", 0, 0x95B9}, /* East Asian ideograph */ + {"\x4E", 0, 0x95BA}, /* East Asian ideograph */ + {"\x4F", 0, 0x95B6}, /* East Asian ideograph */ + {"\x50", 0, 0x95BF}, /* East Asian ideograph */ + {"\x52", 0, 0x95BD}, /* East Asian ideograph */ + {"\x59", 0, 0x95C9}, /* East Asian ideograph */ + {"\x5D", 0, 0x95CE}, /* East Asian ideograph */ + {"\x60", 0, 0x95D5}, /* East Asian ideograph */ + {"\x62", 0, 0x95D2}, /* East Asian ideograph */ + {"\x63", 0, 0x95D3}, /* East Asian ideograph */ + {"\x64", 0, 0x95D1}, /* East Asian ideograph */ + {"\x65", 0, 0x95C3}, /* East Asian ideograph */ + {"\x66", 0, 0x95DA}, /* East Asian ideograph */ + {"\x69", 0, 0x95DE}, /* East Asian ideograph */ + {"\x6A", 0, 0x95E0}, /* East Asian ideograph */ + {"\x6F", 0, 0x95E5}, /* East Asian ideograph */ + {"\x72", 0, 0x95E4}, /* East Asian ideograph */ + {"\x76", 0, 0x95E7}, /* East Asian ideograph */ + {"\x7A", 0, 0x961E}, /* East Asian ideograph */ + {"\x7B", 0, 0x9624}, /* East Asian ideograph */ + {"\x7C", 0, 0x9622}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page216 = { + marc8_9page216_flat, 0 +}; +/* PAGE 215 */ +struct yaz_iconv_trie_flat marc8_9page215_flat[] = { + {"\x27", 0, 0x93F4}, /* East Asian ideograph */ + {"\x28", 0, 0x9436}, /* East Asian ideograph */ + {"\x2B", 0, 0x943B}, /* East Asian ideograph */ + {"\x2D", 0, 0x9424}, /* East Asian ideograph */ + {"\x30", 0, 0x9437}, /* East Asian ideograph */ + {"\x32", 0, 0x9440}, /* East Asian ideograph */ + {"\x35", 0, 0x942B}, /* East Asian ideograph */ + {"\x36", 0, 0x942D}, /* East Asian ideograph */ + {"\x37", 0, 0x9441}, /* East Asian ideograph */ + {"\x38", 0, 0x9431}, /* East Asian ideograph */ + {"\x3D", 0, 0x9467}, /* East Asian ideograph */ + {"\x3E", 0, 0x944C}, /* East Asian ideograph */ + {"\x40", 0, 0x9445}, /* East Asian ideograph */ + {"\x42", 0, 0x9450}, /* East Asian ideograph */ + {"\x4A", 0, 0x944A}, /* East Asian ideograph */ + {"\x53", 0, 0x9466}, /* East Asian ideograph */ + {"\x57", 0, 0x9464}, /* East Asian ideograph */ + {"\x58", 0, 0x9462}, /* East Asian ideograph */ + {"\x5C", 0, 0x9465}, /* East Asian ideograph */ + {"\x5D", 0, 0x9455}, /* East Asian ideograph */ + {"\x5E", 0, 0x945E}, /* East Asian ideograph */ + {"\x62", 0, 0x946A}, /* East Asian ideograph */ + {"\x68", 0, 0x946B}, /* East Asian ideograph */ + {"\x69", 0, 0x946D}, /* East Asian ideograph */ + {"\x6C", 0, 0x946F}, /* East Asian ideograph */ + {"\x6D", 0, 0x9471}, /* East Asian ideograph */ + {"\x71", 0, 0x9477}, /* East Asian ideograph */ + {"\x7B", 0, 0x9482}, /* East Asian ideograph */ + {"\x7C", 0, 0x9481}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page215 = { + marc8_9page215_flat, 0 +}; +/* PAGE 214 */ +struct yaz_iconv_trie_flat marc8_9page214_flat[] = { + {"\x2C", 0, 0x93D3}, /* East Asian ideograph */ + {"\x2F", 0, 0x93A9}, /* East Asian ideograph */ + {"\x30", 0, 0x93E6}, /* East Asian ideograph */ + {"\x32", 0, 0x940B}, /* East Asian ideograph */ + {"\x34", 0, 0x9413}, /* East Asian ideograph */ + {"\x3B", 0, 0x940F}, /* East Asian ideograph */ + {"\x3C", 0, 0x9420}, /* East Asian ideograph */ + {"\x3D", 0, 0x93FB}, /* East Asian ideograph */ + {"\x49", 0, 0x93FA}, /* East Asian ideograph */ + {"\x4D", 0, 0x9419}, /* East Asian ideograph */ + {"\x4E", 0, 0x940D}, /* East Asian ideograph */ + {"\x50", 0, 0x9426}, /* East Asian ideograph */ + {"\x51", 0, 0x9427}, /* East Asian ideograph */ + {"\x55", 0, 0x9409}, /* East Asian ideograph */ + {"\x58", 0, 0x9414}, /* East Asian ideograph */ + {"\x59", 0, 0x9404}, /* East Asian ideograph */ + {"\x5C", 0, 0x9422}, /* East Asian ideograph */ + {"\x5D", 0, 0x9406}, /* East Asian ideograph */ + {"\x60", 0, 0x9410}, /* East Asian ideograph */ + {"\x62", 0, 0x9423}, /* East Asian ideograph */ + {"\x67", 0, 0x93F5}, /* East Asian ideograph */ + {"\x69", 0, 0x93F7}, /* East Asian ideograph */ + {"\x6A", 0, 0x9407}, /* East Asian ideograph */ + {"\x6F", 0, 0x940E}, /* East Asian ideograph */ + {"\x71", 0, 0x9411}, /* East Asian ideograph */ + {"\x74", 0, 0x943F}, /* East Asian ideograph */ + {"\x79", 0, 0x9429}, /* East Asian ideograph */ + {"\x7C", 0, 0x943D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page214 = { + marc8_9page214_flat, 0 +}; +/* PAGE 213 */ +struct yaz_iconv_trie_flat marc8_9page213_flat[] = { + {"\x21", 0, 0x93B5}, /* East Asian ideograph */ + {"\x22", 0, 0x938C}, /* East Asian ideograph */ + {"\x23", 0, 0x9388}, /* East Asian ideograph */ + {"\x25", 0, 0x93B9}, /* East Asian ideograph */ + {"\x27", 0, 0x93A1}, /* East Asian ideograph */ + {"\x28", 0, 0x93B0}, /* East Asian ideograph */ + {"\x29", 0, 0x93A3}, /* East Asian ideograph */ + {"\x2A", 0, 0x93B7}, /* East Asian ideograph */ + {"\x2B", 0, 0x939B}, /* East Asian ideograph */ + {"\x2D", 0, 0x9398}, /* East Asian ideograph */ + {"\x3C", 0, 0x9389}, /* East Asian ideograph */ + {"\x3D", 0, 0x93A4}, /* East Asian ideograph */ + {"\x40", 0, 0x93BC}, /* East Asian ideograph */ + {"\x42", 0, 0x93A7}, /* East Asian ideograph */ + {"\x44", 0, 0x93BD}, /* East Asian ideograph */ + {"\x47", 0, 0x93A6}, /* East Asian ideograph */ + {"\x48", 0, 0x939A}, /* East Asian ideograph */ + {"\x4A", 0, 0x93AA}, /* East Asian ideograph */ + {"\x4D", 0, 0x939E}, /* East Asian ideograph */ + {"\x4F", 0, 0x9397}, /* East Asian ideograph */ + {"\x51", 0, 0x93BB}, /* East Asian ideograph */ + {"\x53", 0, 0x93F1}, /* East Asian ideograph */ + {"\x56", 0, 0x93DE}, /* East Asian ideograph */ + {"\x57", 0, 0x93EE}, /* East Asian ideograph */ + {"\x5A", 0, 0x93C7}, /* East Asian ideograph */ + {"\x5B", 0, 0x93F2}, /* East Asian ideograph */ + {"\x5D", 0, 0x93D4}, /* East Asian ideograph */ + {"\x5F", 0, 0x93E5}, /* East Asian ideograph */ + {"\x62", 0, 0x93F9}, /* East Asian ideograph */ + {"\x63", 0, 0x93CA}, /* East Asian ideograph */ + {"\x64", 0, 0x93C4}, /* East Asian ideograph */ + {"\x66", 0, 0x93E8}, /* East Asian ideograph */ + {"\x67", 0, 0x93E7}, /* East Asian ideograph */ + {"\x72", 0, 0x93DA}, /* East Asian ideograph */ + {"\x73", 0, 0x93D0}, /* East Asian ideograph */ + {"\x74", 0, 0x93EF}, /* East Asian ideograph */ + {"\x75", 0, 0x93DB}, /* East Asian ideograph */ + {"\x7C", 0, 0x93CC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page213 = { + marc8_9page213_flat, 0 +}; +/* PAGE 212 */ +struct yaz_iconv_trie_flat marc8_9page212_flat[] = { + {"\x22", 0, 0x9314}, /* East Asian ideograph */ + {"\x28", 0, 0x92FE}, /* East Asian ideograph */ + {"\x2F", 0, 0x9342}, /* East Asian ideograph */ + {"\x31", 0, 0x9341}, /* East Asian ideograph */ + {"\x32", 0, 0x9319}, /* East Asian ideograph */ + {"\x35", 0, 0x934C}, /* East Asian ideograph */ + {"\x41", 0, 0x9379}, /* East Asian ideograph */ + {"\x44", 0, 0x9386}, /* East Asian ideograph */ + {"\x47", 0, 0x936A}, /* East Asian ideograph */ + {"\x48", 0, 0x935C}, /* East Asian ideograph */ + {"\x4C", 0, 0x934F}, /* East Asian ideograph */ + {"\x4D", 0, 0x9347}, /* East Asian ideograph */ + {"\x51", 0, 0x937A}, /* East Asian ideograph */ + {"\x53", 0, 0x9356}, /* East Asian ideograph */ + {"\x54", 0, 0x9371}, /* East Asian ideograph */ + {"\x56", 0, 0x937C}, /* East Asian ideograph */ + {"\x5C", 0, 0x9377}, /* East Asian ideograph */ + {"\x5D", 0, 0x9349}, /* East Asian ideograph */ + {"\x5E", 0, 0x9358}, /* East Asian ideograph */ + {"\x5F", 0, 0x935A}, /* East Asian ideograph */ + {"\x60", 0, 0x93BE}, /* East Asian ideograph */ + {"\x62", 0, 0x935F}, /* East Asian ideograph */ + {"\x64", 0, 0x9376}, /* East Asian ideograph */ + {"\x66", 0, 0x9355}, /* East Asian ideograph */ + {"\x67", 0, 0x9354}, /* East Asian ideograph */ + {"\x6A", 0, 0x9348}, /* East Asian ideograph */ + {"\x6B", 0, 0x9374}, /* East Asian ideograph */ + {"\x6E", 0, 0x9351}, /* East Asian ideograph */ + {"\x6F", 0, 0x9364}, /* East Asian ideograph */ + {"\x71", 0, 0x936B}, /* East Asian ideograph */ + {"\x72", 0, 0x936D}, /* East Asian ideograph */ + {"\x73", 0, 0x9360}, /* East Asian ideograph */ + {"\x77", 0, 0x936E}, /* East Asian ideograph */ + {"\x79", 0, 0x938F}, /* East Asian ideograph */ + {"\x7A", 0, 0x93AC}, /* East Asian ideograph */ + {"\x7B", 0, 0x9395}, /* East Asian ideograph */ + {"\x7E", 0, 0x938B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page212 = { + marc8_9page212_flat, 0 +}; +/* PAGE 211 */ +struct yaz_iconv_trie_flat marc8_9page211_flat[] = { + {"\x21", 0, 0x92C6}, /* East Asian ideograph */ + {"\x25", 0, 0x92F4}, /* East Asian ideograph */ + {"\x27", 0, 0x92CF}, /* East Asian ideograph */ + {"\x2A", 0, 0x92B2}, /* East Asian ideograph */ + {"\x2C", 0, 0x92E7}, /* East Asian ideograph */ + {"\x2D", 0, 0x92C7}, /* East Asian ideograph */ + {"\x2E", 0, 0x92F0}, /* East Asian ideograph */ + {"\x2F", 0, 0x92DB}, /* East Asian ideograph */ + {"\x30", 0, 0x92DC}, /* East Asian ideograph */ + {"\x31", 0, 0x92D8}, /* East Asian ideograph */ + {"\x33", 0, 0x92E9}, /* East Asian ideograph */ + {"\x35", 0, 0x92DD}, /* East Asian ideograph */ + {"\x39", 0, 0x92D1}, /* East Asian ideograph */ + {"\x3A", 0, 0x92CA}, /* East Asian ideograph */ + {"\x3C", 0, 0x92C2}, /* East Asian ideograph */ + {"\x3E", 0, 0x92CC}, /* East Asian ideograph */ + {"\x40", 0, 0x92EF}, /* East Asian ideograph */ + {"\x41", 0, 0x92E8}, /* East Asian ideograph */ + {"\x43", 0, 0x92EB}, /* East Asian ideograph */ + {"\x45", 0, 0x92F5}, /* East Asian ideograph */ + {"\x48", 0, 0x92F2}, /* East Asian ideograph */ + {"\x4C", 0, 0x9303}, /* East Asian ideograph */ + {"\x4D", 0, 0x9307}, /* East Asian ideograph */ + {"\x4E", 0, 0x931E}, /* East Asian ideograph */ + {"\x4F", 0, 0x9344}, /* East Asian ideograph */ + {"\x53", 0, 0x931D}, /* East Asian ideograph */ + {"\x54", 0, 0x92FA}, /* East Asian ideograph */ + {"\x58", 0, 0x931F}, /* East Asian ideograph */ + {"\x5A", 0, 0x9331}, /* East Asian ideograph */ + {"\x5B", 0, 0x9306}, /* East Asian ideograph */ + {"\x5D", 0, 0x92F9}, /* East Asian ideograph */ + {"\x5F", 0, 0x930F}, /* East Asian ideograph */ + {"\x62", 0, 0x9302}, /* East Asian ideograph */ + {"\x64", 0, 0x9324}, /* East Asian ideograph */ + {"\x66", 0, 0x9312}, /* East Asian ideograph */ + {"\x69", 0, 0x9338}, /* East Asian ideograph */ + {"\x6A", 0, 0x9323}, /* East Asian ideograph */ + {"\x6C", 0, 0x9321}, /* East Asian ideograph */ + {"\x71", 0, 0x9340}, /* East Asian ideograph */ + {"\x72", 0, 0x9301}, /* East Asian ideograph */ + {"\x74", 0, 0x9315}, /* East Asian ideograph */ + {"\x76", 0, 0x9329}, /* East Asian ideograph */ + {"\x78", 0, 0x932E}, /* East Asian ideograph */ + {"\x79", 0, 0x932A}, /* East Asian ideograph */ + {"\x7B", 0, 0x933F}, /* East Asian ideograph */ + {"\x7C", 0, 0x933A}, /* East Asian ideograph */ + {"\x7E", 0, 0x9335}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page211 = { + marc8_9page211_flat, 0 +}; +/* PAGE 210 */ +struct yaz_iconv_trie_flat marc8_9page210_flat[] = { + {"\x23", 0, 0x924E}, /* East Asian ideograph */ + {"\x26", 0, 0x924C}, /* East Asian ideograph */ + {"\x27", 0, 0x9256}, /* East Asian ideograph */ + {"\x2B", 0, 0x925A}, /* East Asian ideograph */ + {"\x2E", 0, 0x9241}, /* East Asian ideograph */ + {"\x2F", 0, 0x9283}, /* East Asian ideograph */ + {"\x31", 0, 0x92A5}, /* East Asian ideograph */ + {"\x33", 0, 0x9282}, /* East Asian ideograph */ + {"\x35", 0, 0x92A8}, /* East Asian ideograph */ + {"\x37", 0, 0x927C}, /* East Asian ideograph */ + {"\x38", 0, 0x92A4}, /* East Asian ideograph */ + {"\x3E", 0, 0x9276}, /* East Asian ideograph */ + {"\x3F", 0, 0x928D}, /* East Asian ideograph */ + {"\x40", 0, 0x92EE}, /* East Asian ideograph */ + {"\x42", 0, 0x9288}, /* East Asian ideograph */ + {"\x43", 0, 0x927A}, /* East Asian ideograph */ + {"\x45", 0, 0x928E}, /* East Asian ideograph */ + {"\x46", 0, 0x92A0}, /* East Asian ideograph */ + {"\x47", 0, 0x9277}, /* East Asian ideograph */ + {"\x49", 0, 0x92AA}, /* East Asian ideograph */ + {"\x50", 0, 0x92A6}, /* East Asian ideograph */ + {"\x54", 0, 0x927E}, /* East Asian ideograph */ + {"\x55", 0, 0x929A}, /* East Asian ideograph */ + {"\x58", 0, 0x92AB}, /* East Asian ideograph */ + {"\x5B", 0, 0x9291}, /* East Asian ideograph */ + {"\x5D", 0, 0x929B}, /* East Asian ideograph */ + {"\x62", 0, 0x927F}, /* East Asian ideograph */ + {"\x64", 0, 0x92A3}, /* East Asian ideograph */ + {"\x66", 0, 0x92C8}, /* East Asian ideograph */ + {"\x6A", 0, 0x92C3}, /* East Asian ideograph */ + {"\x6F", 0, 0x92D0}, /* East Asian ideograph */ + {"\x71", 0, 0x92F1}, /* East Asian ideograph */ + {"\x72", 0, 0x92DF}, /* East Asian ideograph */ + {"\x75", 0, 0x92E6}, /* East Asian ideograph */ + {"\x76", 0, 0x92B6}, /* East Asian ideograph */ + {"\x77", 0, 0x92C0}, /* East Asian ideograph */ + {"\x79", 0, 0x92BE}, /* East Asian ideograph */ + {"\x7A", 0, 0x92D9}, /* East Asian ideograph */ + {"\x7E", 0, 0x92D5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page210 = { + marc8_9page210_flat, 0 +}; +/* PAGE 209 */ +struct yaz_iconv_trie_flat marc8_9page209_flat[] = { + {"\x21", 0, 0x91F9}, /* East Asian ideograph */ + {"\x22", 0, 0x91E4}, /* East Asian ideograph */ + {"\x23", 0, 0x9204}, /* East Asian ideograph */ + {"\x25", 0, 0x9201}, /* East Asian ideograph */ + {"\x26", 0, 0x922B}, /* East Asian ideograph */ + {"\x27", 0, 0x920A}, /* East Asian ideograph */ + {"\x28", 0, 0x9225}, /* East Asian ideograph */ + {"\x2A", 0, 0x9292}, /* East Asian ideograph */ + {"\x2C", 0, 0x9228}, /* East Asian ideograph */ + {"\x2E", 0, 0x9207}, /* East Asian ideograph */ + {"\x2F", 0, 0x9203}, /* East Asian ideograph */ + {"\x31", 0, 0x9200}, /* East Asian ideograph */ + {"\x32", 0, 0x9218}, /* East Asian ideograph */ + {"\x33", 0, 0x91FE}, /* East Asian ideograph */ + {"\x36", 0, 0x9208}, /* East Asian ideograph */ + {"\x37", 0, 0x9226}, /* East Asian ideograph */ + {"\x38", 0, 0x921C}, /* East Asian ideograph */ + {"\x3B", 0, 0x9224}, /* East Asian ideograph */ + {"\x43", 0, 0x9212}, /* East Asian ideograph */ + {"\x48", 0, 0x91FF}, /* East Asian ideograph */ + {"\x4A", 0, 0x9216}, /* East Asian ideograph */ + {"\x4B", 0, 0x9211}, /* East Asian ideograph */ + {"\x4E", 0, 0x9206}, /* East Asian ideograph */ + {"\x4F", 0, 0x92A2}, /* East Asian ideograph */ + {"\x51", 0, 0x9230}, /* East Asian ideograph */ + {"\x52", 0, 0x9249}, /* East Asian ideograph */ + {"\x54", 0, 0x924D}, /* East Asian ideograph */ + {"\x55", 0, 0x9248}, /* East Asian ideograph */ + {"\x58", 0, 0x923A}, /* East Asian ideograph */ + {"\x5C", 0, 0x922E}, /* East Asian ideograph */ + {"\x5F", 0, 0x9233}, /* East Asian ideograph */ + {"\x61", 0, 0x9266}, /* East Asian ideograph */ + {"\x64", 0, 0x925E}, /* East Asian ideograph */ + {"\x68", 0, 0x9235}, /* East Asian ideograph */ + {"\x6B", 0, 0x9250}, /* East Asian ideograph */ + {"\x6C", 0, 0x926B}, /* East Asian ideograph */ + {"\x6D", 0, 0x9239}, /* East Asian ideograph */ + {"\x6F", 0, 0x926D}, /* East Asian ideograph */ + {"\x70", 0, 0x926C}, /* East Asian ideograph */ + {"\x71", 0, 0x924F}, /* East Asian ideograph */ + {"\x74", 0, 0x923F}, /* East Asian ideograph */ + {"\x77", 0, 0x9260}, /* East Asian ideograph */ + {"\x7E", 0, 0x9236}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page209 = { + marc8_9page209_flat, 0 +}; +/* PAGE 208 */ +struct yaz_iconv_trie_flat marc8_9page208_flat[] = { + {"\x24", 0, 0x918D}, /* East Asian ideograph */ + {"\x25", 0, 0x9193}, /* East Asian ideograph */ + {"\x2B", 0, 0x919D}, /* East Asian ideograph */ + {"\x2C", 0, 0x919A}, /* East Asian ideograph */ + {"\x30", 0, 0x91A2}, /* East Asian ideograph */ + {"\x34", 0, 0x919B}, /* East Asian ideograph (variant of EACC 4D4134) */ + {"\x37", 0, 0x91A8}, /* East Asian ideograph */ + {"\x3D", 0, 0x91AA}, /* East Asian ideograph */ + {"\x41", 0, 0x91AF}, /* East Asian ideograph */ + {"\x42", 0, 0x91B1}, /* East Asian ideograph */ + {"\x47", 0, 0x91AD}, /* East Asian ideograph */ + {"\x48", 0, 0x91AE}, /* East Asian ideograph */ + {"\x4B", 0, 0x91B4}, /* East Asian ideograph */ + {"\x4C", 0, 0x91B2}, /* East Asian ideograph */ + {"\x4D", 0, 0x91B5}, /* East Asian ideograph */ + {"\x56", 0, 0x91BF}, /* East Asian ideograph */ + {"\x57", 0, 0x91BD}, /* East Asian ideograph */ + {"\x5A", 0, 0x91C2}, /* East Asian ideograph */ + {"\x5B", 0, 0x91C4}, /* East Asian ideograph */ + {"\x5C", 0, 0x91C3}, /* East Asian ideograph */ + {"\x61", 0, 0x91D4}, /* East Asian ideograph */ + {"\x62", 0, 0x91D3}, /* East Asian ideograph */ + {"\x63", 0, 0x91D5}, /* East Asian ideograph */ + {"\x64", 0, 0x91D9}, /* East Asian ideograph */ + {"\x68", 0, 0x91E2}, /* East Asian ideograph */ + {"\x69", 0, 0x91ED}, /* East Asian ideograph */ + {"\x6A", 0, 0x91F7}, /* East Asian ideograph */ + {"\x6B", 0, 0x91FA}, /* East Asian ideograph */ + {"\x6F", 0, 0x91F2}, /* East Asian ideograph */ + {"\x71", 0, 0x91E8}, /* East Asian ideograph */ + {"\x72", 0, 0x91F6}, /* East Asian ideograph */ + {"\x73", 0, 0x91EE}, /* East Asian ideograph */ + {"\x74", 0, 0x91F4}, /* East Asian ideograph */ + {"\x77", 0, 0x91F1}, /* East Asian ideograph */ + {"\x79", 0, 0x91E9}, /* East Asian ideograph */ + {"\x7A", 0, 0x91F8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page208 = { + marc8_9page208_flat, 0 +}; +/* PAGE 207 */ +struct yaz_iconv_trie_flat marc8_9page207_flat[] = { + {"\x21", 0, 0x9132}, /* East Asian ideograph */ + {"\x24", 0, 0x9126}, /* East Asian ideograph */ + {"\x2B", 0, 0x9134}, /* East Asian ideograph */ + {"\x2C", 0, 0x9136}, /* East Asian ideograph */ + {"\x31", 0, 0x913A}, /* East Asian ideograph */ + {"\x32", 0, 0x913B}, /* East Asian ideograph */ + {"\x3B", 0, 0x9143}, /* East Asian ideograph */ + {"\x3E", 0, 0x9146}, /* East Asian ideograph */ + {"\x3F", 0, 0x9145}, /* East Asian ideograph */ + {"\x40", 0, 0x9148}, /* East Asian ideograph */ + {"\x41", 0, 0x9147}, /* East Asian ideograph */ + {"\x42", 0, 0x9150}, /* East Asian ideograph */ + {"\x43", 0, 0x914E}, /* East Asian ideograph */ + {"\x48", 0, 0x9159}, /* East Asian ideograph */ + {"\x49", 0, 0x915C}, /* East Asian ideograph */ + {"\x4D", 0, 0x9156}, /* East Asian ideograph */ + {"\x50", 0, 0x9158}, /* East Asian ideograph */ + {"\x52", 0, 0x915A}, /* East Asian ideograph */ + {"\x53", 0, 0x9161}, /* East Asian ideograph */ + {"\x56", 0, 0x9164}, /* East Asian ideograph */ + {"\x61", 0, 0x916F}, /* East Asian ideograph */ + {"\x62", 0, 0x916E}, /* East Asian ideograph */ + {"\x66", 0, 0x917A}, /* East Asian ideograph */ + {"\x68", 0, 0x9172}, /* East Asian ideograph */ + {"\x69", 0, 0x9179}, /* East Asian ideograph */ + {"\x6A", 0, 0x9176}, /* East Asian ideograph */ + {"\x6B", 0, 0x9174}, /* East Asian ideograph */ + {"\x6C", 0, 0x9173}, /* East Asian ideograph */ + {"\x6D", 0, 0x9185}, /* East Asian ideograph */ + {"\x6F", 0, 0x9182}, /* East Asian ideograph */ + {"\x70", 0, 0x918A}, /* East Asian ideograph */ + {"\x71", 0, 0x9186}, /* East Asian ideograph */ + {"\x72", 0, 0x918C}, /* East Asian ideograph */ + {"\x73", 0, 0x9181}, /* East Asian ideograph */ + {"\x7B", 0, 0x9191}, /* East Asian ideograph */ + {"\x7D", 0, 0x9190}, /* East Asian ideograph */ + {"\x7E", 0, 0x918E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page207 = { + marc8_9page207_flat, 0 +}; +/* PAGE 206 */ +struct yaz_iconv_trie_flat marc8_9page206_flat[] = { + {"\x22", 0, 0x90DD}, /* East Asian ideograph */ + {"\x23", 0, 0x90DF}, /* East Asian ideograph */ + {"\x26", 0, 0x90E2}, /* East Asian ideograph */ + {"\x27", 0, 0x90D8}, /* East Asian ideograph */ + {"\x28", 0, 0x90DB}, /* East Asian ideograph */ + {"\x2A", 0, 0x90DC}, /* East Asian ideograph */ + {"\x2C", 0, 0x90D7}, /* East Asian ideograph */ + {"\x2D", 0, 0x90E4}, /* East Asian ideograph */ + {"\x2E", 0, 0x90EF}, /* East Asian ideograph */ + {"\x2F", 0, 0x90EA}, /* East Asian ideograph */ + {"\x32", 0, 0x90F0}, /* East Asian ideograph */ + {"\x33", 0, 0x90F4}, /* East Asian ideograph */ + {"\x34", 0, 0x90F2}, /* East Asian ideograph */ + {"\x3E", 0, 0x90EB}, /* East Asian ideograph */ + {"\x3F", 0, 0x90F3}, /* East Asian ideograph */ + {"\x46", 0, 0x90FC}, /* East Asian ideograph */ + {"\x47", 0, 0x90FE}, /* East Asian ideograph */ + {"\x49", 0, 0x9104}, /* East Asian ideograph */ + {"\x4A", 0, 0x90FF}, /* East Asian ideograph */ + {"\x4C", 0, 0x9106}, /* East Asian ideograph */ + {"\x4E", 0, 0x9100}, /* East Asian ideograph */ + {"\x50", 0, 0x9107}, /* East Asian ideograph */ + {"\x57", 0, 0x910F}, /* East Asian ideograph */ + {"\x58", 0, 0x9111}, /* East Asian ideograph */ + {"\x5A", 0, 0x9116}, /* East Asian ideograph */ + {"\x5C", 0, 0x9114}, /* East Asian ideograph */ + {"\x60", 0, 0x910B}, /* East Asian ideograph */ + {"\x62", 0, 0x9123}, /* East Asian ideograph (Version J extension) */ + {"\x63", 0, 0x9118}, /* East Asian ideograph */ + {"\x64", 0, 0x911C}, /* East Asian ideograph */ + {"\x66", 0, 0x9120}, /* East Asian ideograph */ + {"\x67", 0, 0x9122}, /* East Asian ideograph */ + {"\x6A", 0, 0x911E}, /* East Asian ideograph */ + {"\x71", 0, 0x9124}, /* East Asian ideograph */ + {"\x72", 0, 0x911A}, /* East Asian ideograph */ + {"\x74", 0, 0x9125}, /* East Asian ideograph */ + {"\x77", 0, 0x912F}, /* East Asian ideograph */ + {"\x79", 0, 0x912B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page206 = { + marc8_9page206_flat, 0 +}; +/* PAGE 205 */ +struct yaz_iconv_trie_flat marc8_9page205_flat[] = { + {"\x21", 0, 0x9070}, /* East Asian ideograph */ + {"\x25", 0, 0x906F}, /* East Asian ideograph */ + {"\x26", 0, 0x9079}, /* East Asian ideograph */ + {"\x28", 0, 0x9076}, /* East Asian ideograph */ + {"\x2A", 0, 0x907B}, /* East Asian ideograph */ + {"\x2C", 0, 0x9085}, /* East Asian ideograph */ + {"\x34", 0, 0x9083}, /* East Asian ideograph */ + {"\x37", 0, 0x9088}, /* East Asian ideograph */ + {"\x3A", 0, 0x908B}, /* East Asian ideograph */ + {"\x3F", 0, 0x9099}, /* East Asian ideograph */ + {"\x40", 0, 0x9097}, /* East Asian ideograph */ + {"\x43", 0, 0x909B}, /* East Asian ideograph */ + {"\x44", 0, 0x909C}, /* East Asian ideograph */ + {"\x48", 0, 0x90A1}, /* East Asian ideograph */ + {"\x51", 0, 0x90A8}, /* East Asian ideograph */ + {"\x54", 0, 0x90A0}, /* East Asian ideograph */ + {"\x58", 0, 0x90AF}, /* East Asian ideograph */ + {"\x59", 0, 0x90B3}, /* East Asian ideograph */ + {"\x5B", 0, 0x90B6}, /* East Asian ideograph */ + {"\x5D", 0, 0x90B0}, /* East Asian ideograph */ + {"\x5F", 0, 0x90AD}, /* East Asian ideograph */ + {"\x61", 0, 0x90B2}, /* East Asian ideograph */ + {"\x68", 0, 0x90C9}, /* East Asian ideograph */ + {"\x6A", 0, 0x90BD}, /* East Asian ideograph */ + {"\x6F", 0, 0x90D5}, /* East Asian ideograph */ + {"\x72", 0, 0x90BE}, /* East Asian ideograph */ + {"\x75", 0, 0x90C7}, /* East Asian ideograph */ + {"\x78", 0, 0x90C8}, /* East Asian ideograph */ + {"\x79", 0, 0x90C3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page205 = { + marc8_9page205_flat, 0 +}; +/* PAGE 204 */ +struct yaz_iconv_trie_flat marc8_9page204_flat[] = { + {"\x21", 0, 0x8FDA}, /* East Asian ideograph */ + {"\x22", 0, 0x8FD5}, /* East Asian ideograph */ + {"\x2F", 0, 0x8FE4}, /* East Asian ideograph */ + {"\x30", 0, 0x8FEE}, /* East Asian ideograph */ + {"\x35", 0, 0x8FF9}, /* East Asian ideograph */ + {"\x3C", 0, 0x8FFB}, /* East Asian ideograph */ + {"\x3F", 0, 0x9004}, /* East Asian ideograph */ + {"\x40", 0, 0x9008}, /* East Asian ideograph */ + {"\x44", 0, 0x9011}, /* East Asian ideograph */ + {"\x45", 0, 0x900B}, /* East Asian ideograph */ + {"\x48", 0, 0x900C}, /* East Asian ideograph */ + {"\x49", 0, 0x9021}, /* East Asian ideograph */ + {"\x4A", 0, 0x902D}, /* East Asian ideograph */ + {"\x4E", 0, 0x902C}, /* East Asian ideograph */ + {"\x56", 0, 0x9037}, /* East Asian ideograph */ + {"\x57", 0, 0x9034}, /* East Asian ideograph */ + {"\x58", 0, 0x902F}, /* East Asian ideograph */ + {"\x59", 0, 0x9036}, /* East Asian ideograph */ + {"\x5B", 0, 0x9046}, /* East Asian ideograph */ + {"\x5D", 0, 0x9052}, /* East Asian ideograph */ + {"\x67", 0, 0x9049}, /* East Asian ideograph */ + {"\x6A", 0, 0x9044}, /* East Asian ideograph */ + {"\x74", 0, 0x9062}, /* East Asian ideograph */ + {"\x75", 0, 0x905D}, /* East Asian ideograph */ + {"\x78", 0, 0x905B}, /* East Asian ideograph */ + {"\x7B", 0, 0x906B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page204 = { + marc8_9page204_flat, 0 +}; +/* PAGE 203 */ +struct yaz_iconv_trie_flat marc8_9page203_flat[] = { + {"\x26", 0, 0x8F39}, /* East Asian ideograph */ + {"\x27", 0, 0x8F34}, /* East Asian ideograph */ + {"\x2D", 0, 0x8F40}, /* East Asian ideograph */ + {"\x30", 0, 0x8F46}, /* East Asian ideograph */ + {"\x31", 0, 0x8F4A}, /* East Asian ideograph */ + {"\x33", 0, 0x8F47}, /* East Asian ideograph */ + {"\x3D", 0, 0x8F52}, /* East Asian ideograph */ + {"\x48", 0, 0x8F56}, /* East Asian ideograph */ + {"\x49", 0, 0x8F57}, /* East Asian ideograph */ + {"\x4B", 0, 0x8F55}, /* East Asian ideograph */ + {"\x4C", 0, 0x8F58}, /* East Asian ideograph */ + {"\x4D", 0, 0x8F5C}, /* East Asian ideograph */ + {"\x4E", 0, 0x8F5E}, /* East Asian ideograph */ + {"\x53", 0, 0x8F5D}, /* East Asian ideograph */ + {"\x57", 0, 0x8F62}, /* East Asian ideograph */ + {"\x59", 0, 0x8F63}, /* East Asian ideograph */ + {"\x5A", 0, 0x8F64}, /* East Asian ideograph */ + {"\x65", 0, 0x8FA4}, /* East Asian ideograph */ + {"\x66", 0, 0x8FA5}, /* East Asian ideograph */ + {"\x6C", 0, 0x8FB5}, /* East Asian ideograph */ + {"\x6D", 0, 0x8FB7}, /* East Asian ideograph */ + {"\x6E", 0, 0x8FBB}, /* East Asian ideograph */ + {"\x70", 0, 0x8FBC}, /* East Asian ideograph */ + {"\x74", 0, 0x8FBF}, /* East Asian ideograph */ + {"\x75", 0, 0x8FD2}, /* East Asian ideograph */ + {"\x77", 0, 0x8FCB}, /* East Asian ideograph */ + {"\x7A", 0, 0x8FCA}, /* East Asian ideograph */ + {"\x7B", 0, 0x8FD3}, /* East Asian ideograph */ + {"\x7D", 0, 0x8FCD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page203 = { + marc8_9page203_flat, 0 +}; +/* PAGE 202 */ +struct yaz_iconv_trie_flat marc8_9page202_flat[] = { + {"\x2E", 0, 0x8EC9}, /* East Asian ideograph */ + {"\x2F", 0, 0x8ECF}, /* East Asian ideograph */ + {"\x31", 0, 0x8ECE}, /* East Asian ideograph */ + {"\x33", 0, 0x8ED5}, /* East Asian ideograph */ + {"\x3F", 0, 0x8EFA}, /* East Asian ideograph */ + {"\x42", 0, 0x8EF9}, /* East Asian ideograph */ + {"\x4B", 0, 0x8EE8}, /* East Asian ideograph */ + {"\x4F", 0, 0x8EEB}, /* East Asian ideograph */ + {"\x51", 0, 0x8EFF}, /* East Asian ideograph */ + {"\x56", 0, 0x8F00}, /* East Asian ideograph */ + {"\x59", 0, 0x8F05}, /* East Asian ideograph */ + {"\x5A", 0, 0x8F08}, /* East Asian ideograph */ + {"\x5B", 0, 0x8F07}, /* East Asian ideograph */ + {"\x63", 0, 0x8F27}, /* East Asian ideograph */ + {"\x64", 0, 0x8F2C}, /* East Asian ideograph */ + {"\x6B", 0, 0x8F1E}, /* East Asian ideograph */ + {"\x6D", 0, 0x8F25}, /* East Asian ideograph */ + {"\x6E", 0, 0x8F20}, /* East Asian ideograph */ + {"\x75", 0, 0x8F17}, /* East Asian ideograph */ + {"\x78", 0, 0x8F36}, /* East Asian ideograph */ + {"\x79", 0, 0x8F2E}, /* East Asian ideograph */ + {"\x7A", 0, 0x8F33}, /* East Asian ideograph */ + {"\x7D", 0, 0x8F2D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page202 = { + marc8_9page202_flat, 0 +}; +/* PAGE 201 */ +struct yaz_iconv_trie_flat marc8_9page201_flat[] = { + {"\x21", 0, 0x8E30}, /* East Asian ideograph */ + {"\x24", 0, 0x8E47}, /* East Asian ideograph */ + {"\x26", 0, 0x8E46}, /* East Asian ideograph */ + {"\x2E", 0, 0x8E4C}, /* East Asian ideograph */ + {"\x30", 0, 0x8E50}, /* East Asian ideograph */ + {"\x32", 0, 0x8E4F}, /* East Asian ideograph */ + {"\x34", 0, 0x8E5C}, /* East Asian ideograph */ + {"\x35", 0, 0x8E62}, /* East Asian ideograph */ + {"\x36", 0, 0x8E60}, /* East Asian ideograph */ + {"\x3A", 0, 0x8E54}, /* East Asian ideograph */ + {"\x3B", 0, 0x8E67}, /* East Asian ideograph */ + {"\x3E", 0, 0x8E5A}, /* East Asian ideograph */ + {"\x3F", 0, 0x8E5E}, /* East Asian ideograph */ + {"\x40", 0, 0x8E55}, /* East Asian ideograph */ + {"\x41", 0, 0x8E61}, /* East Asian ideograph */ + {"\x43", 0, 0x8E5D}, /* East Asian ideograph */ + {"\x44", 0, 0x8E75}, /* East Asian ideograph */ + {"\x45", 0, 0x8E74}, /* East Asian ideograph */ + {"\x46", 0, 0x8E95}, /* East Asian ideograph */ + {"\x48", 0, 0x8E6D}, /* East Asian ideograph */ + {"\x4B", 0, 0x8E69}, /* East Asian ideograph */ + {"\x52", 0, 0x8E83}, /* East Asian ideograph */ + {"\x53", 0, 0x8E84}, /* East Asian ideograph */ + {"\x57", 0, 0x8E8B}, /* East Asian ideograph */ + {"\x5D", 0, 0x8E94}, /* East Asian ideograph */ + {"\x5E", 0, 0x8E9A}, /* East Asian ideograph */ + {"\x5F", 0, 0x8E92}, /* East Asian ideograph */ + {"\x60", 0, 0x8E93}, /* East Asian ideograph */ + {"\x62", 0, 0x8E90}, /* East Asian ideograph */ + {"\x63", 0, 0x8E98}, /* East Asian ideograph */ + {"\x64", 0, 0x8E9E}, /* East Asian ideograph */ + {"\x6B", 0, 0x8EA5}, /* East Asian ideograph */ + {"\x6F", 0, 0x8EA7}, /* East Asian ideograph */ + {"\x71", 0, 0x8EA9}, /* East Asian ideograph */ + {"\x72", 0, 0x8E99}, /* East Asian ideograph */ + {"\x78", 0, 0x8EB3}, /* East Asian ideograph */ + {"\x7A", 0, 0x8EBC}, /* East Asian ideograph */ + {"\x7D", 0, 0x8EB6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page201 = { + marc8_9page201_flat, 0 +}; +/* PAGE 200 */ +struct yaz_iconv_trie_flat marc8_9page200_flat[] = { + {"\x21", 0, 0x8DCF}, /* East Asian ideograph */ + {"\x22", 0, 0x8DD6}, /* East Asian ideograph */ + {"\x27", 0, 0x8DD0}, /* East Asian ideograph */ + {"\x2B", 0, 0x8DC5}, /* East Asian ideograph */ + {"\x2F", 0, 0x8DE4}, /* East Asian ideograph */ + {"\x34", 0, 0x8DEC}, /* East Asian ideograph */ + {"\x35", 0, 0x8DEB}, /* East Asian ideograph */ + {"\x36", 0, 0x8DF4}, /* East Asian ideograph */ + {"\x38", 0, 0x8DE9}, /* East Asian ideograph */ + {"\x3A", 0, 0x8DE6}, /* East Asian ideograph */ + {"\x3B", 0, 0x8DE3}, /* East Asian ideograph */ + {"\x3D", 0, 0x8DE7}, /* East Asian ideograph */ + {"\x3E", 0, 0x8DF2}, /* East Asian ideograph */ + {"\x3F", 0, 0x8E09}, /* East Asian ideograph */ + {"\x41", 0, 0x8DFD}, /* East Asian ideograph */ + {"\x44", 0, 0x8DFF}, /* East Asian ideograph */ + {"\x46", 0, 0x8E05}, /* East Asian ideograph */ + {"\x49", 0, 0x8E01}, /* East Asian ideograph */ + {"\x4E", 0, 0x8E04}, /* East Asian ideograph */ + {"\x50", 0, 0x8E06}, /* East Asian ideograph */ + {"\x52", 0, 0x8E2A}, /* East Asian ideograph */ + {"\x54", 0, 0x8E23}, /* East Asian ideograph */ + {"\x57", 0, 0x8E2E}, /* East Asian ideograph */ + {"\x58", 0, 0x8E21}, /* East Asian ideograph */ + {"\x5C", 0, 0x8E1E}, /* East Asian ideograph */ + {"\x64", 0, 0x8E16}, /* East Asian ideograph */ + {"\x66", 0, 0x8E26}, /* East Asian ideograph */ + {"\x67", 0, 0x8E27}, /* East Asian ideograph */ + {"\x68", 0, 0x8E14}, /* East Asian ideograph */ + {"\x69", 0, 0x8E18}, /* East Asian ideograph */ + {"\x6F", 0, 0x8E41}, /* East Asian ideograph */ + {"\x77", 0, 0x8E40}, /* East Asian ideograph */ + {"\x79", 0, 0x8E36}, /* East Asian ideograph */ + {"\x7E", 0, 0x8E3D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page200 = { + marc8_9page200_flat, 0 +}; +/* PAGE 199 */ +struct yaz_iconv_trie_flat marc8_9page199_flat[] = { + {"\x22", 0, 0x8D96}, /* East Asian ideograph */ + {"\x2F", 0, 0x8DA1}, /* East Asian ideograph */ + {"\x33", 0, 0x8DA6}, /* East Asian ideograph */ + {"\x52", 0, 0x8DAB}, /* East Asian ideograph */ + {"\x59", 0, 0x8DAF}, /* East Asian ideograph */ + {"\x5A", 0, 0x8DB0}, /* East Asian ideograph */ + {"\x66", 0, 0x8DB2}, /* East Asian ideograph */ + {"\x6E", 0, 0x8DBC}, /* East Asian ideograph */ + {"\x6F", 0, 0x8DBA}, /* East Asian ideograph */ + {"\x70", 0, 0x8DB9}, /* East Asian ideograph */ + {"\x71", 0, 0x8DC2}, /* East Asian ideograph */ + {"\x72", 0, 0x8DC1}, /* East Asian ideograph */ + {"\x73", 0, 0x8DBF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page199 = { + marc8_9page199_flat, 0 +}; +/* PAGE 198 */ +struct yaz_iconv_trie_flat marc8_9page198_flat[] = { + {"\x21", 0, 0x8CF7}, /* East Asian ideograph */ + {"\x25", 0, 0x8D04}, /* East Asian ideograph */ + {"\x26", 0, 0x8CFE}, /* East Asian ideograph */ + {"\x2B", 0, 0x8D07}, /* East Asian ideograph */ + {"\x2D", 0, 0x8D09}, /* East Asian ideograph */ + {"\x32", 0, 0x8D0C}, /* East Asian ideograph */ + {"\x39", 0, 0x8D11}, /* East Asian ideograph */ + {"\x3A", 0, 0x8D10}, /* East Asian ideograph */ + {"\x3B", 0, 0x8D12}, /* East Asian ideograph */ + {"\x3D", 0, 0x8D14}, /* East Asian ideograph */ + {"\x3E", 0, 0x8D18}, /* East Asian ideograph */ + {"\x48", 0, 0x8D6C}, /* East Asian ideograph */ + {"\x52", 0, 0x8D78}, /* East Asian ideograph */ + {"\x5C", 0, 0x8D7A}, /* East Asian ideograph */ + {"\x61", 0, 0x8D84}, /* East Asian ideograph */ + {"\x71", 0, 0x8D94}, /* East Asian ideograph */ + {"\x75", 0, 0x8D8D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page198 = { + marc8_9page198_flat, 0 +}; +/* PAGE 197 */ +struct yaz_iconv_trie_flat marc8_9page197_flat[] = { + {"\x2A", 0, 0x8C86}, /* East Asian ideograph */ + {"\x2D", 0, 0x8C85}, /* East Asian ideograph */ + {"\x2E", 0, 0x8C88}, /* East Asian ideograph */ + {"\x39", 0, 0x8C94}, /* East Asian ideograph */ + {"\x41", 0, 0x8C9B}, /* East Asian ideograph */ + {"\x43", 0, 0x8C9F}, /* East Asian ideograph */ + {"\x44", 0, 0x8CA4}, /* East Asian ideograph */ + {"\x4E", 0, 0x8CB0}, /* East Asian ideograph */ + {"\x51", 0, 0x8CBA}, /* East Asian ideograph */ + {"\x52", 0, 0x8CB5}, /* East Asian ideograph */ + {"\x53", 0, 0x8CB9}, /* East Asian ideograph */ + {"\x57", 0, 0x8CCD}, /* East Asian ideograph */ + {"\x5E", 0, 0x8CD8}, /* East Asian ideograph */ + {"\x5F", 0, 0x8CD5}, /* East Asian ideograph */ + {"\x67", 0, 0x8CE8}, /* East Asian ideograph */ + {"\x68", 0, 0x8CE9}, /* East Asian ideograph */ + {"\x6A", 0, 0x8CE1}, /* East Asian ideograph */ + {"\x6F", 0, 0x8CEB}, /* East Asian ideograph */ + {"\x70", 0, 0x8CDA}, /* East Asian ideograph */ + {"\x72", 0, 0x8CDD}, /* East Asian ideograph */ + {"\x74", 0, 0x8CD9}, /* East Asian ideograph */ + {"\x76", 0, 0x8CEE}, /* East Asian ideograph */ + {"\x7B", 0, 0x8CF1}, /* East Asian ideograph */ + {"\x7C", 0, 0x8CF5}, /* East Asian ideograph */ + {"\x7E", 0, 0x8CFB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page197 = { + marc8_9page197_flat, 0 +}; +/* PAGE 196 */ +struct yaz_iconv_trie_flat marc8_9page196_flat[] = { + {"\x23", 0, 0x8B8B}, /* East Asian ideograph */ + {"\x26", 0, 0x8B87}, /* East Asian ideograph */ + {"\x2D", 0, 0x8B95}, /* East Asian ideograph */ + {"\x2E", 0, 0x8B94}, /* East Asian ideograph */ + {"\x37", 0, 0x8B9C}, /* East Asian ideograph */ + {"\x3A", 0, 0x8B9F}, /* East Asian ideograph */ + {"\x3D", 0, 0x8C3A}, /* East Asian ideograph */ + {"\x44", 0, 0x8C40}, /* East Asian ideograph */ + {"\x45", 0, 0x8C42}, /* East Asian ideograph */ + {"\x4B", 0, 0x8C47}, /* East Asian ideograph */ + {"\x4D", 0, 0x8C4B}, /* East Asian ideograph */ + {"\x50", 0, 0x8C4F}, /* East Asian ideograph */ + {"\x52", 0, 0x8C55}, /* East Asian ideograph */ + {"\x54", 0, 0x8C57}, /* East Asian ideograph */ + {"\x55", 0, 0x8C5C}, /* East Asian ideograph */ + {"\x56", 0, 0x8C5D}, /* East Asian ideograph */ + {"\x5C", 0, 0x86C3}, /* East Asian ideograph */ + {"\x63", 0, 0x8C68}, /* East Asian ideograph */ + {"\x65", 0, 0x8C6D}, /* East Asian ideograph */ + {"\x6D", 0, 0x8C73}, /* East Asian ideograph */ + {"\x6F", 0, 0x8C74}, /* East Asian ideograph */ + {"\x71", 0, 0x8C75}, /* East Asian ideograph */ + {"\x73", 0, 0x8C77}, /* East Asian ideograph */ + {"\x74", 0, 0x8C76}, /* East Asian ideograph */ + {"\x7B", 0, 0x8C78}, /* East Asian ideograph */ + {"\x7D", 0, 0x8C7B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page196 = { + marc8_9page196_flat, 0 +}; +/* PAGE 195 */ +struct yaz_iconv_trie_flat marc8_9page195_flat[] = { + {"\x22", 0, 0x8B2B}, /* East Asian ideograph */ + {"\x2A", 0, 0x8B37}, /* East Asian ideograph */ + {"\x2D", 0, 0x8B26}, /* East Asian ideograph */ + {"\x30", 0, 0x8B33}, /* East Asian ideograph */ + {"\x38", 0, 0x8B3E}, /* East Asian ideograph */ + {"\x3A", 0, 0x8B29}, /* East Asian ideograph */ + {"\x42", 0, 0x8B48}, /* East Asian ideograph */ + {"\x44", 0, 0x8B54}, /* East Asian ideograph */ + {"\x48", 0, 0x8B53}, /* East Asian ideograph */ + {"\x49", 0, 0x8B4A}, /* East Asian ideograph */ + {"\x4A", 0, 0x8B46}, /* East Asian ideograph */ + {"\x4D", 0, 0x8B56}, /* East Asian ideograph */ + {"\x4F", 0, 0x8B3F}, /* East Asian ideograph */ + {"\x59", 0, 0x8B59}, /* East Asian ideograph */ + {"\x5F", 0, 0x8B4D}, /* East Asian ideograph */ + {"\x68", 0, 0x8B6B}, /* East Asian ideograph */ + {"\x6B", 0, 0x8B6D}, /* East Asian ideograph */ + {"\x70", 0, 0x8B78}, /* East Asian ideograph */ + {"\x73", 0, 0x8B45}, /* East Asian ideograph */ + {"\x78", 0, 0x8B85}, /* East Asian ideograph */ + {"\x79", 0, 0x8B81}, /* East Asian ideograph */ + {"\x7B", 0, 0x8B7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page195 = { + marc8_9page195_flat, 0 +}; +/* PAGE 194 */ +struct yaz_iconv_trie_flat marc8_9page194_flat[] = { + {"\x21", 0, 0x8ABE}, /* East Asian ideograph */ + {"\x25", 0, 0x8ACF}, /* East Asian ideograph */ + {"\x27", 0, 0x8AC6}, /* East Asian ideograph */ + {"\x2C", 0, 0x8AD1}, /* East Asian ideograph */ + {"\x2D", 0, 0x8AD3}, /* East Asian ideograph */ + {"\x31", 0, 0x8AAF}, /* East Asian ideograph */ + {"\x33", 0, 0x8AD4}, /* East Asian ideograph */ + {"\x36", 0, 0x8ACD}, /* East Asian ideograph */ + {"\x38", 0, 0x8AB9}, /* East Asian ideograph */ + {"\x3B", 0, 0x8ADB}, /* East Asian ideograph */ + {"\x3F", 0, 0x8AD0}, /* East Asian ideograph */ + {"\x40", 0, 0x8AD7}, /* East Asian ideograph */ + {"\x44", 0, 0x8AF3}, /* East Asian ideograph */ + {"\x45", 0, 0x8AE2}, /* East Asian ideograph */ + {"\x49", 0, 0x8B4C}, /* East Asian ideograph */ + {"\x4C", 0, 0x8ADD}, /* East Asian ideograph */ + {"\x4E", 0, 0x8AF6}, /* East Asian ideograph */ + {"\x4F", 0, 0x8AF4}, /* East Asian ideograph */ + {"\x50", 0, 0x8AF5}, /* East Asian ideograph */ + {"\x53", 0, 0x8ADF}, /* East Asian ideograph */ + {"\x56", 0, 0x8B03}, /* East Asian ideograph */ + {"\x57", 0, 0x8AE4}, /* East Asian ideograph */ + {"\x59", 0, 0x8B14}, /* East Asian ideograph */ + {"\x5D", 0, 0x8AFC}, /* East Asian ideograph */ + {"\x62", 0, 0x8ADE}, /* East Asian ideograph */ + {"\x63", 0, 0x8AE1}, /* East Asian ideograph */ + {"\x64", 0, 0x8B07}, /* East Asian ideograph */ + {"\x6B", 0, 0x8B0C}, /* East Asian ideograph */ + {"\x6F", 0, 0x8B1C}, /* East Asian ideograph */ + {"\x73", 0, 0x8B16}, /* East Asian ideograph */ + {"\x76", 0, 0x8B1F}, /* East Asian ideograph */ + {"\x78", 0, 0x8B0B}, /* East Asian ideograph */ + {"\x79", 0, 0x8B06}, /* East Asian ideograph */ + {"\x7A", 0, 0x8B05}, /* East Asian ideograph */ + {"\x7C", 0, 0x8B0F}, /* East Asian ideograph */ + {"\x7D", 0, 0x8B10}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page194 = { + marc8_9page194_flat, 0 +}; +/* PAGE 193 */ +struct yaz_iconv_trie_flat marc8_9page193_flat[] = { + {"\x25", 0, 0x8A22}, /* East Asian ideograph */ + {"\x27", 0, 0x8A51}, /* East Asian ideograph */ + {"\x28", 0, 0x8A4A}, /* East Asian ideograph */ + {"\x2A", 0, 0x8A4E}, /* East Asian ideograph */ + {"\x30", 0, 0x8A56}, /* East Asian ideograph */ + {"\x37", 0, 0x8A57}, /* East Asian ideograph */ + {"\x39", 0, 0x8A48}, /* East Asian ideograph */ + {"\x3B", 0, 0x8A58}, /* East Asian ideograph */ + {"\x3C", 0, 0x8A52}, /* East Asian ideograph */ + {"\x40", 0, 0x8A3D}, /* East Asian ideograph */ + {"\x42", 0, 0x8A45}, /* East Asian ideograph */ + {"\x4F", 0, 0x8A7F}, /* East Asian ideograph */ + {"\x50", 0, 0x8A86}, /* East Asian ideograph */ + {"\x56", 0, 0x8A61}, /* East Asian ideograph */ + {"\x58", 0, 0x8A3E}, /* East Asian ideograph */ + {"\x59", 0, 0x8A82}, /* East Asian ideograph */ + {"\x5D", 0, 0x8A84}, /* East Asian ideograph */ + {"\x5E", 0, 0x8A75}, /* East Asian ideograph */ + {"\x69", 0, 0x8A8F}, /* East Asian ideograph */ + {"\x6F", 0, 0x8A96}, /* East Asian ideograph */ + {"\x71", 0, 0x8A9A}, /* East Asian ideograph */ + {"\x7E", 0, 0x8AB6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page193 = { + marc8_9page193_flat, 0 +}; +/* PAGE 192 */ +struct yaz_iconv_trie_flat marc8_9page192_flat[] = { + {"\x2A", 0, 0x89B8}, /* East Asian ideograph */ + {"\x2B", 0, 0x89B7}, /* East Asian ideograph */ + {"\x2C", 0, 0x89B6}, /* East Asian ideograph */ + {"\x2F", 0, 0x89BC}, /* East Asian ideograph */ + {"\x32", 0, 0x89BF}, /* East Asian ideograph */ + {"\x3A", 0, 0x89D6}, /* East Asian ideograph */ + {"\x3B", 0, 0x89D5}, /* East Asian ideograph */ + {"\x3F", 0, 0x89DA}, /* East Asian ideograph */ + {"\x43", 0, 0x89E5}, /* East Asian ideograph */ + {"\x45", 0, 0x89DC}, /* East Asian ideograph */ + {"\x47", 0, 0x89E1}, /* East Asian ideograph */ + {"\x4C", 0, 0x89E9}, /* East Asian ideograph */ + {"\x4D", 0, 0x89EB}, /* East Asian ideograph */ + {"\x53", 0, 0x89ED}, /* East Asian ideograph */ + {"\x58", 0, 0x89F1}, /* East Asian ideograph */ + {"\x5C", 0, 0x89F3}, /* East Asian ideograph */ + {"\x5E", 0, 0x89F5}, /* East Asian ideograph */ + {"\x60", 0, 0x89F6}, /* East Asian ideograph */ + {"\x64", 0, 0x89F7}, /* East Asian ideograph */ + {"\x6B", 0, 0x89FF}, /* East Asian ideograph */ + {"\x6C", 0, 0x8A06}, /* East Asian ideograph */ + {"\x6D", 0, 0x8A07}, /* East Asian ideograph */ + {"\x6E", 0, 0x8A04}, /* East Asian ideograph */ + {"\x70", 0, 0x8A0F}, /* East Asian ideograph */ + {"\x71", 0, 0x8A11}, /* East Asian ideograph */ + {"\x72", 0, 0x8A12}, /* East Asian ideograph */ + {"\x73", 0, 0x8A0D}, /* East Asian ideograph */ + {"\x7A", 0, 0x8A27}, /* East Asian ideograph */ + {"\x7D", 0, 0x8A29}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page192 = { + marc8_9page192_flat, 0 +}; +/* PAGE 191 */ +struct yaz_iconv_trie_flat marc8_9page191_flat[] = { + {"\x21", 0, 0x894D}, /* East Asian ideograph */ + {"\x23", 0, 0x8962}, /* East Asian ideograph */ + {"\x24", 0, 0x895A}, /* East Asian ideograph */ + {"\x25", 0, 0x895E}, /* East Asian ideograph */ + {"\x29", 0, 0x895B}, /* East Asian ideograph */ + {"\x2C", 0, 0x895C}, /* East Asian ideograph */ + {"\x2D", 0, 0x895D}, /* East Asian ideograph */ + {"\x31", 0, 0x8966}, /* East Asian ideograph */ + {"\x37", 0, 0x896D}, /* East Asian ideograph */ + {"\x3A", 0, 0x896B}, /* East Asian ideograph */ + {"\x3B", 0, 0x896E}, /* East Asian ideograph */ + {"\x3C", 0, 0x896C}, /* East Asian ideograph */ + {"\x41", 0, 0x8976}, /* East Asian ideograph */ + {"\x42", 0, 0x8974}, /* East Asian ideograph */ + {"\x49", 0, 0x897B}, /* East Asian ideograph */ + {"\x4A", 0, 0x897C}, /* East Asian ideograph */ + {"\x53", 0, 0x8984}, /* East Asian ideograph */ + {"\x55", 0, 0x8985}, /* East Asian ideograph */ + {"\x62", 0, 0x8991}, /* East Asian ideograph */ + {"\x64", 0, 0x8997}, /* East Asian ideograph */ + {"\x66", 0, 0x8998}, /* East Asian ideograph */ + {"\x6B", 0, 0x899C}, /* East Asian ideograph */ + {"\x6F", 0, 0x89A1}, /* East Asian ideograph */ + {"\x76", 0, 0x89A5}, /* East Asian ideograph */ + {"\x79", 0, 0x89A9}, /* East Asian ideograph */ + {"\x7D", 0, 0x89AF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page191 = { + marc8_9page191_flat, 0 +}; +/* PAGE 190 */ +struct yaz_iconv_trie_flat marc8_9page190_flat[] = { + {"\x21", 0, 0x88FC}, /* East Asian ideograph */ + {"\x23", 0, 0x88EF}, /* East Asian ideograph */ + {"\x24", 0, 0x8903}, /* East Asian ideograph */ + {"\x2D", 0, 0x8909}, /* East Asian ideograph */ + {"\x2F", 0, 0x8918}, /* East Asian ideograph */ + {"\x35", 0, 0x8906}, /* East Asian ideograph */ + {"\x36", 0, 0x890C}, /* East Asian ideograph */ + {"\x37", 0, 0x8919}, /* East Asian ideograph */ + {"\x3D", 0, 0x890A}, /* East Asian ideograph */ + {"\x43", 0, 0x8915}, /* East Asian ideograph */ + {"\x45", 0, 0x892F}, /* East Asian ideograph */ + {"\x47", 0, 0x8930}, /* East Asian ideograph */ + {"\x4E", 0, 0x8921}, /* East Asian ideograph */ + {"\x4F", 0, 0x8927}, /* East Asian ideograph */ + {"\x51", 0, 0x891F}, /* East Asian ideograph */ + {"\x53", 0, 0x8931}, /* East Asian ideograph */ + {"\x54", 0, 0x891E}, /* East Asian ideograph */ + {"\x56", 0, 0x8926}, /* East Asian ideograph */ + {"\x57", 0, 0x8922}, /* East Asian ideograph */ + {"\x5A", 0, 0x8935}, /* East Asian ideograph */ + {"\x5D", 0, 0x8941}, /* East Asian ideograph */ + {"\x60", 0, 0x8933}, /* East Asian ideograph */ + {"\x66", 0, 0x8954}, /* East Asian ideograph */ + {"\x6F", 0, 0x894F}, /* East Asian ideograph */ + {"\x72", 0, 0x8947}, /* East Asian ideograph */ + {"\x7A", 0, 0x894C}, /* East Asian ideograph */ + {"\x7B", 0, 0x8946}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page190 = { + marc8_9page190_flat, 0 +}; +/* PAGE 189 */ +struct yaz_iconv_trie_flat marc8_9page189_flat[] = { + {"\x28", 0, 0x88A2}, /* East Asian ideograph */ + {"\x2A", 0, 0x88A4}, /* East Asian ideograph */ + {"\x2F", 0, 0x88AA}, /* East Asian ideograph */ + {"\x34", 0, 0x889A}, /* East Asian ideograph */ + {"\x3A", 0, 0x8890}, /* East Asian ideograph */ + {"\x3B", 0, 0x888C}, /* East Asian ideograph */ + {"\x3D", 0, 0x88A0}, /* East Asian ideograph */ + {"\x40", 0, 0x8899}, /* East Asian ideograph */ + {"\x45", 0, 0x8897}, /* East Asian ideograph */ + {"\x48", 0, 0x88C9}, /* East Asian ideograph */ + {"\x49", 0, 0x88BF}, /* East Asian ideograph */ + {"\x4A", 0, 0x88BA}, /* East Asian ideograph */ + {"\x4F", 0, 0x88C0}, /* East Asian ideograph */ + {"\x51", 0, 0x88B2}, /* East Asian ideograph */ + {"\x54", 0, 0x88BC}, /* East Asian ideograph */ + {"\x57", 0, 0x88B7}, /* East Asian ideograph */ + {"\x59", 0, 0x88BD}, /* East Asian ideograph */ + {"\x5A", 0, 0x88C4}, /* East Asian ideograph */ + {"\x5E", 0, 0x88CB}, /* East Asian ideograph */ + {"\x60", 0, 0x88CC}, /* East Asian ideograph */ + {"\x62", 0, 0x88DB}, /* East Asian ideograph */ + {"\x64", 0, 0x88CE}, /* East Asian ideograph */ + {"\x68", 0, 0x88D2}, /* East Asian ideograph */ + {"\x71", 0, 0x88F1}, /* East Asian ideograph */ + {"\x72", 0, 0x88FE}, /* East Asian ideograph */ + {"\x75", 0, 0x88F2}, /* East Asian ideograph */ + {"\x78", 0, 0x8900}, /* East Asian ideograph */ + {"\x7A", 0, 0x88F0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page189 = { + marc8_9page189_flat, 0 +}; +/* PAGE 188 */ +struct yaz_iconv_trie_flat marc8_9page188_flat[] = { + {"\x23", 0, 0x8828}, /* East Asian ideograph */ + {"\x2A", 0, 0x8832}, /* East Asian ideograph */ + {"\x2E", 0, 0x882E}, /* East Asian ideograph */ + {"\x32", 0, 0x882D}, /* East Asian ideograph */ + {"\x3C", 0, 0x883C}, /* East Asian ideograph */ + {"\x41", 0, 0x8841}, /* East Asian ideograph */ + {"\x42", 0, 0x4610}, /* East Asian ideograph */ + {"\x44", 0, 0x8844}, /* East Asian ideograph */ + {"\x4B", 0, 0x8847}, /* East Asian ideograph */ + {"\x51", 0, 0x884A}, /* East Asian ideograph */ + {"\x53", 0, 0x884E}, /* East Asian ideograph */ + {"\x56", 0, 0x8852}, /* East Asian ideograph */ + {"\x57", 0, 0x8850}, /* East Asian ideograph */ + {"\x59", 0, 0x8856}, /* East Asian ideograph */ + {"\x5A", 0, 0x8855}, /* East Asian ideograph */ + {"\x5E", 0, 0x885C}, /* East Asian ideograph */ + {"\x5F", 0, 0x885A}, /* East Asian ideograph */ + {"\x69", 0, 0x8869}, /* East Asian ideograph */ + {"\x6D", 0, 0x886D}, /* East Asian ideograph */ + {"\x6E", 0, 0x887A}, /* East Asian ideograph */ + {"\x71", 0, 0x8875}, /* East Asian ideograph */ + {"\x75", 0, 0x8872}, /* East Asian ideograph */ + {"\x79", 0, 0x887D}, /* East Asian ideograph */ + {"\x7C", 0, 0x8879}, /* East Asian ideograph */ + {"\x7D", 0, 0x887F}, /* East Asian ideograph */ + {"\x7E", 0, 0x887E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page188 = { + marc8_9page188_flat, 0 +}; +/* PAGE 187 */ +struct yaz_iconv_trie_flat marc8_9page187_flat[] = { + {"\x24", 0, 0x87BD}, /* East Asian ideograph */ + {"\x2C", 0, 0x87EE}, /* East Asian ideograph */ + {"\x30", 0, 0x87F3}, /* East Asian ideograph */ + {"\x31", 0, 0x87F0}, /* East Asian ideograph */ + {"\x34", 0, 0x87EA}, /* East Asian ideograph */ + {"\x36", 0, 0x87DB}, /* East Asian ideograph */ + {"\x37", 0, 0x87E2}, /* East Asian ideograph */ + {"\x39", 0, 0x87EB}, /* East Asian ideograph */ + {"\x3A", 0, 0x87D6}, /* East Asian ideograph */ + {"\x3F", 0, 0x87F5}, /* East Asian ideograph */ + {"\x47", 0, 0x87E0}, /* East Asian ideograph */ + {"\x48", 0, 0x87D3}, /* East Asian ideograph */ + {"\x49", 0, 0x87DC}, /* East Asian ideograph */ + {"\x4C", 0, 0x87E3}, /* East Asian ideograph */ + {"\x4D", 0, 0x8801}, /* East Asian ideograph */ + {"\x4F", 0, 0x8803}, /* East Asian ideograph */ + {"\x50", 0, 0x880A}, /* East Asian ideograph */ + {"\x55", 0, 0x87F6}, /* East Asian ideograph */ + {"\x57", 0, 0x87F7}, /* East Asian ideograph */ + {"\x5C", 0, 0x880B}, /* East Asian ideograph */ + {"\x5D", 0, 0x8806}, /* East Asian ideograph */ + {"\x5F", 0, 0x87FE}, /* East Asian ideograph */ + {"\x61", 0, 0x8810}, /* East Asian ideograph */ + {"\x63", 0, 0x8819}, /* East Asian ideograph */ + {"\x64", 0, 0x8811}, /* East Asian ideograph */ + {"\x66", 0, 0x8818}, /* East Asian ideograph */ + {"\x6A", 0, 0x8813}, /* East Asian ideograph */ + {"\x6B", 0, 0x8816}, /* East Asian ideograph */ + {"\x72", 0, 0x8834}, /* East Asian ideograph */ + {"\x73", 0, 0x881C}, /* East Asian ideograph */ + {"\x7A", 0, 0x881B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page187 = { + marc8_9page187_flat, 0 +}; +/* PAGE 186 */ +struct yaz_iconv_trie_flat marc8_9page186_flat[] = { + {"\x21", 0, 0x8761}, /* East Asian ideograph */ + {"\x24", 0, 0x876A}, /* East Asian ideograph */ + {"\x27", 0, 0x874E}, /* East Asian ideograph */ + {"\x28", 0, 0x875F}, /* East Asian ideograph */ + {"\x2D", 0, 0x876F}, /* East Asian ideograph */ + {"\x2E", 0, 0x875D}, /* East Asian ideograph */ + {"\x30", 0, 0x876E}, /* East Asian ideograph */ + {"\x33", 0, 0x874D}, /* East Asian ideograph */ + {"\x35", 0, 0x8753}, /* East Asian ideograph */ + {"\x3A", 0, 0x87A3}, /* East Asian ideograph */ + {"\x3D", 0, 0x8793}, /* East Asian ideograph */ + {"\x45", 0, 0x8799}, /* East Asian ideograph */ + {"\x48", 0, 0x8788}, /* East Asian ideograph */ + {"\x4C", 0, 0x8798}, /* East Asian ideograph */ + {"\x53", 0, 0x8785}, /* East Asian ideograph */ + {"\x54", 0, 0x878B}, /* East Asian ideograph */ + {"\x55", 0, 0x8784}, /* East Asian ideograph */ + {"\x58", 0, 0x87A9}, /* East Asian ideograph */ + {"\x5D", 0, 0x8789}, /* East Asian ideograph */ + {"\x60", 0, 0x87AD}, /* East Asian ideograph */ + {"\x66", 0, 0x87BE}, /* East Asian ideograph */ + {"\x6E", 0, 0x87C4}, /* East Asian ideograph */ + {"\x6F", 0, 0x87AF}, /* East Asian ideograph */ + {"\x72", 0, 0x87AC}, /* East Asian ideograph */ + {"\x78", 0, 0x87AE}, /* East Asian ideograph */ + {"\x7E", 0, 0x87BF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page186 = { + marc8_9page186_flat, 0 +}; +/* PAGE 185 */ +struct yaz_iconv_trie_flat marc8_9page185_flat[] = { + {"\x25", 0, 0x870B}, /* East Asian ideograph */ + {"\x2F", 0, 0x86FA}, /* East Asian ideograph */ + {"\x33", 0, 0x86F8}, /* East Asian ideograph */ + {"\x34", 0, 0x8706}, /* East Asian ideograph */ + {"\x36", 0, 0x870E}, /* East Asian ideograph */ + {"\x38", 0, 0x8709}, /* East Asian ideograph */ + {"\x3A", 0, 0x870A}, /* East Asian ideograph */ + {"\x3E", 0, 0x870D}, /* East Asian ideograph */ + {"\x42", 0, 0x874A}, /* East Asian ideograph */ + {"\x43", 0, 0x8723}, /* East Asian ideograph */ + {"\x44", 0, 0x8737}, /* East Asian ideograph */ + {"\x45", 0, 0x8728}, /* East Asian ideograph */ + {"\x49", 0, 0x8740}, /* East Asian ideograph */ + {"\x4B", 0, 0x872E}, /* East Asian ideograph */ + {"\x4C", 0, 0x873D}, /* East Asian ideograph */ + {"\x4E", 0, 0x871E}, /* East Asian ideograph */ + {"\x53", 0, 0x8743}, /* East Asian ideograph */ + {"\x55", 0, 0x8744}, /* East Asian ideograph */ + {"\x57", 0, 0x873E}, /* East Asian ideograph */ + {"\x59", 0, 0x8729}, /* East Asian ideograph */ + {"\x5A", 0, 0x8739}, /* East Asian ideograph */ + {"\x5F", 0, 0x871A}, /* East Asian ideograph */ + {"\x64", 0, 0x8731}, /* East Asian ideograph */ + {"\x65", 0, 0x8711}, /* East Asian ideograph */ + {"\x66", 0, 0x8712}, /* East Asian ideograph */ + {"\x6B", 0, 0x874F}, /* East Asian ideograph */ + {"\x6C", 0, 0x8771}, /* East Asian ideograph */ + {"\x6D", 0, 0x8763}, /* East Asian ideograph */ + {"\x71", 0, 0x8764}, /* East Asian ideograph */ + {"\x73", 0, 0x8765}, /* East Asian ideograph */ + {"\x74", 0, 0x877D}, /* East Asian ideograph */ + {"\x79", 0, 0x8758}, /* East Asian ideograph */ + {"\x7B", 0, 0x877B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page185 = { + marc8_9page185_flat, 0 +}; +/* PAGE 184 */ +struct yaz_iconv_trie_flat marc8_9page184_flat[] = { + {"\x25", 0, 0x867A}, /* East Asian ideograph */ + {"\x26", 0, 0x8673}, /* East Asian ideograph */ + {"\x27", 0, 0x867C}, /* East Asian ideograph */ + {"\x2E", 0, 0x8696}, /* East Asian ideograph */ + {"\x2F", 0, 0x86A8}, /* East Asian ideograph */ + {"\x36", 0, 0x8691}, /* East Asian ideograph */ + {"\x37", 0, 0x869C}, /* East Asian ideograph */ + {"\x39", 0, 0x8698}, /* East Asian ideograph */ + {"\x3C", 0, 0x868D}, /* East Asian ideograph */ + {"\x3D", 0, 0x868B}, /* East Asian ideograph */ + {"\x40", 0, 0x86A6}, /* East Asian ideograph */ + {"\x42", 0, 0x869D}, /* East Asian ideograph */ + {"\x46", 0, 0x86A0}, /* East Asian ideograph */ + {"\x48", 0, 0x86A7}, /* East Asian ideograph */ + {"\x4B", 0, 0x86BF}, /* East Asian ideograph */ + {"\x58", 0, 0x86BA}, /* East Asian ideograph */ + {"\x59", 0, 0x86B0}, /* East Asian ideograph */ + {"\x60", 0, 0x86B3}, /* East Asian ideograph */ + {"\x62", 0, 0x86C9}, /* East Asian ideograph */ + {"\x63", 0, 0x86B4}, /* East Asian ideograph */ + {"\x67", 0, 0x86D8}, /* East Asian ideograph */ + {"\x6E", 0, 0x86E3}, /* East Asian ideograph */ + {"\x6F", 0, 0x86E9}, /* East Asian ideograph */ + {"\x71", 0, 0x86EC}, /* East Asian ideograph */ + {"\x74", 0, 0x86D5}, /* East Asian ideograph */ + {"\x77", 0, 0x86D0}, /* East Asian ideograph */ + {"\x7A", 0, 0x86D1}, /* East Asian ideograph */ + {"\x7E", 0, 0x86DE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page184 = { + marc8_9page184_flat, 0 +}; +/* PAGE 183 */ +struct yaz_iconv_trie_flat marc8_9page183_flat[] = { + {"\x22", 0, 0x8627}, /* East Asian ideograph */ + {"\x26", 0, 0x8629}, /* East Asian ideograph */ + {"\x32", 0, 0x8637}, /* East Asian ideograph */ + {"\x38", 0, 0x8636}, /* East Asian ideograph */ + {"\x3E", 0, 0x863C}, /* East Asian ideograph */ + {"\x3F", 0, 0x8640}, /* East Asian ideograph */ + {"\x40", 0, 0x863A}, /* East Asian ideograph */ + {"\x4C", 0, 0x8645}, /* East Asian ideograph */ + {"\x59", 0, 0x864D}, /* East Asian ideograph */ + {"\x5A", 0, 0x8653}, /* East Asian ideograph */ + {"\x5E", 0, 0x8659}, /* East Asian ideograph */ + {"\x66", 0, 0x8661}, /* East Asian ideograph */ + {"\x69", 0, 0x8662}, /* East Asian ideograph */ + {"\x6A", 0, 0x8663}, /* East Asian ideograph */ + {"\x71", 0, 0x8669}, /* East Asian ideograph */ + {"\x78", 0, 0x866C}, /* East Asian ideograph */ + {"\x7B", 0, 0x8672}, /* East Asian ideograph */ + {"\x7C", 0, 0x866F}, /* East Asian ideograph */ + {"\x7E", 0, 0x867B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page183 = { + marc8_9page183_flat, 0 +}; +/* PAGE 182 */ +struct yaz_iconv_trie_flat marc8_9page182_flat[] = { + {"\x24", 0, 0x8624}, /* East Asian ideograph */ + {"\x28", 0, 0x85F7}, /* East Asian ideograph */ + {"\x2C", 0, 0x85E6}, /* East Asian ideograph */ + {"\x2E", 0, 0x85D4}, /* East Asian ideograph */ + {"\x31", 0, 0x85ED}, /* East Asian ideograph */ + {"\x39", 0, 0x85DA}, /* East Asian ideograph */ + {"\x43", 0, 0x85DF}, /* East Asian ideograph */ + {"\x45", 0, 0x85D8}, /* East Asian ideograph */ + {"\x4C", 0, 0x85DC}, /* East Asian ideograph */ + {"\x4E", 0, 0x85F5}, /* East Asian ideograph */ + {"\x52", 0, 0x8622}, /* East Asian ideograph */ + {"\x54", 0, 0x8610}, /* East Asian ideograph */ + {"\x57", 0, 0x85FC}, /* East Asian ideograph */ + {"\x5B", 0, 0x85FF}, /* East Asian ideograph */ + {"\x5E", 0, 0x85FE}, /* East Asian ideograph */ + {"\x60", 0, 0x8600}, /* East Asian ideograph */ + {"\x68", 0, 0x8604}, /* East Asian ideograph */ + {"\x71", 0, 0x8605}, /* East Asian ideograph */ + {"\x75", 0, 0x862B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page182 = { + marc8_9page182_flat, 0 +}; +/* PAGE 181 */ +struct yaz_iconv_trie_flat marc8_9page181_flat[] = { + {"\x25", 0, 0x8580}, /* East Asian ideograph */ + {"\x28", 0, 0x858F}, /* East Asian ideograph */ + {"\x2D", 0, 0x8579}, /* East Asian ideograph */ + {"\x32", 0, 0x857F}, /* East Asian ideograph */ + {"\x33", 0, 0x8577}, /* East Asian ideograph */ + {"\x34", 0, 0x8578}, /* East Asian ideograph */ + {"\x35", 0, 0x8598}, /* East Asian ideograph */ + {"\x36", 0, 0x857B}, /* East Asian ideograph */ + {"\x3D", 0, 0x85A4}, /* East Asian ideograph */ + {"\x42", 0, 0x857A}, /* East Asian ideograph */ + {"\x44", 0, 0x8597}, /* East Asian ideograph */ + {"\x45", 0, 0x8557}, /* East Asian ideograph */ + {"\x49", 0, 0x85A8}, /* East Asian ideograph */ + {"\x4E", 0, 0x8586}, /* East Asian ideograph */ + {"\x50", 0, 0x8599}, /* East Asian ideograph */ + {"\x51", 0, 0x858A}, /* East Asian ideograph */ + {"\x52", 0, 0x85A2}, /* East Asian ideograph */ + {"\x54", 0, 0x8590}, /* East Asian ideograph */ + {"\x56", 0, 0x8585}, /* East Asian ideograph */ + {"\x57", 0, 0x8588}, /* East Asian ideograph */ + {"\x5A", 0, 0x85B8}, /* East Asian ideograph */ + {"\x5D", 0, 0x85C1}, /* East Asian ideograph */ + {"\x61", 0, 0x85BA}, /* East Asian ideograph */ + {"\x68", 0, 0x85CE}, /* East Asian ideograph */ + {"\x6A", 0, 0x85C2}, /* East Asian ideograph */ + {"\x6B", 0, 0x85B7}, /* East Asian ideograph */ + {"\x6C", 0, 0x85B9}, /* East Asian ideograph */ + {"\x6E", 0, 0x85B3}, /* East Asian ideograph */ + {"\x6F", 0, 0x85BD}, /* East Asian ideograph */ + {"\x70", 0, 0x85C4}, /* East Asian ideograph */ + {"\x72", 0, 0x85BF}, /* East Asian ideograph */ + {"\x75", 0, 0x85BE}, /* East Asian ideograph */ + {"\x7E", 0, 0x85B6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page181 = { + marc8_9page181_flat, 0 +}; +/* PAGE 180 */ +struct yaz_iconv_trie_flat marc8_9page180_flat[] = { + {"\x24", 0, 0x851E}, /* East Asian ideograph */ + {"\x2A", 0, 0x8518}, /* East Asian ideograph */ + {"\x2D", 0, 0x8526}, /* East Asian ideograph */ + {"\x2E", 0, 0x8507}, /* East Asian ideograph (variant of EACC 2F252E) */ + {"\x2F", 0, 0x84E7}, /* East Asian ideograph */ + {"\x34", 0, 0x84F0}, /* East Asian ideograph */ + {"\x35", 0, 0x84EF}, /* East Asian ideograph */ + {"\x36", 0, 0x8556}, /* East Asian ideograph */ + {"\x46", 0, 0x8541}, /* East Asian ideograph */ + {"\x4B", 0, 0x8558}, /* East Asian ideograph */ + {"\x4D", 0, 0x8553}, /* East Asian ideograph */ + {"\x4E", 0, 0x8561}, /* East Asian ideograph */ + {"\x4F", 0, 0x8540}, /* East Asian ideograph */ + {"\x5A", 0, 0x8546}, /* East Asian ideograph */ + {"\x5C", 0, 0x8564}, /* East Asian ideograph */ + {"\x5D", 0, 0x855E}, /* East Asian ideograph */ + {"\x5E", 0, 0x8573}, /* East Asian ideograph */ + {"\x5F", 0, 0x8551}, /* East Asian ideograph */ + {"\x64", 0, 0x8562}, /* East Asian ideograph */ + {"\x6B", 0, 0x8563}, /* East Asian ideograph */ + {"\x6C", 0, 0x848D}, /* East Asian ideograph */ + {"\x6D", 0, 0x8542}, /* East Asian ideograph */ + {"\x71", 0, 0x854E}, /* East Asian ideograph */ + {"\x74", 0, 0x8555}, /* East Asian ideograph */ + {"\x76", 0, 0x855D}, /* East Asian ideograph */ + {"\x77", 0, 0x858C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page180 = { + marc8_9page180_flat, 0 +}; +/* PAGE 179 */ +struct yaz_iconv_trie_flat marc8_9page179_flat[] = { + {"\x21", 0, 0x8495}, /* East Asian ideograph */ + {"\x27", 0, 0x84AF}, /* East Asian ideograph */ + {"\x29", 0, 0x84AD}, /* East Asian ideograph */ + {"\x32", 0, 0x84A8}, /* East Asian ideograph */ + {"\x33", 0, 0x84D6}, /* East Asian ideograph */ + {"\x35", 0, 0x84DA}, /* East Asian ideograph */ + {"\x3A", 0, 0x8493}, /* East Asian ideograph */ + {"\x3F", 0, 0x84CF}, /* East Asian ideograph */ + {"\x41", 0, 0x84CA}, /* East Asian ideograph */ + {"\x46", 0, 0x8506}, /* East Asian ideograph */ + {"\x47", 0, 0x850B}, /* East Asian ideograph */ + {"\x4D", 0, 0x8500}, /* East Asian ideograph */ + {"\x59", 0, 0x851F}, /* East Asian ideograph */ + {"\x5C", 0, 0x853B}, /* East Asian ideograph */ + {"\x5F", 0, 0x84EA}, /* East Asian ideograph */ + {"\x66", 0, 0x84F4}, /* East Asian ideograph */ + {"\x6A", 0, 0x850C}, /* East Asian ideograph */ + {"\x72", 0, 0x852F}, /* East Asian ideograph */ + {"\x75", 0, 0x8515}, /* East Asian ideograph */ + {"\x77", 0, 0x84F7}, /* East Asian ideograph */ + {"\x7A", 0, 0x84FC}, /* East Asian ideograph */ + {"\x7C", 0, 0x84EB}, /* East Asian ideograph */ + {"\x7D", 0, 0x84FD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page179 = { + marc8_9page179_flat, 0 +}; +/* PAGE 178 */ +struct yaz_iconv_trie_flat marc8_9page178_flat[] = { + {"\x24", 0, 0x8432}, /* East Asian ideograph */ + {"\x29", 0, 0x845C}, /* East Asian ideograph */ + {"\x2D", 0, 0x842A}, /* East Asian ideograph */ + {"\x2E", 0, 0x8429}, /* East Asian ideograph */ + {"\x32", 0, 0x8471}, /* East Asian ideograph */ + {"\x35", 0, 0x845F}, /* East Asian ideograph */ + {"\x36", 0, 0x8460}, /* East Asian ideograph */ + {"\x37", 0, 0x846E}, /* East Asian ideograph */ + {"\x3A", 0, 0x8446}, /* East Asian ideograph */ + {"\x3C", 0, 0x8452}, /* East Asian ideograph */ + {"\x3F", 0, 0x844A}, /* East Asian ideograph */ + {"\x45", 0, 0x844E}, /* East Asian ideograph */ + {"\x49", 0, 0x8497}, /* East Asian ideograph */ + {"\x50", 0, 0x84A1}, /* East Asian ideograph */ + {"\x53", 0, 0x849F}, /* East Asian ideograph */ + {"\x56", 0, 0x84BA}, /* East Asian ideograph */ + {"\x58", 0, 0x84B9}, /* East Asian ideograph */ + {"\x5C", 0, 0x84B4}, /* East Asian ideograph */ + {"\x5E", 0, 0x84C1}, /* East Asian ideograph */ + {"\x5F", 0, 0x84BB}, /* East Asian ideograph */ + {"\x68", 0, 0x84CD}, /* East Asian ideograph */ + {"\x70", 0, 0x84B1}, /* East Asian ideograph */ + {"\x71", 0, 0x849D}, /* East Asian ideograph */ + {"\x72", 0, 0x84D0}, /* East Asian ideograph */ + {"\x75", 0, 0x8494}, /* East Asian ideograph */ + {"\x79", 0, 0x84C7}, /* East Asian ideograph */ + {"\x79", 0, 0x84C7}, /* East Asian ideograph */ + {"\x7A", 0, 0x84BD}, /* East Asian ideograph */ + {"\x7C", 0, 0x84C2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page178 = { + marc8_9page178_flat, 0 +}; +/* PAGE 177 */ +struct yaz_iconv_trie_flat marc8_9page177_flat[] = { + {"\x23", 0, 0x83FD}, /* East Asian ideograph */ + {"\x25", 0, 0x841E}, /* East Asian ideograph */ + {"\x29", 0, 0x83C9}, /* East Asian ideograph */ + {"\x2A", 0, 0x83DF}, /* East Asian ideograph */ + {"\x2C", 0, 0x841F}, /* East Asian ideograph */ + {"\x2E", 0, 0x840F}, /* East Asian ideograph */ + {"\x30", 0, 0x8411}, /* East Asian ideograph */ + {"\x36", 0, 0x839A}, /* East Asian ideograph */ + {"\x3C", 0, 0x83F3}, /* East Asian ideograph */ + {"\x43", 0, 0x83D1}, /* East Asian ideograph */ + {"\x48", 0, 0x8453}, /* East Asian ideograph */ + {"\x4A", 0, 0x848E}, /* East Asian ideograph */ + {"\x4C", 0, 0x8439}, /* East Asian ideograph */ + {"\x4D", 0, 0x8476}, /* East Asian ideograph */ + {"\x4E", 0, 0x8479}, /* East Asian ideograph */ + {"\x5C", 0, 0x8451}, /* East Asian ideograph */ + {"\x5F", 0, 0x847D}, /* East Asian ideograph */ + {"\x62", 0, 0x845A}, /* East Asian ideograph */ + {"\x66", 0, 0x8459}, /* East Asian ideograph */ + {"\x69", 0, 0x8473}, /* East Asian ideograph */ + {"\x6E", 0, 0x843E}, /* East Asian ideograph */ + {"\x71", 0, 0x846D}, /* East Asian ideograph */ + {"\x78", 0, 0x847A}, /* East Asian ideograph */ + {"\x7B", 0, 0x8484}, /* East Asian ideograph */ + {"\x7C", 0, 0x8478}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page177 = { + marc8_9page177_flat, 0 +}; +/* PAGE 176 */ +struct yaz_iconv_trie_dir marc8_9page176_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {178, 0, 0}, + {179, 0, 0}, + {180, 0, 0}, + {181, 0, 0}, + {182, 0, 0}, + {183, 0, 0}, + {184, 0, 0}, + {185, 0, 0}, + {186, 0, 0}, + {187, 0, 0}, + {188, 0, 0}, + {189, 0, 0}, + {190, 0, 0}, + {191, 0, 0}, + {192, 0, 0}, + {193, 0, 0}, + {194, 0, 0}, + {195, 0, 0}, + {196, 0, 0}, + {197, 0, 0}, + {198, 0, 0}, + {199, 0, 0}, + {200, 0, 0}, + {201, 0, 0}, + {202, 0, 0}, + {203, 0, 0}, + {204, 0, 0}, + {205, 0, 0}, + {206, 0, 0}, + {207, 0, 0}, + {208, 0, 0}, + {209, 0, 0}, + {210, 0, 0}, + {211, 0, 0}, + {212, 0, 0}, + {213, 0, 0}, + {214, 0, 0}, + {215, 0, 0}, + {216, 0, 0}, + {217, 0, 0}, + {218, 0, 0}, + {219, 0, 0}, + {220, 0, 0}, + {221, 0, 0}, + {222, 0, 0}, + {223, 0, 0}, + {224, 0, 0}, + {225, 0, 0}, + {226, 0, 0}, + {227, 0, 0}, + {228, 0, 0}, + {229, 0, 0}, + {230, 0, 0}, + {231, 0, 0}, + {232, 0, 0}, + {233, 0, 0}, + {234, 0, 0}, + {235, 0, 0}, + {236, 0, 0}, + {237, 0, 0}, + {238, 0, 0}, + {239, 0, 0}, + {240, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page176 = { + 0, marc8_9page176_dir +}; +/* PAGE 175 */ +struct yaz_iconv_trie_flat marc8_9page175_flat[] = { + {"\x21", 0, 0x837F}, /* East Asian ideograph */ + {"\x22", 0, 0x8399}, /* East Asian ideograph */ + {"\x23", 0, 0x83A6}, /* East Asian ideograph */ + {"\x25", 0, 0x8387}, /* East Asian ideograph */ + {"\x26", 0, 0x83B9}, /* East Asian ideograph */ + {"\x2B", 0, 0x83A9}, /* East Asian ideograph */ + {"\x2F", 0, 0x839B}, /* East Asian ideograph */ + {"\x33", 0, 0x83AA}, /* East Asian ideograph */ + {"\x37", 0, 0x839C}, /* East Asian ideograph */ + {"\x38", 0, 0x839F}, /* East Asian ideograph */ + {"\x41", 0, 0x83CF}, /* East Asian ideograph */ + {"\x43", 0, 0x83F9}, /* East Asian ideograph */ + {"\x45", 0, 0x8421}, /* East Asian ideograph */ + {"\x51", 0, 0x8423}, /* East Asian ideograph */ + {"\x52", 0, 0x83EA}, /* East Asian ideograph */ + {"\x53", 0, 0x8413}, /* East Asian ideograph */ + {"\x56", 0, 0x83FC}, /* East Asian ideograph */ + {"\x57", 0, 0x83F6}, /* East Asian ideograph */ + {"\x59", 0, 0x8410}, /* East Asian ideograph */ + {"\x5A", 0, 0x83E1}, /* East Asian ideograph */ + {"\x60", 0, 0x83C6}, /* East Asian ideograph */ + {"\x61", 0, 0x8407}, /* East Asian ideograph */ + {"\x63", 0, 0x83EB}, /* East Asian ideograph */ + {"\x6A", 0, 0x83BF}, /* East Asian ideograph */ + {"\x6B", 0, 0x83E2}, /* East Asian ideograph */ + {"\x6D", 0, 0x8401}, /* East Asian ideograph */ + {"\x71", 0, 0x83D8}, /* East Asian ideograph */ + {"\x72", 0, 0x83E5}, /* East Asian ideograph */ + {"\x74", 0, 0x8418}, /* East Asian ideograph */ + {"\x79", 0, 0x83CE}, /* East Asian ideograph */ + {"\x7B", 0, 0x83D3}, /* East Asian ideograph */ + {"\x7D", 0, 0x83D6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page175 = { + marc8_9page175_flat, 0 +}; +/* PAGE 174 */ +struct yaz_iconv_trie_flat marc8_9page174_flat[] = { + {"\x21", 0, 0x830C}, /* East Asian ideograph */ + {"\x22", 0, 0x82FB}, /* East Asian ideograph */ + {"\x24", 0, 0x82FD}, /* East Asian ideograph */ + {"\x26", 0, 0x8333}, /* East Asian ideograph */ + {"\x29", 0, 0x8328}, /* East Asian ideograph */ + {"\x2B", 0, 0x8344}, /* East Asian ideograph */ + {"\x2E", 0, 0x8351}, /* East Asian ideograph */ + {"\x35", 0, 0x831B}, /* East Asian ideograph */ + {"\x3B", 0, 0x8356}, /* East Asian ideograph */ + {"\x3F", 0, 0x8322}, /* East Asian ideograph */ + {"\x40", 0, 0x832C}, /* East Asian ideograph */ + {"\x48", 0, 0x833C}, /* East Asian ideograph */ + {"\x4A", 0, 0x834D}, /* East Asian ideograph */ + {"\x4D", 0, 0x8343}, /* East Asian ideograph (variant of EACC 4C7D4D) */ + {"\x52", 0, 0x832F}, /* East Asian ideograph */ + {"\x53", 0, 0x8348}, /* East Asian ideograph */ + {"\x54", 0, 0x8312}, /* East Asian ideograph */ + {"\x56", 0, 0x8316}, /* East Asian ideograph */ + {"\x58", 0, 0x831A}, /* East Asian ideograph */ + {"\x5F", 0, 0x8347}, /* East Asian ideograph */ + {"\x62", 0, 0x83A8}, /* East Asian ideograph */ + {"\x67", 0, 0x83AD}, /* East Asian ideograph */ + {"\x6D", 0, 0x8373}, /* East Asian ideograph */ + {"\x72", 0, 0x83B0}, /* East Asian ideograph */ + {"\x76", 0, 0x831D}, /* East Asian ideograph */ + {"\x7A", 0, 0x838F}, /* East Asian ideograph */ + {"\x7C", 0, 0x8395}, /* East Asian ideograph */ + {"\x7E", 0, 0x8375}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page174 = { + marc8_9page174_flat, 0 +}; +/* PAGE 173 */ +struct yaz_iconv_trie_flat marc8_9page173_flat[] = { + {"\x24", 0, 0x828E}, /* East Asian ideograph */ + {"\x25", 0, 0x8291}, /* East Asian ideograph */ + {"\x27", 0, 0x828F}, /* East Asian ideograph */ + {"\x28", 0, 0x8284}, /* East Asian ideograph */ + {"\x2D", 0, 0x8283}, /* East Asian ideograph */ + {"\x2E", 0, 0x828A}, /* East Asian ideograph */ + {"\x31", 0, 0x82AF}, /* East Asian ideograph */ + {"\x34", 0, 0x82A7}, /* East Asian ideograph */ + {"\x38", 0, 0x82AB}, /* East Asian ideograph */ + {"\x3A", 0, 0x82B0}, /* East Asian ideograph */ + {"\x3C", 0, 0x82A4}, /* East Asian ideograph */ + {"\x3F", 0, 0x829A}, /* East Asian ideograph */ + {"\x42", 0, 0x82A3}, /* East Asian ideograph */ + {"\x44", 0, 0x82B7}, /* East Asian ideograph */ + {"\x45", 0, 0x82AE}, /* East Asian ideograph (variant of EACC 4C7C45) */ + {"\x46", 0, 0x82A9}, /* East Asian ideograph */ + {"\x49", 0, 0x82BC}, /* East Asian ideograph */ + {"\x4C", 0, 0x82A8}, /* East Asian ideograph */ + {"\x4E", 0, 0x82B4}, /* East Asian ideograph */ + {"\x50", 0, 0x82A1}, /* East Asian ideograph */ + {"\x53", 0, 0x82AA}, /* East Asian ideograph */ + {"\x55", 0, 0x82D9}, /* East Asian ideograph */ + {"\x57", 0, 0x82FE}, /* East Asian ideograph */ + {"\x5A", 0, 0x82E0}, /* East Asian ideograph */ + {"\x5B", 0, 0x82D0}, /* East Asian ideograph */ + {"\x5C", 0, 0x8300}, /* East Asian ideograph */ + {"\x5F", 0, 0x82EA}, /* East Asian ideograph */ + {"\x60", 0, 0x82F7}, /* East Asian ideograph */ + {"\x62", 0, 0x82EF}, /* East Asian ideograph */ + {"\x63", 0, 0x833A}, /* East Asian ideograph */ + {"\x64", 0, 0x82E4}, /* East Asian ideograph */ + {"\x65", 0, 0x82D5}, /* East Asian ideograph */ + {"\x67", 0, 0x8307}, /* East Asian ideograph */ + {"\x68", 0, 0x82FA}, /* East Asian ideograph */ + {"\x69", 0, 0x82F4}, /* East Asian ideograph */ + {"\x6A", 0, 0x82E2}, /* East Asian ideograph */ + {"\x6D", 0, 0x82D2}, /* East Asian ideograph */ + {"\x6E", 0, 0x8314}, /* East Asian ideograph */ + {"\x71", 0, 0x82EB}, /* East Asian ideograph */ + {"\x72", 0, 0x82D8}, /* East Asian ideograph */ + {"\x73", 0, 0x82E1}, /* East Asian ideograph */ + {"\x75", 0, 0x82F6}, /* East Asian ideograph */ + {"\x7B", 0, 0x8310}, /* East Asian ideograph */ + {"\x7C", 0, 0x82F3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page173 = { + marc8_9page173_flat, 0 +}; +/* PAGE 172 */ +struct yaz_iconv_trie_flat marc8_9page172_flat[] = { + {"\x27", 0, 0x821D}, /* East Asian ideograph */ + {"\x29", 0, 0x8220}, /* East Asian ideograph */ + {"\x2E", 0, 0x822D}, /* East Asian ideograph */ + {"\x2F", 0, 0x822F}, /* East Asian ideograph */ + {"\x32", 0, 0x8238}, /* East Asian ideograph */ + {"\x34", 0, 0x823A}, /* East Asian ideograph */ + {"\x35", 0, 0x8233}, /* East Asian ideograph */ + {"\x36", 0, 0x8234}, /* East Asian ideograph */ + {"\x3A", 0, 0x8232}, /* East Asian ideograph */ + {"\x42", 0, 0x8248}, /* East Asian ideograph */ + {"\x43", 0, 0x8249}, /* East Asian ideograph */ + {"\x45", 0, 0x8244}, /* East Asian ideograph */ + {"\x47", 0, 0x8240}, /* East Asian ideograph */ + {"\x48", 0, 0x8241}, /* East Asian ideograph */ + {"\x4A", 0, 0x8245}, /* East Asian ideograph */ + {"\x4B", 0, 0x824B}, /* East Asian ideograph */ + {"\x50", 0, 0x824F}, /* East Asian ideograph */ + {"\x53", 0, 0x824E}, /* East Asian ideograph */ + {"\x56", 0, 0x8256}, /* East Asian ideograph */ + {"\x57", 0, 0x8257}, /* East Asian ideograph */ + {"\x5E", 0, 0x825A}, /* East Asian ideograph */ + {"\x62", 0, 0x825F}, /* East Asian ideograph */ + {"\x67", 0, 0x8262}, /* East Asian ideograph */ + {"\x6B", 0, 0x8268}, /* East Asian ideograph */ + {"\x6F", 0, 0x826D}, /* East Asian ideograph */ + {"\x77", 0, 0x8278}, /* East Asian ideograph */ + {"\x7D", 0, 0x827F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page172 = { + marc8_9page172_flat, 0 +}; +/* PAGE 171 */ +struct yaz_iconv_trie_flat marc8_9page171_flat[] = { + {"\x2C", 0, 0x81B5}, /* East Asian ideograph */ + {"\x2E", 0, 0x81B0}, /* East Asian ideograph */ + {"\x2F", 0, 0x81B4}, /* East Asian ideograph */ + {"\x33", 0, 0x81B7}, /* East Asian ideograph */ + {"\x37", 0, 0x81BB}, /* East Asian ideograph */ + {"\x38", 0, 0x81C1}, /* East Asian ideograph */ + {"\x39", 0, 0x81CC}, /* East Asian ideograph */ + {"\x3A", 0, 0x81CA}, /* East Asian ideograph */ + {"\x3B", 0, 0x81C4}, /* East Asian ideograph */ + {"\x40", 0, 0x81D1}, /* East Asian ideograph */ + {"\x41", 0, 0x81CE}, /* East Asian ideograph */ + {"\x43", 0, 0x81D0}, /* East Asian ideograph */ + {"\x4B", 0, 0x81DB}, /* East Asian ideograph */ + {"\x4F", 0, 0x81DD}, /* East Asian ideograph */ + {"\x53", 0, 0x81DE}, /* East Asian ideograph */ + {"\x56", 0, 0x81E0}, /* East Asian ideograph */ + {"\x57", 0, 0x81E2}, /* East Asian ideograph */ + {"\x5B", 0, 0x81E7}, /* East Asian ideograph */ + {"\x60", 0, 0x81EF}, /* East Asian ideograph */ + {"\x65", 0, 0x81F2}, /* East Asian ideograph */ + {"\x68", 0, 0x81F6}, /* East Asian ideograph */ + {"\x70", 0, 0x8201}, /* East Asian ideograph */ + {"\x72", 0, 0x8201}, /* East Asian ideograph */ + {"\x74", 0, 0x8203}, /* East Asian ideograph */ + {"\x75", 0, 0x8204}, /* East Asian ideograph */ + {"\x77", 0, 0x820B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page171 = { + marc8_9page171_flat, 0 +}; +/* PAGE 170 */ +struct yaz_iconv_trie_flat marc8_9page170_flat[] = { + {"\x25", 0, 0x814D}, /* East Asian ideograph */ + {"\x2E", 0, 0x6720}, /* East Asian ideograph */ + {"\x32", 0, 0x8160}, /* East Asian ideograph */ + {"\x3B", 0, 0x8169}, /* East Asian ideograph */ + {"\x3C", 0, 0x817C}, /* East Asian ideograph */ + {"\x41", 0, 0x8161}, /* East Asian ideograph */ + {"\x46", 0, 0x8176}, /* East Asian ideograph */ + {"\x47", 0, 0x8174}, /* East Asian ideograph */ + {"\x48", 0, 0x8167}, /* East Asian ideograph */ + {"\x4B", 0, 0x816F}, /* East Asian ideograph */ + {"\x4D", 0, 0x8182}, /* East Asian ideograph */ + {"\x51", 0, 0x818B}, /* East Asian ideograph */ + {"\x52", 0, 0x8186}, /* East Asian ideograph */ + {"\x59", 0, 0x8183}, /* East Asian ideograph */ + {"\x6A", 0, 0x819F}, /* East Asian ideograph */ + {"\x6B", 0, 0x81A3}, /* East Asian ideograph */ + {"\x70", 0, 0x8198}, /* East Asian ideograph */ + {"\x75", 0, 0x8195}, /* East Asian ideograph */ + {"\x77", 0, 0x8197}, /* East Asian ideograph */ + {"\x7C", 0, 0x81AA}, /* East Asian ideograph */ + {"\x7D", 0, 0x81A6}, /* East Asian ideograph */ + {"\x7E", 0, 0x6725}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page170 = { + marc8_9page170_flat, 0 +}; +/* PAGE 169 */ +struct yaz_iconv_trie_flat marc8_9page169_flat[] = { + {"\x27", 0, 0x80D9}, /* East Asian ideograph */ + {"\x2A", 0, 0x80DD}, /* East Asian ideograph */ + {"\x2D", 0, 0x80CF}, /* East Asian ideograph */ + {"\x2F", 0, 0x80CD}, /* East Asian ideograph */ + {"\x30", 0, 0x80D7}, /* East Asian ideograph */ + {"\x33", 0, 0x80F2}, /* East Asian ideograph */ + {"\x34", 0, 0x80FA}, /* East Asian ideograph */ + {"\x38", 0, 0x80FE}, /* East Asian ideograph */ + {"\x3C", 0, 0x8103}, /* East Asian ideograph */ + {"\x40", 0, 0x80F9}, /* East Asian ideograph */ + {"\x41", 0, 0x80EF}, /* East Asian ideograph */ + {"\x42", 0, 0x80D4}, /* East Asian ideograph */ + {"\x49", 0, 0x811D}, /* East Asian ideograph */ + {"\x4B", 0, 0x8118}, /* East Asian ideograph */ + {"\x50", 0, 0x8130}, /* East Asian ideograph */ + {"\x54", 0, 0x8124}, /* East Asian ideograph */ + {"\x55", 0, 0x811B}, /* East Asian ideograph */ + {"\x60", 0, 0x812A}, /* East Asian ideograph */ + {"\x61", 0, 0x811E}, /* East Asian ideograph */ + {"\x64", 0, 0x8121}, /* East Asian ideograph */ + {"\x66", 0, 0x8117}, /* East Asian ideograph */ + {"\x69", 0, 0x813A}, /* East Asian ideograph */ + {"\x6A", 0, 0x815A}, /* East Asian ideograph */ + {"\x6D", 0, 0x8148}, /* East Asian ideograph */ + {"\x77", 0, 0x814C}, /* East Asian ideograph */ + {"\x7C", 0, 0x8153}, /* East Asian ideograph */ + {"\x7D", 0, 0x8141}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page169 = { + marc8_9page169_flat, 0 +}; +/* PAGE 168 */ +struct yaz_iconv_trie_flat marc8_9page168_flat[] = { + {"\x28", 0, 0x8063}, /* East Asian ideograph */ + {"\x32", 0, 0x806C}, /* East Asian ideograph */ + {"\x39", 0, 0x8075}, /* East Asian ideograph */ + {"\x3E", 0, 0x807B}, /* East Asian ideograph */ + {"\x3F", 0, 0x8079}, /* East Asian ideograph */ + {"\x47", 0, 0x808A}, /* East Asian ideograph */ + {"\x49", 0, 0x808E}, /* East Asian ideograph */ + {"\x4E", 0, 0x809F}, /* East Asian ideograph */ + {"\x5C", 0, 0x670A}, /* East Asian ideograph */ + {"\x60", 0, 0x80A7}, /* East Asian ideograph */ + {"\x61", 0, 0x80B0}, /* East Asian ideograph */ + {"\x68", 0, 0x80B8}, /* East Asian ideograph */ + {"\x69", 0, 0x80B5}, /* East Asian ideograph */ + {"\x6A", 0, 0x80A6}, /* East Asian ideograph */ + {"\x73", 0, 0x80E0}, /* East Asian ideograph */ + {"\x75", 0, 0x6711}, /* East Asian ideograph */ + {"\x7B", 0, 0x80DF}, /* East Asian ideograph */ + {"\x7D", 0, 0x80C2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page168 = { + marc8_9page168_flat, 0 +}; +/* PAGE 167 */ +struct yaz_iconv_trie_flat marc8_9page167_flat[] = { + {"\x29", 0, 0x7FFD}, /* East Asian ideograph */ + {"\x2A", 0, 0x7FFE}, /* East Asian ideograph */ + {"\x2C", 0, 0x7FFF}, /* East Asian ideograph */ + {"\x2E", 0, 0x8004}, /* East Asian ideograph */ + {"\x31", 0, 0x8008}, /* East Asian ideograph */ + {"\x33", 0, 0x800B}, /* East Asian ideograph */ + {"\x34", 0, 0x800E}, /* East Asian ideograph */ + {"\x35", 0, 0x8011}, /* East Asian ideograph */ + {"\x36", 0, 0x800F}, /* East Asian ideograph */ + {"\x37", 0, 0x8014}, /* East Asian ideograph */ + {"\x39", 0, 0x8016}, /* East Asian ideograph */ + {"\x3B", 0, 0x801F}, /* East Asian ideograph */ + {"\x3D", 0, 0x801E}, /* East Asian ideograph */ + {"\x3E", 0, 0x801D}, /* East Asian ideograph */ + {"\x4B", 0, 0x8025}, /* East Asian ideograph */ + {"\x4C", 0, 0x8026}, /* East Asian ideograph */ + {"\x4D", 0, 0x802A}, /* East Asian ideograph */ + {"\x4E", 0, 0x8029}, /* East Asian ideograph */ + {"\x4F", 0, 0x8028}, /* East Asian ideograph */ + {"\x5B", 0, 0x8030}, /* East Asian ideograph */ + {"\x5D", 0, 0x8031}, /* East Asian ideograph */ + {"\x60", 0, 0x8035}, /* East Asian ideograph */ + {"\x69", 0, 0x8039}, /* East Asian ideograph */ + {"\x6B", 0, 0x8041}, /* East Asian ideograph */ + {"\x70", 0, 0x8043}, /* East Asian ideograph */ + {"\x7B", 0, 0x8052}, /* East Asian ideograph */ + {"\x7E", 0, 0x8062}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page167 = { + marc8_9page167_flat, 0 +}; +/* PAGE 166 */ +struct yaz_iconv_trie_flat marc8_9page166_flat[] = { + {"\x23", 0, 0x7F97}, /* East Asian ideograph */ + {"\x24", 0, 0x7F95}, /* East Asian ideograph */ + {"\x2C", 0, 0x7FA2}, /* East Asian ideograph */ + {"\x33", 0, 0x7FA7}, /* East Asian ideograph */ + {"\x3B", 0, 0x7FB0}, /* East Asian ideograph */ + {"\x3C", 0, 0x7FAD}, /* East Asian ideograph */ + {"\x3F", 0, 0x7FB1}, /* East Asian ideograph */ + {"\x40", 0, 0x7FB4}, /* East Asian ideograph */ + {"\x42", 0, 0x7FB5}, /* East Asian ideograph */ + {"\x4A", 0, 0x7FBC}, /* East Asian ideograph */ + {"\x4C", 0, 0x7FBE}, /* East Asian ideograph */ + {"\x51", 0, 0x7FC3}, /* East Asian ideograph */ + {"\x57", 0, 0x7FCA}, /* East Asian ideograph */ + {"\x67", 0, 0x7FDB}, /* East Asian ideograph */ + {"\x68", 0, 0x7FE3}, /* East Asian ideograph */ + {"\x6C", 0, 0x7FE6}, /* East Asian ideograph */ + {"\x6F", 0, 0x7FE5}, /* East Asian ideograph */ + {"\x72", 0, 0x7FEC}, /* East Asian ideograph */ + {"\x73", 0, 0x7FEB}, /* East Asian ideograph */ + {"\x77", 0, 0x7FEF}, /* East Asian ideograph */ + {"\x7A", 0, 0x7FEE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page166 = { + marc8_9page166_flat, 0 +}; +/* PAGE 165 */ +struct yaz_iconv_trie_flat marc8_9page165_flat[] = { + {"\x25", 0, 0x7F43}, /* East Asian ideograph */ + {"\x27", 0, 0x7F46}, /* East Asian ideograph */ + {"\x28", 0, 0x7F45}, /* East Asian ideograph */ + {"\x2B", 0, 0x7F4B}, /* East Asian ideograph */ + {"\x2E", 0, 0x7F4C}, /* East Asian ideograph */ + {"\x2F", 0, 0x7F4D}, /* East Asian ideograph */ + {"\x31", 0, 0x7F4E}, /* East Asian ideograph */ + {"\x32", 0, 0x7F4F}, /* East Asian ideograph */ + {"\x3E", 0, 0x7F60}, /* East Asian ideograph */ + {"\x3F", 0, 0x7F61}, /* East Asian ideograph */ + {"\x43", 0, 0x7F5D}, /* East Asian ideograph */ + {"\x45", 0, 0x7F5B}, /* East Asian ideograph */ + {"\x47", 0, 0x7F63}, /* East Asian ideograph */ + {"\x50", 0, 0x7F65}, /* East Asian ideograph */ + {"\x51", 0, 0x7F66}, /* East Asian ideograph */ + {"\x53", 0, 0x7F6D}, /* East Asian ideograph */ + {"\x54", 0, 0x7F6B}, /* East Asian ideograph */ + {"\x55", 0, 0x7F67}, /* East Asian ideograph */ + {"\x57", 0, 0x7F68}, /* East Asian ideograph */ + {"\x5E", 0, 0x7F71}, /* East Asian ideograph */ + {"\x60", 0, 0x7F73}, /* East Asian ideograph */ + {"\x63", 0, 0x7F76}, /* East Asian ideograph */ + {"\x6A", 0, 0x7F7F}, /* East Asian ideograph */ + {"\x6B", 0, 0x7F7E}, /* East Asian ideograph */ + {"\x6C", 0, 0x7F7D}, /* East Asian ideograph */ + {"\x72", 0, 0x7F86}, /* East Asian ideograph */ + {"\x7A", 0, 0x7F91}, /* East Asian ideograph */ + {"\x7E", 0, 0x7F96}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page165 = { + marc8_9page165_flat, 0 +}; +/* PAGE 164 */ +struct yaz_iconv_trie_flat marc8_9page164_flat[] = { + {"\x21", 0, 0x7E35}, /* East Asian ideograph */ + {"\x26", 0, 0x7E3F}, /* East Asian ideograph */ + {"\x28", 0, 0x7E47}, /* East Asian ideograph */ + {"\x2D", 0, 0x7E52}, /* East Asian ideograph */ + {"\x2F", 0, 0x7E51}, /* East Asian ideograph */ + {"\x33", 0, 0x7E50}, /* East Asian ideograph */ + {"\x34", 0, 0x7E67}, /* East Asian ideograph */ + {"\x37", 0, 0x7E56}, /* East Asian ideograph */ + {"\x48", 0, 0x7E68}, /* East Asian ideograph */ + {"\x49", 0, 0x7E6E}, /* East Asian ideograph */ + {"\x4E", 0, 0x7E70}, /* East Asian ideograph */ + {"\x51", 0, 0x7E6F}, /* East Asian ideograph */ + {"\x52", 0, 0x7E73}, /* East Asian ideograph */ + {"\x58", 0, 0x7E7B}, /* East Asian ideograph */ + {"\x59", 0, 0x7E7E}, /* East Asian ideograph */ + {"\x5B", 0, 0x7E81}, /* East Asian ideograph */ + {"\x5D", 0, 0x7E8A}, /* East Asian ideograph */ + {"\x5E", 0, 0x7E87}, /* East Asian ideograph */ + {"\x60", 0, 0x7E88}, /* East Asian ideograph */ + {"\x64", 0, 0x7E86}, /* East Asian ideograph */ + {"\x6A", 0, 0x7E91}, /* East Asian ideograph */ + {"\x6B", 0, 0x7E95}, /* East Asian ideograph */ + {"\x6D", 0, 0x7E94}, /* East Asian ideograph */ + {"\x70", 0, 0x7E9B}, /* East Asian ideograph */ + {"\x71", 0, 0x7E9A}, /* East Asian ideograph */ + {"\x73", 0, 0x7E99}, /* East Asian ideograph */ + {"\x74", 0, 0x7E98}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page164 = { + marc8_9page164_flat, 0 +}; +/* PAGE 163 */ +struct yaz_iconv_trie_flat marc8_9page163_flat[] = { + {"\x22", 0, 0x7D9F}, /* East Asian ideograph */ + {"\x29", 0, 0x7DE1}, /* East Asian ideograph */ + {"\x2A", 0, 0x7DD9}, /* East Asian ideograph */ + {"\x2B", 0, 0x7DE4}, /* East Asian ideograph */ + {"\x31", 0, 0x7DD7}, /* East Asian ideograph */ + {"\x36", 0, 0x7DF9}, /* East Asian ideograph */ + {"\x3A", 0, 0x7E06}, /* East Asian ideograph */ + {"\x3C", 0, 0x7DF2}, /* East Asian ideograph */ + {"\x3E", 0, 0x7DE6}, /* East Asian ideograph */ + {"\x46", 0, 0x7DDC}, /* East Asian ideograph */ + {"\x47", 0, 0x7DF1}, /* East Asian ideograph */ + {"\x48", 0, 0x7DF6}, /* East Asian ideograph */ + {"\x49", 0, 0x7DE5}, /* East Asian ideograph */ + {"\x4B", 0, 0x7DF5}, /* East Asian ideograph */ + {"\x50", 0, 0x7E17}, /* East Asian ideograph */ + {"\x51", 0, 0x7E1E}, /* East Asian ideograph */ + {"\x52", 0, 0x7E21}, /* East Asian ideograph */ + {"\x53", 0, 0x7E0B}, /* East Asian ideograph */ + {"\x55", 0, 0x7E12}, /* East Asian ideograph */ + {"\x56", 0, 0x7E22}, /* East Asian ideograph */ + {"\x5B", 0, 0x7E20}, /* East Asian ideograph */ + {"\x5D", 0, 0x7E1D}, /* East Asian ideograph */ + {"\x5E", 0, 0x7E09}, /* East Asian ideograph */ + {"\x5F", 0, 0x7E1F}, /* East Asian ideograph */ + {"\x65", 0, 0x7E15}, /* East Asian ideograph */ + {"\x69", 0, 0x7E10}, /* East Asian ideograph */ + {"\x6A", 0, 0x7E0F}, /* East Asian ideograph */ + {"\x6D", 0, 0x7E3B}, /* East Asian ideograph */ + {"\x71", 0, 0x7E34}, /* East Asian ideograph */ + {"\x72", 0, 0x7E2D}, /* East Asian ideograph */ + {"\x73", 0, 0x7E2F}, /* East Asian ideograph */ + {"\x75", 0, 0x7E36}, /* East Asian ideograph */ + {"\x77", 0, 0x7E3A}, /* East Asian ideograph */ + {"\x79", 0, 0x7E39}, /* East Asian ideograph */ + {"\x7D", 0, 0x7E44}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page163 = { + marc8_9page163_flat, 0 +}; +/* PAGE 162 */ +struct yaz_iconv_trie_flat marc8_9page162_flat[] = { + {"\x22", 0, 0x7D70}, /* East Asian ideograph */ + {"\x29", 0, 0x7D67}, /* East Asian ideograph */ + {"\x2B", 0, 0x7D6A}, /* East Asian ideograph */ + {"\x2C", 0, 0x7D6B}, /* East Asian ideograph */ + {"\x30", 0, 0x7D73}, /* East Asian ideograph */ + {"\x34", 0, 0x7D4E}, /* East Asian ideograph */ + {"\x37", 0, 0x7D8B}, /* East Asian ideograph */ + {"\x39", 0, 0x7D88}, /* East Asian ideograph */ + {"\x3B", 0, 0x7D85}, /* East Asian ideograph */ + {"\x3D", 0, 0x7D8E}, /* East Asian ideograph */ + {"\x42", 0, 0x7D7F}, /* East Asian ideograph */ + {"\x44", 0, 0x7D86}, /* East Asian ideograph */ + {"\x48", 0, 0x7D8D}, /* East Asian ideograph */ + {"\x4B", 0, 0x7D9B}, /* East Asian ideograph */ + {"\x4D", 0, 0x7D83}, /* East Asian ideograph */ + {"\x4F", 0, 0x7D7D}, /* East Asian ideograph */ + {"\x54", 0, 0x7D7B}, /* East Asian ideograph */ + {"\x58", 0, 0x7D7A}, /* East Asian ideograph */ + {"\x59", 0, 0x7D96}, /* East Asian ideograph */ + {"\x5A", 0, 0x7D5B}, /* East Asian ideograph */ + {"\x5B", 0, 0x7D8C}, /* East Asian ideograph */ + {"\x61", 0, 0x7DA3}, /* East Asian ideograph */ + {"\x62", 0, 0x7DAE}, /* East Asian ideograph */ + {"\x67", 0, 0x7DCB}, /* East Asian ideograph */ + {"\x69", 0, 0x7DAA}, /* East Asian ideograph */ + {"\x6A", 0, 0x7DCE}, /* East Asian ideograph */ + {"\x6B", 0, 0x7DC9}, /* East Asian ideograph */ + {"\x6E", 0, 0x7DC5}, /* East Asian ideograph */ + {"\x6F", 0, 0x7DA6}, /* East Asian ideograph */ + {"\x74", 0, 0x7DC4}, /* East Asian ideograph */ + {"\x78", 0, 0x7DAC}, /* East Asian ideograph */ + {"\x7D", 0, 0x7DB9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page162 = { + marc8_9page162_flat, 0 +}; +/* PAGE 161 */ +struct yaz_iconv_trie_flat marc8_9page161_flat[] = { + {"\x22", 0, 0x7CDD}, /* East Asian ideograph */ + {"\x28", 0, 0x7CED}, /* East Asian ideograph */ + {"\x2E", 0, 0x7CF0}, /* East Asian ideograph */ + {"\x30", 0, 0x7CF2}, /* East Asian ideograph */ + {"\x35", 0, 0x7CF4}, /* East Asian ideograph */ + {"\x39", 0, 0x7CF6}, /* East Asian ideograph */ + {"\x42", 0, 0x7D06}, /* East Asian ideograph */ + {"\x44", 0, 0x7D03}, /* East Asian ideograph */ + {"\x45", 0, 0x7D08}, /* East Asian ideograph */ + {"\x49", 0, 0x7D0F}, /* East Asian ideograph */ + {"\x4A", 0, 0x7D13}, /* East Asian ideograph */ + {"\x50", 0, 0x7D18}, /* East Asian ideograph */ + {"\x51", 0, 0x7D1E}, /* East Asian ideograph */ + {"\x52", 0, 0x7D1D}, /* East Asian ideograph */ + {"\x59", 0, 0x7D35}, /* East Asian ideograph */ + {"\x5A", 0, 0x7D3D}, /* East Asian ideograph */ + {"\x61", 0, 0x7D3A}, /* East Asian ideograph */ + {"\x62", 0, 0x7D32}, /* East Asian ideograph */ + {"\x65", 0, 0x7D31}, /* East Asian ideograph */ + {"\x68", 0, 0x7D45}, /* East Asian ideograph */ + {"\x6A", 0, 0x7D3F}, /* East Asian ideograph */ + {"\x6C", 0, 0x7D29}, /* East Asian ideograph */ + {"\x6F", 0, 0x7D41}, /* East Asian ideograph */ + {"\x71", 0, 0x7D3E}, /* East Asian ideograph */ + {"\x7A", 0, 0x7D5C}, /* East Asian ideograph */ + {"\x7C", 0, 0x7D53}, /* East Asian ideograph */ + {"\x7E", 0, 0x7D5A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page161 = { + marc8_9page161_flat, 0 +}; +/* PAGE 160 */ +struct yaz_iconv_trie_flat marc8_9page160_flat[] = { + {"\x21", 0, 0x7C81}, /* East Asian ideograph */ + {"\x28", 0, 0x7C8E}, /* East Asian ideograph */ + {"\x29", 0, 0x7C91}, /* East Asian ideograph */ + {"\x2A", 0, 0x7C83}, /* East Asian ideograph */ + {"\x2C", 0, 0x7C8D}, /* East Asian ideograph */ + {"\x3A", 0, 0x7C99}, /* East Asian ideograph */ + {"\x3B", 0, 0x7C98}, /* East Asian ideograph */ + {"\x3E", 0, 0x7C9C}, /* East Asian ideograph */ + {"\x40", 0, 0x7C95}, /* East Asian ideograph */ + {"\x42", 0, 0x7CA7}, /* East Asian ideograph */ + {"\x43", 0, 0x7CA2}, /* East Asian ideograph */ + {"\x45", 0, 0x7C9E}, /* East Asian ideograph */ + {"\x46", 0, 0x7CA9}, /* East Asian ideograph */ + {"\x48", 0, 0x7CA8}, /* East Asian ideograph */ + {"\x49", 0, 0x7CA1}, /* East Asian ideograph */ + {"\x4A", 0, 0x7CAC}, /* East Asian ideograph */ + {"\x4C", 0, 0x7CA6}, /* East Asian ideograph */ + {"\x54", 0, 0x7CB2}, /* East Asian ideograph */ + {"\x58", 0, 0x7CBB}, /* East Asian ideograph */ + {"\x59", 0, 0x7CBF}, /* East Asian ideograph */ + {"\x5E", 0, 0x7CBA}, /* East Asian ideograph */ + {"\x5F", 0, 0x7CBC}, /* East Asian ideograph */ + {"\x64", 0, 0x7CC2}, /* East Asian ideograph */ + {"\x66", 0, 0x7CCE}, /* East Asian ideograph */ + {"\x68", 0, 0x7CC8}, /* East Asian ideograph */ + {"\x69", 0, 0x7CC5}, /* East Asian ideograph */ + {"\x6D", 0, 0x7CCC}, /* East Asian ideograph */ + {"\x6F", 0, 0x7CC9}, /* East Asian ideograph */ + {"\x71", 0, 0x7CD2}, /* East Asian ideograph */ + {"\x75", 0, 0x7CD7}, /* East Asian ideograph */ + {"\x77", 0, 0x7CE1}, /* East Asian ideograph */ + {"\x7B", 0, 0x7CE8}, /* East Asian ideograph (variant of EACC 4C6F7B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page160 = { + marc8_9page160_flat, 0 +}; +/* PAGE 159 */ +struct yaz_iconv_trie_flat marc8_9page159_flat[] = { + {"\x27", 0, 0x7C35}, /* East Asian ideograph */ + {"\x2A", 0, 0x7C40}, /* East Asian ideograph */ + {"\x30", 0, 0x7C39}, /* East Asian ideograph */ + {"\x34", 0, 0x7C3B}, /* East Asian ideograph */ + {"\x35", 0, 0x7C34}, /* East Asian ideograph */ + {"\x3B", 0, 0x7C42}, /* East Asian ideograph */ + {"\x46", 0, 0x7C4E}, /* East Asian ideograph */ + {"\x54", 0, 0x7C5D}, /* East Asian ideograph */ + {"\x56", 0, 0x7C5C}, /* East Asian ideograph */ + {"\x57", 0, 0x7C5A}, /* East Asian ideograph */ + {"\x58", 0, 0x7C5B}, /* East Asian ideograph */ + {"\x59", 0, 0x7C59}, /* East Asian ideograph */ + {"\x5B", 0, 0x7C5E}, /* East Asian ideograph */ + {"\x5C", 0, 0x7C67}, /* East Asian ideograph */ + {"\x5E", 0, 0x7C63}, /* East Asian ideograph */ + {"\x61", 0, 0x7C68}, /* East Asian ideograph */ + {"\x62", 0, 0x7C65}, /* East Asian ideograph */ + {"\x6F", 0, 0x7C6F}, /* East Asian ideograph */ + {"\x75", 0, 0x7C75}, /* East Asian ideograph */ + {"\x79", 0, 0x7C7E}, /* East Asian ideograph */ + {"\x7A", 0, 0x7C78}, /* East Asian ideograph */ + {"\x7D", 0, 0x7C7D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page159 = { + marc8_9page159_flat, 0 +}; +/* PAGE 158 */ +struct yaz_iconv_trie_flat marc8_9page158_flat[] = { + {"\x22", 0, 0x7BDD}, /* East Asian ideograph */ + {"\x24", 0, 0x7BE5}, /* East Asian ideograph */ + {"\x29", 0, 0x7BE8}, /* East Asian ideograph */ + {"\x2E", 0, 0x7BF9}, /* East Asian ideograph */ + {"\x2F", 0, 0x7BD4}, /* East Asian ideograph */ + {"\x32", 0, 0x7BDF}, /* East Asian ideograph */ + {"\x35", 0, 0x7BD8}, /* East Asian ideograph */ + {"\x37", 0, 0x7BEA}, /* East Asian ideograph (unrelated variant of EACC 3A6A7C) */ + {"\x3B", 0, 0x7C06}, /* East Asian ideograph */ + {"\x3E", 0, 0x7BF0}, /* East Asian ideograph */ + {"\x41", 0, 0x7C0F}, /* East Asian ideograph */ + {"\x46", 0, 0x7C0B}, /* East Asian ideograph */ + {"\x47", 0, 0x7C00}, /* East Asian ideograph */ + {"\x4B", 0, 0x7C0C}, /* East Asian ideograph */ + {"\x4F", 0, 0x7BF4}, /* East Asian ideograph */ + {"\x54", 0, 0x7BF3}, /* East Asian ideograph */ + {"\x5A", 0, 0x7C09}, /* East Asian ideograph */ + {"\x5B", 0, 0x7C03}, /* East Asian ideograph */ + {"\x5C", 0, 0x7BFC}, /* East Asian ideograph */ + {"\x5F", 0, 0x7C1C}, /* East Asian ideograph */ + {"\x61", 0, 0x7C26}, /* East Asian ideograph */ + {"\x62", 0, 0x7C28}, /* East Asian ideograph */ + {"\x63", 0, 0x7C20}, /* East Asian ideograph */ + {"\x66", 0, 0x7C1F}, /* East Asian ideograph */ + {"\x68", 0, 0x7C2F}, /* East Asian ideograph */ + {"\x75", 0, 0x7C30}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page158 = { + marc8_9page158_flat, 0 +}; +/* PAGE 157 */ +struct yaz_iconv_trie_flat marc8_9page157_flat[] = { + {"\x26", 0, 0x7B71}, /* East Asian ideograph */ + {"\x27", 0, 0x7B70}, /* East Asian ideograph */ + {"\x29", 0, 0x7B73}, /* East Asian ideograph */ + {"\x2D", 0, 0x7B9C}, /* East Asian ideograph */ + {"\x33", 0, 0x7B92}, /* East Asian ideograph */ + {"\x34", 0, 0x7B91}, /* East Asian ideograph */ + {"\x35", 0, 0x7B90}, /* East Asian ideograph */ + {"\x38", 0, 0x7BA3}, /* East Asian ideograph */ + {"\x3A", 0, 0x7B8D}, /* East Asian ideograph */ + {"\x41", 0, 0x7B85}, /* East Asian ideograph */ + {"\x43", 0, 0x7B8E}, /* East Asian ideograph */ + {"\x44", 0, 0x7B98}, /* East Asian ideograph */ + {"\x46", 0, 0x7B86}, /* East Asian ideograph */ + {"\x48", 0, 0x7B99}, /* East Asian ideograph */ + {"\x52", 0, 0x7BB2}, /* East Asian ideograph */ + {"\x58", 0, 0x7BCB}, /* East Asian ideograph */ + {"\x59", 0, 0x7BB8}, /* East Asian ideograph */ + {"\x5A", 0, 0x7BCF}, /* East Asian ideograph */ + {"\x5C", 0, 0x7BD0}, /* East Asian ideograph */ + {"\x60", 0, 0x7BBE}, /* East Asian ideograph */ + {"\x6F", 0, 0x7BCC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page157 = { + marc8_9page157_flat, 0 +}; +/* PAGE 156 */ +struct yaz_iconv_trie_flat marc8_9page156_flat[] = { + {"\x27", 0, 0x7B39}, /* East Asian ideograph */ + {"\x2D", 0, 0x7B0F}, /* East Asian ideograph */ + {"\x2E", 0, 0x7B08}, /* East Asian ideograph */ + {"\x33", 0, 0x7B0A}, /* East Asian ideograph */ + {"\x35", 0, 0x7B35}, /* East Asian ideograph */ + {"\x36", 0, 0x7B25}, /* East Asian ideograph */ + {"\x39", 0, 0x7B38}, /* East Asian ideograph */ + {"\x3B", 0, 0x7B3B}, /* East Asian ideograph */ + {"\x3F", 0, 0x7B24}, /* East Asian ideograph */ + {"\x40", 0, 0x7B33}, /* East Asian ideograph */ + {"\x42", 0, 0x7B2A}, /* East Asian ideograph */ + {"\x44", 0, 0x7B18}, /* East Asian ideograph */ + {"\x47", 0, 0x7B31}, /* East Asian ideograph */ + {"\x4A", 0, 0x7B2B}, /* East Asian ideograph */ + {"\x4B", 0, 0x7B37}, /* East Asian ideograph */ + {"\x4D", 0, 0x7B1F}, /* East Asian ideograph */ + {"\x52", 0, 0x7B4A}, /* East Asian ideograph */ + {"\x53", 0, 0x7B59}, /* East Asian ideograph */ + {"\x54", 0, 0x7B04}, /* East Asian ideograph (variant of EACC 2E6B54) */ + {"\x55", 0, 0x7B47}, /* East Asian ideograph */ + {"\x59", 0, 0x7B58}, /* East Asian ideograph */ + {"\x5B", 0, 0x7B6C}, /* East Asian ideograph */ + {"\x60", 0, 0x7B48}, /* East Asian ideograph */ + {"\x61", 0, 0x7B45}, /* East Asian ideograph */ + {"\x62", 0, 0x7B4C}, /* East Asian ideograph */ + {"\x63", 0, 0x7B4E}, /* East Asian ideograph */ + {"\x68", 0, 0x7B66}, /* East Asian ideograph */ + {"\x6C", 0, 0x7B64}, /* East Asian ideograph */ + {"\x6E", 0, 0x7B69}, /* East Asian ideograph */ + {"\x70", 0, 0x7B6D}, /* East Asian ideograph */ + {"\x74", 0, 0x7B62}, /* East Asian ideograph */ + {"\x75", 0, 0x7B6E}, /* East Asian ideograph */ + {"\x76", 0, 0x7B74}, /* East Asian ideograph */ + {"\x79", 0, 0x7B72}, /* East Asian ideograph */ + {"\x7A", 0, 0x7B78}, /* East Asian ideograph */ + {"\x7B", 0, 0x7B6F}, /* East Asian ideograph */ + {"\x7C", 0, 0x7B67}, /* East Asian ideograph */ + {"\x7E", 0, 0x7B65}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page156 = { + marc8_9page156_flat, 0 +}; +/* PAGE 155 */ +struct yaz_iconv_trie_flat marc8_9page155_flat[] = { + {"\x28", 0, 0x7AA3}, /* East Asian ideograph */ + {"\x2B", 0, 0x7A9E}, /* East Asian ideograph */ + {"\x2C", 0, 0x7AA7}, /* East Asian ideograph */ + {"\x2E", 0, 0x7AA8}, /* East Asian ideograph */ + {"\x31", 0, 0x7AAC}, /* East Asian ideograph */ + {"\x36", 0, 0x7AB3}, /* East Asian ideograph */ + {"\x3A", 0, 0x7ABD}, /* East Asian ideograph */ + {"\x3C", 0, 0x7AB6}, /* East Asian ideograph */ + {"\x3D", 0, 0x7AB8}, /* East Asian ideograph */ + {"\x3E", 0, 0x7AB5}, /* East Asian ideograph */ + {"\x3F", 0, 0x7ABB}, /* East Asian ideograph */ + {"\x43", 0, 0x7ABF}, /* East Asian ideograph */ + {"\x49", 0, 0x7ACD}, /* East Asian ideograph */ + {"\x4B", 0, 0x7ACF}, /* East Asian ideograph */ + {"\x4F", 0, 0x7AD1}, /* East Asian ideograph */ + {"\x51", 0, 0x7AD3}, /* East Asian ideograph */ + {"\x52", 0, 0x7AD4}, /* East Asian ideograph */ + {"\x54", 0, 0x7AD5}, /* East Asian ideograph */ + {"\x55", 0, 0x7ADA}, /* East Asian ideograph */ + {"\x5A", 0, 0x7AE1}, /* East Asian ideograph */ + {"\x5E", 0, 0x7AE6}, /* East Asian ideograph */ + {"\x66", 0, 0x7AEB}, /* East Asian ideograph */ + {"\x6B", 0, 0x7AF0}, /* East Asian ideograph */ + {"\x76", 0, 0x7AF5}, /* East Asian ideograph */ + {"\x7C", 0, 0x7AFE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page155 = { + marc8_9page155_flat, 0 +}; +/* PAGE 154 */ +struct yaz_iconv_trie_flat marc8_9page154_flat[] = { + {"\x22", 0, 0x7A2C}, /* East Asian ideograph */ + {"\x39", 0, 0x7A48}, /* East Asian ideograph */ + {"\x3D", 0, 0x7A4B}, /* East Asian ideograph */ + {"\x3E", 0, 0x7A47}, /* East Asian ideograph */ + {"\x3F", 0, 0x7A44}, /* East Asian ideograph */ + {"\x40", 0, 0x7A5C}, /* East Asian ideograph */ + {"\x4D", 0, 0x7A5F}, /* East Asian ideograph */ + {"\x4F", 0, 0x7A60}, /* East Asian ideograph */ + {"\x57", 0, 0x7A6E}, /* East Asian ideograph */ + {"\x5F", 0, 0x7A70}, /* East Asian ideograph */ + {"\x66", 0, 0x7A75}, /* East Asian ideograph */ + {"\x69", 0, 0x7A78}, /* East Asian ideograph */ + {"\x6B", 0, 0x7A80}, /* East Asian ideograph */ + {"\x70", 0, 0x7A85}, /* East Asian ideograph */ + {"\x75", 0, 0x7A86}, /* East Asian ideograph */ + {"\x78", 0, 0x7A8A}, /* East Asian ideograph */ + {"\x7A", 0, 0x7A94}, /* East Asian ideograph */ + {"\x7E", 0, 0x68A5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page154 = { + marc8_9page154_flat, 0 +}; +/* PAGE 153 */ +struct yaz_iconv_trie_flat marc8_9page153_flat[] = { + {"\x22", 0, 0x79B8}, /* East Asian ideograph */ + {"\x23", 0, 0x79BA}, /* East Asian ideograph */ + {"\x25", 0, 0x79BC}, /* East Asian ideograph */ + {"\x28", 0, 0x79C6}, /* East Asian ideograph */ + {"\x2A", 0, 0x79C8}, /* East Asian ideograph */ + {"\x2D", 0, 0x79D4}, /* East Asian ideograph */ + {"\x2E", 0, 0x79D5}, /* East Asian ideograph */ + {"\x32", 0, 0x79D6}, /* East Asian ideograph */ + {"\x3D", 0, 0x79EC}, /* East Asian ideograph */ + {"\x3E", 0, 0x79EB}, /* East Asian ideograph (variant of EACC 4C683E) */ + {"\x42", 0, 0x79E1}, /* East Asian ideograph */ + {"\x44", 0, 0x79DD}, /* East Asian ideograph */ + {"\x45", 0, 0x79ED}, /* East Asian ideograph */ + {"\x48", 0, 0x79F8}, /* East Asian ideograph */ + {"\x4F", 0, 0x7A02}, /* East Asian ideograph */ + {"\x50", 0, 0x7A0A}, /* East Asian ideograph */ + {"\x54", 0, 0x7A09}, /* East Asian ideograph */ + {"\x5C", 0, 0x7A03}, /* East Asian ideograph */ + {"\x61", 0, 0x7A0C}, /* East Asian ideograph */ + {"\x6B", 0, 0x7A11}, /* East Asian ideograph */ + {"\x6C", 0, 0x7A18}, /* East Asian ideograph */ + {"\x6F", 0, 0x7A19}, /* East Asian ideograph (variant of EACC 2E686F) */ + {"\x71", 0, 0x7A1E}, /* East Asian ideograph */ + {"\x76", 0, 0x7A17}, /* East Asian ideograph */ + {"\x7E", 0, 0x7A2D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page153 = { + marc8_9page153_flat, 0 +}; +/* PAGE 152 */ +struct yaz_iconv_trie_flat marc8_9page152_flat[] = { + {"\x21", 0, 0x7951}, /* East Asian ideograph */ + {"\x23", 0, 0x7954}, /* East Asian ideograph */ + {"\x2A", 0, 0x7967}, /* East Asian ideograph */ + {"\x2D", 0, 0x796B}, /* East Asian ideograph */ + {"\x30", 0, 0x7972}, /* East Asian ideograph */ + {"\x3E", 0, 0x797C}, /* East Asian ideograph */ + {"\x4A", 0, 0x7998}, /* East Asian ideograph */ + {"\x4B", 0, 0x798A}, /* East Asian ideograph */ + {"\x4D", 0, 0x7999}, /* East Asian ideograph */ + {"\x4E", 0, 0x7995}, /* East Asian ideograph */ + {"\x4F", 0, 0x798B}, /* East Asian ideograph */ + {"\x50", 0, 0x7996}, /* East Asian ideograph */ + {"\x54", 0, 0x7994}, /* East Asian ideograph */ + {"\x55", 0, 0x7993}, /* East Asian ideograph */ + {"\x5C", 0, 0x799A}, /* East Asian ideograph */ + {"\x5F", 0, 0x79A1}, /* East Asian ideograph */ + {"\x60", 0, 0x799B}, /* East Asian ideograph */ + {"\x61", 0, 0x79A3}, /* East Asian ideograph */ + {"\x64", 0, 0x799D}, /* East Asian ideograph */ + {"\x6E", 0, 0x79A9}, /* East Asian ideograph */ + {"\x70", 0, 0x79AB}, /* East Asian ideograph */ + {"\x71", 0, 0x79A8}, /* East Asian ideograph */ + {"\x75", 0, 0x79B0}, /* East Asian ideograph */ + {"\x7A", 0, 0x79B3}, /* East Asian ideograph */ + {"\x7B", 0, 0x79B4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page152 = { + marc8_9page152_flat, 0 +}; +/* PAGE 151 */ +struct yaz_iconv_trie_flat marc8_9page151_flat[] = { + {"\x21", 0, 0x78F9}, /* East Asian ideograph */ + {"\x22", 0, 0x78FD}, /* East Asian ideograph */ + {"\x27", 0, 0x78FE}, /* East Asian ideograph */ + {"\x29", 0, 0x78FB}, /* East Asian ideograph */ + {"\x2B", 0, 0x7904}, /* East Asian ideograph */ + {"\x2E", 0, 0x7912}, /* East Asian ideograph */ + {"\x32", 0, 0x790C}, /* East Asian ideograph */ + {"\x34", 0, 0x7913}, /* East Asian ideograph */ + {"\x35", 0, 0x7911}, /* East Asian ideograph */ + {"\x43", 0, 0x791E}, /* East Asian ideograph */ + {"\x46", 0, 0x7922}, /* East Asian ideograph */ + {"\x4C", 0, 0x7924}, /* East Asian ideograph */ + {"\x4D", 0, 0x7927}, /* East Asian ideograph */ + {"\x50", 0, 0x7929}, /* East Asian ideograph */ + {"\x55", 0, 0x7931}, /* East Asian ideograph */ + {"\x5D", 0, 0x7934}, /* East Asian ideograph */ + {"\x60", 0, 0x7936}, /* East Asian ideograph */ + {"\x65", 0, 0x793D}, /* East Asian ideograph */ + {"\x67", 0, 0x7942}, /* East Asian ideograph */ + {"\x68", 0, 0x793F}, /* East Asian ideograph */ + {"\x6A", 0, 0x794A}, /* East Asian ideograph */ + {"\x6B", 0, 0x794D}, /* East Asian ideograph */ + {"\x75", 0, 0x7946}, /* East Asian ideograph */ + {"\x77", 0, 0x7958}, /* East Asian ideograph */ + {"\x79", 0, 0x795B}, /* East Asian ideograph */ + {"\x7A", 0, 0x795C}, /* East Asian ideograph */ + {"\x7B", 0, 0x794F}, /* East Asian ideograph */ + {"\x7C", 0, 0x7953}, /* East Asian ideograph */ + {"\x7D", 0, 0x7953}, /* East Asian ideograph (unrelated variant of EACC 22667C) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page151 = { + marc8_9page151_flat, 0 +}; +/* PAGE 150 */ +struct yaz_iconv_trie_flat marc8_9page150_flat[] = { + {"\x29", 0, 0x7893}, /* East Asian ideograph */ + {"\x2C", 0, 0x7892}, /* East Asian ideograph */ + {"\x2D", 0, 0x7896}, /* East Asian ideograph */ + {"\x2F", 0, 0x78B2}, /* East Asian ideograph */ + {"\x31", 0, 0x78A1}, /* East Asian ideograph */ + {"\x32", 0, 0x78B6}, /* East Asian ideograph */ + {"\x39", 0, 0x78B7}, /* East Asian ideograph */ + {"\x3B", 0, 0x78A4}, /* East Asian ideograph */ + {"\x3E", 0, 0x78B4}, /* East Asian ideograph */ + {"\x40", 0, 0x78AD}, /* East Asian ideograph */ + {"\x41", 0, 0x78A3}, /* East Asian ideograph */ + {"\x43", 0, 0x789E}, /* East Asian ideograph */ + {"\x44", 0, 0x78A8}, /* East Asian ideograph */ + {"\x48", 0, 0x78AB}, /* East Asian ideograph */ + {"\x4E", 0, 0x78BB}, /* East Asian ideograph */ + {"\x55", 0, 0x78CC}, /* East Asian ideograph */ + {"\x56", 0, 0x78C9}, /* East Asian ideograph */ + {"\x58", 0, 0x78D1}, /* East Asian ideograph */ + {"\x5A", 0, 0x78D8}, /* East Asian ideograph */ + {"\x5E", 0, 0x78C8}, /* East Asian ideograph */ + {"\x60", 0, 0x78D4}, /* East Asian ideograph */ + {"\x68", 0, 0x78DF}, /* East Asian ideograph */ + {"\x6A", 0, 0x78E7}, /* East Asian ideograph */ + {"\x6E", 0, 0x78DB}, /* East Asian ideograph */ + {"\x6F", 0, 0x78E1}, /* East Asian ideograph */ + {"\x73", 0, 0x78E0}, /* East Asian ideograph */ + {"\x76", 0, 0x78EE}, /* East Asian ideograph */ + {"\x77", 0, 0x78E3}, /* East Asian ideograph */ + {"\x79", 0, 0x78F2}, /* East Asian ideograph */ + {"\x7E", 0, 0x7905}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page150 = { + marc8_9page150_flat, 0 +}; +/* PAGE 149 */ +struct yaz_iconv_trie_flat marc8_9page149_flat[] = { + {"\x24", 0, 0x781B}, /* East Asian ideograph */ + {"\x26", 0, 0x782C}, /* East Asian ideograph */ + {"\x27", 0, 0x7823}, /* East Asian ideograph */ + {"\x28", 0, 0x782B}, /* East Asian ideograph */ + {"\x2A", 0, 0x7829}, /* East Asian ideograph */ + {"\x2D", 0, 0x7822}, /* East Asian ideograph */ + {"\x31", 0, 0x7835}, /* East Asian ideograph */ + {"\x32", 0, 0x7833}, /* East Asian ideograph */ + {"\x33", 0, 0x782E}, /* East Asian ideograph */ + {"\x35", 0, 0x7820}, /* East Asian ideograph */ + {"\x38", 0, 0x783D}, /* East Asian ideograph */ + {"\x3B", 0, 0x781F}, /* East Asian ideograph */ + {"\x3D", 0, 0x7831}, /* East Asian ideograph */ + {"\x44", 0, 0x784D}, /* East Asian ideograph */ + {"\x48", 0, 0x7848}, /* East Asian ideograph */ + {"\x49", 0, 0x7853}, /* East Asian ideograph */ + {"\x4A", 0, 0x7854}, /* East Asian ideograph */ + {"\x4B", 0, 0x7845}, /* East Asian ideograph */ + {"\x4C", 0, 0x7852}, /* East Asian ideograph */ + {"\x4E", 0, 0x7850}, /* East Asian ideograph */ + {"\x4F", 0, 0x7858}, /* East Asian ideograph */ + {"\x50", 0, 0x7826}, /* East Asian ideograph */ + {"\x52", 0, 0x7847}, /* East Asian ideograph */ + {"\x56", 0, 0x784C}, /* East Asian ideograph */ + {"\x5A", 0, 0x7868}, /* East Asian ideograph */ + {"\x5B", 0, 0x786D}, /* East Asian ideograph */ + {"\x60", 0, 0x7864}, /* East Asian ideograph */ + {"\x61", 0, 0x785C}, /* East Asian ideograph */ + {"\x64", 0, 0x7876}, /* East Asian ideograph */ + {"\x66", 0, 0x786A}, /* East Asian ideograph */ + {"\x69", 0, 0x7886}, /* East Asian ideograph */ + {"\x6B", 0, 0x789A}, /* East Asian ideograph */ + {"\x6C", 0, 0x787F}, /* East Asian ideograph */ + {"\x6D", 0, 0x7887}, /* East Asian ideograph */ + {"\x70", 0, 0x7894}, /* East Asian ideograph */ + {"\x76", 0, 0x788F}, /* East Asian ideograph */ + {"\x7E", 0, 0x7899}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page149 = { + marc8_9page149_flat, 0 +}; +/* PAGE 148 */ +struct yaz_iconv_trie_flat marc8_9page148_flat[] = { + {"\x23", 0, 0x77B6}, /* East Asian ideograph */ + {"\x29", 0, 0x77BE}, /* East Asian ideograph */ + {"\x2B", 0, 0x77B9}, /* East Asian ideograph */ + {"\x2C", 0, 0x77BC}, /* East Asian ideograph */ + {"\x35", 0, 0x77CD}, /* East Asian ideograph */ + {"\x3A", 0, 0x77D1}, /* East Asian ideograph */ + {"\x45", 0, 0x77DE}, /* East Asian ideograph */ + {"\x46", 0, 0x77DF}, /* East Asian ideograph */ + {"\x4F", 0, 0x77E7}, /* East Asian ideograph */ + {"\x52", 0, 0x77E6}, /* East Asian ideograph */ + {"\x55", 0, 0x77EC}, /* East Asian ideograph */ + {"\x59", 0, 0x77F0}, /* East Asian ideograph */ + {"\x5A", 0, 0x77F1}, /* East Asian ideograph */ + {"\x5C", 0, 0x77F4}, /* East Asian ideograph */ + {"\x60", 0, 0x77FC}, /* East Asian ideograph */ + {"\x67", 0, 0x77F8}, /* East Asian ideograph */ + {"\x68", 0, 0x77FB}, /* East Asian ideograph */ + {"\x70", 0, 0x7809}, /* East Asian ideograph */ + {"\x71", 0, 0x7806}, /* East Asian ideograph */ + {"\x73", 0, 0x7819}, /* East Asian ideograph */ + {"\x74", 0, 0x7811}, /* East Asian ideograph */ + {"\x78", 0, 0x7812}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page148 = { + marc8_9page148_flat, 0 +}; +/* PAGE 147 */ +struct yaz_iconv_trie_flat marc8_9page147_flat[] = { + {"\x22", 0, 0x7725}, /* East Asian ideograph */ + {"\x25", 0, 0x7735}, /* East Asian ideograph */ + {"\x26", 0, 0x7734}, /* East Asian ideograph */ + {"\x2D", 0, 0x7747}, /* East Asian ideograph */ + {"\x31", 0, 0x7745}, /* East Asian ideograph */ + {"\x32", 0, 0x774D}, /* East Asian ideograph */ + {"\x33", 0, 0x774A}, /* East Asian ideograph */ + {"\x35", 0, 0x7743}, /* East Asian ideograph */ + {"\x37", 0, 0x774E}, /* East Asian ideograph */ + {"\x3A", 0, 0x775F}, /* East Asian ideograph */ + {"\x3D", 0, 0x7760}, /* East Asian ideograph */ + {"\x3E", 0, 0x7752}, /* East Asian ideograph */ + {"\x42", 0, 0x7758}, /* East Asian ideograph */ + {"\x44", 0, 0x7756}, /* East Asian ideograph */ + {"\x45", 0, 0x775A}, /* East Asian ideograph */ + {"\x4F", 0, 0x7762}, /* East Asian ideograph */ + {"\x52", 0, 0x7780}, /* East Asian ideograph */ + {"\x56", 0, 0x776F}, /* East Asian ideograph */ + {"\x5D", 0, 0x777E}, /* East Asian ideograph */ + {"\x5F", 0, 0x7785}, /* East Asian ideograph */ + {"\x60", 0, 0x777A}, /* East Asian ideograph */ + {"\x66", 0, 0x778B}, /* East Asian ideograph (variant of EACC 4C6266) */ + {"\x6A", 0, 0x778D}, /* East Asian ideograph */ + {"\x72", 0, 0x7798}, /* East Asian ideograph */ + {"\x73", 0, 0x7796}, /* East Asian ideograph */ + {"\x75", 0, 0x77A2}, /* East Asian ideograph */ + {"\x76", 0, 0x7799}, /* East Asian ideograph */ + {"\x7A", 0, 0x77B5}, /* East Asian ideograph */ + {"\x7D", 0, 0x77B7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page147 = { + marc8_9page147_flat, 0 +}; +/* PAGE 146 */ +struct yaz_iconv_trie_flat marc8_9page146_flat[] = { + {"\x23", 0, 0x76CB}, /* East Asian ideograph */ + {"\x26", 0, 0x76CC}, /* East Asian ideograph */ + {"\x3B", 0, 0x76E6}, /* East Asian ideograph */ + {"\x3C", 0, 0x76E9}, /* East Asian ideograph */ + {"\x40", 0, 0x76EC}, /* East Asian ideograph */ + {"\x44", 0, 0x76ED}, /* East Asian ideograph */ + {"\x48", 0, 0x76F1}, /* East Asian ideograph */ + {"\x4B", 0, 0x7704}, /* East Asian ideograph */ + {"\x4F", 0, 0x7708}, /* East Asian ideograph */ + {"\x50", 0, 0x7707}, /* East Asian ideograph */ + {"\x53", 0, 0x76F7}, /* East Asian ideograph */ + {"\x54", 0, 0x770A}, /* East Asian ideograph */ + {"\x59", 0, 0x76FB}, /* East Asian ideograph */ + {"\x5E", 0, 0x772B}, /* East Asian ideograph */ + {"\x60", 0, 0x770E}, /* East Asian ideograph */ + {"\x62", 0, 0x771B}, /* East Asian ideograph */ + {"\x63", 0, 0x7724}, /* East Asian ideograph */ + {"\x6C", 0, 0x7722}, /* East Asian ideograph */ + {"\x6D", 0, 0x771A}, /* East Asian ideograph */ + {"\x6F", 0, 0x7721}, /* East Asian ideograph */ + {"\x74", 0, 0x7740}, /* East Asian ideograph */ + {"\x75", 0, 0x7739}, /* East Asian ideograph */ + {"\x76", 0, 0x772F}, /* East Asian ideograph */ + {"\x77", 0, 0x7731}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page146 = { + marc8_9page146_flat, 0 +}; +/* PAGE 145 */ +struct yaz_iconv_trie_flat marc8_9page145_flat[] = { + {"\x22", 0, 0x7664}, /* East Asian ideograph */ + {"\x24", 0, 0x7659}, /* East Asian ideograph */ + {"\x2B", 0, 0x765F}, /* East Asian ideograph */ + {"\x32", 0, 0x7667}, /* East Asian ideograph */ + {"\x35", 0, 0x766A}, /* East Asian ideograph */ + {"\x37", 0, 0x766D}, /* East Asian ideograph */ + {"\x38", 0, 0x766F}, /* East Asian ideograph */ + {"\x3A", 0, 0x7670}, /* East Asian ideograph */ + {"\x40", 0, 0x7676}, /* East Asian ideograph */ + {"\x41", 0, 0x7677}, /* East Asian ideograph */ + {"\x48", 0, 0x7680}, /* East Asian ideograph */ + {"\x4A", 0, 0x768B}, /* East Asian ideograph */ + {"\x52", 0, 0x7695}, /* East Asian ideograph */ + {"\x55", 0, 0x656B}, /* East Asian ideograph */ + {"\x59", 0, 0x7699}, /* East Asian ideograph */ + {"\x5D", 0, 0x769C}, /* East Asian ideograph */ + {"\x5F", 0, 0x769D}, /* East Asian ideograph */ + {"\x65", 0, 0x76A4}, /* East Asian ideograph */ + {"\x66", 0, 0x76A5}, /* East Asian ideograph */ + {"\x67", 0, 0x76A6}, /* East Asian ideograph */ + {"\x6A", 0, 0x76AA}, /* East Asian ideograph */ + {"\x6D", 0, 0x76AD}, /* East Asian ideograph */ + {"\x74", 0, 0x76B8}, /* East Asian ideograph */ + {"\x77", 0, 0x76BD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page145 = { + marc8_9page145_flat, 0 +}; +/* PAGE 144 */ +struct yaz_iconv_trie_flat marc8_9page144_flat[] = { + {"\x21", 0, 0x75F9}, /* East Asian ideograph */ + {"\x22", 0, 0x75FC}, /* East Asian ideograph */ + {"\x29", 0, 0x7616}, /* East Asian ideograph */ + {"\x2C", 0, 0x7608}, /* East Asian ideograph */ + {"\x2D", 0, 0x7615}, /* East Asian ideograph */ + {"\x2E", 0, 0x760C}, /* East Asian ideograph */ + {"\x2F", 0, 0x760F}, /* East Asian ideograph */ + {"\x3B", 0, 0x7610}, /* East Asian ideograph */ + {"\x3C", 0, 0x760A}, /* East Asian ideograph */ + {"\x3E", 0, 0x7625}, /* East Asian ideograph */ + {"\x3F", 0, 0x761A}, /* East Asian ideograph */ + {"\x40", 0, 0x761B}, /* East Asian ideograph */ + {"\x47", 0, 0x7619}, /* East Asian ideograph */ + {"\x48", 0, 0x761E}, /* East Asian ideograph */ + {"\x4C", 0, 0x761D}, /* East Asian ideograph */ + {"\x50", 0, 0x7622}, /* East Asian ideograph */ + {"\x51", 0, 0x762F}, /* East Asian ideograph */ + {"\x54", 0, 0x762D}, /* East Asian ideograph */ + {"\x5C", 0, 0x7633}, /* East Asian ideograph */ + {"\x5E", 0, 0x763B}, /* East Asian ideograph */ + {"\x5F", 0, 0x7630}, /* East Asian ideograph */ + {"\x60", 0, 0x763C}, /* East Asian ideograph */ + {"\x62", 0, 0x7635}, /* East Asian ideograph */ + {"\x67", 0, 0x7648}, /* East Asian ideograph */ + {"\x68", 0, 0x764E}, /* East Asian ideograph */ + {"\x69", 0, 0x7647}, /* East Asian ideograph */ + {"\x6A", 0, 0x7643}, /* East Asian ideograph */ + {"\x6E", 0, 0x764D}, /* East Asian ideograph */ + {"\x6F", 0, 0x7649}, /* East Asian ideograph */ + {"\x75", 0, 0x7654}, /* East Asian ideograph */ + {"\x7A", 0, 0x765C}, /* East Asian ideograph */ + {"\x7B", 0, 0x7657}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page144 = { + marc8_9page144_flat, 0 +}; +/* PAGE 143 */ +struct yaz_iconv_trie_flat marc8_9page143_flat[] = { + {"\x25", 0, 0x7583}, /* East Asian ideograph */ + {"\x2C", 0, 0x7590}, /* East Asian ideograph */ + {"\x2D", 0, 0x7592}, /* East Asian ideograph */ + {"\x2E", 0, 0x7594}, /* East Asian ideograph */ + {"\x31", 0, 0x7595}, /* East Asian ideograph */ + {"\x35", 0, 0x7598}, /* East Asian ideograph */ + {"\x37", 0, 0x75A2}, /* East Asian ideograph */ + {"\x3B", 0, 0x75A3}, /* East Asian ideograph */ + {"\x3E", 0, 0x75BA}, /* East Asian ideograph */ + {"\x43", 0, 0x75B0}, /* East Asian ideograph */ + {"\x44", 0, 0x75C3}, /* East Asian ideograph */ + {"\x46", 0, 0x75BF}, /* East Asian ideograph */ + {"\x47", 0, 0x75B4}, /* East Asian ideograph */ + {"\x4A", 0, 0x75C2}, /* East Asian ideograph */ + {"\x4E", 0, 0x75C1}, /* East Asian ideograph */ + {"\x50", 0, 0x75B1}, /* East Asian ideograph */ + {"\x51", 0, 0x75C4}, /* East Asian ideograph */ + {"\x58", 0, 0x75CD}, /* East Asian ideograph */ + {"\x5C", 0, 0x75CF}, /* East Asian ideograph */ + {"\x5E", 0, 0x75CC}, /* East Asian ideograph */ + {"\x5F", 0, 0x75D0}, /* East Asian ideograph */ + {"\x63", 0, 0x75E7}, /* East Asian ideograph */ + {"\x66", 0, 0x75E1}, /* East Asian ideograph */ + {"\x67", 0, 0x75E6}, /* East Asian ideograph */ + {"\x71", 0, 0x75E4}, /* East Asian ideograph */ + {"\x72", 0, 0x75E0}, /* East Asian ideograph */ + {"\x73", 0, 0x75D7}, /* East Asian ideograph */ + {"\x7A", 0, 0x7602}, /* East Asian ideograph */ + {"\x7E", 0, 0x7603}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page143 = { + marc8_9page143_flat, 0 +}; +/* PAGE 142 */ +struct yaz_iconv_trie_flat marc8_9page142_flat[] = { + {"\x25", 0, 0x750E}, /* East Asian ideograph */ + {"\x28", 0, 0x750D}, /* East Asian ideograph */ + {"\x2C", 0, 0x7511}, /* East Asian ideograph */ + {"\x2D", 0, 0x750F}, /* East Asian ideograph */ + {"\x32", 0, 0x7512}, /* East Asian ideograph */ + {"\x33", 0, 0x7513}, /* East Asian ideograph */ + {"\x39", 0, 0x7517}, /* East Asian ideograph */ + {"\x42", 0, 0x7521}, /* East Asian ideograph */ + {"\x44", 0, 0x7524}, /* East Asian ideograph */ + {"\x49", 0, 0x752F}, /* East Asian ideograph */ + {"\x4D", 0, 0x753A}, /* East Asian ideograph */ + {"\x4F", 0, 0x753F}, /* East Asian ideograph */ + {"\x51", 0, 0x7540}, /* East Asian ideograph */ + {"\x52", 0, 0x753E}, /* East Asian ideograph */ + {"\x55", 0, 0x754A}, /* East Asian ideograph */ + {"\x57", 0, 0x754E}, /* East Asian ideograph */ + {"\x58", 0, 0x7547}, /* East Asian ideograph */ + {"\x59", 0, 0x754B}, /* East Asian ideograph */ + {"\x5A", 0, 0x7548}, /* East Asian ideograph */ + {"\x5F", 0, 0x755F}, /* East Asian ideograph */ + {"\x60", 0, 0x755B}, /* East Asian ideograph */ + {"\x62", 0, 0x7564}, /* East Asian ideograph */ + {"\x67", 0, 0x7563}, /* East Asian ideograph */ + {"\x69", 0, 0x756F}, /* East Asian ideograph */ + {"\x6B", 0, 0x756C}, /* East Asian ideograph */ + {"\x6D", 0, 0x7579}, /* East Asian ideograph */ + {"\x6E", 0, 0x757A}, /* East Asian ideograph */ + {"\x71", 0, 0x7577}, /* East Asian ideograph */ + {"\x75", 0, 0x7571}, /* East Asian ideograph */ + {"\x79", 0, 0x757D}, /* East Asian ideograph */ + {"\x7E", 0, 0x757F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page142 = { + marc8_9page142_flat, 0 +}; +/* PAGE 141 */ +struct yaz_iconv_trie_flat marc8_9page141_flat[] = { + {"\x25", 0, 0x74BF}, /* East Asian ideograph */ + {"\x28", 0, 0x74B5}, /* East Asian ideograph */ + {"\x29", 0, 0x74BA}, /* East Asian ideograph */ + {"\x30", 0, 0x74C8}, /* East Asian ideograph */ + {"\x31", 0, 0x74C5}, /* East Asian ideograph */ + {"\x32", 0, 0x74CC}, /* East Asian ideograph */ + {"\x38", 0, 0x74D6}, /* East Asian ideograph */ + {"\x3A", 0, 0x74D4}, /* East Asian ideograph */ + {"\x3D", 0, 0x74D8}, /* East Asian ideograph */ + {"\x40", 0, 0x74DA}, /* East Asian ideograph */ + {"\x41", 0, 0x74DB}, /* East Asian ideograph */ + {"\x47", 0, 0x74DE}, /* East Asian ideograph */ + {"\x50", 0, 0x74E4}, /* East Asian ideograph */ + {"\x52", 0, 0x74E7}, /* East Asian ideograph */ + {"\x54", 0, 0x74E9}, /* East Asian ideograph */ + {"\x58", 0, 0x74F1}, /* East Asian ideograph */ + {"\x5A", 0, 0x74F0}, /* East Asian ideograph */ + {"\x5C", 0, 0x74EE}, /* East Asian ideograph */ + {"\x61", 0, 0x74F4}, /* East Asian ideograph */ + {"\x63", 0, 0x74F8}, /* East Asian ideograph */ + {"\x66", 0, 0x74FB}, /* East Asian ideograph */ + {"\x67", 0, 0x74FF}, /* East Asian ideograph */ + {"\x71", 0, 0x7505}, /* East Asian ideograph */ + {"\x77", 0, 0x7503}, /* East Asian ideograph */ + {"\x7D", 0, 0x7507}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page141 = { + marc8_9page141_flat, 0 +}; +/* PAGE 140 */ +struct yaz_iconv_trie_flat marc8_9page140_flat[] = { + {"\x21", 0, 0x7489}, /* East Asian ideograph */ + {"\x22", 0, 0x747C}, /* East Asian ideograph */ + {"\x27", 0, 0x7482}, /* East Asian ideograph */ + {"\x28", 0, 0x747E}, /* East Asian ideograph */ + {"\x2A", 0, 0x748A}, /* East Asian ideograph */ + {"\x2D", 0, 0x7486}, /* East Asian ideograph */ + {"\x30", 0, 0x747A}, /* East Asian ideograph */ + {"\x38", 0, 0x7480}, /* East Asian ideograph */ + {"\x3C", 0, 0x7481}, /* East Asian ideograph */ + {"\x3E", 0, 0x747D}, /* East Asian ideograph */ + {"\x3F", 0, 0x7485}, /* East Asian ideograph */ + {"\x40", 0, 0x7497}, /* East Asian ideograph */ + {"\x43", 0, 0x7498}, /* East Asian ideograph */ + {"\x45", 0, 0x749A}, /* East Asian ideograph */ + {"\x4D", 0, 0x74A4}, /* East Asian ideograph */ + {"\x54", 0, 0x749F}, /* East Asian ideograph */ + {"\x55", 0, 0x749D}, /* East Asian ideograph */ + {"\x56", 0, 0x748D}, /* East Asian ideograph */ + {"\x57", 0, 0x749E}, /* East Asian ideograph */ + {"\x59", 0, 0x74A0}, /* East Asian ideograph */ + {"\x5D", 0, 0x74A1}, /* East Asian ideograph */ + {"\x60", 0, 0x74B2}, /* East Asian ideograph */ + {"\x61", 0, 0x74B1}, /* East Asian ideograph */ + {"\x66", 0, 0x74B4}, /* East Asian ideograph */ + {"\x67", 0, 0x74AB}, /* East Asian ideograph */ + {"\x69", 0, 0x74AA}, /* East Asian ideograph */ + {"\x6A", 0, 0x7490}, /* East Asian ideograph */ + {"\x6C", 0, 0x74A5}, /* East Asian ideograph */ + {"\x6E", 0, 0x74A8}, /* East Asian ideograph */ + {"\x76", 0, 0x74B8}, /* East Asian ideograph */ + {"\x7A", 0, 0x74C0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page140 = { + marc8_9page140_flat, 0 +}; +/* PAGE 139 */ +struct yaz_iconv_trie_flat marc8_9page139_flat[] = { + {"\x21", 0, 0x7428}, /* East Asian ideograph */ + {"\x23", 0, 0x7429}, /* East Asian ideograph */ + {"\x28", 0, 0x7420}, /* East Asian ideograph */ + {"\x2A", 0, 0x741B}, /* East Asian ideograph */ + {"\x2B", 0, 0x7424}, /* East Asian ideograph */ + {"\x2C", 0, 0x7432}, /* East Asian ideograph */ + {"\x2D", 0, 0x742D}, /* East Asian ideograph */ + {"\x30", 0, 0x7415}, /* East Asian ideograph */ + {"\x32", 0, 0x743B}, /* East Asian ideograph */ + {"\x36", 0, 0x7444}, /* East Asian ideograph */ + {"\x40", 0, 0x7447}, /* East Asian ideograph */ + {"\x43", 0, 0x7458}, /* East Asian ideograph */ + {"\x45", 0, 0x7442}, /* East Asian ideograph */ + {"\x47", 0, 0x744B}, /* East Asian ideograph */ + {"\x4A", 0, 0x744A}, /* East Asian ideograph */ + {"\x4F", 0, 0x7452}, /* East Asian ideograph */ + {"\x55", 0, 0x7457}, /* East Asian ideograph */ + {"\x56", 0, 0x7451}, /* East Asian ideograph */ + {"\x5A", 0, 0x745D}, /* East Asian ideograph */ + {"\x5B", 0, 0x7454}, /* East Asian ideograph */ + {"\x5D", 0, 0x7440}, /* East Asian ideograph */ + {"\x60", 0, 0x746D}, /* East Asian ideograph */ + {"\x61", 0, 0x7462}, /* East Asian ideograph */ + {"\x62", 0, 0x7473}, /* East Asian ideograph */ + {"\x68", 0, 0x7474}, /* East Asian ideograph */ + {"\x69", 0, 0x746E}, /* East Asian ideograph */ + {"\x6A", 0, 0x7471}, /* East Asian ideograph */ + {"\x6B", 0, 0x7468}, /* East Asian ideograph */ + {"\x78", 0, 0x7460}, /* East Asian ideograph */ + {"\x79", 0, 0x7472}, /* East Asian ideograph */ + {"\x7A", 0, 0x7484}, /* East Asian ideograph */ + {"\x7B", 0, 0x7487}, /* East Asian ideograph */ + {"\x7E", 0, 0x7488}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page139 = { + marc8_9page139_flat, 0 +}; +/* PAGE 138 */ +struct yaz_iconv_trie_flat marc8_9page138_flat[] = { + {"\x21", 0, 0x73D3}, /* East Asian ideograph */ + {"\x27", 0, 0x73EA}, /* East Asian ideograph */ + {"\x28", 0, 0x73E5}, /* East Asian ideograph */ + {"\x2A", 0, 0x73D9}, /* East Asian ideograph */ + {"\x2B", 0, 0x73EF}, /* East Asian ideograph */ + {"\x2F", 0, 0x73D4}, /* East Asian ideograph */ + {"\x30", 0, 0x73DB}, /* East Asian ideograph */ + {"\x32", 0, 0x73D6}, /* East Asian ideograph */ + {"\x35", 0, 0x73BC}, /* East Asian ideograph */ + {"\x36", 0, 0x73E7}, /* East Asian ideograph */ + {"\x38", 0, 0x73E3}, /* East Asian ideograph */ + {"\x3A", 0, 0x73DE}, /* East Asian ideograph */ + {"\x3C", 0, 0x73E6}, /* East Asian ideograph */ + {"\x3F", 0, 0x73E9}, /* East Asian ideograph */ + {"\x45", 0, 0x73F6}, /* East Asian ideograph */ + {"\x47", 0, 0x73FA}, /* East Asian ideograph */ + {"\x4A", 0, 0x73F8}, /* East Asian ideograph */ + {"\x54", 0, 0x73F5}, /* East Asian ideograph */ + {"\x5A", 0, 0x73FD}, /* East Asian ideograph */ + {"\x5C", 0, 0x7407}, /* East Asian ideograph */ + {"\x5E", 0, 0x7412}, /* East Asian ideograph */ + {"\x63", 0, 0x743C}, /* East Asian ideograph */ + {"\x66", 0, 0x742E}, /* East Asian ideograph */ + {"\x67", 0, 0x742F}, /* East Asian ideograph */ + {"\x69", 0, 0x7414}, /* East Asian ideograph */ + {"\x6A", 0, 0x742C}, /* East Asian ideograph */ + {"\x6C", 0, 0x7430}, /* East Asian ideograph */ + {"\x6E", 0, 0x742B}, /* East Asian ideograph */ + {"\x70", 0, 0x73F7}, /* East Asian ideograph */ + {"\x71", 0, 0x741A}, /* East Asian ideograph */ + {"\x78", 0, 0x7416}, /* East Asian ideograph */ + {"\x7A", 0, 0x7426}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page138 = { + marc8_9page138_flat, 0 +}; +/* PAGE 137 */ +struct yaz_iconv_trie_flat marc8_9page137_flat[] = { + {"\x21", 0, 0x734B}, /* East Asian ideograph */ + {"\x25", 0, 0x7367}, /* East Asian ideograph */ + {"\x29", 0, 0x736C}, /* East Asian ideograph */ + {"\x2B", 0, 0x736B}, /* East Asian ideograph */ + {"\x2F", 0, 0x736F}, /* East Asian ideograph */ + {"\x36", 0, 0x737C}, /* East Asian ideograph */ + {"\x38", 0, 0x737E}, /* East Asian ideograph */ + {"\x3B", 0, 0x7381}, /* East Asian ideograph */ + {"\x3F", 0, 0x7388}, /* East Asian ideograph */ + {"\x42", 0, 0x738E}, /* East Asian ideograph */ + {"\x46", 0, 0x7395}, /* East Asian ideograph */ + {"\x47", 0, 0x7392}, /* East Asian ideograph */ + {"\x48", 0, 0x7397}, /* East Asian ideograph */ + {"\x4C", 0, 0x7393}, /* East Asian ideograph */ + {"\x4D", 0, 0x7394}, /* East Asian ideograph */ + {"\x51", 0, 0x739E}, /* East Asian ideograph */ + {"\x52", 0, 0x73A6}, /* East Asian ideograph */ + {"\x5D", 0, 0x73A5}, /* East Asian ideograph */ + {"\x62", 0, 0x73A2}, /* East Asian ideograph */ + {"\x63", 0, 0x73A0}, /* East Asian ideograph */ + {"\x67", 0, 0x73B6}, /* East Asian ideograph */ + {"\x68", 0, 0x73CF}, /* East Asian ideograph */ + {"\x6A", 0, 0x73C2}, /* East Asian ideograph */ + {"\x6B", 0, 0x73D0}, /* East Asian ideograph */ + {"\x6F", 0, 0x73BF}, /* East Asian ideograph */ + {"\x70", 0, 0x73C8}, /* East Asian ideograph */ + {"\x7D", 0, 0x73CC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page137 = { + marc8_9page137_flat, 0 +}; +/* PAGE 136 */ +struct yaz_iconv_trie_flat marc8_9page136_flat[] = { + {"\x24", 0, 0x72F4}, /* East Asian ideograph */ + {"\x25", 0, 0x72FE}, /* East Asian ideograph */ + {"\x29", 0, 0x7302}, /* East Asian ideograph */ + {"\x2C", 0, 0x72FB}, /* East Asian ideograph */ + {"\x2D", 0, 0x7301}, /* East Asian ideograph */ + {"\x2E", 0, 0x72F3}, /* East Asian ideograph */ + {"\x31", 0, 0x731D}, /* East Asian ideograph */ + {"\x35", 0, 0x730B}, /* East Asian ideograph */ + {"\x36", 0, 0x7317}, /* East Asian ideograph */ + {"\x3B", 0, 0x7307}, /* East Asian ideograph */ + {"\x3E", 0, 0x7318}, /* East Asian ideograph */ + {"\x42", 0, 0x731E}, /* East Asian ideograph */ + {"\x46", 0, 0x7331}, /* East Asian ideograph */ + {"\x49", 0, 0x7338}, /* East Asian ideograph */ + {"\x4A", 0, 0x7322}, /* East Asian ideograph */ + {"\x4C", 0, 0x7332}, /* East Asian ideograph */ + {"\x4D", 0, 0x732C}, /* East Asian ideograph */ + {"\x4E", 0, 0x7327}, /* East Asian ideograph */ + {"\x4F", 0, 0x732B}, /* East Asian ideograph */ + {"\x52", 0, 0x732F}, /* East Asian ideograph */ + {"\x55", 0, 0x7328}, /* East Asian ideograph */ + {"\x5A", 0, 0x7347}, /* East Asian ideograph */ + {"\x5B", 0, 0x7348}, /* East Asian ideograph */ + {"\x5C", 0, 0x7349}, /* East Asian ideograph */ + {"\x5F", 0, 0x733B}, /* East Asian ideograph */ + {"\x62", 0, 0x733A}, /* East Asian ideograph */ + {"\x65", 0, 0x7340}, /* East Asian ideograph */ + {"\x68", 0, 0x734D}, /* East Asian ideograph */ + {"\x6B", 0, 0x7352}, /* East Asian ideograph */ + {"\x72", 0, 0x735E}, /* East Asian ideograph */ + {"\x74", 0, 0x735D}, /* East Asian ideograph */ + {"\x79", 0, 0x7360}, /* East Asian ideograph */ + {"\x7B", 0, 0x7358}, /* East Asian ideograph */ + {"\x7E", 0, 0x7362}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page136 = { + marc8_9page136_flat, 0 +}; +/* PAGE 135 */ +struct yaz_iconv_trie_flat marc8_9page135_flat[] = { + {"\x22", 0, 0x728D}, /* East Asian ideograph */ + {"\x28", 0, 0x728F}, /* East Asian ideograph */ + {"\x48", 0, 0x72A8}, /* East Asian ideograph */ + {"\x4C", 0, 0x72AB}, /* East Asian ideograph */ + {"\x4E", 0, 0x72B0}, /* East Asian ideograph */ + {"\x4F", 0, 0x72B4}, /* East Asian ideograph */ + {"\x51", 0, 0x72C6}, /* East Asian ideograph */ + {"\x52", 0, 0x72B5}, /* East Asian ideograph */ + {"\x56", 0, 0x72BC}, /* East Asian ideograph */ + {"\x58", 0, 0x72C3}, /* East Asian ideograph */ + {"\x5B", 0, 0x72C1}, /* East Asian ideograph */ + {"\x60", 0, 0x72D6}, /* East Asian ideograph */ + {"\x64", 0, 0x72D2}, /* East Asian ideograph */ + {"\x67", 0, 0x72C9}, /* East Asian ideograph */ + {"\x6C", 0, 0x72CC}, /* East Asian ideograph */ + {"\x6E", 0, 0x72DB}, /* East Asian ideograph */ + {"\x6F", 0, 0x72CD}, /* East Asian ideograph */ + {"\x73", 0, 0x72E8}, /* East Asian ideograph */ + {"\x76", 0, 0x72EB}, /* East Asian ideograph */ + {"\x79", 0, 0x72E5}, /* East Asian ideograph */ + {"\x7E", 0, 0x72FA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page135 = { + marc8_9page135_flat, 0 +}; +/* PAGE 134 */ +struct yaz_iconv_trie_flat marc8_9page134_flat[] = { + {"\x21", 0, 0x721D}, /* East Asian ideograph */ + {"\x29", 0, 0x7225}, /* East Asian ideograph */ + {"\x2A", 0, 0x7226}, /* East Asian ideograph */ + {"\x41", 0, 0x723F}, /* East Asian ideograph */ + {"\x43", 0, 0x7241}, /* East Asian ideograph */ + {"\x44", 0, 0x7242}, /* East Asian ideograph */ + {"\x4F", 0, 0x7250}, /* East Asian ideograph */ + {"\x51", 0, 0x724F}, /* East Asian ideograph */ + {"\x52", 0, 0x7253}, /* East Asian ideograph */ + {"\x53", 0, 0x7255}, /* East Asian ideograph */ + {"\x56", 0, 0x725A}, /* East Asian ideograph */ + {"\x59", 0, 0x7263}, /* East Asian ideograph */ + {"\x61", 0, 0x7273}, /* East Asian ideograph */ + {"\x63", 0, 0x726E}, /* East Asian ideograph */ + {"\x66", 0, 0x7276}, /* East Asian ideograph */ + {"\x68", 0, 0x7277}, /* East Asian ideograph */ + {"\x6B", 0, 0x727E}, /* East Asian ideograph */ + {"\x6D", 0, 0x727C}, /* East Asian ideograph */ + {"\x71", 0, 0x727F}, /* East Asian ideograph */ + {"\x74", 0, 0x7289}, /* East Asian ideograph */ + {"\x7C", 0, 0x728B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page134 = { + marc8_9page134_flat, 0 +}; +/* PAGE 133 */ +struct yaz_iconv_trie_flat marc8_9page133_flat[] = { + {"\x21", 0, 0x71DD}, /* East Asian ideograph */ + {"\x22", 0, 0x71C0}, /* East Asian ideograph */ + {"\x24", 0, 0x71C1}, /* East Asian ideograph */ + {"\x26", 0, 0x71D4}, /* East Asian ideograph */ + {"\x29", 0, 0x71CB}, /* East Asian ideograph */ + {"\x2A", 0, 0x71DE}, /* East Asian ideograph */ + {"\x32", 0, 0x71EB}, /* East Asian ideograph */ + {"\x36", 0, 0x71E8}, /* East Asian ideograph */ + {"\x3A", 0, 0x71F5}, /* East Asian ideograph */ + {"\x3D", 0, 0x71F3}, /* East Asian ideograph */ + {"\x3F", 0, 0x71E1}, /* East Asian ideograph */ + {"\x47", 0, 0x71E0}, /* East Asian ideograph */ + {"\x4B", 0, 0x720C}, /* East Asian ideograph */ + {"\x4F", 0, 0x71FC}, /* East Asian ideograph */ + {"\x56", 0, 0x71F9}, /* East Asian ideograph */ + {"\x5B", 0, 0x720E}, /* East Asian ideograph */ + {"\x5C", 0, 0x5911}, /* East Asian ideograph */ + {"\x5E", 0, 0x720A}, /* East Asian ideograph */ + {"\x60", 0, 0x7217}, /* East Asian ideograph */ + {"\x61", 0, 0x7207}, /* East Asian ideograph */ + {"\x66", 0, 0x7215}, /* East Asian ideograph */ + {"\x69", 0, 0x7213}, /* East Asian ideograph */ + {"\x6E", 0, 0x7218}, /* East Asian ideograph */ + {"\x71", 0, 0x720B}, /* East Asian ideograph */ + {"\x79", 0, 0x721A}, /* East Asian ideograph */ + {"\x7D", 0, 0x721F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page133 = { + marc8_9page133_flat, 0 +}; +/* PAGE 132 */ +struct yaz_iconv_trie_flat marc8_9page132_flat[] = { + {"\x23", 0, 0x7192}, /* East Asian ideograph */ + {"\x2B", 0, 0x7180}, /* East Asian ideograph */ + {"\x2C", 0, 0x7189}, /* East Asian ideograph */ + {"\x32", 0, 0x7185}, /* East Asian ideograph */ + {"\x33", 0, 0x7196}, /* East Asian ideograph */ + {"\x36", 0, 0x717C}, /* East Asian ideograph */ + {"\x39", 0, 0x7198}, /* East Asian ideograph */ + {"\x3C", 0, 0x7197}, /* East Asian ideograph */ + {"\x3E", 0, 0x71B5}, /* East Asian ideograph */ + {"\x3F", 0, 0x71A9}, /* East Asian ideograph */ + {"\x42", 0, 0x71A5}, /* East Asian ideograph */ + {"\x46", 0, 0x719E}, /* East Asian ideograph */ + {"\x47", 0, 0x71B2}, /* East Asian ideograph */ + {"\x4A", 0, 0x719B}, /* East Asian ideograph */ + {"\x4E", 0, 0x71AF}, /* East Asian ideograph */ + {"\x51", 0, 0x71A4}, /* East Asian ideograph */ + {"\x52", 0, 0x71A0}, /* East Asian ideograph */ + {"\x55", 0, 0x719A}, /* East Asian ideograph */ + {"\x57", 0, 0x71B3}, /* East Asian ideograph */ + {"\x59", 0, 0x71B4}, /* East Asian ideograph */ + {"\x67", 0, 0x71D1}, /* East Asian ideograph */ + {"\x69", 0, 0x71C7}, /* East Asian ideograph */ + {"\x6A", 0, 0x71B7}, /* East Asian ideograph */ + {"\x6D", 0, 0x71CA}, /* East Asian ideograph */ + {"\x6F", 0, 0x71CF}, /* East Asian ideograph */ + {"\x70", 0, 0x71D6}, /* East Asian ideograph */ + {"\x72", 0, 0x71BA}, /* East Asian ideograph */ + {"\x75", 0, 0x71C2}, /* East Asian ideograph */ + {"\x77", 0, 0x71C5}, /* East Asian ideograph */ + {"\x7A", 0, 0x71BF}, /* East Asian ideograph */ + {"\x7C", 0, 0x71B8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page132 = { + marc8_9page132_flat, 0 +}; +/* PAGE 131 */ +struct yaz_iconv_trie_flat marc8_9page131_flat[] = { + {"\x27", 0, 0x7139}, /* East Asian ideograph */ + {"\x28", 0, 0x7135}, /* East Asian ideograph */ + {"\x2C", 0, 0x713B}, /* East Asian ideograph */ + {"\x2E", 0, 0x711C}, /* East Asian ideograph */ + {"\x32", 0, 0x713D}, /* East Asian ideograph */ + {"\x35", 0, 0x712F}, /* East Asian ideograph */ + {"\x3B", 0, 0x7129}, /* East Asian ideograph */ + {"\x43", 0, 0x712E}, /* East Asian ideograph */ + {"\x48", 0, 0x7177}, /* East Asian ideograph */ + {"\x51", 0, 0x7146}, /* East Asian ideograph */ + {"\x52", 0, 0x7152}, /* East Asian ideograph */ + {"\x54", 0, 0x714F}, /* East Asian ideograph */ + {"\x55", 0, 0x715D}, /* East Asian ideograph */ + {"\x56", 0, 0x7141}, /* East Asian ideograph */ + {"\x57", 0, 0x7160}, /* East Asian ideograph */ + {"\x59", 0, 0x7175}, /* East Asian ideograph */ + {"\x5A", 0, 0x7173}, /* East Asian ideograph */ + {"\x5C", 0, 0x7143}, /* East Asian ideograph */ + {"\x5D", 0, 0x715A}, /* East Asian ideograph */ + {"\x5E", 0, 0x7176}, /* East Asian ideograph */ + {"\x60", 0, 0x714B}, /* East Asian ideograph */ + {"\x62", 0, 0x7147}, /* East Asian ideograph */ + {"\x65", 0, 0x7168}, /* East Asian ideograph */ + {"\x66", 0, 0x7171}, /* East Asian ideograph */ + {"\x67", 0, 0x715F}, /* East Asian ideograph */ + {"\x69", 0, 0x7150}, /* East Asian ideograph */ + {"\x6B", 0, 0x7153}, /* East Asian ideograph */ + {"\x70", 0, 0x7144}, /* East Asian ideograph */ + {"\x76", 0, 0x7172}, /* East Asian ideograph */ + {"\x78", 0, 0x7178}, /* East Asian ideograph */ + {"\x7B", 0, 0x7187}, /* East Asian ideograph */ + {"\x7C", 0, 0x717B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page131 = { + marc8_9page131_flat, 0 +}; +/* PAGE 130 */ +struct yaz_iconv_trie_flat marc8_9page130_flat[] = { + {"\x22", 0, 0x70DD}, /* East Asian ideograph */ + {"\x23", 0, 0x70E1}, /* East Asian ideograph */ + {"\x26", 0, 0x70E3}, /* East Asian ideograph */ + {"\x28", 0, 0x70E0}, /* East Asian ideograph */ + {"\x2B", 0, 0x70D4}, /* East Asian ideograph */ + {"\x2E", 0, 0x70D1}, /* East Asian ideograph */ + {"\x38", 0, 0x70CB}, /* East Asian ideograph */ + {"\x3A", 0, 0x70D0}, /* East Asian ideograph */ + {"\x3B", 0, 0x70C7}, /* East Asian ideograph */ + {"\x3C", 0, 0x70DA}, /* East Asian ideograph */ + {"\x3D", 0, 0x70C6}, /* East Asian ideograph */ + {"\x3F", 0, 0x70FA}, /* East Asian ideograph */ + {"\x42", 0, 0x70F7}, /* East Asian ideograph */ + {"\x44", 0, 0x7104}, /* East Asian ideograph */ + {"\x48", 0, 0x70F3}, /* East Asian ideograph */ + {"\x4A", 0, 0x7110}, /* East Asian ideograph */ + {"\x4C", 0, 0x7103}, /* East Asian ideograph */ + {"\x50", 0, 0x70F4}, /* East Asian ideograph */ + {"\x55", 0, 0x7111}, /* East Asian ideograph */ + {"\x56", 0, 0x7112}, /* East Asian ideograph */ + {"\x5C", 0, 0x710C}, /* East Asian ideograph */ + {"\x60", 0, 0x70F6}, /* East Asian ideograph */ + {"\x66", 0, 0x7113}, /* East Asian ideograph */ + {"\x67", 0, 0x70EF}, /* East Asian ideograph */ + {"\x68", 0, 0x7100}, /* East Asian ideograph */ + {"\x6C", 0, 0x711E}, /* East Asian ideograph */ + {"\x6D", 0, 0x7134}, /* East Asian ideograph */ + {"\x6E", 0, 0x7120}, /* East Asian ideograph */ + {"\x6F", 0, 0x713F}, /* East Asian ideograph */ + {"\x74", 0, 0x7131}, /* East Asian ideograph */ + {"\x75", 0, 0x712D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page130 = { + marc8_9page130_flat, 0 +}; +/* PAGE 129 */ +struct yaz_iconv_trie_flat marc8_9page129_flat[] = { + {"\x21", 0, 0x9E02}, /* East Asian ideograph */ + {"\x25", 0, 0x7066}, /* East Asian ideograph */ + {"\x27", 0, 0x7065}, /* East Asian ideograph */ + {"\x28", 0, 0x7068}, /* East Asian ideograph */ + {"\x29", 0, 0x7054}, /* East Asian ideograph */ + {"\x39", 0, 0x7074}, /* East Asian ideograph */ + {"\x3B", 0, 0x707A}, /* East Asian ideograph */ + {"\x40", 0, 0x7093}, /* East Asian ideograph */ + {"\x42", 0, 0x7086}, /* East Asian ideograph */ + {"\x48", 0, 0x7096}, /* East Asian ideograph */ + {"\x49", 0, 0x7084}, /* East Asian ideograph */ + {"\x4A", 0, 0x7081}, /* East Asian ideograph */ + {"\x56", 0, 0x7088}, /* East Asian ideograph */ + {"\x57", 0, 0x7098}, /* East Asian ideograph */ + {"\x59", 0, 0x708C}, /* East Asian ideograph */ + {"\x5C", 0, 0x70B7}, /* East Asian ideograph */ + {"\x62", 0, 0x70A1}, /* East Asian ideograph */ + {"\x63", 0, 0x70A3}, /* East Asian ideograph */ + {"\x68", 0, 0x7551}, /* East Asian ideograph */ + {"\x6F", 0, 0x70A7}, /* East Asian ideograph */ + {"\x70", 0, 0x79CC}, /* East Asian ideograph */ + {"\x71", 0, 0x70B5}, /* East Asian ideograph */ + {"\x72", 0, 0x70BF}, /* East Asian ideograph */ + {"\x73", 0, 0x70A9}, /* East Asian ideograph */ + {"\x78", 0, 0x70EA}, /* East Asian ideograph */ + {"\x7B", 0, 0x70E5}, /* East Asian ideograph */ + {"\x7C", 0, 0x70DC}, /* East Asian ideograph */ + {"\x7D", 0, 0x70D3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page129 = { + marc8_9page129_flat, 0 +}; +/* PAGE 128 */ +struct yaz_iconv_trie_flat marc8_9page128_flat[] = { + {"\x24", 0, 0x7020}, /* East Asian ideograph */ + {"\x26", 0, 0x7027}, /* East Asian ideograph */ + {"\x2B", 0, 0x701E}, /* East Asian ideograph (variant of EACC 4C4F2B) */ + {"\x2F", 0, 0x702E}, /* East Asian ideograph */ + {"\x31", 0, 0x702D}, /* East Asian ideograph */ + {"\x35", 0, 0x7021}, /* East Asian ideograph */ + {"\x39", 0, 0x7018}, /* East Asian ideograph */ + {"\x3A", 0, 0x7023}, /* East Asian ideograph */ + {"\x41", 0, 0x703C}, /* East Asian ideograph */ + {"\x44", 0, 0x7035}, /* East Asian ideograph */ + {"\x51", 0, 0x7034}, /* East Asian ideograph */ + {"\x53", 0, 0x7039}, /* East Asian ideograph */ + {"\x54", 0, 0x703A}, /* East Asian ideograph */ + {"\x5D", 0, 0x7043}, /* East Asian ideograph */ + {"\x61", 0, 0x7044}, /* East Asian ideograph */ + {"\x67", 0, 0x7047}, /* East Asian ideograph */ + {"\x69", 0, 0x7049}, /* East Asian ideograph */ + {"\x6B", 0, 0x7055}, /* East Asian ideograph */ + {"\x71", 0, 0x7052}, /* East Asian ideograph */ + {"\x73", 0, 0x705C}, /* East Asian ideograph */ + {"\x78", 0, 0x7059}, /* East Asian ideograph */ + {"\x7B", 0, 0x705E}, /* East Asian ideograph */ + {"\x7C", 0, 0x7061}, /* East Asian ideograph */ + {"\x7D", 0, 0x705D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page128 = { + marc8_9page128_flat, 0 +}; +/* PAGE 127 */ +struct yaz_iconv_trie_flat marc8_9page127_flat[] = { + {"\x21", 0, 0x6FAA}, /* East Asian ideograph */ + {"\x25", 0, 0x6FBF}, /* East Asian ideograph */ + {"\x26", 0, 0x6FC7}, /* East Asian ideograph */ + {"\x2D", 0, 0x6FC9}, /* East Asian ideograph */ + {"\x2E", 0, 0x6F5E}, /* East Asian ideograph */ + {"\x2F", 0, 0x6FC8}, /* East Asian ideograph */ + {"\x30", 0, 0x6FA0}, /* East Asian ideograph */ + {"\x32", 0, 0x6FCA}, /* East Asian ideograph */ + {"\x35", 0, 0x6FB4}, /* East Asian ideograph */ + {"\x37", 0, 0x6FAF}, /* East Asian ideograph */ + {"\x3C", 0, 0x6FA8}, /* East Asian ideograph */ + {"\x40", 0, 0x6FA5}, /* East Asian ideograph */ + {"\x41", 0, 0x6FB0}, /* East Asian ideograph */ + {"\x42", 0, 0x6FAE}, /* East Asian ideograph */ + {"\x43", 0, 0x6FD9}, /* East Asian ideograph */ + {"\x44", 0, 0x6FDA}, /* East Asian ideograph */ + {"\x50", 0, 0x6FD4}, /* East Asian ideograph */ + {"\x56", 0, 0x6FE9}, /* East Asian ideograph */ + {"\x57", 0, 0x6FF8}, /* East Asian ideograph */ + {"\x5D", 0, 0x6FDE}, /* East Asian ideograph */ + {"\x5E", 0, 0x6FEE}, /* East Asian ideograph */ + {"\x62", 0, 0x6FF0}, /* East Asian ideograph */ + {"\x66", 0, 0x7005}, /* East Asian ideograph */ + {"\x67", 0, 0x700C}, /* East Asian ideograph */ + {"\x6A", 0, 0x700D}, /* East Asian ideograph */ + {"\x72", 0, 0x7026}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page127 = { + marc8_9page127_flat, 0 +}; +/* PAGE 126 */ +struct yaz_iconv_trie_flat marc8_9page126_flat[] = { + {"\x23", 0, 0x6F7E}, /* East Asian ideograph */ + {"\x24", 0, 0x6F9D}, /* East Asian ideograph */ + {"\x27", 0, 0x6F87}, /* East Asian ideograph */ + {"\x2B", 0, 0x6F6F}, /* East Asian ideograph */ + {"\x2F", 0, 0x6F5A}, /* East Asian ideograph */ + {"\x30", 0, 0x6F60}, /* East Asian ideograph */ + {"\x35", 0, 0x6F90}, /* East Asian ideograph */ + {"\x37", 0, 0x6F8D}, /* East Asian ideograph */ + {"\x39", 0, 0x6F92}, /* East Asian ideograph */ + {"\x3A", 0, 0x6F89}, /* East Asian ideograph */ + {"\x3C", 0, 0x6F8C}, /* East Asian ideograph */ + {"\x3D", 0, 0x6F62}, /* East Asian ideograph (variant of EACC 4C4D3D) */ + {"\x44", 0, 0x6F0B}, /* East Asian ideograph */ + {"\x4B", 0, 0x6F6C}, /* East Asian ideograph */ + {"\x4D", 0, 0x6F8B}, /* East Asian ideograph */ + {"\x58", 0, 0x6E88}, /* East Asian ideograph */ + {"\x5A", 0, 0x6F55}, /* East Asian ideograph */ + {"\x5F", 0, 0x6F72}, /* East Asian ideograph */ + {"\x62", 0, 0x6F57}, /* East Asian ideograph */ + {"\x63", 0, 0x6F5F}, /* East Asian ideograph */ + {"\x68", 0, 0x6F5D}, /* East Asian ideograph */ + {"\x73", 0, 0x6FB6}, /* East Asian ideograph */ + {"\x74", 0, 0x6F9F}, /* East Asian ideograph */ + {"\x79", 0, 0x6FA6}, /* East Asian ideograph */ + {"\x7C", 0, 0x6FC6}, /* East Asian ideograph */ + {"\x7D", 0, 0x6FBC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page126 = { + marc8_9page126_flat, 0 +}; +/* PAGE 125 */ +struct yaz_iconv_trie_flat marc8_9page125_flat[] = { + {"\x21", 0, 0x6EC3}, /* East Asian ideograph */ + {"\x24", 0, 0x6EB4}, /* East Asian ideograph */ + {"\x26", 0, 0x6EB2}, /* East Asian ideograph */ + {"\x29", 0, 0x6EB5}, /* East Asian ideograph */ + {"\x2E", 0, 0x6EF8}, /* East Asian ideograph */ + {"\x30", 0, 0x6F37}, /* East Asian ideograph */ + {"\x34", 0, 0x6EFD}, /* East Asian ideograph */ + {"\x35", 0, 0x6F09}, /* East Asian ideograph */ + {"\x3C", 0, 0x6F3B}, /* East Asian ideograph */ + {"\x3D", 0, 0x6F63}, /* East Asian ideograph */ + {"\x3E", 0, 0x6F12}, /* East Asian ideograph */ + {"\x3F", 0, 0x6F26}, /* East Asian ideograph */ + {"\x41", 0, 0x6F1A}, /* East Asian ideograph */ + {"\x42", 0, 0x6EF6}, /* East Asian ideograph */ + {"\x43", 0, 0x6F19}, /* East Asian ideograph */ + {"\x44", 0, 0x6F00}, /* East Asian ideograph */ + {"\x4B", 0, 0x6F24}, /* East Asian ideograph */ + {"\x51", 0, 0x6F18}, /* East Asian ideograph */ + {"\x57", 0, 0x6F1F}, /* East Asian ideograph */ + {"\x5A", 0, 0x6F0A}, /* East Asian ideograph */ + {"\x5E", 0, 0x6F36}, /* East Asian ideograph */ + {"\x60", 0, 0x6EF9}, /* East Asian ideograph */ + {"\x61", 0, 0x6EEE}, /* East Asian ideograph */ + {"\x62", 0, 0x6F41}, /* East Asian ideograph */ + {"\x64", 0, 0x6F95}, /* East Asian ideograph */ + {"\x65", 0, 0x6F2D}, /* East Asian ideograph */ + {"\x67", 0, 0x6F34}, /* East Asian ideograph */ + {"\x6B", 0, 0x6F49}, /* East Asian ideograph */ + {"\x6D", 0, 0x6F30}, /* East Asian ideograph */ + {"\x76", 0, 0x6EFA}, /* East Asian ideograph */ + {"\x77", 0, 0x6EEB}, /* East Asian ideograph */ + {"\x78", 0, 0x6F08}, /* East Asian ideograph */ + {"\x79", 0, 0x6F0E}, /* East Asian ideograph */ + {"\x7B", 0, 0x6F35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page125 = { + marc8_9page125_flat, 0 +}; +/* PAGE 124 */ +struct yaz_iconv_trie_flat marc8_9page124_flat[] = { + {"\x22", 0, 0x6E28}, /* East Asian ideograph */ + {"\x24", 0, 0x6E5C}, /* East Asian ideograph */ + {"\x26", 0, 0x6E31}, /* East Asian ideograph */ + {"\x28", 0, 0x6E5E}, /* East Asian ideograph */ + {"\x2C", 0, 0x6E84}, /* East Asian ideograph */ + {"\x2E", 0, 0x6E2E}, /* East Asian ideograph */ + {"\x30", 0, 0x6E36}, /* East Asian ideograph */ + {"\x31", 0, 0x6E5D}, /* East Asian ideograph */ + {"\x32", 0, 0x6E72}, /* East Asian ideograph */ + {"\x33", 0, 0x6E30}, /* East Asian ideograph */ + {"\x34", 0, 0x6E53}, /* East Asian ideograph */ + {"\x36", 0, 0x6E39}, /* East Asian ideograph */ + {"\x37", 0, 0x6E71}, /* East Asian ideograph */ + {"\x38", 0, 0x6E69}, /* East Asian ideograph */ + {"\x39", 0, 0x6E6B}, /* East Asian ideograph */ + {"\x3B", 0, 0x6E8B}, /* East Asian ideograph */ + {"\x3E", 0, 0x6E76}, /* East Asian ideograph */ + {"\x40", 0, 0x6E2A}, /* East Asian ideograph */ + {"\x41", 0, 0x6E4C}, /* East Asian ideograph */ + {"\x42", 0, 0x6E22}, /* East Asian ideograph */ + {"\x43", 0, 0x6ECE}, /* East Asian ideograph */ + {"\x45", 0, 0x6E9B}, /* East Asian ideograph */ + {"\x46", 0, 0x6E9F}, /* East Asian ideograph */ + {"\x48", 0, 0x6EC8}, /* East Asian ideograph */ + {"\x49", 0, 0x6ED8}, /* East Asian ideograph */ + {"\x4A", 0, 0x6E8F}, /* East Asian ideograph */ + {"\x4D", 0, 0x6E93}, /* East Asian ideograph */ + {"\x4F", 0, 0x6EA0}, /* East Asian ideograph */ + {"\x51", 0, 0x6EB1}, /* East Asian ideograph */ + {"\x57", 0, 0x6EA8}, /* East Asian ideograph */ + {"\x59", 0, 0x6E92}, /* East Asian ideograph */ + {"\x5A", 0, 0x6EA7}, /* East Asian ideograph */ + {"\x5E", 0, 0x6E8E}, /* East Asian ideograph */ + {"\x60", 0, 0x6ED9}, /* East Asian ideograph */ + {"\x61", 0, 0x6EBD}, /* East Asian ideograph */ + {"\x63", 0, 0x6EC1}, /* East Asian ideograph */ + {"\x69", 0, 0x6EBB}, /* East Asian ideograph */ + {"\x6A", 0, 0x6EC9}, /* East Asian ideograph */ + {"\x6C", 0, 0x6EB3}, /* East Asian ideograph */ + {"\x6D", 0, 0x6EB7}, /* East Asian ideograph */ + {"\x75", 0, 0x6EA4}, /* East Asian ideograph */ + {"\x79", 0, 0x6ECF}, /* East Asian ideograph */ + {"\x7C", 0, 0x6ECA}, /* East Asian ideograph */ + {"\x7D", 0, 0x6ED5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page124 = { + marc8_9page124_flat, 0 +}; +/* PAGE 123 */ +struct yaz_iconv_trie_flat marc8_9page123_flat[] = { + {"\x2A", 0, 0x6DDF}, /* East Asian ideograph */ + {"\x2D", 0, 0x6DD3}, /* East Asian ideograph */ + {"\x32", 0, 0x6DFC}, /* East Asian ideograph */ + {"\x35", 0, 0x6DDD}, /* East Asian ideograph */ + {"\x36", 0, 0x6DDC}, /* East Asian ideograph */ + {"\x39", 0, 0x6DDB}, /* East Asian ideograph */ + {"\x3D", 0, 0x6DA4}, /* East Asian ideograph */ + {"\x44", 0, 0x6E12}, /* East Asian ideograph */ + {"\x46", 0, 0x6DF0}, /* East Asian ideograph */ + {"\x4A", 0, 0x6DE6}, /* East Asian ideograph */ + {"\x4C", 0, 0x6E1F}, /* East Asian ideograph */ + {"\x50", 0, 0x6E27}, /* East Asian ideograph */ + {"\x55", 0, 0x6E49}, /* East Asian ideograph */ + {"\x58", 0, 0x6E3C}, /* East Asian ideograph */ + {"\x60", 0, 0x6E8A}, /* East Asian ideograph */ + {"\x62", 0, 0x6E4B}, /* East Asian ideograph */ + {"\x66", 0, 0x6E62}, /* East Asian ideograph */ + {"\x6A", 0, 0x6E51}, /* East Asian ideograph */ + {"\x6B", 0, 0x6E44}, /* East Asian ideograph */ + {"\x6D", 0, 0x6E63}, /* East Asian ideograph */ + {"\x71", 0, 0x6E73}, /* East Asian ideograph */ + {"\x74", 0, 0x6E4F}, /* East Asian ideograph */ + {"\x77", 0, 0x6E4E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page123 = { + marc8_9page123_flat, 0 +}; +/* PAGE 122 */ +struct yaz_iconv_trie_flat marc8_9page122_flat[] = { + {"\x25", 0, 0x6D6D}, /* East Asian ideograph */ + {"\x26", 0, 0x6D6F}, /* East Asian ideograph */ + {"\x28", 0, 0x6D61}, /* East Asian ideograph */ + {"\x29", 0, 0x6D91}, /* East Asian ideograph */ + {"\x2C", 0, 0x6D81}, /* East Asian ideograph */ + {"\x2E", 0, 0x6D8A}, /* East Asian ideograph */ + {"\x2F", 0, 0x6D34}, /* East Asian ideograph (variant of EACC 34492F) */ + {"\x34", 0, 0x6D79}, /* East Asian ideograph */ + {"\x35", 0, 0x6DEF}, /* East Asian ideograph */ + {"\x39", 0, 0x6D7F}, /* East Asian ideograph */ + {"\x3B", 0, 0x6D85}, /* East Asian ideograph */ + {"\x3C", 0, 0x6D65}, /* East Asian ideograph */ + {"\x3E", 0, 0x6D5E}, /* East Asian ideograph */ + {"\x40", 0, 0x6D67}, /* East Asian ideograph */ + {"\x43", 0, 0x6D94}, /* East Asian ideograph */ + {"\x46", 0, 0x6D60}, /* East Asian ideograph */ + {"\x48", 0, 0x6D98}, /* East Asian ideograph */ + {"\x4B", 0, 0x6D7C}, /* East Asian ideograph */ + {"\x4C", 0, 0x6D70}, /* East Asian ideograph */ + {"\x4F", 0, 0x6D96}, /* East Asian ideograph */ + {"\x59", 0, 0x6DAB}, /* East Asian ideograph */ + {"\x5A", 0, 0x6DB4}, /* East Asian ideograph */ + {"\x5C", 0, 0x6DAA}, /* East Asian ideograph */ + {"\x60", 0, 0x6DEC}, /* East Asian ideograph */ + {"\x6A", 0, 0x6DAC}, /* East Asian ideograph */ + {"\x6B", 0, 0x6DB7}, /* East Asian ideograph */ + {"\x6C", 0, 0x6DE2}, /* East Asian ideograph */ + {"\x6D", 0, 0x6DD5}, /* East Asian ideograph */ + {"\x6E", 0, 0x6DE9}, /* East Asian ideograph */ + {"\x71", 0, 0x6DF6}, /* East Asian ideograph */ + {"\x79", 0, 0x6E0F}, /* East Asian ideograph */ + {"\x7B", 0, 0x6DBF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page122 = { + marc8_9page122_flat, 0 +}; +/* PAGE 121 */ +struct yaz_iconv_trie_flat marc8_9page121_flat[] = { + {"\x24", 0, 0x6CD8}, /* East Asian ideograph */ + {"\x26", 0, 0x6CC6}, /* East Asian ideograph */ + {"\x28", 0, 0x6CCE}, /* East Asian ideograph */ + {"\x29", 0, 0x6CE9}, /* East Asian ideograph */ + {"\x2D", 0, 0x6CF2}, /* East Asian ideograph */ + {"\x2F", 0, 0x6CE0}, /* East Asian ideograph */ + {"\x30", 0, 0x6CD1}, /* East Asian ideograph */ + {"\x32", 0, 0x6CD2}, /* East Asian ideograph */ + {"\x33", 0, 0x6CB4}, /* East Asian ideograph */ + {"\x37", 0, 0x6D1D}, /* East Asian ideograph */ + {"\x3B", 0, 0x6D28}, /* East Asian ideograph */ + {"\x44", 0, 0x6D39}, /* East Asian ideograph */ + {"\x4D", 0, 0x6D26}, /* East Asian ideograph */ + {"\x4E", 0, 0x6D27}, /* East Asian ideograph */ + {"\x4F", 0, 0x6D0F}, /* East Asian ideograph */ + {"\x50", 0, 0x6D0A}, /* East Asian ideograph */ + {"\x51", 0, 0x6D3F}, /* East Asian ideograph */ + {"\x5A", 0, 0x6D07}, /* East Asian ideograph */ + {"\x5B", 0, 0x6D04}, /* East Asian ideograph */ + {"\x5C", 0, 0x6CDA}, /* East Asian ideograph */ + {"\x60", 0, 0x6D2E}, /* East Asian ideograph */ + {"\x61", 0, 0x6D35}, /* East Asian ideograph */ + {"\x62", 0, 0x6D3A}, /* East Asian ideograph */ + {"\x64", 0, 0x6D19}, /* East Asian ideograph */ + {"\x67", 0, 0x6D0E}, /* East Asian ideograph */ + {"\x6A", 0, 0x6D2B}, /* East Asian ideograph */ + {"\x6B", 0, 0x6D11}, /* East Asian ideograph */ + {"\x6C", 0, 0x6D00}, /* East Asian ideograph */ + {"\x6D", 0, 0x6D24}, /* East Asian ideograph */ + {"\x6F", 0, 0x6D33}, /* East Asian ideograph */ + {"\x73", 0, 0x6D63}, /* East Asian ideograph */ + {"\x77", 0, 0x6DA5}, /* East Asian ideograph */ + {"\x7D", 0, 0x6D92}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page121 = { + marc8_9page121_flat, 0 +}; +/* PAGE 120 */ +struct yaz_iconv_trie_flat marc8_9page120_flat[] = { + {"\x24", 0, 0x6C5C}, /* East Asian ideograph */ + {"\x26", 0, 0x6C5B}, /* East Asian ideograph */ + {"\x27", 0, 0x6C4D}, /* East Asian ideograph */ + {"\x2B", 0, 0x6C4B}, /* East Asian ideograph */ + {"\x2C", 0, 0x6C54}, /* East Asian ideograph */ + {"\x2D", 0, 0x6C63}, /* East Asian ideograph */ + {"\x30", 0, 0x6C78}, /* East Asian ideograph */ + {"\x31", 0, 0x6C74}, /* East Asian ideograph */ + {"\x32", 0, 0x6C86}, /* East Asian ideograph */ + {"\x33", 0, 0x6C76}, /* East Asian ideograph */ + {"\x38", 0, 0x6C6C}, /* East Asian ideograph */ + {"\x39", 0, 0x6C67}, /* East Asian ideograph */ + {"\x3B", 0, 0x6C84}, /* East Asian ideograph */ + {"\x3E", 0, 0x6C94}, /* East Asian ideograph */ + {"\x40", 0, 0x6C8F}, /* East Asian ideograph */ + {"\x42", 0, 0x6C65}, /* East Asian ideograph */ + {"\x47", 0, 0x6C6F}, /* East Asian ideograph */ + {"\x49", 0, 0x6C9D}, /* East Asian ideograph */ + {"\x4A", 0, 0x6C69}, /* East Asian ideograph */ + {"\x4B", 0, 0x6C9A}, /* East Asian ideograph */ + {"\x4C", 0, 0x6C6D}, /* East Asian ideograph */ + {"\x4D", 0, 0x6C93}, /* East Asian ideograph */ + {"\x51", 0, 0x6C87}, /* East Asian ideograph */ + {"\x52", 0, 0x6C6E}, /* East Asian ideograph */ + {"\x56", 0, 0x6C95}, /* East Asian ideograph */ + {"\x5A", 0, 0x6C82}, /* East Asian ideograph */ + {"\x5C", 0, 0x6CA0}, /* East Asian ideograph */ + {"\x62", 0, 0x6CEB}, /* East Asian ideograph */ + {"\x63", 0, 0x6CEE}, /* East Asian ideograph */ + {"\x64", 0, 0x6CC0}, /* East Asian ideograph */ + {"\x66", 0, 0x6CEF}, /* East Asian ideograph */ + {"\x67", 0, 0x6CAC}, /* East Asian ideograph */ + {"\x6E", 0, 0x6CAD}, /* East Asian ideograph (variant of EACC 4C476E) */ + {"\x70", 0, 0x6CAF}, /* East Asian ideograph */ + {"\x72", 0, 0x6CF5}, /* East Asian ideograph */ + {"\x7A", 0, 0x6CBA}, /* East Asian ideograph */ + {"\x7B", 0, 0x7553}, /* East Asian ideograph */ + {"\x7D", 0, 0x6CC2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page120 = { + marc8_9page120_flat, 0 +}; +/* PAGE 119 */ +struct yaz_iconv_trie_flat marc8_9page119_flat[] = { + {"\x2A", 0, 0x6BF6}, /* East Asian ideograph */ + {"\x2C", 0, 0x6BF3}, /* East Asian ideograph */ + {"\x33", 0, 0x6BF8}, /* East Asian ideograph */ + {"\x37", 0, 0x6BFA}, /* East Asian ideograph */ + {"\x38", 0, 0x6BF9}, /* East Asian ideograph */ + {"\x42", 0, 0x6BFF}, /* East Asian ideograph */ + {"\x44", 0, 0x6C06}, /* East Asian ideograph */ + {"\x48", 0, 0x6C04}, /* East Asian ideograph */ + {"\x4A", 0, 0x6C05}, /* East Asian ideograph */ + {"\x4C", 0, 0x6C08}, /* East Asian ideograph */ + {"\x51", 0, 0x6C0C}, /* East Asian ideograph */ + {"\x52", 0, 0x6C0D}, /* East Asian ideograph */ + {"\x59", 0, 0x6C15}, /* East Asian ideograph */ + {"\x5A", 0, 0x6C18}, /* East Asian ideograph */ + {"\x5B", 0, 0x6C19}, /* East Asian ideograph */ + {"\x5C", 0, 0x6C1A}, /* East Asian ideograph */ + {"\x5E", 0, 0x6C1D}, /* East Asian ideograph */ + {"\x60", 0, 0x6C20}, /* East Asian ideograph */ + {"\x62", 0, 0x6C21}, /* East Asian ideograph */ + {"\x64", 0, 0x6C2A}, /* East Asian ideograph */ + {"\x66", 0, 0x6C2D}, /* East Asian ideograph */ + {"\x67", 0, 0x6C30}, /* East Asian ideograph */ + {"\x68", 0, 0x6C2C}, /* East Asian ideograph */ + {"\x69", 0, 0x6C31}, /* East Asian ideograph */ + {"\x70", 0, 0x6C3B}, /* East Asian ideograph */ + {"\x74", 0, 0x6C3F}, /* East Asian ideograph */ + {"\x78", 0, 0x6C46}, /* East Asian ideograph */ + {"\x7A", 0, 0x6C52}, /* East Asian ideograph */ + {"\x7B", 0, 0x6C62}, /* East Asian ideograph */ + {"\x7C", 0, 0x6C4A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page119 = { + marc8_9page119_flat, 0 +}; +/* PAGE 118 */ +struct yaz_iconv_trie_flat marc8_9page118_flat[] = { + {"\x25", 0, 0x6B99}, /* East Asian ideograph */ + {"\x29", 0, 0x6B9B}, /* East Asian ideograph */ + {"\x35", 0, 0x6BA3}, /* East Asian ideograph */ + {"\x36", 0, 0x6BA2}, /* East Asian ideograph */ + {"\x38", 0, 0x6BAA}, /* East Asian ideograph */ + {"\x39", 0, 0x6BAB}, /* East Asian ideograph */ + {"\x3B", 0, 0x6BAD}, /* East Asian ideograph */ + {"\x3D", 0, 0x6BB0}, /* East Asian ideograph */ + {"\x3F", 0, 0x6BB3}, /* East Asian ideograph */ + {"\x47", 0, 0x6BBD}, /* East Asian ideograph */ + {"\x4D", 0, 0x6996}, /* East Asian ideograph */ + {"\x54", 0, 0x6BC8}, /* East Asian ideograph */ + {"\x5B", 0, 0x6BD6}, /* East Asian ideograph */ + {"\x60", 0, 0x6BDA}, /* East Asian ideograph */ + {"\x62", 0, 0x6BDC}, /* East Asian ideograph */ + {"\x63", 0, 0x6BDD}, /* East Asian ideograph */ + {"\x65", 0, 0x6BDF}, /* East Asian ideograph */ + {"\x6F", 0, 0x6BE7}, /* East Asian ideograph */ + {"\x70", 0, 0x6BEA}, /* East Asian ideograph */ + {"\x71", 0, 0x6BE8}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page118 = { + marc8_9page118_flat, 0 +}; +/* PAGE 117 */ +struct yaz_iconv_trie_flat marc8_9page117_flat[] = { + {"\x2A", 0, 0x6B35}, /* East Asian ideograph */ + {"\x2C", 0, 0x6B37}, /* East Asian ideograph */ + {"\x2D", 0, 0x6B3B}, /* East Asian ideograph */ + {"\x32", 0, 0x6B39}, /* East Asian ideograph */ + {"\x35", 0, 0x6B3F}, /* East Asian ideograph */ + {"\x37", 0, 0x6B46}, /* East Asian ideograph */ + {"\x38", 0, 0x6B41}, /* East Asian ideograph */ + {"\x3A", 0, 0x6B40}, /* East Asian ideograph */ + {"\x3B", 0, 0x6B42}, /* East Asian ideograph */ + {"\x3C", 0, 0x6B43}, /* East Asian ideograph */ + {"\x3E", 0, 0x6B48}, /* East Asian ideograph */ + {"\x3F", 0, 0x6B4A}, /* East Asian ideograph */ + {"\x46", 0, 0x6B4E}, /* East Asian ideograph (variant of EACC 4C4446) */ + {"\x4A", 0, 0x6B57}, /* East Asian ideograph */ + {"\x4C", 0, 0x6B54}, /* East Asian ideograph */ + {"\x4E", 0, 0x6B55}, /* East Asian ideograph */ + {"\x51", 0, 0x6B5C}, /* East Asian ideograph */ + {"\x53", 0, 0x6B5E}, /* East Asian ideograph */ + {"\x54", 0, 0x6B60}, /* East Asian ideograph */ + {"\x5B", 0, 0x6B6B}, /* East Asian ideograph */ + {"\x5D", 0, 0x6B6C}, /* East Asian ideograph */ + {"\x5F", 0, 0x6B6E}, /* East Asian ideograph */ + {"\x61", 0, 0x6B71}, /* East Asian ideograph */ + {"\x6B", 0, 0x6B7E}, /* East Asian ideograph */ + {"\x71", 0, 0x6B82}, /* East Asian ideograph */ + {"\x73", 0, 0x6B84}, /* East Asian ideograph */ + {"\x79", 0, 0x6B8D}, /* East Asian ideograph */ + {"\x7B", 0, 0x6B95}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page117 = { + marc8_9page117_flat, 0 +}; +/* PAGE 116 */ +struct yaz_iconv_trie_flat marc8_9page116_flat[] = { + {"\x25", 0, 0x6ACC}, /* East Asian ideograph */ + {"\x28", 0, 0x6AD1}, /* East Asian ideograph */ + {"\x33", 0, 0x6ADF}, /* East Asian ideograph */ + {"\x34", 0, 0x6ACD}, /* East Asian ideograph */ + {"\x35", 0, 0x6ADE}, /* East Asian ideograph */ + {"\x37", 0, 0x6AEC}, /* East Asian ideograph */ + {"\x39", 0, 0x6AF3}, /* East Asian ideograph */ + {"\x3A", 0, 0x6AE7}, /* East Asian ideograph */ + {"\x3F", 0, 0x6AEB}, /* East Asian ideograph */ + {"\x40", 0, 0x6AEA}, /* East Asian ideograph */ + {"\x44", 0, 0x6AF1}, /* East Asian ideograph */ + {"\x45", 0, 0x6AE8}, /* East Asian ideograph */ + {"\x48", 0, 0x6AF5}, /* East Asian ideograph */ + {"\x4E", 0, 0x6AFD}, /* East Asian ideograph */ + {"\x50", 0, 0x6AFA}, /* East Asian ideograph */ + {"\x52", 0, 0x6B01}, /* East Asian ideograph */ + {"\x58", 0, 0x6B03}, /* East Asian ideograph */ + {"\x59", 0, 0x6AF8}, /* East Asian ideograph */ + {"\x5F", 0, 0x6B0D}, /* East Asian ideograph */ + {"\x60", 0, 0x6B09}, /* East Asian ideograph */ + {"\x61", 0, 0x6B0E}, /* East Asian ideograph */ + {"\x67", 0, 0x6B11}, /* East Asian ideograph */ + {"\x6D", 0, 0x6B19}, /* East Asian ideograph */ + {"\x6E", 0, 0x6B17}, /* East Asian ideograph */ + {"\x72", 0, 0x6B1E}, /* East Asian ideograph */ + {"\x7E", 0, 0x6B2C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page116 = { + marc8_9page116_flat, 0 +}; +/* PAGE 115 */ +struct yaz_iconv_trie_flat marc8_9page115_flat[] = { + {"\x22", 0, 0x6A7F}, /* East Asian ideograph */ + {"\x23", 0, 0x6A89}, /* East Asian ideograph */ + {"\x24", 0, 0x6A91}, /* East Asian ideograph */ + {"\x26", 0, 0x6A9F}, /* East Asian ideograph */ + {"\x2A", 0, 0x6A92}, /* East Asian ideograph */ + {"\x2B", 0, 0x6AA3}, /* East Asian ideograph */ + {"\x34", 0, 0x6A99}, /* East Asian ideograph */ + {"\x35", 0, 0x6A9D}, /* East Asian ideograph */ + {"\x36", 0, 0x6A7E}, /* East Asian ideograph */ + {"\x37", 0, 0x6A9B}, /* East Asian ideograph */ + {"\x42", 0, 0x6AA0}, /* East Asian ideograph */ + {"\x47", 0, 0x6A90}, /* East Asian ideograph */ + {"\x49", 0, 0x6A9E}, /* East Asian ideograph */ + {"\x4A", 0, 0x6A87}, /* East Asian ideograph */ + {"\x4B", 0, 0x6A8E}, /* East Asian ideograph */ + {"\x51", 0, 0x6AAB}, /* East Asian ideograph */ + {"\x55", 0, 0x6AC8}, /* East Asian ideograph */ + {"\x57", 0, 0x6AAE}, /* East Asian ideograph */ + {"\x5D", 0, 0x6ABF}, /* East Asian ideograph */ + {"\x64", 0, 0x6ACA}, /* East Asian ideograph */ + {"\x68", 0, 0x6AB4}, /* East Asian ideograph */ + {"\x79", 0, 0x6AE6}, /* East Asian ideograph */ + {"\x7E", 0, 0x6AED}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page115 = { + marc8_9page115_flat, 0 +}; +/* PAGE 114 */ +struct yaz_iconv_trie_flat marc8_9page114_flat[] = { + {"\x23", 0, 0x69F0}, /* East Asian ideograph */ + {"\x24", 0, 0x69F2}, /* East Asian ideograph */ + {"\x28", 0, 0x6A14}, /* East Asian ideograph */ + {"\x29", 0, 0x6A63}, /* East Asian ideograph */ + {"\x37", 0, 0x6A67}, /* East Asian ideograph */ + {"\x39", 0, 0x6A43}, /* East Asian ideograph */ + {"\x3A", 0, 0x6A33}, /* East Asian ideograph */ + {"\x3B", 0, 0x6A32}, /* East Asian ideograph */ + {"\x3C", 0, 0x6A5A}, /* East Asian ideograph */ + {"\x3F", 0, 0x6A28}, /* East Asian ideograph */ + {"\x40", 0, 0x6A48}, /* East Asian ideograph */ + {"\x41", 0, 0x6A50}, /* East Asian ideograph */ + {"\x42", 0, 0x6A52}, /* East Asian ideograph */ + {"\x43", 0, 0x6A72}, /* East Asian ideograph */ + {"\x45", 0, 0x6A3E}, /* East Asian ideograph */ + {"\x46", 0, 0x6A77}, /* East Asian ideograph */ + {"\x47", 0, 0x6A5B}, /* East Asian ideograph */ + {"\x4A", 0, 0x6A5E}, /* East Asian ideograph */ + {"\x4B", 0, 0x6A5C}, /* East Asian ideograph */ + {"\x4F", 0, 0x6A51}, /* East Asian ideograph */ + {"\x51", 0, 0x6A56}, /* East Asian ideograph */ + {"\x53", 0, 0x6A36}, /* East Asian ideograph */ + {"\x56", 0, 0x6A7A}, /* East Asian ideograph */ + {"\x58", 0, 0x6A3F}, /* East Asian ideograph */ + {"\x6C", 0, 0x69F9}, /* East Asian ideograph */ + {"\x6D", 0, 0x6A64}, /* East Asian ideograph */ + {"\x73", 0, 0x6A8D}, /* East Asian ideograph */ + {"\x75", 0, 0x6AA8}, /* East Asian ideograph */ + {"\x77", 0, 0x6AA5}, /* East Asian ideograph */ + {"\x79", 0, 0x6A96}, /* East Asian ideograph */ + {"\x7E", 0, 0x6A7D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page114 = { + marc8_9page114_flat, 0 +}; +/* PAGE 113 */ +struct yaz_iconv_trie_flat marc8_9page113_flat[] = { + {"\x27", 0, 0x69BF}, /* East Asian ideograph */ + {"\x2D", 0, 0x69A3}, /* East Asian ideograph */ + {"\x2E", 0, 0x69A4}, /* East Asian ideograph */ + {"\x34", 0, 0x69D4}, /* East Asian ideograph */ + {"\x38", 0, 0x69C3}, /* East Asian ideograph */ + {"\x3D", 0, 0x6A12}, /* East Asian ideograph */ + {"\x3E", 0, 0x6A11}, /* East Asian ideograph */ + {"\x41", 0, 0x6A00}, /* East Asian ideograph */ + {"\x46", 0, 0x69E6}, /* East Asian ideograph */ + {"\x4B", 0, 0x6A0B}, /* East Asian ideograph */ + {"\x4C", 0, 0x69E5}, /* East Asian ideograph */ + {"\x4D", 0, 0x69E9}, /* East Asian ideograph */ + {"\x50", 0, 0x69FC}, /* East Asian ideograph */ + {"\x54", 0, 0x6A17}, /* East Asian ideograph */ + {"\x56", 0, 0x69E7}, /* East Asian ideograph */ + {"\x57", 0, 0x69EB}, /* East Asian ideograph */ + {"\x5B", 0, 0x69F1}, /* East Asian ideograph */ + {"\x5E", 0, 0x6A2B}, /* East Asian ideograph */ + {"\x5F", 0, 0x69FF}, /* East Asian ideograph */ + {"\x60", 0, 0x6A20}, /* East Asian ideograph */ + {"\x64", 0, 0x69ED}, /* East Asian ideograph */ + {"\x67", 0, 0x6A1B}, /* East Asian ideograph */ + {"\x68", 0, 0x6A2D}, /* East Asian ideograph */ + {"\x6E", 0, 0x6A18}, /* East Asian ideograph */ + {"\x72", 0, 0x6A1D}, /* East Asian ideograph */ + {"\x75", 0, 0x6A0C}, /* East Asian ideograph */ + {"\x76", 0, 0x6A0F}, /* East Asian ideograph */ + {"\x7C", 0, 0x69EE}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page113 = { + marc8_9page113_flat, 0 +}; +/* PAGE 112 */ +struct yaz_iconv_trie_flat marc8_9page112_flat[] = { + {"\x21", 0, 0x6952}, /* East Asian ideograph */ + {"\x25", 0, 0x695B}, /* East Asian ideograph */ + {"\x2D", 0, 0x6985}, /* East Asian ideograph */ + {"\x32", 0, 0x693D}, /* East Asian ideograph */ + {"\x35", 0, 0x6978}, /* East Asian ideograph */ + {"\x37", 0, 0x697B}, /* East Asian ideograph */ + {"\x3A", 0, 0x6934}, /* East Asian ideograph */ + {"\x3B", 0, 0x6969}, /* East Asian ideograph */ + {"\x3D", 0, 0x6944}, /* East Asian ideograph */ + {"\x3E", 0, 0x696F}, /* East Asian ideograph */ + {"\x44", 0, 0x698A}, /* East Asian ideograph */ + {"\x45", 0, 0x69A0}, /* East Asian ideograph */ + {"\x46", 0, 0x69B1}, /* East Asian ideograph */ + {"\x50", 0, 0x69CE}, /* East Asian ideograph */ + {"\x51", 0, 0x69CA}, /* East Asian ideograph */ + {"\x59", 0, 0x698D}, /* East Asian ideograph */ + {"\x5A", 0, 0x6991}, /* East Asian ideograph */ + {"\x5C", 0, 0x69AA}, /* East Asian ideograph */ + {"\x60", 0, 0x69BC}, /* East Asian ideograph */ + {"\x61", 0, 0x69A7}, /* East Asian ideograph */ + {"\x65", 0, 0x699E}, /* East Asian ideograph */ + {"\x68", 0, 0x69D9}, /* East Asian ideograph */ + {"\x6A", 0, 0x698E}, /* East Asian ideograph */ + {"\x6D", 0, 0x69D6}, /* East Asian ideograph */ + {"\x75", 0, 0x69A5}, /* East Asian ideograph */ + {"\x77", 0, 0x69BE}, /* East Asian ideograph */ + {"\x78", 0, 0x69D1}, /* East Asian ideograph */ + {"\x7A", 0, 0x69F6}, /* East Asian ideograph */ + {"\x7E", 0, 0x69D5}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page112 = { + marc8_9page112_flat, 0 +}; +/* PAGE 111 */ +struct yaz_iconv_trie_flat marc8_9page111_flat[] = { + {"\x21", 0, 0x6907}, /* East Asian ideograph */ + {"\x23", 0, 0x691A}, /* East Asian ideograph */ + {"\x24", 0, 0x6919}, /* East Asian ideograph */ + {"\x2A", 0, 0x68DE}, /* East Asian ideograph */ + {"\x2B", 0, 0x691B}, /* East Asian ideograph */ + {"\x2D", 0, 0x68FB}, /* East Asian ideograph */ + {"\x33", 0, 0x68E1}, /* East Asian ideograph */ + {"\x37", 0, 0x68D1}, /* East Asian ideograph */ + {"\x38", 0, 0x68D0}, /* East Asian ideograph */ + {"\x39", 0, 0x6908}, /* East Asian ideograph */ + {"\x3E", 0, 0x68E8}, /* East Asian ideograph */ + {"\x3F", 0, 0x68F0}, /* East Asian ideograph */ + {"\x40", 0, 0x68C3}, /* East Asian ideograph */ + {"\x44", 0, 0x6911}, /* East Asian ideograph */ + {"\x46", 0, 0x68D4}, /* East Asian ideograph */ + {"\x47", 0, 0x68EF}, /* East Asian ideograph */ + {"\x49", 0, 0x68C6}, /* East Asian ideograph */ + {"\x4B", 0, 0x68C7}, /* East Asian ideograph */ + {"\x53", 0, 0x6974}, /* East Asian ideograph */ + {"\x55", 0, 0x6938}, /* East Asian ideograph */ + {"\x58", 0, 0x6962}, /* East Asian ideograph */ + {"\x5D", 0, 0x6958}, /* East Asian ideograph */ + {"\x5F", 0, 0x6957}, /* East Asian ideograph */ + {"\x60", 0, 0x693F}, /* East Asian ideograph */ + {"\x61", 0, 0x6971}, /* East Asian ideograph */ + {"\x64", 0, 0x6945}, /* East Asian ideograph */ + {"\x65", 0, 0x695D}, /* East Asian ideograph */ + {"\x66", 0, 0x6932}, /* East Asian ideograph */ + {"\x69", 0, 0x696E}, /* East Asian ideograph */ + {"\x6A", 0, 0x6963}, /* East Asian ideograph */ + {"\x6B", 0, 0x6948}, /* East Asian ideograph */ + {"\x6E", 0, 0x6939}, /* East Asian ideograph */ + {"\x70", 0, 0x696A}, /* East Asian ideograph */ + {"\x73", 0, 0x6937}, /* East Asian ideograph */ + {"\x7A", 0, 0x696C}, /* East Asian ideograph */ + {"\x7B", 0, 0x694E}, /* East Asian ideograph */ + {"\x7D", 0, 0x6980}, /* East Asian ideograph */ + {"\x7E", 0, 0x6933}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page111 = { + marc8_9page111_flat, 0 +}; +/* PAGE 110 */ +struct yaz_iconv_trie_flat marc8_9page110_flat[] = { + {"\x21", 0, 0x6872}, /* East Asian ideograph */ + {"\x22", 0, 0x689C}, /* East Asian ideograph */ + {"\x25", 0, 0x686D}, /* East Asian ideograph */ + {"\x2E", 0, 0x68A9}, /* East Asian ideograph */ + {"\x30", 0, 0x6898}, /* East Asian ideograph */ + {"\x32", 0, 0x688B}, /* East Asian ideograph */ + {"\x33", 0, 0x68A0}, /* East Asian ideograph */ + {"\x34", 0, 0x686F}, /* East Asian ideograph */ + {"\x39", 0, 0x68A3}, /* East Asian ideograph */ + {"\x3B", 0, 0x6874}, /* East Asian ideograph */ + {"\x3C", 0, 0x6875}, /* East Asian ideograph */ + {"\x3F", 0, 0x6877}, /* East Asian ideograph */ + {"\x40", 0, 0x688F}, /* East Asian ideograph */ + {"\x43", 0, 0x687B}, /* East Asian ideograph */ + {"\x44", 0, 0x688E}, /* East Asian ideograph */ + {"\x4B", 0, 0x68B4}, /* East Asian ideograph */ + {"\x50", 0, 0x692C}, /* East Asian ideograph */ + {"\x51", 0, 0x6917}, /* East Asian ideograph */ + {"\x53", 0, 0x690C}, /* East Asian ideograph */ + {"\x56", 0, 0x690B}, /* East Asian ideograph */ + {"\x58", 0, 0x68D3}, /* East Asian ideograph */ + {"\x59", 0, 0x6904}, /* East Asian ideograph */ + {"\x5B", 0, 0x690A}, /* East Asian ideograph */ + {"\x5C", 0, 0x6909}, /* East Asian ideograph */ + {"\x5D", 0, 0x6929}, /* East Asian ideograph */ + {"\x62", 0, 0x68EC}, /* East Asian ideograph */ + {"\x63", 0, 0x692A}, /* East Asian ideograph */ + {"\x64", 0, 0x68EA}, /* East Asian ideograph */ + {"\x65", 0, 0x681F}, /* East Asian ideograph */ + {"\x66", 0, 0x7439}, /* East Asian ideograph */ + {"\x6A", 0, 0x6910}, /* East Asian ideograph */ + {"\x6E", 0, 0x68D6}, /* East Asian ideograph */ + {"\x6F", 0, 0x68EB}, /* East Asian ideograph */ + {"\x73", 0, 0x68F1}, /* East Asian ideograph */ + {"\x78", 0, 0x68FD}, /* East Asian ideograph */ + {"\x79", 0, 0x68FC}, /* East Asian ideograph */ + {"\x7B", 0, 0x68F3}, /* East Asian ideograph */ + {"\x7C", 0, 0x6913}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page110 = { + marc8_9page110_flat, 0 +}; +/* PAGE 109 */ +struct yaz_iconv_trie_flat marc8_9page109_flat[] = { + {"\x21", 0, 0x67B9}, /* East Asian ideograph */ + {"\x23", 0, 0x67C2}, /* East Asian ideograph */ + {"\x24", 0, 0x67E3}, /* East Asian ideograph */ + {"\x26", 0, 0x67CA}, /* East Asian ideograph */ + {"\x28", 0, 0x67CE}, /* East Asian ideograph */ + {"\x29", 0, 0x67E2}, /* East Asian ideograph */ + {"\x2A", 0, 0x67F2}, /* East Asian ideograph */ + {"\x2B", 0, 0x67C3}, /* East Asian ideograph */ + {"\x2D", 0, 0x67DD}, /* East Asian ideograph */ + {"\x2F", 0, 0x67E7}, /* East Asian ideograph */ + {"\x30", 0, 0x6849}, /* East Asian ideograph */ + {"\x31", 0, 0x683E}, /* East Asian ideograph */ + {"\x36", 0, 0x6814}, /* East Asian ideograph */ + {"\x37", 0, 0x684B}, /* East Asian ideograph */ + {"\x38", 0, 0x681E}, /* East Asian ideograph */ + {"\x3B", 0, 0x6833}, /* East Asian ideograph */ + {"\x40", 0, 0x6831}, /* East Asian ideograph */ + {"\x41", 0, 0x6832}, /* East Asian ideograph */ + {"\x42", 0, 0x6835}, /* East Asian ideograph */ + {"\x43", 0, 0x683B}, /* East Asian ideograph */ + {"\x44", 0, 0x684E}, /* East Asian ideograph */ + {"\x47", 0, 0x682B}, /* East Asian ideograph */ + {"\x48", 0, 0x682D}, /* East Asian ideograph */ + {"\x4A", 0, 0x684D}, /* East Asian ideograph */ + {"\x4F", 0, 0x6844}, /* East Asian ideograph */ + {"\x55", 0, 0x685D}, /* East Asian ideograph */ + {"\x56", 0, 0x685E}, /* East Asian ideograph */ + {"\x58", 0, 0x6834}, /* East Asian ideograph */ + {"\x59", 0, 0x6812}, /* East Asian ideograph */ + {"\x65", 0, 0x685A}, /* East Asian ideograph */ + {"\x68", 0, 0x686B}, /* East Asian ideograph */ + {"\x69", 0, 0x686C}, /* East Asian ideograph */ + {"\x6B", 0, 0x6879}, /* East Asian ideograph */ + {"\x6E", 0, 0x68B2}, /* East Asian ideograph */ + {"\x71", 0, 0x689B}, /* East Asian ideograph */ + {"\x72", 0, 0x687E}, /* East Asian ideograph */ + {"\x74", 0, 0x68B6}, /* East Asian ideograph */ + {"\x76", 0, 0x6882}, /* East Asian ideograph */ + {"\x7A", 0, 0x6890}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page109 = { + marc8_9page109_flat, 0 +}; +/* PAGE 108 */ +struct yaz_iconv_trie_flat marc8_9page108_flat[] = { + {"\x21", 0, 0x677B}, /* East Asian ideograph */ + {"\x22", 0, 0x6792}, /* East Asian ideograph */ + {"\x23", 0, 0x6776}, /* East Asian ideograph */ + {"\x25", 0, 0x6791}, /* East Asian ideograph */ + {"\x26", 0, 0x6799}, /* East Asian ideograph */ + {"\x28", 0, 0x67A4}, /* East Asian ideograph */ + {"\x2E", 0, 0x678F}, /* East Asian ideograph */ + {"\x30", 0, 0x6772}, /* East Asian ideograph */ + {"\x31", 0, 0x6798}, /* East Asian ideograph (variant of EACC 4C3B31) */ + {"\x32", 0, 0x676A}, /* East Asian ideograph */ + {"\x39", 0, 0x67AC}, /* East Asian ideograph */ + {"\x3B", 0, 0x67A0}, /* East Asian ideograph */ + {"\x3F", 0, 0x67A1}, /* East Asian ideograph */ + {"\x44", 0, 0x67F9}, /* East Asian ideograph */ + {"\x48", 0, 0x678D}, /* East Asian ideograph */ + {"\x49", 0, 0x678C}, /* East Asian ideograph */ + {"\x4C", 0, 0x67FC}, /* East Asian ideograph */ + {"\x4E", 0, 0x6810}, /* East Asian ideograph */ + {"\x51", 0, 0x67C8}, /* East Asian ideograph */ + {"\x54", 0, 0x67CC}, /* East Asian ideograph */ + {"\x58", 0, 0x67C5}, /* East Asian ideograph */ + {"\x5C", 0, 0x67BB}, /* East Asian ideograph */ + {"\x5F", 0, 0x67B0}, /* East Asian ideograph */ + {"\x60", 0, 0x6803}, /* East Asian ideograph */ + {"\x61", 0, 0x67F8}, /* East Asian ideograph */ + {"\x63", 0, 0x67D8}, /* East Asian ideograph */ + {"\x64", 0, 0x67B7}, /* East Asian ideograph */ + {"\x6D", 0, 0x6802}, /* East Asian ideograph */ + {"\x6F", 0, 0x67E4}, /* East Asian ideograph */ + {"\x70", 0, 0x67D9}, /* East Asian ideograph */ + {"\x71", 0, 0x67DB}, /* East Asian ideograph */ + {"\x72", 0, 0x67B5}, /* East Asian ideograph */ + {"\x74", 0, 0x67DF}, /* East Asian ideograph */ + {"\x75", 0, 0x67F7}, /* East Asian ideograph */ + {"\x77", 0, 0x67B3}, /* East Asian ideograph */ + {"\x78", 0, 0x6806}, /* East Asian ideograph */ + {"\x79", 0, 0x67AE}, /* East Asian ideograph */ + {"\x7A", 0, 0x67F6}, /* East Asian ideograph */ + {"\x7C", 0, 0x67EE}, /* East Asian ideograph */ + {"\x7D", 0, 0x6AAF}, /* East Asian ideograph */ + {"\x7E", 0, 0x67B2}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page108 = { + marc8_9page108_flat, 0 +}; +/* PAGE 107 */ +struct yaz_iconv_trie_flat marc8_9page107_flat[] = { + {"\x28", 0, 0x6705}, /* East Asian ideograph */ + {"\x30", 0, 0x670F}, /* East Asian ideograph */ + {"\x31", 0, 0x6710}, /* East Asian ideograph */ + {"\x33", 0, 0x6712}, /* East Asian ideograph */ + {"\x34", 0, 0x6713}, /* East Asian ideograph */ + {"\x38", 0, 0x6719}, /* East Asian ideograph */ + {"\x39", 0, 0x6718}, /* East Asian ideograph */ + {"\x47", 0, 0x6723}, /* East Asian ideograph */ + {"\x4C", 0, 0x673E}, /* East Asian ideograph */ + {"\x4E", 0, 0x673F}, /* East Asian ideograph */ + {"\x58", 0, 0x6757}, /* East Asian ideograph */ + {"\x5B", 0, 0x6745}, /* East Asian ideograph */ + {"\x5C", 0, 0x6747}, /* East Asian ideograph */ + {"\x60", 0, 0x675D}, /* East Asian ideograph */ + {"\x61", 0, 0x6755}, /* East Asian ideograph */ + {"\x66", 0, 0x674C}, /* East Asian ideograph */ + {"\x67", 0, 0x6759}, /* East Asian ideograph */ + {"\x68", 0, 0x6748}, /* East Asian ideograph */ + {"\x6B", 0, 0x6763}, /* East Asian ideograph */ + {"\x6E", 0, 0x6753}, /* East Asian ideograph */ + {"\x71", 0, 0x674A}, /* East Asian ideograph */ + {"\x75", 0, 0x6793}, /* East Asian ideograph */ + {"\x78", 0, 0x677C}, /* East Asian ideograph */ + {"\x7A", 0, 0x679F}, /* East Asian ideograph */ + {"\x7C", 0, 0x6785}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page107 = { + marc8_9page107_flat, 0 +}; +/* PAGE 106 */ +struct yaz_iconv_trie_flat marc8_9page106_flat[] = { + {"\x24", 0, 0x7A25}, /* East Asian ideograph */ + {"\x2A", 0, 0x66A0}, /* East Asian ideograph */ + {"\x30", 0, 0x5C21}, /* East Asian ideograph */ + {"\x32", 0, 0x669D}, /* East Asian ideograph */ + {"\x3A", 0, 0x66B2}, /* East Asian ideograph */ + {"\x40", 0, 0x66B5}, /* East Asian ideograph */ + {"\x41", 0, 0x66AA}, /* East Asian ideograph */ + {"\x43", 0, 0x66AC}, /* East Asian ideograph */ + {"\x47", 0, 0x66B1}, /* East Asian ideograph */ + {"\x4E", 0, 0x66C8}, /* East Asian ideograph */ + {"\x4F", 0, 0x66BE}, /* East Asian ideograph */ + {"\x54", 0, 0x66C0}, /* East Asian ideograph */ + {"\x55", 0, 0x66C7}, /* East Asian ideograph */ + {"\x5A", 0, 0x66BB}, /* East Asian ideograph */ + {"\x5C", 0, 0x66C4}, /* East Asian ideograph */ + {"\x60", 0, 0x66CF}, /* East Asian ideograph */ + {"\x71", 0, 0x66DA}, /* East Asian ideograph */ + {"\x72", 0, 0x66DB}, /* East Asian ideograph */ + {"\x73", 0, 0x66E2}, /* East Asian ideograph */ + {"\x76", 0, 0x66E1}, /* East Asian ideograph */ + {"\x78", 0, 0x66E8}, /* East Asian ideograph */ + {"\x7C", 0, 0x66E9}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page106 = { + marc8_9page106_flat, 0 +}; +/* PAGE 105 */ +struct yaz_iconv_trie_flat marc8_9page105_flat[] = { + {"\x27", 0, 0x6633}, /* East Asian ideograph */ + {"\x28", 0, 0x662B}, /* East Asian ideograph */ + {"\x2B", 0, 0x6634}, /* East Asian ideograph */ + {"\x2C", 0, 0x6624}, /* East Asian ideograph */ + {"\x31", 0, 0x6645}, /* East Asian ideograph */ + {"\x32", 0, 0x665F}, /* East Asian ideograph */ + {"\x3D", 0, 0x6665}, /* East Asian ideograph */ + {"\x3E", 0, 0x665C}, /* East Asian ideograph */ + {"\x3F", 0, 0x6661}, /* East Asian ideograph */ + {"\x48", 0, 0x665B}, /* East Asian ideograph */ + {"\x49", 0, 0x6659}, /* East Asian ideograph */ + {"\x4A", 0, 0x6667}, /* East Asian ideograph */ + {"\x4C", 0, 0x665E}, /* East Asian ideograph */ + {"\x4D", 0, 0x6657}, /* East Asian ideograph */ + {"\x50", 0, 0x667E}, /* East Asian ideograph */ + {"\x51", 0, 0x666C}, /* East Asian ideograph */ + {"\x5A", 0, 0x6678}, /* East Asian ideograph */ + {"\x60", 0, 0x6673}, /* East Asian ideograph */ + {"\x66", 0, 0x666D}, /* East Asian ideograph */ + {"\x68", 0, 0x6677}, /* East Asian ideograph */ + {"\x70", 0, 0x6684}, /* East Asian ideograph */ + {"\x71", 0, 0x668C}, /* East Asian ideograph */ + {"\x72", 0, 0x6693}, /* East Asian ideograph */ + {"\x75", 0, 0x668B}, /* East Asian ideograph */ + {"\x76", 0, 0x6690}, /* East Asian ideograph */ + {"\x79", 0, 0x6694}, /* East Asian ideograph */ + {"\x7A", 0, 0x668A}, /* East Asian ideograph */ + {"\x7C", 0, 0x6698}, /* East Asian ideograph */ + {"\x7D", 0, 0x668D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page105 = { + marc8_9page105_flat, 0 +}; +/* PAGE 104 */ +struct yaz_iconv_trie_flat marc8_9page104_flat[] = { + {"\x22", 0, 0x65A8}, /* East Asian ideograph */ + {"\x23", 0, 0x65A6}, /* East Asian ideograph */ + {"\x27", 0, 0x65AE}, /* East Asian ideograph */ + {"\x2A", 0, 0x65B6}, /* East Asian ideograph */ + {"\x2C", 0, 0x65B8}, /* East Asian ideograph */ + {"\x2F", 0, 0x65BF}, /* East Asian ideograph */ + {"\x31", 0, 0x65C6}, /* East Asian ideograph */ + {"\x32", 0, 0x65C3}, /* East Asian ideograph */ + {"\x33", 0, 0x65C4}, /* East Asian ideograph */ + {"\x34", 0, 0x65C2}, /* East Asian ideograph */ + {"\x3B", 0, 0x65D0}, /* East Asian ideograph */ + {"\x3C", 0, 0x65D2}, /* East Asian ideograph */ + {"\x44", 0, 0x65DB}, /* East Asian ideograph */ + {"\x45", 0, 0x65DC}, /* East Asian ideograph */ + {"\x47", 0, 0x65DD}, /* East Asian ideograph */ + {"\x48", 0, 0x65DF}, /* East Asian ideograph */ + {"\x4A", 0, 0x65E1}, /* East Asian ideograph */ + {"\x4E", 0, 0x65E4}, /* East Asian ideograph */ + {"\x54", 0, 0x65F4}, /* East Asian ideograph */ + {"\x55", 0, 0x65F0}, /* East Asian ideograph */ + {"\x5A", 0, 0x6609}, /* East Asian ideograph */ + {"\x5B", 0, 0x65FB}, /* East Asian ideograph */ + {"\x5C", 0, 0x65FC}, /* East Asian ideograph */ + {"\x5E", 0, 0x660A}, /* East Asian ideograph */ + {"\x64", 0, 0x6603}, /* East Asian ideograph */ + {"\x6A", 0, 0x6611}, /* East Asian ideograph */ + {"\x6B", 0, 0x6615}, /* East Asian ideograph */ + {"\x6D", 0, 0x6604}, /* East Asian ideograph */ + {"\x6E", 0, 0x6631}, /* East Asian ideograph */ + {"\x72", 0, 0x6621}, /* East Asian ideograph */ + {"\x75", 0, 0x662C}, /* East Asian ideograph */ + {"\x77", 0, 0x6635}, /* East Asian ideograph */ + {"\x7C", 0, 0x661E}, /* East Asian ideograph */ + {"\x7D", 0, 0x663A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page104 = { + marc8_9page104_flat, 0 +}; +/* PAGE 103 */ +struct yaz_iconv_trie_flat marc8_9page103_flat[] = { + {"\x2C", 0, 0x6538}, /* East Asian ideograph */ + {"\x34", 0, 0x6542}, /* East Asian ideograph */ + {"\x36", 0, 0x6549}, /* East Asian ideograph */ + {"\x3E", 0, 0x6554}, /* East Asian ideograph */ + {"\x3F", 0, 0x6555}, /* East Asian ideograph */ + {"\x45", 0, 0x6567}, /* East Asian ideograph */ + {"\x47", 0, 0x6561}, /* East Asian ideograph */ + {"\x4F", 0, 0x656D}, /* East Asian ideograph */ + {"\x54", 0, 0x657A}, /* East Asian ideograph */ + {"\x64", 0, 0x6585}, /* East Asian ideograph */ + {"\x6E", 0, 0x658C}, /* East Asian ideograph */ + {"\x70", 0, 0x6592}, /* East Asian ideograph */ + {"\x71", 0, 0x6595}, /* East Asian ideograph */ + {"\x75", 0, 0x659B}, /* East Asian ideograph */ + {"\x77", 0, 0x659D}, /* East Asian ideograph */ + {"\x7A", 0, 0x65A0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page103 = { + marc8_9page103_flat, 0 +}; +/* PAGE 102 */ +struct yaz_iconv_trie_flat marc8_9page102_flat[] = { + {"\x2A", 0, 0x64EF}, /* East Asian ideograph */ + {"\x2D", 0, 0x64E1}, /* East Asian ideograph */ + {"\x2E", 0, 0x64E5}, /* East Asian ideograph */ + {"\x31", 0, 0x64EB}, /* East Asian ideograph */ + {"\x33", 0, 0x64E2}, /* East Asian ideograph */ + {"\x36", 0, 0x64ED}, /* East Asian ideograph */ + {"\x38", 0, 0x64E4}, /* East Asian ideograph */ + {"\x42", 0, 0x64F7}, /* East Asian ideograph */ + {"\x46", 0, 0x6504}, /* East Asian ideograph */ + {"\x4B", 0, 0x64FD}, /* East Asian ideograph */ + {"\x4F", 0, 0x6508}, /* East Asian ideograph */ + {"\x53", 0, 0x6509}, /* East Asian ideograph */ + {"\x59", 0, 0x651A}, /* East Asian ideograph */ + {"\x5B", 0, 0x6516}, /* East Asian ideograph */ + {"\x61", 0, 0x651B}, /* East Asian ideograph */ + {"\x69", 0, 0x6527}, /* East Asian ideograph */ + {"\x6D", 0, 0x6522}, /* East Asian ideograph */ + {"\x6F", 0, 0x6529}, /* East Asian ideograph */ + {"\x72", 0, 0x6525}, /* East Asian ideograph */ + {"\x77", 0, 0x652E}, /* East Asian ideograph */ + {"\x7C", 0, 0x6541}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page102 = { + marc8_9page102_flat, 0 +}; +/* PAGE 101 */ +struct yaz_iconv_trie_flat marc8_9page101_flat[] = { + {"\x23", 0, 0x644E}, /* East Asian ideograph */ + {"\x24", 0, 0x6464}, /* East Asian ideograph */ + {"\x27", 0, 0x6482}, /* East Asian ideograph */ + {"\x28", 0, 0x645E}, /* East Asian ideograph */ + {"\x2C", 0, 0x647B}, /* East Asian ideograph */ + {"\x2E", 0, 0x645C}, /* East Asian ideograph */ + {"\x3C", 0, 0x649D}, /* East Asian ideograph */ + {"\x3F", 0, 0x6499}, /* East Asian ideograph */ + {"\x42", 0, 0x648F}, /* East Asian ideograph */ + {"\x4D", 0, 0x6496}, /* East Asian ideograph */ + {"\x4E", 0, 0x64A2}, /* East Asian ideograph */ + {"\x54", 0, 0x6490}, /* East Asian ideograph */ + {"\x5B", 0, 0x64B6}, /* East Asian ideograph */ + {"\x61", 0, 0x6498}, /* East Asian ideograph */ + {"\x62", 0, 0x649F}, /* East Asian ideograph */ + {"\x65", 0, 0x64A7}, /* East Asian ideograph */ + {"\x66", 0, 0x64B3}, /* East Asian ideograph */ + {"\x6A", 0, 0x64D7}, /* East Asian ideograph */ + {"\x6C", 0, 0x64D3}, /* East Asian ideograph */ + {"\x74", 0, 0x64BE}, /* East Asian ideograph */ + {"\x75", 0, 0x64D0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page101 = { + marc8_9page101_flat, 0 +}; +/* PAGE 100 */ +struct yaz_iconv_trie_flat marc8_9page100_flat[] = { + {"\x22", 0, 0x6410}, /* East Asian ideograph */ + {"\x24", 0, 0x6434}, /* East Asian ideograph */ + {"\x29", 0, 0x641B}, /* East Asian ideograph */ + {"\x2B", 0, 0x6420}, /* East Asian ideograph */ + {"\x2C", 0, 0x6424}, /* East Asian ideograph */ + {"\x2F", 0, 0x6426}, /* East Asian ideograph */ + {"\x31", 0, 0x640C}, /* East Asian ideograph */ + {"\x36", 0, 0x6415}, /* East Asian ideograph */ + {"\x37", 0, 0x6418}, /* East Asian ideograph */ + {"\x38", 0, 0x640E}, /* East Asian ideograph */ + {"\x39", 0, 0x22C4D}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\x3B", 0, 0x6422}, /* East Asian ideograph */ + {"\x3D", 0, 0x6421}, /* East Asian ideograph */ + {"\x44", 0, 0x6430}, /* East Asian ideograph */ + {"\x45", 0, 0x6441}, /* East Asian ideograph */ + {"\x48", 0, 0x6435}, /* East Asian ideograph */ + {"\x4C", 0, 0x6409}, /* East Asian ideograph */ + {"\x51", 0, 0x640A}, /* East Asian ideograph */ + {"\x53", 0, 0x6440}, /* East Asian ideograph */ + {"\x59", 0, 0x6407}, /* East Asian ideograph */ + {"\x5B", 0, 0x643B}, /* East Asian ideograph */ + {"\x5D", 0, 0x643F}, /* East Asian ideograph */ + {"\x68", 0, 0x645B}, /* East Asian ideograph */ + {"\x6A", 0, 0x644F}, /* East Asian ideograph */ + {"\x6C", 0, 0x646B}, /* East Asian ideograph */ + {"\x6F", 0, 0x6476}, /* East Asian ideograph */ + {"\x76", 0, 0x6474}, /* East Asian ideograph */ + {"\x78", 0, 0x647D}, /* East Asian ideograph */ + {"\x7B", 0, 0x6473}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page100 = { + marc8_9page100_flat, 0 +}; +/* PAGE 99 */ +struct yaz_iconv_trie_flat marc8_9page99_flat[] = { + {"\x25", 0, 0x6387}, /* East Asian ideograph */ + {"\x26", 0, 0x637A}, /* East Asian ideograph */ + {"\x27", 0, 0x638E}, /* East Asian ideograph */ + {"\x2A", 0, 0x6386}, /* East Asian ideograph */ + {"\x2F", 0, 0x6375}, /* East Asian ideograph */ + {"\x30", 0, 0x63AF}, /* East Asian ideograph */ + {"\x37", 0, 0x63B1}, /* East Asian ideograph */ + {"\x38", 0, 0x63B0}, /* East Asian ideograph */ + {"\x39", 0, 0x63AE}, /* East Asian ideograph */ + {"\x3A", 0, 0x637C}, /* East Asian ideograph */ + {"\x3B", 0, 0x6390}, /* East Asian ideograph */ + {"\x3D", 0, 0x63AD}, /* East Asian ideograph */ + {"\x41", 0, 0x636D}, /* East Asian ideograph */ + {"\x43", 0, 0x63DE}, /* East Asian ideograph */ + {"\x44", 0, 0x63E5}, /* East Asian ideograph */ + {"\x47", 0, 0x63D3}, /* East Asian ideograph */ + {"\x4F", 0, 0x63BD}, /* East Asian ideograph */ + {"\x50", 0, 0x63C3}, /* East Asian ideograph */ + {"\x52", 0, 0x63F5}, /* East Asian ideograph */ + {"\x58", 0, 0x63E6}, /* East Asian ideograph */ + {"\x5B", 0, 0x63E0}, /* East Asian ideograph */ + {"\x5C", 0, 0x63D5}, /* East Asian ideograph */ + {"\x5D", 0, 0x63F6}, /* East Asian ideograph */ + {"\x5E", 0, 0x63F2}, /* East Asian ideograph */ + {"\x5F", 0, 0x63F8}, /* East Asian ideograph */ + {"\x66", 0, 0x63C5}, /* East Asian ideograph */ + {"\x6A", 0, 0x63F9}, /* East Asian ideograph */ + {"\x70", 0, 0x63BE}, /* East Asian ideograph */ + {"\x72", 0, 0x63EB}, /* East Asian ideograph */ + {"\x73", 0, 0x63DD}, /* East Asian ideograph */ + {"\x76", 0, 0x63D1}, /* East Asian ideograph */ + {"\x79", 0, 0x63C4}, /* East Asian ideograph */ + {"\x7A", 0, 0x63DC}, /* East Asian ideograph */ + {"\x7B", 0, 0x63D7}, /* East Asian ideograph */ + {"\x7E", 0, 0x6412}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page99 = { + marc8_9page99_flat, 0 +}; +/* PAGE 98 */ +struct yaz_iconv_trie_flat marc8_9page98_flat[] = { + {"\x25", 0, 0x62F5}, /* East Asian ideograph */ + {"\x31", 0, 0x630C}, /* East Asian ideograph */ + {"\x32", 0, 0x6360}, /* East Asian ideograph */ + {"\x37", 0, 0x62F6}, /* East Asian ideograph */ + {"\x3A", 0, 0x6331}, /* East Asian ideograph */ + {"\x42", 0, 0x6345}, /* East Asian ideograph */ + {"\x44", 0, 0x6343}, /* East Asian ideograph */ + {"\x45", 0, 0x6335}, /* East Asian ideograph */ + {"\x47", 0, 0x6353}, /* East Asian ideograph */ + {"\x48", 0, 0x6364}, /* East Asian ideograph */ + {"\x49", 0, 0x6336}, /* East Asian ideograph */ + {"\x4A", 0, 0x6344}, /* East Asian ideograph */ + {"\x54", 0, 0x6339}, /* East Asian ideograph */ + {"\x58", 0, 0x6357}, /* East Asian ideograph */ + {"\x5A", 0, 0x633C}, /* East Asian ideograph */ + {"\x5B", 0, 0x6358}, /* East Asian ideograph */ + {"\x5C", 0, 0x634B}, /* East Asian ideograph */ + {"\x5F", 0, 0x6354}, /* East Asian ideograph */ + {"\x68", 0, 0x637D}, /* East Asian ideograph */ + {"\x6A", 0, 0x63B6}, /* East Asian ideograph */ + {"\x6B", 0, 0x6382}, /* East Asian ideograph */ + {"\x6C", 0, 0x636C}, /* East Asian ideograph */ + {"\x6E", 0, 0x639F}, /* East Asian ideograph */ + {"\x72", 0, 0x639E}, /* East Asian ideograph */ + {"\x73", 0, 0x637F}, /* East Asian ideograph */ + {"\x79", 0, 0x6381}, /* East Asian ideograph */ + {"\x7B", 0, 0x6397}, /* East Asian ideograph */ + {"\x7D", 0, 0x63AB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page98 = { + marc8_9page98_flat, 0 +}; +/* PAGE 97 */ +struct yaz_iconv_trie_flat marc8_9page97_flat[] = { + {"\x26", 0, 0x6268}, /* East Asian ideograph */ + {"\x28", 0, 0x6260}, /* East Asian ideograph */ + {"\x2B", 0, 0x625A}, /* East Asian ideograph */ + {"\x2C", 0, 0x6262}, /* East Asian ideograph */ + {"\x2D", 0, 0x6266}, /* East Asian ideograph */ + {"\x31", 0, 0x6286}, /* East Asian ideograph */ + {"\x32", 0, 0x628E}, /* East Asian ideograph */ + {"\x41", 0, 0x62A3}, /* East Asian ideograph */ + {"\x43", 0, 0x6282}, /* East Asian ideograph */ + {"\x46", 0, 0x6285}, /* East Asian ideograph */ + {"\x4B", 0, 0x629D}, /* East Asian ideograph */ + {"\x56", 0, 0x62A6}, /* East Asian ideograph */ + {"\x57", 0, 0x62D1}, /* East Asian ideograph */ + {"\x61", 0, 0x62E4}, /* East Asian ideograph */ + {"\x69", 0, 0x62B6}, /* East Asian ideograph */ + {"\x6A", 0, 0x62C3}, /* East Asian ideograph */ + {"\x72", 0, 0x630D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page97 = { + marc8_9page97_flat, 0 +}; +/* PAGE 96 */ +struct yaz_iconv_trie_flat marc8_9page96_flat[] = { + {"\x29", 0, 0x61F3}, /* East Asian ideograph */ + {"\x3D", 0, 0x6201}, /* East Asian ideograph */ + {"\x41", 0, 0x6204}, /* East Asian ideograph */ + {"\x43", 0, 0x6207}, /* East Asian ideograph */ + {"\x44", 0, 0x6209}, /* East Asian ideograph */ + {"\x47", 0, 0x6214}, /* East Asian ideograph */ + {"\x56", 0, 0x6223}, /* East Asian ideograph */ + {"\x5B", 0, 0x6225}, /* East Asian ideograph */ + {"\x5D", 0, 0x6224}, /* East Asian ideograph */ + {"\x61", 0, 0x6229}, /* East Asian ideograph */ + {"\x67", 0, 0x622D}, /* East Asian ideograph */ + {"\x69", 0, 0x97EF}, /* East Asian ideograph */ + {"\x6E", 0, 0x6239}, /* East Asian ideograph */ + {"\x6F", 0, 0x623A}, /* East Asian ideograph */ + {"\x70", 0, 0x623D}, /* East Asian ideograph */ + {"\x75", 0, 0x6243}, /* East Asian ideograph */ + {"\x77", 0, 0x6246}, /* East Asian ideograph */ + {"\x78", 0, 0x6245}, /* East Asian ideograph */ + {"\x79", 0, 0x624A}, /* East Asian ideograph */ + {"\x7A", 0, 0x6250}, /* East Asian ideograph */ + {"\x7C", 0, 0x625E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page96 = { + marc8_9page96_flat, 0 +}; +/* PAGE 95 */ +struct yaz_iconv_trie_flat marc8_9page95_flat[] = { + {"\x23", 0, 0x618B}, /* East Asian ideograph */ + {"\x2C", 0, 0x616F}, /* East Asian ideograph */ + {"\x2D", 0, 0x6165}, /* East Asian ideograph */ + {"\x2F", 0, 0x615C}, /* East Asian ideograph */ + {"\x32", 0, 0x619D}, /* East Asian ideograph */ + {"\x33", 0, 0x61A6}, /* East Asian ideograph */ + {"\x3D", 0, 0x61A2}, /* East Asian ideograph */ + {"\x40", 0, 0x61A8}, /* East Asian ideograph */ + {"\x42", 0, 0x619C}, /* East Asian ideograph */ + {"\x43", 0, 0x61AF}, /* East Asian ideograph */ + {"\x45", 0, 0x6196}, /* East Asian ideograph */ + {"\x46", 0, 0x6197}, /* East Asian ideograph */ + {"\x47", 0, 0x61AD}, /* East Asian ideograph */ + {"\x4C", 0, 0x6192}, /* East Asian ideograph */ + {"\x52", 0, 0x61AE}, /* East Asian ideograph */ + {"\x55", 0, 0x618D}, /* East Asian ideograph */ + {"\x5A", 0, 0x61CB}, /* East Asian ideograph */ + {"\x5C", 0, 0x61CC}, /* East Asian ideograph */ + {"\x5D", 0, 0x61C6}, /* East Asian ideograph */ + {"\x68", 0, 0x61BA}, /* East Asian ideograph */ + {"\x6A", 0, 0x61B8}, /* East Asian ideograph */ + {"\x71", 0, 0x61E0}, /* East Asian ideograph */ + {"\x77", 0, 0x61E5}, /* East Asian ideograph */ + {"\x7D", 0, 0x61DC}, /* East Asian ideograph */ + {"\x7E", 0, 0x61DF}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page95 = { + marc8_9page95_flat, 0 +}; +/* PAGE 94 */ +struct yaz_iconv_trie_flat marc8_9page94_flat[] = { + {"\x2A", 0, 0x610A}, /* East Asian ideograph */ + {"\x2C", 0, 0x6110}, /* East Asian ideograph */ + {"\x32", 0, 0x6112}, /* East Asian ideograph */ + {"\x34", 0, 0x60F2}, /* East Asian ideograph */ + {"\x37", 0, 0x6125}, /* East Asian ideograph */ + {"\x3B", 0, 0x60F8}, /* East Asian ideograph */ + {"\x3F", 0, 0x6121}, /* East Asian ideograph */ + {"\x41", 0, 0x60FC}, /* East Asian ideograph */ + {"\x43", 0, 0x6106}, /* East Asian ideograph */ + {"\x48", 0, 0x6149}, /* East Asian ideograph */ + {"\x4A", 0, 0x614A}, /* East Asian ideograph */ + {"\x4E", 0, 0x612B}, /* East Asian ideograph */ + {"\x50", 0, 0x6129}, /* East Asian ideograph */ + {"\x51", 0, 0x6150}, /* East Asian ideograph */ + {"\x56", 0, 0x53AF}, /* East Asian ideograph */ + {"\x58", 0, 0x6130}, /* East Asian ideograph */ + {"\x5B", 0, 0x6141}, /* East Asian ideograph */ + {"\x5E", 0, 0x6137}, /* East Asian ideograph */ + {"\x61", 0, 0x6146}, /* East Asian ideograph */ + {"\x66", 0, 0x615E}, /* East Asian ideograph */ + {"\x67", 0, 0x6175}, /* East Asian ideograph */ + {"\x68", 0, 0x6174}, /* East Asian ideograph */ + {"\x6B", 0, 0x6183}, /* East Asian ideograph */ + {"\x70", 0, 0x6171}, /* East Asian ideograph */ + {"\x74", 0, 0x616A}, /* East Asian ideograph */ + {"\x77", 0, 0x6173}, /* East Asian ideograph */ + {"\x79", 0, 0x6164}, /* East Asian ideograph */ + {"\x7B", 0, 0x6153}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page94 = { + marc8_9page94_flat, 0 +}; +/* PAGE 93 */ +struct yaz_iconv_trie_flat marc8_9page93_flat[] = { + {"\x24", 0, 0x608A}, /* East Asian ideograph */ + {"\x2B", 0, 0x6092}, /* East Asian ideograph */ + {"\x2C", 0, 0x609D}, /* East Asian ideograph */ + {"\x2D", 0, 0x6081}, /* East Asian ideograph */ + {"\x2F", 0, 0x609E}, /* East Asian ideograph */ + {"\x30", 0, 0x6083}, /* East Asian ideograph */ + {"\x32", 0, 0x6097}, /* East Asian ideograph */ + {"\x34", 0, 0x60A7}, /* East Asian ideograph */ + {"\x3A", 0, 0x6095}, /* East Asian ideograph */ + {"\x3E", 0, 0x60C7}, /* East Asian ideograph */ + {"\x42", 0, 0x60B0}, /* East Asian ideograph */ + {"\x46", 0, 0x60BE}, /* East Asian ideograph */ + {"\x47", 0, 0x60D3}, /* East Asian ideograph */ + {"\x48", 0, 0x60D4}, /* East Asian ideograph */ + {"\x4E", 0, 0x60CE}, /* East Asian ideograph */ + {"\x51", 0, 0x60CF}, /* East Asian ideograph */ + {"\x53", 0, 0x60D9}, /* East Asian ideograph */ + {"\x54", 0, 0x60B3}, /* East Asian ideograph */ + {"\x56", 0, 0x60DD}, /* East Asian ideograph */ + {"\x5D", 0, 0x60C4}, /* East Asian ideograph */ + {"\x60", 0, 0x60B1}, /* East Asian ideograph */ + {"\x62", 0, 0x60E3}, /* East Asian ideograph */ + {"\x66", 0, 0x60E2}, /* East Asian ideograph */ + {"\x67", 0, 0x60E5}, /* East Asian ideograph */ + {"\x69", 0, 0x60DB}, /* East Asian ideograph */ + {"\x6E", 0, 0x60E9}, /* East Asian ideograph */ + {"\x70", 0, 0x6114}, /* East Asian ideograph */ + {"\x73", 0, 0x6103}, /* East Asian ideograph */ + {"\x75", 0, 0x6119}, /* East Asian ideograph */ + {"\x7C", 0, 0x60FD}, /* East Asian ideograph */ + {"\x7D", 0, 0x610D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page93 = { + marc8_9page93_flat, 0 +}; +/* PAGE 92 */ +struct yaz_iconv_trie_flat marc8_9page92_flat[] = { + {"\x24", 0, 0x5FEA}, /* East Asian ideograph */ + {"\x2A", 0, 0x6026}, /* East Asian ideograph */ + {"\x2C", 0, 0x6029}, /* East Asian ideograph */ + {"\x2D", 0, 0x602B}, /* East Asian ideograph */ + {"\x30", 0, 0x6019}, /* East Asian ideograph */ + {"\x31", 0, 0x6008}, /* East Asian ideograph */ + {"\x36", 0, 0x600A}, /* East Asian ideograph */ + {"\x37", 0, 0x600C}, /* East Asian ideograph */ + {"\x38", 0, 0x601B}, /* East Asian ideograph */ + {"\x3C", 0, 0x6017}, /* East Asian ideograph */ + {"\x3D", 0, 0x6033}, /* East Asian ideograph */ + {"\x45", 0, 0x600D}, /* East Asian ideograph */ + {"\x46", 0, 0x6010}, /* East Asian ideograph */ + {"\x4B", 0, 0x6039}, /* East Asian ideograph */ + {"\x50", 0, 0x6013}, /* East Asian ideograph */ + {"\x53", 0, 0x6054}, /* East Asian ideograph */ + {"\x57", 0, 0x605D}, /* East Asian ideograph */ + {"\x5A", 0, 0x6047}, /* East Asian ideograph */ + {"\x5E", 0, 0x6049}, /* East Asian ideograph */ + {"\x5F", 0, 0x6053}, /* East Asian ideograph */ + {"\x68", 0, 0x6067}, /* East Asian ideograph */ + {"\x6F", 0, 0x604C}, /* East Asian ideograph */ + {"\x71", 0, 0x6041}, /* East Asian ideograph */ + {"\x72", 0, 0x6077}, /* East Asian ideograph */ + {"\x74", 0, 0x6042}, /* East Asian ideograph */ + {"\x76", 0, 0x605F}, /* East Asian ideograph */ + {"\x7A", 0, 0x6061}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page92 = { + marc8_9page92_flat, 0 +}; +/* PAGE 91 */ +struct yaz_iconv_trie_flat marc8_9page91_flat[] = { + {"\x23", 0, 0x5F82}, /* East Asian ideograph */ + {"\x27", 0, 0x5F89}, /* East Asian ideograph */ + {"\x2B", 0, 0x5F94}, /* East Asian ideograph */ + {"\x34", 0, 0x2251B}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\x39", 0, 0x5F9C}, /* East Asian ideograph */ + {"\x3D", 0, 0x5F9A}, /* East Asian ideograph */ + {"\x46", 0, 0x5FAF}, /* East Asian ideograph */ + {"\x50", 0, 0x5FBC}, /* East Asian ideograph */ + {"\x57", 0, 0x5FC9}, /* East Asian ideograph */ + {"\x5F", 0, 0x5FD1}, /* East Asian ideograph */ + {"\x61", 0, 0x5FD2}, /* East Asian ideograph */ + {"\x63", 0, 0x5FD0}, /* East Asian ideograph */ + {"\x67", 0, 0x5FCE}, /* East Asian ideograph */ + {"\x68", 0, 0x5FED}, /* East Asian ideograph */ + {"\x72", 0, 0x5FEE}, /* East Asian ideograph */ + {"\x73", 0, 0x5FF8}, /* East Asian ideograph */ + {"\x78", 0, 0x5FE1}, /* East Asian ideograph */ + {"\x7B", 0, 0x5FE4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page91 = { + marc8_9page91_flat, 0 +}; +/* PAGE 90 */ +struct yaz_iconv_trie_flat marc8_9page90_flat[] = { + {"\x21", 0, 0x5EF1}, /* East Asian ideograph */ + {"\x23", 0, 0x5EF4}, /* East Asian ideograph */ + {"\x35", 0, 0x5F07}, /* East Asian ideograph */ + {"\x3A", 0, 0x5F0B}, /* East Asian ideograph */ + {"\x4A", 0, 0x5F28}, /* East Asian ideograph */ + {"\x4B", 0, 0x5F22}, /* East Asian ideograph */ + {"\x4C", 0, 0x5F23}, /* East Asian ideograph */ + {"\x4D", 0, 0x5F24}, /* East Asian ideograph */ + {"\x51", 0, 0x5F33}, /* East Asian ideograph */ + {"\x52", 0, 0x5F30}, /* East Asian ideograph */ + {"\x58", 0, 0x5F38}, /* East Asian ideograph */ + {"\x5C", 0, 0x5F40}, /* East Asian ideograph */ + {"\x5F", 0, 0x5F44}, /* East Asian ideograph */ + {"\x62", 0, 0x5F4D}, /* East Asian ideograph */ + {"\x68", 0, 0x5F50}, /* East Asian ideograph */ + {"\x69", 0, 0x5F54}, /* East Asian ideograph */ + {"\x6A", 0, 0x5F56}, /* East Asian ideograph */ + {"\x6C", 0, 0x5F58}, /* East Asian ideograph */ + {"\x70", 0, 0x5F60}, /* East Asian ideograph */ + {"\x71", 0, 0x5F61}, /* East Asian ideograph */ + {"\x72", 0, 0x5F63}, /* East Asian ideograph */ + {"\x73", 0, 0x809C}, /* East Asian ideograph */ + {"\x74", 0, 0x5F67}, /* East Asian ideograph */ + {"\x78", 0, 0x5F72}, /* East Asian ideograph */ + {"\x79", 0, 0x5F73}, /* East Asian ideograph */ + {"\x7C", 0, 0x5F74}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page90 = { + marc8_9page90_flat, 0 +}; +/* PAGE 89 */ +struct yaz_iconv_trie_flat marc8_9page89_flat[] = { + {"\x2F", 0, 0x5EA4}, /* East Asian ideograph */ + {"\x35", 0, 0x5EA5}, /* East Asian ideograph */ + {"\x36", 0, 0x5EAF}, /* East Asian ideograph */ + {"\x42", 0, 0x5EB9}, /* East Asian ideograph */ + {"\x4B", 0, 0x5EB3}, /* East Asian ideograph */ + {"\x4C", 0, 0x5EC4}, /* East Asian ideograph */ + {"\x51", 0, 0x5ECC}, /* East Asian ideograph */ + {"\x55", 0, 0x5ECB}, /* East Asian ideograph */ + {"\x57", 0, 0x5ECD}, /* East Asian ideograph */ + {"\x5A", 0, 0x5ED2}, /* East Asian ideograph */ + {"\x5B", 0, 0x5ED1}, /* East Asian ideograph */ + {"\x5C", 0, 0x5ED5}, /* East Asian ideograph */ + {"\x5F", 0, 0x5ED4}, /* East Asian ideograph */ + {"\x60", 0, 0x5ED9}, /* East Asian ideograph */ + {"\x61", 0, 0x5ECE}, /* East Asian ideograph */ + {"\x68", 0, 0x5EE1}, /* East Asian ideograph */ + {"\x6D", 0, 0x5EE7}, /* East Asian ideograph */ + {"\x71", 0, 0x5EE8}, /* East Asian ideograph */ + {"\x7C", 0, 0x5EED}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page89 = { + marc8_9page89_flat, 0 +}; +/* PAGE 88 */ +struct yaz_iconv_trie_flat marc8_9page88_flat[] = { + {"\x22", 0, 0x5E22}, /* East Asian ideograph */ + {"\x24", 0, 0x5E28}, /* East Asian ideograph */ + {"\x35", 0, 0x5E44}, /* East Asian ideograph */ + {"\x36", 0, 0x5E43}, /* East Asian ideograph */ + {"\x39", 0, 0x5E42}, /* East Asian ideograph */ + {"\x3F", 0, 0x5E4E}, /* East Asian ideograph */ + {"\x47", 0, 0x5E58}, /* East Asian ideograph */ + {"\x48", 0, 0x5E48}, /* East Asian ideograph */ + {"\x57", 0, 0x5E5E}, /* East Asian ideograph */ + {"\x58", 0, 0x5E61}, /* East Asian ideograph */ + {"\x5D", 0, 0x5E68}, /* East Asian ideograph */ + {"\x5F", 0, 0x5E6C}, /* East Asian ideograph */ + {"\x60", 0, 0x5E6A}, /* East Asian ideograph */ + {"\x63", 0, 0x5E6E}, /* East Asian ideograph */ + {"\x64", 0, 0x5E6D}, /* East Asian ideograph */ + {"\x65", 0, 0x5E70}, /* East Asian ideograph */ + {"\x6D", 0, 0x5E75}, /* East Asian ideograph */ + {"\x77", 0, 0x5E80}, /* East Asian ideograph */ + {"\x7E", 0, 0x5E8B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page88 = { + marc8_9page88_flat, 0 +}; +/* PAGE 87 */ +struct yaz_iconv_trie_flat marc8_9page87_flat[] = { + {"\x26", 0, 0x5DA7}, /* East Asian ideograph */ + {"\x2A", 0, 0x5DB0}, /* East Asian ideograph */ + {"\x2E", 0, 0x5DB4}, /* East Asian ideograph */ + {"\x2F", 0, 0x5DAE}, /* East Asian ideograph */ + {"\x30", 0, 0x5DB6}, /* East Asian ideograph */ + {"\x32", 0, 0x5DB8}, /* East Asian ideograph */ + {"\x34", 0, 0x5DBF}, /* East Asian ideograph */ + {"\x36", 0, 0x5DB7}, /* East Asian ideograph */ + {"\x3E", 0, 0x5DC3}, /* East Asian ideograph */ + {"\x44", 0, 0x5DC7}, /* East Asian ideograph */ + {"\x46", 0, 0x5DC9}, /* East Asian ideograph */ + {"\x47", 0, 0x5DCB}, /* East Asian ideograph */ + {"\x4E", 0, 0x5DD8}, /* East Asian ideograph */ + {"\x50", 0, 0x5DDB}, /* East Asian ideograph */ + {"\x52", 0, 0x5DDC}, /* East Asian ideograph */ + {"\x56", 0, 0x5DE4}, /* East Asian ideograph */ + {"\x62", 0, 0x5E00}, /* East Asian ideograph */ + {"\x64", 0, 0x51E7}, /* East Asian ideograph */ + {"\x72", 0, 0x5E14}, /* East Asian ideograph */ + {"\x73", 0, 0x5E17}, /* East Asian ideograph */ + {"\x76", 0, 0x5E19}, /* East Asian ideograph */ + {"\x77", 0, 0x5E12}, /* East Asian ideograph */ + {"\x78", 0, 0x5E1F}, /* East Asian ideograph */ + {"\x7A", 0, 0x5E23}, /* East Asian ideograph */ + {"\x7B", 0, 0x5E21}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page87 = { + marc8_9page87_flat, 0 +}; +/* PAGE 86 */ +struct yaz_iconv_trie_flat marc8_9page86_flat[] = { + {"\x25", 0, 0x5D3F}, /* East Asian ideograph */ + {"\x26", 0, 0x5D52}, /* East Asian ideograph */ + {"\x27", 0, 0x5D3D}, /* East Asian ideograph */ + {"\x28", 0, 0x5D4E}, /* East Asian ideograph */ + {"\x2C", 0, 0x5D59}, /* East Asian ideograph */ + {"\x2D", 0, 0x5D47}, /* East Asian ideograph */ + {"\x2F", 0, 0x5D32}, /* East Asian ideograph */ + {"\x31", 0, 0x5D42}, /* East Asian ideograph */ + {"\x34", 0, 0x5D74}, /* East Asian ideograph */ + {"\x39", 0, 0x5D6F}, /* East Asian ideograph */ + {"\x3A", 0, 0x5D6B}, /* East Asian ideograph */ + {"\x3F", 0, 0x5D75}, /* East Asian ideograph */ + {"\x44", 0, 0x5D4A}, /* East Asian ideograph */ + {"\x49", 0, 0x5D6C}, /* East Asian ideograph */ + {"\x4A", 0, 0x5D62}, /* East Asian ideograph */ + {"\x4D", 0, 0x5D82}, /* East Asian ideograph */ + {"\x50", 0, 0x5D79}, /* East Asian ideograph */ + {"\x51", 0, 0x5D8E}, /* East Asian ideograph */ + {"\x5A", 0, 0x5D81}, /* East Asian ideograph */ + {"\x60", 0, 0x5D7E}, /* East Asian ideograph */ + {"\x66", 0, 0x5D92}, /* East Asian ideograph */ + {"\x68", 0, 0x5D99}, /* East Asian ideograph */ + {"\x69", 0, 0x5D97}, /* East Asian ideograph */ + {"\x6A", 0, 0x5DA2}, /* East Asian ideograph */ + {"\x73", 0, 0x5DA1}, /* East Asian ideograph */ + {"\x75", 0, 0x5D93}, /* East Asian ideograph */ + {"\x77", 0, 0x5DA0}, /* East Asian ideograph */ + {"\x7B", 0, 0x5D94}, /* East Asian ideograph */ + {"\x7E", 0, 0x5DAC}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page86 = { + marc8_9page86_flat, 0 +}; +/* PAGE 85 */ +struct yaz_iconv_trie_flat marc8_9page85_flat[] = { + {"\x26", 0, 0x5CE0}, /* East Asian ideograph */ + {"\x28", 0, 0x5CD2}, /* East Asian ideograph */ + {"\x29", 0, 0x5CDD}, /* East Asian ideograph */ + {"\x2B", 0, 0x5CCB}, /* East Asian ideograph */ + {"\x30", 0, 0x5CC7}, /* East Asian ideograph */ + {"\x31", 0, 0x5CDC}, /* East Asian ideograph */ + {"\x34", 0, 0x5D00}, /* East Asian ideograph */ + {"\x34", 0, 0x5D00}, /* East Asian ideograph */ + {"\x3B", 0, 0x5CFF}, /* East Asian ideograph */ + {"\x3C", 0, 0x5CEB}, /* East Asian ideograph */ + {"\x41", 0, 0x5CF4}, /* East Asian ideograph */ + {"\x46", 0, 0x5CF1}, /* East Asian ideograph */ + {"\x49", 0, 0x5D1E}, /* East Asian ideograph */ + {"\x4A", 0, 0x5D12}, /* East Asian ideograph */ + {"\x50", 0, 0x5D1A}, /* East Asian ideograph */ + {"\x52", 0, 0x5D0C}, /* East Asian ideograph */ + {"\x53", 0, 0x5D20}, /* East Asian ideograph */ + {"\x54", 0, 0x5D21}, /* East Asian ideograph */ + {"\x57", 0, 0x5D27}, /* East Asian ideograph */ + {"\x58", 0, 0x5D0D}, /* East Asian ideograph */ + {"\x5A", 0, 0x5D26}, /* East Asian ideograph */ + {"\x5D", 0, 0x5D2E}, /* East Asian ideograph */ + {"\x69", 0, 0x5D24}, /* East Asian ideograph */ + {"\x71", 0, 0x5D36}, /* East Asian ideograph */ + {"\x72", 0, 0x5D3E}, /* East Asian ideograph */ + {"\x74", 0, 0x5D4B}, /* East Asian ideograph */ + {"\x76", 0, 0x5D57}, /* East Asian ideograph */ + {"\x77", 0, 0x5D34}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page85 = { + marc8_9page85_flat, 0 +}; +/* PAGE 84 */ +struct yaz_iconv_trie_flat marc8_9page84_flat[] = { + {"\x23", 0, 0x5C63}, /* East Asian ideograph */ + {"\x29", 0, 0x5C67}, /* East Asian ideograph */ + {"\x2B", 0, 0x5C68}, /* East Asian ideograph */ + {"\x30", 0, 0x5C6D}, /* East Asian ideograph */ + {"\x31", 0, 0x5C6E}, /* East Asian ideograph */ + {"\x37", 0, 0x5C74}, /* East Asian ideograph */ + {"\x39", 0, 0x5C73}, /* East Asian ideograph */ + {"\x3B", 0, 0x5C77}, /* East Asian ideograph */ + {"\x3C", 0, 0x5C7A}, /* East Asian ideograph */ + {"\x40", 0, 0x5C7C}, /* East Asian ideograph */ + {"\x46", 0, 0x5C8F}, /* East Asian ideograph */ + {"\x49", 0, 0x5C88}, /* East Asian ideograph */ + {"\x4B", 0, 0x5C8D}, /* East Asian ideograph */ + {"\x4D", 0, 0x5C99}, /* East Asian ideograph */ + {"\x55", 0, 0x5CA6}, /* East Asian ideograph */ + {"\x57", 0, 0x5CA0}, /* East Asian ideograph */ + {"\x5C", 0, 0x5CA2}, /* East Asian ideograph */ + {"\x60", 0, 0x5CB5}, /* East Asian ideograph */ + {"\x61", 0, 0x5CA7}, /* East Asian ideograph */ + {"\x66", 0, 0x5CA8}, /* East Asian ideograph */ + {"\x67", 0, 0x5CAC}, /* East Asian ideograph */ + {"\x6B", 0, 0x5CA3}, /* East Asian ideograph */ + {"\x6C", 0, 0x5CB6}, /* East Asian ideograph */ + {"\x6D", 0, 0x5CC1}, /* East Asian ideograph */ + {"\x6F", 0, 0x5CAD}, /* East Asian ideograph */ + {"\x70", 0, 0x5CD5}, /* East Asian ideograph */ + {"\x78", 0, 0x5CD3}, /* East Asian ideograph */ + {"\x79", 0, 0x5C8D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page84 = { + marc8_9page84_flat, 0 +}; +/* PAGE 83 */ +struct yaz_iconv_trie_flat marc8_9page83_flat[] = { + {"\x24", 0, 0x5BF0}, /* East Asian ideograph */ + {"\x25", 0, 0x5BEF}, /* East Asian ideograph */ + {"\x33", 0, 0x5C00}, /* East Asian ideograph */ + {"\x35", 0, 0x5C57}, /* East Asian ideograph */ + {"\x3C", 0, 0x5C15}, /* East Asian ideograph */ + {"\x46", 0, 0x5C22}, /* East Asian ideograph */ + {"\x48", 0, 0x5C25}, /* East Asian ideograph */ + {"\x4B", 0, 0x5C2A}, /* East Asian ideograph */ + {"\x52", 0, 0x5C2F}, /* East Asian ideograph */ + {"\x5B", 0, 0x5C32}, /* East Asian ideograph */ + {"\x63", 0, 0x5C3B}, /* East Asian ideograph */ + {"\x65", 0, 0x5C44}, /* East Asian ideograph */ + {"\x67", 0, 0x5C49}, /* East Asian ideograph */ + {"\x79", 0, 0x5C59}, /* East Asian ideograph */ + {"\x7B", 0, 0x5C5D}, /* East Asian ideograph */ + {"\x7C", 0, 0x5C5F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page83 = { + marc8_9page83_flat, 0 +}; +/* PAGE 82 */ +struct yaz_iconv_trie_dir marc8_9page82_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {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}, + {85, 0, 0}, + {86, 0, 0}, + {87, 0, 0}, + {88, 0, 0}, + {89, 0, 0}, + {90, 0, 0}, + {91, 0, 0}, + {92, 0, 0}, + {93, 0, 0}, + {94, 0, 0}, + {95, 0, 0}, + {96, 0, 0}, + {97, 0, 0}, + {98, 0, 0}, + {99, 0, 0}, + {100, 0, 0}, + {101, 0, 0}, + {102, 0, 0}, + {103, 0, 0}, + {104, 0, 0}, + {105, 0, 0}, + {106, 0, 0}, + {107, 0, 0}, + {108, 0, 0}, + {109, 0, 0}, + {110, 0, 0}, + {111, 0, 0}, + {112, 0, 0}, + {113, 0, 0}, + {114, 0, 0}, + {115, 0, 0}, + {116, 0, 0}, + {117, 0, 0}, + {118, 0, 0}, + {119, 0, 0}, + {120, 0, 0}, + {121, 0, 0}, + {122, 0, 0}, + {123, 0, 0}, + {124, 0, 0}, + {125, 0, 0}, + {126, 0, 0}, + {127, 0, 0}, + {128, 0, 0}, + {129, 0, 0}, + {130, 0, 0}, + {131, 0, 0}, + {132, 0, 0}, + {133, 0, 0}, + {134, 0, 0}, + {135, 0, 0}, + {136, 0, 0}, + {137, 0, 0}, + {138, 0, 0}, + {139, 0, 0}, + {140, 0, 0}, + {141, 0, 0}, + {142, 0, 0}, + {143, 0, 0}, + {144, 0, 0}, + {145, 0, 0}, + {146, 0, 0}, + {147, 0, 0}, + {148, 0, 0}, + {149, 0, 0}, + {150, 0, 0}, + {151, 0, 0}, + {152, 0, 0}, + {153, 0, 0}, + {154, 0, 0}, + {155, 0, 0}, + {156, 0, 0}, + {157, 0, 0}, + {158, 0, 0}, + {159, 0, 0}, + {160, 0, 0}, + {161, 0, 0}, + {162, 0, 0}, + {163, 0, 0}, + {164, 0, 0}, + {165, 0, 0}, + {166, 0, 0}, + {167, 0, 0}, + {168, 0, 0}, + {169, 0, 0}, + {170, 0, 0}, + {171, 0, 0}, + {172, 0, 0}, + {173, 0, 0}, + {174, 0, 0}, + {175, 0, 0}, + {176, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page82 = { + 0, marc8_9page82_dir +}; +/* PAGE 81 */ +struct yaz_iconv_trie_flat marc8_9page81_flat[] = { + {"\x21", 0, 0x5B5B}, /* East Asian ideograph */ + {"\x23", 0, 0x5B62}, /* East Asian ideograph */ + {"\x24", 0, 0x5B65}, /* East Asian ideograph */ + {"\x25", 0, 0x5B67}, /* East Asian ideograph */ + {"\x27", 0, 0x5C58}, /* East Asian ideograph */ + {"\x28", 0, 0x5B6C}, /* East Asian ideograph */ + {"\x2A", 0, 0x5B6E}, /* East Asian ideograph */ + {"\x30", 0, 0x5B7B}, /* East Asian ideograph */ + {"\x31", 0, 0x5B7C}, /* East Asian ideograph */ + {"\x32", 0, 0x5B80}, /* East Asian ideograph */ + {"\x34", 0, 0x5B84}, /* East Asian ideograph */ + {"\x35", 0, 0x5B82}, /* East Asian ideograph */ + {"\x40", 0, 0x5B95}, /* East Asian ideograph */ + {"\x43", 0, 0x5B93}, /* East Asian ideograph */ + {"\x49", 0, 0x5BAC}, /* East Asian ideograph */ + {"\x52", 0, 0x5BA7}, /* East Asian ideograph */ + {"\x55", 0, 0x5BB7}, /* East Asian ideograph */ + {"\x59", 0, 0x5BC1}, /* East Asian ideograph */ + {"\x5B", 0, 0x3761}, /* East Asian ideograph (Unicode CJK Extension A) */ + {"\x60", 0, 0x5BC9}, /* East Asian ideograph */ + {"\x68", 0, 0x5BD4}, /* East Asian ideograph */ + {"\x6A", 0, 0x5BC3}, /* East Asian ideograph */ + {"\x6E", 0, 0x5BD6}, /* East Asian ideograph */ + {"\x75", 0, 0x5BD7}, /* East Asian ideograph */ + {"\x79", 0, 0x5BE0}, /* East Asian ideograph */ + {"\x7E", 0, 0x5BEA}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page81 = { + marc8_9page81_flat, 0 +}; +/* PAGE 80 */ +struct yaz_iconv_trie_flat marc8_9page80_flat[] = { + {"\x26", 0, 0x5AFF}, /* East Asian ideograph */ + {"\x2A", 0, 0x5AFD}, /* East Asian ideograph */ + {"\x2B", 0, 0x5B08}, /* East Asian ideograph */ + {"\x2E", 0, 0x5B0D}, /* East Asian ideograph */ + {"\x38", 0, 0x5B03}, /* East Asian ideograph */ + {"\x3D", 0, 0x5B17}, /* East Asian ideograph */ + {"\x3E", 0, 0x5B16}, /* East Asian ideograph */ + {"\x40", 0, 0x5B19}, /* East Asian ideograph */ + {"\x47", 0, 0x5B1B}, /* East Asian ideograph */ + {"\x48", 0, 0x5B21}, /* East Asian ideograph */ + {"\x52", 0, 0x5B2C}, /* East Asian ideograph */ + {"\x59", 0, 0x5B32}, /* East Asian ideograph */ + {"\x63", 0, 0x5B3F}, /* East Asian ideograph */ + {"\x6E", 0, 0x5B45}, /* East Asian ideograph */ + {"\x74", 0, 0x5B4C}, /* East Asian ideograph */ + {"\x76", 0, 0x5B4B}, /* East Asian ideograph */ + {"\x7C", 0, 0x5B56}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page80 = { + marc8_9page80_flat, 0 +}; +/* PAGE 79 */ +struct yaz_iconv_trie_flat marc8_9page79_flat[] = { + {"\x21", 0, 0x5AA6}, /* East Asian ideograph */ + {"\x22", 0, 0x5A8C}, /* East Asian ideograph */ + {"\x24", 0, 0x5AA7}, /* East Asian ideograph */ + {"\x25", 0, 0x5A9E}, /* East Asian ideograph */ + {"\x26", 0, 0x5AA2}, /* East Asian ideograph */ + {"\x27", 0, 0x5A9C}, /* East Asian ideograph */ + {"\x28", 0, 0x5A7C}, /* East Asian ideograph */ + {"\x29", 0, 0x5A96}, /* East Asian ideograph */ + {"\x30", 0, 0x5A93}, /* East Asian ideograph */ + {"\x31", 0, 0x5AAC}, /* East Asian ideograph */ + {"\x34", 0, 0x5AAE}, /* East Asian ideograph */ + {"\x35", 0, 0x5A95}, /* East Asian ideograph */ + {"\x36", 0, 0x5AAF}, /* East Asian ideograph */ + {"\x39", 0, 0x5AC8}, /* East Asian ideograph */ + {"\x3E", 0, 0x5AB5}, /* East Asian ideograph */ + {"\x41", 0, 0x5AC4}, /* East Asian ideograph */ + {"\x45", 0, 0x5AB7}, /* East Asian ideograph */ + {"\x49", 0, 0x5AD1}, /* East Asian ideograph */ + {"\x4A", 0, 0x5A90}, /* East Asian ideograph */ + {"\x4F", 0, 0x5AB8}, /* East Asian ideograph */ + {"\x50", 0, 0x5ABA}, /* East Asian ideograph */ + {"\x52", 0, 0x5AAA}, /* East Asian ideograph */ + {"\x59", 0, 0x5AD3}, /* East Asian ideograph */ + {"\x5B", 0, 0x5AB1}, /* East Asian ideograph */ + {"\x60", 0, 0x5ADC}, /* East Asian ideograph */ + {"\x6D", 0, 0x5AE5}, /* East Asian ideograph */ + {"\x6E", 0, 0x5AE0}, /* East Asian ideograph */ + {"\x72", 0, 0x5AEA}, /* East Asian ideograph */ + {"\x7B", 0, 0x5ADA}, /* East Asian ideograph */ + {"\x7C", 0, 0x5AEB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page79 = { + marc8_9page79_flat, 0 +}; +/* PAGE 78 */ +struct yaz_iconv_trie_flat marc8_9page78_flat[] = { + {"\x2C", 0, 0x5A60}, /* East Asian ideograph */ + {"\x31", 0, 0x5A67}, /* East Asian ideograph */ + {"\x3A", 0, 0x5A38}, /* East Asian ideograph */ + {"\x3B", 0, 0x5A5E}, /* East Asian ideograph */ + {"\x3C", 0, 0x5A6D}, /* East Asian ideograph */ + {"\x3D", 0, 0x5A35}, /* East Asian ideograph */ + {"\x3E", 0, 0x5A55}, /* East Asian ideograph */ + {"\x41", 0, 0x5A2C}, /* East Asian ideograph */ + {"\x48", 0, 0x5A50}, /* East Asian ideograph */ + {"\x49", 0, 0x5A65}, /* East Asian ideograph */ + {"\x52", 0, 0x5A64}, /* East Asian ideograph */ + {"\x65", 0, 0x5A8A}, /* East Asian ideograph */ + {"\x69", 0, 0x5ACF}, /* East Asian ideograph */ + {"\x6A", 0, 0x5A7A}, /* East Asian ideograph */ + {"\x71", 0, 0x5A9F}, /* East Asian ideograph */ + {"\x75", 0, 0x5AA0}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page78 = { + marc8_9page78_flat, 0 +}; +/* PAGE 77 */ +struct yaz_iconv_trie_flat marc8_9page77_flat[] = { + {"\x21", 0, 0x5990}, /* East Asian ideograph */ + {"\x24", 0, 0x59C5}, /* East Asian ideograph */ + {"\x25", 0, 0x59B5}, /* East Asian ideograph */ + {"\x28", 0, 0x59CF}, /* East Asian ideograph */ + {"\x2A", 0, 0x59BA}, /* East Asian ideograph */ + {"\x2C", 0, 0x59B8}, /* East Asian ideograph */ + {"\x35", 0, 0x59B2}, /* East Asian ideograph */ + {"\x3A", 0, 0x59B7}, /* East Asian ideograph */ + {"\x3E", 0, 0x59C1}, /* East Asian ideograph */ + {"\x43", 0, 0x59F9}, /* East Asian ideograph */ + {"\x44", 0, 0x59F8}, /* East Asian ideograph */ + {"\x4F", 0, 0x59EE}, /* East Asian ideograph */ + {"\x50", 0, 0x59F1}, /* East Asian ideograph */ + {"\x51", 0, 0x5A00}, /* East Asian ideograph */ + {"\x52", 0, 0x59DE}, /* East Asian ideograph */ + {"\x56", 0, 0x59FD}, /* East Asian ideograph */ + {"\x5D", 0, 0x59F6}, /* East Asian ideograph */ + {"\x5E", 0, 0x59DD}, /* East Asian ideograph */ + {"\x5F", 0, 0x59FA}, /* East Asian ideograph */ + {"\x61", 0, 0x59E4}, /* East Asian ideograph */ + {"\x6E", 0, 0x5A2A}, /* East Asian ideograph */ + {"\x75", 0, 0x5A16}, /* East Asian ideograph */ + {"\x78", 0, 0x5A09}, /* East Asian ideograph */ + {"\x7E", 0, 0x5A12}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page77 = { + marc8_9page77_flat, 0 +}; +/* PAGE 76 */ +struct yaz_iconv_trie_flat marc8_9page76_flat[] = { + {"\x28", 0, 0x592C}, /* East Asian ideograph */ + {"\x2B", 0, 0x592F}, /* East Asian ideograph */ + {"\x30", 0, 0x593C}, /* East Asian ideograph */ + {"\x33", 0, 0x5940}, /* East Asian ideograph */ + {"\x38", 0, 0x594D}, /* East Asian ideograph */ + {"\x43", 0, 0x5953}, /* East Asian ideograph */ + {"\x4B", 0, 0x595C}, /* East Asian ideograph */ + {"\x4F", 0, 0x5961}, /* East Asian ideograph */ + {"\x54", 0, 0x596C}, /* East Asian ideograph */ + {"\x55", 0, 0x596D}, /* East Asian ideograph */ + {"\x65", 0, 0x597C}, /* East Asian ideograph */ + {"\x69", 0, 0x59A7}, /* East Asian ideograph */ + {"\x6B", 0, 0x5998}, /* East Asian ideograph */ + {"\x6F", 0, 0x599A}, /* East Asian ideograph */ + {"\x71", 0, 0x59A0}, /* East Asian ideograph */ + {"\x7C", 0, 0x5997}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page76 = { + marc8_9page76_flat, 0 +}; +/* PAGE 75 */ +struct yaz_iconv_trie_flat marc8_9page75_flat[] = { + {"\x24", 0, 0x58B1}, /* East Asian ideograph */ + {"\x2B", 0, 0x58AD}, /* East Asian ideograph */ + {"\x2E", 0, 0x58A0}, /* East Asian ideograph */ + {"\x30", 0, 0x58A3}, /* East Asian ideograph */ + {"\x32", 0, 0x58A6}, /* East Asian ideograph */ + {"\x3A", 0, 0x58C8}, /* East Asian ideograph */ + {"\x41", 0, 0x58BC}, /* East Asian ideograph */ + {"\x49", 0, 0x58BF}, /* East Asian ideograph */ + {"\x4B", 0, 0x58C6}, /* East Asian ideograph */ + {"\x4C", 0, 0x58BA}, /* East Asian ideograph */ + {"\x50", 0, 0x58D6}, /* East Asian ideograph */ + {"\x54", 0, 0x58D2}, /* East Asian ideograph */ + {"\x56", 0, 0x58CE}, /* East Asian ideograph */ + {"\x5A", 0, 0x58E0}, /* East Asian ideograph */ + {"\x5E", 0, 0x58DA}, /* East Asian ideograph */ + {"\x6C", 0, 0x58FC}, /* East Asian ideograph */ + {"\x70", 0, 0x5902}, /* East Asian ideograph */ + {"\x73", 0, 0x5906}, /* East Asian ideograph */ + {"\x74", 0, 0x6535}, /* East Asian ideograph */ + {"\x7A", 0, 0x5910}, /* East Asian ideograph */ + {"\x7C", 0, 0x8641}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page75 = { + marc8_9page75_flat, 0 +}; +/* PAGE 74 */ +struct yaz_iconv_trie_flat marc8_9page74_flat[] = { + {"\x21", 0, 0x5848}, /* East Asian ideograph */ + {"\x23", 0, 0x5818}, /* East Asian ideograph */ + {"\x26", 0, 0x57F5}, /* East Asian ideograph */ + {"\x29", 0, 0x582D}, /* East Asian ideograph */ + {"\x2B", 0, 0x5820}, /* East Asian ideograph */ + {"\x30", 0, 0x584E}, /* East Asian ideograph */ + {"\x33", 0, 0x585D}, /* East Asian ideograph */ + {"\x35", 0, 0x5859}, /* East Asian ideograph */ + {"\x37", 0, 0x584B}, /* East Asian ideograph */ + {"\x3D", 0, 0x5865}, /* East Asian ideograph */ + {"\x40", 0, 0x586C}, /* East Asian ideograph */ + {"\x42", 0, 0x5852}, /* East Asian ideograph */ + {"\x45", 0, 0x5864}, /* East Asian ideograph */ + {"\x47", 0, 0x5853}, /* East Asian ideograph */ + {"\x48", 0, 0x584F}, /* East Asian ideograph */ + {"\x49", 0, 0x583D}, /* East Asian ideograph */ + {"\x4D", 0, 0x584D}, /* East Asian ideograph */ + {"\x4E", 0, 0x5856}, /* East Asian ideograph */ + {"\x55", 0, 0x589A}, /* East Asian ideograph */ + {"\x58", 0, 0x5892}, /* East Asian ideograph */ + {"\x5A", 0, 0x588E}, /* East Asian ideograph */ + {"\x5C", 0, 0x5889}, /* East Asian ideograph */ + {"\x5F", 0, 0x5840}, /* East Asian ideograph */ + {"\x60", 0, 0x589B}, /* East Asian ideograph */ + {"\x61", 0, 0x587C}, /* East Asian ideograph */ + {"\x63", 0, 0x5888}, /* East Asian ideograph */ + {"\x65", 0, 0x5890}, /* East Asian ideograph */ + {"\x68", 0, 0x5898}, /* East Asian ideograph */ + {"\x6B", 0, 0x587D}, /* East Asian ideograph */ + {"\x6F", 0, 0x587F}, /* East Asian ideograph */ + {"\x70", 0, 0x5881}, /* East Asian ideograph */ + {"\x7B", 0, 0x58A9}, /* East Asian ideograph */ + {"\x7E", 0, 0x58A1}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page74 = { + marc8_9page74_flat, 0 +}; +/* PAGE 73 */ +struct yaz_iconv_trie_flat marc8_9page73_flat[] = { + {"\x22", 0, 0x57C4}, /* East Asian ideograph */ + {"\x27", 0, 0x70FE}, /* East Asian ideograph */ + {"\x29", 0, 0x57E3}, /* East Asian ideograph */ + {"\x2A", 0, 0x57FB}, /* East Asian ideograph */ + {"\x2B", 0, 0x5803}, /* East Asian ideograph */ + {"\x2C", 0, 0x57F6}, /* East Asian ideograph */ + {"\x2D", 0, 0x57E6}, /* East Asian ideograph */ + {"\x31", 0, 0x57ED}, /* East Asian ideograph */ + {"\x33", 0, 0x5800}, /* East Asian ideograph */ + {"\x35", 0, 0x57EC}, /* East Asian ideograph */ + {"\x36", 0, 0x5807}, /* East Asian ideograph */ + {"\x39", 0, 0x580E}, /* East Asian ideograph */ + {"\x3B", 0, 0x580F}, /* East Asian ideograph */ + {"\x3D", 0, 0x57F4}, /* East Asian ideograph */ + {"\x3E", 0, 0x5810}, /* East Asian ideograph */ + {"\x40", 0, 0x580D}, /* East Asian ideograph */ + {"\x43", 0, 0x57EF}, /* East Asian ideograph */ + {"\x48", 0, 0x5801}, /* East Asian ideograph */ + {"\x49", 0, 0x5812}, /* East Asian ideograph */ + {"\x4D", 0, 0x57FD}, /* East Asian ideograph */ + {"\x4E", 0, 0x57F8}, /* East Asian ideograph */ + {"\x50", 0, 0x580C}, /* East Asian ideograph */ + {"\x51", 0, 0x5813}, /* East Asian ideograph */ + {"\x52", 0, 0x57F0}, /* East Asian ideograph */ + {"\x56", 0, 0x580B}, /* East Asian ideograph */ + {"\x58", 0, 0x57F3}, /* East Asian ideograph */ + {"\x59", 0, 0x5804}, /* East Asian ideograph */ + {"\x5A", 0, 0x57CF}, /* East Asian ideograph */ + {"\x5B", 0, 0x57DD}, /* East Asian ideograph */ + {"\x5F", 0, 0x5847}, /* East Asian ideograph */ + {"\x67", 0, 0x581B}, /* East Asian ideograph */ + {"\x69", 0, 0x5819}, /* East Asian ideograph */ + {"\x6A", 0, 0x5833}, /* East Asian ideograph */ + {"\x6C", 0, 0x581E}, /* East Asian ideograph */ + {"\x6D", 0, 0x583F}, /* East Asian ideograph */ + {"\x71", 0, 0x5827}, /* East Asian ideograph */ + {"\x76", 0, 0x5828}, /* East Asian ideograph */ + {"\x78", 0, 0x582E}, /* East Asian ideograph */ + {"\x7A", 0, 0x581D}, /* East Asian ideograph */ + {"\x7D", 0, 0x5844}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page73 = { + marc8_9page73_flat, 0 +}; +/* PAGE 72 */ +struct yaz_iconv_trie_flat marc8_9page72_flat[] = { + {"\x26", 0, 0x5770}, /* East Asian ideograph */ + {"\x28", 0, 0x5771}, /* East Asian ideograph */ + {"\x2A", 0, 0x576E}, /* East Asian ideograph */ + {"\x2D", 0, 0x5776}, /* East Asian ideograph */ + {"\x2E", 0, 0x5789}, /* East Asian ideograph */ + {"\x30", 0, 0x577F}, /* East Asian ideograph */ + {"\x31", 0, 0x5775}, /* East Asian ideograph */ + {"\x32", 0, 0x577B}, /* East Asian ideograph */ + {"\x33", 0, 0x5788}, /* East Asian ideograph */ + {"\x35", 0, 0x5773}, /* East Asian ideograph */ + {"\x38", 0, 0x579F}, /* East Asian ideograph */ + {"\x39", 0, 0x5790}, /* East Asian ideograph */ + {"\x3A", 0, 0x5793}, /* East Asian ideograph */ + {"\x3F", 0, 0x579E}, /* East Asian ideograph */ + {"\x40", 0, 0x57B5}, /* East Asian ideograph */ + {"\x43", 0, 0x579A}, /* East Asian ideograph */ + {"\x45", 0, 0x5794}, /* East Asian ideograph */ + {"\x47", 0, 0x57A4}, /* East Asian ideograph */ + {"\x48", 0, 0x5799}, /* East Asian ideograph */ + {"\x49", 0, 0x578C}, /* East Asian ideograph */ + {"\x4B", 0, 0x5797}, /* East Asian ideograph */ + {"\x4E", 0, 0x579D}, /* East Asian ideograph */ + {"\x52", 0, 0x579C}, /* East Asian ideograph */ + {"\x54", 0, 0x57A7}, /* East Asian ideograph */ + {"\x57", 0, 0x57A1}, /* East Asian ideograph */ + {"\x59", 0, 0x212C4}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\x5B", 0, 0x5795}, /* East Asian ideograph */ + {"\x5F", 0, 0x57B8}, /* East Asian ideograph */ + {"\x60", 0, 0x57C7}, /* East Asian ideograph */ + {"\x6A", 0, 0x5809}, /* East Asian ideograph */ + {"\x6C", 0, 0x57BE}, /* East Asian ideograph */ + {"\x71", 0, 0x57DB}, /* East Asian ideograph */ + {"\x73", 0, 0x57D5}, /* East Asian ideograph */ + {"\x77", 0, 0x57D2}, /* East Asian ideograph */ + {"\x7E", 0, 0x57C6}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page72 = { + marc8_9page72_flat, 0 +}; +/* PAGE 71 */ +struct yaz_iconv_trie_flat marc8_9page71_flat[] = { + {"\x21", 0, 0x56F9}, /* East Asian ideograph */ + {"\x24", 0, 0x56FF}, /* East Asian ideograph */ + {"\x27", 0, 0x5705}, /* East Asian ideograph */ + {"\x28", 0, 0x5704}, /* East Asian ideograph */ + {"\x29", 0, 0x5702}, /* East Asian ideograph */ + {"\x2C", 0, 0x570A}, /* East Asian ideograph */ + {"\x2D", 0, 0x5709}, /* East Asian ideograph */ + {"\x2E", 0, 0x5707}, /* East Asian ideograph */ + {"\x30", 0, 0x570C}, /* East Asian ideograph */ + {"\x31", 0, 0x5715}, /* East Asian ideograph */ + {"\x32", 0, 0x5714}, /* East Asian ideograph */ + {"\x35", 0, 0x571A}, /* East Asian ideograph */ + {"\x36", 0, 0x571B}, /* East Asian ideograph */ + {"\x37", 0, 0x571C}, /* East Asian ideograph */ + {"\x39", 0, 0x571D}, /* East Asian ideograph */ + {"\x3A", 0, 0x571E}, /* East Asian ideograph */ + {"\x41", 0, 0x5724}, /* East Asian ideograph */ + {"\x42", 0, 0x572E}, /* East Asian ideograph */ + {"\x43", 0, 0x5729}, /* East Asian ideograph */ + {"\x48", 0, 0x5738}, /* East Asian ideograph */ + {"\x4C", 0, 0x572A}, /* East Asian ideograph */ + {"\x63", 0, 0x5749}, /* East Asian ideograph */ + {"\x65", 0, 0x5745}, /* East Asian ideograph */ + {"\x68", 0, 0x574B}, /* East Asian ideograph */ + {"\x69", 0, 0x574C}, /* East Asian ideograph */ + {"\x6A", 0, 0x573F}, /* East Asian ideograph */ + {"\x70", 0, 0x5768}, /* East Asian ideograph */ + {"\x75", 0, 0x578A}, /* East Asian ideograph */ + {"\x77", 0, 0x576D}, /* East Asian ideograph */ + {"\x79", 0, 0x5774}, /* East Asian ideograph */ + {"\x7A", 0, 0x5767}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page71 = { + marc8_9page71_flat, 0 +}; +/* PAGE 70 */ +struct yaz_iconv_trie_flat marc8_9page70_flat[] = { + {"\x25", 0, 0x5693}, /* East Asian ideograph */ + {"\x28", 0, 0x568C}, /* East Asian ideograph */ + {"\x32", 0, 0x56BA}, /* East Asian ideograph */ + {"\x34", 0, 0x5686}, /* East Asian ideograph */ + {"\x35", 0, 0x5684}, /* East Asian ideograph */ + {"\x36", 0, 0x5691}, /* East Asian ideograph */ + {"\x37", 0, 0x568A}, /* East Asian ideograph */ + {"\x3E", 0, 0x569E}, /* East Asian ideograph */ + {"\x41", 0, 0x569C}, /* East Asian ideograph */ + {"\x42", 0, 0x569A}, /* East Asian ideograph */ + {"\x45", 0, 0x5699}, /* East Asian ideograph */ + {"\x4B", 0, 0x56AD}, /* East Asian ideograph */ + {"\x4C", 0, 0x56A6}, /* East Asian ideograph */ + {"\x4E", 0, 0x56AC}, /* East Asian ideograph */ + {"\x53", 0, 0x56B2}, /* East Asian ideograph */ + {"\x5A", 0, 0x56B3}, /* East Asian ideograph */ + {"\x5B", 0, 0x56C3}, /* East Asian ideograph */ + {"\x60", 0, 0x56C5}, /* East Asian ideograph */ + {"\x62", 0, 0x56CF}, /* East Asian ideograph */ + {"\x67", 0, 0x56CD}, /* East Asian ideograph */ + {"\x6A", 0, 0x56D4}, /* East Asian ideograph */ + {"\x6B", 0, 0x56D7}, /* East Asian ideograph */ + {"\x6D", 0, 0x56DD}, /* East Asian ideograph */ + {"\x6F", 0, 0x56E1}, /* East Asian ideograph */ + {"\x70", 0, 0x56DF}, /* East Asian ideograph */ + {"\x75", 0, 0x56EB}, /* East Asian ideograph */ + {"\x76", 0, 0x56EE}, /* East Asian ideograph */ + {"\x77", 0, 0x56E7}, /* East Asian ideograph */ + {"\x79", 0, 0x56FB}, /* East Asian ideograph */ + {"\x7E", 0, 0x56F7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page70 = { + marc8_9page70_flat, 0 +}; +/* PAGE 69 */ +struct yaz_iconv_trie_flat marc8_9page69_flat[] = { + {"\x24", 0, 0x55FB}, /* East Asian ideograph */ + {"\x25", 0, 0x5612}, /* East Asian ideograph */ + {"\x27", 0, 0x55F8}, /* East Asian ideograph */ + {"\x28", 0, 0x560F}, /* East Asian ideograph */ + {"\x2B", 0, 0x55F9}, /* East Asian ideograph */ + {"\x2E", 0, 0x561E}, /* East Asian ideograph */ + {"\x31", 0, 0x560C}, /* East Asian ideograph */ + {"\x34", 0, 0x561C}, /* East Asian ideograph */ + {"\x35", 0, 0x5610}, /* East Asian ideograph */ + {"\x36", 0, 0x5601}, /* East Asian ideograph */ + {"\x38", 0, 0x5613}, /* East Asian ideograph */ + {"\x39", 0, 0x55F6}, /* East Asian ideograph */ + {"\x3C", 0, 0x5602}, /* East Asian ideograph */ + {"\x42", 0, 0x561D}, /* East Asian ideograph */ + {"\x44", 0, 0x55FF}, /* East Asian ideograph */ + {"\x47", 0, 0x5642}, /* East Asian ideograph */ + {"\x48", 0, 0x564C}, /* East Asian ideograph */ + {"\x4B", 0, 0x564B}, /* East Asian ideograph */ + {"\x52", 0, 0x5640}, /* East Asian ideograph */ + {"\x55", 0, 0x5635}, /* East Asian ideograph */ + {"\x57", 0, 0x5649}, /* East Asian ideograph */ + {"\x58", 0, 0x5641}, /* East Asian ideograph */ + {"\x5C", 0, 0x5658}, /* East Asian ideograph */ + {"\x5D", 0, 0x5620}, /* East Asian ideograph */ + {"\x5E", 0, 0x5654}, /* East Asian ideograph */ + {"\x60", 0, 0x562A}, /* East Asian ideograph */ + {"\x61", 0, 0x563D}, /* East Asian ideograph */ + {"\x64", 0, 0x562C}, /* East Asian ideograph */ + {"\x67", 0, 0x5638}, /* East Asian ideograph */ + {"\x69", 0, 0x564D}, /* East Asian ideograph */ + {"\x6B", 0, 0x562B}, /* East Asian ideograph */ + {"\x6C", 0, 0x564F}, /* East Asian ideograph */ + {"\x6E", 0, 0x5670}, /* East Asian ideograph */ + {"\x6F", 0, 0x565F}, /* East Asian ideograph */ + {"\x70", 0, 0x567C}, /* East Asian ideograph */ + {"\x72", 0, 0x5660}, /* East Asian ideograph */ + {"\x78", 0, 0x5676}, /* East Asian ideograph */ + {"\x7A", 0, 0x5666}, /* East Asian ideograph */ + {"\x7B", 0, 0x5673}, /* East Asian ideograph */ + {"\x7C", 0, 0x566D}, /* East Asian ideograph */ + {"\x7E", 0, 0x5672}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page69 = { + marc8_9page69_flat, 0 +}; +/* PAGE 68 */ +struct yaz_iconv_trie_flat marc8_9page68_flat[] = { + {"\x23", 0, 0x5591}, /* East Asian ideograph */ + {"\x25", 0, 0x5577}, /* East Asian ideograph */ + {"\x26", 0, 0x55A8}, /* East Asian ideograph */ + {"\x27", 0, 0x55AD}, /* East Asian ideograph */ + {"\x2A", 0, 0x5605}, /* East Asian ideograph */ + {"\x2D", 0, 0x5593}, /* East Asian ideograph */ + {"\x2F", 0, 0x5586}, /* East Asian ideograph */ + {"\x34", 0, 0x5588}, /* East Asian ideograph */ + {"\x36", 0, 0x55B4}, /* East Asian ideograph */ + {"\x43", 0, 0x55E2}, /* East Asian ideograph (variant of EACC 2D7143) */ + {"\x44", 0, 0x5581}, /* East Asian ideograph */ + {"\x45", 0, 0x558E}, /* East Asian ideograph */ + {"\x47", 0, 0x55B5}, /* East Asian ideograph */ + {"\x49", 0, 0x558F}, /* East Asian ideograph */ + {"\x4B", 0, 0x5559}, /* East Asian ideograph */ + {"\x50", 0, 0x55A4}, /* East Asian ideograph */ + {"\x51", 0, 0x5592}, /* East Asian ideograph */ + {"\x52", 0, 0x5599}, /* East Asian ideograph */ + {"\x56", 0, 0x55F4}, /* East Asian ideograph */ + {"\x58", 0, 0x55CC}, /* East Asian ideograph */ + {"\x59", 0, 0x55D0}, /* East Asian ideograph */ + {"\x5A", 0, 0x55DB}, /* East Asian ideograph */ + {"\x5B", 0, 0x55CD}, /* East Asian ideograph */ + {"\x5C", 0, 0x55DE}, /* East Asian ideograph */ + {"\x5D", 0, 0x55D9}, /* East Asian ideograph */ + {"\x5E", 0, 0x55C3}, /* East Asian ideograph */ + {"\x5F", 0, 0x55C9}, /* East Asian ideograph */ + {"\x61", 0, 0x55CA}, /* East Asian ideograph */ + {"\x62", 0, 0x55DD}, /* East Asian ideograph */ + {"\x64", 0, 0x55D4}, /* East Asian ideograph */ + {"\x65", 0, 0x55C4}, /* East Asian ideograph */ + {"\x69", 0, 0x55E9}, /* East Asian ideograph */ + {"\x6F", 0, 0x55CF}, /* East Asian ideograph */ + {"\x70", 0, 0x55D2}, /* East Asian ideograph */ + {"\x75", 0, 0x55E5}, /* East Asian ideograph */ + {"\x77", 0, 0x55D6}, /* East Asian ideograph */ + {"\x78", 0, 0x55C1}, /* East Asian ideograph */ + {"\x79", 0, 0x55F2}, /* East Asian ideograph */ + {"\x7E", 0, 0x5627}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page68 = { + marc8_9page68_flat, 0 +}; +/* PAGE 67 */ +struct yaz_iconv_trie_flat marc8_9page67_flat[] = { + {"\x23", 0, 0x5517}, /* East Asian ideograph */ + {"\x24", 0, 0x54FD}, /* East Asian ideograph */ + {"\x25", 0, 0x54E7}, /* East Asian ideograph */ + {"\x27", 0, 0x54F3}, /* East Asian ideograph */ + {"\x2A", 0, 0x54E4}, /* East Asian ideograph */ + {"\x2B", 0, 0x550A}, /* East Asian ideograph */ + {"\x2D", 0, 0x54FF}, /* East Asian ideograph */ + {"\x2E", 0, 0x5518}, /* East Asian ideograph */ + {"\x30", 0, 0x5504}, /* East Asian ideograph */ + {"\x32", 0, 0x54EF}, /* East Asian ideograph */ + {"\x34", 0, 0x5508}, /* East Asian ideograph */ + {"\x38", 0, 0x54F6}, /* East Asian ideograph */ + {"\x39", 0, 0x54F7}, /* East Asian ideograph */ + {"\x3E", 0, 0x550E}, /* East Asian ideograph */ + {"\x44", 0, 0x5523}, /* East Asian ideograph */ + {"\x46", 0, 0x550F}, /* East Asian ideograph */ + {"\x47", 0, 0x5511}, /* East Asian ideograph */ + {"\x4B", 0, 0x5575}, /* East Asian ideograph */ + {"\x4D", 0, 0x5573}, /* East Asian ideograph */ + {"\x4E", 0, 0x554C}, /* East Asian ideograph */ + {"\x4F", 0, 0x5576}, /* East Asian ideograph */ + {"\x50", 0, 0x554D}, /* East Asian ideograph */ + {"\x51", 0, 0x555A}, /* East Asian ideograph */ + {"\x53", 0, 0x553C}, /* East Asian ideograph */ + {"\x55", 0, 0x5550}, /* East Asian ideograph */ + {"\x57", 0, 0x5539}, /* East Asian ideograph */ + {"\x58", 0, 0x5548}, /* East Asian ideograph */ + {"\x59", 0, 0x552D}, /* East Asian ideograph */ + {"\x5A", 0, 0x5551}, /* East Asian ideograph */ + {"\x5D", 0, 0x552A}, /* East Asian ideograph */ + {"\x60", 0, 0x5562}, /* East Asian ideograph */ + {"\x61", 0, 0x5536}, /* East Asian ideograph */ + {"\x64", 0, 0x5549}, /* East Asian ideograph */ + {"\x68", 0, 0x5530}, /* East Asian ideograph */ + {"\x6A", 0, 0x5540}, /* East Asian ideograph */ + {"\x6B", 0, 0x5535}, /* East Asian ideograph */ + {"\x70", 0, 0x5545}, /* East Asian ideograph */ + {"\x79", 0, 0x553F}, /* East Asian ideograph */ + {"\x7B", 0, 0x5541}, /* East Asian ideograph */ + {"\x7D", 0, 0x5565}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page67 = { + marc8_9page67_flat, 0 +}; +/* PAGE 66 */ +struct yaz_iconv_trie_flat marc8_9page66_flat[] = { + {"\x21", 0, 0x544F}, /* East Asian ideograph */ + {"\x24", 0, 0x542A}, /* East Asian ideograph */ + {"\x26", 0, 0x5422}, /* East Asian ideograph */ + {"\x27", 0, 0x5423}, /* East Asian ideograph */ + {"\x2E", 0, 0x545F}, /* East Asian ideograph */ + {"\x2F", 0, 0x549C}, /* East Asian ideograph */ + {"\x35", 0, 0x5488}, /* East Asian ideograph */ + {"\x37", 0, 0x547F}, /* East Asian ideograph */ + {"\x39", 0, 0x5482}, /* East Asian ideograph */ + {"\x3A", 0, 0x546D}, /* East Asian ideograph */ + {"\x3B", 0, 0x5491}, /* East Asian ideograph */ + {"\x42", 0, 0x5494}, /* East Asian ideograph */ + {"\x43", 0, 0x546B}, /* East Asian ideograph */ + {"\x49", 0, 0x548D}, /* East Asian ideograph */ + {"\x4A", 0, 0x5463}, /* East Asian ideograph */ + {"\x4B", 0, 0x5474}, /* East Asian ideograph */ + {"\x52", 0, 0x5466}, /* East Asian ideograph */ + {"\x53", 0, 0x5464}, /* East Asian ideograph */ + {"\x55", 0, 0x54A4}, /* East Asian ideograph */ + {"\x58", 0, 0x54A1}, /* East Asian ideograph */ + {"\x5A", 0, 0x54AD}, /* East Asian ideograph */ + {"\x5B", 0, 0x54BA}, /* East Asian ideograph */ + {"\x5C", 0, 0x54CF}, /* East Asian ideograph */ + {"\x5E", 0, 0x54BE}, /* East Asian ideograph */ + {"\x60", 0, 0x54A5}, /* East Asian ideograph */ + {"\x63", 0, 0x54A7}, /* East Asian ideograph */ + {"\x64", 0, 0x54B5}, /* East Asian ideograph */ + {"\x66", 0, 0x54A2}, /* East Asian ideograph */ + {"\x67", 0, 0x5472}, /* East Asian ideograph */ + {"\x68", 0, 0x5470}, /* East Asian ideograph */ + {"\x69", 0, 0x54BC}, /* East Asian ideograph */ + {"\x6A", 0, 0x54B7}, /* East Asian ideograph */ + {"\x6B", 0, 0x54DE}, /* East Asian ideograph */ + {"\x6C", 0, 0x54D6}, /* East Asian ideograph */ + {"\x6D", 0, 0x54AE}, /* East Asian ideograph */ + {"\x71", 0, 0x54BF}, /* East Asian ideograph */ + {"\x74", 0, 0x54C6}, /* East Asian ideograph */ + {"\x7B", 0, 0x551A}, /* East Asian ideograph */ + {"\x7C", 0, 0x54E2}, /* East Asian ideograph */ + {"\x7D", 0, 0x5507}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page66 = { + marc8_9page66_flat, 0 +}; +/* PAGE 65 */ +struct yaz_iconv_trie_flat marc8_9page65_flat[] = { + {"\x2C", 0, 0x53B5}, /* East Asian ideograph */ + {"\x2E", 0, 0x53B9}, /* East Asian ideograph */ + {"\x3E", 0, 0x53D0}, /* East Asian ideograph */ + {"\x48", 0, 0x53DA}, /* East Asian ideograph */ + {"\x57", 0, 0x53FB}, /* East Asian ideograph */ + {"\x58", 0, 0x535F}, /* East Asian ideograph */ + {"\x61", 0, 0x5414}, /* East Asian ideograph */ + {"\x68", 0, 0x5406}, /* East Asian ideograph */ + {"\x6C", 0, 0x544C}, /* East Asian ideograph */ + {"\x6D", 0, 0x5445}, /* East Asian ideograph */ + {"\x6F", 0, 0x541A}, /* East Asian ideograph */ + {"\x70", 0, 0x5432}, /* East Asian ideograph */ + {"\x76", 0, 0x5421}, /* East Asian ideograph */ + {"\x78", 0, 0x5430}, /* East Asian ideograph */ + {"\x79", 0, 0x5454}, /* East Asian ideograph */ + {"\x7D", 0, 0x543D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page65 = { + marc8_9page65_flat, 0 +}; +/* PAGE 64 */ +struct yaz_iconv_trie_flat marc8_9page64_flat[] = { + {"\x23", 0, 0x531A}, /* East Asian ideograph */ + {"\x24", 0, 0x531C}, /* East Asian ideograph */ + {"\x25", 0, 0x531F}, /* East Asian ideograph */ + {"\x2E", 0, 0x532D}, /* East Asian ideograph */ + {"\x33", 0, 0x5330}, /* East Asian ideograph */ + {"\x36", 0, 0x5335}, /* East Asian ideograph */ + {"\x3A", 0, 0x5338}, /* East Asian ideograph */ + {"\x3E", 0, 0x533D}, /* East Asian ideograph */ + {"\x41", 0, 0x534C}, /* East Asian ideograph */ + {"\x42", 0, 0x534D}, /* East Asian ideograph */ + {"\x4B", 0, 0x535D}, /* East Asian ideograph */ + {"\x4C", 0, 0x5363}, /* East Asian ideograph */ + {"\x4E", 0, 0x5365}, /* East Asian ideograph */ + {"\x53", 0, 0x536C}, /* East Asian ideograph */ + {"\x57", 0, 0x5372}, /* East Asian ideograph */ + {"\x58", 0, 0x537A}, /* East Asian ideograph */ + {"\x5D", 0, 0x5380}, /* East Asian ideograph */ + {"\x64", 0, 0x538E}, /* East Asian ideograph */ + {"\x66", 0, 0x5393}, /* East Asian ideograph */ + {"\x67", 0, 0x5394}, /* East Asian ideograph */ + {"\x6D", 0, 0x5399}, /* East Asian ideograph */ + {"\x74", 0, 0x8652}, /* East Asian ideograph */ + {"\x7A", 0, 0x53A4}, /* East Asian ideograph */ + {"\x7B", 0, 0x53AB}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page64 = { + marc8_9page64_flat, 0 +}; +/* PAGE 63 */ +struct yaz_iconv_trie_flat marc8_9page63_flat[] = { + {"\x21", 0, 0x5293}, /* East Asian ideograph */ + {"\x27", 0, 0x5296}, /* East Asian ideograph */ + {"\x29", 0, 0x5298}, /* East Asian ideograph */ + {"\x2B", 0, 0x529A}, /* East Asian ideograph */ + {"\x2C", 0, 0x5299}, /* East Asian ideograph */ + {"\x2E", 0, 0x52A6}, /* East Asian ideograph */ + {"\x31", 0, 0x52AD}, /* East Asian ideograph */ + {"\x33", 0, 0x52AE}, /* East Asian ideograph */ + {"\x37", 0, 0x52BB}, /* East Asian ideograph */ + {"\x38", 0, 0x52BC}, /* East Asian ideograph */ + {"\x3C", 0, 0x52CA}, /* East Asian ideograph */ + {"\x3D", 0, 0x52CD}, /* East Asian ideograph */ + {"\x40", 0, 0x52D0}, /* East Asian ideograph */ + {"\x41", 0, 0x52D1}, /* East Asian ideograph */ + {"\x46", 0, 0x52D4}, /* East Asian ideograph */ + {"\x48", 0, 0x52D6}, /* East Asian ideograph */ + {"\x4C", 0, 0x52E3}, /* East Asian ideograph */ + {"\x4E", 0, 0x52E1}, /* East Asian ideograph */ + {"\x50", 0, 0x55E7}, /* East Asian ideograph */ + {"\x53", 0, 0x52E9}, /* East Asian ideograph */ + {"\x58", 0, 0x52F0}, /* East Asian ideograph */ + {"\x5A", 0, 0x52F1}, /* East Asian ideograph */ + {"\x5E", 0, 0x52F7}, /* East Asian ideograph */ + {"\x61", 0, 0x52F9}, /* East Asian ideograph */ + {"\x62", 0, 0x52FA}, /* East Asian ideograph */ + {"\x64", 0, 0x52FC}, /* East Asian ideograph */ + {"\x69", 0, 0x5307}, /* East Asian ideograph */ + {"\x6A", 0, 0x5303}, /* East Asian ideograph */ + {"\x6B", 0, 0x5306}, /* East Asian ideograph */ + {"\x6E", 0, 0x530A}, /* East Asian ideograph */ + {"\x6F", 0, 0x530B}, /* East Asian ideograph */ + {"\x77", 0, 0x5311}, /* East Asian ideograph */ + {"\x7B", 0, 0x6706}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page63 = { + marc8_9page63_flat, 0 +}; +/* PAGE 62 */ +struct yaz_iconv_trie_flat marc8_9page62_flat[] = { + {"\x24", 0, 0x5213}, /* East Asian ideograph */ + {"\x26", 0, 0x5216}, /* East Asian ideograph */ + {"\x2A", 0, 0x521C}, /* East Asian ideograph */ + {"\x33", 0, 0x5231}, /* East Asian ideograph */ + {"\x36", 0, 0x5235}, /* East Asian ideograph */ + {"\x37", 0, 0x5232}, /* East Asian ideograph */ + {"\x39", 0, 0x5233}, /* East Asian ideograph */ + {"\x3E", 0, 0x5244}, /* East Asian ideograph */ + {"\x43", 0, 0x5249}, /* East Asian ideograph */ + {"\x47", 0, 0x5260}, /* East Asian ideograph */ + {"\x4B", 0, 0x525A}, /* East Asian ideograph */ + {"\x4C", 0, 0x5252}, /* East Asian ideograph */ + {"\x4D", 0, 0x525E}, /* East Asian ideograph */ + {"\x50", 0, 0x525F}, /* East Asian ideograph */ + {"\x53", 0, 0x5255}, /* East Asian ideograph */ + {"\x5B", 0, 0x526E}, /* East Asian ideograph */ + {"\x5E", 0, 0x5268}, /* East Asian ideograph */ + {"\x5F", 0, 0x7B9A}, /* East Asian ideograph */ + {"\x6B", 0, 0x5278}, /* East Asian ideograph */ + {"\x74", 0, 0x5282}, /* East Asian ideograph */ + {"\x75", 0, 0x5281}, /* East Asian ideograph */ + {"\x79", 0, 0x528C}, /* East Asian ideograph */ + {"\x7A", 0, 0x528A}, /* East Asian ideograph */ + {"\x7C", 0, 0x5290}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page62 = { + marc8_9page62_flat, 0 +}; +/* PAGE 61 */ +struct yaz_iconv_trie_flat marc8_9page61_flat[] = { + {"\x22", 0, 0x51AA}, /* East Asian ideograph */ + {"\x23", 0, 0x51AB}, /* East Asian ideograph */ + {"\x26", 0, 0x51B1}, /* East Asian ideograph */ + {"\x35", 0, 0x51BC}, /* East Asian ideograph */ + {"\x43", 0, 0x51CA}, /* East Asian ideograph */ + {"\x46", 0, 0x51C7}, /* East Asian ideograph */ + {"\x4E", 0, 0x51D1}, /* East Asian ideograph */ + {"\x4F", 0, 0x51D0}, /* East Asian ideograph */ + {"\x54", 0, 0x51D3}, /* East Asian ideograph */ + {"\x63", 0, 0x51D9}, /* East Asian ideograph */ + {"\x66", 0, 0x51DF}, /* East Asian ideograph */ + {"\x68", 0, 0x51E2}, /* East Asian ideograph */ + {"\x73", 0, 0x5160}, /* East Asian ideograph */ + {"\x78", 0, 0x51F5}, /* East Asian ideograph */ + {"\x79", 0, 0x51F7}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page61 = { + marc8_9page61_flat, 0 +}; +/* PAGE 60 */ +struct yaz_iconv_trie_flat marc8_9page60_flat[] = { + {"\x29", 0, 0x5124}, /* East Asian ideograph */ + {"\x2B", 0, 0x5129}, /* East Asian ideograph */ + {"\x30", 0, 0x5131}, /* East Asian ideograph */ + {"\x3E", 0, 0x5135}, /* East Asian ideograph */ + {"\x40", 0, 0x5133}, /* East Asian ideograph */ + {"\x44", 0, 0x513A}, /* East Asian ideograph */ + {"\x47", 0, 0x5139}, /* East Asian ideograph */ + {"\x48", 0, 0x513B}, /* East Asian ideograph */ + {"\x51", 0, 0x5159}, /* East Asian ideograph */ + {"\x52", 0, 0x515B}, /* East Asian ideograph */ + {"\x55", 0, 0x515D}, /* East Asian ideograph */ + {"\x56", 0, 0x515E}, /* East Asian ideograph */ + {"\x58", 0, 0x515F}, /* East Asian ideograph */ + {"\x59", 0, 0x5161}, /* East Asian ideograph */ + {"\x5C", 0, 0x5163}, /* East Asian ideograph */ + {"\x67", 0, 0x5182}, /* East Asian ideograph */ + {"\x69", 0, 0x5184}, /* East Asian ideograph */ + {"\x6E", 0, 0x518F}, /* East Asian ideograph */ + {"\x70", 0, 0x5194}, /* East Asian ideograph */ + {"\x71", 0, 0x5193}, /* East Asian ideograph */ + {"\x75", 0, 0x5196}, /* East Asian ideograph */ + {"\x7B", 0, 0x51A1}, /* East Asian ideograph */ + {"\x7C", 0, 0x51A3}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page60 = { + marc8_9page60_flat, 0 +}; +/* PAGE 59 */ +struct yaz_iconv_trie_flat marc8_9page59_flat[] = { + {"\x22", 0, 0x50C2}, /* East Asian ideograph */ + {"\x2C", 0, 0x50BA}, /* East Asian ideograph */ + {"\x2E", 0, 0x50CD}, /* East Asian ideograph */ + {"\x32", 0, 0x50D4}, /* East Asian ideograph */ + {"\x34", 0, 0x50EF}, /* East Asian ideograph */ + {"\x35", 0, 0x50E6}, /* East Asian ideograph */ + {"\x3A", 0, 0x50F4}, /* East Asian ideograph */ + {"\x3B", 0, 0x50CE}, /* East Asian ideograph */ + {"\x3C", 0, 0x50DD}, /* East Asian ideograph */ + {"\x41", 0, 0x50F3}, /* East Asian ideograph */ + {"\x42", 0, 0x50E8}, /* East Asian ideograph */ + {"\x44", 0, 0x50F0}, /* East Asian ideograph */ + {"\x46", 0, 0x50D9}, /* East Asian ideograph */ + {"\x55", 0, 0x50EC}, /* East Asian ideograph */ + {"\x5B", 0, 0x510E}, /* East Asian ideograph */ + {"\x5F", 0, 0x5105}, /* East Asian ideograph */ + {"\x61", 0, 0x50FC}, /* East Asian ideograph */ + {"\x65", 0, 0x5106}, /* East Asian ideograph */ + {"\x66", 0, 0x5107}, /* East Asian ideograph */ + {"\x67", 0, 0x510F}, /* East Asian ideograph */ + {"\x68", 0, 0x50FE}, /* East Asian ideograph */ + {"\x69", 0, 0x510B}, /* East Asian ideograph */ + {"\x6A", 0, 0x50FD}, /* East Asian ideograph */ + {"\x6D", 0, 0x5101}, /* East Asian ideograph */ + {"\x71", 0, 0x5115}, /* East Asian ideograph */ + {"\x72", 0, 0x5113}, /* East Asian ideograph */ + {"\x78", 0, 0x511A}, /* East Asian ideograph */ + {"\x79", 0, 0x9797}, /* East Asian ideograph */ + {"\x7E", 0, 0x5126}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page59 = { + marc8_9page59_flat, 0 +}; +/* PAGE 58 */ +struct yaz_iconv_trie_flat marc8_9page58_flat[] = { + {"\x22", 0, 0x506F}, /* East Asian ideograph */ + {"\x23", 0, 0x5050}, /* East Asian ideograph */ + {"\x25", 0, 0x5070}, /* East Asian ideograph */ + {"\x29", 0, 0x5053}, /* East Asian ideograph */ + {"\x2A", 0, 0x506A}, /* East Asian ideograph */ + {"\x2C", 0, 0x5056}, /* East Asian ideograph */ + {"\x31", 0, 0x506D}, /* East Asian ideograph */ + {"\x38", 0, 0x505D}, /* East Asian ideograph */ + {"\x39", 0, 0x5048}, /* East Asian ideograph */ + {"\x3B", 0, 0x5058}, /* East Asian ideograph */ + {"\x3C", 0, 0x5072}, /* East Asian ideograph */ + {"\x41", 0, 0x5041}, /* East Asian ideograph */ + {"\x46", 0, 0x5015}, /* East Asian ideograph */ + {"\x48", 0, 0x507A}, /* East Asian ideograph */ + {"\x4A", 0, 0x506C}, /* East Asian ideograph */ + {"\x4B", 0, 0x505F}, /* East Asian ideograph */ + {"\x4D", 0, 0x506B}, /* East Asian ideograph */ + {"\x4E", 0, 0x5094}, /* East Asian ideograph */ + {"\x50", 0, 0x509E}, /* East Asian ideograph */ + {"\x52", 0, 0x509B}, /* East Asian ideograph */ + {"\x53", 0, 0x509A}, /* East Asian ideograph */ + {"\x57", 0, 0x50A3}, /* East Asian ideograph */ + {"\x5A", 0, 0x508C}, /* East Asian ideograph */ + {"\x5C", 0, 0x5088}, /* East Asian ideograph */ + {"\x62", 0, 0x508E}, /* East Asian ideograph */ + {"\x64", 0, 0x5095}, /* East Asian ideograph */ + {"\x67", 0, 0x50A6}, /* East Asian ideograph */ + {"\x6A", 0, 0x5092}, /* East Asian ideograph */ + {"\x6C", 0, 0x509C}, /* East Asian ideograph */ + {"\x71", 0, 0x50C7}, /* East Asian ideograph */ + {"\x75", 0, 0x50C9}, /* East Asian ideograph */ + {"\x7B", 0, 0x50CA}, /* East Asian ideograph */ + {"\x7C", 0, 0x50B4}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page58 = { + marc8_9page58_flat, 0 +}; +/* PAGE 57 */ +struct yaz_iconv_trie_flat marc8_9page57_flat[] = { + {"\x22", 0, 0x4FE4}, /* East Asian ideograph */ + {"\x26", 0, 0x4FB7}, /* East Asian ideograph */ + {"\x27", 0, 0x4FC5}, /* East Asian ideograph */ + {"\x29", 0, 0x4FC9}, /* East Asian ideograph */ + {"\x2A", 0, 0x4FE5}, /* East Asian ideograph */ + {"\x2C", 0, 0x4FE7}, /* East Asian ideograph */ + {"\x33", 0, 0x4FDC}, /* East Asian ideograph */ + {"\x35", 0, 0x4FD4}, /* East Asian ideograph */ + {"\x37", 0, 0x4FC1}, /* East Asian ideograph */ + {"\x3B", 0, 0x4FDB}, /* East Asian ideograph */ + {"\x3E", 0, 0x4FC6}, /* East Asian ideograph */ + {"\x43", 0, 0x4FB9}, /* East Asian ideograph */ + {"\x46", 0, 0x501E}, /* East Asian ideograph */ + {"\x48", 0, 0x503F}, /* East Asian ideograph */ + {"\x49", 0, 0x5005}, /* East Asian ideograph */ + {"\x4C", 0, 0x5007}, /* East Asian ideograph */ + {"\x4D", 0, 0x5013}, /* East Asian ideograph */ + {"\x4E", 0, 0x5022}, /* East Asian ideograph */ + {"\x52", 0, 0x4FF5}, /* East Asian ideograph */ + {"\x59", 0, 0x4FF4}, /* East Asian ideograph */ + {"\x5B", 0, 0x5037}, /* East Asian ideograph */ + {"\x5E", 0, 0x502E}, /* East Asian ideograph */ + {"\x61", 0, 0x4FF6}, /* East Asian ideograph */ + {"\x62", 0, 0x501C}, /* East Asian ideograph */ + {"\x66", 0, 0x502C}, /* East Asian ideograph */ + {"\x69", 0, 0x5010}, /* East Asian ideograph */ + {"\x79", 0, 0x503D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page57 = { + marc8_9page57_flat, 0 +}; +/* PAGE 56 */ +struct yaz_iconv_trie_flat marc8_9page56_flat[] = { + {"\x27", 0, 0x4EF5}, /* East Asian ideograph */ + {"\x28", 0, 0x4F07}, /* East Asian ideograph */ + {"\x2A", 0, 0x4F00}, /* East Asian ideograph */ + {"\x2C", 0, 0x4F0B}, /* East Asian ideograph */ + {"\x32", 0, 0x4F3B}, /* East Asian ideograph */ + {"\x36", 0, 0x4F58}, /* East Asian ideograph */ + {"\x37", 0, 0x4F62}, /* East Asian ideograph */ + {"\x39", 0, 0x4F64}, /* East Asian ideograph */ + {"\x3A", 0, 0x4F49}, /* East Asian ideograph */ + {"\x3F", 0, 0x4F3E}, /* East Asian ideograph */ + {"\x40", 0, 0x4F66}, /* East Asian ideograph */ + {"\x44", 0, 0x4F67}, /* East Asian ideograph */ + {"\x4D", 0, 0x4F68}, /* East Asian ideograph */ + {"\x4E", 0, 0x4F5A}, /* East Asian ideograph */ + {"\x4F", 0, 0x4F5F}, /* East Asian ideograph */ + {"\x56", 0, 0x4F82}, /* East Asian ideograph */ + {"\x57", 0, 0x4F7C}, /* East Asian ideograph */ + {"\x5A", 0, 0x4F98}, /* East Asian ideograph */ + {"\x5B", 0, 0x4F92}, /* East Asian ideograph */ + {"\x5C", 0, 0x4F7D}, /* East Asian ideograph */ + {"\x60", 0, 0x4F80}, /* East Asian ideograph */ + {"\x61", 0, 0x4F74}, /* East Asian ideograph */ + {"\x62", 0, 0x4F76}, /* East Asian ideograph */ + {"\x64", 0, 0x4FA2}, /* East Asian ideograph */ + {"\x66", 0, 0x4F91}, /* East Asian ideograph */ + {"\x67", 0, 0x4F95}, /* East Asian ideograph */ + {"\x6C", 0, 0x4F4C}, /* East Asian ideograph */ + {"\x6D", 0, 0x4F97}, /* East Asian ideograph */ + {"\x6E", 0, 0x4F94}, /* East Asian ideograph */ + {"\x70", 0, 0x4F79}, /* East Asian ideograph */ + {"\x71", 0, 0x4F9A}, /* East Asian ideograph */ + {"\x72", 0, 0x4F81}, /* East Asian ideograph */ + {"\x73", 0, 0x4F78}, /* East Asian ideograph */ + {"\x76", 0, 0x4F9C}, /* East Asian ideograph */ + {"\x77", 0, 0x4F90}, /* East Asian ideograph */ + {"\x7B", 0, 0x4F7A}, /* East Asian ideograph */ + {"\x7C", 0, 0x4FCD}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page56 = { + marc8_9page56_flat, 0 +}; +/* PAGE 55 */ +struct yaz_iconv_trie_flat marc8_9page55_flat[] = { + {"\x24", 0, 0x4E0F}, /* East Asian ideograph */ + {"\x25", 0, 0x5187}, /* East Asian ideograph */ + {"\x29", 0, 0x4E28}, /* East Asian ideograph */ + {"\x2E", 0, 0x4E31}, /* East Asian ideograph */ + {"\x31", 0, 0x4E36}, /* East Asian ideograph */ + {"\x33", 0, 0x4E3F}, /* East Asian ideograph */ + {"\x34", 0, 0x4E42}, /* East Asian ideograph */ + {"\x37", 0, 0x738D}, /* East Asian ideograph */ + {"\x3C", 0, 0x4E5C}, /* East Asian ideograph */ + {"\x3F", 0, 0x6C39}, /* East Asian ideograph */ + {"\x46", 0, 0x4E85}, /* East Asian ideograph */ + {"\x50", 0, 0x4EA0}, /* East Asian ideograph */ + {"\x51", 0, 0x4EA2}, /* East Asian ideograph */ + {"\x52", 0, 0x4EB3}, /* East Asian ideograph */ + {"\x55", 0, 0x4EB6}, /* East Asian ideograph (variant of EACC 4B6455) */ + {"\x58", 0, 0x4EB9}, /* East Asian ideograph */ + {"\x5A", 0, 0x4EBC}, /* East Asian ideograph */ + {"\x5E", 0, 0x4EC9}, /* East Asian ideograph */ + {"\x61", 0, 0x4EC8}, /* East Asian ideograph */ + {"\x62", 0, 0x4ECE}, /* East Asian ideograph */ + {"\x63", 0, 0x4EE8}, /* East Asian ideograph */ + {"\x6B", 0, 0x4EE1}, /* East Asian ideograph */ + {"\x72", 0, 0x4F08}, /* East Asian ideograph */ + {"\x73", 0, 0x4F0E}, /* East Asian ideograph */ + {"\x75", 0, 0x4F03}, /* East Asian ideograph */ + {"\x7C", 0, 0x4F22}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page55 = { + marc8_9page55_flat, 0 +}; +/* PAGE 54 */ +struct yaz_iconv_trie_flat marc8_9page54_flat[] = { + {"\x21", 0, 0x9F52}, /* East Asian ideograph */ + {"\x22", 0, 0x9F5F}, /* East Asian ideograph */ + {"\x23", 0, 0x9F63}, /* East Asian ideograph */ + {"\x24", 0, 0x9F61}, /* East Asian ideograph (variant of EACC 456324) */ + {"\x25", 0, 0x9F66}, /* East Asian ideograph */ + {"\x26", 0, 0x9F5C}, /* East Asian ideograph */ + {"\x27", 0, 0x9F6C}, /* East Asian ideograph */ + {"\x28", 0, 0x9F6A}, /* East Asian ideograph */ + {"\x29", 0, 0x9F77}, /* East Asian ideograph */ + {"\x2A", 0, 0x9F72}, /* East Asian ideograph */ + {"\x2B", 0, 0x9F8D}, /* East Asian ideograph */ + {"\x2C", 0, 0x9F94}, /* East Asian ideograph */ + {"\x2D", 0, 0x9F9C}, /* East Asian ideograph */ + {"\x30", 0, 0x8288}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page54 = { + marc8_9page54_flat, 0 +}; +/* PAGE 53 */ +struct yaz_iconv_trie_dir marc8_9page53_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9C13} /* East Asian ideograph */, + {0, 0, 0x9C0D} /* East Asian ideograph */, + {0, 0, 0x9BFD} /* East Asian ideograph */, + {0, 0, 0x9C2D} /* East Asian ideograph */, + {0, 0, 0x9C25} /* East Asian ideograph */, + {0, 0, 0x9C31} /* East Asian ideograph */, + {0, 0, 0x9C3E} /* East Asian ideograph */, + {0, 0, 0x9C3B} /* East Asian ideograph */, + {0, 0, 0x9C54} /* East Asian ideograph */, + {0, 0, 0x9C57} /* East Asian ideograph */, + {0, 0, 0x9C56} /* East Asian ideograph */, + {0, 0, 0x9C49} /* East Asian ideograph */, + {0, 0, 0x9C77} /* East Asian ideograph */, + {0, 0, 0x9C78} /* East Asian ideograph */, + {0, 0, 0x9CE5} /* East Asian ideograph */, + {0, 0, 0x9CE9} /* East Asian ideograph */, + {0, 0, 0x9CF6} /* East Asian ideograph */, + {0, 0, 0x9CF4} /* East Asian ideograph */, + {0, 0, 0x9CF3} /* East Asian ideograph */, + {0, 0, 0x9D06} /* East Asian ideograph */, + {0, 0, 0x9D09} /* East Asian ideograph */, + {0, 0, 0x9D15} /* East Asian ideograph */, + {0, 0, 0x9D23} /* East Asian ideograph */, + {0, 0, 0x9D28} /* East Asian ideograph */, + {0, 0, 0x9D26} /* East Asian ideograph */, + {0, 0, 0x9D1B} /* East Asian ideograph */, + {0, 0, 0x9D12} /* East Asian ideograph (variant of EACC 4B623B) */, + {0, 0, 0x9D3B} /* East Asian ideograph */, + {0, 0, 0x9D3F} /* East Asian ideograph */, + {0, 0, 0x9D61} /* East Asian ideograph */, + {0, 0, 0x9D51} /* East Asian ideograph */, + {0, 0, 0x9D60} /* East Asian ideograph */, + {0, 0, 0x9D5D} /* East Asian ideograph */, + {0, 0, 0x9D89} /* East Asian ideograph */, + {0, 0, 0x9D72} /* East Asian ideograph */, + {0, 0, 0x9D6A} /* East Asian ideograph */, + {0, 0, 0x9D6C} /* East Asian ideograph */, + {0, 0, 0x9DB4} /* East Asian ideograph */, + {0, 0, 0x9DAF} /* East Asian ideograph */, + {0, 0, 0x9DC2} /* East Asian ideograph */, + {0, 0, 0x9DD3} /* East Asian ideograph */, + {0, 0, 0x9DD7} /* East Asian ideograph */, + {0, 0, 0x9DE5} /* East Asian ideograph */, + {0, 0, 0x9DF9} /* East Asian ideograph */, + {0, 0, 0x9DFA} /* East Asian ideograph */, + {0, 0, 0x9E1A} /* East Asian ideograph */, + {0, 0, 0x9E1E} /* East Asian ideograph */, + {0, 0, 0x9E79} /* East Asian ideograph */, + {0, 0, 0x9E7D} /* East Asian ideograph */, + {0, 0, 0x9E7C} /* East Asian ideograph */, + {0, 0, 0x9E7F} /* East Asian ideograph */, + {0, 0, 0x9E82} /* East Asian ideograph */, + {0, 0, 0x9E8B} /* East Asian ideograph */, + {0, 0, 0x9E97} /* East Asian ideograph */, + {0, 0, 0x9E92} /* East Asian ideograph */, + {0, 0, 0x9E93} /* East Asian ideograph */, + {0, 0, 0x9E9D} /* East Asian ideograph */, + {0, 0, 0x9E9F} /* East Asian ideograph */, + {0, 0, 0x9EA5} /* East Asian ideograph */, + {0, 0, 0x9EA9} /* East Asian ideograph */, + {0, 0, 0x9EB4} /* East Asian ideograph */, + {0, 0, 0x9EB5} /* East Asian ideograph */, + {0, 0, 0x9EBB} /* East Asian ideograph */, + {0, 0, 0x9EBC} /* East Asian ideograph */, + {0, 0, 0x9EBE} /* East Asian ideograph */, + {0, 0, 0x9EC3} /* East Asian ideograph */, + {0, 0, 0x9ECD} /* East Asian ideograph */, + {0, 0, 0x9ECE} /* East Asian ideograph */, + {0, 0, 0x9ECF} /* East Asian ideograph */, + {0, 0, 0x9ED1} /* East Asian ideograph */, + {0, 0, 0x58A8} /* East Asian ideograph */, + {0, 0, 0x9ED8} /* East Asian ideograph */, + {0, 0, 0x9ED4} /* East Asian ideograph */, + {0, 0, 0x9EDE} /* East Asian ideograph */, + {0, 0, 0x9EDC} /* East Asian ideograph */, + {0, 0, 0x9EDB} /* East Asian ideograph */, + {0, 0, 0x9EDD} /* East Asian ideograph */, + {0, 0, 0x9EE0} /* East Asian ideograph */, + {0, 0, 0x9EE8} /* East Asian ideograph */, + {0, 0, 0x9EEF} /* East Asian ideograph */, + {0, 0, 0x9EF4} /* East Asian ideograph */, + {0, 0, 0x9EF7} /* East Asian ideograph */, + {0, 0, 0x9F07} /* East Asian ideograph */, + {0, 0, 0x9F0E} /* East Asian ideograph */, + {0, 0, 0x9F13} /* East Asian ideograph */, + {0, 0, 0x9F15} /* East Asian ideograph */, + {0, 0, 0x9F19} /* East Asian ideograph */, + {0, 0, 0x9F20} /* East Asian ideograph */, + {0, 0, 0x9F2C} /* East Asian ideograph */, + {0, 0, 0x9F34} /* East Asian ideograph */, + {0, 0, 0x9F3B} /* East Asian ideograph */, + {0, 0, 0x9F3E} /* East Asian ideograph */, + {0, 0, 0x9F4A} /* East Asian ideograph */, + {0, 0, 0x9F4B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page53 = { + 0, marc8_9page53_dir +}; +/* PAGE 52 */ +struct yaz_iconv_trie_dir marc8_9page52_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x993F} /* East Asian ideograph */, + {0, 0, 0x993D} /* East Asian ideograph */, + {0, 0, 0x9945} /* East Asian ideograph */, + {0, 0, 0x9952} /* East Asian ideograph */, + {0, 0, 0x9951} /* East Asian ideograph */, + {0, 0, 0x995C} /* East Asian ideograph */, + {0, 0, 0x995E} /* East Asian ideograph */, + {0, 0, 0x9996} /* East Asian ideograph */, + {0, 0, 0x9999} /* East Asian ideograph */, + {0, 0, 0x99A5} /* East Asian ideograph */, + {0, 0, 0x99A8} /* East Asian ideograph */, + {0, 0, 0x99AC} /* East Asian ideograph */, + {0, 0, 0x99AE} /* East Asian ideograph */, + {0, 0, 0x99AD} /* East Asian ideograph */, + {0, 0, 0x99B3} /* East Asian ideograph */, + {0, 0, 0x99B1} /* East Asian ideograph */, + {0, 0, 0x99B4} /* East Asian ideograph */, + {0, 0, 0x99C1} /* East Asian ideograph */, + {0, 0, 0x99D0} /* East Asian ideograph */, + {0, 0, 0x99DD} /* East Asian ideograph */, + {0, 0, 0x99D5} /* East Asian ideograph */, + {0, 0, 0x99DF} /* East Asian ideograph */, + {0, 0, 0x99DB} /* East Asian ideograph */, + {0, 0, 0x99D2} /* East Asian ideograph */, + {0, 0, 0x99D9} /* East Asian ideograph */, + {0, 0, 0x99D1} /* East Asian ideograph */, + {0, 0, 0x99ED} /* East Asian ideograph */, + {0, 0, 0x99F1} /* East Asian ideograph */, + {0, 0, 0x9A01} /* East Asian ideograph */, + {0, 0, 0x99FF} /* East Asian ideograph */, + {0, 0, 0x99E2} /* East Asian ideograph */, + {0, 0, 0x9A0E} /* East Asian ideograph */, + {0, 0, 0x9A19} /* East Asian ideograph */, + {0, 0, 0x9A16} /* East Asian ideograph */, + {0, 0, 0x9A2B} /* East Asian ideograph */, + {0, 0, 0x9A30} /* East Asian ideograph */, + {0, 0, 0x9A37} /* East Asian ideograph */, + {0, 0, 0x9A43} /* East Asian ideograph */, + {0, 0, 0x9A45} /* East Asian ideograph */, + {0, 0, 0x9A40} /* East Asian ideograph */, + {0, 0, 0x9A3E} /* East Asian ideograph */, + {0, 0, 0x9A55} /* East Asian ideograph */, + {0, 0, 0x9A5A} /* East Asian ideograph */, + {0, 0, 0x9A5B} /* East Asian ideograph */, + {0, 0, 0x9A57} /* East Asian ideograph */, + {0, 0, 0x9A5F} /* East Asian ideograph */, + {0, 0, 0x9A62} /* East Asian ideograph */, + {0, 0, 0x9A65} /* East Asian ideograph */, + {0, 0, 0x9A6A} /* East Asian ideograph */, + {0, 0, 0x9AA8} /* East Asian ideograph */, + {0, 0, 0x9AAF} /* East Asian ideograph */, + {0, 0, 0x9AB0} /* East Asian ideograph */, + {0, 0, 0x9AB7} /* East Asian ideograph */, + {0, 0, 0x9AB8} /* East Asian ideograph */, + {0, 0, 0x9ABC} /* East Asian ideograph */, + {0, 0, 0x9ACF} /* East Asian ideograph */, + {0, 0, 0x9AD3} /* East Asian ideograph */, + {0, 0, 0x9AD4} /* East Asian ideograph */, + {0, 0, 0x9AD2} /* East Asian ideograph */, + {0, 0, 0x9AD8} /* East Asian ideograph */, + {0, 0, 0x9AE5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9AEE} /* East Asian ideograph */, + {0, 0, 0x9AFB} /* East Asian ideograph */, + {0, 0, 0x9AED} /* East Asian ideograph */, + {0, 0, 0x9B03} /* East Asian ideograph */, + {0, 0, 0x9B06} /* East Asian ideograph */, + {0, 0, 0x9B0D} /* East Asian ideograph */, + {0, 0, 0x9B1A} /* East Asian ideograph */, + {0, 0, 0x9B22} /* East Asian ideograph */, + {0, 0, 0x9B25} /* East Asian ideograph */, + {0, 0, 0x9B27} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9B31} /* East Asian ideograph */, + {0, 0, 0x9B32} /* East Asian ideograph */, + {0, 0, 0x9B3C} /* East Asian ideograph */, + {0, 0, 0x9B41} /* East Asian ideograph */, + {0, 0, 0x9B42} /* East Asian ideograph */, + {0, 0, 0x9B45} /* East Asian ideograph */, + {0, 0, 0x9B44} /* East Asian ideograph */, + {0, 0, 0x9B4F} /* East Asian ideograph */, + {0, 0, 0x9B54} /* East Asian ideograph */, + {0, 0, 0x9B58} /* East Asian ideograph */, + {0, 0, 0x9B5A} /* East Asian ideograph */, + {0, 0, 0x9B77} /* East Asian ideograph */, + {0, 0, 0x9B6F} /* East Asian ideograph */, + {0, 0, 0x9B91} /* East Asian ideograph */, + {0, 0, 0x9BAB} /* East Asian ideograph */, + {0, 0, 0x9BAE} /* East Asian ideograph */, + {0, 0, 0x9BAA} /* East Asian ideograph */, + {0, 0, 0x9BCA} /* East Asian ideograph */, + {0, 0, 0x9BC9} /* East Asian ideograph */, + {0, 0, 0x9BE8} /* East Asian ideograph */, + {0, 0, 0x9BE7} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page52 = { + 0, marc8_9page52_dir +}; +/* PAGE 51 */ +struct yaz_iconv_trie_dir marc8_9page51_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x978D} /* East Asian ideograph */, + {0, 0, 0x978B} /* East Asian ideograph */, + {0, 0, 0x978F} /* East Asian ideograph */, + {0, 0, 0x9798} /* East Asian ideograph */, + {0, 0, 0x97A0} /* East Asian ideograph */, + {0, 0, 0x97A3} /* East Asian ideograph */, + {0, 0, 0x97A6} /* East Asian ideograph */, + {0, 0, 0x97AD} /* East Asian ideograph */, + {0, 0, 0x97C3} /* East Asian ideograph */, + {0, 0, 0x97C1} /* East Asian ideograph */, + {0, 0, 0x97C6} /* East Asian ideograph */, + {0, 0, 0x97CB} /* East Asian ideograph */, + {0, 0, 0x97CC} /* East Asian ideograph */, + {0, 0, 0x97D3} /* East Asian ideograph */, + {0, 0, 0x97DC} /* East Asian ideograph */, + {0, 0, 0x97ED} /* East Asian ideograph */, + {0, 0, 0x97F3} /* East Asian ideograph */, + {0, 0, 0x7AE0} /* East Asian ideograph */, + {0, 0, 0x7ADF} /* East Asian ideograph */, + {0, 0, 0x97F6} /* East Asian ideograph */, + {0, 0, 0x97FB} /* East Asian ideograph */, + {0, 0, 0x97FF} /* East Asian ideograph (variant of EACC 456036) */, + {0, 0, 0x9801} /* East Asian ideograph */, + {0, 0, 0x9802} /* East Asian ideograph */, + {0, 0, 0x9803} /* East Asian ideograph */, + {0, 0, 0x9805} /* East Asian ideograph */, + {0, 0, 0x9806} /* East Asian ideograph */, + {0, 0, 0x9808} /* East Asian ideograph */, + {0, 0, 0x9810} /* East Asian ideograph */, + {0, 0, 0x980A} /* East Asian ideograph */, + {0, 0, 0x9811} /* East Asian ideograph */, + {0, 0, 0x9813} /* East Asian ideograph */, + {0, 0, 0x9812} /* East Asian ideograph */, + {0, 0, 0x980C} /* East Asian ideograph */, + {0, 0, 0x9817} /* East Asian ideograph */, + {0, 0, 0x9818} /* East Asian ideograph (variant of EACC 4B6044) */, + {0, 0, 0x9821} /* East Asian ideograph */, + {0, 0, 0x982D} /* East Asian ideograph */, + {0, 0, 0x9830} /* East Asian ideograph */, + {0, 0, 0x9838} /* East Asian ideograph */, + {0, 0, 0x983B} /* East Asian ideograph */, + {0, 0, 0x9839} /* East Asian ideograph */, + {0, 0, 0x9837} /* East Asian ideograph */, + {0, 0, 0x9824} /* East Asian ideograph */, + {0, 0, 0x9846} /* East Asian ideograph */, + {0, 0, 0x9854} /* East Asian ideograph */, + {0, 0, 0x984D} /* East Asian ideograph */, + {0, 0, 0x984C} /* East Asian ideograph */, + {0, 0, 0x984E} /* East Asian ideograph */, + {0, 0, 0x9853} /* East Asian ideograph */, + {0, 0, 0x985E} /* East Asian ideograph (variant of EACC 4B6053) */, + {0, 0, 0x985A} /* East Asian ideograph */, + {0, 0, 0x9858} /* East Asian ideograph */, + {0, 0, 0x9867} /* East Asian ideograph */, + {0, 0, 0x986B} /* East Asian ideograph */, + {0, 0, 0x986F} /* East Asian ideograph */, + {0, 0, 0x9871} /* East Asian ideograph */, + {0, 0, 0x9870} /* East Asian ideograph */, + {0, 0, 0x98A8} /* East Asian ideograph */, + {0, 0, 0x98AF} /* East Asian ideograph */, + {0, 0, 0x98B1} /* East Asian ideograph */, + {0, 0, 0x98B3} /* East Asian ideograph */, + {0, 0, 0x98B6} /* East Asian ideograph */, + {0, 0, 0x98BA} /* East Asian ideograph */, + {0, 0, 0x98BC} /* East Asian ideograph */, + {0, 0, 0x98C4} /* East Asian ideograph */, + {0, 0, 0x98DB} /* East Asian ideograph */, + {0, 0, 0x98DF} /* East Asian ideograph */, + {0, 0, 0x98E2} /* East Asian ideograph */, + {0, 0, 0x98E7} /* East Asian ideograph */, + {0, 0, 0x98E9} /* East Asian ideograph */, + {0, 0, 0x98ED} /* East Asian ideograph */, + {0, 0, 0x98EA} /* East Asian ideograph */, + {0, 0, 0x98EE} /* East Asian ideograph */, + {0, 0, 0x98EF} /* East Asian ideograph */, + {0, 0, 0x98FC} /* East Asian ideograph */, + {0, 0, 0x98F4} /* East Asian ideograph */, + {0, 0, 0x98FD} /* East Asian ideograph */, + {0, 0, 0x98FE} /* East Asian ideograph */, + {0, 0, 0x9903} /* East Asian ideograph */, + {0, 0, 0x990A} /* East Asian ideograph */, + {0, 0, 0x990C} /* East Asian ideograph */, + {0, 0, 0x9909} /* East Asian ideograph */, + {0, 0, 0x9910} /* East Asian ideograph */, + {0, 0, 0x9912} /* East Asian ideograph */, + {0, 0, 0x9918} /* East Asian ideograph */, + {0, 0, 0x9913} /* East Asian ideograph */, + {0, 0, 0x9905} /* East Asian ideograph */, + {0, 0, 0x9928} /* East Asian ideograph */, + {0, 0, 0x991E} /* East Asian ideograph */, + {0, 0, 0x991B} /* East Asian ideograph */, + {0, 0, 0x9921} /* East Asian ideograph */, + {0, 0, 0x9935} /* East Asian ideograph */, + {0, 0, 0x993E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page51 = { + 0, marc8_9page51_dir +}; +/* PAGE 50 */ +struct yaz_iconv_trie_dir marc8_9page50_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9664} /* East Asian ideograph */, + {0, 0, 0x966A} /* East Asian ideograph */, + {0, 0, 0x9673} /* East Asian ideograph */, + {0, 0, 0x9678} /* East Asian ideograph */, + {0, 0, 0x9675} /* East Asian ideograph */, + {0, 0, 0x9672} /* East Asian ideograph */, + {0, 0, 0x9676} /* East Asian ideograph */, + {0, 0, 0x9677} /* East Asian ideograph */, + {0, 0, 0x9674} /* East Asian ideograph */, + {0, 0, 0x9670} /* East Asian ideograph */, + {0, 0, 0x968A} /* East Asian ideograph */, + {0, 0, 0x968E} /* East Asian ideograph */, + {0, 0, 0x968B} /* East Asian ideograph */, + {0, 0, 0x967D} /* East Asian ideograph */, + {0, 0, 0x9685} /* East Asian ideograph */, + {0, 0, 0x9686} /* East Asian ideograph */, + {0, 0, 0x968D} /* East Asian ideograph */, + {0, 0, 0x9698} /* East Asian ideograph */, + {0, 0, 0x9694} /* East Asian ideograph */, + {0, 0, 0x9699} /* East Asian ideograph */, + {0, 0, 0x9695} /* East Asian ideograph */, + {0, 0, 0x969C} /* East Asian ideograph */, + {0, 0, 0x969B} /* East Asian ideograph */, + {0, 0, 0x96A7} /* East Asian ideograph */, + {0, 0, 0x96A8} /* East Asian ideograph */, + {0, 0, 0x96AA} /* East Asian ideograph */, + {0, 0, 0x96B1} /* East Asian ideograph */, + {0, 0, 0x96B4} /* East Asian ideograph */, + {0, 0, 0x96B8} /* East Asian ideograph */, + {0, 0, 0x96BB} /* East Asian ideograph */, + {0, 0, 0x96C0} /* East Asian ideograph */, + {0, 0, 0x96C7} /* East Asian ideograph */, + {0, 0, 0x96C6} /* East Asian ideograph */, + {0, 0, 0x96C4} /* East Asian ideograph */, + {0, 0, 0x96C1} /* East Asian ideograph */, + {0, 0, 0x96C5} /* East Asian ideograph */, + {0, 0, 0x96CD} /* East Asian ideograph */, + {0, 0, 0x96CB} /* East Asian ideograph */, + {0, 0, 0x96C9} /* East Asian ideograph */, + {0, 0, 0x96CC} /* East Asian ideograph */, + {0, 0, 0x96D5} /* East Asian ideograph */, + {0, 0, 0x96D6} /* East Asian ideograph */, + {0, 0, 0x96DC} /* East Asian ideograph */, + {0, 0, 0x96DE} /* East Asian ideograph */, + {0, 0, 0x96DB} /* East Asian ideograph */, + {0, 0, 0x96D9} /* East Asian ideograph */, + {0, 0, 0x96E2} /* East Asian ideograph */, + {0, 0, 0x96E3} /* East Asian ideograph (variant of EACC 4B5F50) */, + {0, 0, 0x96E8} /* East Asian ideograph */, + {0, 0, 0x96EA} /* East Asian ideograph */, + {0, 0, 0x96EF} /* East Asian ideograph */, + {0, 0, 0x96F2} /* East Asian ideograph */, + {0, 0, 0x96FB} /* East Asian ideograph */, + {0, 0, 0x96F7} /* East Asian ideograph */, + {0, 0, 0x96F9} /* East Asian ideograph */, + {0, 0, 0x96F6} /* East Asian ideograph */, + {0, 0, 0x9700} /* East Asian ideograph */, + {0, 0, 0x9707} /* East Asian ideograph */, + {0, 0, 0x9704} /* East Asian ideograph */, + {0, 0, 0x9709} /* East Asian ideograph */, + {0, 0, 0x9706} /* East Asian ideograph */, + {0, 0, 0x9711} /* East Asian ideograph */, + {0, 0, 0x970E} /* East Asian ideograph */, + {0, 0, 0x9716} /* East Asian ideograph */, + {0, 0, 0x970F} /* East Asian ideograph */, + {0, 0, 0x970D} /* East Asian ideograph */, + {0, 0, 0x9713} /* East Asian ideograph */, + {0, 0, 0x971C} /* East Asian ideograph */, + {0, 0, 0x971E} /* East Asian ideograph */, + {0, 0, 0x972A} /* East Asian ideograph */, + {0, 0, 0x9727} /* East Asian ideograph */, + {0, 0, 0x9738} /* East Asian ideograph */, + {0, 0, 0x9739} /* East Asian ideograph */, + {0, 0, 0x9732} /* East Asian ideograph */, + {0, 0, 0x973D} /* East Asian ideograph */, + {0, 0, 0x973E} /* East Asian ideograph */, + {0, 0, 0x9744} /* East Asian ideograph */, + {0, 0, 0x9742} /* East Asian ideograph */, + {0, 0, 0x9748} /* East Asian ideograph */, + {0, 0, 0x9751} /* East Asian ideograph */, + {0, 0, 0x9756} /* East Asian ideograph (variant of EACC 4B5F71) */, + {0, 0, 0x975B} /* East Asian ideograph (variant of EACC 4B5F72) */, + {0, 0, 0x975C} /* East Asian ideograph */, + {0, 0, 0x975E} /* East Asian ideograph */, + {0, 0, 0x9760} /* East Asian ideograph */, + {0, 0, 0x9761} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9766} /* East Asian ideograph */, + {0, 0, 0x9768} /* East Asian ideograph */, + {0, 0, 0x9769} /* East Asian ideograph */, + {0, 0, 0x9776} /* East Asian ideograph */, + {0, 0, 0x9774} /* East Asian ideograph */, + {0, 0, 0x977C} /* East Asian ideograph */, + {0, 0, 0x9785} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page50 = { + 0, marc8_9page50_dir +}; +/* PAGE 49 */ +struct yaz_iconv_trie_dir marc8_9page49_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x937E} /* East Asian ideograph */, + {0, 0, 0x9318} /* East Asian ideograph */, + {0, 0, 0x936C} /* East Asian ideograph */, + {0, 0, 0x935B} /* East Asian ideograph */, + {0, 0, 0x938A} /* East Asian ideograph */, + {0, 0, 0x9394} /* East Asian ideograph */, + {0, 0, 0x93AE} /* East Asian ideograph */, + {0, 0, 0x9396} /* East Asian ideograph */, + {0, 0, 0x93A2} /* East Asian ideograph */, + {0, 0, 0x93B3} /* East Asian ideograph */, + {0, 0, 0x93E1} /* East Asian ideograph */, + {0, 0, 0x93D1} /* East Asian ideograph */, + {0, 0, 0x93D6} /* East Asian ideograph */, + {0, 0, 0x93C3} /* East Asian ideograph */, + {0, 0, 0x93DF} /* East Asian ideograph */, + {0, 0, 0x93D7} /* East Asian ideograph */, + {0, 0, 0x93C8} /* East Asian ideograph */, + {0, 0, 0x93E2} /* East Asian ideograph */, + {0, 0, 0x93DC} /* East Asian ideograph */, + {0, 0, 0x93E4} /* East Asian ideograph */, + {0, 0, 0x93DD} /* East Asian ideograph */, + {0, 0, 0x93CD} /* East Asian ideograph */, + {0, 0, 0x93D8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9403} /* East Asian ideograph */, + {0, 0, 0x942E} /* East Asian ideograph */, + {0, 0, 0x93FD} /* East Asian ideograph */, + {0, 0, 0x9433} /* East Asian ideograph */, + {0, 0, 0x9435} /* East Asian ideograph */, + {0, 0, 0x943A} /* East Asian ideograph */, + {0, 0, 0x9438} /* East Asian ideograph */, + {0, 0, 0x9432} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9451} /* East Asian ideograph */, + {0, 0, 0x9444} /* East Asian ideograph */, + {0, 0, 0x9463} /* East Asian ideograph */, + {0, 0, 0x9460} /* East Asian ideograph */, + {0, 0, 0x9472} /* East Asian ideograph */, + {0, 0, 0x9470} /* East Asian ideograph */, + {0, 0, 0x947E} /* East Asian ideograph */, + {0, 0, 0x947C} /* East Asian ideograph */, + {0, 0, 0x947D} /* East Asian ideograph */, + {0, 0, 0x947F} /* East Asian ideograph */, + {0, 0, 0x9577} /* East Asian ideograph */, + {0, 0, 0x9580} /* East Asian ideograph */, + {0, 0, 0x9582} /* East Asian ideograph */, + {0, 0, 0x9583} /* East Asian ideograph */, + {0, 0, 0x9589} /* East Asian ideograph */, + {0, 0, 0x9594} /* East Asian ideograph */, + {0, 0, 0x958F} /* East Asian ideograph */, + {0, 0, 0x958B} /* East Asian ideograph */, + {0, 0, 0x9591} /* East Asian ideograph */, + {0, 0, 0x9593} /* East Asian ideograph */, + {0, 0, 0x9592} /* East Asian ideograph */, + {0, 0, 0x9598} /* East Asian ideograph */, + {0, 0, 0x95A1} /* East Asian ideograph */, + {0, 0, 0x95A8} /* East Asian ideograph */, + {0, 0, 0x95A9} /* East Asian ideograph */, + {0, 0, 0x95A3} /* East Asian ideograph */, + {0, 0, 0x95A5} /* East Asian ideograph */, + {0, 0, 0x95A4} /* East Asian ideograph */, + {0, 0, 0x95B1} /* East Asian ideograph */, + {0, 0, 0x95AD} /* East Asian ideograph */, + {0, 0, 0x95BB} /* East Asian ideograph */, + {0, 0, 0x95CA} /* East Asian ideograph */, + {0, 0, 0x95CB} /* East Asian ideograph */, + {0, 0, 0x95CC} /* East Asian ideograph */, + {0, 0, 0x95C8} /* East Asian ideograph */, + {0, 0, 0x95C6} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x95D6} /* East Asian ideograph */, + {0, 0, 0x95D0} /* East Asian ideograph */, + {0, 0, 0x95DC} /* East Asian ideograph */, + {0, 0, 0x95E1} /* East Asian ideograph */, + {0, 0, 0x95E2} /* East Asian ideograph */, + {0, 0, 0x961C} /* East Asian ideograph */, + {0, 0, 0x9621} /* East Asian ideograph */, + {0, 0, 0x9632} /* East Asian ideograph */, + {0, 0, 0x9631} /* East Asian ideograph */, + {0, 0, 0x962E} /* East Asian ideograph */, + {0, 0, 0x962A} /* East Asian ideograph */, + {0, 0, 0x9640} /* East Asian ideograph */, + {0, 0, 0x963F} /* East Asian ideograph */, + {0, 0, 0x963B} /* East Asian ideograph */, + {0, 0, 0x9644} /* East Asian ideograph */, + {0, 0, 0x9650} /* East Asian ideograph */, + {0, 0, 0x964C} /* East Asian ideograph */, + {0, 0, 0x964B} /* East Asian ideograph */, + {0, 0, 0x964D} /* East Asian ideograph */, + {0, 0, 0x9662} /* East Asian ideograph */, + {0, 0, 0x9663} /* East Asian ideograph */, + {0, 0, 0x965B} /* East Asian ideograph */, + {0, 0, 0x9661} /* East Asian ideograph */, + {0, 0, 0x965D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page49 = { + 0, marc8_9page49_dir +}; +/* PAGE 48 */ +struct yaz_iconv_trie_dir marc8_9page48_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9163} /* East Asian ideograph */, + {0, 0, 0x9165} /* East Asian ideograph */, + {0, 0, 0x916C} /* East Asian ideograph */, + {0, 0, 0x9169} /* East Asian ideograph */, + {0, 0, 0x916A} /* East Asian ideograph */, + {0, 0, 0x9175} /* East Asian ideograph */, + {0, 0, 0x9178} /* East Asian ideograph */, + {0, 0, 0x9177} /* East Asian ideograph */, + {0, 0, 0x9187} /* East Asian ideograph */, + {0, 0, 0x9189} /* East Asian ideograph */, + {0, 0, 0x918B} /* East Asian ideograph */, + {0, 0, 0x9183} /* East Asian ideograph */, + {0, 0, 0x9192} /* East Asian ideograph */, + {0, 0, 0x91A3} /* East Asian ideograph */, + {0, 0, 0x919E} /* East Asian ideograph */, + {0, 0, 0x919C} /* East Asian ideograph */, + {0, 0, 0x91AB} /* East Asian ideograph */, + {0, 0, 0x91AC} /* East Asian ideograph */, + {0, 0, 0x91BA} /* East Asian ideograph */, + {0, 0, 0x91C0} /* East Asian ideograph */, + {0, 0, 0x91C1} /* East Asian ideograph */, + {0, 0, 0x91C7} /* East Asian ideograph */, + {0, 0, 0x91C9} /* East Asian ideograph */, + {0, 0, 0x91CB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x91CD} /* East Asian ideograph */, + {0, 0, 0x91CE} /* East Asian ideograph */, + {0, 0, 0x91CF} /* East Asian ideograph */, + {0, 0, 0x91D0} /* East Asian ideograph */, + {0, 0, 0x91D1} /* East Asian ideograph */, + {0, 0, 0x91DD} /* East Asian ideograph */, + {0, 0, 0x91D8} /* East Asian ideograph */, + {0, 0, 0x91D7} /* East Asian ideograph */, + {0, 0, 0x91DC} /* East Asian ideograph */, + {0, 0, 0x91F5} /* East Asian ideograph */, + {0, 0, 0x91E6} /* East Asian ideograph */, + {0, 0, 0x91E3} /* East Asian ideograph */, + {0, 0, 0x91E7} /* East Asian ideograph */, + {0, 0, 0x9223} /* East Asian ideograph */, + {0, 0, 0x920D} /* East Asian ideograph */, + {0, 0, 0x9215} /* East Asian ideograph */, + {0, 0, 0x9209} /* East Asian ideograph */, + {0, 0, 0x9214} /* East Asian ideograph */, + {0, 0, 0x921E} /* East Asian ideograph */, + {0, 0, 0x9210} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9237} /* East Asian ideograph */, + {0, 0, 0x9238} /* East Asian ideograph */, + {0, 0, 0x923D} /* East Asian ideograph */, + {0, 0, 0x923E} /* East Asian ideograph */, + {0, 0, 0x9240} /* East Asian ideograph */, + {0, 0, 0x924B} /* East Asian ideograph */, + {0, 0, 0x925B} /* East Asian ideograph */, + {0, 0, 0x9264} /* East Asian ideograph */, + {0, 0, 0x9251} /* East Asian ideograph */, + {0, 0, 0x9234} /* East Asian ideograph (variant of EACC 4B5D58) */, + {0, 0, 0x9278} /* East Asian ideograph */, + {0, 0, 0x9280} /* East Asian ideograph */, + {0, 0, 0x92AC} /* East Asian ideograph */, + {0, 0, 0x9285} /* East Asian ideograph */, + {0, 0, 0x9298} /* East Asian ideograph */, + {0, 0, 0x9296} /* East Asian ideograph */, + {0, 0, 0x927B} /* East Asian ideograph */, + {0, 0, 0x9293} /* East Asian ideograph */, + {0, 0, 0x929C} /* East Asian ideograph */, + {0, 0, 0x92C5} /* East Asian ideograph */, + {0, 0, 0x92BB} /* East Asian ideograph */, + {0, 0, 0x92B3} /* East Asian ideograph */, + {0, 0, 0x92EA} /* East Asian ideograph */, + {0, 0, 0x92B7} /* East Asian ideograph */, + {0, 0, 0x92C1} /* East Asian ideograph */, + {0, 0, 0x92E4} /* East Asian ideograph */, + {0, 0, 0x92BC} /* East Asian ideograph */, + {0, 0, 0x92D2} /* East Asian ideograph */, + {0, 0, 0x9320} /* East Asian ideograph */, + {0, 0, 0x9336} /* East Asian ideograph */, + {0, 0, 0x92F8} /* East Asian ideograph */, + {0, 0, 0x9333} /* East Asian ideograph */, + {0, 0, 0x932F} /* East Asian ideograph */, + {0, 0, 0x9322} /* East Asian ideograph */, + {0, 0, 0x92FC} /* East Asian ideograph */, + {0, 0, 0x932B} /* East Asian ideograph */, + {0, 0, 0x931A} /* East Asian ideograph */, + {0, 0, 0x9304} /* East Asian ideograph */, + {0, 0, 0x9310} /* East Asian ideograph */, + {0, 0, 0x9326} /* East Asian ideograph */, + {0, 0, 0x934D} /* East Asian ideograph */, + {0, 0, 0x9382} /* East Asian ideograph */, + {0, 0, 0x9375} /* East Asian ideograph */, + {0, 0, 0x9365} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x934B} /* East Asian ideograph */, + {0, 0, 0x9328} /* East Asian ideograph */, + {0, 0, 0x9370} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page48 = { + 0, marc8_9page48_dir +}; +/* PAGE 47 */ +struct yaz_iconv_trie_dir marc8_9page47_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x901F} /* East Asian ideograph */, + {0, 0, 0x9017} /* East Asian ideograph */, + {0, 0, 0x901D} /* East Asian ideograph */, + {0, 0, 0x9010} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x900D} /* East Asian ideograph */, + {0, 0, 0x901E} /* East Asian ideograph */, + {0, 0, 0x901A} /* East Asian ideograph */, + {0, 0, 0x9020} /* East Asian ideograph */, + {0, 0, 0x900F} /* East Asian ideograph */, + {0, 0, 0x9022} /* East Asian ideograph */, + {0, 0, 0x9016} /* East Asian ideograph */, + {0, 0, 0x901B} /* East Asian ideograph */, + {0, 0, 0x9014} /* East Asian ideograph */, + {0, 0, 0x902E} /* East Asian ideograph */, + {0, 0, 0x9035} /* East Asian ideograph */, + {0, 0, 0x9031} /* East Asian ideograph */, + {0, 0, 0x9038} /* East Asian ideograph (variant of EACC 4B5C32) */, + {0, 0, 0x9032} /* East Asian ideograph */, + {0, 0, 0x904B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x9053} /* East Asian ideograph */, + {0, 0, 0x9042} /* East Asian ideograph */, + {0, 0, 0x9050} /* East Asian ideograph */, + {0, 0, 0x9054} /* East Asian ideograph */, + {0, 0, 0x9055} /* East Asian ideograph */, + {0, 0, 0x903C} /* East Asian ideograph */, + {0, 0, 0x9047} /* East Asian ideograph */, + {0, 0, 0x904F} /* East Asian ideograph */, + {0, 0, 0x904E} /* East Asian ideograph */, + {0, 0, 0x904D} /* East Asian ideograph */, + {0, 0, 0x9051} /* East Asian ideograph */, + {0, 0, 0x9041} /* East Asian ideograph */, + {0, 0, 0x903E} /* East Asian ideograph */, + {0, 0, 0x9058} /* East Asian ideograph */, + {0, 0, 0x9060} /* East Asian ideograph */, + {0, 0, 0x905C} /* East Asian ideograph */, + {0, 0, 0x9063} /* East Asian ideograph */, + {0, 0, 0x9065} /* East Asian ideograph */, + {0, 0, 0x905E} /* East Asian ideograph */, + {0, 0, 0x9069} /* East Asian ideograph */, + {0, 0, 0x906E} /* East Asian ideograph */, + {0, 0, 0x9068} /* East Asian ideograph */, + {0, 0, 0x906D} /* East Asian ideograph */, + {0, 0, 0x9075} /* East Asian ideograph */, + {0, 0, 0x9074} /* East Asian ideograph */, + {0, 0, 0x9078} /* East Asian ideograph */, + {0, 0, 0x9072} /* East Asian ideograph */, + {0, 0, 0x9077} /* East Asian ideograph */, + {0, 0, 0x907C} /* East Asian ideograph */, + {0, 0, 0x907A} /* East Asian ideograph */, + {0, 0, 0x907F} /* East Asian ideograph */, + {0, 0, 0x907D} /* East Asian ideograph */, + {0, 0, 0x9081} /* East Asian ideograph */, + {0, 0, 0x9084} /* East Asian ideograph */, + {0, 0, 0x9082} /* East Asian ideograph */, + {0, 0, 0x9080} /* East Asian ideograph */, + {0, 0, 0x9087} /* East Asian ideograph */, + {0, 0, 0x908A} /* East Asian ideograph */, + {0, 0, 0x9090} /* East Asian ideograph */, + {0, 0, 0x908F} /* East Asian ideograph */, + {0, 0, 0x9091} /* East Asian ideograph */, + {0, 0, 0x9095} /* East Asian ideograph */, + {0, 0, 0x90A3} /* East Asian ideograph */, + {0, 0, 0x90A2} /* East Asian ideograph */, + {0, 0, 0x90AA} /* East Asian ideograph */, + {0, 0, 0x90A6} /* East Asian ideograph */, + {0, 0, 0x90B5} /* East Asian ideograph */, + {0, 0, 0x90B1} /* East Asian ideograph */, + {0, 0, 0x90B8} /* East Asian ideograph */, + {0, 0, 0x90CE} /* East Asian ideograph */, + {0, 0, 0x90CA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x90E1} /* East Asian ideograph */, + {0, 0, 0x90E8} /* East Asian ideograph */, + {0, 0, 0x90ED} /* East Asian ideograph */, + {0, 0, 0x90F5} /* East Asian ideograph */, + {0, 0, 0x90FD} /* East Asian ideograph */, + {0, 0, 0x9102} /* East Asian ideograph */, + {0, 0, 0x9109} /* East Asian ideograph */, + {0, 0, 0x9112} /* East Asian ideograph */, + {0, 0, 0x9119} /* East Asian ideograph */, + {0, 0, 0x912D} /* East Asian ideograph */, + {0, 0, 0x9130} /* East Asian ideograph */, + {0, 0, 0x9127} /* East Asian ideograph */, + {0, 0, 0x9131} /* East Asian ideograph */, + {0, 0, 0x9139} /* East Asian ideograph (variant of EACC 4B5C77) */, + {0, 0, 0x9149} /* East Asian ideograph */, + {0, 0, 0x914B} /* East Asian ideograph */, + {0, 0, 0x914A} /* East Asian ideograph */, + {0, 0, 0x9152} /* East Asian ideograph */, + {0, 0, 0x914D} /* East Asian ideograph */, + {0, 0, 0x914C} /* East Asian ideograph */, + {0, 0, 0x9157} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page47 = { + 0, marc8_9page47_dir +}; +/* PAGE 46 */ +struct yaz_iconv_trie_dir marc8_9page46_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8E76} /* East Asian ideograph */, + {0, 0, 0x8E7C} /* East Asian ideograph */, + {0, 0, 0x8E82} /* East Asian ideograph */, + {0, 0, 0x8E81} /* East Asian ideograph */, + {0, 0, 0x8E87} /* East Asian ideograph */, + {0, 0, 0x8E89} /* East Asian ideograph */, + {0, 0, 0x8E85} /* East Asian ideograph */, + {0, 0, 0x8E8A} /* East Asian ideograph */, + {0, 0, 0x8E8D} /* East Asian ideograph (variant of EACC 4B5B29) */, + {0, 0, 0x8E91} /* East Asian ideograph */, + {0, 0, 0x8EA1} /* East Asian ideograph */, + {0, 0, 0x8EAA} /* East Asian ideograph */, + {0, 0, 0x8EAB} /* East Asian ideograph */, + {0, 0, 0x8EAC} /* East Asian ideograph */, + {0, 0, 0x8EB2} /* East Asian ideograph */, + {0, 0, 0x8EBA} /* East Asian ideograph */, + {0, 0, 0x8EC0} /* East Asian ideograph */, + {0, 0, 0x8ECA} /* East Asian ideograph */, + {0, 0, 0x8ECB} /* East Asian ideograph */, + {0, 0, 0x8ECD} /* East Asian ideograph */, + {0, 0, 0x8ECC} /* East Asian ideograph */, + {0, 0, 0x8ED2} /* East Asian ideograph */, + {0, 0, 0x8ED4} /* East Asian ideograph */, + {0, 0, 0x8EDF} /* East Asian ideograph */, + {0, 0, 0x8EDB} /* East Asian ideograph */, + {0, 0, 0x8EFB} /* East Asian ideograph */, + {0, 0, 0x8EF8} /* East Asian ideograph */, + {0, 0, 0x8EFC} /* East Asian ideograph */, + {0, 0, 0x8F03} /* East Asian ideograph */, + {0, 0, 0x8EFE} /* East Asian ideograph */, + {0, 0, 0x8F09} /* East Asian ideograph */, + {0, 0, 0x8F0A} /* East Asian ideograph */, + {0, 0, 0x8F14} /* East Asian ideograph */, + {0, 0, 0x8F12} /* East Asian ideograph */, + {0, 0, 0x8F15} /* East Asian ideograph */, + {0, 0, 0x8F13} /* East Asian ideograph */, + {0, 0, 0x8F26} /* East Asian ideograph */, + {0, 0, 0x8F1B} /* East Asian ideograph */, + {0, 0, 0x8F1F} /* East Asian ideograph */, + {0, 0, 0x8F1D} /* East Asian ideograph */, + {0, 0, 0x8F29} /* East Asian ideograph */, + {0, 0, 0x8F2A} /* East Asian ideograph */, + {0, 0, 0x8F1C} /* East Asian ideograph */, + {0, 0, 0x8F3B} /* East Asian ideograph */, + {0, 0, 0x8F2F} /* East Asian ideograph */, + {0, 0, 0x8F38} /* East Asian ideograph */, + {0, 0, 0x8F44} /* East Asian ideograph */, + {0, 0, 0x8F3E} /* East Asian ideograph */, + {0, 0, 0x8F45} /* East Asian ideograph */, + {0, 0, 0x8F42} /* East Asian ideograph (variant of EACC 4B5B52) */, + {0, 0, 0x8F3F} /* East Asian ideograph */, + {0, 0, 0x8F4D} /* East Asian ideograph */, + {0, 0, 0x8F49} /* East Asian ideograph */, + {0, 0, 0x8F54} /* East Asian ideograph */, + {0, 0, 0x8F4E} /* East Asian ideograph */, + {0, 0, 0x8F5F} /* East Asian ideograph */, + {0, 0, 0x8F61} /* East Asian ideograph */, + {0, 0, 0x8F9B} /* East Asian ideograph */, + {0, 0, 0x8F9C} /* East Asian ideograph */, + {0, 0, 0x8F9F} /* East Asian ideograph */, + {0, 0, 0x8FA3} /* East Asian ideograph */, + {0, 0, 0x8FA8} /* East Asian ideograph */, + {0, 0, 0x8FA6} /* East Asian ideograph */, + {0, 0, 0x8FAD} /* East Asian ideograph */, + {0, 0, 0x8FAF} /* East Asian ideograph */, + {0, 0, 0x8FB0} /* East Asian ideograph */, + {0, 0, 0x8FB1} /* East Asian ideograph */, + {0, 0, 0x8FB2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8FC6} /* East Asian ideograph */, + {0, 0, 0x8FC5} /* East Asian ideograph */, + {0, 0, 0x8FC4} /* East Asian ideograph */, + {0, 0, 0x5DE1} /* East Asian ideograph */, + {0, 0, 0x8FCE} /* East Asian ideograph */, + {0, 0, 0x8FD1} /* East Asian ideograph */, + {0, 0, 0x8FD4} /* East Asian ideograph */, + {0, 0, 0x8FF0} /* East Asian ideograph (variant of EACC 275B6D) */, + {0, 0, 0x8FE6} /* East Asian ideograph */, + {0, 0, 0x8FE2} /* East Asian ideograph */, + {0, 0, 0x8FEA} /* East Asian ideograph */, + {0, 0, 0x8FE5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8FEB} /* East Asian ideograph */, + {0, 0, 0x9001} /* East Asian ideograph */, + {0, 0, 0x9006} /* East Asian ideograph */, + {0, 0, 0x8FF7} /* East Asian ideograph */, + {0, 0, 0x9000} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x9003} /* East Asian ideograph */, + {0, 0, 0x8FFD} /* East Asian ideograph */, + {0, 0, 0x9005} /* East Asian ideograph */, + {0, 0, 0x9019} /* East Asian ideograph */, + {0, 0, 0x9023} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page46 = { + 0, marc8_9page46_dir +}; +/* PAGE 45 */ +struct yaz_iconv_trie_dir marc8_9page45_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8CC5} /* East Asian ideograph */, + {0, 0, 0x8CC7} /* East Asian ideograph */, + {0, 0, 0x8CCA} /* East Asian ideograph */, + {0, 0, 0x8CC8} /* East Asian ideograph */, + {0, 0, 0x8CC4} /* East Asian ideograph */, + {0, 0, 0x8CB2} /* East Asian ideograph */, + {0, 0, 0x8CC3} /* East Asian ideograph */, + {0, 0, 0x8CC2} /* East Asian ideograph */, + {0, 0, 0x8CD3} /* East Asian ideograph */, + {0, 0, 0x8CD1} /* East Asian ideograph */, + {0, 0, 0x8CD2} /* East Asian ideograph */, + {0, 0, 0x8CE0} /* East Asian ideograph */, + {0, 0, 0x8CE6} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8CE3} /* East Asian ideograph */, + {0, 0, 0x8CE2} /* East Asian ideograph */, + {0, 0, 0x8CE4} /* East Asian ideograph */, + {0, 0, 0x8CDE} /* East Asian ideograph */, + {0, 0, 0x8CDC} /* East Asian ideograph */, + {0, 0, 0x8CEA} /* East Asian ideograph */, + {0, 0, 0x8CED} /* East Asian ideograph */, + {0, 0, 0x8CF4} /* East Asian ideograph */, + {0, 0, 0x8CFD} /* East Asian ideograph */, + {0, 0, 0x8CFA} /* East Asian ideograph */, + {0, 0, 0x8D05} /* East Asian ideograph */, + {0, 0, 0x8CFC} /* East Asian ideograph */, + {0, 0, 0x8D08} /* East Asian ideograph (variant of EACC 4B5A3B) */, + {0, 0, 0x8D0B} /* East Asian ideograph */, + {0, 0, 0x8D0A} /* East Asian ideograph */, + {0, 0, 0x8D0F} /* East Asian ideograph */, + {0, 0, 0x8D0D} /* East Asian ideograph */, + {0, 0, 0x8D13} /* East Asian ideograph */, + {0, 0, 0x8D16} /* East Asian ideograph */, + {0, 0, 0x8D1B} /* East Asian ideograph */, + {0, 0, 0x8D64} /* East Asian ideograph */, + {0, 0, 0x8D67} /* East Asian ideograph */, + {0, 0, 0x8D66} /* East Asian ideograph */, + {0, 0, 0x8D6B} /* East Asian ideograph */, + {0, 0, 0x8D6D} /* East Asian ideograph */, + {0, 0, 0x8D70} /* East Asian ideograph */, + {0, 0, 0x8D74} /* East Asian ideograph */, + {0, 0, 0x8D73} /* East Asian ideograph */, + {0, 0, 0x8D77} /* East Asian ideograph */, + {0, 0, 0x8D85} /* East Asian ideograph */, + {0, 0, 0x8D8A} /* East Asian ideograph */, + {0, 0, 0x8D81} /* East Asian ideograph */, + {0, 0, 0x8D99} /* East Asian ideograph */, + {0, 0, 0x8D95} /* East Asian ideograph */, + {0, 0, 0x8DA3} /* East Asian ideograph */, + {0, 0, 0x8D9F} /* East Asian ideograph */, + {0, 0, 0x8DA8} /* East Asian ideograph */, + {0, 0, 0x8DB3} /* East Asian ideograph */, + {0, 0, 0x8DB4} /* East Asian ideograph */, + {0, 0, 0x8DBE} /* East Asian ideograph */, + {0, 0, 0x8DCE} /* East Asian ideograph */, + {0, 0, 0x8DDD} /* East Asian ideograph */, + {0, 0, 0x8DDB} /* East Asian ideograph */, + {0, 0, 0x8DCB} /* East Asian ideograph */, + {0, 0, 0x8DDA} /* East Asian ideograph */, + {0, 0, 0x8DC6} /* East Asian ideograph */, + {0, 0, 0x8DD1} /* East Asian ideograph */, + {0, 0, 0x8DCC} /* East Asian ideograph */, + {0, 0, 0x8DE1} /* East Asian ideograph */, + {0, 0, 0x8DDF} /* East Asian ideograph */, + {0, 0, 0x8DE8} /* East Asian ideograph */, + {0, 0, 0x8DF3} /* East Asian ideograph */, + {0, 0, 0x8DFA} /* East Asian ideograph */, + {0, 0, 0x8DEA} /* East Asian ideograph */, + {0, 0, 0x8DEF} /* East Asian ideograph */, + {0, 0, 0x8DFC} /* East Asian ideograph */, + {0, 0, 0x8E2B} /* East Asian ideograph */, + {0, 0, 0x8E10} /* East Asian ideograph */, + {0, 0, 0x8E22} /* East Asian ideograph */, + {0, 0, 0x8E1D} /* East Asian ideograph */, + {0, 0, 0x8E0F} /* East Asian ideograph */, + {0, 0, 0x8E29} /* East Asian ideograph */, + {0, 0, 0x8E1F} /* East Asian ideograph */, + {0, 0, 0x8E44} /* East Asian ideograph */, + {0, 0, 0x8E31} /* East Asian ideograph */, + {0, 0, 0x8E42} /* East Asian ideograph */, + {0, 0, 0x8E34} /* East Asian ideograph */, + {0, 0, 0x8E39} /* East Asian ideograph */, + {0, 0, 0x8E35} /* East Asian ideograph */, + {0, 0, 0x8E49} /* East Asian ideograph */, + {0, 0, 0x8E4B} /* East Asian ideograph */, + {0, 0, 0x8E48} /* East Asian ideograph */, + {0, 0, 0x8E4A} /* East Asian ideograph */, + {0, 0, 0x8E63} /* East Asian ideograph */, + {0, 0, 0x8E59} /* East Asian ideograph */, + {0, 0, 0x8E66} /* East Asian ideograph */, + {0, 0, 0x8E64} /* East Asian ideograph */, + {0, 0, 0x8E72} /* East Asian ideograph */, + {0, 0, 0x8E6C} /* East Asian ideograph */, + {0, 0, 0x8E7A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page45 = { + 0, marc8_9page45_dir +}; +/* PAGE 44 */ +struct yaz_iconv_trie_dir marc8_9page44_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8AC2} /* East Asian ideograph */, + {0, 0, 0x8AB0} /* East Asian ideograph */, + {0, 0, 0x8A95} /* East Asian ideograph */, + {0, 0, 0x8AD6} /* East Asian ideograph */, + {0, 0, 0x8AE6} /* East Asian ideograph */, + {0, 0, 0x8AFA} /* East Asian ideograph */, + {0, 0, 0x8AEB} /* East Asian ideograph */, + {0, 0, 0x8AF1} /* East Asian ideograph */, + {0, 0, 0x8AE7} /* East Asian ideograph */, + {0, 0, 0x8ADC} /* East Asian ideograph */, + {0, 0, 0x8B00} /* East Asian ideograph */, + {0, 0, 0x8B01} /* East Asian ideograph (variant of EACC 2D592C) */, + {0, 0, 0x8B02} /* East Asian ideograph */, + {0, 0, 0x8AFE} /* East Asian ideograph */, + {0, 0, 0x8AF7} /* East Asian ideograph */, + {0, 0, 0x8AED} /* East Asian ideograph */, + {0, 0, 0x8B17} /* East Asian ideograph */, + {0, 0, 0x8B19} /* East Asian ideograph */, + {0, 0, 0x8B0E} /* East Asian ideograph */, + {0, 0, 0x8B1B} /* East Asian ideograph */, + {0, 0, 0x8B0A} /* East Asian ideograph */, + {0, 0, 0x8B21} /* East Asian ideograph */, + {0, 0, 0x8B04} /* East Asian ideograph */, + {0, 0, 0x8B1D} /* East Asian ideograph */, + {0, 0, 0x8B39} /* East Asian ideograph */, + {0, 0, 0x8B2C} /* East Asian ideograph */, + {0, 0, 0x8B28} /* East Asian ideograph */, + {0, 0, 0x8B58} /* East Asian ideograph */, + {0, 0, 0x8B5C} /* East Asian ideograph */, + {0, 0, 0x8B4E} /* East Asian ideograph */, + {0, 0, 0x8B49} /* East Asian ideograph */, + {0, 0, 0x8B5A} /* East Asian ideograph */, + {0, 0, 0x8B41} /* East Asian ideograph */, + {0, 0, 0x8B4F} /* East Asian ideograph */, + {0, 0, 0x8B70} /* East Asian ideograph */, + {0, 0, 0x8B6C} /* East Asian ideograph */, + {0, 0, 0x8B66} /* East Asian ideograph */, + {0, 0, 0x8B6F} /* East Asian ideograph */, + {0, 0, 0x8B74} /* East Asian ideograph */, + {0, 0, 0x8B77} /* East Asian ideograph */, + {0, 0, 0x8B7D} /* East Asian ideograph */, + {0, 0, 0x8B80} /* East Asian ideograph */, + {0, 0, 0x8B8A} /* East Asian ideograph */, + {0, 0, 0x8B93} /* East Asian ideograph */, + {0, 0, 0x8B96} /* East Asian ideograph */, + {0, 0, 0x8B92} /* East Asian ideograph */, + {0, 0, 0x8B9A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8C41} /* East Asian ideograph */, + {0, 0, 0x8C3F} /* East Asian ideograph */, + {0, 0, 0x8C46} /* East Asian ideograph */, + {0, 0, 0x8C48} /* East Asian ideograph */, + {0, 0, 0x8C49} /* East Asian ideograph */, + {0, 0, 0x8C4C} /* East Asian ideograph */, + {0, 0, 0x8C4E} /* East Asian ideograph */, + {0, 0, 0x8C50} /* East Asian ideograph */, + {0, 0, 0x8C54} /* East Asian ideograph */, + {0, 0, 0x8C5A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8C62} /* East Asian ideograph */, + {0, 0, 0x8C6A} /* East Asian ideograph */, + {0, 0, 0x8C6B} /* East Asian ideograph */, + {0, 0, 0x8C6C} /* East Asian ideograph */, + {0, 0, 0x8C7A} /* East Asian ideograph */, + {0, 0, 0x8C79} /* East Asian ideograph */, + {0, 0, 0x8C82} /* East Asian ideograph */, + {0, 0, 0x8C8A} /* East Asian ideograph */, + {0, 0, 0x8C89} /* East Asian ideograph */, + {0, 0, 0x8C8D} /* East Asian ideograph */, + {0, 0, 0x8C8C} /* East Asian ideograph */, + {0, 0, 0x8C93} /* East Asian ideograph */, + {0, 0, 0x8C9D} /* East Asian ideograph */, + {0, 0, 0x8C9E} /* East Asian ideograph */, + {0, 0, 0x8CA0} /* East Asian ideograph */, + {0, 0, 0x8CA2} /* East Asian ideograph */, + {0, 0, 0x8CA1} /* East Asian ideograph */, + {0, 0, 0x8CAC} /* East Asian ideograph */, + {0, 0, 0x8CAB} /* East Asian ideograph */, + {0, 0, 0x8CA8} /* East Asian ideograph */, + {0, 0, 0x8CAA} /* East Asian ideograph */, + {0, 0, 0x8CA7} /* East Asian ideograph */, + {0, 0, 0x8CA9} /* East Asian ideograph */, + {0, 0, 0x8CAF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8CBB} /* East Asian ideograph */, + {0, 0, 0x8CC1} /* East Asian ideograph */, + {0, 0, 0x8CC0} /* East Asian ideograph */, + {0, 0, 0x8CB4} /* East Asian ideograph */, + {0, 0, 0x8CBC} /* East Asian ideograph */, + {0, 0, 0x8CB7} /* East Asian ideograph */, + {0, 0, 0x8CB6} /* East Asian ideograph */, + {0, 0, 0x8CBD} /* East Asian ideograph */, + {0, 0, 0x8CB8} /* East Asian ideograph */, + {0, 0, 0x8CBF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page44 = { + 0, marc8_9page44_dir +}; +/* PAGE 43 */ +struct yaz_iconv_trie_dir marc8_9page43_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x896A} /* East Asian ideograph */, + {0, 0, 0x896F} /* East Asian ideograph */, + {0, 0, 0x8972} /* East Asian ideograph */, + {0, 0, 0x897F} /* East Asian ideograph */, + {0, 0, 0x8981} /* East Asian ideograph */, + {0, 0, 0x8983} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x898B} /* East Asian ideograph */, + {0, 0, 0x898F} /* East Asian ideograph */, + {0, 0, 0x8993} /* East Asian ideograph */, + {0, 0, 0x8996} /* East Asian ideograph */, + {0, 0, 0x89AA} /* East Asian ideograph */, + {0, 0, 0x89A6} /* East Asian ideograph */, + {0, 0, 0x89AC} /* East Asian ideograph */, + {0, 0, 0x89B2} /* East Asian ideograph */, + {0, 0, 0x89BA} /* East Asian ideograph */, + {0, 0, 0x89BD} /* East Asian ideograph */, + {0, 0, 0x89C0} /* East Asian ideograph */, + {0, 0, 0x89D2} /* East Asian ideograph */, + {0, 0, 0x89E3} /* East Asian ideograph */, + {0, 0, 0x89F4} /* East Asian ideograph */, + {0, 0, 0x89F8} /* East Asian ideograph */, + {0, 0, 0x8A00} /* East Asian ideograph */, + {0, 0, 0x8A08} /* East Asian ideograph */, + {0, 0, 0x8A02} /* East Asian ideograph */, + {0, 0, 0x8A03} /* East Asian ideograph */, + {0, 0, 0x8A10} /* East Asian ideograph */, + {0, 0, 0x8A18} /* East Asian ideograph */, + {0, 0, 0x8A0E} /* East Asian ideograph */, + {0, 0, 0x8A0C} /* East Asian ideograph */, + {0, 0, 0x8A15} /* East Asian ideograph */, + {0, 0, 0x8A0A} /* East Asian ideograph */, + {0, 0, 0x8A16} /* East Asian ideograph */, + {0, 0, 0x8A17} /* East Asian ideograph */, + {0, 0, 0x8A13} /* East Asian ideograph */, + {0, 0, 0x8A2A} /* East Asian ideograph */, + {0, 0, 0x8A23} /* East Asian ideograph */, + {0, 0, 0x8A1D} /* East Asian ideograph */, + {0, 0, 0x8A25} /* East Asian ideograph */, + {0, 0, 0x8A31} /* East Asian ideograph */, + {0, 0, 0x8A2D} /* East Asian ideograph */, + {0, 0, 0x8A1B} /* East Asian ideograph */, + {0, 0, 0x8A1F} /* East Asian ideograph */, + {0, 0, 0x8A3B} /* East Asian ideograph */, + {0, 0, 0x8A60} /* East Asian ideograph */, + {0, 0, 0x8A55} /* East Asian ideograph */, + {0, 0, 0x8A5E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8A41} /* East Asian ideograph */, + {0, 0, 0x8A54} /* East Asian ideograph */, + {0, 0, 0x8A5B} /* East Asian ideograph */, + {0, 0, 0x8A50} /* East Asian ideograph */, + {0, 0, 0x8A46} /* East Asian ideograph */, + {0, 0, 0x8A34} /* East Asian ideograph */, + {0, 0, 0x8A3A} /* East Asian ideograph */, + {0, 0, 0x8A6B} /* East Asian ideograph */, + {0, 0, 0x8A72} /* East Asian ideograph */, + {0, 0, 0x8A73} /* East Asian ideograph */, + {0, 0, 0x8A66} /* East Asian ideograph */, + {0, 0, 0x8A69} /* East Asian ideograph */, + {0, 0, 0x8A70} /* East Asian ideograph */, + {0, 0, 0x8A63} /* East Asian ideograph */, + {0, 0, 0x8A7C} /* East Asian ideograph */, + {0, 0, 0x8AA0} /* East Asian ideograph */, + {0, 0, 0x8A87} /* East Asian ideograph */, + {0, 0, 0x8A85} /* East Asian ideograph */, + {0, 0, 0x8A6D} /* East Asian ideograph */, + {0, 0, 0x8A79} /* East Asian ideograph */, + {0, 0, 0x8A62} /* East Asian ideograph */, + {0, 0, 0x8A71} /* East Asian ideograph */, + {0, 0, 0x8A6E} /* East Asian ideograph */, + {0, 0, 0x8A6C} /* East Asian ideograph */, + {0, 0, 0x8AAA} /* East Asian ideograph */, + {0, 0, 0x8AA6} /* East Asian ideograph */, + {0, 0, 0x8AA1} /* East Asian ideograph */, + {0, 0, 0x8A9E} /* East Asian ideograph */, + {0, 0, 0x8A8C} /* East Asian ideograph */, + {0, 0, 0x8A93} /* East Asian ideograph */, + {0, 0, 0x8AA3} /* East Asian ideograph */, + {0, 0, 0x8A8D} /* East Asian ideograph */, + {0, 0, 0x8AA4} /* East Asian ideograph (variant of EACC 4B5871) */, + {0, 0, 0x8AA8} /* East Asian ideograph */, + {0, 0, 0x8AA5} /* East Asian ideograph */, + {0, 0, 0x8A98} /* East Asian ideograph */, + {0, 0, 0x8A91} /* East Asian ideograph */, + {0, 0, 0x8ABC} /* East Asian ideograph */, + {0, 0, 0x8AC4} /* East Asian ideograph */, + {0, 0, 0x8AD2} /* East Asian ideograph */, + {0, 0, 0x8AC7} /* East Asian ideograph */, + {0, 0, 0x8ACB} /* East Asian ideograph (variant of EACC 4B587A) */, + {0, 0, 0x8AF8} /* East Asian ideograph */, + {0, 0, 0x8AB2} /* East Asian ideograph */, + {0, 0, 0x8ABF} /* East Asian ideograph */, + {0, 0, 0x8AC9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page43 = { + 0, marc8_9page43_dir +}; +/* PAGE 42 */ +struct yaz_iconv_trie_dir marc8_9page42_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8759} /* East Asian ideograph */, + {0, 0, 0x8783} /* East Asian ideograph */, + {0, 0, 0x8782} /* East Asian ideograph */, + {0, 0, 0x87A2} /* East Asian ideograph */, + {0, 0, 0x879E} /* East Asian ideograph */, + {0, 0, 0x878D} /* East Asian ideograph */, + {0, 0, 0x879F} /* East Asian ideograph */, + {0, 0, 0x87D1} /* East Asian ideograph */, + {0, 0, 0x87C0} /* East Asian ideograph */, + {0, 0, 0x87AB} /* East Asian ideograph */, + {0, 0, 0x87B3} /* East Asian ideograph */, + {0, 0, 0x87BB} /* East Asian ideograph */, + {0, 0, 0x87C8} /* East Asian ideograph */, + {0, 0, 0x87D2} /* East Asian ideograph */, + {0, 0, 0x87BA} /* East Asian ideograph */, + {0, 0, 0x87C6} /* East Asian ideograph */, + {0, 0, 0x87CB} /* East Asian ideograph */, + {0, 0, 0x87EF} /* East Asian ideograph */, + {0, 0, 0x87F2} /* East Asian ideograph */, + {0, 0, 0x87EC} /* East Asian ideograph */, + {0, 0, 0x87FB} /* East Asian ideograph */, + {0, 0, 0x8805} /* East Asian ideograph */, + {0, 0, 0x880D} /* East Asian ideograph */, + {0, 0, 0x87F9} /* East Asian ideograph */, + {0, 0, 0x8814} /* East Asian ideograph */, + {0, 0, 0x8815} /* East Asian ideograph */, + {0, 0, 0x8822} /* East Asian ideograph */, + {0, 0, 0x8823} /* East Asian ideograph */, + {0, 0, 0x8821} /* East Asian ideograph */, + {0, 0, 0x881F} /* East Asian ideograph */, + {0, 0, 0x8831} /* East Asian ideograph */, + {0, 0, 0x8839} /* East Asian ideograph */, + {0, 0, 0x8836} /* East Asian ideograph */, + {0, 0, 0x883B} /* East Asian ideograph */, + {0, 0, 0x8840} /* East Asian ideograph */, + {0, 0, 0x884C} /* East Asian ideograph */, + {0, 0, 0x884D} /* East Asian ideograph */, + {0, 0, 0x8853} /* East Asian ideograph (variant of EACC 4B5746) */, + {0, 0, 0x8857} /* East Asian ideograph */, + {0, 0, 0x8859} /* East Asian ideograph */, + {0, 0, 0x885B} /* East Asian ideograph */, + {0, 0, 0x885D} /* East Asian ideograph */, + {0, 0, 0x8861} /* East Asian ideograph */, + {0, 0, 0x8862} /* East Asian ideograph */, + {0, 0, 0x8863} /* East Asian ideograph */, + {0, 0, 0x521D} /* East Asian ideograph */, + {0, 0, 0x8868} /* East Asian ideograph */, + {0, 0, 0x886B} /* East Asian ideograph */, + {0, 0, 0x8882} /* East Asian ideograph */, + {0, 0, 0x8881} /* East Asian ideograph */, + {0, 0, 0x8870} /* East Asian ideograph */, + {0, 0, 0x8877} /* East Asian ideograph */, + {0, 0, 0x8888} /* East Asian ideograph */, + {0, 0, 0x88AB} /* East Asian ideograph */, + {0, 0, 0x8892} /* East Asian ideograph */, + {0, 0, 0x8896} /* East Asian ideograph */, + {0, 0, 0x888D} /* East Asian ideograph */, + {0, 0, 0x888B} /* East Asian ideograph */, + {0, 0, 0x889E} /* East Asian ideograph */, + {0, 0, 0x88C1} /* East Asian ideograph */, + {0, 0, 0x88C2} /* East Asian ideograph */, + {0, 0, 0x88B1} /* East Asian ideograph */, + {0, 0, 0x88DF} /* East Asian ideograph */, + {0, 0, 0x88D9} /* East Asian ideograph */, + {0, 0, 0x88D8} /* East Asian ideograph */, + {0, 0, 0x88DC} /* East Asian ideograph */, + {0, 0, 0x88CF} /* East Asian ideograph */, + {0, 0, 0x88D4} /* East Asian ideograph */, + {0, 0, 0x88DD} /* East Asian ideograph */, + {0, 0, 0x88D5} /* East Asian ideograph */, + {0, 0, 0x8902} /* East Asian ideograph */, + {0, 0, 0x88F3} /* East Asian ideograph */, + {0, 0, 0x88F8} /* East Asian ideograph */, + {0, 0, 0x88F9} /* East Asian ideograph */, + {0, 0, 0x88F4} /* East Asian ideograph */, + {0, 0, 0x88FD} /* East Asian ideograph */, + {0, 0, 0x88E8} /* East Asian ideograph */, + {0, 0, 0x891A} /* East Asian ideograph */, + {0, 0, 0x8910} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8913} /* East Asian ideograph */, + {0, 0, 0x8912} /* East Asian ideograph */, + {0, 0, 0x8932} /* East Asian ideograph */, + {0, 0, 0x892A} /* East Asian ideograph */, + {0, 0, 0x8925} /* East Asian ideograph */, + {0, 0, 0x892B} /* East Asian ideograph */, + {0, 0, 0x893B} /* East Asian ideograph */, + {0, 0, 0x8936} /* East Asian ideograph */, + {0, 0, 0x8938} /* East Asian ideograph */, + {0, 0, 0x8944} /* East Asian ideograph */, + {0, 0, 0x895F} /* East Asian ideograph */, + {0, 0, 0x8960} /* East Asian ideograph */, + {0, 0, 0x8956} /* East Asian ideograph */, + {0, 0, 0x8964} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page42 = { + 0, marc8_9page42_dir +}; +/* PAGE 41 */ +struct yaz_iconv_trie_dir marc8_9page41_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x85AA} /* East Asian ideograph */, + {0, 0, 0x856D} /* East Asian ideograph */, + {0, 0, 0x859B} /* East Asian ideograph */, + {0, 0, 0x8591} /* East Asian ideograph */, + {0, 0, 0x857E} /* East Asian ideograph */, + {0, 0, 0x8594} /* East Asian ideograph */, + {0, 0, 0x859C} /* East Asian ideograph */, + {0, 0, 0x8587} /* East Asian ideograph */, + {0, 0, 0x85CD} /* East Asian ideograph (variant of EACC 4B5629) */, + {0, 0, 0x85A9} /* East Asian ideograph */, + {0, 0, 0x85CF} /* East Asian ideograph */, + {0, 0, 0x85AF} /* East Asian ideograph */, + {0, 0, 0x85D0} /* East Asian ideograph */, + {0, 0, 0x85C9} /* East Asian ideograph */, + {0, 0, 0x85B0} /* East Asian ideograph */, + {0, 0, 0x85E9} /* East Asian ideograph */, + {0, 0, 0x85DD} /* East Asian ideograph */, + {0, 0, 0x85EA} /* East Asian ideograph */, + {0, 0, 0x85E4} /* East Asian ideograph */, + {0, 0, 0x85D5} /* East Asian ideograph */, + {0, 0, 0x85E5} /* East Asian ideograph */, + {0, 0, 0x85FB} /* East Asian ideograph */, + {0, 0, 0x85F9} /* East Asian ideograph */, + {0, 0, 0x8611} /* East Asian ideograph */, + {0, 0, 0x85FA} /* East Asian ideograph */, + {0, 0, 0x8606} /* East Asian ideograph */, + {0, 0, 0x860B} /* East Asian ideograph */, + {0, 0, 0x8607} /* East Asian ideograph */, + {0, 0, 0x860A} /* East Asian ideograph */, + {0, 0, 0x862D} /* East Asian ideograph */, + {0, 0, 0x8617} /* East Asian ideograph */, + {0, 0, 0x861A} /* East Asian ideograph */, + {0, 0, 0x8638} /* East Asian ideograph */, + {0, 0, 0x863F} /* East Asian ideograph */, + {0, 0, 0x864E} /* East Asian ideograph */, + {0, 0, 0x8650} /* East Asian ideograph */, + {0, 0, 0x8654} /* East Asian ideograph */, + {0, 0, 0x5F6A} /* East Asian ideograph */, + {0, 0, 0x8655} /* East Asian ideograph */, + {0, 0, 0x865C} /* East Asian ideograph */, + {0, 0, 0x865B} /* East Asian ideograph */, + {0, 0, 0x865F} /* East Asian ideograph */, + {0, 0, 0x865E} /* East Asian ideograph */, + {0, 0, 0x8667} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8679} /* East Asian ideograph */, + {0, 0, 0x86A9} /* East Asian ideograph */, + {0, 0, 0x86AA} /* East Asian ideograph */, + {0, 0, 0x868A} /* East Asian ideograph */, + {0, 0, 0x8693} /* East Asian ideograph */, + {0, 0, 0x86A4} /* East Asian ideograph */, + {0, 0, 0x868C} /* East Asian ideograph */, + {0, 0, 0x86A3} /* East Asian ideograph */, + {0, 0, 0x86C0} /* East Asian ideograph */, + {0, 0, 0x86C7} /* East Asian ideograph */, + {0, 0, 0x86B5} /* East Asian ideograph */, + {0, 0, 0x86CB} /* East Asian ideograph */, + {0, 0, 0x86B6} /* East Asian ideograph */, + {0, 0, 0x86C4} /* East Asian ideograph */, + {0, 0, 0x86C6} /* East Asian ideograph */, + {0, 0, 0x86B1} /* East Asian ideograph */, + {0, 0, 0x86AF} /* East Asian ideograph */, + {0, 0, 0x86DF} /* East Asian ideograph */, + {0, 0, 0x86D9} /* East Asian ideograph */, + {0, 0, 0x86ED} /* East Asian ideograph */, + {0, 0, 0x86D4} /* East Asian ideograph */, + {0, 0, 0x86DB} /* East Asian ideograph */, + {0, 0, 0x86E4} /* East Asian ideograph */, + {0, 0, 0x86FB} /* East Asian ideograph */, + {0, 0, 0x86F9} /* East Asian ideograph */, + {0, 0, 0x8707} /* East Asian ideograph */, + {0, 0, 0x8703} /* East Asian ideograph */, + {0, 0, 0x8708} /* East Asian ideograph */, + {0, 0, 0x8700} /* East Asian ideograph */, + {0, 0, 0x86FE} /* East Asian ideograph */, + {0, 0, 0x8713} /* East Asian ideograph */, + {0, 0, 0x8702} /* East Asian ideograph */, + {0, 0, 0x871C} /* East Asian ideograph */, + {0, 0, 0x873F} /* East Asian ideograph */, + {0, 0, 0x873B} /* East Asian ideograph */, + {0, 0, 0x8722} /* East Asian ideograph */, + {0, 0, 0x8725} /* East Asian ideograph */, + {0, 0, 0x8734} /* East Asian ideograph */, + {0, 0, 0x8718} /* East Asian ideograph */, + {0, 0, 0x8755} /* East Asian ideograph */, + {0, 0, 0x8760} /* East Asian ideograph */, + {0, 0, 0x8776} /* East Asian ideograph */, + {0, 0, 0x8774} /* East Asian ideograph */, + {0, 0, 0x8766} /* East Asian ideograph */, + {0, 0, 0x8778} /* East Asian ideograph */, + {0, 0, 0x8768} /* East Asian ideograph */, + {0, 0, 0x874C} /* East Asian ideograph */, + {0, 0, 0x8757} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page41 = { + 0, marc8_9page41_dir +}; +/* PAGE 40 */ +struct yaz_iconv_trie_dir marc8_9page40_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5179} /* East Asian ideograph */, + {0, 0, 0x834F} /* East Asian ideograph */, + {0, 0, 0x8339} /* East Asian ideograph */, + {0, 0, 0x838E} /* East Asian ideograph */, + {0, 0, 0x8398} /* East Asian ideograph */, + {0, 0, 0x839E} /* East Asian ideograph */, + {0, 0, 0x8378} /* East Asian ideograph */, + {0, 0, 0x83A2} /* East Asian ideograph */, + {0, 0, 0x8396} /* East Asian ideograph */, + {0, 0, 0x83A7} /* East Asian ideograph */, + {0, 0, 0x83AB} /* East Asian ideograph */, + {0, 0, 0x8392} /* East Asian ideograph (variant of EACC 4B552C) */, + {0, 0, 0x838A} /* East Asian ideograph */, + {0, 0, 0x8393} /* East Asian ideograph */, + {0, 0, 0x83A0} /* East Asian ideograph */, + {0, 0, 0x8389} /* East Asian ideograph */, + {0, 0, 0x8377} /* East Asian ideograph */, + {0, 0, 0x837C} /* East Asian ideograph */, + {0, 0, 0x837B} /* East Asian ideograph */, + {0, 0, 0x840D} /* East Asian ideograph */, + {0, 0, 0x83E0} /* East Asian ideograph */, + {0, 0, 0x83E9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8403} /* East Asian ideograph */, + {0, 0, 0x83C5} /* East Asian ideograph */, + {0, 0, 0x83C1} /* East Asian ideograph */, + {0, 0, 0x840B} /* East Asian ideograph */, + {0, 0, 0x83EF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x83F1} /* East Asian ideograph */, + {0, 0, 0x83BD} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x840A} /* East Asian ideograph */, + {0, 0, 0x840C} /* East Asian ideograph */, + {0, 0, 0x83CC} /* East Asian ideograph */, + {0, 0, 0x83DC} /* East Asian ideograph */, + {0, 0, 0x83CA} /* East Asian ideograph */, + {0, 0, 0x83F2} /* East Asian ideograph */, + {0, 0, 0x840E} /* East Asian ideograph */, + {0, 0, 0x8404} /* East Asian ideograph */, + {0, 0, 0x843D} /* East Asian ideograph */, + {0, 0, 0x8482} /* East Asian ideograph */, + {0, 0, 0x8431} /* East Asian ideograph */, + {0, 0, 0x8475} /* East Asian ideograph */, + {0, 0, 0x8466} /* East Asian ideograph */, + {0, 0, 0x8457} /* East Asian ideograph */, + {0, 0, 0x8449} /* East Asian ideograph */, + {0, 0, 0x846C} /* East Asian ideograph */, + {0, 0, 0x846B} /* East Asian ideograph */, + {0, 0, 0x845B} /* East Asian ideograph */, + {0, 0, 0x8477} /* East Asian ideograph */, + {0, 0, 0x843C} /* East Asian ideograph */, + {0, 0, 0x8435} /* East Asian ideograph */, + {0, 0, 0x8461} /* East Asian ideograph */, + {0, 0, 0x8463} /* East Asian ideograph */, + {0, 0, 0x8469} /* East Asian ideograph */, + {0, 0, 0x8438} /* East Asian ideograph */, + {0, 0, 0x84B2} /* East Asian ideograph */, + {0, 0, 0x849E} /* East Asian ideograph */, + {0, 0, 0x84BF} /* East Asian ideograph */, + {0, 0, 0x84C6} /* East Asian ideograph */, + {0, 0, 0x84C4} /* East Asian ideograph */, + {0, 0, 0x84C9} /* East Asian ideograph */, + {0, 0, 0x849C} /* East Asian ideograph */, + {0, 0, 0x84CB} /* East Asian ideograph */, + {0, 0, 0x84B8} /* East Asian ideograph */, + {0, 0, 0x84C0} /* East Asian ideograph */, + {0, 0, 0x8499} /* East Asian ideograph */, + {0, 0, 0x84D3} /* East Asian ideograph */, + {0, 0, 0x8490} /* East Asian ideograph */, + {0, 0, 0x84BC} /* East Asian ideograph */, + {0, 0, 0x853D} /* East Asian ideograph */, + {0, 0, 0x84FF} /* East Asian ideograph */, + {0, 0, 0x8517} /* East Asian ideograph */, + {0, 0, 0x851A} /* East Asian ideograph */, + {0, 0, 0x84EE} /* East Asian ideograph */, + {0, 0, 0x852C} /* East Asian ideograph */, + {0, 0, 0x852D} /* East Asian ideograph */, + {0, 0, 0x8513} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8523} /* East Asian ideograph */, + {0, 0, 0x8521} /* East Asian ideograph */, + {0, 0, 0x8514} /* East Asian ideograph */, + {0, 0, 0x84EC} /* East Asian ideograph */, + {0, 0, 0x8525} /* East Asian ideograph */, + {0, 0, 0x8569} /* East Asian ideograph */, + {0, 0, 0x854A} /* East Asian ideograph */, + {0, 0, 0x8559} /* East Asian ideograph */, + {0, 0, 0x8548} /* East Asian ideograph */, + {0, 0, 0x8568} /* East Asian ideograph */, + {0, 0, 0x8543} /* East Asian ideograph */, + {0, 0, 0x856A} /* East Asian ideograph */, + {0, 0, 0x8549} /* East Asian ideograph */, + {0, 0, 0x8584} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page40 = { + 0, marc8_9page40_dir +}; +/* PAGE 39 */ +struct yaz_iconv_trie_dir marc8_9page39_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x81DA} /* East Asian ideograph */, + {0, 0, 0x81DF} /* East Asian ideograph */, + {0, 0, 0x81E3} /* East Asian ideograph */, + {0, 0, 0x81E5} /* East Asian ideograph */, + {0, 0, 0x81E8} /* East Asian ideograph */, + {0, 0, 0x81EA} /* East Asian ideograph */, + {0, 0, 0x81EC} /* East Asian ideograph */, + {0, 0, 0x81ED} /* East Asian ideograph */, + {0, 0, 0x81F3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x81FA} /* East Asian ideograph */, + {0, 0, 0x81FB} /* East Asian ideograph */, + {0, 0, 0x81FC} /* East Asian ideograph */, + {0, 0, 0x81FE} /* East Asian ideograph */, + {0, 0, 0x8200} /* East Asian ideograph */, + {0, 0, 0x8202} /* East Asian ideograph */, + {0, 0, 0x8205} /* East Asian ideograph */, + {0, 0, 0x8207} /* East Asian ideograph */, + {0, 0, 0x8208} /* East Asian ideograph */, + {0, 0, 0x8209} /* East Asian ideograph */, + {0, 0, 0x820A} /* East Asian ideograph */, + {0, 0, 0x820C} /* East Asian ideograph */, + {0, 0, 0x820D} /* East Asian ideograph */, + {0, 0, 0x8210} /* East Asian ideograph */, + {0, 0, 0x8212} /* East Asian ideograph */, + {0, 0, 0x8214} /* East Asian ideograph */, + {0, 0, 0x821B} /* East Asian ideograph */, + {0, 0, 0x821C} /* East Asian ideograph */, + {0, 0, 0x821E} /* East Asian ideograph */, + {0, 0, 0x821F} /* East Asian ideograph */, + {0, 0, 0x8222} /* East Asian ideograph */, + {0, 0, 0x822A} /* East Asian ideograph */, + {0, 0, 0x822B} /* East Asian ideograph */, + {0, 0, 0x822C} /* East Asian ideograph */, + {0, 0, 0x8228} /* East Asian ideograph */, + {0, 0, 0x8237} /* East Asian ideograph */, + {0, 0, 0x8235} /* East Asian ideograph */, + {0, 0, 0x8239} /* East Asian ideograph */, + {0, 0, 0x8236} /* East Asian ideograph */, + {0, 0, 0x8247} /* East Asian ideograph */, + {0, 0, 0x8258} /* East Asian ideograph */, + {0, 0, 0x8259} /* East Asian ideograph */, + {0, 0, 0x8266} /* East Asian ideograph */, + {0, 0, 0x826E} /* East Asian ideograph */, + {0, 0, 0x826F} /* East Asian ideograph */, + {0, 0, 0x8271} /* East Asian ideograph */, + {0, 0, 0x8272} /* East Asian ideograph */, + {0, 0, 0x827E} /* East Asian ideograph */, + {0, 0, 0x8292} /* East Asian ideograph */, + {0, 0, 0x828B} /* East Asian ideograph */, + {0, 0, 0x828D} /* East Asian ideograph */, + {0, 0, 0x82B3} /* East Asian ideograph */, + {0, 0, 0x829D} /* East Asian ideograph */, + {0, 0, 0x8299} /* East Asian ideograph */, + {0, 0, 0x82BD} /* East Asian ideograph */, + {0, 0, 0x82AD} /* East Asian ideograph */, + {0, 0, 0x82AC} /* East Asian ideograph */, + {0, 0, 0x82A5} /* East Asian ideograph */, + {0, 0, 0x829F} /* East Asian ideograph */, + {0, 0, 0x82BB} /* East Asian ideograph */, + {0, 0, 0x82B1} /* East Asian ideograph */, + {0, 0, 0x82B9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x82E7} /* East Asian ideograph */, + {0, 0, 0x8305} /* East Asian ideograph */, + {0, 0, 0x8309} /* East Asian ideograph */, + {0, 0, 0x82E3} /* East Asian ideograph */, + {0, 0, 0x82DB} /* East Asian ideograph */, + {0, 0, 0x82E6} /* East Asian ideograph */, + {0, 0, 0x8304} /* East Asian ideograph */, + {0, 0, 0x82E5} /* East Asian ideograph */, + {0, 0, 0x8302} /* East Asian ideograph */, + {0, 0, 0x82DC} /* East Asian ideograph */, + {0, 0, 0x82D7} /* East Asian ideograph */, + {0, 0, 0x82F1} /* East Asian ideograph */, + {0, 0, 0x8301} /* East Asian ideograph */, + {0, 0, 0x82D3} /* East Asian ideograph */, + {0, 0, 0x82D4} /* East Asian ideograph */, + {0, 0, 0x82D1} /* East Asian ideograph */, + {0, 0, 0x82DE} /* East Asian ideograph */, + {0, 0, 0x82DF} /* East Asian ideograph */, + {0, 0, 0x832B} /* East Asian ideograph */, + {0, 0, 0x8352} /* East Asian ideograph */, + {0, 0, 0x834A} /* East Asian ideograph */, + {0, 0, 0x8338} /* East Asian ideograph */, + {0, 0, 0x8354} /* East Asian ideograph */, + {0, 0, 0x8350} /* East Asian ideograph */, + {0, 0, 0x8349} /* East Asian ideograph */, + {0, 0, 0x8335} /* East Asian ideograph */, + {0, 0, 0x8334} /* East Asian ideograph */, + {0, 0, 0x8336} /* East Asian ideograph */, + {0, 0, 0x8331} /* East Asian ideograph */, + {0, 0, 0x8340} /* East Asian ideograph */, + {0, 0, 0x8317} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page39 = { + 0, marc8_9page39_dir +}; +/* PAGE 38 */ +struct yaz_iconv_trie_dir marc8_9page38_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x8085} /* East Asian ideograph */, + {0, 0, 0x8087} /* East Asian ideograph */, + {0, 0, 0x8089} /* East Asian ideograph */, + {0, 0, 0x808B} /* East Asian ideograph */, + {0, 0, 0x808C} /* East Asian ideograph */, + {0, 0, 0x8093} /* East Asian ideograph */, + {0, 0, 0x809D} /* East Asian ideograph */, + {0, 0, 0x8098} /* East Asian ideograph */, + {0, 0, 0x809B} /* East Asian ideograph */, + {0, 0, 0x809A} /* East Asian ideograph */, + {0, 0, 0x8096} /* East Asian ideograph */, + {0, 0, 0x80B2} /* East Asian ideograph */, + {0, 0, 0x80AA} /* East Asian ideograph */, + {0, 0, 0x80BA} /* East Asian ideograph */, + {0, 0, 0x80A5} /* East Asian ideograph */, + {0, 0, 0x80A2} /* East Asian ideograph */, + {0, 0, 0x80AB} /* East Asian ideograph */, + {0, 0, 0x80B1} /* East Asian ideograph */, + {0, 0, 0x80AF} /* East Asian ideograph */, + {0, 0, 0x80A1} /* East Asian ideograph */, + {0, 0, 0x80A9} /* East Asian ideograph */, + {0, 0, 0x80B4} /* East Asian ideograph */, + {0, 0, 0x80D6} /* East Asian ideograph */, + {0, 0, 0x80CC} /* East Asian ideograph */, + {0, 0, 0x80E5} /* East Asian ideograph */, + {0, 0, 0x80DA} /* East Asian ideograph */, + {0, 0, 0x80E1} /* East Asian ideograph */, + {0, 0, 0x80C3} /* East Asian ideograph */, + {0, 0, 0x80DB} /* East Asian ideograph */, + {0, 0, 0x80C4} /* East Asian ideograph */, + {0, 0, 0x80CE} /* East Asian ideograph */, + {0, 0, 0x80DE} /* East Asian ideograph */, + {0, 0, 0x80E4} /* East Asian ideograph */, + {0, 0, 0x80F0} /* East Asian ideograph */, + {0, 0, 0x8102} /* East Asian ideograph */, + {0, 0, 0x8105} /* East Asian ideograph */, + {0, 0, 0x80F1} /* East Asian ideograph */, + {0, 0, 0x80F4} /* East Asian ideograph */, + {0, 0, 0x80ED} /* East Asian ideograph */, + {0, 0, 0x80FD} /* East Asian ideograph */, + {0, 0, 0x8106} /* East Asian ideograph */, + {0, 0, 0x80F3} /* East Asian ideograph */, + {0, 0, 0x80F8} /* East Asian ideograph */, + {0, 0, 0x810A} /* East Asian ideograph */, + {0, 0, 0x8108} /* East Asian ideograph */, + {0, 0, 0x812B} /* East Asian ideograph */, + {0, 0, 0x812F} /* East Asian ideograph */, + {0, 0, 0x8116} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8129} /* East Asian ideograph */, + {0, 0, 0x8155} /* East Asian ideograph */, + {0, 0, 0x8154} /* East Asian ideograph */, + {0, 0, 0x814B} /* East Asian ideograph */, + {0, 0, 0x8151} /* East Asian ideograph */, + {0, 0, 0x8150} /* East Asian ideograph */, + {0, 0, 0x814E} /* East Asian ideograph */, + {0, 0, 0x8139} /* East Asian ideograph */, + {0, 0, 0x8146} /* East Asian ideograph */, + {0, 0, 0x813E} /* East Asian ideograph */, + {0, 0, 0x8171} /* East Asian ideograph */, + {0, 0, 0x8170} /* East Asian ideograph */, + {0, 0, 0x8178} /* East Asian ideograph */, + {0, 0, 0x8165} /* East Asian ideograph */, + {0, 0, 0x816E} /* East Asian ideograph */, + {0, 0, 0x8173} /* East Asian ideograph */, + {0, 0, 0x816B} /* East Asian ideograph */, + {0, 0, 0x8179} /* East Asian ideograph */, + {0, 0, 0x817A} /* East Asian ideograph */, + {0, 0, 0x8166} /* East Asian ideograph */, + {0, 0, 0x8180} /* East Asian ideograph */, + {0, 0, 0x818F} /* East Asian ideograph */, + {0, 0, 0x817F} /* East Asian ideograph */, + {0, 0, 0x818A} /* East Asian ideograph */, + {0, 0, 0x8188} /* East Asian ideograph */, + {0, 0, 0x819D} /* East Asian ideograph */, + {0, 0, 0x81A0} /* East Asian ideograph */, + {0, 0, 0x819B} /* East Asian ideograph */, + {0, 0, 0x819A} /* East Asian ideograph */, + {0, 0, 0x819C} /* East Asian ideograph */, + {0, 0, 0x81B3} /* East Asian ideograph */, + {0, 0, 0x81A9} /* East Asian ideograph */, + {0, 0, 0x81A8} /* East Asian ideograph */, + {0, 0, 0x81C6} /* East Asian ideograph */, + {0, 0, 0x81BA} /* East Asian ideograph */, + {0, 0, 0x81C3} /* East Asian ideograph */, + {0, 0, 0x81C0} /* East Asian ideograph */, + {0, 0, 0x81C2} /* East Asian ideograph */, + {0, 0, 0x81BF} /* East Asian ideograph */, + {0, 0, 0x81BD} /* East Asian ideograph */, + {0, 0, 0x81C9} /* East Asian ideograph */, + {0, 0, 0x81BE} /* East Asian ideograph */, + {0, 0, 0x81CD} /* East Asian ideograph */, + {0, 0, 0x81CF} /* East Asian ideograph */, + {0, 0, 0x81D8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page38 = { + 0, marc8_9page38_dir +}; +/* PAGE 37 */ +struct yaz_iconv_trie_dir marc8_9page37_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7E8C} /* East Asian ideograph */, + {0, 0, 0x7E93} /* East Asian ideograph */, + {0, 0, 0x7E96} /* East Asian ideograph */, + {0, 0, 0x7E9C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7F38} /* East Asian ideograph */, + {0, 0, 0x7F3A} /* East Asian ideograph */, + {0, 0, 0x7F3D} /* East Asian ideograph */, + {0, 0, 0x7F44} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7F50} /* East Asian ideograph */, + {0, 0, 0x7F55} /* East Asian ideograph */, + {0, 0, 0x7F54} /* East Asian ideograph */, + {0, 0, 0x7F5F} /* East Asian ideograph */, + {0, 0, 0x7F72} /* East Asian ideograph */, + {0, 0, 0x7F6E} /* East Asian ideograph */, + {0, 0, 0x7F69} /* East Asian ideograph */, + {0, 0, 0x7F6A} /* East Asian ideograph */, + {0, 0, 0x7F70} /* East Asian ideograph */, + {0, 0, 0x7F75} /* East Asian ideograph */, + {0, 0, 0x7F77} /* East Asian ideograph */, + {0, 0, 0x7F79} /* East Asian ideograph */, + {0, 0, 0x7F85} /* East Asian ideograph */, + {0, 0, 0x7F88} /* East Asian ideograph */, + {0, 0, 0x7F8A} /* East Asian ideograph */, + {0, 0, 0x7F8C} /* East Asian ideograph */, + {0, 0, 0x7F8E} /* East Asian ideograph */, + {0, 0, 0x7F94} /* East Asian ideograph */, + {0, 0, 0x7F9E} /* East Asian ideograph */, + {0, 0, 0x7F9A} /* East Asian ideograph */, + {0, 0, 0x5584} /* East Asian ideograph */, + {0, 0, 0x7FA8} /* East Asian ideograph */, + {0, 0, 0x7FA4} /* East Asian ideograph */, + {0, 0, 0x7FA9} /* East Asian ideograph */, + {0, 0, 0x7FAF} /* East Asian ideograph */, + {0, 0, 0x7FB2} /* East Asian ideograph */, + {0, 0, 0x7FB6} /* East Asian ideograph */, + {0, 0, 0x7FB8} /* East Asian ideograph */, + {0, 0, 0x7FB9} /* East Asian ideograph */, + {0, 0, 0x7FBD} /* East Asian ideograph */, + {0, 0, 0x7FBF} /* East Asian ideograph */, + {0, 0, 0x7FC5} /* East Asian ideograph */, + {0, 0, 0x7FC1} /* East Asian ideograph */, + {0, 0, 0x7FCC} /* East Asian ideograph */, + {0, 0, 0x7FD2} /* East Asian ideograph */, + {0, 0, 0x7FCE} /* East Asian ideograph (variant of EACC 4B524E) */, + {0, 0, 0x7FD4} /* East Asian ideograph */, + {0, 0, 0x7FD5} /* East Asian ideograph */, + {0, 0, 0x7FE0} /* East Asian ideograph */, + {0, 0, 0x7FE1} /* East Asian ideograph */, + {0, 0, 0x7FDF} /* East Asian ideograph */, + {0, 0, 0x7FE9} /* East Asian ideograph */, + {0, 0, 0x7FF0} /* East Asian ideograph */, + {0, 0, 0x7FF3} /* East Asian ideograph */, + {0, 0, 0x7FFC} /* East Asian ideograph */, + {0, 0, 0x7FF9} /* East Asian ideograph */, + {0, 0, 0x7FFB} /* East Asian ideograph */, + {0, 0, 0x7FF1} /* East Asian ideograph */, + {0, 0, 0x8000} /* East Asian ideograph */, + {0, 0, 0x8001} /* East Asian ideograph */, + {0, 0, 0x8003} /* East Asian ideograph */, + {0, 0, 0x8006} /* East Asian ideograph */, + {0, 0, 0x8005} /* East Asian ideograph */, + {0, 0, 0x800C} /* East Asian ideograph */, + {0, 0, 0x8010} /* East Asian ideograph */, + {0, 0, 0x800D} /* East Asian ideograph */, + {0, 0, 0x8012} /* East Asian ideograph */, + {0, 0, 0x8015} /* East Asian ideograph */, + {0, 0, 0x8018} /* East Asian ideograph */, + {0, 0, 0x8019} /* East Asian ideograph */, + {0, 0, 0x8017} /* East Asian ideograph */, + {0, 0, 0x801C} /* East Asian ideograph */, + {0, 0, 0x8033} /* East Asian ideograph */, + {0, 0, 0x8036} /* East Asian ideograph */, + {0, 0, 0x803F} /* East Asian ideograph */, + {0, 0, 0x803D} /* East Asian ideograph */, + {0, 0, 0x804A} /* East Asian ideograph */, + {0, 0, 0x8046} /* East Asian ideograph */, + {0, 0, 0x8056} /* East Asian ideograph */, + {0, 0, 0x8058} /* East Asian ideograph */, + {0, 0, 0x805E} /* East Asian ideograph */, + {0, 0, 0x805A} /* East Asian ideograph */, + {0, 0, 0x8071} /* East Asian ideograph */, + {0, 0, 0x8072} /* East Asian ideograph */, + {0, 0, 0x8073} /* East Asian ideograph */, + {0, 0, 0x8070} /* East Asian ideograph */, + {0, 0, 0x806F} /* East Asian ideograph */, + {0, 0, 0x8077} /* East Asian ideograph */, + {0, 0, 0x8076} /* East Asian ideograph */, + {0, 0, 0x807E} /* East Asian ideograph */, + {0, 0, 0x807D} /* East Asian ideograph */, + {0, 0, 0x807F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x8084} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page37 = { + 0, marc8_9page37_dir +}; +/* PAGE 36 */ +struct yaz_iconv_trie_dir marc8_9page36_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7D17} /* East Asian ideograph */, + {0, 0, 0x7D0D} /* East Asian ideograph (variant of EACC 455122) */, + {0, 0, 0x7D1A} /* East Asian ideograph */, + {0, 0, 0x7D19} /* East Asian ideograph */, + {0, 0, 0x7D1B} /* East Asian ideograph */, + {0, 0, 0x7D46} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7D3C} /* East Asian ideograph */, + {0, 0, 0x7D2E} /* East Asian ideograph */, + {0, 0, 0x7D39} /* East Asian ideograph */, + {0, 0, 0x7D44} /* East Asian ideograph */, + {0, 0, 0x7D30} /* East Asian ideograph */, + {0, 0, 0x7D33} /* East Asian ideograph */, + {0, 0, 0x7D2F} /* East Asian ideograph */, + {0, 0, 0x7D40} /* East Asian ideograph */, + {0, 0, 0x7D42} /* East Asian ideograph */, + {0, 0, 0x7D71} /* East Asian ideograph */, + {0, 0, 0x7D5E} /* East Asian ideograph */, + {0, 0, 0x7D68} /* East Asian ideograph */, + {0, 0, 0x7D50} /* East Asian ideograph */, + {0, 0, 0x7D2B} /* East Asian ideograph */, + {0, 0, 0x7D62} /* East Asian ideograph */, + {0, 0, 0x7D76} /* East Asian ideograph */, + {0, 0, 0x7D61} /* East Asian ideograph */, + {0, 0, 0x7D66} /* East Asian ideograph */, + {0, 0, 0x7D6E} /* East Asian ideograph */, + {0, 0, 0x7D72} /* East Asian ideograph */, + {0, 0, 0x7D93} /* East Asian ideograph */, + {0, 0, 0x7D91} /* East Asian ideograph */, + {0, 0, 0x7D79} /* East Asian ideograph */, + {0, 0, 0x7D8F} /* East Asian ideograph */, + {0, 0, 0x7D81} /* East Asian ideograph */, + {0, 0, 0x7D9C} /* East Asian ideograph */, + {0, 0, 0x7DBB} /* East Asian ideograph */, + {0, 0, 0x7DB0} /* East Asian ideograph */, + {0, 0, 0x7DCA} /* East Asian ideograph */, + {0, 0, 0x7DBE} /* East Asian ideograph */, + {0, 0, 0x7DB4} /* East Asian ideograph */, + {0, 0, 0x7DBA} /* East Asian ideograph */, + {0, 0, 0x7DB2} /* East Asian ideograph */, + {0, 0, 0x7DB1} /* East Asian ideograph */, + {0, 0, 0x7DBD} /* East Asian ideograph */, + {0, 0, 0x7DB5} /* East Asian ideograph */, + {0, 0, 0x7DA0} /* East Asian ideograph */, + {0, 0, 0x7DA2} /* East Asian ideograph */, + {0, 0, 0x7DAD} /* East Asian ideograph */, + {0, 0, 0x7DBF} /* East Asian ideograph */, + {0, 0, 0x7DB8} /* East Asian ideograph */, + {0, 0, 0x7DC7} /* East Asian ideograph */, + {0, 0, 0x7DE0} /* East Asian ideograph */, + {0, 0, 0x7DEF} /* East Asian ideograph */, + {0, 0, 0x7DF4} /* East Asian ideograph (variant of EACC 4B5154) */, + {0, 0, 0x7DD6} /* East Asian ideograph */, + {0, 0, 0x7DD8} /* East Asian ideograph */, + {0, 0, 0x7DEC} /* East Asian ideograph */, + {0, 0, 0x7DDD} /* East Asian ideograph */, + {0, 0, 0x7DE9} /* East Asian ideograph */, + {0, 0, 0x7DE3} /* East Asian ideograph */, + {0, 0, 0x7DE8} /* East Asian ideograph */, + {0, 0, 0x7DDA} /* East Asian ideograph */, + {0, 0, 0x7D9E} /* East Asian ideograph */, + {0, 0, 0x7DDE} /* East Asian ideograph */, + {0, 0, 0x7E11} /* East Asian ideograph */, + {0, 0, 0x7E0A} /* East Asian ideograph */, + {0, 0, 0x7E08} /* East Asian ideograph */, + {0, 0, 0x7E1B} /* East Asian ideograph */, + {0, 0, 0x7DFB} /* East Asian ideograph */, + {0, 0, 0x7E23} /* East Asian ideograph */, + {0, 0, 0x7E2E} /* East Asian ideograph */, + {0, 0, 0x7E3E} /* East Asian ideograph */, + {0, 0, 0x7E46} /* East Asian ideograph */, + {0, 0, 0x7E37} /* East Asian ideograph */, + {0, 0, 0x7E32} /* East Asian ideograph */, + {0, 0, 0x7E43} /* East Asian ideograph */, + {0, 0, 0x7E41} /* East Asian ideograph */, + {0, 0, 0x7E2B} /* East Asian ideograph */, + {0, 0, 0x7E3D} /* East Asian ideograph */, + {0, 0, 0x7E31} /* East Asian ideograph */, + {0, 0, 0x7E45} /* East Asian ideograph */, + {0, 0, 0x7E55} /* East Asian ideograph */, + {0, 0, 0x7E54} /* East Asian ideograph */, + {0, 0, 0x7E61} /* East Asian ideograph */, + {0, 0, 0x7E5E} /* East Asian ideograph */, + {0, 0, 0x7E5A} /* East Asian ideograph */, + {0, 0, 0x7E6B} /* East Asian ideograph */, + {0, 0, 0x7E69} /* East Asian ideograph */, + {0, 0, 0x7E6D} /* East Asian ideograph */, + {0, 0, 0x7E79} /* East Asian ideograph */, + {0, 0, 0x7E6A} /* East Asian ideograph */, + {0, 0, 0x8FAE} /* East Asian ideograph */, + {0, 0, 0x7E7D} /* East Asian ideograph */, + {0, 0, 0x7E82} /* East Asian ideograph */, + {0, 0, 0x7E7C} /* East Asian ideograph */, + {0, 0, 0x7E8F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page36 = { + 0, marc8_9page36_dir +}; +/* PAGE 35 */ +struct yaz_iconv_trie_dir marc8_9page35_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7B4D} /* East Asian ideograph */, + {0, 0, 0x7B4F} /* East Asian ideograph */, + {0, 0, 0x7B54} /* East Asian ideograph */, + {0, 0, 0x7B60} /* East Asian ideograph */, + {0, 0, 0x7B77} /* East Asian ideograph */, + {0, 0, 0x7B75} /* East Asian ideograph */, + {0, 0, 0x7BA1} /* East Asian ideograph */, + {0, 0, 0x7B94} /* East Asian ideograph */, + {0, 0, 0x7B95} /* East Asian ideograph */, + {0, 0, 0x7B9D} /* East Asian ideograph */, + {0, 0, 0x7B8B} /* East Asian ideograph */, + {0, 0, 0x7B97} /* East Asian ideograph */, + {0, 0, 0x7B8F} /* East Asian ideograph */, + {0, 0, 0x7BC7} /* East Asian ideograph */, + {0, 0, 0x7BAD} /* East Asian ideograph */, + {0, 0, 0x7BC4} /* East Asian ideograph */, + {0, 0, 0x7BB1} /* East Asian ideograph */, + {0, 0, 0x7BB4} /* East Asian ideograph */, + {0, 0, 0x7BC0} /* East Asian ideograph */, + {0, 0, 0x7BC6} /* East Asian ideograph */, + {0, 0, 0x7BC1} /* East Asian ideograph */, + {0, 0, 0x7C11} /* East Asian ideograph */, + {0, 0, 0x7BD9} /* East Asian ideograph */, + {0, 0, 0x7BDB} /* East Asian ideograph */, + {0, 0, 0x7BE4} /* East Asian ideograph */, + {0, 0, 0x7BC9} /* East Asian ideograph */, + {0, 0, 0x7BE1} /* East Asian ideograph */, + {0, 0, 0x7BE9} /* East Asian ideograph */, + {0, 0, 0x7C07} /* East Asian ideograph */, + {0, 0, 0x7C0D} /* East Asian ideograph */, + {0, 0, 0x7BFE} /* East Asian ideograph */, + {0, 0, 0x7BF7} /* East Asian ideograph */, + {0, 0, 0x7C21} /* East Asian ideograph */, + {0, 0, 0x7C2B} /* East Asian ideograph */, + {0, 0, 0x7C2A} /* East Asian ideograph */, + {0, 0, 0x7C27} /* East Asian ideograph */, + {0, 0, 0x7C1E} /* East Asian ideograph */, + {0, 0, 0x7C23} /* East Asian ideograph */, + {0, 0, 0x7C3F} /* East Asian ideograph */, + {0, 0, 0x7C3E} /* East Asian ideograph */, + {0, 0, 0x7C38} /* East Asian ideograph */, + {0, 0, 0x7C37} /* East Asian ideograph */, + {0, 0, 0x7C3D} /* East Asian ideograph */, + {0, 0, 0x7C43} /* East Asian ideograph */, + {0, 0, 0x7C4C} /* East Asian ideograph */, + {0, 0, 0x7C4D} /* East Asian ideograph */, + {0, 0, 0x7C50} /* East Asian ideograph */, + {0, 0, 0x7C60} /* East Asian ideograph */, + {0, 0, 0x7C5F} /* East Asian ideograph */, + {0, 0, 0x7C64} /* East Asian ideograph */, + {0, 0, 0x7C6C} /* East Asian ideograph */, + {0, 0, 0x7C6E} /* East Asian ideograph */, + {0, 0, 0x7C72} /* East Asian ideograph */, + {0, 0, 0x7C73} /* East Asian ideograph */, + {0, 0, 0x7C89} /* East Asian ideograph */, + {0, 0, 0x7C92} /* East Asian ideograph */, + {0, 0, 0x7C97} /* East Asian ideograph */, + {0, 0, 0x7C9F} /* East Asian ideograph */, + {0, 0, 0x7CA5} /* East Asian ideograph */, + {0, 0, 0x7CA4} /* East Asian ideograph */, + {0, 0, 0x7CB1} /* East Asian ideograph */, + {0, 0, 0x7CB3} /* East Asian ideograph */, + {0, 0, 0x7CBD} /* East Asian ideograph */, + {0, 0, 0x7CB9} /* East Asian ideograph */, + {0, 0, 0x7CBE} /* East Asian ideograph (variant of EACC 4B5061) */, + {0, 0, 0x7CCA} /* East Asian ideograph */, + {0, 0, 0x7CD6} /* East Asian ideograph */, + {0, 0, 0x7CD5} /* East Asian ideograph */, + {0, 0, 0x7CE0} /* East Asian ideograph */, + {0, 0, 0x7CDC} /* East Asian ideograph */, + {0, 0, 0x7CDF} /* East Asian ideograph */, + {0, 0, 0x7CDE} /* East Asian ideograph */, + {0, 0, 0x7CE2} /* East Asian ideograph */, + {0, 0, 0x7CD9} /* East Asian ideograph */, + {0, 0, 0x7CE7} /* East Asian ideograph */, + {0, 0, 0x7CEF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7CFB} /* East Asian ideograph */, + {0, 0, 0x7CFE} /* East Asian ideograph */, + {0, 0, 0x7D00} /* East Asian ideograph */, + {0, 0, 0x7D02} /* East Asian ideograph */, + {0, 0, 0x7D05} /* East Asian ideograph */, + {0, 0, 0x7D09} /* East Asian ideograph */, + {0, 0, 0x7D04} /* East Asian ideograph */, + {0, 0, 0x7D07} /* East Asian ideograph */, + {0, 0, 0x7D21} /* East Asian ideograph */, + {0, 0, 0x7D0B} /* East Asian ideograph */, + {0, 0, 0x7D0A} /* East Asian ideograph */, + {0, 0, 0x7D20} /* East Asian ideograph */, + {0, 0, 0x7D1C} /* East Asian ideograph */, + {0, 0, 0x7D22} /* East Asian ideograph */, + {0, 0, 0x7D15} /* East Asian ideograph */, + {0, 0, 0x7D14} /* East Asian ideograph */, + {0, 0, 0x7D10} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page35 = { + 0, marc8_9page35_dir +}; +/* PAGE 34 */ +struct yaz_iconv_trie_dir marc8_9page34_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x79BD} /* East Asian ideograph */, + {0, 0, 0x842C} /* East Asian ideograph */, + {0, 0, 0x79BE} /* East Asian ideograph */, + {0, 0, 0x79C0} /* East Asian ideograph */, + {0, 0, 0x79C1} /* East Asian ideograph */, + {0, 0, 0x79BF} /* East Asian ideograph */, + {0, 0, 0x79C9} /* East Asian ideograph */, + {0, 0, 0x79D1} /* East Asian ideograph */, + {0, 0, 0x79CB} /* East Asian ideograph */, + {0, 0, 0x79D2} /* East Asian ideograph */, + {0, 0, 0x79E4} /* East Asian ideograph */, + {0, 0, 0x79E6} /* East Asian ideograph */, + {0, 0, 0x79E3} /* East Asian ideograph */, + {0, 0, 0x79DF} /* East Asian ideograph */, + {0, 0, 0x79E7} /* East Asian ideograph */, + {0, 0, 0x79E9} /* East Asian ideograph */, + {0, 0, 0x79FB} /* East Asian ideograph */, + {0, 0, 0x7A05} /* East Asian ideograph */, + {0, 0, 0x7A0D} /* East Asian ideograph */, + {0, 0, 0x7A08} /* East Asian ideograph */, + {0, 0, 0x7A0B} /* East Asian ideograph */, + {0, 0, 0x7A00} /* East Asian ideograph */, + {0, 0, 0x7A1F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7A20} /* East Asian ideograph */, + {0, 0, 0x7A1A} /* East Asian ideograph */, + {0, 0, 0x7A14} /* East Asian ideograph */, + {0, 0, 0x7A31} /* East Asian ideograph */, + {0, 0, 0x7A2E} /* East Asian ideograph */, + {0, 0, 0x7A3F} /* East Asian ideograph */, + {0, 0, 0x7A3C} /* East Asian ideograph */, + {0, 0, 0x7A40} /* East Asian ideograph */, + {0, 0, 0x7A3D} /* East Asian ideograph */, + {0, 0, 0x7A37} /* East Asian ideograph */, + {0, 0, 0x7A3B} /* East Asian ideograph */, + {0, 0, 0x7A4D} /* East Asian ideograph */, + {0, 0, 0x7A4E} /* East Asian ideograph */, + {0, 0, 0x7A4C} /* East Asian ideograph */, + {0, 0, 0x7A46} /* East Asian ideograph */, + {0, 0, 0x7A57} /* East Asian ideograph */, + {0, 0, 0x7A61} /* East Asian ideograph */, + {0, 0, 0x7A62} /* East Asian ideograph */, + {0, 0, 0x7A6B} /* East Asian ideograph */, + {0, 0, 0x7A69} /* East Asian ideograph */, + {0, 0, 0x7A74} /* East Asian ideograph */, + {0, 0, 0x7A76} /* East Asian ideograph */, + {0, 0, 0x7A79} /* East Asian ideograph */, + {0, 0, 0x7A7A} /* East Asian ideograph */, + {0, 0, 0x7A7F} /* East Asian ideograph */, + {0, 0, 0x7A81} /* East Asian ideograph */, + {0, 0, 0x7A84} /* East Asian ideograph */, + {0, 0, 0x7A88} /* East Asian ideograph */, + {0, 0, 0x7A92} /* East Asian ideograph */, + {0, 0, 0x7A95} /* East Asian ideograph */, + {0, 0, 0x7A98} /* East Asian ideograph */, + {0, 0, 0x7A96} /* East Asian ideograph */, + {0, 0, 0x7A97} /* East Asian ideograph */, + {0, 0, 0x7A9F} /* East Asian ideograph */, + {0, 0, 0x7AA0} /* East Asian ideograph */, + {0, 0, 0x7AAA} /* East Asian ideograph */, + {0, 0, 0x7AA9} /* East Asian ideograph */, + {0, 0, 0x7AAF} /* East Asian ideograph */, + {0, 0, 0x7AAE} /* East Asian ideograph */, + {0, 0, 0x7ABA} /* East Asian ideograph */, + {0, 0, 0x7AC5} /* East Asian ideograph */, + {0, 0, 0x7AC4} /* East Asian ideograph */, + {0, 0, 0x7AC7} /* East Asian ideograph */, + {0, 0, 0x7ACA} /* East Asian ideograph */, + {0, 0, 0x7ACB} /* East Asian ideograph */, + {0, 0, 0x7AD9} /* East Asian ideograph */, + {0, 0, 0x7AE5} /* East Asian ideograph */, + {0, 0, 0x7AE3} /* East Asian ideograph */, + {0, 0, 0x7AED} /* East Asian ideograph */, + {0, 0, 0x7AEF} /* East Asian ideograph */, + {0, 0, 0x7AF6} /* East Asian ideograph */, + {0, 0, 0x7AF9} /* East Asian ideograph */, + {0, 0, 0x7AFA} /* East Asian ideograph */, + {0, 0, 0x7AFF} /* East Asian ideograph */, + {0, 0, 0x7AFD} /* East Asian ideograph */, + {0, 0, 0x7B06} /* East Asian ideograph */, + {0, 0, 0x7B11} /* East Asian ideograph */, + {0, 0, 0x7B20} /* East Asian ideograph */, + {0, 0, 0x7B2C} /* East Asian ideograph */, + {0, 0, 0x7B28} /* East Asian ideograph */, + {0, 0, 0x7B1B} /* East Asian ideograph */, + {0, 0, 0x7B1E} /* East Asian ideograph */, + {0, 0, 0x7B19} /* East Asian ideograph */, + {0, 0, 0x7B26} /* East Asian ideograph */, + {0, 0, 0x7B46} /* East Asian ideograph */, + {0, 0, 0x7B49} /* East Asian ideograph */, + {0, 0, 0x7B50} /* East Asian ideograph */, + {0, 0, 0x7B56} /* East Asian ideograph */, + {0, 0, 0x7B52} /* East Asian ideograph */, + {0, 0, 0x7B4B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page34 = { + 0, marc8_9page34_dir +}; +/* PAGE 33 */ +struct yaz_iconv_trie_dir marc8_9page33_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x77E2} /* East Asian ideograph */, + {0, 0, 0x77E3} /* East Asian ideograph */, + {0, 0, 0x77E5} /* East Asian ideograph */, + {0, 0, 0x77E9} /* East Asian ideograph */, + {0, 0, 0x77ED} /* East Asian ideograph */, + {0, 0, 0x77EE} /* East Asian ideograph */, + {0, 0, 0x77EF} /* East Asian ideograph */, + {0, 0, 0x77F3} /* East Asian ideograph */, + {0, 0, 0x77FD} /* East Asian ideograph */, + {0, 0, 0x7802} /* East Asian ideograph */, + {0, 0, 0x780D} /* East Asian ideograph */, + {0, 0, 0x780C} /* East Asian ideograph */, + {0, 0, 0x65AB} /* East Asian ideograph */, + {0, 0, 0x7830} /* East Asian ideograph */, + {0, 0, 0x781D} /* East Asian ideograph */, + {0, 0, 0x7834} /* East Asian ideograph */, + {0, 0, 0x7838} /* East Asian ideograph */, + {0, 0, 0x7837} /* East Asian ideograph */, + {0, 0, 0x7827} /* East Asian ideograph */, + {0, 0, 0x782D} /* East Asian ideograph */, + {0, 0, 0x7825} /* East Asian ideograph */, + {0, 0, 0x786B} /* East Asian ideograph */, + {0, 0, 0x784F} /* East Asian ideograph */, + {0, 0, 0x7843} /* East Asian ideograph */, + {0, 0, 0x786C} /* East Asian ideograph */, + {0, 0, 0x785D} /* East Asian ideograph */, + {0, 0, 0x786F} /* East Asian ideograph */, + {0, 0, 0x78B0} /* East Asian ideograph */, + {0, 0, 0x7897} /* East Asian ideograph */, + {0, 0, 0x788E} /* East Asian ideograph */, + {0, 0, 0x7898} /* East Asian ideograph */, + {0, 0, 0x7889} /* East Asian ideograph */, + {0, 0, 0x7891} /* East Asian ideograph */, + {0, 0, 0x787C} /* East Asian ideograph */, + {0, 0, 0x788C} /* East Asian ideograph */, + {0, 0, 0x78A7} /* East Asian ideograph */, + {0, 0, 0x78A9} /* East Asian ideograph */, + {0, 0, 0x789F} /* East Asian ideograph */, + {0, 0, 0x78B3} /* East Asian ideograph */, + {0, 0, 0x78CB} /* East Asian ideograph */, + {0, 0, 0x78BA} /* East Asian ideograph */, + {0, 0, 0x78C1} /* East Asian ideograph */, + {0, 0, 0x78C5} /* East Asian ideograph */, + {0, 0, 0x78BC} /* East Asian ideograph */, + {0, 0, 0x78D5} /* East Asian ideograph */, + {0, 0, 0x78BE} /* East Asian ideograph */, + {0, 0, 0x78CA} /* East Asian ideograph */, + {0, 0, 0x78D0} /* East Asian ideograph */, + {0, 0, 0x78E8} /* East Asian ideograph */, + {0, 0, 0x78EC} /* East Asian ideograph */, + {0, 0, 0x78DA} /* East Asian ideograph */, + {0, 0, 0x78F7} /* East Asian ideograph */, + {0, 0, 0x78F4} /* East Asian ideograph */, + {0, 0, 0x78FA} /* East Asian ideograph (variant of EACC 4B4E56) */, + {0, 0, 0x7901} /* East Asian ideograph */, + {0, 0, 0x78EF} /* East Asian ideograph */, + {0, 0, 0x790E} /* East Asian ideograph */, + {0, 0, 0x7919} /* East Asian ideograph */, + {0, 0, 0x7926} /* East Asian ideograph */, + {0, 0, 0x792C} /* East Asian ideograph */, + {0, 0, 0x792A} /* East Asian ideograph */, + {0, 0, 0x792B} /* East Asian ideograph */, + {0, 0, 0x793A} /* East Asian ideograph */, + {0, 0, 0x7940} /* East Asian ideograph */, + {0, 0, 0x793E} /* East Asian ideograph */, + {0, 0, 0x7941} /* East Asian ideograph */, + {0, 0, 0x7945} /* East Asian ideograph */, + {0, 0, 0x7949} /* East Asian ideograph */, + {0, 0, 0x7948} /* East Asian ideograph */, + {0, 0, 0x7947} /* East Asian ideograph */, + {0, 0, 0x7955} /* East Asian ideograph */, + {0, 0, 0x7960} /* East Asian ideograph */, + {0, 0, 0x7950} /* East Asian ideograph */, + {0, 0, 0x7956} /* East Asian ideograph */, + {0, 0, 0x795E} /* East Asian ideograph */, + {0, 0, 0x795D} /* East Asian ideograph */, + {0, 0, 0x795F} /* East Asian ideograph */, + {0, 0, 0x795A} /* East Asian ideograph */, + {0, 0, 0x7957} /* East Asian ideograph */, + {0, 0, 0x7965} /* East Asian ideograph */, + {0, 0, 0x7968} /* East Asian ideograph */, + {0, 0, 0x796D} /* East Asian ideograph */, + {0, 0, 0x797A} /* East Asian ideograph */, + {0, 0, 0x7981} /* East Asian ideograph */, + {0, 0, 0x797F} /* East Asian ideograph */, + {0, 0, 0x798F} /* East Asian ideograph */, + {0, 0, 0x798D} /* East Asian ideograph */, + {0, 0, 0x798E} /* East Asian ideograph */, + {0, 0, 0x79A6} /* East Asian ideograph */, + {0, 0, 0x79A7} /* East Asian ideograph */, + {0, 0, 0x79AA} /* East Asian ideograph */, + {0, 0, 0x79AE} /* East Asian ideograph */, + {0, 0, 0x79B1} /* East Asian ideograph */, + {0, 0, 0x79B9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page33 = { + 0, marc8_9page33_dir +}; +/* PAGE 32 */ +struct yaz_iconv_trie_dir marc8_9page32_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x7682} /* East Asian ideograph */, + {0, 0, 0x7684} /* East Asian ideograph */, + {0, 0, 0x7687} /* East Asian ideograph */, + {0, 0, 0x7686} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x768E} /* East Asian ideograph */, + {0, 0, 0x7696} /* East Asian ideograph */, + {0, 0, 0x7693} /* East Asian ideograph */, + {0, 0, 0x769A} /* East Asian ideograph */, + {0, 0, 0x76AE} /* East Asian ideograph */, + {0, 0, 0x76B0} /* East Asian ideograph */, + {0, 0, 0x76B4} /* East Asian ideograph */, + {0, 0, 0x76BA} /* East Asian ideograph */, + {0, 0, 0x76BF} /* East Asian ideograph */, + {0, 0, 0x76C2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x76C8} /* East Asian ideograph */, + {0, 0, 0x76C6} /* East Asian ideograph */, + {0, 0, 0x76CA} /* East Asian ideograph */, + {0, 0, 0x76CD} /* East Asian ideograph */, + {0, 0, 0x76CE} /* East Asian ideograph */, + {0, 0, 0x76D4} /* East Asian ideograph */, + {0, 0, 0x76D2} /* East Asian ideograph */, + {0, 0, 0x76DC} /* East Asian ideograph */, + {0, 0, 0x76DB} /* East Asian ideograph */, + {0, 0, 0x76DE} /* East Asian ideograph */, + {0, 0, 0x76DF} /* East Asian ideograph */, + {0, 0, 0x76E1} /* East Asian ideograph */, + {0, 0, 0x76E3} /* East Asian ideograph */, + {0, 0, 0x76E4} /* East Asian ideograph */, + {0, 0, 0x76E7} /* East Asian ideograph */, + {0, 0, 0x76E5} /* East Asian ideograph */, + {0, 0, 0x76EA} /* East Asian ideograph */, + {0, 0, 0x76EE} /* East Asian ideograph */, + {0, 0, 0x76EF} /* East Asian ideograph */, + {0, 0, 0x76F2} /* East Asian ideograph */, + {0, 0, 0x76F4} /* East Asian ideograph */, + {0, 0, 0x7709} /* East Asian ideograph */, + {0, 0, 0x76F9} /* East Asian ideograph */, + {0, 0, 0x76F8} /* East Asian ideograph */, + {0, 0, 0x7701} /* East Asian ideograph */, + {0, 0, 0x770B} /* East Asian ideograph */, + {0, 0, 0x76FC} /* East Asian ideograph */, + {0, 0, 0x76FE} /* East Asian ideograph */, + {0, 0, 0x7729} /* East Asian ideograph */, + {0, 0, 0x7720} /* East Asian ideograph */, + {0, 0, 0x771E} /* East Asian ideograph */, + {0, 0, 0x7728} /* East Asian ideograph */, + {0, 0, 0x7737} /* East Asian ideograph */, + {0, 0, 0x773C} /* East Asian ideograph */, + {0, 0, 0x7736} /* East Asian ideograph */, + {0, 0, 0x7738} /* East Asian ideograph */, + {0, 0, 0x773A} /* East Asian ideograph */, + {0, 0, 0x773E} /* East Asian ideograph */, + {0, 0, 0x774F} /* East Asian ideograph */, + {0, 0, 0x776B} /* East Asian ideograph */, + {0, 0, 0x775B} /* East Asian ideograph */, + {0, 0, 0x776A} /* East Asian ideograph */, + {0, 0, 0x7766} /* East Asian ideograph */, + {0, 0, 0x7779} /* East Asian ideograph */, + {0, 0, 0x775E} /* East Asian ideograph */, + {0, 0, 0x7763} /* East Asian ideograph */, + {0, 0, 0x775C} /* East Asian ideograph */, + {0, 0, 0x776C} /* East Asian ideograph */, + {0, 0, 0x7768} /* East Asian ideograph */, + {0, 0, 0x7765} /* East Asian ideograph */, + {0, 0, 0x777D} /* East Asian ideograph */, + {0, 0, 0x7771} /* East Asian ideograph */, + {0, 0, 0x777F} /* East Asian ideograph */, + {0, 0, 0x7784} /* East Asian ideograph */, + {0, 0, 0x7761} /* East Asian ideograph */, + {0, 0, 0x7787} /* East Asian ideograph */, + {0, 0, 0x778E} /* East Asian ideograph */, + {0, 0, 0x778C} /* East Asian ideograph */, + {0, 0, 0x7791} /* East Asian ideograph */, + {0, 0, 0x779F} /* East Asian ideograph */, + {0, 0, 0x779E} /* East Asian ideograph */, + {0, 0, 0x77A0} /* East Asian ideograph */, + {0, 0, 0x77A5} /* East Asian ideograph */, + {0, 0, 0x77B3} /* East Asian ideograph */, + {0, 0, 0x77AA} /* East Asian ideograph */, + {0, 0, 0x77B0} /* East Asian ideograph */, + {0, 0, 0x77AD} /* East Asian ideograph */, + {0, 0, 0x77AC} /* East Asian ideograph */, + {0, 0, 0x77A7} /* East Asian ideograph */, + {0, 0, 0x77BD} /* East Asian ideograph */, + {0, 0, 0x77BF} /* East Asian ideograph */, + {0, 0, 0x77BB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x77D3} /* East Asian ideograph */, + {0, 0, 0x77D7} /* East Asian ideograph */, + {0, 0, 0x77DA} /* East Asian ideograph */, + {0, 0, 0x77DB} /* East Asian ideograph */, + {0, 0, 0x77DC} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page32 = { + 0, marc8_9page32_dir +}; +/* PAGE 31 */ +struct yaz_iconv_trie_dir marc8_9page31_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x752C} /* East Asian ideograph */, + {0, 0, 0x752B} /* East Asian ideograph */, + {0, 0, 0x752D} /* East Asian ideograph */, + {0, 0, 0x7530} /* East Asian ideograph */, + {0, 0, 0x7532} /* East Asian ideograph */, + {0, 0, 0x7531} /* East Asian ideograph */, + {0, 0, 0x7533} /* East Asian ideograph */, + {0, 0, 0x7537} /* East Asian ideograph */, + {0, 0, 0x7538} /* East Asian ideograph */, + {0, 0, 0x753D} /* East Asian ideograph */, + {0, 0, 0x754F} /* East Asian ideograph */, + {0, 0, 0x754C} /* East Asian ideograph */, + {0, 0, 0x755D} /* East Asian ideograph */, + {0, 0, 0x755C} /* East Asian ideograph */, + {0, 0, 0x7554} /* East Asian ideograph */, + {0, 0, 0x755A} /* East Asian ideograph */, + {0, 0, 0x7559} /* East Asian ideograph */, + {0, 0, 0x7566} /* East Asian ideograph */, + {0, 0, 0x7562} /* East Asian ideograph */, + {0, 0, 0x7570} /* East Asian ideograph */, + {0, 0, 0x7565} /* East Asian ideograph */, + {0, 0, 0x756B} /* East Asian ideograph */, + {0, 0, 0x756A} /* East Asian ideograph */, + {0, 0, 0x7578} /* East Asian ideograph */, + {0, 0, 0x7576} /* East Asian ideograph */, + {0, 0, 0x7586} /* East Asian ideograph */, + {0, 0, 0x7587} /* East Asian ideograph */, + {0, 0, 0x758A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x758F} /* East Asian ideograph */, + {0, 0, 0x7591} /* East Asian ideograph */, + {0, 0, 0x759D} /* East Asian ideograph */, + {0, 0, 0x7599} /* East Asian ideograph */, + {0, 0, 0x759A} /* East Asian ideograph */, + {0, 0, 0x75A4} /* East Asian ideograph */, + {0, 0, 0x75AB} /* East Asian ideograph */, + {0, 0, 0x75A5} /* East Asian ideograph */, + {0, 0, 0x75C7} /* East Asian ideograph */, + {0, 0, 0x75C5} /* East Asian ideograph */, + {0, 0, 0x75B3} /* East Asian ideograph */, + {0, 0, 0x75B2} /* East Asian ideograph */, + {0, 0, 0x75BD} /* East Asian ideograph */, + {0, 0, 0x75BE} /* East Asian ideograph */, + {0, 0, 0x75BC} /* East Asian ideograph */, + {0, 0, 0x75B9} /* East Asian ideograph */, + {0, 0, 0x75D5} /* East Asian ideograph */, + {0, 0, 0x75D4} /* East Asian ideograph */, + {0, 0, 0x75B5} /* East Asian ideograph */, + {0, 0, 0x75CA} /* East Asian ideograph (variant of EACC 4B4C51) */, + {0, 0, 0x75DB} /* East Asian ideograph */, + {0, 0, 0x75E3} /* East Asian ideograph */, + {0, 0, 0x75D8} /* East Asian ideograph */, + {0, 0, 0x75DE} /* East Asian ideograph */, + {0, 0, 0x75D9} /* East Asian ideograph */, + {0, 0, 0x75E2} /* East Asian ideograph */, + {0, 0, 0x7601} /* East Asian ideograph */, + {0, 0, 0x7600} /* East Asian ideograph */, + {0, 0, 0x75F0} /* East Asian ideograph */, + {0, 0, 0x75F2} /* East Asian ideograph */, + {0, 0, 0x75F1} /* East Asian ideograph */, + {0, 0, 0x75F4} /* East Asian ideograph */, + {0, 0, 0x75FF} /* East Asian ideograph */, + {0, 0, 0x75FA} /* East Asian ideograph */, + {0, 0, 0x760D} /* East Asian ideograph */, + {0, 0, 0x7627} /* East Asian ideograph */, + {0, 0, 0x7613} /* East Asian ideograph */, + {0, 0, 0x760B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7620} /* East Asian ideograph */, + {0, 0, 0x7629} /* East Asian ideograph */, + {0, 0, 0x761F} /* East Asian ideograph */, + {0, 0, 0x7624} /* East Asian ideograph */, + {0, 0, 0x7626} /* East Asian ideograph */, + {0, 0, 0x7621} /* East Asian ideograph */, + {0, 0, 0x7634} /* East Asian ideograph */, + {0, 0, 0x7638} /* East Asian ideograph */, + {0, 0, 0x7646} /* East Asian ideograph */, + {0, 0, 0x7642} /* East Asian ideograph */, + {0, 0, 0x764C} /* East Asian ideograph */, + {0, 0, 0x7656} /* East Asian ideograph */, + {0, 0, 0x7658} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7662} /* East Asian ideograph */, + {0, 0, 0x7665} /* East Asian ideograph */, + {0, 0, 0x7669} /* East Asian ideograph */, + {0, 0, 0x766E} /* East Asian ideograph */, + {0, 0, 0x766C} /* East Asian ideograph */, + {0, 0, 0x7671} /* East Asian ideograph */, + {0, 0, 0x7672} /* East Asian ideograph (variant of EACC 4B4C79) */, + {0, 0, 0x7678} /* East Asian ideograph */, + {0, 0, 0x767C} /* East Asian ideograph */, + {0, 0, 0x767B} /* East Asian ideograph */, + {0, 0, 0x767D} /* East Asian ideograph */, + {0, 0, 0x767E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page31 = { + 0, marc8_9page31_dir +}; +/* PAGE 30 */ +struct yaz_iconv_trie_dir marc8_9page30_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x733F} /* East Asian ideograph */, + {0, 0, 0x733E} /* East Asian ideograph */, + {0, 0, 0x7345} /* East Asian ideograph */, + {0, 0, 0x7350} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7357} /* East Asian ideograph */, + {0, 0, 0x7368} /* East Asian ideograph */, + {0, 0, 0x7370} /* East Asian ideograph */, + {0, 0, 0x7372} /* East Asian ideograph */, + {0, 0, 0x7377} /* East Asian ideograph */, + {0, 0, 0x7378} /* East Asian ideograph */, + {0, 0, 0x7375} /* East Asian ideograph */, + {0, 0, 0x737A} /* East Asian ideograph */, + {0, 0, 0x737B} /* East Asian ideograph */, + {0, 0, 0x7380} /* East Asian ideograph */, + {0, 0, 0x7384} /* East Asian ideograph */, + {0, 0, 0x7387} /* East Asian ideograph */, + {0, 0, 0x7389} /* East Asian ideograph */, + {0, 0, 0x738B} /* East Asian ideograph */, + {0, 0, 0x7396} /* East Asian ideograph */, + {0, 0, 0x739F} /* East Asian ideograph */, + {0, 0, 0x73A8} /* East Asian ideograph */, + {0, 0, 0x73A9} /* East Asian ideograph */, + {0, 0, 0x73AB} /* East Asian ideograph */, + {0, 0, 0x73BB} /* East Asian ideograph */, + {0, 0, 0x73CA} /* East Asian ideograph */, + {0, 0, 0x73B7} /* East Asian ideograph */, + {0, 0, 0x73C0} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x73B2} /* East Asian ideograph */, + {0, 0, 0x73CD} /* East Asian ideograph */, + {0, 0, 0x73ED} /* East Asian ideograph */, + {0, 0, 0x73EE} /* East Asian ideograph */, + {0, 0, 0x73E0} /* East Asian ideograph */, + {0, 0, 0x7405} /* East Asian ideograph */, + {0, 0, 0x7409} /* East Asian ideograph */, + {0, 0, 0x7403} /* East Asian ideograph */, + {0, 0, 0x740A} /* East Asian ideograph */, + {0, 0, 0x73FE} /* East Asian ideograph */, + {0, 0, 0x7406} /* East Asian ideograph */, + {0, 0, 0x740D} /* East Asian ideograph */, + {0, 0, 0x743A} /* East Asian ideograph */, + {0, 0, 0x7435} /* East Asian ideograph */, + {0, 0, 0x7436} /* East Asian ideograph */, + {0, 0, 0x7434} /* East Asian ideograph */, + {0, 0, 0x742A} /* East Asian ideograph */, + {0, 0, 0x7433} /* East Asian ideograph */, + {0, 0, 0x7422} /* East Asian ideograph */, + {0, 0, 0x7425} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7455} /* East Asian ideograph */, + {0, 0, 0x745F} /* East Asian ideograph */, + {0, 0, 0x745A} /* East Asian ideograph */, + {0, 0, 0x7441} /* East Asian ideograph */, + {0, 0, 0x743F} /* East Asian ideograph */, + {0, 0, 0x745B} /* East Asian ideograph */, + {0, 0, 0x745E} /* East Asian ideograph */, + {0, 0, 0x745C} /* East Asian ideograph */, + {0, 0, 0x7459} /* East Asian ideograph */, + {0, 0, 0x7483} /* East Asian ideograph */, + {0, 0, 0x7469} /* East Asian ideograph */, + {0, 0, 0x746A} /* East Asian ideograph */, + {0, 0, 0x7463} /* East Asian ideograph */, + {0, 0, 0x7464} /* East Asian ideograph */, + {0, 0, 0x7470} /* East Asian ideograph */, + {0, 0, 0x748B} /* East Asian ideograph */, + {0, 0, 0x749C} /* East Asian ideograph (variant of EACC 4B4B63) */, + {0, 0, 0x74A3} /* East Asian ideograph */, + {0, 0, 0x74A7} /* East Asian ideograph */, + {0, 0, 0x74A9} /* East Asian ideograph */, + {0, 0, 0x74B0} /* East Asian ideograph */, + {0, 0, 0x74A6} /* East Asian ideograph */, + {0, 0, 0x74BD} /* East Asian ideograph */, + {0, 0, 0x74CA} /* East Asian ideograph */, + {0, 0, 0x74CF} /* East Asian ideograph */, + {0, 0, 0x74DC} /* East Asian ideograph */, + {0, 0, 0x74E0} /* East Asian ideograph */, + {0, 0, 0x74E2} /* East Asian ideograph */, + {0, 0, 0x74E3} /* East Asian ideograph */, + {0, 0, 0x74E6} /* East Asian ideograph */, + {0, 0, 0x74F6} /* East Asian ideograph */, + {0, 0, 0x74F7} /* East Asian ideograph */, + {0, 0, 0x7504} /* East Asian ideograph */, + {0, 0, 0x750C} /* East Asian ideograph */, + {0, 0, 0x7515} /* East Asian ideograph */, + {0, 0, 0x7518} /* East Asian ideograph */, + {0, 0, 0x751A} /* East Asian ideograph */, + {0, 0, 0x751C} /* East Asian ideograph */, + {0, 0, 0x751F} /* East Asian ideograph */, + {0, 0, 0x7522} /* East Asian ideograph */, + {0, 0, 0x7526} /* East Asian ideograph */, + {0, 0, 0x7525} /* East Asian ideograph */, + {0, 0, 0x7528} /* East Asian ideograph */, + {0, 0, 0x7529} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page30 = { + 0, marc8_9page30_dir +}; +/* PAGE 29 */ +struct yaz_iconv_trie_dir marc8_9page29_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x71BE} /* East Asian ideograph */, + {0, 0, 0x71C9} /* East Asian ideograph */, + {0, 0, 0x71D0} /* East Asian ideograph */, + {0, 0, 0x71C8} /* East Asian ideograph */, + {0, 0, 0x71DC} /* East Asian ideograph */, + {0, 0, 0x71D2} /* East Asian ideograph */, + {0, 0, 0x71B9} /* East Asian ideograph */, + {0, 0, 0x71D5} /* East Asian ideograph */, + {0, 0, 0x71CE} /* East Asian ideograph */, + {0, 0, 0x71C3} /* East Asian ideograph */, + {0, 0, 0x71C4} /* East Asian ideograph */, + {0, 0, 0x71EE} /* East Asian ideograph */, + {0, 0, 0x71E7} /* East Asian ideograph */, + {0, 0, 0x71DF} /* East Asian ideograph */, + {0, 0, 0x71E5} /* East Asian ideograph */, + {0, 0, 0x71ED} /* East Asian ideograph */, + {0, 0, 0x71E6} /* East Asian ideograph */, + {0, 0, 0x71EC} /* East Asian ideograph */, + {0, 0, 0x71F4} /* East Asian ideograph */, + {0, 0, 0x71FB} /* East Asian ideograph */, + {0, 0, 0x7206} /* East Asian ideograph */, + {0, 0, 0x720D} /* East Asian ideograph */, + {0, 0, 0x7210} /* East Asian ideograph */, + {0, 0, 0x721B} /* East Asian ideograph */, + {0, 0, 0x7228} /* East Asian ideograph */, + {0, 0, 0x722A} /* East Asian ideograph */, + {0, 0, 0x722D} /* East Asian ideograph */, + {0, 0, 0x722C} /* East Asian ideograph */, + {0, 0, 0x7230} /* East Asian ideograph */, + {0, 0, 0x7235} /* East Asian ideograph (variant of EACC 4B4A3E) */, + {0, 0, 0x7236} /* East Asian ideograph */, + {0, 0, 0x7238} /* East Asian ideograph */, + {0, 0, 0x7239} /* East Asian ideograph */, + {0, 0, 0x723A} /* East Asian ideograph */, + {0, 0, 0x723B} /* East Asian ideograph */, + {0, 0, 0x723D} /* East Asian ideograph */, + {0, 0, 0x723E} /* East Asian ideograph */, + {0, 0, 0x7246} /* East Asian ideograph */, + {0, 0, 0x7247} /* East Asian ideograph */, + {0, 0, 0x7248} /* East Asian ideograph */, + {0, 0, 0x724C} /* East Asian ideograph */, + {0, 0, 0x7252} /* East Asian ideograph */, + {0, 0, 0x7256} /* East Asian ideograph */, + {0, 0, 0x7258} /* East Asian ideograph */, + {0, 0, 0x7259} /* East Asian ideograph */, + {0, 0, 0x725B} /* East Asian ideograph */, + {0, 0, 0x725F} /* East Asian ideograph */, + {0, 0, 0x725D} /* East Asian ideograph */, + {0, 0, 0x7262} /* East Asian ideograph */, + {0, 0, 0x7261} /* East Asian ideograph */, + {0, 0, 0x7260} /* East Asian ideograph */, + {0, 0, 0x7267} /* East Asian ideograph */, + {0, 0, 0x7269} /* East Asian ideograph */, + {0, 0, 0x726F} /* East Asian ideograph */, + {0, 0, 0x7272} /* East Asian ideograph */, + {0, 0, 0x7274} /* East Asian ideograph */, + {0, 0, 0x7279} /* East Asian ideograph */, + {0, 0, 0x727D} /* East Asian ideograph */, + {0, 0, 0x7281} /* East Asian ideograph */, + {0, 0, 0x7280} /* East Asian ideograph */, + {0, 0, 0x7284} /* East Asian ideograph */, + {0, 0, 0x7296} /* East Asian ideograph */, + {0, 0, 0x7292} /* East Asian ideograph */, + {0, 0, 0x729B} /* East Asian ideograph */, + {0, 0, 0x72A2} /* East Asian ideograph */, + {0, 0, 0x72A7} /* East Asian ideograph */, + {0, 0, 0x72AC} /* East Asian ideograph */, + {0, 0, 0x72AF} /* East Asian ideograph */, + {0, 0, 0x72C4} /* East Asian ideograph */, + {0, 0, 0x72C2} /* East Asian ideograph */, + {0, 0, 0x72D9} /* East Asian ideograph */, + {0, 0, 0x72C0} /* East Asian ideograph */, + {0, 0, 0x72CE} /* East Asian ideograph */, + {0, 0, 0x72D7} /* East Asian ideograph */, + {0, 0, 0x72D0} /* East Asian ideograph */, + {0, 0, 0x72E1} /* East Asian ideograph */, + {0, 0, 0x72E9} /* East Asian ideograph */, + {0, 0, 0x72E0} /* East Asian ideograph */, + {0, 0, 0x72FC} /* East Asian ideograph */, + {0, 0, 0x72F9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x72FD} /* East Asian ideograph */, + {0, 0, 0x72F7} /* East Asian ideograph */, + {0, 0, 0x731C} /* East Asian ideograph */, + {0, 0, 0x731B} /* East Asian ideograph */, + {0, 0, 0x7313} /* East Asian ideograph */, + {0, 0, 0x7316} /* East Asian ideograph */, + {0, 0, 0x7319} /* East Asian ideograph */, + {0, 0, 0x7336} /* East Asian ideograph */, + {0, 0, 0x7337} /* East Asian ideograph */, + {0, 0, 0x7329} /* East Asian ideograph */, + {0, 0, 0x7325} /* East Asian ideograph */, + {0, 0, 0x7334} /* East Asian ideograph */, + {0, 0, 0x7344} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page29 = { + 0, marc8_9page29_dir +}; +/* PAGE 28 */ +struct yaz_iconv_trie_dir marc8_9page28_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6FA4} /* East Asian ideograph */, + {0, 0, 0x6FC1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6FC0} /* East Asian ideograph */, + {0, 0, 0x6FB3} /* East Asian ideograph */, + {0, 0, 0x6FDF} /* East Asian ideograph */, + {0, 0, 0x6FD8} /* East Asian ideograph */, + {0, 0, 0x6FF1} /* East Asian ideograph */, + {0, 0, 0x6FE0} /* East Asian ideograph */, + {0, 0, 0x6FEF} /* East Asian ideograph */, + {0, 0, 0x6FEB} /* East Asian ideograph (variant of EACC 4B492B) */, + {0, 0, 0x6FE1} /* East Asian ideograph */, + {0, 0, 0x6FE4} /* East Asian ideograph */, + {0, 0, 0x6F80} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x700B} /* East Asian ideograph */, + {0, 0, 0x7009} /* East Asian ideograph */, + {0, 0, 0x7006} /* East Asian ideograph */, + {0, 0, 0x6FFA} /* East Asian ideograph */, + {0, 0, 0x7011} /* East Asian ideograph */, + {0, 0, 0x6FFE} /* East Asian ideograph */, + {0, 0, 0x700F} /* East Asian ideograph */, + {0, 0, 0x701B} /* East Asian ideograph */, + {0, 0, 0x701A} /* East Asian ideograph */, + {0, 0, 0x7028} /* East Asian ideograph */, + {0, 0, 0x701D} /* East Asian ideograph */, + {0, 0, 0x7015} /* East Asian ideograph */, + {0, 0, 0x701F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x703E} /* East Asian ideograph */, + {0, 0, 0x704C} /* East Asian ideograph */, + {0, 0, 0x7051} /* East Asian ideograph */, + {0, 0, 0x7058} /* East Asian ideograph */, + {0, 0, 0x7063} /* East Asian ideograph */, + {0, 0, 0x7064} /* East Asian ideograph */, + {0, 0, 0x706B} /* East Asian ideograph */, + {0, 0, 0x7070} /* East Asian ideograph */, + {0, 0, 0x7076} /* East Asian ideograph */, + {0, 0, 0x707C} /* East Asian ideograph */, + {0, 0, 0x7078} /* East Asian ideograph */, + {0, 0, 0x707D} /* East Asian ideograph */, + {0, 0, 0x7095} /* East Asian ideograph */, + {0, 0, 0x708E} /* East Asian ideograph */, + {0, 0, 0x7092} /* East Asian ideograph */, + {0, 0, 0x7099} /* East Asian ideograph */, + {0, 0, 0x708A} /* East Asian ideograph */, + {0, 0, 0x70AB} /* East Asian ideograph */, + {0, 0, 0x70BA} /* East Asian ideograph */, + {0, 0, 0x70AC} /* East Asian ideograph */, + {0, 0, 0x70B3} /* East Asian ideograph */, + {0, 0, 0x70AF} /* East Asian ideograph */, + {0, 0, 0x70AD} /* East Asian ideograph */, + {0, 0, 0x70AE} /* East Asian ideograph */, + {0, 0, 0x70B8} /* East Asian ideograph */, + {0, 0, 0x70CA} /* East Asian ideograph */, + {0, 0, 0x70E4} /* East Asian ideograph */, + {0, 0, 0x70D8} /* East Asian ideograph */, + {0, 0, 0x70C8} /* East Asian ideograph */, + {0, 0, 0x70D9} /* East Asian ideograph */, + {0, 0, 0x70CF} /* East Asian ideograph */, + {0, 0, 0x70F9} /* East Asian ideograph */, + {0, 0, 0x7109} /* East Asian ideograph */, + {0, 0, 0x710A} /* East Asian ideograph */, + {0, 0, 0x70FD} /* East Asian ideograph */, + {0, 0, 0x7119} /* East Asian ideograph */, + {0, 0, 0x716E} /* East Asian ideograph */, + {0, 0, 0x711A} /* East Asian ideograph */, + {0, 0, 0x7136} /* East Asian ideograph */, + {0, 0, 0x7121} /* East Asian ideograph */, + {0, 0, 0x7130} /* East Asian ideograph */, + {0, 0, 0x7126} /* East Asian ideograph */, + {0, 0, 0x714E} /* East Asian ideograph */, + {0, 0, 0x7149} /* East Asian ideograph */, + {0, 0, 0x7159} /* East Asian ideograph */, + {0, 0, 0x7164} /* East Asian ideograph */, + {0, 0, 0x7169} /* East Asian ideograph */, + {0, 0, 0x715C} /* East Asian ideograph */, + {0, 0, 0x716C} /* East Asian ideograph */, + {0, 0, 0x7166} /* East Asian ideograph */, + {0, 0, 0x7167} /* East Asian ideograph */, + {0, 0, 0x715E} /* East Asian ideograph */, + {0, 0, 0x7165} /* East Asian ideograph */, + {0, 0, 0x714C} /* East Asian ideograph */, + {0, 0, 0x717D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x7199} /* East Asian ideograph */, + {0, 0, 0x718A} /* East Asian ideograph */, + {0, 0, 0x7184} /* East Asian ideograph */, + {0, 0, 0x719F} /* East Asian ideograph */, + {0, 0, 0x71A8} /* East Asian ideograph */, + {0, 0, 0x71AC} /* East Asian ideograph */, + {0, 0, 0x71B1} /* East Asian ideograph */, + {0, 0, 0x71D9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page28 = { + 0, marc8_9page28_dir +}; +/* PAGE 27 */ +struct yaz_iconv_trie_dir marc8_9page27_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6E5B} /* East Asian ideograph */, + {0, 0, 0x6E1A} /* East Asian ideograph */, + {0, 0, 0x6E56} /* East Asian ideograph */, + {0, 0, 0x6E2F} /* East Asian ideograph */, + {0, 0, 0x6E6E} /* East Asian ideograph */, + {0, 0, 0x6E58} /* East Asian ideograph */, + {0, 0, 0x6E23} /* East Asian ideograph */, + {0, 0, 0x6E24} /* East Asian ideograph */, + {0, 0, 0x6E1B} /* East Asian ideograph */, + {0, 0, 0x6E25} /* East Asian ideograph */, + {0, 0, 0x6E4A} /* East Asian ideograph */, + {0, 0, 0x6E3A} /* East Asian ideograph */, + {0, 0, 0x6E6F} /* East Asian ideograph */, + {0, 0, 0x6E2D} /* East Asian ideograph */, + {0, 0, 0x6E34} /* East Asian ideograph */, + {0, 0, 0x6E2C} /* East Asian ideograph */, + {0, 0, 0x6E26} /* East Asian ideograph */, + {0, 0, 0x6E4D} /* East Asian ideograph */, + {0, 0, 0x6E3E} /* East Asian ideograph */, + {0, 0, 0x6E43} /* East Asian ideograph */, + {0, 0, 0x6E19} /* East Asian ideograph */, + {0, 0, 0x6E1D} /* East Asian ideograph */, + {0, 0, 0x6ED3} /* East Asian ideograph */, + {0, 0, 0x6EB6} /* East Asian ideograph */, + {0, 0, 0x6EC2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6EAF} /* East Asian ideograph */, + {0, 0, 0x6EA2} /* East Asian ideograph */, + {0, 0, 0x6E9D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6EA5} /* East Asian ideograph */, + {0, 0, 0x6E98} /* East Asian ideograph */, + {0, 0, 0x6E90} /* East Asian ideograph */, + {0, 0, 0x6EC5} /* East Asian ideograph */, + {0, 0, 0x6EC7} /* East Asian ideograph */, + {0, 0, 0x6EBC} /* East Asian ideograph */, + {0, 0, 0x6EAB} /* East Asian ideograph */, + {0, 0, 0x6ED1} /* East Asian ideograph */, + {0, 0, 0x6ECB} /* East Asian ideograph */, + {0, 0, 0x6EC4} /* East Asian ideograph */, + {0, 0, 0x6ED4} /* East Asian ideograph */, + {0, 0, 0x6EAA} /* East Asian ideograph */, + {0, 0, 0x6E96} /* East Asian ideograph */, + {0, 0, 0x6E9C} /* East Asian ideograph */, + {0, 0, 0x6F33} /* East Asian ideograph */, + {0, 0, 0x6EF4} /* East Asian ideograph */, + {0, 0, 0x6EEC} /* East Asian ideograph */, + {0, 0, 0x6EFE} /* East Asian ideograph */, + {0, 0, 0x6F29} /* East Asian ideograph */, + {0, 0, 0x6F14} /* East Asian ideograph */, + {0, 0, 0x6F3E} /* East Asian ideograph */, + {0, 0, 0x6F2C} /* East Asian ideograph */, + {0, 0, 0x6F32} /* East Asian ideograph */, + {0, 0, 0x6F0F} /* East Asian ideograph */, + {0, 0, 0x6F22} /* East Asian ideograph (variant of EACC 4B4857) */, + {0, 0, 0x6EFF} /* East Asian ideograph */, + {0, 0, 0x6F23} /* East Asian ideograph */, + {0, 0, 0x6F38} /* East Asian ideograph */, + {0, 0, 0x6F15} /* East Asian ideograph */, + {0, 0, 0x6F31} /* East Asian ideograph */, + {0, 0, 0x6F02} /* East Asian ideograph */, + {0, 0, 0x6F06} /* East Asian ideograph */, + {0, 0, 0x6EEF} /* East Asian ideograph */, + {0, 0, 0x6F2B} /* East Asian ideograph */, + {0, 0, 0x6F2F} /* East Asian ideograph */, + {0, 0, 0x6F20} /* East Asian ideograph */, + {0, 0, 0x6F3F} /* East Asian ideograph */, + {0, 0, 0x6EF2} /* East Asian ideograph */, + {0, 0, 0x6F01} /* East Asian ideograph */, + {0, 0, 0x6F11} /* East Asian ideograph */, + {0, 0, 0x6ECC} /* East Asian ideograph */, + {0, 0, 0x6F2A} /* East Asian ideograph */, + {0, 0, 0x6F7C} /* East Asian ideograph */, + {0, 0, 0x6F88} /* East Asian ideograph */, + {0, 0, 0x6F84} /* East Asian ideograph */, + {0, 0, 0x6F51} /* East Asian ideograph */, + {0, 0, 0x6F64} /* East Asian ideograph */, + {0, 0, 0x6F97} /* East Asian ideograph */, + {0, 0, 0x6F54} /* East Asian ideograph */, + {0, 0, 0x6F7A} /* East Asian ideograph */, + {0, 0, 0x6F86} /* East Asian ideograph */, + {0, 0, 0x6F8E} /* East Asian ideograph */, + {0, 0, 0x6F6D} /* East Asian ideograph */, + {0, 0, 0x6F5B} /* East Asian ideograph */, + {0, 0, 0x6F6E} /* East Asian ideograph */, + {0, 0, 0x6F78} /* East Asian ideograph */, + {0, 0, 0x6F66} /* East Asian ideograph */, + {0, 0, 0x6F70} /* East Asian ideograph */, + {0, 0, 0x6F58} /* East Asian ideograph */, + {0, 0, 0x6FC2} /* East Asian ideograph */, + {0, 0, 0x6FB1} /* East Asian ideograph */, + {0, 0, 0x6FC3} /* East Asian ideograph */, + {0, 0, 0x6FA7} /* East Asian ideograph */, + {0, 0, 0x6FA1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page27 = { + 0, marc8_9page27_dir +}; +/* PAGE 26 */ +struct yaz_iconv_trie_dir marc8_9page26_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6CE3} /* East Asian ideograph */, + {0, 0, 0x6CF0} /* East Asian ideograph */, + {0, 0, 0x6CB8} /* East Asian ideograph */, + {0, 0, 0x6CD3} /* East Asian ideograph */, + {0, 0, 0x6CAB} /* East Asian ideograph */, + {0, 0, 0x6CE5} /* East Asian ideograph */, + {0, 0, 0x6CBD} /* East Asian ideograph */, + {0, 0, 0x6CB3} /* East Asian ideograph */, + {0, 0, 0x6CC4} /* East Asian ideograph */, + {0, 0, 0x6CD5} /* East Asian ideograph */, + {0, 0, 0x6CE2} /* East Asian ideograph */, + {0, 0, 0x6CBC} /* East Asian ideograph */, + {0, 0, 0x6CAE} /* East Asian ideograph */, + {0, 0, 0x6CB9} /* East Asian ideograph */, + {0, 0, 0x6CF1} /* East Asian ideograph */, + {0, 0, 0x6CC1} /* East Asian ideograph */, + {0, 0, 0x6CBE} /* East Asian ideograph */, + {0, 0, 0x6CC5} /* East Asian ideograph */, + {0, 0, 0x6CD7} /* East Asian ideograph */, + {0, 0, 0x6CBB} /* East Asian ideograph */, + {0, 0, 0x6CDB} /* East Asian ideograph */, + {0, 0, 0x6CE1} /* East Asian ideograph */, + {0, 0, 0x6CBF} /* East Asian ideograph */, + {0, 0, 0x6CCA} /* East Asian ideograph */, + {0, 0, 0x6CCC} /* East Asian ideograph */, + {0, 0, 0x6CC9} /* East Asian ideograph */, + {0, 0, 0x6D41} /* East Asian ideograph */, + {0, 0, 0x6D0B} /* East Asian ideograph */, + {0, 0, 0x6D32} /* East Asian ideograph */, + {0, 0, 0x6D25} /* East Asian ideograph */, + {0, 0, 0x6D31} /* East Asian ideograph */, + {0, 0, 0x6D2A} /* East Asian ideograph */, + {0, 0, 0x6D0C} /* East Asian ideograph */, + {0, 0, 0x6D1E} /* East Asian ideograph */, + {0, 0, 0x6D17} /* East Asian ideograph */, + {0, 0, 0x6D3B} /* East Asian ideograph */, + {0, 0, 0x6D1B} /* East Asian ideograph */, + {0, 0, 0x6D36} /* East Asian ideograph */, + {0, 0, 0x6D3D} /* East Asian ideograph */, + {0, 0, 0x6D3E} /* East Asian ideograph */, + {0, 0, 0x6D6A} /* East Asian ideograph */, + {0, 0, 0x6D95} /* East Asian ideograph */, + {0, 0, 0x6D78} /* East Asian ideograph */, + {0, 0, 0x6D66} /* East Asian ideograph */, + {0, 0, 0x6D59} /* East Asian ideograph */, + {0, 0, 0x6D87} /* East Asian ideograph */, + {0, 0, 0x6D88} /* East Asian ideograph */, + {0, 0, 0x6D6C} /* East Asian ideograph */, + {0, 0, 0x6D93} /* East Asian ideograph */, + {0, 0, 0x6D89} /* East Asian ideograph */, + {0, 0, 0x6D6E} /* East Asian ideograph */, + {0, 0, 0x6D74} /* East Asian ideograph */, + {0, 0, 0x6D5A} /* East Asian ideograph */, + {0, 0, 0x6D69} /* East Asian ideograph */, + {0, 0, 0x6D77} /* East Asian ideograph */, + {0, 0, 0x6DD9} /* East Asian ideograph */, + {0, 0, 0x6DDA} /* East Asian ideograph */, + {0, 0, 0x6DF3} /* East Asian ideograph */, + {0, 0, 0x6DBC} /* East Asian ideograph */, + {0, 0, 0x6DE4} /* East Asian ideograph */, + {0, 0, 0x6DB2} /* East Asian ideograph */, + {0, 0, 0x6DE1} /* East Asian ideograph */, + {0, 0, 0x6DD2} /* East Asian ideograph */, + {0, 0, 0x6DAE} /* East Asian ideograph */, + {0, 0, 0x6DF8} /* East Asian ideograph */, + {0, 0, 0x6DC7} /* East Asian ideograph */, + {0, 0, 0x6DCB} /* East Asian ideograph */, + {0, 0, 0x6DC5} /* East Asian ideograph */, + {0, 0, 0x6DDE} /* East Asian ideograph */, + {0, 0, 0x6DAF} /* East Asian ideograph */, + {0, 0, 0x6DB5} /* East Asian ideograph */, + {0, 0, 0x6DFA} /* East Asian ideograph */, + {0, 0, 0x6DF9} /* East Asian ideograph */, + {0, 0, 0x6DCC} /* East Asian ideograph */, + {0, 0, 0x6DF7} /* East Asian ideograph */, + {0, 0, 0x6DB8} /* East Asian ideograph */, + {0, 0, 0x6DD1} /* East Asian ideograph */, + {0, 0, 0x6DF1} /* East Asian ideograph */, + {0, 0, 0x6DE8} /* East Asian ideograph */, + {0, 0, 0x6DEB} /* East Asian ideograph */, + {0, 0, 0x6DD8} /* East Asian ideograph */, + {0, 0, 0x6DFB} /* East Asian ideograph */, + {0, 0, 0x6DEE} /* East Asian ideograph */, + {0, 0, 0x6DF5} /* East Asian ideograph */, + {0, 0, 0x6D8E} /* East Asian ideograph */, + {0, 0, 0x6DC6} /* East Asian ideograph */, + {0, 0, 0x6DEA} /* East Asian ideograph */, + {0, 0, 0x6DC4} /* East Asian ideograph */, + {0, 0, 0x6E54} /* East Asian ideograph */, + {0, 0, 0x6E21} /* East Asian ideograph */, + {0, 0, 0x6E38} /* East Asian ideograph */, + {0, 0, 0x6E32} /* East Asian ideograph */, + {0, 0, 0x6E67} /* East Asian ideograph */, + {0, 0, 0x6E20} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page26 = { + 0, marc8_9page26_dir +}; +/* PAGE 25 */ +struct yaz_iconv_trie_dir marc8_9page25_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6B61} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6B63} /* East Asian ideograph */, + {0, 0, 0x6B64} /* East Asian ideograph */, + {0, 0, 0x6B65} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6B66} /* East Asian ideograph */, + {0, 0, 0x6B6A} /* East Asian ideograph */, + {0, 0, 0x6B72} /* East Asian ideograph */, + {0, 0, 0x6B77} /* East Asian ideograph */, + {0, 0, 0x6B78} /* East Asian ideograph */, + {0, 0, 0x6B79} /* East Asian ideograph */, + {0, 0, 0x6B7B} /* East Asian ideograph */, + {0, 0, 0x6B7F} /* East Asian ideograph */, + {0, 0, 0x6B83} /* East Asian ideograph */, + {0, 0, 0x6B86} /* East Asian ideograph */, + {0, 0, 0x6B8A} /* East Asian ideograph */, + {0, 0, 0x6B89} /* East Asian ideograph */, + {0, 0, 0x6B98} /* East Asian ideograph */, + {0, 0, 0x6B96} /* East Asian ideograph */, + {0, 0, 0x6BA4} /* East Asian ideograph */, + {0, 0, 0x6BAE} /* East Asian ideograph */, + {0, 0, 0x6BAF} /* East Asian ideograph */, + {0, 0, 0x6BB2} /* East Asian ideograph */, + {0, 0, 0x6BB5} /* East Asian ideograph */, + {0, 0, 0x6BB7} /* East Asian ideograph */, + {0, 0, 0x6BBA} /* East Asian ideograph */, + {0, 0, 0x6BBC} /* East Asian ideograph */, + {0, 0, 0x6BC0} /* East Asian ideograph */, + {0, 0, 0x6BBF} /* East Asian ideograph */, + {0, 0, 0x6BC5} /* East Asian ideograph */, + {0, 0, 0x6BC6} /* East Asian ideograph */, + {0, 0, 0x6BCB} /* East Asian ideograph */, + {0, 0, 0x6BCD} /* East Asian ideograph */, + {0, 0, 0x6BCF} /* East Asian ideograph */, + {0, 0, 0x6BD2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6BD4} /* East Asian ideograph */, + {0, 0, 0x6BD7} /* East Asian ideograph */, + {0, 0, 0x6BDB} /* East Asian ideograph */, + {0, 0, 0x6BEB} /* East Asian ideograph */, + {0, 0, 0x6BEF} /* East Asian ideograph */, + {0, 0, 0x6BFD} /* East Asian ideograph */, + {0, 0, 0x6C0F} /* East Asian ideograph */, + {0, 0, 0x6C11} /* East Asian ideograph */, + {0, 0, 0x6C10} /* East Asian ideograph */, + {0, 0, 0x6C13} /* East Asian ideograph */, + {0, 0, 0x6C16} /* East Asian ideograph */, + {0, 0, 0x6C1B} /* East Asian ideograph */, + {0, 0, 0x6C1F} /* East Asian ideograph */, + {0, 0, 0x6C27} /* East Asian ideograph */, + {0, 0, 0x6C26} /* East Asian ideograph */, + {0, 0, 0x6C23} /* East Asian ideograph */, + {0, 0, 0x6C28} /* East Asian ideograph */, + {0, 0, 0x6C24} /* East Asian ideograph */, + {0, 0, 0x6C2B} /* East Asian ideograph */, + {0, 0, 0x6C2E} /* East Asian ideograph */, + {0, 0, 0x6C33} /* East Asian ideograph */, + {0, 0, 0x6C2F} /* East Asian ideograph (variant of EACC 45465B) */, + {0, 0, 0x6C34} /* East Asian ideograph */, + {0, 0, 0x6C38} /* East Asian ideograph */, + {0, 0, 0x6C41} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6C40} /* East Asian ideograph */, + {0, 0, 0x6C42} /* East Asian ideograph */, + {0, 0, 0x6C5E} /* East Asian ideograph */, + {0, 0, 0x6C57} /* East Asian ideograph */, + {0, 0, 0x6C5F} /* East Asian ideograph */, + {0, 0, 0x6C59} /* East Asian ideograph */, + {0, 0, 0x6C60} /* East Asian ideograph */, + {0, 0, 0x6C55} /* East Asian ideograph */, + {0, 0, 0x6C50} /* East Asian ideograph */, + {0, 0, 0x6C5D} /* East Asian ideograph */, + {0, 0, 0x6C9B} /* East Asian ideograph */, + {0, 0, 0x6C81} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6C7A} /* East Asian ideograph */, + {0, 0, 0x6C6A} /* East Asian ideograph */, + {0, 0, 0x6C8C} /* East Asian ideograph */, + {0, 0, 0x6C90} /* East Asian ideograph */, + {0, 0, 0x6C72} /* East Asian ideograph */, + {0, 0, 0x6C70} /* East Asian ideograph */, + {0, 0, 0x6C68} /* East Asian ideograph */, + {0, 0, 0x6C96} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6C89} /* East Asian ideograph (variant of EACC 4B4676) */, + {0, 0, 0x6C99} /* East Asian ideograph */, + {0, 0, 0x6C7E} /* East Asian ideograph */, + {0, 0, 0x6C7D} /* East Asian ideograph */, + {0, 0, 0x6C92} /* East Asian ideograph */, + {0, 0, 0x6C83} /* East Asian ideograph */, + {0, 0, 0x6CB1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6CF3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page25 = { + 0, marc8_9page25_dir +}; +/* PAGE 24 */ +struct yaz_iconv_trie_dir marc8_9page24_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x690E} /* East Asian ideograph */, + {0, 0, 0x68C9} /* East Asian ideograph */, + {0, 0, 0x6954} /* East Asian ideograph */, + {0, 0, 0x6930} /* East Asian ideograph */, + {0, 0, 0x6977} /* East Asian ideograph */, + {0, 0, 0x6975} /* East Asian ideograph */, + {0, 0, 0x695A} /* East Asian ideograph */, + {0, 0, 0x6960} /* East Asian ideograph */, + {0, 0, 0x696B} /* East Asian ideograph */, + {0, 0, 0x694A} /* East Asian ideograph */, + {0, 0, 0x6968} /* East Asian ideograph */, + {0, 0, 0x695E} /* East Asian ideograph */, + {0, 0, 0x696D} /* East Asian ideograph */, + {0, 0, 0x6979} /* East Asian ideograph */, + {0, 0, 0x6953} /* East Asian ideograph */, + {0, 0, 0x6986} /* East Asian ideograph */, + {0, 0, 0x69A8} /* East Asian ideograph */, + {0, 0, 0x6995} /* East Asian ideograph */, + {0, 0, 0x699C} /* East Asian ideograph */, + {0, 0, 0x6994} /* East Asian ideograph */, + {0, 0, 0x69C1} /* East Asian ideograph */, + {0, 0, 0x69B7} /* East Asian ideograph */, + {0, 0, 0x69AE} /* East Asian ideograph */, + {0, 0, 0x699B} /* East Asian ideograph */, + {0, 0, 0x69CB} /* East Asian ideograph */, + {0, 0, 0x69D3} /* East Asian ideograph */, + {0, 0, 0x69BB} /* East Asian ideograph */, + {0, 0, 0x69AB} /* East Asian ideograph */, + {0, 0, 0x69CC} /* East Asian ideograph */, + {0, 0, 0x69AD} /* East Asian ideograph */, + {0, 0, 0x69D0} /* East Asian ideograph */, + {0, 0, 0x69CD} /* East Asian ideograph */, + {0, 0, 0x69B4} /* East Asian ideograph */, + {0, 0, 0x6A1F} /* East Asian ideograph */, + {0, 0, 0x69E8} /* East Asian ideograph */, + {0, 0, 0x6A23} /* East Asian ideograph */, + {0, 0, 0x69EA} /* East Asian ideograph */, + {0, 0, 0x6A01} /* East Asian ideograph */, + {0, 0, 0x6A19} /* East Asian ideograph */, + {0, 0, 0x69FD} /* East Asian ideograph */, + {0, 0, 0x6A1E} /* East Asian ideograph */, + {0, 0, 0x6A13} /* East Asian ideograph */, + {0, 0, 0x6A21} /* East Asian ideograph */, + {0, 0, 0x69F3} /* East Asian ideograph */, + {0, 0, 0x6A0A} /* East Asian ideograph */, + {0, 0, 0x6A02} /* East Asian ideograph */, + {0, 0, 0x6A05} /* East Asian ideograph */, + {0, 0, 0x6A3D} /* East Asian ideograph */, + {0, 0, 0x6A58} /* East Asian ideograph */, + {0, 0, 0x6A59} /* East Asian ideograph */, + {0, 0, 0x6A62} /* East Asian ideograph */, + {0, 0, 0x6A44} /* East Asian ideograph */, + {0, 0, 0x6A39} /* East Asian ideograph */, + {0, 0, 0x6A6B} /* East Asian ideograph */, + {0, 0, 0x6A3A} /* East Asian ideograph */, + {0, 0, 0x6A38} /* East Asian ideograph */, + {0, 0, 0x6A47} /* East Asian ideograph */, + {0, 0, 0x6A61} /* East Asian ideograph */, + {0, 0, 0x6A4B} /* East Asian ideograph */, + {0, 0, 0x6A35} /* East Asian ideograph */, + {0, 0, 0x6A5F} /* East Asian ideograph */, + {0, 0, 0x6A80} /* East Asian ideograph */, + {0, 0, 0x6A94} /* East Asian ideograph */, + {0, 0, 0x6A84} /* East Asian ideograph */, + {0, 0, 0x6AA2} /* East Asian ideograph */, + {0, 0, 0x6A9C} /* East Asian ideograph */, + {0, 0, 0x6AB8} /* East Asian ideograph */, + {0, 0, 0x6AB3} /* East Asian ideograph */, + {0, 0, 0x6AC3} /* East Asian ideograph */, + {0, 0, 0x6ABB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6AAC} /* East Asian ideograph */, + {0, 0, 0x6AE5} /* East Asian ideograph */, + {0, 0, 0x6ADA} /* East Asian ideograph */, + {0, 0, 0x6ADD} /* East Asian ideograph */, + {0, 0, 0x6ADB} /* East Asian ideograph */, + {0, 0, 0x6AD3} /* East Asian ideograph */, + {0, 0, 0x6B04} /* East Asian ideograph */, + {0, 0, 0x6AFB} /* East Asian ideograph */, + {0, 0, 0x6B0A} /* East Asian ideograph */, + {0, 0, 0x6B16} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6B21} /* East Asian ideograph */, + {0, 0, 0x6B23} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6B3E} /* East Asian ideograph */, + {0, 0, 0x6B3A} /* East Asian ideograph */, + {0, 0, 0x6B3D} /* East Asian ideograph */, + {0, 0, 0x6B47} /* East Asian ideograph */, + {0, 0, 0x6B49} /* East Asian ideograph */, + {0, 0, 0x6B4C} /* East Asian ideograph */, + {0, 0, 0x6B50} /* East Asian ideograph */, + {0, 0, 0x6B59} /* East Asian ideograph */, + {0, 0, 0x6B5F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page24 = { + 0, marc8_9page24_dir +}; +/* PAGE 23 */ +struct yaz_iconv_trie_dir marc8_9page23_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6787} /* East Asian ideograph */, + {0, 0, 0x6777} /* East Asian ideograph */, + {0, 0, 0x679D} /* East Asian ideograph */, + {0, 0, 0x6797} /* East Asian ideograph */, + {0, 0, 0x676F} /* East Asian ideograph */, + {0, 0, 0x6771} /* East Asian ideograph */, + {0, 0, 0x6773} /* East Asian ideograph */, + {0, 0, 0x679C} /* East Asian ideograph */, + {0, 0, 0x6775} /* East Asian ideograph */, + {0, 0, 0x679A} /* East Asian ideograph */, + {0, 0, 0x6790} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x677E} /* East Asian ideograph */, + {0, 0, 0x67D3} /* East Asian ideograph */, + {0, 0, 0x67F1} /* East Asian ideograph */, + {0, 0, 0x67FF} /* East Asian ideograph */, + {0, 0, 0x67D4} /* East Asian ideograph */, + {0, 0, 0x67C4} /* East Asian ideograph */, + {0, 0, 0x67AF} /* East Asian ideograph */, + {0, 0, 0x67D0} /* East Asian ideograph */, + {0, 0, 0x67D1} /* East Asian ideograph */, + {0, 0, 0x67EF} /* East Asian ideograph */, + {0, 0, 0x67E9} /* East Asian ideograph */, + {0, 0, 0x67B6} /* East Asian ideograph */, + {0, 0, 0x67EC} /* East Asian ideograph */, + {0, 0, 0x67E5} /* East Asian ideograph */, + {0, 0, 0x67FA} /* East Asian ideograph */, + {0, 0, 0x67DA} /* East Asian ideograph */, + {0, 0, 0x6805} /* East Asian ideograph */, + {0, 0, 0x67DE} /* East Asian ideograph */, + {0, 0, 0x67B8} /* East Asian ideograph */, + {0, 0, 0x67CF} /* East Asian ideograph */, + {0, 0, 0x67F3} /* East Asian ideograph */, + {0, 0, 0x6848} /* East Asian ideograph */, + {0, 0, 0x6821} /* East Asian ideograph */, + {0, 0, 0x6838} /* East Asian ideograph */, + {0, 0, 0x6853} /* East Asian ideograph */, + {0, 0, 0x6846} /* East Asian ideograph */, + {0, 0, 0x6842} /* East Asian ideograph */, + {0, 0, 0x6854} /* East Asian ideograph */, + {0, 0, 0x6817} /* East Asian ideograph */, + {0, 0, 0x683D} /* East Asian ideograph */, + {0, 0, 0x6851} /* East Asian ideograph */, + {0, 0, 0x6829} /* East Asian ideograph */, + {0, 0, 0x6850} /* East Asian ideograph */, + {0, 0, 0x6839} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x67F4} /* East Asian ideograph */, + {0, 0, 0x6843} /* East Asian ideograph */, + {0, 0, 0x6840} /* East Asian ideograph */, + {0, 0, 0x682A} /* East Asian ideograph */, + {0, 0, 0x6845} /* East Asian ideograph */, + {0, 0, 0x683C} /* East Asian ideograph */, + {0, 0, 0x6813} /* East Asian ideograph (variant of EACC 4B4456) */, + {0, 0, 0x6881} /* East Asian ideograph */, + {0, 0, 0x6893} /* East Asian ideograph */, + {0, 0, 0x68AF} /* East Asian ideograph */, + {0, 0, 0x6876} /* East Asian ideograph */, + {0, 0, 0x68B0} /* East Asian ideograph */, + {0, 0, 0x68A7} /* East Asian ideograph */, + {0, 0, 0x6897} /* East Asian ideograph */, + {0, 0, 0x68B5} /* East Asian ideograph */, + {0, 0, 0x68B3} /* East Asian ideograph */, + {0, 0, 0x68A2} /* East Asian ideograph */, + {0, 0, 0x687F} /* East Asian ideograph */, + {0, 0, 0x68B1} /* East Asian ideograph */, + {0, 0, 0x689D} /* East Asian ideograph */, + {0, 0, 0x68AD} /* East Asian ideograph */, + {0, 0, 0x6886} /* East Asian ideograph */, + {0, 0, 0x6885} /* East Asian ideograph */, + {0, 0, 0x68A8} /* East Asian ideograph */, + {0, 0, 0x689F} /* East Asian ideograph */, + {0, 0, 0x6894} /* East Asian ideograph */, + {0, 0, 0x6883} /* East Asian ideograph */, + {0, 0, 0x68D5} /* East Asian ideograph */, + {0, 0, 0x68FA} /* East Asian ideograph */, + {0, 0, 0x68C4} /* East Asian ideograph */, + {0, 0, 0x68F2} /* East Asian ideograph */, + {0, 0, 0x68D2} /* East Asian ideograph */, + {0, 0, 0x68E3} /* East Asian ideograph */, + {0, 0, 0x68DF} /* East Asian ideograph */, + {0, 0, 0x68CB} /* East Asian ideograph */, + {0, 0, 0x68EE} /* East Asian ideograph */, + {0, 0, 0x690D} /* East Asian ideograph */, + {0, 0, 0x6905} /* East Asian ideograph */, + {0, 0, 0x68E7} /* East Asian ideograph */, + {0, 0, 0x68E0} /* East Asian ideograph */, + {0, 0, 0x68F5} /* East Asian ideograph */, + {0, 0, 0x68CD} /* East Asian ideograph */, + {0, 0, 0x68D7} /* East Asian ideograph */, + {0, 0, 0x68D8} /* East Asian ideograph */, + {0, 0, 0x6912} /* East Asian ideograph */, + {0, 0, 0x68F9} /* East Asian ideograph */, + {0, 0, 0x68DA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page23 = { + 0, marc8_9page23_dir +}; +/* PAGE 22 */ +struct yaz_iconv_trie_dir marc8_9page22_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x660E} /* East Asian ideograph */, + {0, 0, 0x6613} /* East Asian ideograph */, + {0, 0, 0x6602} /* East Asian ideograph */, + {0, 0, 0x660F} /* East Asian ideograph */, + {0, 0, 0x6625} /* East Asian ideograph */, + {0, 0, 0x6627} /* East Asian ideograph */, + {0, 0, 0x662F} /* East Asian ideograph */, + {0, 0, 0x662D} /* East Asian ideograph */, + {0, 0, 0x6620} /* East Asian ideograph */, + {0, 0, 0x661F} /* East Asian ideograph */, + {0, 0, 0x6628} /* East Asian ideograph */, + {0, 0, 0x664F} /* East Asian ideograph */, + {0, 0, 0x6642} /* East Asian ideograph */, + {0, 0, 0x6652} /* East Asian ideograph */, + {0, 0, 0x6649} /* East Asian ideograph */, + {0, 0, 0x6643} /* East Asian ideograph */, + {0, 0, 0x664C} /* East Asian ideograph */, + {0, 0, 0x665D} /* East Asian ideograph */, + {0, 0, 0x6664} /* East Asian ideograph */, + {0, 0, 0x6668} /* East Asian ideograph */, + {0, 0, 0x6666} /* East Asian ideograph */, + {0, 0, 0x665A} /* East Asian ideograph */, + {0, 0, 0x666F} /* East Asian ideograph */, + {0, 0, 0x666E} /* East Asian ideograph */, + {0, 0, 0x6674} /* East Asian ideograph (variant of EACC 4B4339) */, + {0, 0, 0x6691} /* East Asian ideograph */, + {0, 0, 0x6670} /* East Asian ideograph */, + {0, 0, 0x6676} /* East Asian ideograph */, + {0, 0, 0x667A} /* East Asian ideograph */, + {0, 0, 0x6697} /* East Asian ideograph */, + {0, 0, 0x6687} /* East Asian ideograph */, + {0, 0, 0x6689} /* East Asian ideograph */, + {0, 0, 0x6688} /* East Asian ideograph */, + {0, 0, 0x6696} /* East Asian ideograph */, + {0, 0, 0x66A2} /* East Asian ideograph */, + {0, 0, 0x66AB} /* East Asian ideograph */, + {0, 0, 0x66B4} /* East Asian ideograph */, + {0, 0, 0x66AE} /* East Asian ideograph */, + {0, 0, 0x66C1} /* East Asian ideograph */, + {0, 0, 0x66C9} /* East Asian ideograph */, + {0, 0, 0x66C6} /* East Asian ideograph */, + {0, 0, 0x66B9} /* East Asian ideograph */, + {0, 0, 0x66D6} /* East Asian ideograph */, + {0, 0, 0x66D9} /* East Asian ideograph */, + {0, 0, 0x66E0} /* East Asian ideograph */, + {0, 0, 0x66DD} /* East Asian ideograph */, + {0, 0, 0x66E6} /* East Asian ideograph */, + {0, 0, 0x66F0} /* East Asian ideograph */, + {0, 0, 0x66F2} /* East Asian ideograph */, + {0, 0, 0x66F3} /* East Asian ideograph */, + {0, 0, 0x66F4} /* East Asian ideograph */, + {0, 0, 0x66F7} /* East Asian ideograph */, + {0, 0, 0x66F8} /* East Asian ideograph */, + {0, 0, 0x66F9} /* East Asian ideograph */, + {0, 0, 0x52D7} /* East Asian ideograph */, + {0, 0, 0x66FE} /* East Asian ideograph */, + {0, 0, 0x66FF} /* East Asian ideograph */, + {0, 0, 0x6703} /* East Asian ideograph */, + {0, 0, 0x6708} /* East Asian ideograph */, + {0, 0, 0x6709} /* East Asian ideograph */, + {0, 0, 0x670D} /* East Asian ideograph */, + {0, 0, 0x670B} /* East Asian ideograph */, + {0, 0, 0x6717} /* East Asian ideograph */, + {0, 0, 0x6715} /* East Asian ideograph */, + {0, 0, 0x6714} /* East Asian ideograph */, + {0, 0, 0x671B} /* East Asian ideograph */, + {0, 0, 0x671D} /* East Asian ideograph */, + {0, 0, 0x671F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6727} /* East Asian ideograph */, + {0, 0, 0x6728} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x672C} /* East Asian ideograph */, + {0, 0, 0x672B} /* East Asian ideograph */, + {0, 0, 0x672A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x673D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6731} /* East Asian ideograph */, + {0, 0, 0x6735} /* East Asian ideograph */, + {0, 0, 0x675E} /* East Asian ideograph */, + {0, 0, 0x6751} /* East Asian ideograph */, + {0, 0, 0x674E} /* East Asian ideograph */, + {0, 0, 0x675C} /* East Asian ideograph */, + {0, 0, 0x6750} /* East Asian ideograph */, + {0, 0, 0x6756} /* East Asian ideograph */, + {0, 0, 0x675F} /* East Asian ideograph */, + {0, 0, 0x674F} /* East Asian ideograph */, + {0, 0, 0x6749} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x676D} /* East Asian ideograph */, + {0, 0, 0x678B} /* East Asian ideograph */, + {0, 0, 0x6795} /* East Asian ideograph */, + {0, 0, 0x6789} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page22 = { + 0, marc8_9page22_dir +}; +/* PAGE 21 */ +struct yaz_iconv_trie_dir marc8_9page21_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x64CE} /* East Asian ideograph */, + {0, 0, 0x64D4} /* East Asian ideograph */, + {0, 0, 0x64D2} /* East Asian ideograph */, + {0, 0, 0x64BF} /* East Asian ideograph */, + {0, 0, 0x64E0} /* East Asian ideograph */, + {0, 0, 0x64F0} /* East Asian ideograph */, + {0, 0, 0x64E6} /* East Asian ideograph */, + {0, 0, 0x64EC} /* East Asian ideograph */, + {0, 0, 0x64F1} /* East Asian ideograph */, + {0, 0, 0x64F4} /* East Asian ideograph */, + {0, 0, 0x64F2} /* East Asian ideograph */, + {0, 0, 0x6506} /* East Asian ideograph */, + {0, 0, 0x6500} /* East Asian ideograph */, + {0, 0, 0x64FE} /* East Asian ideograph */, + {0, 0, 0x64FB} /* East Asian ideograph */, + {0, 0, 0x64FA} /* East Asian ideograph */, + {0, 0, 0x650F} /* East Asian ideograph */, + {0, 0, 0x6518} /* East Asian ideograph */, + {0, 0, 0x6514} /* East Asian ideograph */, + {0, 0, 0x6519} /* East Asian ideograph */, + {0, 0, 0x651D} /* East Asian ideograph */, + {0, 0, 0x651C} /* East Asian ideograph */, + {0, 0, 0x6523} /* East Asian ideograph */, + {0, 0, 0x6524} /* East Asian ideograph */, + {0, 0, 0x652B} /* East Asian ideograph */, + {0, 0, 0x652A} /* East Asian ideograph */, + {0, 0, 0x652C} /* East Asian ideograph */, + {0, 0, 0x652F} /* East Asian ideograph */, + {0, 0, 0x6536} /* East Asian ideograph */, + {0, 0, 0x6539} /* East Asian ideograph */, + {0, 0, 0x653B} /* East Asian ideograph */, + {0, 0, 0x653E} /* East Asian ideograph */, + {0, 0, 0x653F} /* East Asian ideograph */, + {0, 0, 0x6545} /* East Asian ideograph */, + {0, 0, 0x6548} /* East Asian ideograph */, + {0, 0, 0x654E} /* East Asian ideograph */, + {0, 0, 0x6556} /* East Asian ideograph */, + {0, 0, 0x6551} /* East Asian ideograph */, + {0, 0, 0x6557} /* East Asian ideograph */, + {0, 0, 0x655D} /* East Asian ideograph */, + {0, 0, 0x6558} /* East Asian ideograph */, + {0, 0, 0x654F} /* East Asian ideograph */, + {0, 0, 0x6566} /* East Asian ideograph */, + {0, 0, 0x6562} /* East Asian ideograph */, + {0, 0, 0x6563} /* East Asian ideograph */, + {0, 0, 0x655E} /* East Asian ideograph */, + {0, 0, 0x5553} /* East Asian ideograph */, + {0, 0, 0x656C} /* East Asian ideograph */, + {0, 0, 0x6572} /* East Asian ideograph */, + {0, 0, 0x6575} /* East Asian ideograph */, + {0, 0, 0x6577} /* East Asian ideograph */, + {0, 0, 0x6578} /* East Asian ideograph */, + {0, 0, 0x6574} /* East Asian ideograph */, + {0, 0, 0x6582} /* East Asian ideograph */, + {0, 0, 0x6583} /* East Asian ideograph */, + {0, 0, 0x6587} /* East Asian ideograph */, + {0, 0, 0x6591} /* East Asian ideograph */, + {0, 0, 0x6590} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6599} /* East Asian ideograph */, + {0, 0, 0x659C} /* East Asian ideograph */, + {0, 0, 0x659F} /* East Asian ideograph */, + {0, 0, 0x65A1} /* East Asian ideograph */, + {0, 0, 0x65A4} /* East Asian ideograph */, + {0, 0, 0x65A5} /* East Asian ideograph */, + {0, 0, 0x65A7} /* East Asian ideograph */, + {0, 0, 0x65AC} /* East Asian ideograph */, + {0, 0, 0x65AF} /* East Asian ideograph */, + {0, 0, 0x65B0} /* East Asian ideograph */, + {0, 0, 0x65B7} /* East Asian ideograph */, + {0, 0, 0x65B9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x65BD} /* East Asian ideograph */, + {0, 0, 0x65C1} /* East Asian ideograph */, + {0, 0, 0x65C5} /* East Asian ideograph */, + {0, 0, 0x65CE} /* East Asian ideograph */, + {0, 0, 0x65CB} /* East Asian ideograph */, + {0, 0, 0x65CC} /* East Asian ideograph */, + {0, 0, 0x65CF} /* East Asian ideograph */, + {0, 0, 0x65D7} /* East Asian ideograph */, + {0, 0, 0x65D6} /* East Asian ideograph */, + {0, 0, 0x65E2} /* East Asian ideograph */, + {0, 0, 0x65E5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x65E9} /* East Asian ideograph */, + {0, 0, 0x65EC} /* East Asian ideograph */, + {0, 0, 0x65ED} /* East Asian ideograph */, + {0, 0, 0x65E8} /* East Asian ideograph */, + {0, 0, 0x65F1} /* East Asian ideograph */, + {0, 0, 0x65FA} /* East Asian ideograph */, + {0, 0, 0x6606} /* East Asian ideograph */, + {0, 0, 0x6614} /* East Asian ideograph */, + {0, 0, 0x660C} /* East Asian ideograph */, + {0, 0, 0x6600} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page21 = { + 0, marc8_9page21_dir +}; +/* PAGE 20 */ +struct yaz_iconv_trie_dir marc8_9page20_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6367} /* East Asian ideograph */, + {0, 0, 0x6398} /* East Asian ideograph */, + {0, 0, 0x639B} /* East Asian ideograph */, + {0, 0, 0x63AA} /* East Asian ideograph */, + {0, 0, 0x6371} /* East Asian ideograph */, + {0, 0, 0x63A9} /* East Asian ideograph */, + {0, 0, 0x638C} /* East Asian ideograph */, + {0, 0, 0x6389} /* East Asian ideograph */, + {0, 0, 0x63A2} /* East Asian ideograph */, + {0, 0, 0x6399} /* East Asian ideograph */, + {0, 0, 0x63A1} /* East Asian ideograph */, + {0, 0, 0x6388} /* East Asian ideograph */, + {0, 0, 0x63AC} /* East Asian ideograph */, + {0, 0, 0x633D} /* East Asian ideograph */, + {0, 0, 0x6392} /* East Asian ideograph */, + {0, 0, 0x63A3} /* East Asian ideograph */, + {0, 0, 0x6376} /* East Asian ideograph */, + {0, 0, 0x638F} /* East Asian ideograph */, + {0, 0, 0x63A8} /* East Asian ideograph */, + {0, 0, 0x637B} /* East Asian ideograph */, + {0, 0, 0x6368} /* East Asian ideograph (variant of EACC 4B4135) */, + {0, 0, 0x6384} /* East Asian ideograph */, + {0, 0, 0x6380} /* East Asian ideograph */, + {0, 0, 0x63C6} /* East Asian ideograph */, + {0, 0, 0x63C9} /* East Asian ideograph */, + {0, 0, 0x63CD} /* East Asian ideograph */, + {0, 0, 0x63E1} /* East Asian ideograph */, + {0, 0, 0x63C0} /* East Asian ideograph */, + {0, 0, 0x63E9} /* East Asian ideograph */, + {0, 0, 0x63D0} /* East Asian ideograph */, + {0, 0, 0x63DA} /* East Asian ideograph */, + {0, 0, 0x63D6} /* East Asian ideograph */, + {0, 0, 0x63ED} /* East Asian ideograph */, + {0, 0, 0x63EE} /* East Asian ideograph */, + {0, 0, 0x63CF} /* East Asian ideograph */, + {0, 0, 0x63E3} /* East Asian ideograph */, + {0, 0, 0x63F4} /* East Asian ideograph */, + {0, 0, 0x63DB} /* East Asian ideograph (variant of EACC 454146) */, + {0, 0, 0x63D2} /* East Asian ideograph */, + {0, 0, 0x63EA} /* East Asian ideograph */, + {0, 0, 0x641E} /* East Asian ideograph */, + {0, 0, 0x642A} /* East Asian ideograph */, + {0, 0, 0x643E} /* East Asian ideograph */, + {0, 0, 0x6413} /* East Asian ideograph */, + {0, 0, 0x640F} /* East Asian ideograph */, + {0, 0, 0x6414} /* East Asian ideograph */, + {0, 0, 0x640D} /* East Asian ideograph */, + {0, 0, 0x642D} /* East Asian ideograph */, + {0, 0, 0x643D} /* East Asian ideograph */, + {0, 0, 0x6416} /* East Asian ideograph */, + {0, 0, 0x6417} /* East Asian ideograph */, + {0, 0, 0x641C} /* East Asian ideograph */, + {0, 0, 0x6436} /* East Asian ideograph */, + {0, 0, 0x642C} /* East Asian ideograph */, + {0, 0, 0x6458} /* East Asian ideograph */, + {0, 0, 0x6469} /* East Asian ideograph */, + {0, 0, 0x6454} /* East Asian ideograph */, + {0, 0, 0x6452} /* East Asian ideograph */, + {0, 0, 0x646F} /* East Asian ideograph */, + {0, 0, 0x6478} /* East Asian ideograph */, + {0, 0, 0x6479} /* East Asian ideograph */, + {0, 0, 0x647A} /* East Asian ideograph */, + {0, 0, 0x645F} /* East Asian ideograph */, + {0, 0, 0x6451} /* East Asian ideograph */, + {0, 0, 0x6467} /* East Asian ideograph */, + {0, 0, 0x649E} /* East Asian ideograph */, + {0, 0, 0x64A4} /* East Asian ideograph */, + {0, 0, 0x6487} /* East Asian ideograph */, + {0, 0, 0x6488} /* East Asian ideograph */, + {0, 0, 0x64A5} /* East Asian ideograph */, + {0, 0, 0x64B0} /* East Asian ideograph */, + {0, 0, 0x6493} /* East Asian ideograph */, + {0, 0, 0x6495} /* East Asian ideograph */, + {0, 0, 0x6492} /* East Asian ideograph */, + {0, 0, 0x64A9} /* East Asian ideograph */, + {0, 0, 0x6491} /* East Asian ideograph */, + {0, 0, 0x64AE} /* East Asian ideograph */, + {0, 0, 0x64B2} /* East Asian ideograph */, + {0, 0, 0x64AD} /* East Asian ideograph */, + {0, 0, 0x649A} /* East Asian ideograph */, + {0, 0, 0x64AB} /* East Asian ideograph */, + {0, 0, 0x64AC} /* East Asian ideograph */, + {0, 0, 0x64C5} /* East Asian ideograph */, + {0, 0, 0x64C1} /* East Asian ideograph */, + {0, 0, 0x64D8} /* East Asian ideograph */, + {0, 0, 0x64CA} /* East Asian ideograph */, + {0, 0, 0x64BB} /* East Asian ideograph */, + {0, 0, 0x64C2} /* East Asian ideograph */, + {0, 0, 0x64BC} /* East Asian ideograph */, + {0, 0, 0x64CB} /* East Asian ideograph */, + {0, 0, 0x64CD} /* East Asian ideograph */, + {0, 0, 0x64DA} /* East Asian ideograph */, + {0, 0, 0x64C4} /* East Asian ideograph */, + {0, 0, 0x64C7} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page20 = { + 0, marc8_9page20_dir +}; +/* PAGE 19 */ +struct yaz_iconv_trie_dir marc8_9page19_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6252} /* East Asian ideograph */, + {0, 0, 0x625B} /* East Asian ideograph */, + {0, 0, 0x6263} /* East Asian ideograph */, + {0, 0, 0x6258} /* East Asian ideograph */, + {0, 0, 0x6296} /* East Asian ideograph */, + {0, 0, 0x6297} /* East Asian ideograph */, + {0, 0, 0x6292} /* East Asian ideograph */, + {0, 0, 0x6276} /* East Asian ideograph */, + {0, 0, 0x6289} /* East Asian ideograph */, + {0, 0, 0x627F} /* East Asian ideograph */, + {0, 0, 0x6279} /* East Asian ideograph */, + {0, 0, 0x6280} /* East Asian ideograph */, + {0, 0, 0x628A} /* East Asian ideograph */, + {0, 0, 0x626D} /* East Asian ideograph */, + {0, 0, 0x627C} /* East Asian ideograph */, + {0, 0, 0x627E} /* East Asian ideograph */, + {0, 0, 0x626F} /* East Asian ideograph */, + {0, 0, 0x6284} /* East Asian ideograph */, + {0, 0, 0x6295} /* East Asian ideograph */, + {0, 0, 0x6291} /* East Asian ideograph */, + {0, 0, 0x6298} /* East Asian ideograph */, + {0, 0, 0x626E} /* East Asian ideograph */, + {0, 0, 0x6273} /* East Asian ideograph */, + {0, 0, 0x6293} /* East Asian ideograph */, + {0, 0, 0x62C9} /* East Asian ideograph */, + {0, 0, 0x62C4} /* East Asian ideograph */, + {0, 0, 0x62CC} /* East Asian ideograph */, + {0, 0, 0x62A8} /* East Asian ideograph */, + {0, 0, 0x62DC} /* East Asian ideograph */, + {0, 0, 0x62BF} /* East Asian ideograph */, + {0, 0, 0x62C2} /* East Asian ideograph */, + {0, 0, 0x62B9} /* East Asian ideograph */, + {0, 0, 0x62D2} /* East Asian ideograph */, + {0, 0, 0x62D3} /* East Asian ideograph */, + {0, 0, 0x62DB} /* East Asian ideograph */, + {0, 0, 0x62AB} /* East Asian ideograph */, + {0, 0, 0x62CB} /* East Asian ideograph */, + {0, 0, 0x62D4} /* East Asian ideograph */, + {0, 0, 0x62BD} /* East Asian ideograph */, + {0, 0, 0x62BC} /* East Asian ideograph */, + {0, 0, 0x62D0} /* East Asian ideograph (variant of EACC 4B4049) */, + {0, 0, 0x62C8} /* East Asian ideograph */, + {0, 0, 0x62D9} /* East Asian ideograph */, + {0, 0, 0x62DA} /* East Asian ideograph */, + {0, 0, 0x62AC} /* East Asian ideograph */, + {0, 0, 0x62C7} /* East Asian ideograph */, + {0, 0, 0x62B1} /* East Asian ideograph */, + {0, 0, 0x62D6} /* East Asian ideograph */, + {0, 0, 0x62D8} /* East Asian ideograph */, + {0, 0, 0x62CD} /* East Asian ideograph */, + {0, 0, 0x62B5} /* East Asian ideograph */, + {0, 0, 0x62CE} /* East Asian ideograph */, + {0, 0, 0x62D7} /* East Asian ideograph */, + {0, 0, 0x62C6} /* East Asian ideograph */, + {0, 0, 0x6309} /* East Asian ideograph */, + {0, 0, 0x6316} /* East Asian ideograph */, + {0, 0, 0x62FC} /* East Asian ideograph */, + {0, 0, 0x62F3} /* East Asian ideograph */, + {0, 0, 0x6308} /* East Asian ideograph */, + {0, 0, 0x62ED} /* East Asian ideograph */, + {0, 0, 0x6301} /* East Asian ideograph */, + {0, 0, 0x62EE} /* East Asian ideograph */, + {0, 0, 0x62EF} /* East Asian ideograph */, + {0, 0, 0x62F7} /* East Asian ideograph */, + {0, 0, 0x6307} /* East Asian ideograph */, + {0, 0, 0x62F1} /* East Asian ideograph */, + {0, 0, 0x62FD} /* East Asian ideograph */, + {0, 0, 0x6311} /* East Asian ideograph */, + {0, 0, 0x62EC} /* East Asian ideograph */, + {0, 0, 0x62F4} /* East Asian ideograph (variant of EACC 4B4066) */, + {0, 0, 0x62FF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6342} /* East Asian ideograph */, + {0, 0, 0x632A} /* East Asian ideograph */, + {0, 0, 0x6355} /* East Asian ideograph */, + {0, 0, 0x633E} /* East Asian ideograph */, + {0, 0, 0x632F} /* East Asian ideograph */, + {0, 0, 0x634E} /* East Asian ideograph */, + {0, 0, 0x634F} /* East Asian ideograph */, + {0, 0, 0x6350} /* East Asian ideograph */, + {0, 0, 0x6349} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x632B} /* East Asian ideograph */, + {0, 0, 0x6328} /* East Asian ideograph */, + {0, 0, 0x633A} /* East Asian ideograph */, + {0, 0, 0x63A5} /* East Asian ideograph */, + {0, 0, 0x6369} /* East Asian ideograph */, + {0, 0, 0x63A0} /* East Asian ideograph */, + {0, 0, 0x6396} /* East Asian ideograph */, + {0, 0, 0x63A7} /* East Asian ideograph */, + {0, 0, 0x6372} /* East Asian ideograph */, + {0, 0, 0x6377} /* East Asian ideograph */, + {0, 0, 0x6383} /* East Asian ideograph */, + {0, 0, 0x636B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page19 = { + 0, marc8_9page19_dir +}; +/* PAGE 18 */ +struct yaz_iconv_trie_dir marc8_9page18_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6148} /* East Asian ideograph */, + {0, 0, 0x6168} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x613C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x614C} /* East Asian ideograph */, + {0, 0, 0x614D} /* East Asian ideograph */, + {0, 0, 0x614B} /* East Asian ideograph */, + {0, 0, 0x613E} /* East Asian ideograph */, + {0, 0, 0x6127} /* East Asian ideograph */, + {0, 0, 0x6134} /* East Asian ideograph */, + {0, 0, 0x6147} /* East Asian ideograph */, + {0, 0, 0x6177} /* East Asian ideograph */, + {0, 0, 0x6176} /* East Asian ideograph */, + {0, 0, 0x6167} /* East Asian ideograph */, + {0, 0, 0x6170} /* East Asian ideograph */, + {0, 0, 0x615A} /* East Asian ideograph */, + {0, 0, 0x615D} /* East Asian ideograph */, + {0, 0, 0x6182} /* East Asian ideograph */, + {0, 0, 0x617C} /* East Asian ideograph */, + {0, 0, 0x6162} /* East Asian ideograph */, + {0, 0, 0x616E} /* East Asian ideograph */, + {0, 0, 0x6155} /* East Asian ideograph */, + {0, 0, 0x6158} /* East Asian ideograph */, + {0, 0, 0x6163} /* East Asian ideograph */, + {0, 0, 0x615F} /* East Asian ideograph */, + {0, 0, 0x616B} /* East Asian ideograph */, + {0, 0, 0x617E} /* East Asian ideograph */, + {0, 0, 0x61A7} /* East Asian ideograph */, + {0, 0, 0x61B2} /* East Asian ideograph */, + {0, 0, 0x6191} /* East Asian ideograph */, + {0, 0, 0x618E} /* East Asian ideograph */, + {0, 0, 0x61AB} /* East Asian ideograph */, + {0, 0, 0x61A4} /* East Asian ideograph */, + {0, 0, 0x61AC} /* East Asian ideograph */, + {0, 0, 0x619A} /* East Asian ideograph */, + {0, 0, 0x61A9} /* East Asian ideograph */, + {0, 0, 0x6194} /* East Asian ideograph */, + {0, 0, 0x618A} /* East Asian ideograph */, + {0, 0, 0x61B6} /* East Asian ideograph */, + {0, 0, 0x61CD} /* East Asian ideograph */, + {0, 0, 0x61C9} /* East Asian ideograph */, + {0, 0, 0x6190} /* East Asian ideograph */, + {0, 0, 0x61BE} /* East Asian ideograph */, + {0, 0, 0x61C2} /* East Asian ideograph */, + {0, 0, 0x61C7} /* East Asian ideograph */, + {0, 0, 0x61C8} /* East Asian ideograph */, + {0, 0, 0x61CA} /* East Asian ideograph */, + {0, 0, 0x61E3} /* East Asian ideograph */, + {0, 0, 0x61E6} /* East Asian ideograph */, + {0, 0, 0x61F2} /* East Asian ideograph (variant of EACC 4B3F53) */, + {0, 0, 0x61F7} /* East Asian ideograph */, + {0, 0, 0x61F6} /* East Asian ideograph */, + {0, 0, 0x61F8} /* East Asian ideograph */, + {0, 0, 0x61F5} /* East Asian ideograph */, + {0, 0, 0x61FA} /* East Asian ideograph */, + {0, 0, 0x61FE} /* East Asian ideograph */, + {0, 0, 0x61FF} /* East Asian ideograph */, + {0, 0, 0x61FC} /* East Asian ideograph */, + {0, 0, 0x6200} /* East Asian ideograph */, + {0, 0, 0x6208} /* East Asian ideograph */, + {0, 0, 0x620A} /* East Asian ideograph */, + {0, 0, 0x620E} /* East Asian ideograph */, + {0, 0, 0x620D} /* East Asian ideograph */, + {0, 0, 0x620C} /* East Asian ideograph */, + {0, 0, 0x6210} /* East Asian ideograph */, + {0, 0, 0x6212} /* East Asian ideograph */, + {0, 0, 0x6211} /* East Asian ideograph */, + {0, 0, 0x6216} /* East Asian ideograph */, + {0, 0, 0x6215} /* East Asian ideograph */, + {0, 0, 0x621B} /* East Asian ideograph */, + {0, 0, 0x621A} /* East Asian ideograph */, + {0, 0, 0x621F} /* East Asian ideograph */, + {0, 0, 0x6221} /* East Asian ideograph */, + {0, 0, 0x6222} /* East Asian ideograph */, + {0, 0, 0x622A} /* East Asian ideograph */, + {0, 0, 0x622E} /* East Asian ideograph */, + {0, 0, 0x6230} /* East Asian ideograph */, + {0, 0, 0x6232} /* East Asian ideograph */, + {0, 0, 0x6234} /* East Asian ideograph */, + {0, 0, 0x6233} /* East Asian ideograph */, + {0, 0, 0x6236} /* East Asian ideograph */, + {0, 0, 0x623F} /* East Asian ideograph */, + {0, 0, 0x623E} /* East Asian ideograph */, + {0, 0, 0x6240} /* East Asian ideograph */, + {0, 0, 0x6241} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x6248} /* East Asian ideograph */, + {0, 0, 0x6249} /* East Asian ideograph */, + {0, 0, 0x624B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x6253} /* East Asian ideograph */, + {0, 0, 0x6254} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page18 = { + 0, marc8_9page18_dir +}; +/* PAGE 17 */ +struct yaz_iconv_trie_dir marc8_9page17_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5FCD} /* East Asian ideograph */, + {0, 0, 0x5FEB} /* East Asian ideograph */, + {0, 0, 0x5FE0} /* East Asian ideograph */, + {0, 0, 0x5FF1} /* East Asian ideograph */, + {0, 0, 0x5FFD} /* East Asian ideograph */, + {0, 0, 0x5FDD} /* East Asian ideograph */, + {0, 0, 0x5FF5} /* East Asian ideograph */, + {0, 0, 0x5FFF} /* East Asian ideograph */, + {0, 0, 0x6014} /* East Asian ideograph */, + {0, 0, 0x6035} /* East Asian ideograph (variant of EACC 4B3E2A) */, + {0, 0, 0x602A} /* East Asian ideograph */, + {0, 0, 0x602F} /* East Asian ideograph */, + {0, 0, 0x6016} /* East Asian ideograph */, + {0, 0, 0x601D} /* East Asian ideograph */, + {0, 0, 0x600F} /* East Asian ideograph */, + {0, 0, 0x6021} /* East Asian ideograph */, + {0, 0, 0x6020} /* East Asian ideograph */, + {0, 0, 0x6028} /* East Asian ideograph */, + {0, 0, 0x6025} /* East Asian ideograph */, + {0, 0, 0x6027} /* East Asian ideograph */, + {0, 0, 0x600E} /* East Asian ideograph */, + {0, 0, 0x6015} /* East Asian ideograph */, + {0, 0, 0x6012} /* East Asian ideograph */, + {0, 0, 0x6059} /* East Asian ideograph */, + {0, 0, 0x6063} /* East Asian ideograph */, + {0, 0, 0x6068} /* East Asian ideograph */, + {0, 0, 0x6043} /* East Asian ideograph */, + {0, 0, 0x6065} /* East Asian ideograph */, + {0, 0, 0x6050} /* East Asian ideograph */, + {0, 0, 0x606D} /* East Asian ideograph */, + {0, 0, 0x6062} /* East Asian ideograph */, + {0, 0, 0x6046} /* East Asian ideograph (variant of EACC 4B3E40) */, + {0, 0, 0x604D} /* East Asian ideograph */, + {0, 0, 0x606B} /* East Asian ideograph */, + {0, 0, 0x6069} /* East Asian ideograph */, + {0, 0, 0x606C} /* East Asian ideograph */, + {0, 0, 0x606F} /* East Asian ideograph */, + {0, 0, 0x606A} /* East Asian ideograph */, + {0, 0, 0x6064} /* East Asian ideograph */, + {0, 0, 0x6070} /* East Asian ideograph */, + {0, 0, 0x6055} /* East Asian ideograph */, + {0, 0, 0x608C} /* East Asian ideograph */, + {0, 0, 0x60A6} /* East Asian ideograph */, + {0, 0, 0x607F} /* East Asian ideograph */, + {0, 0, 0x609F} /* East Asian ideograph */, + {0, 0, 0x609A} /* East Asian ideograph */, + {0, 0, 0x6096} /* East Asian ideograph */, + {0, 0, 0x6084} /* East Asian ideograph */, + {0, 0, 0x608D} /* East Asian ideograph */, + {0, 0, 0x60A3} /* East Asian ideograph */, + {0, 0, 0x6089} /* East Asian ideograph */, + {0, 0, 0x6094} /* East Asian ideograph */, + {0, 0, 0x60A0} /* East Asian ideograph */, + {0, 0, 0x60A8} /* East Asian ideograph */, + {0, 0, 0x60B4} /* East Asian ideograph */, + {0, 0, 0x60E6} /* East Asian ideograph */, + {0, 0, 0x60CB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x60C5} /* East Asian ideograph (variant of EACC 4B3E5B) */, + {0, 0, 0x60B6} /* East Asian ideograph */, + {0, 0, 0x60D1} /* East Asian ideograph */, + {0, 0, 0x60B5} /* East Asian ideograph */, + {0, 0, 0x60BB} /* East Asian ideograph */, + {0, 0, 0x60E0} /* East Asian ideograph */, + {0, 0, 0x60E1} /* East Asian ideograph */, + {0, 0, 0x60DC} /* East Asian ideograph */, + {0, 0, 0x60D8} /* East Asian ideograph */, + {0, 0, 0x60D5} /* East Asian ideograph */, + {0, 0, 0x60BC} /* East Asian ideograph */, + {0, 0, 0x60B2} /* East Asian ideograph */, + {0, 0, 0x60C6} /* East Asian ideograph */, + {0, 0, 0x60B8} /* East Asian ideograph */, + {0, 0, 0x60DA} /* East Asian ideograph */, + {0, 0, 0x60DF} /* East Asian ideograph */, + {0, 0, 0x610F} /* East Asian ideograph */, + {0, 0, 0x611C} /* East Asian ideograph */, + {0, 0, 0x60F3} /* East Asian ideograph */, + {0, 0, 0x611F} /* East Asian ideograph */, + {0, 0, 0x60F0} /* East Asian ideograph */, + {0, 0, 0x60FB} /* East Asian ideograph */, + {0, 0, 0x60FA} /* East Asian ideograph */, + {0, 0, 0x611A} /* East Asian ideograph */, + {0, 0, 0x6115} /* East Asian ideograph */, + {0, 0, 0x60F9} /* East Asian ideograph */, + {0, 0, 0x6123} /* East Asian ideograph */, + {0, 0, 0x60F4} /* East Asian ideograph */, + {0, 0, 0x611B} /* East Asian ideograph */, + {0, 0, 0x610E} /* East Asian ideograph */, + {0, 0, 0x6100} /* East Asian ideograph */, + {0, 0, 0x6101} /* East Asian ideograph */, + {0, 0, 0x60F6} /* East Asian ideograph */, + {0, 0, 0x6109} /* East Asian ideograph */, + {0, 0, 0x6108} /* East Asian ideograph */, + {0, 0, 0x60F1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page17 = { + 0, marc8_9page17_dir +}; +/* PAGE 16 */ +struct yaz_iconv_trie_dir marc8_9page16_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5EBE} /* East Asian ideograph */, + {0, 0, 0x5ECA} /* East Asian ideograph */, + {0, 0, 0x5EC9} /* East Asian ideograph */, + {0, 0, 0x5EC8} /* East Asian ideograph */, + {0, 0, 0x5ED3} /* East Asian ideograph */, + {0, 0, 0x5ED6} /* East Asian ideograph */, + {0, 0, 0x5EE2} /* East Asian ideograph */, + {0, 0, 0x5EDA} /* East Asian ideograph */, + {0, 0, 0x5EDD} /* East Asian ideograph */, + {0, 0, 0x5EE3} /* East Asian ideograph (variant of EACC 4B3D2A) */, + {0, 0, 0x5EDF} /* East Asian ideograph */, + {0, 0, 0x5EE0} /* East Asian ideograph */, + {0, 0, 0x9F90} /* East Asian ideograph */, + {0, 0, 0x5EEC} /* East Asian ideograph */, + {0, 0, 0x5EF3} /* East Asian ideograph */, + {0, 0, 0x5EF7} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5EF6} /* East Asian ideograph */, + {0, 0, 0x5EFA} /* East Asian ideograph */, + {0, 0, 0x5EFF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5F04} /* East Asian ideograph */, + {0, 0, 0x5F08} /* East Asian ideograph */, + {0, 0, 0x5F0A} /* East Asian ideograph */, + {0, 0, 0x5F0F} /* East Asian ideograph */, + {0, 0, 0x5F12} /* East Asian ideograph */, + {0, 0, 0x5F13} /* East Asian ideograph */, + {0, 0, 0x5F15} /* East Asian ideograph */, + {0, 0, 0x5F14} /* East Asian ideograph */, + {0, 0, 0x5F18} /* East Asian ideograph */, + {0, 0, 0x5F17} /* East Asian ideograph */, + {0, 0, 0x5F1B} /* East Asian ideograph */, + {0, 0, 0x5F1F} /* East Asian ideograph */, + {0, 0, 0x5F26} /* East Asian ideograph */, + {0, 0, 0x5F27} /* East Asian ideograph */, + {0, 0, 0x5F29} /* East Asian ideograph */, + {0, 0, 0x5F2D} /* East Asian ideograph */, + {0, 0, 0x5F31} /* East Asian ideograph */, + {0, 0, 0x5F35} /* East Asian ideograph */, + {0, 0, 0x5F37} /* East Asian ideograph */, + {0, 0, 0x5F3C} /* East Asian ideograph */, + {0, 0, 0x5F46} /* East Asian ideograph */, + {0, 0, 0x5F48} /* East Asian ideograph */, + {0, 0, 0x5F4C} /* East Asian ideograph */, + {0, 0, 0x5F4E} /* East Asian ideograph */, + {0, 0, 0x5F57} /* East Asian ideograph */, + {0, 0, 0x5F59} /* East Asian ideograph */, + {0, 0, 0x5F5D} /* East Asian ideograph */, + {0, 0, 0x5F62} /* East Asian ideograph */, + {0, 0, 0x5F64} /* East Asian ideograph */, + {0, 0, 0x5F65} /* East Asian ideograph */, + {0, 0, 0x5F6C} /* East Asian ideograph */, + {0, 0, 0x5F69} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5F6D} /* East Asian ideograph */, + {0, 0, 0x5F70} /* East Asian ideograph */, + {0, 0, 0x5F71} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5F79} /* East Asian ideograph */, + {0, 0, 0x5F80} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5F7F} /* East Asian ideograph */, + {0, 0, 0x5F7C} /* East Asian ideograph */, + {0, 0, 0x5F85} /* East Asian ideograph */, + {0, 0, 0x5F88} /* East Asian ideograph */, + {0, 0, 0x5F8B} /* East Asian ideograph */, + {0, 0, 0x5F8A} /* East Asian ideograph */, + {0, 0, 0x5F87} /* East Asian ideograph */, + {0, 0, 0x5F8C} /* East Asian ideograph */, + {0, 0, 0x5F92} /* East Asian ideograph */, + {0, 0, 0x5F91} /* East Asian ideograph */, + {0, 0, 0x5F90} /* East Asian ideograph */, + {0, 0, 0x5F98} /* East Asian ideograph */, + {0, 0, 0x5F97} /* East Asian ideograph */, + {0, 0, 0x5F99} /* East Asian ideograph */, + {0, 0, 0x5F9E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5FA9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5FAA} /* East Asian ideograph */, + {0, 0, 0x5FAC} /* East Asian ideograph */, + {0, 0, 0x5FAE} /* East Asian ideograph */, + {0, 0, 0x5FB9} /* East Asian ideograph */, + {0, 0, 0x5FB7} /* East Asian ideograph */, + {0, 0, 0x5FB5} /* East Asian ideograph */, + {0, 0, 0x5FBD} /* East Asian ideograph */, + {0, 0, 0x5FC3} /* East Asian ideograph */, + {0, 0, 0x5FC5} /* East Asian ideograph */, + {0, 0, 0x5FD9} /* East Asian ideograph */, + {0, 0, 0x5FD8} /* East Asian ideograph */, + {0, 0, 0x5FCC} /* East Asian ideograph */, + {0, 0, 0x5FD6} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page16 = { + 0, marc8_9page16_dir +}; +/* PAGE 15 */ +struct yaz_iconv_trie_dir marc8_9page15_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5D0E} /* East Asian ideograph */, + {0, 0, 0x5D11} /* East Asian ideograph */, + {0, 0, 0x5D22} /* East Asian ideograph */, + {0, 0, 0x5D29} /* East Asian ideograph */, + {0, 0, 0x5D14} /* East Asian ideograph */, + {0, 0, 0x5D19} /* East Asian ideograph */, + {0, 0, 0x5D4C} /* East Asian ideograph */, + {0, 0, 0x5D50} /* East Asian ideograph */, + {0, 0, 0x5D69} /* East Asian ideograph */, + {0, 0, 0x5D84} /* East Asian ideograph */, + {0, 0, 0x5D87} /* East Asian ideograph */, + {0, 0, 0x5D9D} /* East Asian ideograph */, + {0, 0, 0x5DBC} /* East Asian ideograph */, + {0, 0, 0x5DBD} /* East Asian ideograph */, + {0, 0, 0x5DBA} /* East Asian ideograph (variant of EACC 4B3C2F) */, + {0, 0, 0x5DCD} /* East Asian ideograph */, + {0, 0, 0x5DD2} /* East Asian ideograph */, + {0, 0, 0x5DD4} /* East Asian ideograph */, + {0, 0, 0x5DD6} /* East Asian ideograph */, + {0, 0, 0x5DDD} /* East Asian ideograph */, + {0, 0, 0x5DDE} /* East Asian ideograph */, + {0, 0, 0x5DE2} /* East Asian ideograph */, + {0, 0, 0x5DE5} /* East Asian ideograph */, + {0, 0, 0x5DE8} /* East Asian ideograph */, + {0, 0, 0x5DE7} /* East Asian ideograph */, + {0, 0, 0x5DE6} /* East Asian ideograph */, + {0, 0, 0x5DEB} /* East Asian ideograph */, + {0, 0, 0x5DEE} /* East Asian ideograph */, + {0, 0, 0x5DF1} /* East Asian ideograph */, + {0, 0, 0x5DF2} /* East Asian ideograph */, + {0, 0, 0x5DF3} /* East Asian ideograph */, + {0, 0, 0x5DF4} /* East Asian ideograph */, + {0, 0, 0x5DF7} /* East Asian ideograph */, + {0, 0, 0x5DFD} /* East Asian ideograph */, + {0, 0, 0x5DFE} /* East Asian ideograph */, + {0, 0, 0x5E02} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5E06} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5E1A} /* East Asian ideograph */, + {0, 0, 0x5E16} /* East Asian ideograph */, + {0, 0, 0x5E15} /* East Asian ideograph */, + {0, 0, 0x5E1B} /* East Asian ideograph */, + {0, 0, 0x5E11} /* East Asian ideograph */, + {0, 0, 0x5E1D} /* East Asian ideograph */, + {0, 0, 0x5E25} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5E2B} /* East Asian ideograph */, + {0, 0, 0x5E33} /* East Asian ideograph */, + {0, 0, 0x5E36} /* East Asian ideograph */, + {0, 0, 0x5E38} /* East Asian ideograph */, + {0, 0, 0x5E37} /* East Asian ideograph */, + {0, 0, 0x5E45} /* East Asian ideograph */, + {0, 0, 0x5E3D} /* East Asian ideograph */, + {0, 0, 0x5E40} /* East Asian ideograph */, + {0, 0, 0x5E4C} /* East Asian ideograph */, + {0, 0, 0x5E5B} /* East Asian ideograph */, + {0, 0, 0x5E54} /* East Asian ideograph */, + {0, 0, 0x5E57} /* East Asian ideograph */, + {0, 0, 0x5E55} /* East Asian ideograph */, + {0, 0, 0x5E63} /* East Asian ideograph */, + {0, 0, 0x5E62} /* East Asian ideograph */, + {0, 0, 0x5E5F} /* East Asian ideograph */, + {0, 0, 0x5E6B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5E73} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5E74} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5E7B} /* East Asian ideograph */, + {0, 0, 0x5E7C} /* East Asian ideograph */, + {0, 0, 0x5E7D} /* East Asian ideograph */, + {0, 0, 0x5E7E} /* East Asian ideograph */, + {0, 0, 0x5E8F} /* East Asian ideograph */, + {0, 0, 0x5E87} /* East Asian ideograph */, + {0, 0, 0x5E8A} /* East Asian ideograph */, + {0, 0, 0x5E9A} /* East Asian ideograph */, + {0, 0, 0x5E97} /* East Asian ideograph */, + {0, 0, 0x5E96} /* East Asian ideograph */, + {0, 0, 0x5E9C} /* East Asian ideograph */, + {0, 0, 0x5E95} /* East Asian ideograph */, + {0, 0, 0x5EA0} /* East Asian ideograph */, + {0, 0, 0x5EA6} /* East Asian ideograph */, + {0, 0, 0x5EAB} /* East Asian ideograph */, + {0, 0, 0x5EA7} /* East Asian ideograph */, + {0, 0, 0x5EAD} /* East Asian ideograph */, + {0, 0, 0x5EB7} /* East Asian ideograph */, + {0, 0, 0x5EB8} /* East Asian ideograph */, + {0, 0, 0x5EB6} /* East Asian ideograph */, + {0, 0, 0x5EB5} /* East Asian ideograph */, + {0, 0, 0x5EC2} /* East Asian ideograph */, + {0, 0, 0x5EC1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page15 = { + 0, marc8_9page15_dir +}; +/* PAGE 14 */ +struct yaz_iconv_trie_dir marc8_9page14_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5BC6} /* East Asian ideograph */, + {0, 0, 0x5BC7} /* East Asian ideograph */, + {0, 0, 0x5BC5} /* East Asian ideograph */, + {0, 0, 0x5BC4} /* East Asian ideograph */, + {0, 0, 0x5BC2} /* East Asian ideograph */, + {0, 0, 0x5BBF} /* East Asian ideograph */, + {0, 0, 0x5BCC} /* East Asian ideograph */, + {0, 0, 0x5BD2} /* East Asian ideograph */, + {0, 0, 0x5BD0} /* East Asian ideograph */, + {0, 0, 0x5BD3} /* East Asian ideograph */, + {0, 0, 0x5BE1} /* East Asian ideograph */, + {0, 0, 0x5BE5} /* East Asian ideograph */, + {0, 0, 0x5BE8} /* East Asian ideograph */, + {0, 0, 0x5BE2} /* East Asian ideograph */, + {0, 0, 0x5BE4} /* East Asian ideograph */, + {0, 0, 0x5BDE} /* East Asian ideograph */, + {0, 0, 0x5BE6} /* East Asian ideograph */, + {0, 0, 0x5BE7} /* East Asian ideograph */, + {0, 0, 0x5BDF} /* East Asian ideograph */, + {0, 0, 0x5BEE} /* East Asian ideograph */, + {0, 0, 0x5BEC} /* East Asian ideograph */, + {0, 0, 0x5BE9} /* East Asian ideograph */, + {0, 0, 0x5BEB} /* East Asian ideograph */, + {0, 0, 0x5BF5} /* East Asian ideograph */, + {0, 0, 0x5BF6} /* East Asian ideograph */, + {0, 0, 0x5BF8} /* East Asian ideograph */, + {0, 0, 0x5BFA} /* East Asian ideograph */, + {0, 0, 0x5C01} /* East Asian ideograph */, + {0, 0, 0x5C04} /* East Asian ideograph */, + {0, 0, 0x5C09} /* East Asian ideograph */, + {0, 0, 0x5C08} /* East Asian ideograph */, + {0, 0, 0x5C07} /* East Asian ideograph */, + {0, 0, 0x5C0A} /* East Asian ideograph */, + {0, 0, 0x5C0B} /* East Asian ideograph */, + {0, 0, 0x5C0D} /* East Asian ideograph */, + {0, 0, 0x5C0E} /* East Asian ideograph */, + {0, 0, 0x5C0F} /* East Asian ideograph */, + {0, 0, 0x5C11} /* East Asian ideograph */, + {0, 0, 0x5C16} /* East Asian ideograph */, + {0, 0, 0x5C1A} /* East Asian ideograph */, + {0, 0, 0x5C24} /* East Asian ideograph */, + {0, 0, 0x5C2C} /* East Asian ideograph */, + {0, 0, 0x5C31} /* East Asian ideograph */, + {0, 0, 0x5C37} /* East Asian ideograph */, + {0, 0, 0x5C38} /* East Asian ideograph */, + {0, 0, 0x5C3A} /* East Asian ideograph */, + {0, 0, 0x5C3C} /* East Asian ideograph */, + {0, 0, 0x5C40} /* East Asian ideograph */, + {0, 0, 0x5C41} /* East Asian ideograph */, + {0, 0, 0x5C3F} /* East Asian ideograph */, + {0, 0, 0x5C3E} /* East Asian ideograph */, + {0, 0, 0x5C46} /* East Asian ideograph */, + {0, 0, 0x5C45} /* East Asian ideograph */, + {0, 0, 0x5C48} /* East Asian ideograph */, + {0, 0, 0x5C4E} /* East Asian ideograph */, + {0, 0, 0x5C4B} /* East Asian ideograph */, + {0, 0, 0x5C4D} /* East Asian ideograph */, + {0, 0, 0x5C55} /* East Asian ideograph */, + {0, 0, 0x5C51} /* East Asian ideograph */, + {0, 0, 0x5C50} /* East Asian ideograph */, + {0, 0, 0x5C5B} /* East Asian ideograph */, + {0, 0, 0x5C60} /* East Asian ideograph */, + {0, 0, 0x5C5C} /* East Asian ideograph */, + {0, 0, 0x5C62} /* East Asian ideograph */, + {0, 0, 0x5C64} /* East Asian ideograph (variant of EACC 4B3B61) */, + {0, 0, 0x5C65} /* East Asian ideograph */, + {0, 0, 0x5C6C} /* East Asian ideograph */, + {0, 0, 0x5C6F} /* East Asian ideograph */, + {0, 0, 0x5C71} /* East Asian ideograph */, + {0, 0, 0x5C79} /* East Asian ideograph */, + {0, 0, 0x5C90} /* East Asian ideograph */, + {0, 0, 0x5C8C} /* East Asian ideograph */, + {0, 0, 0x5C91} /* East Asian ideograph */, + {0, 0, 0x5C94} /* East Asian ideograph */, + {0, 0, 0x5CB7} /* East Asian ideograph */, + {0, 0, 0x5CB8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5CA1} /* East Asian ideograph */, + {0, 0, 0x5CAB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5CB1} /* East Asian ideograph */, + {0, 0, 0x5CD9} /* East Asian ideograph */, + {0, 0, 0x5D01} /* East Asian ideograph */, + {0, 0, 0x5CFD} /* East Asian ideograph */, + {0, 0, 0x5CED} /* East Asian ideograph */, + {0, 0, 0x5CFB} /* East Asian ideograph */, + {0, 0, 0x5CE8} /* East Asian ideograph */, + {0, 0, 0x5CF0} /* East Asian ideograph */, + {0, 0, 0x5CF6} /* East Asian ideograph */, + {0, 0, 0x5CEA} /* East Asian ideograph */, + {0, 0, 0x5D07} /* East Asian ideograph */, + {0, 0, 0x5D06} /* East Asian ideograph */, + {0, 0, 0x5D1B} /* East Asian ideograph */, + {0, 0, 0x5D16} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page14 = { + 0, marc8_9page14_dir +}; +/* PAGE 13 */ +struct yaz_iconv_trie_dir marc8_9page13_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5A46} /* East Asian ideograph */, + {0, 0, 0x5A49} /* East Asian ideograph */, + {0, 0, 0x5A6A} /* East Asian ideograph */, + {0, 0, 0x5A36} /* East Asian ideograph */, + {0, 0, 0x5A4A} /* East Asian ideograph */, + {0, 0, 0x5A40} /* East Asian ideograph */, + {0, 0, 0x5A66} /* East Asian ideograph */, + {0, 0, 0x5A41} /* East Asian ideograph */, + {0, 0, 0x5A3C} /* East Asian ideograph */, + {0, 0, 0x5A62} /* East Asian ideograph */, + {0, 0, 0x5A5A} /* East Asian ideograph */, + {0, 0, 0x5A77} /* East Asian ideograph */, + {0, 0, 0x5A9A} /* East Asian ideograph */, + {0, 0, 0x5A92} /* East Asian ideograph */, + {0, 0, 0x5A7F} /* East Asian ideograph */, + {0, 0, 0x5ABC} /* East Asian ideograph */, + {0, 0, 0x5A9B} /* East Asian ideograph */, + {0, 0, 0x5ACC} /* East Asian ideograph */, + {0, 0, 0x5AC1} /* East Asian ideograph */, + {0, 0, 0x5AC9} /* East Asian ideograph */, + {0, 0, 0x5ABE} /* East Asian ideograph */, + {0, 0, 0x5ABD} /* East Asian ideograph */, + {0, 0, 0x5AB2} /* East Asian ideograph */, + {0, 0, 0x5AC2} /* East Asian ideograph */, + {0, 0, 0x5AB3} /* East Asian ideograph */, + {0, 0, 0x5AE1} /* East Asian ideograph */, + {0, 0, 0x5AD7} /* East Asian ideograph */, + {0, 0, 0x5AD6} /* East Asian ideograph */, + {0, 0, 0x5AE3} /* East Asian ideograph */, + {0, 0, 0x5AE9} /* East Asian ideograph */, + {0, 0, 0x5AD8} /* East Asian ideograph */, + {0, 0, 0x5AE6} /* East Asian ideograph */, + {0, 0, 0x5AFB} /* East Asian ideograph */, + {0, 0, 0x5B09} /* East Asian ideograph */, + {0, 0, 0x5B0B} /* East Asian ideograph */, + {0, 0, 0x5B0C} /* East Asian ideograph */, + {0, 0, 0x5AF5} /* East Asian ideograph */, + {0, 0, 0x5B34} /* East Asian ideograph */, + {0, 0, 0x5B1D} /* East Asian ideograph */, + {0, 0, 0x5B2A} /* East Asian ideograph */, + {0, 0, 0x5B24} /* East Asian ideograph */, + {0, 0, 0x5B30} /* East Asian ideograph */, + {0, 0, 0x5B38} /* East Asian ideograph */, + {0, 0, 0x5B40} /* East Asian ideograph */, + {0, 0, 0x5B50} /* East Asian ideograph */, + {0, 0, 0x5B51} /* East Asian ideograph */, + {0, 0, 0x5B53} /* East Asian ideograph */, + {0, 0, 0x5B54} /* East Asian ideograph */, + {0, 0, 0x5B55} /* East Asian ideograph */, + {0, 0, 0x5B57} /* East Asian ideograph */, + {0, 0, 0x5B58} /* East Asian ideograph */, + {0, 0, 0x5B5D} /* East Asian ideograph */, + {0, 0, 0x5B5C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5B5F} /* East Asian ideograph */, + {0, 0, 0x5B63} /* East Asian ideograph */, + {0, 0, 0x5B64} /* East Asian ideograph */, + {0, 0, 0x5B69} /* East Asian ideograph */, + {0, 0, 0x5B6B} /* East Asian ideograph */, + {0, 0, 0x5B70} /* East Asian ideograph */, + {0, 0, 0x5B73} /* East Asian ideograph */, + {0, 0, 0x5B71} /* East Asian ideograph */, + {0, 0, 0x5B75} /* East Asian ideograph */, + {0, 0, 0x5B78} /* East Asian ideograph */, + {0, 0, 0x5B7A} /* East Asian ideograph */, + {0, 0, 0x5B7D} /* East Asian ideograph */, + {0, 0, 0x5B7F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5B87} /* East Asian ideograph */, + {0, 0, 0x5B88} /* East Asian ideograph */, + {0, 0, 0x5B89} /* East Asian ideograph */, + {0, 0, 0x5B85} /* East Asian ideograph */, + {0, 0, 0x5B8C} /* East Asian ideograph */, + {0, 0, 0x5B8B} /* East Asian ideograph */, + {0, 0, 0x5B8F} /* East Asian ideograph */, + {0, 0, 0x5B97} /* East Asian ideograph */, + {0, 0, 0x5B9A} /* East Asian ideograph */, + {0, 0, 0x5B9C} /* East Asian ideograph */, + {0, 0, 0x5B98} /* East Asian ideograph */, + {0, 0, 0x5B99} /* East Asian ideograph */, + {0, 0, 0x5B9B} /* East Asian ideograph */, + {0, 0, 0x5BA5} /* East Asian ideograph */, + {0, 0, 0x5BA3} /* East Asian ideograph */, + {0, 0, 0x5BA6} /* East Asian ideograph */, + {0, 0, 0x5BA4} /* East Asian ideograph */, + {0, 0, 0x5BA2} /* East Asian ideograph */, + {0, 0, 0x5BB0} /* East Asian ideograph */, + {0, 0, 0x5BB8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5BB5} /* East Asian ideograph */, + {0, 0, 0x5BB4} /* East Asian ideograph */, + {0, 0, 0x5BAE} /* East Asian ideograph */, + {0, 0, 0x5BB9} /* East Asian ideograph */, + {0, 0, 0x5BB3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page13 = { + 0, marc8_9page13_dir +}; +/* PAGE 12 */ +struct yaz_iconv_trie_dir marc8_9page12_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5920} /* East Asian ideograph */, + {0, 0, 0x5924} /* East Asian ideograph */, + {0, 0, 0x5925} /* East Asian ideograph */, + {0, 0, 0x5922} /* East Asian ideograph */, + {0, 0, 0x5927} /* East Asian ideograph */, + {0, 0, 0x592A} /* East Asian ideograph */, + {0, 0, 0x592B} /* East Asian ideograph */, + {0, 0, 0x5929} /* East Asian ideograph */, + {0, 0, 0x592D} /* East Asian ideograph */, + {0, 0, 0x592E} /* East Asian ideograph */, + {0, 0, 0x5931} /* East Asian ideograph */, + {0, 0, 0x5937} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x593E} /* East Asian ideograph */, + {0, 0, 0x5954} /* East Asian ideograph */, + {0, 0, 0x5949} /* East Asian ideograph */, + {0, 0, 0x5948} /* East Asian ideograph */, + {0, 0, 0x5947} /* East Asian ideograph */, + {0, 0, 0x5944} /* East Asian ideograph */, + {0, 0, 0x5955} /* East Asian ideograph */, + {0, 0, 0x5951} /* East Asian ideograph */, + {0, 0, 0x594E} /* East Asian ideograph */, + {0, 0, 0x594F} /* East Asian ideograph */, + {0, 0, 0x5950} /* East Asian ideograph */, + {0, 0, 0x5957} /* East Asian ideograph */, + {0, 0, 0x5958} /* East Asian ideograph */, + {0, 0, 0x595A} /* East Asian ideograph */, + {0, 0, 0x5960} /* East Asian ideograph */, + {0, 0, 0x5962} /* East Asian ideograph */, + {0, 0, 0x5967} /* East Asian ideograph */, + {0, 0, 0x5969} /* East Asian ideograph */, + {0, 0, 0x596A} /* East Asian ideograph */, + {0, 0, 0x596E} /* East Asian ideograph */, + {0, 0, 0x5973} /* East Asian ideograph */, + {0, 0, 0x5974} /* East Asian ideograph */, + {0, 0, 0x5976} /* East Asian ideograph */, + {0, 0, 0x5984} /* East Asian ideograph */, + {0, 0, 0x5983} /* East Asian ideograph */, + {0, 0, 0x5978} /* East Asian ideograph */, + {0, 0, 0x597D} /* East Asian ideograph */, + {0, 0, 0x5979} /* East Asian ideograph */, + {0, 0, 0x5982} /* East Asian ideograph */, + {0, 0, 0x5981} /* East Asian ideograph */, + {0, 0, 0x59A8} /* East Asian ideograph */, + {0, 0, 0x5992} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x59A4} /* East Asian ideograph */, + {0, 0, 0x59A3} /* East Asian ideograph */, + {0, 0, 0x5993} /* East Asian ideograph */, + {0, 0, 0x599E} /* East Asian ideograph */, + {0, 0, 0x599D} /* East Asian ideograph */, + {0, 0, 0x5999} /* East Asian ideograph */, + {0, 0, 0x59A5} /* East Asian ideograph */, + {0, 0, 0x598A} /* East Asian ideograph */, + {0, 0, 0x5996} /* East Asian ideograph */, + {0, 0, 0x59BE} /* East Asian ideograph */, + {0, 0, 0x59BB} /* East Asian ideograph */, + {0, 0, 0x59AE} /* East Asian ideograph */, + {0, 0, 0x59D1} /* East Asian ideograph */, + {0, 0, 0x59B9} /* East Asian ideograph */, + {0, 0, 0x59C6} /* East Asian ideograph */, + {0, 0, 0x59D0} /* East Asian ideograph */, + {0, 0, 0x59D7} /* East Asian ideograph */, + {0, 0, 0x59AF} /* East Asian ideograph */, + {0, 0, 0x59D2} /* East Asian ideograph */, + {0, 0, 0x59D3} /* East Asian ideograph */, + {0, 0, 0x59CA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x59CB} /* East Asian ideograph */, + {0, 0, 0x59D4} /* East Asian ideograph */, + {0, 0, 0x59E3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x59FF} /* East Asian ideograph */, + {0, 0, 0x59D8} /* East Asian ideograph */, + {0, 0, 0x5A03} /* East Asian ideograph */, + {0, 0, 0x59E8} /* East Asian ideograph */, + {0, 0, 0x59E5} /* East Asian ideograph */, + {0, 0, 0x59EA} /* East Asian ideograph */, + {0, 0, 0x5A01} /* East Asian ideograph */, + {0, 0, 0x59FB} /* East Asian ideograph */, + {0, 0, 0x59E6} /* East Asian ideograph */, + {0, 0, 0x59DA} /* East Asian ideograph */, + {0, 0, 0x5A11} /* East Asian ideograph */, + {0, 0, 0x5A18} /* East Asian ideograph */, + {0, 0, 0x5A23} /* East Asian ideograph */, + {0, 0, 0x5A1C} /* East Asian ideograph */, + {0, 0, 0x5A13} /* East Asian ideograph */, + {0, 0, 0x59EC} /* East Asian ideograph */, + {0, 0, 0x5A20} /* East Asian ideograph */, + {0, 0, 0x5A1F} /* East Asian ideograph */, + {0, 0, 0x5A1B} /* East Asian ideograph */, + {0, 0, 0x5A0C} /* East Asian ideograph */, + {0, 0, 0x5A29} /* East Asian ideograph */, + {0, 0, 0x5A25} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page12 = { + 0, marc8_9page12_dir +}; +/* PAGE 11 */ +struct yaz_iconv_trie_dir marc8_9page11_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5740} /* East Asian ideograph */, + {0, 0, 0x5747} /* East Asian ideograph */, + {0, 0, 0x574D} /* East Asian ideograph */, + {0, 0, 0x573E} /* East Asian ideograph */, + {0, 0, 0x574E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5783} /* East Asian ideograph */, + {0, 0, 0x576A} /* East Asian ideograph */, + {0, 0, 0x5769} /* East Asian ideograph */, + {0, 0, 0x5777} /* East Asian ideograph */, + {0, 0, 0x5761} /* East Asian ideograph */, + {0, 0, 0x5764} /* East Asian ideograph */, + {0, 0, 0x5766} /* East Asian ideograph */, + {0, 0, 0x5782} /* East Asian ideograph */, + {0, 0, 0x577C} /* East Asian ideograph */, + {0, 0, 0x57A0} /* East Asian ideograph */, + {0, 0, 0x578B} /* East Asian ideograph */, + {0, 0, 0x57A3} /* East Asian ideograph */, + {0, 0, 0x57AE} /* East Asian ideograph */, + {0, 0, 0x57A2} /* East Asian ideograph */, + {0, 0, 0x57D4} /* East Asian ideograph */, + {0, 0, 0x57C2} /* East Asian ideograph */, + {0, 0, 0x57CE} /* East Asian ideograph */, + {0, 0, 0x57CB} /* East Asian ideograph */, + {0, 0, 0x57C3} /* East Asian ideograph */, + {0, 0, 0x57F9} /* East Asian ideograph */, + {0, 0, 0x57F7} /* East Asian ideograph */, + {0, 0, 0x57FA} /* East Asian ideograph */, + {0, 0, 0x57DF} /* East Asian ideograph */, + {0, 0, 0x580A} /* East Asian ideograph */, + {0, 0, 0x5805} /* East Asian ideograph */, + {0, 0, 0x5802} /* East Asian ideograph */, + {0, 0, 0x5806} /* East Asian ideograph */, + {0, 0, 0x57E4} /* East Asian ideograph */, + {0, 0, 0x57E0} /* East Asian ideograph */, + {0, 0, 0x5831} /* East Asian ideograph */, + {0, 0, 0x582F} /* East Asian ideograph */, + {0, 0, 0x5835} /* East Asian ideograph */, + {0, 0, 0x582A} /* East Asian ideograph */, + {0, 0, 0x5830} /* East Asian ideograph */, + {0, 0, 0x5824} /* East Asian ideograph */, + {0, 0, 0x5834} /* East Asian ideograph */, + {0, 0, 0x5821} /* East Asian ideograph */, + {0, 0, 0x585E} /* East Asian ideograph */, + {0, 0, 0x5857} /* East Asian ideograph */, + {0, 0, 0x5858} /* East Asian ideograph */, + {0, 0, 0x5851} /* East Asian ideograph */, + {0, 0, 0x586B} /* East Asian ideograph */, + {0, 0, 0x584C} /* East Asian ideograph */, + {0, 0, 0x585A} /* East Asian ideograph */, + {0, 0, 0x586D} /* East Asian ideograph */, + {0, 0, 0x5854} /* East Asian ideograph */, + {0, 0, 0x5862} /* East Asian ideograph */, + {0, 0, 0x584A} /* East Asian ideograph */, + {0, 0, 0x5883} /* East Asian ideograph */, + {0, 0, 0x587E} /* East Asian ideograph */, + {0, 0, 0x5875} /* East Asian ideograph */, + {0, 0, 0x588A} /* East Asian ideograph */, + {0, 0, 0x5879} /* East Asian ideograph */, + {0, 0, 0x5885} /* East Asian ideograph */, + {0, 0, 0x5893} /* East Asian ideograph */, + {0, 0, 0x589E} /* East Asian ideograph */, + {0, 0, 0x5880} /* East Asian ideograph */, + {0, 0, 0x58B3} /* East Asian ideograph */, + {0, 0, 0x589C} /* East Asian ideograph */, + {0, 0, 0x58AE} /* East Asian ideograph */, + {0, 0, 0x589F} /* East Asian ideograph */, + {0, 0, 0x58C7} /* East Asian ideograph (variant of EACC 4B3864) */, + {0, 0, 0x58C5} /* East Asian ideograph */, + {0, 0, 0x58C1} /* East Asian ideograph */, + {0, 0, 0x58BE} /* East Asian ideograph */, + {0, 0, 0x58D5} /* East Asian ideograph */, + {0, 0, 0x58D3} /* East Asian ideograph */, + {0, 0, 0x58D1} /* East Asian ideograph */, + {0, 0, 0x58D9} /* East Asian ideograph */, + {0, 0, 0x58D8} /* East Asian ideograph */, + {0, 0, 0x58DF} /* East Asian ideograph */, + {0, 0, 0x58DE} /* East Asian ideograph */, + {0, 0, 0x58E2} /* East Asian ideograph */, + {0, 0, 0x58E4} /* East Asian ideograph */, + {0, 0, 0x58E9} /* East Asian ideograph */, + {0, 0, 0x58EB} /* East Asian ideograph */, + {0, 0, 0x58EC} /* East Asian ideograph */, + {0, 0, 0x58EF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x58FA} /* East Asian ideograph */, + {0, 0, 0x58FD} /* East Asian ideograph */, + {0, 0, 0x590F} /* East Asian ideograph */, + {0, 0, 0x5914} /* East Asian ideograph */, + {0, 0, 0x5915} /* East Asian ideograph */, + {0, 0, 0x5916} /* East Asian ideograph */, + {0, 0, 0x5919} /* East Asian ideograph */, + {0, 0, 0x591A} /* East Asian ideograph */, + {0, 0, 0x591C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page11 = { + 0, marc8_9page11_dir +}; +/* PAGE 10 */ +struct yaz_iconv_trie_dir marc8_9page10_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x55DA} /* East Asian ideograph */, + {0, 0, 0x55C6} /* East Asian ideograph */, + {0, 0, 0x55E1} /* East Asian ideograph */, + {0, 0, 0x5600} /* East Asian ideograph */, + {0, 0, 0x561B} /* East Asian ideograph */, + {0, 0, 0x55FE} /* East Asian ideograph */, + {0, 0, 0x5616} /* East Asian ideograph */, + {0, 0, 0x55F7} /* East Asian ideograph */, + {0, 0, 0x5608} /* East Asian ideograph */, + {0, 0, 0x561F} /* East Asian ideograph */, + {0, 0, 0x55FD} /* East Asian ideograph */, + {0, 0, 0x5606} /* East Asian ideograph (variant of EACC 4B372C) */, + {0, 0, 0x5609} /* East Asian ideograph */, + {0, 0, 0x5614} /* East Asian ideograph */, + {0, 0, 0x560E} /* East Asian ideograph */, + {0, 0, 0x5617} /* East Asian ideograph */, + {0, 0, 0x560D} /* East Asian ideograph */, + {0, 0, 0x562E} /* East Asian ideograph */, + {0, 0, 0x562F} /* East Asian ideograph */, + {0, 0, 0x564E} /* East Asian ideograph */, + {0, 0, 0x5636} /* East Asian ideograph */, + {0, 0, 0x5632} /* East Asian ideograph */, + {0, 0, 0x563B} /* East Asian ideograph */, + {0, 0, 0x5639} /* East Asian ideograph */, + {0, 0, 0x5657} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5653} /* East Asian ideograph */, + {0, 0, 0x563F} /* East Asian ideograph */, + {0, 0, 0x5634} /* East Asian ideograph */, + {0, 0, 0x5637} /* East Asian ideograph */, + {0, 0, 0x5659} /* East Asian ideograph */, + {0, 0, 0x5630} /* East Asian ideograph */, + {0, 0, 0x566B} /* East Asian ideograph */, + {0, 0, 0x5664} /* East Asian ideograph */, + {0, 0, 0x5669} /* East Asian ideograph */, + {0, 0, 0x5678} /* East Asian ideograph */, + {0, 0, 0x5674} /* East Asian ideograph */, + {0, 0, 0x5679} /* East Asian ideograph */, + {0, 0, 0x5665} /* East Asian ideograph */, + {0, 0, 0x566A} /* East Asian ideograph */, + {0, 0, 0x5668} /* East Asian ideograph */, + {0, 0, 0x5671} /* East Asian ideograph */, + {0, 0, 0x566F} /* East Asian ideograph */, + {0, 0, 0x5662} /* East Asian ideograph (variant of EACC 4B374C) */, + {0, 0, 0x566C} /* East Asian ideograph */, + {0, 0, 0x5680} /* East Asian ideograph */, + {0, 0, 0x568E} /* East Asian ideograph */, + {0, 0, 0x5685} /* East Asian ideograph */, + {0, 0, 0x5687} /* East Asian ideograph */, + {0, 0, 0x5690} /* East Asian ideograph */, + {0, 0, 0x568F} /* East Asian ideograph */, + {0, 0, 0x5695} /* East Asian ideograph */, + {0, 0, 0x56AE} /* East Asian ideograph (variant of EACC 453755) */, + {0, 0, 0x56A8} /* East Asian ideograph */, + {0, 0, 0x56B0} /* East Asian ideograph */, + {0, 0, 0x56A5} /* East Asian ideograph */, + {0, 0, 0x56B7} /* East Asian ideograph */, + {0, 0, 0x56B4} /* East Asian ideograph */, + {0, 0, 0x56B6} /* East Asian ideograph */, + {0, 0, 0x56C0} /* East Asian ideograph */, + {0, 0, 0x56C1} /* East Asian ideograph */, + {0, 0, 0x56C2} /* East Asian ideograph */, + {0, 0, 0x56BC} /* East Asian ideograph */, + {0, 0, 0x56CA} /* East Asian ideograph */, + {0, 0, 0x56C9} /* East Asian ideograph */, + {0, 0, 0x56C8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x56D1} /* East Asian ideograph */, + {0, 0, 0x56DB} /* East Asian ideograph */, + {0, 0, 0x56DA} /* East Asian ideograph */, + {0, 0, 0x56E0} /* East Asian ideograph */, + {0, 0, 0x56DE} /* East Asian ideograph */, + {0, 0, 0x56E4} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x56F1} /* East Asian ideograph */, + {0, 0, 0x56FA} /* East Asian ideograph */, + {0, 0, 0x5703} /* East Asian ideograph */, + {0, 0, 0x5708} /* East Asian ideograph */, + {0, 0, 0x570B} /* East Asian ideograph */, + {0, 0, 0x570D} /* East Asian ideograph */, + {0, 0, 0x5712} /* East Asian ideograph */, + {0, 0, 0x5713} /* East Asian ideograph */, + {0, 0, 0x5718} /* East Asian ideograph */, + {0, 0, 0x5716} /* East Asian ideograph */, + {0, 0, 0x571F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x572D} /* East Asian ideograph */, + {0, 0, 0x572F} /* East Asian ideograph */, + {0, 0, 0x5730} /* East Asian ideograph */, + {0, 0, 0x5728} /* East Asian ideograph */, + {0, 0, 0x5733} /* East Asian ideograph */, + {0, 0, 0x5751} /* East Asian ideograph */, + {0, 0, 0x574A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page10 = { + 0, marc8_9page10_dir +}; +/* PAGE 9 */ +struct yaz_iconv_trie_dir marc8_9page9_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x54AA} /* East Asian ideograph */, + {0, 0, 0x54A8} /* East Asian ideograph */, + {0, 0, 0x54AC} /* East Asian ideograph */, + {0, 0, 0x54C0} /* East Asian ideograph */, + {0, 0, 0x54B3} /* East Asian ideograph */, + {0, 0, 0x54A6} /* East Asian ideograph */, + {0, 0, 0x54AB} /* East Asian ideograph */, + {0, 0, 0x54C7} /* East Asian ideograph */, + {0, 0, 0x54C9} /* East Asian ideograph */, + {0, 0, 0x54C4} /* East Asian ideograph */, + {0, 0, 0x54C2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x54C1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x54CE} /* East Asian ideograph */, + {0, 0, 0x54B1} /* East Asian ideograph */, + {0, 0, 0x54BB} /* East Asian ideograph */, + {0, 0, 0x54AF} /* East Asian ideograph */, + {0, 0, 0x54C8} /* East Asian ideograph */, + {0, 0, 0x5501} /* East Asian ideograph */, + {0, 0, 0x54FC} /* East Asian ideograph */, + {0, 0, 0x5510} /* East Asian ideograph */, + {0, 0, 0x54EA} /* East Asian ideograph */, + {0, 0, 0x5514} /* East Asian ideograph */, + {0, 0, 0x54FA} /* East Asian ideograph */, + {0, 0, 0x54E5} /* East Asian ideograph */, + {0, 0, 0x54EE} /* East Asian ideograph */, + {0, 0, 0x54F2} /* East Asian ideograph */, + {0, 0, 0x54E8} /* East Asian ideograph */, + {0, 0, 0x54E1} /* East Asian ideograph */, + {0, 0, 0x54E9} /* East Asian ideograph */, + {0, 0, 0x54ED} /* East Asian ideograph */, + {0, 0, 0x5506} /* East Asian ideograph */, + {0, 0, 0x5509} /* East Asian ideograph */, + {0, 0, 0x54E6} /* East Asian ideograph */, + {0, 0, 0x5556} /* East Asian ideograph */, + {0, 0, 0x5533} /* East Asian ideograph */, + {0, 0, 0x5546} /* East Asian ideograph */, + {0, 0, 0x5537} /* East Asian ideograph (Version J extension) */, + {0, 0, 0x554F} /* East Asian ideograph */, + {0, 0, 0x555E} /* East Asian ideograph */, + {0, 0, 0x5566} /* East Asian ideograph */, + {0, 0, 0x556A} /* East Asian ideograph */, + {0, 0, 0x554A} /* East Asian ideograph */, + {0, 0, 0x5544} /* East Asian ideograph */, + {0, 0, 0x555C} /* East Asian ideograph */, + {0, 0, 0x5531} /* East Asian ideograph */, + {0, 0, 0x5543} /* East Asian ideograph */, + {0, 0, 0x552C} /* East Asian ideograph */, + {0, 0, 0x5561} /* East Asian ideograph */, + {0, 0, 0x553E} /* East Asian ideograph */, + {0, 0, 0x5563} /* East Asian ideograph */, + {0, 0, 0x5555} /* East Asian ideograph */, + {0, 0, 0x552F} /* East Asian ideograph */, + {0, 0, 0x552E} /* East Asian ideograph */, + {0, 0, 0x5564} /* East Asian ideograph */, + {0, 0, 0x5538} /* East Asian ideograph */, + {0, 0, 0x55A7} /* East Asian ideograph */, + {0, 0, 0x5580} /* East Asian ideograph */, + {0, 0, 0x557B} /* East Asian ideograph */, + {0, 0, 0x557C} /* East Asian ideograph */, + {0, 0, 0x5527} /* East Asian ideograph */, + {0, 0, 0x5594} /* East Asian ideograph */, + {0, 0, 0x5587} /* East Asian ideograph */, + {0, 0, 0x559C} /* East Asian ideograph */, + {0, 0, 0x558B} /* East Asian ideograph */, + {0, 0, 0x55AA} /* East Asian ideograph */, + {0, 0, 0x55B3} /* East Asian ideograph */, + {0, 0, 0x558A} /* East Asian ideograph */, + {0, 0, 0x5583} /* East Asian ideograph */, + {0, 0, 0x55B1} /* East Asian ideograph */, + {0, 0, 0x55AE} /* East Asian ideograph */, + {0, 0, 0x5582} /* East Asian ideograph */, + {0, 0, 0x559F} /* East Asian ideograph */, + {0, 0, 0x559D} /* East Asian ideograph */, + {0, 0, 0x5598} /* East Asian ideograph */, + {0, 0, 0x559A} /* East Asian ideograph */, + {0, 0, 0x557E} /* East Asian ideograph */, + {0, 0, 0x55AC} /* East Asian ideograph */, + {0, 0, 0x5589} /* East Asian ideograph */, + {0, 0, 0x55B2} /* East Asian ideograph */, + {0, 0, 0x55BB} /* East Asian ideograph */, + {0, 0, 0x55E8} /* East Asian ideograph */, + {0, 0, 0x55DF} /* East Asian ideograph */, + {0, 0, 0x55D1} /* East Asian ideograph */, + {0, 0, 0x55DC} /* East Asian ideograph */, + {0, 0, 0x55E6} /* East Asian ideograph */, + {0, 0, 0x55C7} /* East Asian ideograph */, + {0, 0, 0x55D3} /* East Asian ideograph */, + {0, 0, 0x55CE} /* East Asian ideograph */, + {0, 0, 0x55E3} /* East Asian ideograph */, + {0, 0, 0x55EF} /* East Asian ideograph */, + {0, 0, 0x55E4} /* East Asian ideograph */, + {0, 0, 0x55C5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page9 = { + 0, marc8_9page9_dir +}; +/* PAGE 8 */ +struct yaz_iconv_trie_dir marc8_9page8_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x53C9} /* East Asian ideograph */, + {0, 0, 0x53CB} /* East Asian ideograph */, + {0, 0, 0x53CA} /* East Asian ideograph */, + {0, 0, 0x53CD} /* East Asian ideograph */, + {0, 0, 0x53D6} /* East Asian ideograph */, + {0, 0, 0x53D4} /* East Asian ideograph */, + {0, 0, 0x53D7} /* East Asian ideograph */, + {0, 0, 0x53DB} /* East Asian ideograph */, + {0, 0, 0x53DF} /* East Asian ideograph */, + {0, 0, 0x66FC} /* East Asian ideograph */, + {0, 0, 0x53E2} /* East Asian ideograph */, + {0, 0, 0x53E3} /* East Asian ideograph */, + {0, 0, 0x53F8} /* East Asian ideograph */, + {0, 0, 0x53E4} /* East Asian ideograph */, + {0, 0, 0x53EE} /* East Asian ideograph */, + {0, 0, 0x53EF} /* East Asian ideograph */, + {0, 0, 0x53E9} /* East Asian ideograph */, + {0, 0, 0x53F3} /* East Asian ideograph */, + {0, 0, 0x53FC} /* East Asian ideograph */, + {0, 0, 0x53E8} /* East Asian ideograph */, + {0, 0, 0x53E6} /* East Asian ideograph */, + {0, 0, 0x53EC} /* East Asian ideograph */, + {0, 0, 0x53EB} /* East Asian ideograph */, + {0, 0, 0x53F0} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x53E5} /* East Asian ideograph */, + {0, 0, 0x53F1} /* East Asian ideograph */, + {0, 0, 0x53ED} /* East Asian ideograph */, + {0, 0, 0x53EA} /* East Asian ideograph */, + {0, 0, 0x53F2} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x540B} /* East Asian ideograph */, + {0, 0, 0x5409} /* East Asian ideograph */, + {0, 0, 0x5410} /* East Asian ideograph */, + {0, 0, 0x540F} /* East Asian ideograph */, + {0, 0, 0x540C} /* East Asian ideograph */, + {0, 0, 0x540A} /* East Asian ideograph */, + {0, 0, 0x540D} /* East Asian ideograph */, + {0, 0, 0x5404} /* East Asian ideograph */, + {0, 0, 0x5403} /* East Asian ideograph */, + {0, 0, 0x5412} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5406} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x542D} /* East Asian ideograph */, + {0, 0, 0x541D} /* East Asian ideograph */, + {0, 0, 0x541E} /* East Asian ideograph */, + {0, 0, 0x541B} /* East Asian ideograph */, + {0, 0, 0x544E} /* East Asian ideograph */, + {0, 0, 0x543E} /* East Asian ideograph */, + {0, 0, 0x5427} /* East Asian ideograph */, + {0, 0, 0x5440} /* East Asian ideograph */, + {0, 0, 0x5431} /* East Asian ideograph */, + {0, 0, 0x5446} /* East Asian ideograph */, + {0, 0, 0x543C} /* East Asian ideograph */, + {0, 0, 0x5443} /* East Asian ideograph */, + {0, 0, 0x5426} /* East Asian ideograph */, + {0, 0, 0x5420} /* East Asian ideograph */, + {0, 0, 0x5436} /* East Asian ideograph */, + {0, 0, 0x5433} /* East Asian ideograph */, + {0, 0, 0x5435} /* East Asian ideograph */, + {0, 0, 0x542E} /* East Asian ideograph */, + {0, 0, 0x544A} /* East Asian ideograph */, + {0, 0, 0x5448} /* East Asian ideograph */, + {0, 0, 0x543B} /* East Asian ideograph */, + {0, 0, 0x5438} /* East Asian ideograph */, + {0, 0, 0x5439} /* East Asian ideograph */, + {0, 0, 0x5442} /* East Asian ideograph */, + {0, 0, 0x542B} /* East Asian ideograph */, + {0, 0, 0x541F} /* East Asian ideograph */, + {0, 0, 0x5429} /* East Asian ideograph */, + {0, 0, 0x5473} /* East Asian ideograph */, + {0, 0, 0x5462} /* East Asian ideograph */, + {0, 0, 0x5475} /* East Asian ideograph */, + {0, 0, 0x5495} /* East Asian ideograph */, + {0, 0, 0x5478} /* East Asian ideograph */, + {0, 0, 0x5496} /* East Asian ideograph */, + {0, 0, 0x5477} /* East Asian ideograph */, + {0, 0, 0x547B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5492} /* East Asian ideograph */, + {0, 0, 0x5484} /* East Asian ideograph */, + {0, 0, 0x547C} /* East Asian ideograph */, + {0, 0, 0x5468} /* East Asian ideograph */, + {0, 0, 0x5486} /* East Asian ideograph */, + {0, 0, 0x548B} /* East Asian ideograph */, + {0, 0, 0x548C} /* East Asian ideograph */, + {0, 0, 0x5490} /* East Asian ideograph */, + {0, 0, 0x547D} /* East Asian ideograph */, + {0, 0, 0x5476} /* East Asian ideograph */, + {0, 0, 0x5471} /* East Asian ideograph */, + {0, 0, 0x549A} /* East Asian ideograph */, + {0, 0, 0x548E} /* East Asian ideograph */, + {0, 0, 0x54A9} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page8 = { + 0, marc8_9page8_dir +}; +/* PAGE 7 */ +struct yaz_iconv_trie_dir marc8_9page7_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x528D} /* East Asian ideograph */, + {0, 0, 0x5289} /* East Asian ideograph */, + {0, 0, 0x5291} /* East Asian ideograph */, + {0, 0, 0x529B} /* East Asian ideograph */, + {0, 0, 0x529F} /* East Asian ideograph */, + {0, 0, 0x52A0} /* East Asian ideograph */, + {0, 0, 0x52A3} /* East Asian ideograph */, + {0, 0, 0x52AB} /* East Asian ideograph */, + {0, 0, 0x52A9} /* East Asian ideograph */, + {0, 0, 0x52AC} /* East Asian ideograph */, + {0, 0, 0x52AA} /* East Asian ideograph */, + {0, 0, 0x52BE} /* East Asian ideograph */, + {0, 0, 0x52C7} /* East Asian ideograph */, + {0, 0, 0x52C3} /* East Asian ideograph */, + {0, 0, 0x52C1} /* East Asian ideograph */, + {0, 0, 0x52C9} /* East Asian ideograph */, + {0, 0, 0x52D8} /* East Asian ideograph */, + {0, 0, 0x52D2} /* East Asian ideograph */, + {0, 0, 0x52D9} /* East Asian ideograph */, + {0, 0, 0x52D5} /* East Asian ideograph */, + {0, 0, 0x52DE} /* East Asian ideograph */, + {0, 0, 0x52DB} /* East Asian ideograph */, + {0, 0, 0x52DD} /* East Asian ideograph */, + {0, 0, 0x52E2} /* East Asian ideograph */, + {0, 0, 0x52E4} /* East Asian ideograph */, + {0, 0, 0x52DF} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x52F5} /* East Asian ideograph */, + {0, 0, 0x52F8} /* East Asian ideograph */, + {0, 0, 0x52FB} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x52FF} /* East Asian ideograph */, + {0, 0, 0x5305} /* East Asian ideograph */, + {0, 0, 0x5306} /* East Asian ideograph */, + {0, 0, 0x5308} /* East Asian ideograph */, + {0, 0, 0x530D} /* East Asian ideograph */, + {0, 0, 0x5310} /* East Asian ideograph */, + {0, 0, 0x530F} /* East Asian ideograph */, + {0, 0, 0x5315} /* East Asian ideograph */, + {0, 0, 0x5316} /* East Asian ideograph */, + {0, 0, 0x5317} /* East Asian ideograph */, + {0, 0, 0x5319} /* East Asian ideograph */, + {0, 0, 0x53F5} /* East Asian ideograph */, + {0, 0, 0x531D} /* East Asian ideograph */, + {0, 0, 0x5321} /* East Asian ideograph */, + {0, 0, 0x5320} /* East Asian ideograph */, + {0, 0, 0x5323} /* East Asian ideograph */, + {0, 0, 0x532A} /* East Asian ideograph */, + {0, 0, 0x532F} /* East Asian ideograph */, + {0, 0, 0x5331} /* East Asian ideograph */, + {0, 0, 0x5339} /* East Asian ideograph */, + {0, 0, 0x533E} /* East Asian ideograph */, + {0, 0, 0x5340} /* East Asian ideograph */, + {0, 0, 0x533F} /* East Asian ideograph */, + {0, 0, 0x5341} /* East Asian ideograph */, + {0, 0, 0x5343} /* East Asian ideograph */, + {0, 0, 0x5345} /* East Asian ideograph */, + {0, 0, 0x5348} /* East Asian ideograph */, + {0, 0, 0x5347} /* East Asian ideograph */, + {0, 0, 0x534A} /* East Asian ideograph */, + {0, 0, 0x5349} /* East Asian ideograph (variant of EACC 2D345D) */, + {0, 0, 0}, + {0, 0, 0x5352} /* East Asian ideograph */, + {0, 0, 0x5354} /* East Asian ideograph */, + {0, 0, 0x5353} /* East Asian ideograph */, + {0, 0, 0x5351} /* East Asian ideograph */, + {0, 0, 0x5357} /* East Asian ideograph */, + {0, 0, 0x535A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x535E} /* East Asian ideograph */, + {0, 0, 0x5361} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5366} /* East Asian ideograph */, + {0, 0, 0x536F} /* East Asian ideograph */, + {0, 0, 0x536E} /* East Asian ideograph */, + {0, 0, 0x5370} /* East Asian ideograph */, + {0, 0, 0x5371} /* East Asian ideograph */, + {0, 0, 0x537D} /* East Asian ideograph */, + {0, 0, 0x5375} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5378} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x537B} /* East Asian ideograph */, + {0, 0, 0x537F} /* East Asian ideograph */, + {0, 0, 0x5384} /* East Asian ideograph */, + {0, 0, 0x539A} /* East Asian ideograph */, + {0, 0, 0x539D} /* East Asian ideograph */, + {0, 0, 0x539F} /* East Asian ideograph */, + {0, 0, 0x53A5} /* East Asian ideograph */, + {0, 0, 0x53AD} /* East Asian ideograph */, + {0, 0, 0x53B2} /* East Asian ideograph */, + {0, 0, 0x53BB} /* East Asian ideograph */, + {0, 0, 0x53C3} /* East Asian ideograph */, + {0, 0, 0x53C8} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page7 = { + 0, marc8_9page7_dir +}; +/* PAGE 6 */ +struct yaz_iconv_trie_dir marc8_9page6_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5167} /* East Asian ideograph */, + {0, 0, 0x5168} /* East Asian ideograph */, + {0, 0, 0x5169} /* East Asian ideograph */, + {0, 0, 0x516B} /* East Asian ideograph */, + {0, 0, 0x516D} /* East Asian ideograph */, + {0, 0, 0x516E} /* East Asian ideograph */, + {0, 0, 0x516C} /* East Asian ideograph */, + {0, 0, 0x5171} /* East Asian ideograph */, + {0, 0, 0x5175} /* East Asian ideograph */, + {0, 0, 0x5176} /* East Asian ideograph */, + {0, 0, 0x5177} /* East Asian ideograph */, + {0, 0, 0x5178} /* East Asian ideograph */, + {0, 0, 0x517C} /* East Asian ideograph */, + {0, 0, 0x5180} /* East Asian ideograph */, + {0, 0, 0x5189} /* East Asian ideograph */, + {0, 0, 0x518C} /* East Asian ideograph */, + {0, 0, 0x518D} /* East Asian ideograph */, + {0, 0, 0x5192} /* East Asian ideograph */, + {0, 0, 0x5191} /* East Asian ideograph */, + {0, 0, 0x5195} /* East Asian ideograph */, + {0, 0, 0x6700} /* East Asian ideograph */, + {0, 0, 0x5197} /* East Asian ideograph */, + {0, 0, 0x51A0} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x51A5} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x51B0} /* East Asian ideograph */, + {0, 0, 0x51B6} /* East Asian ideograph */, + {0, 0, 0x51B7} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x51CD} /* East Asian ideograph */, + {0, 0, 0x51CC} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x51DC} /* East Asian ideograph */, + {0, 0, 0x51DD} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x51F0} /* East Asian ideograph */, + {0, 0, 0x51F1} /* East Asian ideograph */, + {0, 0, 0x51F3} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x51FA} /* East Asian ideograph */, + {0, 0, 0x51F9} /* East Asian ideograph */, + {0, 0, 0x51F8} /* East Asian ideograph */, + {0, 0, 0x51FD} /* East Asian ideograph */, + {0, 0, 0x5200} /* East Asian ideograph */, + {0, 0, 0x5201} /* East Asian ideograph */, + {0, 0, 0x5203} /* East Asian ideograph */, + {0, 0, 0x5207} /* East Asian ideograph */, + {0, 0, 0x5206} /* East Asian ideograph */, + {0, 0, 0x5208} /* East Asian ideograph */, + {0, 0, 0x520A} /* East Asian ideograph */, + {0, 0, 0x5211} /* East Asian ideograph */, + {0, 0, 0x5217} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x520E} /* East Asian ideograph */, + {0, 0, 0x5224} /* East Asian ideograph */, + {0, 0, 0x5225} /* East Asian ideograph */, + {0, 0, 0x5220} /* East Asian ideograph */, + {0, 0, 0x5228} /* East Asian ideograph */, + {0, 0, 0x5229} /* East Asian ideograph */, + {0, 0, 0x5238} /* East Asian ideograph */, + {0, 0, 0x523B} /* East Asian ideograph */, + {0, 0, 0x5237} /* East Asian ideograph */, + {0, 0, 0x5230} /* East Asian ideograph */, + {0, 0, 0x523A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5241} /* East Asian ideograph */, + {0, 0, 0x5239} /* East Asian ideograph */, + {0, 0, 0x5243} /* East Asian ideograph */, + {0, 0, 0x524D} /* East Asian ideograph */, + {0, 0, 0x524C} /* East Asian ideograph */, + {0, 0, 0x524B} /* East Asian ideograph */, + {0, 0, 0x524A} /* East Asian ideograph */, + {0, 0, 0x5247} /* East Asian ideograph */, + {0, 0, 0x525C} /* East Asian ideograph */, + {0, 0, 0x5256} /* East Asian ideograph */, + {0, 0, 0x525B} /* East Asian ideograph */, + {0, 0, 0x5254} /* East Asian ideograph */, + {0, 0, 0x525D} /* East Asian ideograph */, + {0, 0, 0x526A} /* East Asian ideograph */, + {0, 0, 0x526F} /* East Asian ideograph */, + {0, 0, 0x5272} /* East Asian ideograph */, + {0, 0, 0x5274} /* East Asian ideograph */, + {0, 0, 0x5269} /* East Asian ideograph */, + {0, 0, 0x5275} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x527D} /* East Asian ideograph */, + {0, 0, 0x527F} /* East Asian ideograph */, + {0, 0, 0x5283} /* East Asian ideograph */, + {0, 0, 0x5288} /* East Asian ideograph */, + {0, 0, 0x5287} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page6 = { + 0, marc8_9page6_dir +}; +/* PAGE 5 */ +struct yaz_iconv_trie_dir marc8_9page5_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5018} /* East Asian ideograph */, + {0, 0, 0x4FF1} /* East Asian ideograph */, + {0, 0, 0x5021} /* East Asian ideograph */, + {0, 0, 0x500B} /* East Asian ideograph */, + {0, 0, 0x5019} /* East Asian ideograph */, + {0, 0, 0x5000} /* East Asian ideograph */, + {0, 0, 0x4FEE} /* East Asian ideograph */, + {0, 0, 0x4FF3} /* East Asian ideograph */, + {0, 0, 0x502D} /* East Asian ideograph */, + {0, 0, 0x5003} /* East Asian ideograph */, + {0, 0, 0x4FFE} /* East Asian ideograph */, + {0, 0, 0x502A} /* East Asian ideograph */, + {0, 0, 0x502B} /* East Asian ideograph */, + {0, 0, 0x505C} /* East Asian ideograph */, + {0, 0, 0x504F} /* East Asian ideograph */, + {0, 0, 0x5065} /* East Asian ideograph */, + {0, 0, 0x5047} /* East Asian ideograph */, + {0, 0, 0x505A} /* East Asian ideograph */, + {0, 0, 0x5049} /* East Asian ideograph */, + {0, 0, 0x5043} /* East Asian ideograph */, + {0, 0, 0x5074} /* East Asian ideograph */, + {0, 0, 0x5076} /* East Asian ideograph */, + {0, 0, 0x504E} /* East Asian ideograph */, + {0, 0, 0x5075} /* East Asian ideograph */, + {0, 0, 0x504C} /* East Asian ideograph */, + {0, 0, 0x5055} /* East Asian ideograph */, + {0, 0, 0x500F} /* East Asian ideograph */, + {0, 0, 0x5077} /* East Asian ideograph */, + {0, 0, 0x508D} /* East Asian ideograph */, + {0, 0, 0x50A2} /* East Asian ideograph */, + {0, 0, 0x5085} /* East Asian ideograph */, + {0, 0, 0x5099} /* East Asian ideograph */, + {0, 0, 0x5091} /* East Asian ideograph */, + {0, 0, 0x5080} /* East Asian ideograph */, + {0, 0, 0x5096} /* East Asian ideograph */, + {0, 0, 0x5098} /* East Asian ideograph */, + {0, 0, 0x50AD} /* East Asian ideograph */, + {0, 0, 0x50B3} /* East Asian ideograph */, + {0, 0, 0x50B5} /* East Asian ideograph */, + {0, 0, 0x50B2} /* East Asian ideograph */, + {0, 0, 0x50C5} /* East Asian ideograph */, + {0, 0, 0x50BE} /* East Asian ideograph */, + {0, 0, 0x50AC} /* East Asian ideograph */, + {0, 0, 0x50B7} /* East Asian ideograph */, + {0, 0, 0x50AF} /* East Asian ideograph */, + {0, 0, 0x50E7} /* East Asian ideograph */, + {0, 0, 0x50EE} /* East Asian ideograph */, + {0, 0, 0x50F1} /* East Asian ideograph */, + {0, 0, 0x50E5} /* East Asian ideograph */, + {0, 0, 0x50D6} /* East Asian ideograph */, + {0, 0, 0x50ED} /* East Asian ideograph */, + {0, 0, 0x50DA} /* East Asian ideograph */, + {0, 0, 0x50D5} /* East Asian ideograph */, + {0, 0, 0x507D} /* East Asian ideograph */, + {0, 0, 0x50CF} /* East Asian ideograph */, + {0, 0, 0x50D1} /* East Asian ideograph */, + {0, 0, 0x5100} /* East Asian ideograph */, + {0, 0, 0x5104} /* East Asian ideograph */, + {0, 0, 0x50FB} /* East Asian ideograph */, + {0, 0, 0x50F5} /* East Asian ideograph */, + {0, 0, 0x50F9} /* East Asian ideograph */, + {0, 0, 0x5102} /* East Asian ideograph */, + {0, 0, 0x510D} /* East Asian ideograph */, + {0, 0, 0x5108} /* East Asian ideograph */, + {0, 0, 0x5109} /* East Asian ideograph */, + {0, 0, 0x5110} /* East Asian ideograph */, + {0, 0, 0x5118} /* East Asian ideograph */, + {0, 0, 0x5112} /* East Asian ideograph */, + {0, 0, 0x5114} /* East Asian ideograph */, + {0, 0, 0x512A} /* East Asian ideograph */, + {0, 0, 0x511F} /* East Asian ideograph */, + {0, 0, 0x5121} /* East Asian ideograph */, + {0, 0, 0x5132} /* East Asian ideograph */, + {0, 0, 0x5137} /* East Asian ideograph */, + {0, 0, 0x513C} /* East Asian ideograph */, + {0, 0, 0x5140} /* East Asian ideograph */, + {0, 0, 0x5143} /* East Asian ideograph */, + {0, 0, 0x5141} /* East Asian ideograph */, + {0, 0, 0x5145} /* East Asian ideograph */, + {0, 0, 0x5144} /* East Asian ideograph */, + {0, 0, 0x5146} /* East Asian ideograph */, + {0, 0, 0x5149} /* East Asian ideograph */, + {0, 0, 0x5147} /* East Asian ideograph */, + {0, 0, 0x5148} /* East Asian ideograph */, + {0, 0, 0x514C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x514D} /* East Asian ideograph */, + {0, 0, 0x5155} /* East Asian ideograph */, + {0, 0, 0x5154} /* East Asian ideograph */, + {0, 0, 0x5152} /* East Asian ideograph */, + {0, 0, 0x5157} /* East Asian ideograph */, + {0, 0, 0x515C} /* East Asian ideograph */, + {0, 0, 0x5162} /* East Asian ideograph */, + {0, 0, 0x5165} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page5 = { + 0, marc8_9page5_dir +}; +/* PAGE 4 */ +struct yaz_iconv_trie_dir marc8_9page4_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4F11} /* East Asian ideograph */, + {0, 0, 0x4F10} /* East Asian ideograph */, + {0, 0, 0x4F0F} /* East Asian ideograph */, + {0, 0, 0x4EF2} /* East Asian ideograph */, + {0, 0, 0x4F01} /* East Asian ideograph */, + {0, 0, 0x4EF3} /* East Asian ideograph */, + {0, 0, 0x4EF6} /* East Asian ideograph */, + {0, 0, 0x4EF0} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4F4F} /* East Asian ideograph */, + {0, 0, 0x4F4D} /* East Asian ideograph */, + {0, 0, 0x4F34} /* East Asian ideograph */, + {0, 0, 0x4F47} /* East Asian ideograph */, + {0, 0, 0x4F57} /* East Asian ideograph */, + {0, 0, 0x4F3A} /* East Asian ideograph */, + {0, 0, 0x4F5E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4F5B} /* East Asian ideograph */, + {0, 0, 0x4F55} /* East Asian ideograph */, + {0, 0, 0x4F30} /* East Asian ideograph */, + {0, 0, 0x4F50} /* East Asian ideograph */, + {0, 0, 0x4F51} /* East Asian ideograph */, + {0, 0, 0x4F3D} /* East Asian ideograph */, + {0, 0, 0x4F48} /* East Asian ideograph */, + {0, 0, 0x4F46} /* East Asian ideograph */, + {0, 0, 0x4F38} /* East Asian ideograph */, + {0, 0, 0x4F43} /* East Asian ideograph */, + {0, 0, 0x4F54} /* East Asian ideograph */, + {0, 0, 0x4F3C} /* East Asian ideograph */, + {0, 0, 0x4F63} /* East Asian ideograph */, + {0, 0, 0x4F5C} /* East Asian ideograph */, + {0, 0, 0x4F60} /* East Asian ideograph */, + {0, 0, 0x4F2F} /* East Asian ideograph */, + {0, 0, 0x4F4E} /* East Asian ideograph */, + {0, 0, 0x4F5D} /* East Asian ideograph */, + {0, 0, 0x4F36} /* East Asian ideograph */, + {0, 0, 0x4F9D} /* East Asian ideograph */, + {0, 0, 0x4F6F} /* East Asian ideograph */, + {0, 0, 0x4F75} /* East Asian ideograph */, + {0, 0, 0x4F8D} /* East Asian ideograph */, + {0, 0, 0x4F73} /* East Asian ideograph */, + {0, 0, 0x4F7F} /* East Asian ideograph */, + {0, 0, 0x4F9B} /* East Asian ideograph */, + {0, 0, 0x4F86} /* East Asian ideograph */, + {0, 0, 0x4F6C} /* East Asian ideograph */, + {0, 0, 0x4F8B} /* East Asian ideograph */, + {0, 0, 0x4F96} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4F83} /* East Asian ideograph */, + {0, 0, 0x4F7B} /* East Asian ideograph */, + {0, 0, 0x4F88} /* East Asian ideograph */, + {0, 0, 0x4F69} /* East Asian ideograph */, + {0, 0, 0x4F8F} /* East Asian ideograph */, + {0, 0, 0x4F7E} /* East Asian ideograph */, + {0, 0, 0x4FE1} /* East Asian ideograph */, + {0, 0, 0x4FD1} /* East Asian ideograph */, + {0, 0, 0x4FB5} /* East Asian ideograph */, + {0, 0, 0x4FAF} /* East Asian ideograph */, + {0, 0, 0x4FBF} /* East Asian ideograph */, + {0, 0, 0x4FDE} /* East Asian ideograph */, + {0, 0, 0x4FE0} /* East Asian ideograph */, + {0, 0, 0x4FCF} /* East Asian ideograph */, + {0, 0, 0x4FB6} /* East Asian ideograph */, + {0, 0, 0x4FDA} /* East Asian ideograph */, + {0, 0, 0x4FDD} /* East Asian ideograph */, + {0, 0, 0x4FC3} /* East Asian ideograph */, + {0, 0, 0x4FD8} /* East Asian ideograph */, + {0, 0, 0x4FDF} /* East Asian ideograph */, + {0, 0, 0x4FCA} /* East Asian ideograph */, + {0, 0, 0x4FAE} /* East Asian ideograph */, + {0, 0, 0x4FD0} /* East Asian ideograph */, + {0, 0, 0x4FC4} /* East Asian ideograph */, + {0, 0, 0x4FC2} /* East Asian ideograph */, + {0, 0, 0x4FCE} /* East Asian ideograph */, + {0, 0, 0x4FD7} /* East Asian ideograph */, + {0, 0, 0x5009} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x500D} /* East Asian ideograph */, + {0, 0, 0x4FEF} /* East Asian ideograph */, + {0, 0, 0x5026} /* East Asian ideograph */, + {0, 0, 0x500C} /* East Asian ideograph */, + {0, 0, 0x5025} /* East Asian ideograph */, + {0, 0, 0x5011} /* East Asian ideograph */, + {0, 0, 0x4FF8} /* East Asian ideograph */, + {0, 0, 0x5028} /* East Asian ideograph */, + {0, 0, 0x5014} /* East Asian ideograph */, + {0, 0, 0x5016} /* East Asian ideograph */, + {0, 0, 0x5029} /* East Asian ideograph */, + {0, 0, 0x5006} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x5012} /* East Asian ideograph */, + {0, 0, 0x503C} /* East Asian ideograph */, + {0, 0, 0x501A} /* East Asian ideograph */, + {0, 0, 0x4FFA} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page4 = { + 0, marc8_9page4_dir +}; +/* PAGE 3 */ +struct yaz_iconv_trie_dir marc8_9page3_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4E00} /* East Asian ideograph */, + {0, 0, 0x4E01} /* East Asian ideograph */, + {0, 0, 0x4E03} /* East Asian ideograph */, + {0, 0, 0x4E09} /* East Asian ideograph */, + {0, 0, 0x4E0B} /* East Asian ideograph */, + {0, 0, 0x4E0A} /* East Asian ideograph */, + {0, 0, 0x4E08} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E10} /* East Asian ideograph */, + {0, 0, 0x4E0D} /* East Asian ideograph */, + {0, 0, 0x4E14} /* East Asian ideograph */, + {0, 0, 0x4E19} /* East Asian ideograph */, + {0, 0, 0x4E16} /* East Asian ideograph */, + {0, 0, 0x4E15} /* East Asian ideograph */, + {0, 0, 0x4E18} /* East Asian ideograph */, + {0, 0, 0x4E22} /* East Asian ideograph */, + {0, 0, 0x4E1E} /* East Asian ideograph */, + {0, 0, 0x4E26} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E2D} /* East Asian ideograph */, + {0, 0, 0x4E32} /* East Asian ideograph */, + {0, 0, 0x51E1} /* East Asian ideograph */, + {0, 0, 0x4E38} /* East Asian ideograph */, + {0, 0, 0x4E39} /* East Asian ideograph */, + {0, 0, 0x4E3B} /* East Asian ideograph */, + {0, 0, 0x4E43} /* East Asian ideograph */, + {0, 0, 0x4E45} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E4B} /* East Asian ideograph */, + {0, 0, 0x5C39} /* East Asian ideograph */, + {0, 0, 0x4E4F} /* East Asian ideograph */, + {0, 0, 0x4E4E} /* East Asian ideograph */, + {0, 0, 0x4E4D} /* East Asian ideograph */, + {0, 0, 0x4E52} /* East Asian ideograph */, + {0, 0, 0x4E53} /* East Asian ideograph */, + {0, 0, 0x4E56} /* East Asian ideograph */, + {0, 0, 0x4E58} /* East Asian ideograph */, + {0, 0, 0x4E59} /* East Asian ideograph */, + {0, 0, 0x4E5D} /* East Asian ideograph */, + {0, 0, 0x4E5F} /* East Asian ideograph */, + {0, 0, 0x4E5E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E73} /* East Asian ideograph */, + {0, 0, 0x4E7E} /* East Asian ideograph */, + {0, 0, 0x4E82} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4E8B} /* East Asian ideograph */, + {0, 0, 0x4E8C} /* East Asian ideograph */, + {0, 0, 0x4E8E} /* East Asian ideograph */, + {0, 0, 0x4E95} /* East Asian ideograph */, + {0, 0, 0x4E94} /* East Asian ideograph */, + {0, 0, 0x4E92} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4E99} /* East Asian ideograph (variant of EACC 4B3057) */, + {0, 0, 0x4E9E} /* East Asian ideograph */, + {0, 0, 0x4E9B} /* East Asian ideograph */, + {0, 0, 0x4E9F} /* East Asian ideograph */, + {0, 0, 0x4EA1} /* East Asian ideograph */, + {0, 0, 0x4EA6} /* East Asian ideograph */, + {0, 0, 0x4EA5} /* East Asian ideograph */, + {0, 0, 0x4EA4} /* East Asian ideograph */, + {0, 0, 0x4EA8} /* East Asian ideograph */, + {0, 0, 0x4EAB} /* East Asian ideograph */, + {0, 0, 0x4EAC} /* East Asian ideograph */, + {0, 0, 0x4EAD} /* East Asian ideograph */, + {0, 0, 0x4EAE} /* East Asian ideograph */, + {0, 0, 0x4EBA} /* East Asian ideograph */, + {0, 0, 0x4ECA} /* East Asian ideograph */, + {0, 0, 0x4EC1} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4EC3} /* East Asian ideograph */, + {0, 0, 0x4EC4} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4ECD} /* East Asian ideograph */, + {0, 0, 0x4EC7} /* East Asian ideograph */, + {0, 0, 0x4ECB} /* East Asian ideograph */, + {0, 0, 0x4EE4} /* East Asian ideograph */, + {0, 0, 0x4ED8} /* East Asian ideograph */, + {0, 0, 0x4ED5} /* East Asian ideograph */, + {0, 0, 0x4ED6} /* East Asian ideograph */, + {0, 0, 0x4EDE} /* East Asian ideograph */, + {0, 0, 0x4EE3} /* East Asian ideograph */, + {0, 0, 0x4ED4} /* East Asian ideograph */, + {0, 0, 0x4ED7} /* East Asian ideograph */, + {0, 0, 0x4ED9} /* East Asian ideograph */, + {0, 0, 0x4EE5} /* East Asian ideograph */, + {0, 0, 0x4EFF} /* East Asian ideograph */, + {0, 0, 0x4F09} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x4EFB} /* East Asian ideograph */, + {0, 0, 0x4F0A} /* East Asian ideograph */, + {0, 0, 0x4F15} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page3 = { + 0, marc8_9page3_dir +}; +/* PAGE 2 */ +struct yaz_iconv_trie_flat marc8_9page2_flat[] = { + {"\x30", 0, 0x3007}, /* East Asian ideograph (number zero) */ + {"", 0} +}; +struct yaz_iconv_trie marc8_9page2 = { + marc8_9page2_flat, 0 +}; +/* PAGE 1 */ +struct yaz_iconv_trie_dir marc8_9page1_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {826, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {827, 0, 0}, + {828, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {3, 0, 0}, + {4, 0, 0}, + {5, 0, 0}, + {6, 0, 0}, + {7, 0, 0}, + {8, 0, 0}, + {9, 0, 0}, + {10, 0, 0}, + {11, 0, 0}, + {12, 0, 0}, + {13, 0, 0}, + {14, 0, 0}, + {15, 0, 0}, + {16, 0, 0}, + {17, 0, 0}, + {18, 0, 0}, + {19, 0, 0}, + {20, 0, 0}, + {21, 0, 0}, + {22, 0, 0}, + {23, 0, 0}, + {24, 0, 0}, + {25, 0, 0}, + {26, 0, 0}, + {27, 0, 0}, + {28, 0, 0}, + {29, 0, 0}, + {30, 0, 0}, + {31, 0, 0}, + {32, 0, 0}, + {33, 0, 0}, + {34, 0, 0}, + {35, 0, 0}, + {36, 0, 0}, + {37, 0, 0}, + {38, 0, 0}, + {39, 0, 0}, + {40, 0, 0}, + {41, 0, 0}, + {42, 0, 0}, + {43, 0, 0}, + {44, 0, 0}, + {45, 0, 0}, + {46, 0, 0}, + {47, 0, 0}, + {48, 0, 0}, + {49, 0, 0}, + {50, 0, 0}, + {51, 0, 0}, + {52, 0, 0}, + {53, 0, 0}, + {54, 0, 0}, + {55, 0, 0}, + {56, 0, 0}, + {57, 0, 0}, + {58, 0, 0}, + {59, 0, 0}, + {60, 0, 0}, + {61, 0, 0}, + {62, 0, 0}, + {63, 0, 0}, + {64, 0, 0}, + {65, 0, 0}, + {66, 0, 0}, + {67, 0, 0}, + {68, 0, 0}, + {69, 0, 0}, + {70, 0, 0}, + {71, 0, 0}, + {72, 0, 0}, + {73, 0, 0}, + {74, 0, 0}, + {75, 0, 0}, + {76, 0, 0}, + {77, 0, 0}, + {78, 0, 0}, + {79, 0, 0}, + {80, 0, 0}, + {81, 0, 0}, + {82, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page1 = { + 0, marc8_9page1_dir +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8_9page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {2, 0, 0}, + {83, 0, 0}, + {177, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {241, 0, 0}, + {314, 0, 0}, + {381, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {438, 0, 0}, + {498, 0, 0}, + {545, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {546, 0, 0}, + {597, 0, 0}, + {598, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {599, 0, 0}, + {641, 0, 0}, + {642, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {643, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {644, 0, 0}, + {645, 0, 0}, + {646, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {647, 0, 0}, + {710, 0, 0}, + {753, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {754, 0, 0}, + {755, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {756, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {798, 0, 0}, + {794, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8_9page0 = { + 0, marc8_9page0_dir +}; +struct yaz_iconv_trie *marc8_9ptrs [] = { + &marc8_9page0, + &marc8_9page1, + &marc8_9page2, + &marc8_9page3, + &marc8_9page4, + &marc8_9page5, + &marc8_9page6, + &marc8_9page7, + &marc8_9page8, + &marc8_9page9, + &marc8_9page10, + &marc8_9page11, + &marc8_9page12, + &marc8_9page13, + &marc8_9page14, + &marc8_9page15, + &marc8_9page16, + &marc8_9page17, + &marc8_9page18, + &marc8_9page19, + &marc8_9page20, + &marc8_9page21, + &marc8_9page22, + &marc8_9page23, + &marc8_9page24, + &marc8_9page25, + &marc8_9page26, + &marc8_9page27, + &marc8_9page28, + &marc8_9page29, + &marc8_9page30, + &marc8_9page31, + &marc8_9page32, + &marc8_9page33, + &marc8_9page34, + &marc8_9page35, + &marc8_9page36, + &marc8_9page37, + &marc8_9page38, + &marc8_9page39, + &marc8_9page40, + &marc8_9page41, + &marc8_9page42, + &marc8_9page43, + &marc8_9page44, + &marc8_9page45, + &marc8_9page46, + &marc8_9page47, + &marc8_9page48, + &marc8_9page49, + &marc8_9page50, + &marc8_9page51, + &marc8_9page52, + &marc8_9page53, + &marc8_9page54, + &marc8_9page55, + &marc8_9page56, + &marc8_9page57, + &marc8_9page58, + &marc8_9page59, + &marc8_9page60, + &marc8_9page61, + &marc8_9page62, + &marc8_9page63, + &marc8_9page64, + &marc8_9page65, + &marc8_9page66, + &marc8_9page67, + &marc8_9page68, + &marc8_9page69, + &marc8_9page70, + &marc8_9page71, + &marc8_9page72, + &marc8_9page73, + &marc8_9page74, + &marc8_9page75, + &marc8_9page76, + &marc8_9page77, + &marc8_9page78, + &marc8_9page79, + &marc8_9page80, + &marc8_9page81, + &marc8_9page82, + &marc8_9page83, + &marc8_9page84, + &marc8_9page85, + &marc8_9page86, + &marc8_9page87, + &marc8_9page88, + &marc8_9page89, + &marc8_9page90, + &marc8_9page91, + &marc8_9page92, + &marc8_9page93, + &marc8_9page94, + &marc8_9page95, + &marc8_9page96, + &marc8_9page97, + &marc8_9page98, + &marc8_9page99, + &marc8_9page100, + &marc8_9page101, + &marc8_9page102, + &marc8_9page103, + &marc8_9page104, + &marc8_9page105, + &marc8_9page106, + &marc8_9page107, + &marc8_9page108, + &marc8_9page109, + &marc8_9page110, + &marc8_9page111, + &marc8_9page112, + &marc8_9page113, + &marc8_9page114, + &marc8_9page115, + &marc8_9page116, + &marc8_9page117, + &marc8_9page118, + &marc8_9page119, + &marc8_9page120, + &marc8_9page121, + &marc8_9page122, + &marc8_9page123, + &marc8_9page124, + &marc8_9page125, + &marc8_9page126, + &marc8_9page127, + &marc8_9page128, + &marc8_9page129, + &marc8_9page130, + &marc8_9page131, + &marc8_9page132, + &marc8_9page133, + &marc8_9page134, + &marc8_9page135, + &marc8_9page136, + &marc8_9page137, + &marc8_9page138, + &marc8_9page139, + &marc8_9page140, + &marc8_9page141, + &marc8_9page142, + &marc8_9page143, + &marc8_9page144, + &marc8_9page145, + &marc8_9page146, + &marc8_9page147, + &marc8_9page148, + &marc8_9page149, + &marc8_9page150, + &marc8_9page151, + &marc8_9page152, + &marc8_9page153, + &marc8_9page154, + &marc8_9page155, + &marc8_9page156, + &marc8_9page157, + &marc8_9page158, + &marc8_9page159, + &marc8_9page160, + &marc8_9page161, + &marc8_9page162, + &marc8_9page163, + &marc8_9page164, + &marc8_9page165, + &marc8_9page166, + &marc8_9page167, + &marc8_9page168, + &marc8_9page169, + &marc8_9page170, + &marc8_9page171, + &marc8_9page172, + &marc8_9page173, + &marc8_9page174, + &marc8_9page175, + &marc8_9page176, + &marc8_9page177, + &marc8_9page178, + &marc8_9page179, + &marc8_9page180, + &marc8_9page181, + &marc8_9page182, + &marc8_9page183, + &marc8_9page184, + &marc8_9page185, + &marc8_9page186, + &marc8_9page187, + &marc8_9page188, + &marc8_9page189, + &marc8_9page190, + &marc8_9page191, + &marc8_9page192, + &marc8_9page193, + &marc8_9page194, + &marc8_9page195, + &marc8_9page196, + &marc8_9page197, + &marc8_9page198, + &marc8_9page199, + &marc8_9page200, + &marc8_9page201, + &marc8_9page202, + &marc8_9page203, + &marc8_9page204, + &marc8_9page205, + &marc8_9page206, + &marc8_9page207, + &marc8_9page208, + &marc8_9page209, + &marc8_9page210, + &marc8_9page211, + &marc8_9page212, + &marc8_9page213, + &marc8_9page214, + &marc8_9page215, + &marc8_9page216, + &marc8_9page217, + &marc8_9page218, + &marc8_9page219, + &marc8_9page220, + &marc8_9page221, + &marc8_9page222, + &marc8_9page223, + &marc8_9page224, + &marc8_9page225, + &marc8_9page226, + &marc8_9page227, + &marc8_9page228, + &marc8_9page229, + &marc8_9page230, + &marc8_9page231, + &marc8_9page232, + &marc8_9page233, + &marc8_9page234, + &marc8_9page235, + &marc8_9page236, + &marc8_9page237, + &marc8_9page238, + &marc8_9page239, + &marc8_9page240, + &marc8_9page241, + &marc8_9page242, + &marc8_9page243, + &marc8_9page244, + &marc8_9page245, + &marc8_9page246, + &marc8_9page247, + &marc8_9page248, + &marc8_9page249, + &marc8_9page250, + &marc8_9page251, + &marc8_9page252, + &marc8_9page253, + &marc8_9page254, + &marc8_9page255, + &marc8_9page256, + &marc8_9page257, + &marc8_9page258, + &marc8_9page259, + &marc8_9page260, + &marc8_9page261, + &marc8_9page262, + &marc8_9page263, + &marc8_9page264, + &marc8_9page265, + &marc8_9page266, + &marc8_9page267, + &marc8_9page268, + &marc8_9page269, + &marc8_9page270, + &marc8_9page271, + &marc8_9page272, + &marc8_9page273, + &marc8_9page274, + &marc8_9page275, + &marc8_9page276, + &marc8_9page277, + &marc8_9page278, + &marc8_9page279, + &marc8_9page280, + &marc8_9page281, + &marc8_9page282, + &marc8_9page283, + &marc8_9page284, + &marc8_9page285, + &marc8_9page286, + &marc8_9page287, + &marc8_9page288, + &marc8_9page289, + &marc8_9page290, + &marc8_9page291, + &marc8_9page292, + &marc8_9page293, + &marc8_9page294, + &marc8_9page295, + &marc8_9page296, + &marc8_9page297, + &marc8_9page298, + &marc8_9page299, + &marc8_9page300, + &marc8_9page301, + &marc8_9page302, + &marc8_9page303, + &marc8_9page304, + &marc8_9page305, + &marc8_9page306, + &marc8_9page307, + &marc8_9page308, + &marc8_9page309, + &marc8_9page310, + &marc8_9page311, + &marc8_9page312, + &marc8_9page313, + &marc8_9page314, + &marc8_9page315, + &marc8_9page316, + &marc8_9page317, + &marc8_9page318, + &marc8_9page319, + &marc8_9page320, + &marc8_9page321, + &marc8_9page322, + &marc8_9page323, + &marc8_9page324, + &marc8_9page325, + &marc8_9page326, + &marc8_9page327, + &marc8_9page328, + &marc8_9page329, + &marc8_9page330, + &marc8_9page331, + &marc8_9page332, + &marc8_9page333, + &marc8_9page334, + &marc8_9page335, + &marc8_9page336, + &marc8_9page337, + &marc8_9page338, + &marc8_9page339, + &marc8_9page340, + &marc8_9page341, + &marc8_9page342, + &marc8_9page343, + &marc8_9page344, + &marc8_9page345, + &marc8_9page346, + &marc8_9page347, + &marc8_9page348, + &marc8_9page349, + &marc8_9page350, + &marc8_9page351, + &marc8_9page352, + &marc8_9page353, + &marc8_9page354, + &marc8_9page355, + &marc8_9page356, + &marc8_9page357, + &marc8_9page358, + &marc8_9page359, + &marc8_9page360, + &marc8_9page361, + &marc8_9page362, + &marc8_9page363, + &marc8_9page364, + &marc8_9page365, + &marc8_9page366, + &marc8_9page367, + &marc8_9page368, + &marc8_9page369, + &marc8_9page370, + &marc8_9page371, + &marc8_9page372, + &marc8_9page373, + &marc8_9page374, + &marc8_9page375, + &marc8_9page376, + &marc8_9page377, + &marc8_9page378, + &marc8_9page379, + &marc8_9page380, + &marc8_9page381, + &marc8_9page382, + &marc8_9page383, + &marc8_9page384, + &marc8_9page385, + &marc8_9page386, + &marc8_9page387, + &marc8_9page388, + &marc8_9page389, + &marc8_9page390, + &marc8_9page391, + &marc8_9page392, + &marc8_9page393, + &marc8_9page394, + &marc8_9page395, + &marc8_9page396, + &marc8_9page397, + &marc8_9page398, + &marc8_9page399, + &marc8_9page400, + &marc8_9page401, + &marc8_9page402, + &marc8_9page403, + &marc8_9page404, + &marc8_9page405, + &marc8_9page406, + &marc8_9page407, + &marc8_9page408, + &marc8_9page409, + &marc8_9page410, + &marc8_9page411, + &marc8_9page412, + &marc8_9page413, + &marc8_9page414, + &marc8_9page415, + &marc8_9page416, + &marc8_9page417, + &marc8_9page418, + &marc8_9page419, + &marc8_9page420, + &marc8_9page421, + &marc8_9page422, + &marc8_9page423, + &marc8_9page424, + &marc8_9page425, + &marc8_9page426, + &marc8_9page427, + &marc8_9page428, + &marc8_9page429, + &marc8_9page430, + &marc8_9page431, + &marc8_9page432, + &marc8_9page433, + &marc8_9page434, + &marc8_9page435, + &marc8_9page436, + &marc8_9page437, + &marc8_9page438, + &marc8_9page439, + &marc8_9page440, + &marc8_9page441, + &marc8_9page442, + &marc8_9page443, + &marc8_9page444, + &marc8_9page445, + &marc8_9page446, + &marc8_9page447, + &marc8_9page448, + &marc8_9page449, + &marc8_9page450, + &marc8_9page451, + &marc8_9page452, + &marc8_9page453, + &marc8_9page454, + &marc8_9page455, + &marc8_9page456, + &marc8_9page457, + &marc8_9page458, + &marc8_9page459, + &marc8_9page460, + &marc8_9page461, + &marc8_9page462, + &marc8_9page463, + &marc8_9page464, + &marc8_9page465, + &marc8_9page466, + &marc8_9page467, + &marc8_9page468, + &marc8_9page469, + &marc8_9page470, + &marc8_9page471, + &marc8_9page472, + &marc8_9page473, + &marc8_9page474, + &marc8_9page475, + &marc8_9page476, + &marc8_9page477, + &marc8_9page478, + &marc8_9page479, + &marc8_9page480, + &marc8_9page481, + &marc8_9page482, + &marc8_9page483, + &marc8_9page484, + &marc8_9page485, + &marc8_9page486, + &marc8_9page487, + &marc8_9page488, + &marc8_9page489, + &marc8_9page490, + &marc8_9page491, + &marc8_9page492, + &marc8_9page493, + &marc8_9page494, + &marc8_9page495, + &marc8_9page496, + &marc8_9page497, + &marc8_9page498, + &marc8_9page499, + &marc8_9page500, + &marc8_9page501, + &marc8_9page502, + &marc8_9page503, + &marc8_9page504, + &marc8_9page505, + &marc8_9page506, + &marc8_9page507, + &marc8_9page508, + &marc8_9page509, + &marc8_9page510, + &marc8_9page511, + &marc8_9page512, + &marc8_9page513, + &marc8_9page514, + &marc8_9page515, + &marc8_9page516, + &marc8_9page517, + &marc8_9page518, + &marc8_9page519, + &marc8_9page520, + &marc8_9page521, + &marc8_9page522, + &marc8_9page523, + &marc8_9page524, + &marc8_9page525, + &marc8_9page526, + &marc8_9page527, + &marc8_9page528, + &marc8_9page529, + &marc8_9page530, + &marc8_9page531, + &marc8_9page532, + &marc8_9page533, + &marc8_9page534, + &marc8_9page535, + &marc8_9page536, + &marc8_9page537, + &marc8_9page538, + &marc8_9page539, + &marc8_9page540, + &marc8_9page541, + &marc8_9page542, + &marc8_9page543, + &marc8_9page544, + &marc8_9page545, + &marc8_9page546, + &marc8_9page547, + &marc8_9page548, + &marc8_9page549, + &marc8_9page550, + &marc8_9page551, + &marc8_9page552, + &marc8_9page553, + &marc8_9page554, + &marc8_9page555, + &marc8_9page556, + &marc8_9page557, + &marc8_9page558, + &marc8_9page559, + &marc8_9page560, + &marc8_9page561, + &marc8_9page562, + &marc8_9page563, + &marc8_9page564, + &marc8_9page565, + &marc8_9page566, + &marc8_9page567, + &marc8_9page568, + &marc8_9page569, + &marc8_9page570, + &marc8_9page571, + &marc8_9page572, + &marc8_9page573, + &marc8_9page574, + &marc8_9page575, + &marc8_9page576, + &marc8_9page577, + &marc8_9page578, + &marc8_9page579, + &marc8_9page580, + &marc8_9page581, + &marc8_9page582, + &marc8_9page583, + &marc8_9page584, + &marc8_9page585, + &marc8_9page586, + &marc8_9page587, + &marc8_9page588, + &marc8_9page589, + &marc8_9page590, + &marc8_9page591, + &marc8_9page592, + &marc8_9page593, + &marc8_9page594, + &marc8_9page595, + &marc8_9page596, + &marc8_9page597, + &marc8_9page598, + &marc8_9page599, + &marc8_9page600, + &marc8_9page601, + &marc8_9page602, + &marc8_9page603, + &marc8_9page604, + &marc8_9page605, + &marc8_9page606, + &marc8_9page607, + &marc8_9page608, + &marc8_9page609, + &marc8_9page610, + &marc8_9page611, + &marc8_9page612, + &marc8_9page613, + &marc8_9page614, + &marc8_9page615, + &marc8_9page616, + &marc8_9page617, + &marc8_9page618, + &marc8_9page619, + &marc8_9page620, + &marc8_9page621, + &marc8_9page622, + &marc8_9page623, + &marc8_9page624, + &marc8_9page625, + &marc8_9page626, + &marc8_9page627, + &marc8_9page628, + &marc8_9page629, + &marc8_9page630, + &marc8_9page631, + &marc8_9page632, + &marc8_9page633, + &marc8_9page634, + &marc8_9page635, + &marc8_9page636, + &marc8_9page637, + &marc8_9page638, + &marc8_9page639, + &marc8_9page640, + &marc8_9page641, + &marc8_9page642, + &marc8_9page643, + &marc8_9page644, + &marc8_9page645, + &marc8_9page646, + &marc8_9page647, + &marc8_9page648, + &marc8_9page649, + &marc8_9page650, + &marc8_9page651, + &marc8_9page652, + &marc8_9page653, + &marc8_9page654, + &marc8_9page655, + &marc8_9page656, + &marc8_9page657, + &marc8_9page658, + &marc8_9page659, + &marc8_9page660, + &marc8_9page661, + &marc8_9page662, + &marc8_9page663, + &marc8_9page664, + &marc8_9page665, + &marc8_9page666, + &marc8_9page667, + &marc8_9page668, + &marc8_9page669, + &marc8_9page670, + &marc8_9page671, + &marc8_9page672, + &marc8_9page673, + &marc8_9page674, + &marc8_9page675, + &marc8_9page676, + &marc8_9page677, + &marc8_9page678, + &marc8_9page679, + &marc8_9page680, + &marc8_9page681, + &marc8_9page682, + &marc8_9page683, + &marc8_9page684, + &marc8_9page685, + &marc8_9page686, + &marc8_9page687, + &marc8_9page688, + &marc8_9page689, + &marc8_9page690, + &marc8_9page691, + &marc8_9page692, + &marc8_9page693, + &marc8_9page694, + &marc8_9page695, + &marc8_9page696, + &marc8_9page697, + &marc8_9page698, + &marc8_9page699, + &marc8_9page700, + &marc8_9page701, + &marc8_9page702, + &marc8_9page703, + &marc8_9page704, + &marc8_9page705, + &marc8_9page706, + &marc8_9page707, + &marc8_9page708, + &marc8_9page709, + &marc8_9page710, + &marc8_9page711, + &marc8_9page712, + &marc8_9page713, + &marc8_9page714, + &marc8_9page715, + &marc8_9page716, + &marc8_9page717, + &marc8_9page718, + &marc8_9page719, + &marc8_9page720, + &marc8_9page721, + &marc8_9page722, + &marc8_9page723, + &marc8_9page724, + &marc8_9page725, + &marc8_9page726, + &marc8_9page727, + &marc8_9page728, + &marc8_9page729, + &marc8_9page730, + &marc8_9page731, + &marc8_9page732, + &marc8_9page733, + &marc8_9page734, + &marc8_9page735, + &marc8_9page736, + &marc8_9page737, + &marc8_9page738, + &marc8_9page739, + &marc8_9page740, + &marc8_9page741, + &marc8_9page742, + &marc8_9page743, + &marc8_9page744, + &marc8_9page745, + &marc8_9page746, + &marc8_9page747, + &marc8_9page748, + &marc8_9page749, + &marc8_9page750, + &marc8_9page751, + &marc8_9page752, + &marc8_9page753, + &marc8_9page754, + &marc8_9page755, + &marc8_9page756, + &marc8_9page757, + &marc8_9page758, + &marc8_9page759, + &marc8_9page760, + &marc8_9page761, + &marc8_9page762, + &marc8_9page763, + &marc8_9page764, + &marc8_9page765, + &marc8_9page766, + &marc8_9page767, + &marc8_9page768, + &marc8_9page769, + &marc8_9page770, + &marc8_9page771, + &marc8_9page772, + &marc8_9page773, + &marc8_9page774, + &marc8_9page775, + &marc8_9page776, + &marc8_9page777, + &marc8_9page778, + &marc8_9page779, + &marc8_9page780, + &marc8_9page781, + &marc8_9page782, + &marc8_9page783, + &marc8_9page784, + &marc8_9page785, + &marc8_9page786, + &marc8_9page787, + &marc8_9page788, + &marc8_9page789, + &marc8_9page790, + &marc8_9page791, + &marc8_9page792, + &marc8_9page793, + &marc8_9page794, + &marc8_9page795, + &marc8_9page796, + &marc8_9page797, + &marc8_9page798, + &marc8_9page799, + &marc8_9page800, + &marc8_9page801, + &marc8_9page802, + &marc8_9page803, + &marc8_9page804, + &marc8_9page805, + &marc8_9page806, + &marc8_9page807, + &marc8_9page808, + &marc8_9page809, + &marc8_9page810, + &marc8_9page811, + &marc8_9page812, + &marc8_9page813, + &marc8_9page814, + &marc8_9page815, + &marc8_9page816, + &marc8_9page817, + &marc8_9page818, + &marc8_9page819, + &marc8_9page820, + &marc8_9page821, + &marc8_9page822, + &marc8_9page823, + &marc8_9page824, + &marc8_9page825, + &marc8_9page826, + &marc8_9page827, +0, }; + +unsigned long yaz_marc8_9_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8_9ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + diff --git a/dependencies/yaz-2.1.28/src/marc8r.c b/dependencies/yaz-2.1.28/src/marc8r.c new file mode 100644 index 0000000..597e829 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/marc8r.c @@ -0,0 +1,31323 @@ +/** \file marc8r.c + \brief Character conversion, generated from ./codetables.xml + + Generated automatically by charconv.tcl +*/ +#include + + struct yaz_iconv_trie_flat { + char from[6]; + unsigned combining : 1; + unsigned to : 24; + }; + struct yaz_iconv_trie_dir { + int ptr : 15; + unsigned combining : 1; + unsigned to : 24; + }; + + struct yaz_iconv_trie { + struct yaz_iconv_trie_flat *flat; + struct yaz_iconv_trie_dir *dir; + }; + + + static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, + size_t inbytesleft, size_t *no_read, int *combining) + { + struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; + if (!t || inbytesleft < 1) + return 0; + if (t->dir) + { + size_t ch = inp[0] & 0xff; + unsigned long code = + lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); + if (code) + { + (*no_read)++; + return code; + } + if (t->dir[ch].to) + { + code = t->dir[ch].to; + *combining = t->dir[ch].combining; + *no_read = 1; + return code; + } + } + else + { + struct yaz_iconv_trie_flat *flat = t->flat; + while (flat->to) + { + size_t len = strlen(flat->from); + if (len <= inbytesleft) + { + if (memcmp(flat->from, inp, len) == 0) + { + *no_read = len; + *combining = flat->combining; + return flat->to; + } + } + flat++; + } + } + return 0; + } + +/* TRIE: size 166 */ +/* PAGE 9 */ +struct yaz_iconv_trie_flat marc8r_1page9_flat[] = { + {"\xA1", 1, 0xEB}, /* LIGATURE, FIRST HALF / COMBINING DOUBLE INVERTED BREVE */ + {"\xA0", 1, 0xFA}, /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page9 = { + marc8r_1page9_flat, 0 +}; +/* PAGE 8 */ +struct yaz_iconv_trie_flat marc8r_1page8_flat[] = { + {"\x89", 1, 0xE0}, /* PSEUDO QUESTION MARK / COMBINING HOOK ABOVE */ + {"\x80", 1, 0xE1}, /* GRAVE / COMBINING GRAVE ACCENT (Varia) */ + {"\x81", 1, 0xE2}, /* ACUTE / COMBINING ACUTE ACCENT (Oxia) */ + {"\x82", 1, 0xE3}, /* CIRCUMFLEX / COMBINING CIRCUMFLEX ACCENT */ + {"\x83", 1, 0xE4}, /* TILDE / COMBINING TILDE */ + {"\x84", 1, 0xE5}, /* MACRON / COMBINING MACRON */ + {"\x86", 1, 0xE6}, /* BREVE / COMBINING BREVE (Vrachy) */ + {"\x87", 1, 0xE7}, /* SUPERIOR DOT / COMBINING DOT ABOVE */ + {"\x88", 1, 0xE8}, /* UMLAUT, DIAERESIS / COMBINING DIAERESIS (Dialytika) */ + {"\x8C", 1, 0xE9}, /* HACEK / COMBINING CARON */ + {"\x8A", 1, 0xEA}, /* CIRCLE ABOVE, ANGSTROM / COMBINING RING ABOVE */ + {"\x95", 1, 0xED}, /* HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE RIGHT */ + {"\x8B", 1, 0xEE}, /* DOUBLE ACUTE / COMBINING DOUBLE ACUTE ACCENT */ + {"\x90", 1, 0xEF}, /* CANDRABINDU / COMBINING CANDRABINDU */ + {"\xA7", 1, 0xF0}, /* CEDILLA / COMBINING CEDILLA */ + {"\xA8", 1, 0xF1}, /* RIGHT HOOK, OGONEK / COMBINING OGONEK */ + {"\xA3", 1, 0xF2}, /* DOT BELOW / COMBINING DOT BELOW */ + {"\xA4", 1, 0xF3}, /* DOUBLE DOT BELOW / COMBINING DIAERESIS BELOW */ + {"\xA5", 1, 0xF4}, /* CIRCLE BELOW / COMBINING RING BELOW */ + {"\xB3", 1, 0xF5}, /* DOUBLE UNDERSCORE / COMBINING DOUBLE LOW LINE */ + {"\xB2", 1, 0xF6}, /* UNDERSCORE / COMBINING LOW LINE */ + {"\xA6", 1, 0xF7}, /* LEFT HOOK (COMMA BELOW) / COMBINING COMMA BELOW */ + {"\x9C", 1, 0xF8}, /* RIGHT CEDILLA / COMBINING LEFT HALF RING BELOW */ + {"\xAE", 1, 0xF9}, /* UPADHMANIYA / COMBINING BREVE BELOW */ + {"\x93", 1, 0xFE}, /* HIGH COMMA, CENTERED / COMBINING COMMA ABOVE (Psili) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page8 = { + marc8r_1page8_flat, 0 +}; +/* PAGE 7 */ +struct yaz_iconv_trie_flat marc8r_1page7_flat[] = { + {"\xA0", 0, 0xAC}, /* UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH HORN */ + {"\xAF", 0, 0xAD}, /* UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH HORN */ + {"\xA1", 0, 0xBC}, /* LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH HORN */ + {"\xB0", 0, 0xBD}, /* LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH HORN */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page7 = { + marc8r_1page7_flat, 0 +}; +/* PAGE 6 */ +struct yaz_iconv_trie_flat marc8r_1page6_flat[] = { + {"\xB9", 0, 0xA7}, /* SOFT SIGN, PRIME / MODIFIER LETTER PRIME */ + {"\xBC", 0, 0xAE}, /* ALIF / MODIFIER LETTER APOSTROPHE */ + {"\xBB", 0, 0xB0}, /* AYN / MODIFIER LETTER TURNED COMMA */ + {"\xBA", 0, 0xB7}, /* HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE PRIME */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page6 = { + marc8r_1page6_flat, 0 +}; +/* PAGE 5 */ +struct yaz_iconv_trie_flat marc8r_1page5_flat[] = { + {"\x90", 0, 0xA3}, /* UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER D WITH STROKE */ + {"\x91", 0, 0xB3}, /* LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER D WITH STROKE */ + {"\xB1", 0, 0xB8}, /* LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS I */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page5 = { + marc8r_1page5_flat, 0 +}; +/* PAGE 4 */ +struct yaz_iconv_trie_flat marc8r_1page4_flat[] = { + {"\x98", 0, 0xA2}, /* UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER O WITH STROKE */ + {"\x9E", 0, 0xA4}, /* UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER THORN (Icelandic) */ + {"\x86", 0, 0xA5}, /* UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE AE */ + {"\xB8", 0, 0xB2}, /* LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O WITH STROKE */ + {"\xBE", 0, 0xB4}, /* LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER THORN (Icelandic) */ + {"\xA6", 0, 0xB5}, /* LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE AE */ + {"\xB0", 0, 0xBA}, /* LOWERCASE ETH / LATIN SMALL LETTER ETH (Icelandic) */ + {"\x9F", 0, 0xC7}, /* ESZETT SYMBOL */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page4 = { + marc8r_1page4_flat, 0 +}; +/* PAGE 3 */ +struct yaz_iconv_trie_flat marc8r_1page3_flat[] = { + {"\x81", 0, 0xA1}, /* UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH STROKE */ + {"\x92", 0, 0xA6}, /* UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE OE */ + {"\x82", 0, 0xB1}, /* LOWERCASE POLISH L / LATIN SMALL LETTER L WITH STROKE */ + {"\x93", 0, 0xB6}, /* LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE OE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page3 = { + marc8r_1page3_flat, 0 +}; +/* PAGE 2 */ +struct yaz_iconv_trie_flat marc8r_1page2_flat[] = { + {"\x80\x8D", 0, 0x8D}, /* JOINER / ZERO WIDTH JOINER */ + {"\x80\x8C", 0, 0x8E}, /* NON-JOINER / ZERO WIDTH NON-JOINER */ + {"\x99\xAD", 0, 0xA9}, /* MUSIC FLAT SIGN */ + {"\x84\x93", 0, 0xC1}, /* SCRIPT SMALL L */ + {"\x84\x97", 0, 0xC2}, /* SOUND RECORDING COPYRIGHT */ + {"\x99\xAF", 0, 0xC4}, /* MUSIC SHARP SIGN */ + {"\x82\xAC", 0, 0xC8}, /* EURO SIGN */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page2 = { + marc8r_1page2_flat, 0 +}; +/* PAGE 1 */ +struct yaz_iconv_trie_flat marc8r_1page1_flat[] = { + {"\x98", 0, 0x88}, /* NON-SORT BEGIN / START OF STRING */ + {"\x9C", 0, 0x89}, /* NON-SORT END / STRING TERMINATOR */ + {"\xB7", 0, 0xA8}, /* MIDDLE DOT */ + {"\xAE", 0, 0xAA}, /* PATENT MARK / REGISTERED SIGN */ + {"\xB1", 0, 0xAB}, /* PLUS OR MINUS / PLUS-MINUS SIGN */ + {"\xA3", 0, 0xB9}, /* BRITISH POUND / POUND SIGN */ + {"\xB0", 0, 0xC0}, /* DEGREE SIGN */ + {"\xA9", 0, 0xC3}, /* COPYRIGHT SIGN */ + {"\xBF", 0, 0xC5}, /* INVERTED QUESTION MARK */ + {"\xA1", 0, 0xC6}, /* INVERTED EXCLAMATION MARK */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_1page1 = { + marc8r_1page1_flat, 0 +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_1page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x1B} /* ESCAPE (Unlikely to occur in UCS/Unicode) */, + {0, 0, 0}, + {0, 0, 0x1D} /* RECORD TERMINATOR / GROUP SEPARATOR */, + {0, 0, 0x1E} /* FIELD TERMINATOR / RECORD SEPARATOR */, + {0, 0, 0x1F} /* SUBFIELD DELIMITER / UNIT SEPARATOR */, + {0, 0, 0x20} /* SPACE, BLANK / SPACE */, + {0, 0, 0x21} /* EXCLAMATION MARK */, + {0, 0, 0x22} /* QUOTATION MARK */, + {0, 0, 0x23} /* NUMBER SIGN */, + {0, 0, 0x24} /* DOLLAR SIGN */, + {0, 0, 0x25} /* PERCENT SIGN */, + {0, 0, 0x26} /* AMPERSAND */, + {0, 0, 0x27} /* APOSTROPHE */, + {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x29} /* CLOSING PARENTHESIS / CLOSING PARENTHESIS */, + {0, 0, 0x2A} /* ASTERISK */, + {0, 0, 0x2B} /* PLUS SIGN */, + {0, 0, 0x2C} /* COMMA */, + {0, 0, 0x2D} /* HYPHEN-MINUS */, + {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x2F} /* SLASH / SOLIDUS */, + {0, 0, 0x30} /* DIGIT ZERO */, + {0, 0, 0x31} /* DIGIT ONE */, + {0, 0, 0x32} /* DIGIT TWO */, + {0, 0, 0x33} /* DIGIT THREE */, + {0, 0, 0x34} /* DIGIT FOUR */, + {0, 0, 0x35} /* DIGIT FIVE */, + {0, 0, 0x36} /* DIGIT SIX */, + {0, 0, 0x37} /* DIGIT SEVEN */, + {0, 0, 0x38} /* DIGIT EIGHT */, + {0, 0, 0x39} /* DIGIT NINE */, + {0, 0, 0x3A} /* COLON */, + {0, 0, 0x3B} /* SEMICOLON */, + {0, 0, 0x3C} /* LESS-THAN SIGN */, + {0, 0, 0x3D} /* EQUALS SIGN */, + {0, 0, 0x3E} /* GREATER-THAN SIGN */, + {0, 0, 0x3F} /* QUESTION MARK */, + {0, 0, 0x40} /* COMMERCIAL AT */, + {0, 0, 0x41} /* LATIN CAPITAL LETTER A */, + {0, 0, 0x42} /* LATIN CAPITAL LETTER B */, + {0, 0, 0x43} /* LATIN CAPITAL LETTER C */, + {0, 0, 0x44} /* LATIN CAPITAL LETTER D */, + {0, 0, 0x45} /* LATIN CAPITAL LETTER E */, + {0, 0, 0x46} /* LATIN CAPITAL LETTER F */, + {0, 0, 0x47} /* LATIN CAPITAL LETTER G */, + {0, 0, 0x48} /* LATIN CAPITAL LETTER H */, + {0, 0, 0x49} /* LATIN CAPITAL LETTER I */, + {0, 0, 0x4A} /* LATIN CAPITAL LETTER J */, + {0, 0, 0x4B} /* LATIN CAPITAL LETTER K */, + {0, 0, 0x4C} /* LATIN CAPITAL LETTER L */, + {0, 0, 0x4D} /* LATIN CAPITAL LETTER M */, + {0, 0, 0x4E} /* LATIN CAPITAL LETTER N */, + {0, 0, 0x4F} /* LATIN CAPITAL LETTER O */, + {0, 0, 0x50} /* LATIN CAPITAL LETTER P */, + {0, 0, 0x51} /* LATIN CAPITAL LETTER Q */, + {0, 0, 0x52} /* LATIN CAPITAL LETTER R */, + {0, 0, 0x53} /* LATIN CAPITAL LETTER S */, + {0, 0, 0x54} /* LATIN CAPITAL LETTER T */, + {0, 0, 0x55} /* LATIN CAPITAL LETTER U */, + {0, 0, 0x56} /* LATIN CAPITAL LETTER V */, + {0, 0, 0x57} /* LATIN CAPITAL LETTER W */, + {0, 0, 0x58} /* LATIN CAPITAL LETTER X */, + {0, 0, 0x59} /* LATIN CAPITAL LETTER Y */, + {0, 0, 0x5A} /* LATIN CAPITAL LETTER Z */, + {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0x5C} /* REVERSE SLASH / REVERSE SOLIDUS */, + {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0x5E} /* SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT */, + {0, 0, 0x5F} /* SPACING UNDERSCORE / LOW LINE */, + {0, 0, 0x60} /* SPACING GRAVE / GRAVE ACCENT */, + {0, 0, 0x61} /* LATIN SMALL LETTER A */, + {0, 0, 0x62} /* LATIN SMALL LETTER B */, + {0, 0, 0x63} /* LATIN SMALL LETTER C */, + {0, 0, 0x64} /* LATIN SMALL LETTER D */, + {0, 0, 0x65} /* LATIN SMALL LETTER E */, + {0, 0, 0x66} /* LATIN SMALL LETTER F */, + {0, 0, 0x67} /* LATIN SMALL LETTER G */, + {0, 0, 0x68} /* LATIN SMALL LETTER H */, + {0, 0, 0x69} /* LATIN SMALL LETTER I */, + {0, 0, 0x6A} /* LATIN SMALL LETTER J */, + {0, 0, 0x6B} /* LATIN SMALL LETTER K */, + {0, 0, 0x6C} /* LATIN SMALL LETTER L */, + {0, 0, 0x6D} /* LATIN SMALL LETTER M */, + {0, 0, 0x6E} /* LATIN SMALL LETTER N */, + {0, 0, 0x6F} /* LATIN SMALL LETTER O */, + {0, 0, 0x70} /* LATIN SMALL LETTER P */, + {0, 0, 0x71} /* LATIN SMALL LETTER Q */, + {0, 0, 0x72} /* LATIN SMALL LETTER R */, + {0, 0, 0x73} /* LATIN SMALL LETTER S */, + {0, 0, 0x74} /* LATIN SMALL LETTER T */, + {0, 0, 0x75} /* LATIN SMALL LETTER U */, + {0, 0, 0x76} /* LATIN SMALL LETTER V */, + {0, 0, 0x77} /* LATIN SMALL LETTER W */, + {0, 0, 0x78} /* LATIN SMALL LETTER X */, + {0, 0, 0x79} /* LATIN SMALL LETTER Y */, + {0, 0, 0x7A} /* LATIN SMALL LETTER Z */, + {0, 0, 0x7B} /* OPENING CURLY BRACKET / LEFT CURLY BRACKET */, + {0, 0, 0x7C} /* VERTICAL BAR (FILL) / VERTICAL LINE */, + {0, 0, 0x7D} /* CLOSING CURLY BRACKET / RIGHT CURLY BRACKET */, + {0, 0, 0x7E} /* SPACING TILDE / TILDE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {2, 0, 0}, + {5, 0, 0}, + {6, 0, 0}, + {4, 0, 0}, + {8, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {7, 0, 0}, + {0, 0, 0}, + {9, 0, 0}, + {10, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {3, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_1page0 = { + 0, marc8r_1page0_dir +}; +struct yaz_iconv_trie *marc8r_1ptrs [] = { + &marc8r_1page0, + &marc8r_1page1, + &marc8r_1page2, + &marc8r_1page3, + &marc8r_1page4, + &marc8r_1page5, + &marc8r_1page6, + &marc8r_1page7, + &marc8r_1page8, + &marc8r_1page9, +0, }; + +unsigned long yaz_marc8r_1_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_1ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 3 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8r_2page0_flat[] = { + {"\xCE\xB1", 0, 0x61}, /* GREEK SMALL LETTER ALPHA */ + {"\xCE\xB2", 0, 0x62}, /* GREEK SMALL LETTER BETA */ + {"\xCE\xB3", 0, 0x63}, /* GREEK SMALL LETTER GAMMA */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_2page0 = { + marc8r_2page0_flat, 0 +}; +struct yaz_iconv_trie *marc8r_2ptrs [] = { + &marc8r_2page0, +0, }; + +unsigned long yaz_marc8r_2_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_2ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 14 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8r_3page0_flat[] = { + {"\xE2\x82\x8D", 0, 0x28}, /* SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT PARENTHESIS */ + {"\xE2\x82\x8E", 0, 0x29}, /* SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT PARENTHESIS */ + {"\xE2\x82\x8A", 0, 0x2B}, /* SUBSCRIPT PLUS SIGN */ + {"\xE2\x82\x8B", 0, 0x2D}, /* SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS */ + {"\xE2\x82\x80", 0, 0x30}, /* SUBSCRIPT DIGIT ZERO */ + {"\xE2\x82\x81", 0, 0x31}, /* SUBSCRIPT DIGIT ONE */ + {"\xE2\x82\x82", 0, 0x32}, /* SUBSCRIPT DIGIT TWO */ + {"\xE2\x82\x83", 0, 0x33}, /* SUBSCRIPT DIGIT THREE */ + {"\xE2\x82\x84", 0, 0x34}, /* SUBSCRIPT DIGIT FOUR */ + {"\xE2\x82\x85", 0, 0x35}, /* SUBSCRIPT DIGIT FIVE */ + {"\xE2\x82\x86", 0, 0x36}, /* SUBSCRIPT DIGIT SIX */ + {"\xE2\x82\x87", 0, 0x37}, /* SUBSCRIPT DIGIT SEVEN */ + {"\xE2\x82\x88", 0, 0x38}, /* SUBSCRIPT DIGIT EIGHT */ + {"\xE2\x82\x89", 0, 0x39}, /* SUBSCRIPT DIGIT NINE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_3page0 = { + marc8r_3page0_flat, 0 +}; +struct yaz_iconv_trie *marc8r_3ptrs [] = { + &marc8r_3page0, +0, }; + +unsigned long yaz_marc8r_3_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_3ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 14 */ +/* PAGE 0 */ +struct yaz_iconv_trie_flat marc8r_4page0_flat[] = { + {"\xE2\x81\xBD", 0, 0x28}, /* SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT PARENTHESIS */ + {"\xE2\x81\xBE", 0, 0x29}, /* SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT RIGHT PARENTHESIS */ + {"\xE2\x81\xBA", 0, 0x2B}, /* SUPERSCRIPT PLUS SIGN */ + {"\xE2\x81\xBB", 0, 0x2D}, /* SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT MINUS */ + {"\xE2\x81\xB0", 0, 0x30}, /* SUPERSCRIPT DIGIT ZERO */ + {"\xC2\xB9", 0, 0x31}, /* SUPERSCRIPT DIGIT ONE */ + {"\xC2\xB2", 0, 0x32}, /* SUPERSCRIPT DIGIT TWO */ + {"\xC2\xB3", 0, 0x33}, /* SUPERSCRIPT DIGIT THREE */ + {"\xE2\x81\xB4", 0, 0x34}, /* SUPERSCRIPT DIGIT FOUR */ + {"\xE2\x81\xB5", 0, 0x35}, /* SUPERSCRIPT DIGIT FIVE */ + {"\xE2\x81\xB6", 0, 0x36}, /* SUPERSCRIPT DIGIT SIX */ + {"\xE2\x81\xB7", 0, 0x37}, /* SUPERSCRIPT DIGIT SEVEN */ + {"\xE2\x81\xB8", 0, 0x38}, /* SUPERSCRIPT DIGIT EIGHT */ + {"\xE2\x81\xB9", 0, 0x39}, /* SUPERSCRIPT DIGIT NINE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_4page0 = { + marc8r_4page0_flat, 0 +}; +struct yaz_iconv_trie *marc8r_4ptrs [] = { + &marc8r_4page0, +0, }; + +unsigned long yaz_marc8r_4_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_4ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 78 */ +/* PAGE 3 */ +struct yaz_iconv_trie_flat marc8r_5page3_flat[] = { + {"\xAC\x9E", 1, 0x4E}, /* VARIKA / HEBREW POINT JUDEO-SPANISH VARIKA */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_5page3 = { + marc8r_5page3_flat, 0 +}; +/* PAGE 2 */ +struct yaz_iconv_trie_flat marc8r_5page2_flat[] = { + {"\xBE", 0, 0x2D}, /* HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION MAQAF */ + {"\xB7", 1, 0x40}, /* HEBREW POINT PATAH */ + {"\xB8", 1, 0x41}, /* KAMATS / HEBREW POINT QAMATS */ + {"\xB6", 1, 0x42}, /* HEBREW POINT SEGOL */ + {"\xB5", 1, 0x43}, /* TSEREH / HEBREW POINT TSERE */ + {"\xB4", 1, 0x44}, /* HIRIK / HEBREW POINT HIRIQ */ + {"\xB9", 1, 0x45}, /* HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM */ + {"\xBB", 1, 0x46}, /* KUBUTS / HEBREW POINT QUBUTS */ + {"\xB0", 1, 0x47}, /* HEBREW POINT SHEVA */ + {"\xB2", 1, 0x48}, /* HEBREW POINT HATAF PATAH */ + {"\xB3", 1, 0x49}, /* HATAF KAMATS / HEBREW POINT HATAF QAMATS */ + {"\xB1", 1, 0x4A}, /* HEBREW POINT HATAF SEGOL */ + {"\xBC", 1, 0x4B}, /* HEBREW POINT DAGESH OR MAPIQ */ + {"\xBF", 1, 0x4C}, /* RAFEH / HEBREW POINT RAFE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_5page2 = { + marc8r_5page2_flat, 0 +}; +/* PAGE 1 */ +struct yaz_iconv_trie_flat marc8r_5page1_flat[] = { + {"\xB4", 0, 0x22}, /* QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION GERSHAYIM */ + {"\xB3", 0, 0x27}, /* APOSTROPHE, GERESH / HEBREW PUNCTUATION GERESH */ + {"\x81", 1, 0x4D}, /* RIGHT SHIN DOT / HEBREW POINT SHIN DOT */ + {"\x90", 0, 0x60}, /* HEBREW LETTER ALEF */ + {"\x91", 0, 0x61}, /* HEBREW LETTER BET */ + {"\x92", 0, 0x62}, /* HEBREW LETTER GIMEL */ + {"\x92", 0, 0x62}, /* HEBREW LETTER GIMEL */ + {"\x93", 0, 0x63}, /* HEBREW LETTER DALET */ + {"\x94", 0, 0x64}, /* HEBREW LETTER HE */ + {"\x95", 0, 0x65}, /* HEBREW LETTER VAV */ + {"\x96", 0, 0x66}, /* HEBREW LETTER ZAYIN */ + {"\x97", 0, 0x67}, /* HEBREW LETTER HET */ + {"\x98", 0, 0x68}, /* HEBREW LETTER TET */ + {"\x99", 0, 0x69}, /* HEBREW LETTER YOD */ + {"\x9A", 0, 0x6A}, /* HEBREW LETTER FINAL KAF */ + {"\x9B", 0, 0x6B}, /* HEBREW LETTER KAF */ + {"\x9C", 0, 0x6C}, /* HEBREW LETTER LAMED */ + {"\x9D", 0, 0x6D}, /* HEBREW LETTER FINAL MEM */ + {"\x9E", 0, 0x6E}, /* HEBREW LETTER MEM */ + {"\x9F", 0, 0x6F}, /* HEBREW LETTER FINAL NUN */ + {"\xA0", 0, 0x70}, /* HEBREW LETTER NUN */ + {"\xA1", 0, 0x71}, /* HEBREW LETTER SAMEKH */ + {"\xA2", 0, 0x72}, /* HEBREW LETTER AYIN */ + {"\xA3", 0, 0x73}, /* HEBREW LETTER FINAL PE */ + {"\xA4", 0, 0x74}, /* HEBREW LETTER PE */ + {"\xA5", 0, 0x75}, /* HEBREW LETTER FINAL TSADI */ + {"\xA6", 0, 0x76}, /* HEBREW LETTER TSADI */ + {"\xA7", 0, 0x77}, /* HEBREW LETTER QOF / KOF */ + {"\xA8", 0, 0x78}, /* HEBREW LETTER RESH */ + {"\xA9", 0, 0x79}, /* HEBREW LETTER SHIN */ + {"\xAA", 0, 0x7A}, /* HEBREW LETTER TAV */ + {"\xB0", 0, 0x7B}, /* HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY VOVN */ + {"\xB1", 0, 0x7C}, /* HEBREW LIGATURE YIDDISH VAV YOD / VOV YUD */ + {"\xB2", 0, 0x7D}, /* HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY YUDN */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_5page1 = { + marc8r_5page1_flat, 0 +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_5page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21} /* EXCLAMATION MARK */, + {0, 0, 0}, + {0, 0, 0x23} /* NUMBER SIGN */, + {0, 0, 0x24} /* DOLLAR SIGN */, + {0, 0, 0x25} /* PERCENT SIGN */, + {0, 0, 0x26} /* AMPERSAND */, + {0, 0, 0}, + {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0x2A} /* ASTERISK */, + {0, 0, 0x2B} /* PLUS SIGN */, + {0, 0, 0x2C} /* COMMA */, + {0, 0, 0}, + {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x2F} /* SLASH / SOLIDUS */, + {0, 0, 0x30} /* DIGIT ZERO */, + {0, 0, 0x31} /* DIGIT ONE */, + {0, 0, 0x32} /* DIGIT TWO */, + {0, 0, 0x33} /* DIGIT THREE */, + {0, 0, 0x34} /* DIGIT FOUR */, + {0, 0, 0x35} /* DIGIT FIVE */, + {0, 0, 0x36} /* DIGIT SIX */, + {0, 0, 0x37} /* DIGIT SEVEN */, + {0, 0, 0x38} /* DIGIT EIGHT */, + {0, 0, 0x39} /* DIGIT NINE */, + {0, 0, 0x3A} /* COLON */, + {0, 0, 0x3B} /* SEMICOLON */, + {0, 0, 0x3C} /* LESS-THAN SIGN */, + {0, 0, 0x3D} /* EQUALS SIGN */, + {0, 0, 0x3E} /* GREATER-THAN SIGN */, + {0, 0, 0x3F} /* QUESTION MARK */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {3, 0, 0}, + {2, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {4, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_5page0 = { + 0, marc8r_5page0_dir +}; +struct yaz_iconv_trie *marc8r_5ptrs [] = { + &marc8r_5page0, + &marc8r_5page1, + &marc8r_5page2, + &marc8r_5page3, +0, }; + +unsigned long yaz_marc8r_5_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_5ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 136 */ +/* PAGE 3 */ +struct yaz_iconv_trie_flat marc8r_6page3_flat[] = { + {"\x91", 0, 0xC0}, /* LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER GHE WITH UPTURN */ + {"\x90", 0, 0xE0}, /* UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_6page3 = { + marc8r_6page3_flat, 0 +}; +/* PAGE 2 */ +struct yaz_iconv_trie_dir marc8r_6page2_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xE4} /* CYRILLIC CAPITAL LETTER IO */, + {0, 0, 0xE1} /* UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE (Serbian) */, + {0, 0, 0xE2} /* CYRILLIC CAPITAL LETTER GJE */, + {0, 0, 0xE3} /* UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN IE */, + {0, 0, 0xE5} /* CYRILLIC CAPITAL LETTER DZE */, + {0, 0, 0xE6} /* UPPERCASE I / CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRANIAN I */, + {0, 0, 0xE7} /* UPPERCASE YI / CYRILLIC CAPITAL LETTER YI (Ukrainian) */, + {0, 0, 0xE8} /* CYRILLIC CAPITAL LETTER JE */, + {0, 0, 0xE9} /* CYRILLIC CAPITAL LETTER LJE */, + {0, 0, 0xEA} /* CYRILLIC CAPITAL LETTER NJE */, + {0, 0, 0xEB} /* UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE (Serbian) */, + {0, 0, 0xEC} /* CYRILLIC CAPITAL LETTER KJE */, + {0, 0, 0}, + {0, 0, 0xED} /* UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) */, + {0, 0, 0xEE} /* CYRILLIC CAPITAL LETTER DZHE */, + {0, 0, 0x61} /* CYRILLIC CAPITAL LETTER A */, + {0, 0, 0x62} /* CYRILLIC CAPITAL LETTER BE */, + {0, 0, 0x77} /* CYRILLIC CAPITAL LETTER VE */, + {0, 0, 0x67} /* UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE */, + {0, 0, 0x64} /* CYRILLIC CAPITAL LETTER DE */, + {0, 0, 0x65} /* CYRILLIC CAPITAL LETTER IE */, + {0, 0, 0x76} /* CYRILLIC CAPITAL LETTER ZHE */, + {0, 0, 0x7A} /* CYRILLIC CAPITAL LETTER ZE */, + {0, 0, 0x69} /* UPPERCASE II / CYRILLIC CAPITAL LETTER I */, + {0, 0, 0x6A} /* UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT I */, + {0, 0, 0x6B} /* CYRILLIC CAPITAL LETTER KA */, + {0, 0, 0x6C} /* CYRILLIC CAPITAL LETTER EL */, + {0, 0, 0x6D} /* CYRILLIC CAPITAL LETTER EM */, + {0, 0, 0x6E} /* CYRILLIC CAPITAL LETTER EN */, + {0, 0, 0x6F} /* CYRILLIC CAPITAL LETTER O */, + {0, 0, 0x70} /* CYRILLIC CAPITAL LETTER PE */, + {0, 0, 0x72} /* CYRILLIC CAPITAL LETTER ER */, + {0, 0, 0x73} /* CYRILLIC CAPITAL LETTER ES */, + {0, 0, 0x74} /* CYRILLIC CAPITAL LETTER TE */, + {0, 0, 0x75} /* CYRILLIC CAPITAL LETTER U */, + {0, 0, 0x66} /* CYRILLIC CAPITAL LETTER EF */, + {0, 0, 0x68} /* UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA */, + {0, 0, 0x63} /* CYRILLIC CAPITAL LETTER TSE */, + {0, 0, 0x7E} /* CYRILLIC CAPITAL LETTER CHE */, + {0, 0, 0x7B} /* CYRILLIC CAPITAL LETTER SHA */, + {0, 0, 0x7D} /* CYRILLIC CAPITAL LETTER SHCHA */, + {0, 0, 0xEF} /* CYRILLIC CAPITAL LETTER HARD SIGN */, + {0, 0, 0x79} /* UPPERCASE YERI / CYRILLIC CAPITAL LETTER YERI */, + {0, 0, 0x78} /* CYRILLIC CAPITAL LETTER SOFT SIGN */, + {0, 0, 0x7C} /* CYRILLIC CAPITAL LETTER E */, + {0, 0, 0x60} /* UPPERCASE IU / CYRILLIC CAPITAL LETTER YU */, + {0, 0, 0x71} /* UPPERCASE IA / CYRILLIC CAPITAL LETTER YA */, + {0, 0, 0x41} /* CYRILLIC SMALL LETTER A */, + {0, 0, 0x42} /* CYRILLIC SMALL LETTER BE */, + {0, 0, 0x57} /* CYRILLIC SMALL LETTER VE */, + {0, 0, 0x47} /* LOWERCASE GE / CYRILLIC SMALL LETTER GHE */, + {0, 0, 0x44} /* CYRILLIC SMALL LETTER DE */, + {0, 0, 0x45} /* CYRILLIC SMALL LETTER IE */, + {0, 0, 0x56} /* CYRILLIC SMALL LETTER ZHE */, + {0, 0, 0x5A} /* CYRILLIC SMALL LETTER ZE */, + {0, 0, 0x49} /* LOWERCASE II / CYRILLIC SMALL LETTER I */, + {0, 0, 0x4A} /* LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT I */, + {0, 0, 0x4B} /* CYRILLIC SMALL LETTER KA */, + {0, 0, 0x4C} /* CYRILLIC SMALL LETTER EL */, + {0, 0, 0x4D} /* CYRILLIC SMALL LETTER EM */, + {0, 0, 0x4E} /* CYRILLIC SMALL LETTER EN */, + {0, 0, 0x4F} /* CYRILLIC SMALL LETTER O */, + {0, 0, 0x50} /* CYRILLIC SMALL LETTER PE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_6page2 = { + 0, marc8r_6page2_dir +}; +/* PAGE 1 */ +struct yaz_iconv_trie_flat marc8r_6page1_flat[] = { + {"\x8E", 0, 0x40}, /* LOWERCASE IU / CYRILLIC SMALL LETTER YU */ + {"\x86", 0, 0x43}, /* CYRILLIC SMALL LETTER TSE */ + {"\x84", 0, 0x46}, /* CYRILLIC SMALL LETTER EF */ + {"\x85", 0, 0x48}, /* LOWERCASE KHA / CYRILLIC SMALL LETTER HA */ + {"\x8F", 0, 0x51}, /* LOWERCASE IA / CYRILLIC SMALL LETTER YA */ + {"\x80", 0, 0x52}, /* CYRILLIC SMALL LETTER ER */ + {"\x81", 0, 0x53}, /* CYRILLIC SMALL LETTER ES */ + {"\x81", 0, 0x53}, /* CYRILLIC SMALL LETTER ES */ + {"\x82", 0, 0x54}, /* CYRILLIC SMALL LETTER TE */ + {"\x83", 0, 0x55}, /* CYRILLIC SMALL LETTER U */ + {"\x8C", 0, 0x58}, /* CYRILLIC SMALL LETTER SOFT SIGN */ + {"\x8B", 0, 0x59}, /* LOWERCASE YERI / CYRILLIC SMALL LETTER YERI */ + {"\x88", 0, 0x5B}, /* CYRILLIC SMALL LETTER SHA */ + {"\x8D", 0, 0x5C}, /* LOWERCASE REVERSED E / CYRILLIC SMALL LETTER E */ + {"\x89", 0, 0x5D}, /* CYRILLIC SMALL LETTER SHCHA */ + {"\x87", 0, 0x5E}, /* CYRILLIC SMALL LETTER CHE */ + {"\x8A", 0, 0x5F}, /* CYRILLIC SMALL LETTER HARD SIGN */ + {"\x92", 0, 0xC1}, /* LOWERCASE DJE / CYRILLIC SMALL LETTER DJE (Serbian) */ + {"\x93", 0, 0xC2}, /* CYRILLIC SMALL LETTER GJE */ + {"\x94", 0, 0xC3}, /* LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN IE */ + {"\x91", 0, 0xC4}, /* CYRILLIC SMALL LETTER IO */ + {"\x95", 0, 0xC5}, /* CYRILLIC SMALL LETTER DZE */ + {"\x96", 0, 0xC6}, /* LOWERCASE I / CYRILLIC SMALL LETTER BYELORUSSIAN-UKRANIAN I */ + {"\x97", 0, 0xC7}, /* LOWERCASE YI / CYRILLIC SMALL LETTER YI (Ukrainian) */ + {"\x98", 0, 0xC8}, /* CYRILLIC SMALL LETTER JE */ + {"\x99", 0, 0xC9}, /* CYRILLIC SMALL LETTER LJE */ + {"\x9A", 0, 0xCA}, /* CYRILLIC SMALL LETTER NJE */ + {"\x9B", 0, 0xCB}, /* LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE (Serbian) */ + {"\x9C", 0, 0xCC}, /* CYRILLIC SMALL LETTER KJE */ + {"\x9E", 0, 0xCD}, /* LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT U (Byelorussian) */ + {"\x9F", 0, 0xCE}, /* CYRILLIC SMALL LETTER DZHE */ + {"\xA3", 0, 0xD0}, /* CYRILLIC SMALL LETTER YAT */ + {"\xB3", 0, 0xD1}, /* CYRILLIC SMALL LETTER FITA */ + {"\xB5", 0, 0xD2}, /* CYRILLIC SMALL LETTER IZHITSA */ + {"\xAB", 0, 0xD3}, /* CYRILLIC SMALL LETTER BIG YUS */ + {"\xA2", 0, 0xF0}, /* CYRILLIC CAPITAL LETTER YAT */ + {"\xB2", 0, 0xF1}, /* CYRILLIC CAPITAL LETTER FITA */ + {"\xB4", 0, 0xF2}, /* CYRILLIC CAPITAL LETTER IZHITSA */ + {"\xAA", 0, 0xF3}, /* CYRILLIC CAPITAL LETTER BIG YUS */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_6page1 = { + marc8r_6page1_flat, 0 +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_6page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21} /* EXCLAMATION MARK */, + {0, 0, 0x22} /* QUOTATION MARK */, + {0, 0, 0x23} /* NUMBER SIGN */, + {0, 0, 0x24} /* DOLLAR SIGN */, + {0, 0, 0x25} /* PERCENT SIGN */, + {0, 0, 0x26} /* AMPERSAND */, + {0, 0, 0x27} /* APOSTROPHE */, + {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0x2A} /* ASTERISK */, + {0, 0, 0x2B} /* PLUS SIGN */, + {0, 0, 0x2C} /* COMMA */, + {0, 0, 0x2D} /* HYPHEN-MINUS */, + {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x2F} /* SLASH / SOLIDUS */, + {0, 0, 0x30} /* DIGIT ZERO */, + {0, 0, 0x31} /* DIGIT ONE */, + {0, 0, 0x32} /* DIGIT TWO */, + {0, 0, 0x33} /* DIGIT THREE */, + {0, 0, 0x34} /* DIGIT FOUR */, + {0, 0, 0x35} /* DIGIT FIVE */, + {0, 0, 0x36} /* DIGIT SIX */, + {0, 0, 0x37} /* DIGIT SEVEN */, + {0, 0, 0x38} /* DIGIT EIGHT */, + {0, 0, 0x39} /* DIGIT NINE */, + {0, 0, 0x3A} /* COLON */, + {0, 0, 0x3B} /* SEMICOLON */, + {0, 0, 0x3C} /* LESS-THAN SIGN */, + {0, 0, 0x3D} /* EQUALS SIGN */, + {0, 0, 0x3E} /* GREATER-THAN SIGN */, + {0, 0, 0x3F} /* QUESTION MARK */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xDB} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0xDD} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0xDF} /* SPACING UNDERSCORE / LOW LINE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {3, 0, 0}, + {2, 0, 0}, + {4, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_6page0 = { + 0, marc8r_6page0_dir +}; +struct yaz_iconv_trie *marc8r_6ptrs [] = { + &marc8r_6page0, + &marc8r_6page1, + &marc8r_6page2, + &marc8r_6page3, +0, }; + +unsigned long yaz_marc8r_6_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_6ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 173 */ +/* PAGE 6 */ +struct yaz_iconv_trie_flat marc8r_7page6_flat[] = { + {"\x86", 1, 0xFD}, /* SHORT E / COMBINING BREVE */ + {"\x8C", 1, 0xFE}, /* SHORT U / COMBINING CARON */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_7page6 = { + marc8r_7page6_flat, 0 +}; +/* PAGE 5 */ +struct yaz_iconv_trie_dir marc8r_7page5_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0xAB} /* ARABIC LETTER BEHEH */, + {0, 0, 0xAC} /* ARABIC LETTER HAH WITH HAMZA ABOVE */, + {0, 0, 0xAD} /* ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL ABOVE */, + {0, 0, 0xAE} /* ARABIC LETTER NYEH */, + {0, 0, 0xAF} /* ARABIC LETTER DYEH */, + {0, 0, 0xB0} /* ARABIC LETTER HAH WITH THREE DOTS ABOVE */, + {0, 0, 0xB1} /* ARABIC LETTER TCHEH */, + {0, 0, 0xB3} /* ARABIC LETTER TCHEHEH */, + {0, 0, 0xB4} /* ARABIC LETTER DDAL */, + {0, 0, 0xB5} /* ARABIC LETTER DAL WITH RING */, + {0, 0, 0xB6} /* ARABIC LETTER DAL WITH DOT BELOW */, + {0, 0, 0xB7} /* ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH */, + {0, 0, 0xB8} /* ARABIC LETTER DAHAL */, + {0, 0, 0xB9} /* ARABIC LETTER DDAHAL */, + {0, 0, 0xBA} /* ARABIC LETTER DUL */, + {0, 0, 0xBB} /* ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS */, + {0, 0, 0xBC} /* ARABIC LETTER DAL WITH FOUR DOTS ABOVE */, + {0, 0, 0xBD} /* ARABIC LETTER RREH */, + {0, 0, 0xBE} /* ARABIC LETTER REH WITH SMALL V */, + {0, 0, 0xBF} /* ARABIC LETTER REH WITH RING */, + {0, 0, 0xC0} /* ARABIC LETTER REH WITH DOT BELOW */, + {0, 0, 0xC1} /* ARABIC LETTER REH WITH SMALL V BELOW */, + {0, 0, 0xC2} /* ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE */, + {0, 0, 0xC3} /* ARABIC LETTER REH WITH TWO DOTS ABOVE */, + {0, 0, 0xC4} /* ARABIC LETTER JEH */, + {0, 0, 0xC5} /* ARABIC LETTER REH WITH FOUR DOTS ABOVE */, + {0, 0, 0xC6} /* ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE */, + {0, 0, 0xC7} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW */, + {0, 0, 0xC8} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE */, + {0, 0, 0xCA} /* ARABIC LETTER SAD WITH TWO DOTS BELOW */, + {0, 0, 0xCB} /* ARABIC LETTER SAD WITH THREE DOTS ABOVE */, + {0, 0, 0xCD} /* ARABIC LETTER TAH WITH THREE DOTS ABOVE */, + {0, 0, 0xCE} /* ARABIC LETTER AIN WITH THREE DOTS ABOVE */, + {0, 0, 0xD0} /* ARABIC LETTER DOTLESS FEH */, + {0, 0, 0xD1} /* ARABIC LETTER FEH WITH DOT MOVED BELOW */, + {0, 0, 0xD2} /* ARABIC LETTER FEH WITH DOT BELOW */, + {0, 0, 0xD3} /* ARABIC LETTER VEH */, + {0, 0, 0xD4} /* ARABIC LETTER FEH WITH THREE DOTS BELOW */, + {0, 0, 0xD5} /* ARABIC LETTER PEHEH */, + {0, 0, 0xD6} /* ARABIC LETTER QAF WITH DOT ABOVE */, + {0, 0, 0xD7} /* ARABIC LETTER QAF WITH THREE DOTS ABOVE */, + {0, 0, 0xD8} /* ARABIC LETTER KEHEH */, + {0, 0, 0xD9} /* ARABIC LETTER SWASH KAF */, + {0, 0, 0xDA} /* ARABIC LETTER KAF WITH RING */, + {0, 0, 0xDB} /* ARABIC LETTER KAF WITH DOT ABOVE */, + {0, 0, 0xDC} /* ARABIC LETTER NG */, + {0, 0, 0xDD} /* ARABIC LETTER KAF WITH THREE DOTS BELOW */, + {0, 0, 0xDE} /* ARABIC LETTER GAF */, + {0, 0, 0xDF} /* ARABIC LETTER GAF WITH RING */, + {0, 0, 0xE0} /* ARABIC LETTER NGOEH */, + {0, 0, 0xE1} /* ARABIC LETTER GAF WITH TWO DOTS BELOW */, + {0, 0, 0xE2} /* ARABIC LETTER GUEH */, + {0, 0, 0xE3} /* ARABIC LETTER GAF WITH THREE DOTS ABOVE */, + {0, 0, 0xE4} /* ARABIC LETTER LAM WITH SMALL V */, + {0, 0, 0xE5} /* ARABIC LETTER LAM WITH DOT ABOVE */, + {0, 0, 0xE6} /* ARABIC LETTER LAM WITH THREE DOTS ABOVE */, + {0, 0, 0xE7} /* ARABIC LETTER LAM WITH THREE DOTS BELOW */, + {0, 0, 0xEC} /* ARABIC LETTER NOON WITH DOT BELOW */, + {0, 0, 0xE8} /* ARABIC LETTER NOON GHUNNA */, + {0, 0, 0xE9} /* ARABIC LETTER RNOON */, + {0, 0, 0xEA} /* ARABIC LETTER NOON WITH RING */, + {0, 0, 0xEB} /* ARABIC LETTER NOON WITH THREE DOTS ABOVE */, + {0, 0, 0xED} /* ARABIC LETTER HEH DOACHASHMEE */, + {0, 0, 0xB2} /* ARABIC LETTER TCHEH WITH DOT ABOVE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_7page5 = { + 0, marc8r_7page5_dir +}; +/* PAGE 4 */ +struct yaz_iconv_trie_flat marc8r_7page4_flat[] = { + {"\xBD", 0, 0xA1}, /* DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI AMPERSAND */ + {"\xBA", 0, 0xC9}, /* ARABIC LETTER SHEEN WITH DOT BELOW */ + {"\xBB", 0, 0xCC}, /* ARABIC LETTER DAD WITH DOT BELOW */ + {"\xBC", 0, 0xCF}, /* ARABIC LETTER GHAIN WITH DOT BELOW */ + {"\x80", 0, 0xEE}, /* HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH YEH ABOVE */ + {"\x84", 0, 0xEF}, /* ARABIC LETTER WAW WITH RING */ + {"\x85", 0, 0xF0}, /* KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE */ + {"\x86", 0, 0xF1}, /* ARABIC LETTER OE */ + {"\x8A", 0, 0xF2}, /* ARABIC LETTER WAW WITH TWO DOTS ABOVE */ + {"\x8B", 0, 0xF3}, /* ARABIC LETTER VE */ + {"\x8D", 0, 0xF4}, /* ARABIC LETTER YEH WITH TAIL */ + {"\x8E", 0, 0xF5}, /* ARABIC LETTER YEH WITH SMALL V */ + {"\x90", 0, 0xF6}, /* ARABIC LETTER E */ + {"\x92", 0, 0xF7}, /* ARABIC LETTER YEH BARREE */ + {"\x93", 0, 0xF8}, /* ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_7page4 = { + marc8r_7page4_flat, 0 +}; +/* PAGE 3 */ +struct yaz_iconv_trie_flat marc8r_7page3_flat[] = { + {"\x80\x9D", 0, 0x79}, /* RIGHT DOUBLE QUOTATION MARK */ + {"\x80\x9C", 0, 0x7A}, /* LEFT DOUBLE QUOTATION MARK */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_7page3 = { + marc8r_7page3_flat, 0 +}; +/* PAGE 2 */ +struct yaz_iconv_trie_flat marc8r_7page2_flat[] = { + {"\x8C", 0, 0x2C}, /* ARABIC COMMA */ + {"\x9B", 0, 0x3B}, /* ARABIC SEMICOLON */ + {"\x9F", 0, 0x3F}, /* ARABIC QUESTION MARK */ + {"\xA1", 0, 0x41}, /* HAMZAH / ARABIC LETTER HAMZA */ + {"\xA2", 0, 0x42}, /* ARABIC LETTER ALEF WITH MADDA ABOVE */ + {"\xA3", 0, 0x43}, /* ARABIC LETTER ALEF WITH HAMZA ABOVE */ + {"\xA4", 0, 0x44}, /* ARABIC LETTER WAW WITH HAMZA ABOVE */ + {"\xA5", 0, 0x45}, /* ARABIC LETTER ALEF WITH HAMZA BELOW */ + {"\xA6", 0, 0x46}, /* ARABIC LETTER YEH WITH HAMZA ABOVE */ + {"\xA7", 0, 0x47}, /* ARABIC LETTER ALEF */ + {"\xA8", 0, 0x48}, /* ARABIC LETTER BEH */ + {"\xA9", 0, 0x49}, /* ARABIC LETTER TEH MARBUTA */ + {"\xAA", 0, 0x4A}, /* ARABIC LETTER TEH */ + {"\xAB", 0, 0x4B}, /* ARABIC LETTER THEH */ + {"\xAC", 0, 0x4C}, /* ARABIC LETTER JEEM */ + {"\xAD", 0, 0x4D}, /* ARABIC LETTER HAH */ + {"\xAE", 0, 0x4E}, /* ARABIC LETTER KHAH */ + {"\xAF", 0, 0x4F}, /* ARABIC LETTER DAL */ + {"\xB0", 0, 0x50}, /* ARABIC LETTER THAL */ + {"\xB1", 0, 0x51}, /* ARABIC LETTER REH */ + {"\xB2", 0, 0x52}, /* ARABIC LETTER ZAIN */ + {"\xB3", 0, 0x53}, /* ARABIC LETTER SEEN */ + {"\xB4", 0, 0x54}, /* ARABIC LETTER SHEEN */ + {"\xB4", 0, 0x54}, /* ARABIC LETTER SHEEN */ + {"\xB5", 0, 0x55}, /* ARABIC LETTER SAD */ + {"\xB6", 0, 0x56}, /* ARABIC LETTER DAD */ + {"\xB7", 0, 0x57}, /* ARABIC LETTER TAH */ + {"\xB8", 0, 0x58}, /* ARABIC LETTER ZAH */ + {"\xB9", 0, 0x59}, /* ARABIC LETTER AIN */ + {"\xBA", 0, 0x5A}, /* ARABIC LETTER GHAIN */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_7page2 = { + marc8r_7page2_flat, 0 +}; +/* PAGE 1 */ +struct yaz_iconv_trie_flat marc8r_7page1_flat[] = { + {"\xAA", 0, 0x25}, /* PERCENT SIGN / ARABIC PERCENT SIGN */ + {"\xAD", 0, 0x2A}, /* ASTERISK / ARABIC FIVE POINTED STAR */ + {"\xA0", 0, 0x30}, /* ARABIC-INDIC DIGIT ZERO */ + {"\xA1", 0, 0x31}, /* ARABIC-INDIC DIGIT ONE */ + {"\xA2", 0, 0x32}, /* ARABIC-INDIC DIGIT TWO */ + {"\xA3", 0, 0x33}, /* ARABIC-INDIC DIGIT THREE */ + {"\xA4", 0, 0x34}, /* ARABIC-INDIC DIGIT FOUR */ + {"\xA5", 0, 0x35}, /* ARABIC-INDIC DIGIT FIVE */ + {"\xA6", 0, 0x36}, /* ARABIC-INDIC DIGIT SIX */ + {"\xA7", 0, 0x37}, /* ARABIC-INDIC DIGIT SEVEN */ + {"\xA8", 0, 0x38}, /* ARABIC-INDIC DIGIT EIGHT */ + {"\xA9", 0, 0x39}, /* ARABIC-INDIC DIGIT NINE */ + {"\x80", 0, 0x60}, /* ARABIC TATWEEL */ + {"\x81", 0, 0x61}, /* ARABIC LETTER FEH */ + {"\x82", 0, 0x62}, /* ARABIC LETTER QAF */ + {"\x83", 0, 0x63}, /* ARABIC LETTER KAF */ + {"\x84", 0, 0x64}, /* ARABIC LETTER LAM */ + {"\x85", 0, 0x65}, /* ARABIC LETTER MEEM */ + {"\x86", 0, 0x66}, /* ARABIC LETTER NOON */ + {"\x87", 0, 0x67}, /* ARABIC LETTER HEH */ + {"\x88", 0, 0x68}, /* ARABIC LETTER WAW */ + {"\x89", 0, 0x69}, /* ARABIC LETTER ALEF MAKSURA */ + {"\x8A", 0, 0x6A}, /* ARABIC LETTER YEH */ + {"\x8B", 1, 0x6B}, /* ARABIC FATHATAN */ + {"\x8C", 1, 0x6C}, /* ARABIC DAMMATAN */ + {"\x8D", 1, 0x6D}, /* ARABIC KASRATAN */ + {"\x8E", 1, 0x6E}, /* ARABIC FATHA */ + {"\x8F", 1, 0x6F}, /* ARABIC DAMMA */ + {"\x90", 1, 0x70}, /* ARABIC KASRA */ + {"\x91", 1, 0x71}, /* ARABIC SHADDA */ + {"\x92", 1, 0x72}, /* ARABIC SUKUN */ + {"\xB1", 0, 0x73}, /* ARABIC LETTER ALEF WASLA */ + {"\xB0", 0, 0x74}, /* ARABIC LETTER SUPERSCRIPT ALEF */ + {"\xAC", 0, 0x78}, /* ARABIC THOUSANDS SEPARATOR */ + {"\xB2", 0, 0xA2}, /* ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE */ + {"\xB3", 0, 0xA3}, /* ARABIC LETTER ALEF WITH WAVY HAMZA BELOW */ + {"\xB9", 0, 0xA4}, /* ARABIC LETTER TTEH */ + {"\xBA", 0, 0xA5}, /* ARABIC LETTER TTEHEH */ + {"\xBB", 0, 0xA6}, /* ARABIC LETTER BBEH */ + {"\xBC", 0, 0xA7}, /* ARABIC LETTER TEH WITH RING */ + {"\xBD", 0, 0xA8}, /* ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS */ + {"\xBE", 0, 0xA9}, /* ARABIC LETTER PEH */ + {"\xBF", 0, 0xAA}, /* ARABIC LETTER TEHEH */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_7page1 = { + marc8r_7page1_flat, 0 +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_7page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21} /* EXCLAMATION MARK */, + {0, 0, 0x22} /* QUOTATION MARK */, + {0, 0, 0x23} /* NUMBER SIGN */, + {0, 0, 0x24} /* DOLLAR SIGN */, + {0, 0, 0}, + {0, 0, 0x26} /* AMPERSAND */, + {0, 0, 0x27} /* APOSTROPHE */, + {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, + {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, + {0, 0, 0}, + {0, 0, 0x2B} /* PLUS SIGN */, + {0, 0, 0}, + {0, 0, 0x2D} /* HYPHEN-MINUS */, + {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, + {0, 0, 0x2F} /* SLASH / SOLIDUS */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x3A} /* COLON */, + {0, 0, 0}, + {0, 0, 0x3C} /* LESS-THAN SIGN */, + {0, 0, 0x3D} /* EQUALS SIGN */, + {0, 0, 0x3E} /* GREATER-THAN SIGN */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {7, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {3, 0, 0}, + {2, 0, 0}, + {6, 0, 0}, + {5, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {4, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_7page0 = { + 0, marc8r_7page0_dir +}; +struct yaz_iconv_trie *marc8r_7ptrs [] = { + &marc8r_7page0, + &marc8r_7page1, + &marc8r_7page2, + &marc8r_7page3, + &marc8r_7page4, + &marc8r_7page5, + &marc8r_7page6, +0, }; + +unsigned long yaz_marc8r_7_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_7ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 73 */ +/* PAGE 6 */ +struct yaz_iconv_trie_flat marc8r_8page6_flat[] = { + {"\x9A", 0, 0x47}, /* GREEK LETTER STIGMA */ + {"\x9C", 0, 0x48}, /* GREEK LETTER DIGAMMA */ + {"\x9E", 0, 0x54}, /* GREEK LETTER KOPPA */ + {"\xA0", 0, 0x5E}, /* GREEK LETTER SAMPI */ + {"\x90", 0, 0x63}, /* GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF WORD */ + {"\x9B", 0, 0x67}, /* GREEK SMALL LETTER STIGMA */ + {"\x9D", 0, 0x68}, /* GREEK SMALL LETTER DIGAMMA */ + {"\x9D", 0, 0x68}, /* GREEK SMALL LETTER DIGAMMA */ + {"\x80", 0, 0x73}, /* GREEK SMALL LETTER PI */ + {"\x9F", 0, 0x74}, /* GREEK SMALL LETTER KOPPA */ + {"\x81", 0, 0x75}, /* GREEK SMALL LETTER RHO */ + {"\x83", 0, 0x76}, /* GREEK SMALL LETTER SIGMA */ + {"\x82", 0, 0x77}, /* GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER SIGMA END OF WORD */ + {"\x84", 0, 0x78}, /* GREEK SMALL LETTER TAU */ + {"\x85", 0, 0x79}, /* GREEK SMALL LETTER UPSILON */ + {"\x86", 0, 0x7A}, /* GREEK SMALL LETTER PHI */ + {"\x87", 0, 0x7B}, /* GREEK SMALL LETTER CHI */ + {"\x88", 0, 0x7C}, /* GREEK SMALL LETTER PSI */ + {"\x89", 0, 0x7D}, /* GREEK SMALL LETTER OMEGA */ + {"\xA1", 0, 0x7E}, /* GREEK SMALL LETTER SAMPI */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page6 = { + marc8r_8page6_flat, 0 +}; +/* PAGE 5 */ +struct yaz_iconv_trie_flat marc8r_8page5_flat[] = { + {"\x87", 0, 0x3B}, /* GREEK ANO TELEIA / RAISED DOT, GREEK SEMICOLON */ + {"\x91", 0, 0x41}, /* GREEK CAPITAL LETTER ALPHA */ + {"\x92", 0, 0x42}, /* GREEK CAPITAL LETTER BETA */ + {"\x93", 0, 0x44}, /* GREEK CAPITAL LETTER GAMMA */ + {"\x94", 0, 0x45}, /* GREEK CAPITAL LETTER DELTA */ + {"\x95", 0, 0x46}, /* GREEK CAPITAL LETTER EPSILON */ + {"\x96", 0, 0x49}, /* GREEK CAPITAL LETTER ZETA */ + {"\x97", 0, 0x4A}, /* GREEK CAPITAL LETTER ETA */ + {"\x98", 0, 0x4B}, /* GREEK CAPITAL LETTER THETA */ + {"\x99", 0, 0x4C}, /* GREEK CAPITAL LETTER IOTA */ + {"\x9A", 0, 0x4D}, /* GREEK CAPITAL LETTER KAPPA */ + {"\x9B", 0, 0x4E}, /* GREEK CAPITAL LETTER LAMDA */ + {"\x9C", 0, 0x4F}, /* GREEK CAPITAL LETTER MU */ + {"\x9D", 0, 0x50}, /* GREEK CAPITAL LETTER NU */ + {"\x9E", 0, 0x51}, /* GREEK CAPITAL LETTER XI */ + {"\x9F", 0, 0x52}, /* GREEK CAPITAL LETTER OMICRON */ + {"\xA0", 0, 0x53}, /* GREEK CAPITAL LETTER PI */ + {"\xA1", 0, 0x55}, /* GREEK CAPITAL LETTER RHO */ + {"\xA3", 0, 0x56}, /* GREEK CAPITAL LETTER SIGMA */ + {"\xA4", 0, 0x58}, /* GREEK CAPITAL LETTER TAU */ + {"\xA5", 0, 0x59}, /* GREEK CAPITAL LETTER UPSILON */ + {"\xA6", 0, 0x5A}, /* GREEK CAPITAL LETTER PHI */ + {"\xA7", 0, 0x5B}, /* GREEK CAPITAL LETTER CHI */ + {"\xA8", 0, 0x5C}, /* GREEK CAPITAL LETTER PSI */ + {"\xA9", 0, 0x5D}, /* GREEK CAPITAL LETTER OMEGA */ + {"\xB1", 0, 0x61}, /* GREEK SMALL LETTER ALPHA */ + {"\xB2", 0, 0x62}, /* GREEK SMALL LETTER BETA / SMALL LETTER BETA BEGINNING OF WORD */ + {"\xB3", 0, 0x64}, /* GREEK SMALL LETTER GAMMA */ + {"\xB4", 0, 0x65}, /* GREEK SMALL LETTER DELTA */ + {"\xB5", 0, 0x66}, /* GREEK SMALL LETTER EPSILON */ + {"\xB6", 0, 0x69}, /* GREEK SMALL LETTER ZETA */ + {"\xB7", 0, 0x6A}, /* GREEK SMALL LETTER ETA */ + {"\xB8", 0, 0x6B}, /* GREEK SMALL LETTER THETA */ + {"\xB9", 0, 0x6C}, /* GREEK SMALL LETTER IOTA */ + {"\xBA", 0, 0x6D}, /* GREEK SMALL LETTER KAPPA */ + {"\xBB", 0, 0x6E}, /* GREEK SMALL LETTER LAMDA */ + {"\xBC", 0, 0x6F}, /* GREEK SMALL LETTER MU */ + {"\xBD", 0, 0x70}, /* GREEK SMALL LETTER NU */ + {"\xBE", 0, 0x71}, /* GREEK SMALL LETTER XI */ + {"\xBF", 0, 0x72}, /* GREEK SMALL LETTER OMICRON */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page5 = { + marc8r_8page5_flat, 0 +}; +/* PAGE 4 */ +struct yaz_iconv_trie_flat marc8r_8page4_flat[] = { + {"\x80\x9C", 0, 0x32}, /* LEFT DOUBLE QUOTATION MARK */ + {"\x80\x9D", 0, 0x33}, /* RIGHT DOUBLE QUOTATION MARK */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page4 = { + marc8r_8page4_flat, 0 +}; +/* PAGE 3 */ +struct yaz_iconv_trie_flat marc8r_8page3_flat[] = { + {"\xAB", 0, 0x30}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ + {"\xBB", 0, 0x31}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page3 = { + marc8r_8page3_flat, 0 +}; +/* PAGE 2 */ +struct yaz_iconv_trie_flat marc8r_8page2_flat[] = { + {"\x82", 1, 0x24}, /* COMBINING GREEK PERISPOMENI / CIRCUMFLEX */ + {"\x85", 1, 0x27}, /* COMBINING GREEK YPOGEGRAMMENI / IOTA SUBSCRIPT */ + {"\xB4", 0, 0x34}, /* GREEK NUMERAL SIGN / UPPER PRIME */ + {"\xB5", 0, 0x35}, /* GREEK LOWER NUMERAL SIGN / LOWER PRIME */ + {"\xBE", 0, 0x3F}, /* GREEK QUESTION MARK */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page2 = { + marc8r_8page2_flat, 0 +}; +/* PAGE 1 */ +struct yaz_iconv_trie_flat marc8r_8page1_flat[] = { + {"\x80", 1, 0x21}, /* COMBINING GRAVE ACCENT */ + {"\x81", 1, 0x22}, /* COMBINING ACUTE ACCENT */ + {"\x88", 1, 0x23}, /* COMBINING DIAERESIS */ + {"\x93", 1, 0x25}, /* COMBINING COMMA ABOVE / SMOOTH BREATHING */ + {"\x94", 1, 0x26}, /* COMBINING REVERSED COMMA ABOVE / ROUGH BREATHING */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_8page1 = { + marc8r_8page1_flat, 0 +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_8page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {4, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {2, 0, 0}, + {3, 0, 0}, + {6, 0, 0}, + {7, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {5, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_8page0 = { + 0, marc8r_8page0_dir +}; +struct yaz_iconv_trie *marc8r_8ptrs [] = { + &marc8r_8page0, + &marc8r_8page1, + &marc8r_8page2, + &marc8r_8page3, + &marc8r_8page4, + &marc8r_8page5, + &marc8r_8page6, +0, }; + +unsigned long yaz_marc8r_8_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_8ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + +/* TRIE: size 15739 */ +/* PAGE 526 */ +struct yaz_iconv_trie_flat marc8r_9page526_flat[] = { + {"\x80", 0, 0x6F764E}, /* Korean hangul (ancient) */ + {"\x81", 0, 0x6F764F}, /* Korean hangul (ancient) */ + {"\x82", 0, 0x6F7650}, /* Korean hangul (ancient) */ + {"\x83", 0, 0x6F7651}, /* Korean hangul (ancient) */ + {"\x84", 0, 0x6F7652}, /* Korean hangul (ancient) */ + {"\x85", 0, 0x6F7653}, /* Korean hangul (ancient) */ + {"\x86", 0, 0x6F7654}, /* Korean hangul (ancient) */ + {"\x87", 0, 0x6F7655}, /* Korean hangul (ancient) */ + {"\x88", 0, 0x6F7656}, /* Korean hangul (ancient) */ + {"\x89", 0, 0x6F7657}, /* Korean hangul (ancient) */ + {"\x8A", 0, 0x6F7723}, /* Korean hangul */ + {"\x90", 0, 0x212A21}, /* EACC component character */ + {"\x91", 0, 0x212A22}, /* EACC component character */ + {"\x92", 0, 0x212A23}, /* EACC component character */ + {"\x93", 0, 0x212A24}, /* EACC component character */ + {"\x94", 0, 0x212A25}, /* EACC component character */ + {"\x95", 0, 0x212A26}, /* EACC component character */ + {"\x96", 0, 0x212A28}, /* EACC component character */ + {"\x97", 0, 0x212A29}, /* EACC component character */ + {"\x98", 0, 0x212A2A}, /* EACC component character */ + {"\x99", 0, 0x212A2B}, /* EACC component character */ + {"\x9A", 0, 0x212A2C}, /* EACC component character */ + {"\x9B", 0, 0x212A2D}, /* EACC component character */ + {"\x9C", 0, 0x212A2E}, /* EACC component character */ + {"\x9D", 0, 0x212A2F}, /* EACC component character */ + {"\x9E", 0, 0x212A30}, /* EACC component character */ + {"\x9F", 0, 0x212A32}, /* EACC component character */ + {"\xA0", 0, 0x212A33}, /* EACC component character */ + {"\xA1", 0, 0x212A34}, /* EACC component character */ + {"\xA2", 0, 0x212A35}, /* EACC component character */ + {"\xA3", 0, 0x212A36}, /* EACC component character */ + {"\xA4", 0, 0x212A37}, /* EACC component character */ + {"\xA5", 0, 0x212A38}, /* EACC component character */ + {"\xA6", 0, 0x212A39}, /* EACC component character */ + {"\xA7", 0, 0x212A3A}, /* EACC component character */ + {"\xA8", 0, 0x212A3B}, /* EACC component character */ + {"\xA8", 0, 0x212A3B}, /* EACC component character */ + {"\xA9", 0, 0x212A3C}, /* EACC component character */ + {"\xAA", 0, 0x212A3D}, /* EACC component character */ + {"\xAB", 0, 0x212A3E}, /* EACC component character */ + {"\xAC", 0, 0x212A3F}, /* EACC component character */ + {"\xAD", 0, 0x212A40}, /* EACC component character */ + {"\xAE", 0, 0x212A41}, /* EACC component character */ + {"\xAF", 0, 0x212A42}, /* EACC component character */ + {"\xB0", 0, 0x212A43}, /* EACC component character */ + {"\xB1", 0, 0x212A44}, /* EACC component character */ + {"\xB2", 0, 0x212A45}, /* EACC component character */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page526 = { + marc8r_9page526_flat, 0 +}; +/* PAGE 525 */ +struct yaz_iconv_trie_flat marc8r_9page525_flat[] = { + {"\xB0", 0, 0x6F7624}, /* Korean hangul (ancient) */ + {"\xB2", 0, 0x6F7640}, /* Korean hangul (ancient) */ + {"\xB3", 0, 0x6F7641}, /* Korean hangul (ancient) */ + {"\xB4", 0, 0x6F7642}, /* Korean hangul (ancient) */ + {"\xB5", 0, 0x6F7643}, /* Korean hangul (ancient) */ + {"\xB6", 0, 0x6F7644}, /* Korean hangul (ancient) */ + {"\xB7", 0, 0x6F7645}, /* Korean hangul (ancient) */ + {"\xB8", 0, 0x6F7646}, /* Korean hangul (ancient) */ + {"\xB9", 0, 0x6F7647}, /* Korean hangul (ancient) */ + {"\xBA", 0, 0x6F7648}, /* Korean hangul (ancient) */ + {"\xBB", 0, 0x6F7649}, /* Korean hangul (ancient) */ + {"\xBC", 0, 0x6F764A}, /* Korean hangul (ancient) */ + {"\xBD", 0, 0x6F764B}, /* Korean hangul (ancient) */ + {"\xBE", 0, 0x6F764C}, /* Korean hangul (ancient) */ + {"\xBF", 0, 0x6F764D}, /* Korean hangul (ancient) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page525 = { + marc8r_9page525_flat, 0 +}; +/* PAGE 524 */ +struct yaz_iconv_trie_flat marc8r_9page524_flat[] = { + {"\xBC\x88", 0, 0x212328}, /* Ideographic left parenthesis */ + {"\xBC\x89", 0, 0x212329}, /* Ideographic right parenthesis */ + {"\xBC\x8D", 0, 0x21232D}, /* Ideographic hyphen minus */ + {"\xBC\xBB", 0, 0x212B31}, /* Ideographic left square bracket */ + {"\xBC\xBD", 0, 0x212B32}, /* Ideographic right square bracket */ + {"\xBC\x8E", 0, 0x212B34}, /* Ideographic variant full stop */ + {"\xBC\x8C", 0, 0x212B38}, /* Ideographic variant comma */ + {"\xBC\x9B", 0, 0x212B39}, /* Ideographic semicolon */ + {"\xBC\x9A", 0, 0x212B3A}, /* Ideographic colon */ + {"\xBC\x9F", 0, 0x212B3B}, /* Ideographic question mark */ + {"\xBC\x81", 0, 0x212B3D}, /* Ideographic exclamation point */ + {"\xBC\x8F", 0, 0x212B59}, /* Ideographic solidus */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page524 = { + marc8r_9page524_flat, 0 +}; +/* PAGE 523 */ +struct yaz_iconv_trie_dir marc8r_9page523_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {526, 0, 0}, + {527, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page523 = { + 0, marc8r_9page523_dir +}; +/* PAGE 522 */ +struct yaz_iconv_trie_flat marc8r_9page522_flat[] = { + {"\x81", 0, 0x6F7621}, /* Korean hangul */ + {"\x86", 0, 0x6F7622}, /* Korean hangul */ + {"\x8D", 0, 0x6F7625}, /* Korean hangul (ancient) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page522 = { + marc8r_9page522_flat, 0 +}; +/* PAGE 521 */ +struct yaz_iconv_trie_flat marc8r_9page521_flat[] = { + {"\x88", 0, 0x6F5D78}, /* Korean hangul */ + {"\x89", 0, 0x6F5D79}, /* Korean hangul */ + {"\x8C", 0, 0x6F5D7A}, /* Korean hangul */ + {"\x90", 0, 0x6F5D7B}, /* Korean hangul */ + {"\x98", 0, 0x6F5D7C}, /* Korean hangul */ + {"\x99", 0, 0x6F5D7D}, /* Korean hangul */ + {"\x9B", 0, 0x6F5D7E}, /* Korean hangul */ + {"\x9D", 0, 0x6F5E21}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page521 = { + marc8r_9page521_flat, 0 +}; +/* PAGE 520 */ +struct yaz_iconv_trie_flat marc8r_9page520_flat[] = { + {"\x84", 0, 0x6F5D68}, /* Korean hangul */ + {"\x89", 0, 0x6F5D69}, /* Korean hangul */ + {"\x90", 0, 0x6F5D6A}, /* Korean hangul */ + {"\x91", 0, 0x6F5D6B}, /* Korean hangul */ + {"\x94", 0, 0x6F5D6C}, /* Korean hangul */ + {"\x97", 0, 0x6F5D6D}, /* Korean hangul */ + {"\x98", 0, 0x6F5D6E}, /* Korean hangul */ + {"\x99", 0, 0x6F5D6F}, /* Korean hangul */ + {"\xA0", 0, 0x6F5D70}, /* Korean hangul */ + {"\xA1", 0, 0x6F5D71}, /* Korean hangul */ + {"\xA3", 0, 0x6F5D72}, /* Korean hangul */ + {"\xA5", 0, 0x6F5D73}, /* Korean hangul */ + {"\xA9", 0, 0x6F5D74}, /* Korean hangul */ + {"\xAC", 0, 0x6F5D75}, /* Korean hangul */ + {"\xB0", 0, 0x6F5D76}, /* Korean hangul */ + {"\xB4", 0, 0x6F5D77}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page520 = { + marc8r_9page520_flat, 0 +}; +/* PAGE 519 */ +struct yaz_iconv_trie_flat marc8r_9page519_flat[] = { + {"\x80", 0, 0x6F5D5C}, /* Korean hangul */ + {"\x91", 0, 0x6F5D5D}, /* Korean hangul */ + {"\x98", 0, 0x6F5D5E}, /* Korean hangul */ + {"\x99", 0, 0x6F5D5F}, /* Korean hangul */ + {"\x9C", 0, 0x6F5D60}, /* Korean hangul */ + {"\xA0", 0, 0x6F5D61}, /* Korean hangul */ + {"\xA8", 0, 0x6F5D62}, /* Korean hangul */ + {"\xA9", 0, 0x6F5D63}, /* Korean hangul */ + {"\xAD", 0, 0x6F5D65}, /* Korean hangul */ + {"\xB4", 0, 0x6F5D66}, /* Korean hangul */ + {"\xBC", 0, 0x6F5D67}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page519 = { + marc8r_9page519_flat, 0 +}; +/* PAGE 518 */ +struct yaz_iconv_trie_flat marc8r_9page518_flat[] = { + {"\x84", 0, 0x6F5D4F}, /* Korean hangul */ + {"\x85", 0, 0x6F5D50}, /* Korean hangul */ + {"\x88", 0, 0x6F5D51}, /* Korean hangul */ + {"\x8C", 0, 0x6F5D52}, /* Korean hangul */ + {"\x91", 0, 0x6F5D53}, /* Korean hangul */ + {"\x94", 0, 0x6F5D54}, /* Korean hangul */ + {"\x97", 0, 0x6F5D55}, /* Korean hangul */ + {"\xA0", 0, 0x6F5D56}, /* Korean hangul */ + {"\xA4", 0, 0x6F5D57}, /* Korean hangul */ + {"\xA8", 0, 0x6F5D58}, /* Korean hangul */ + {"\xB0", 0, 0x6F5D59}, /* Korean hangul */ + {"\xBC", 0, 0x6F5D5A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page518 = { + marc8r_9page518_flat, 0 +}; +/* PAGE 517 */ +struct yaz_iconv_trie_flat marc8r_9page517_flat[] = { + {"\x83", 0, 0x6F5D48}, /* Korean hangul */ + {"\x8C", 0, 0x6F5D4A}, /* Korean hangul */ + {"\x8D", 0, 0x6F5D4B}, /* Korean hangul */ + {"\x9F", 0, 0x6F5D4C}, /* Korean hangul */ + {"\xA1", 0, 0x6F5D4D}, /* Korean hangul */ + {"\xA8", 0, 0x6F5D4E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page517 = { + marc8r_9page517_flat, 0 +}; +/* PAGE 516 */ +struct yaz_iconv_trie_flat marc8r_9page516_flat[] = { + {"\x80", 0, 0x6F5D39}, /* Korean hangul */ + {"\x88", 0, 0x6F5D3A}, /* Korean hangul */ + {"\x89", 0, 0x6F5D3B}, /* Korean hangul */ + {"\x8B", 0, 0x6F5D3C}, /* Korean hangul */ + {"\x8D", 0, 0x6F5D3D}, /* Korean hangul */ + {"\x94", 0, 0x6F5D3F}, /* Korean hangul */ + {"\x95", 0, 0x6F5D40}, /* Korean hangul */ + {"\x98", 0, 0x6F5D41}, /* Korean hangul */ + {"\x9C", 0, 0x6F5D42}, /* Korean hangul */ + {"\xA7", 0, 0x6F5D44}, /* Korean hangul */ + {"\xA9", 0, 0x6F5D45}, /* Korean hangul */ + {"\xB0", 0, 0x6F5D46}, /* Korean hangul */ + {"\xB1", 0, 0x6F5D47}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page516 = { + marc8r_9page516_flat, 0 +}; +/* PAGE 515 */ +struct yaz_iconv_trie_flat marc8r_9page515_flat[] = { + {"\x80", 0, 0x6F5D2C}, /* Korean hangul */ + {"\x81", 0, 0x6F5D2D}, /* Korean hangul */ + {"\x84", 0, 0x6F5D2E}, /* Korean hangul */ + {"\x88", 0, 0x6F5D2F}, /* Korean hangul */ + {"\x90", 0, 0x6F5D30}, /* Korean hangul */ + {"\x91", 0, 0x6F5D31}, /* Korean hangul */ + {"\x93", 0, 0x6F5D32}, /* Korean hangul */ + {"\x94", 0, 0x6F5D33}, /* Korean hangul */ + {"\x95", 0, 0x6F5D34}, /* Korean hangul */ + {"\x9C", 0, 0x6F5D35}, /* Korean hangul */ + {"\xB8", 0, 0x6F5D36}, /* Korean hangul */ + {"\xB9", 0, 0x6F5D37}, /* Korean hangul */ + {"\xBC", 0, 0x6F5D38}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page515 = { + marc8r_9page515_flat, 0 +}; +/* PAGE 514 */ +struct yaz_iconv_trie_flat marc8r_9page514_flat[] = { + {"\x88", 0, 0x6F5C79}, /* Korean hangul */ + {"\x89", 0, 0x6F5C7A}, /* Korean hangul */ + {"\x8C", 0, 0x6F5C7B}, /* Korean hangul */ + {"\x90", 0, 0x6F5C7C}, /* Korean hangul */ + {"\x92", 0, 0x6F5C7D}, /* Korean hangul */ + {"\x98", 0, 0x6F5C7E}, /* Korean hangul */ + {"\x99", 0, 0x6F5D21}, /* Korean hangul */ + {"\x9B", 0, 0x6F5D22}, /* Korean hangul */ + {"\x9D", 0, 0x6F5D23}, /* Korean hangul */ + {"\xA4", 0, 0x6F5D24}, /* Korean hangul */ + {"\xA5", 0, 0x6F5D25}, /* Korean hangul */ + {"\xA8", 0, 0x6F5D26}, /* Korean hangul */ + {"\xAC", 0, 0x6F5D27}, /* Korean hangul */ + {"\xB4", 0, 0x6F5D28}, /* Korean hangul */ + {"\xB5", 0, 0x6F5D29}, /* Korean hangul */ + {"\xB7", 0, 0x6F5D2A}, /* Korean hangul */ + {"\xB9", 0, 0x6F5D2B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page514 = { + marc8r_9page514_flat, 0 +}; +/* PAGE 513 */ +struct yaz_iconv_trie_flat marc8r_9page513_flat[] = { + {"\x84", 0, 0x6F5C72}, /* Korean hangul */ + {"\x85", 0, 0x6F5C73}, /* Korean hangul */ + {"\x87", 0, 0x6F5C74}, /* Korean hangul */ + {"\x88", 0, 0x6F5C75}, /* Korean hangul */ + {"\x89", 0, 0x6F5C76}, /* Korean hangul */ + {"\x90", 0, 0x6F5C77}, /* Korean hangul */ + {"\xA5", 0, 0x6F5C78}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page513 = { + marc8r_9page513_flat, 0 +}; +/* PAGE 512 */ +struct yaz_iconv_trie_flat marc8r_9page512_flat[] = { + {"\x80", 0, 0x6F5C5B}, /* Korean hangul */ + {"\x84", 0, 0x6F5C5C}, /* Korean hangul */ + {"\x8C", 0, 0x6F5C5D}, /* Korean hangul */ + {"\x8D", 0, 0x6F5C5E}, /* Korean hangul */ + {"\x8F", 0, 0x6F5C5F}, /* Korean hangul */ + {"\x91", 0, 0x6F5C60}, /* Korean hangul */ + {"\x98", 0, 0x6F5C63}, /* Korean hangul */ + {"\x99", 0, 0x6F5C64}, /* Korean hangul */ + {"\x9C", 0, 0x6F5C65}, /* Korean hangul */ + {"\xA0", 0, 0x6F5C66}, /* Korean hangul */ + {"\xA5", 0, 0x6F5C67}, /* Korean hangul */ + {"\xA8", 0, 0x6F5C68}, /* Korean hangul */ + {"\xA9", 0, 0x6F5C69}, /* Korean hangul */ + {"\xAB", 0, 0x6F5C6A}, /* Korean hangul */ + {"\xAC", 0, 0x6F5C6B}, /* Korean hangul */ + {"\xAD", 0, 0x6F5C6C}, /* Korean hangul */ + {"\xB1", 0, 0x6F5C6D}, /* Korean hangul */ + {"\xB4", 0, 0x6F5C6E}, /* Korean hangul */ + {"\xB5", 0, 0x6F5C6F}, /* Korean hangul */ + {"\xB8", 0, 0x6F5C70}, /* Korean hangul */ + {"\xBC", 0, 0x6F5C71}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page512 = { + marc8r_9page512_flat, 0 +}; +/* PAGE 511 */ +struct yaz_iconv_trie_flat marc8r_9page511_flat[] = { + {"\x84", 0, 0x6F5C53}, /* Korean hangul */ + {"\x88", 0, 0x6F5C55}, /* Korean hangul */ + {"\x8C", 0, 0x6F5C56}, /* Korean hangul */ + {"\x94", 0, 0x6F5C57}, /* Korean hangul */ + {"\x95", 0, 0x6F5C58}, /* Korean hangul */ + {"\xBC", 0, 0x6F5C59}, /* Korean hangul */ + {"\xBD", 0, 0x6F5C5A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page511 = { + marc8r_9page511_flat, 0 +}; +/* PAGE 510 */ +struct yaz_iconv_trie_flat marc8r_9page510_flat[] = { + {"\x8C", 0, 0x6F5C51}, /* Korean hangul */ + {"\xA8", 0, 0x6F5C52}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page510 = { + marc8r_9page510_flat, 0 +}; +/* PAGE 509 */ +struct yaz_iconv_trie_flat marc8r_9page509_flat[] = { + {"\x80", 0, 0x6F5C4C}, /* Korean hangul */ + {"\x88", 0, 0x6F5C4D}, /* Korean hangul */ + {"\x89", 0, 0x6F5C4E}, /* Korean hangul */ + {"\x8B", 0, 0x6F5C4F}, /* Korean hangul */ + {"\x8D", 0, 0x6F5C50}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page509 = { + marc8r_9page509_flat, 0 +}; +/* PAGE 508 */ +struct yaz_iconv_trie_flat marc8r_9page508_flat[] = { + {"\x80", 0, 0x6F5C45}, /* Korean hangul */ + {"\x84", 0, 0x6F5C46}, /* Korean hangul */ + {"\x9C", 0, 0x6F5C47}, /* Korean hangul */ + {"\xAF", 0, 0x6F5C48}, /* Korean hangul */ + {"\xB8", 0, 0x6F5C49}, /* Korean hangul */ + {"\xB9", 0, 0x6F5C4A}, /* Korean hangul */ + {"\xBC", 0, 0x6F5C4B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page508 = { + marc8r_9page508_flat, 0 +}; +/* PAGE 507 */ +struct yaz_iconv_trie_flat marc8r_9page507_flat[] = { + {"\x81", 0, 0x6F5C44}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page507 = { + marc8r_9page507_flat, 0 +}; +/* PAGE 506 */ +struct yaz_iconv_trie_flat marc8r_9page506_flat[] = { + {"\x84", 0, 0x6F5C38}, /* Korean hangul */ + {"\x85", 0, 0x6F5C39}, /* Korean hangul */ + {"\x88", 0, 0x6F5C3A}, /* Korean hangul */ + {"\x89", 0, 0x6F5C3B}, /* Korean hangul */ + {"\x90", 0, 0x6F5C3C}, /* Korean hangul */ + {"\xAC", 0, 0x6F5C3D}, /* Korean hangul */ + {"\xAD", 0, 0x6F5C3E}, /* Korean hangul */ + {"\xB0", 0, 0x6F5C3F}, /* Korean hangul */ + {"\xB4", 0, 0x6F5C40}, /* Korean hangul */ + {"\xBC", 0, 0x6F5C41}, /* Korean hangul */ + {"\xBD", 0, 0x6F5C42}, /* Korean hangul */ + {"\xBF", 0, 0x6F5C43}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page506 = { + marc8r_9page506_flat, 0 +}; +/* PAGE 505 */ +struct yaz_iconv_trie_flat marc8r_9page505_flat[] = { + {"\x80", 0, 0x6F5C25}, /* Korean hangul */ + {"\x84", 0, 0x6F5C26}, /* Korean hangul */ + {"\x8C", 0, 0x6F5C27}, /* Korean hangul */ + {"\x8D", 0, 0x6F5C28}, /* Korean hangul */ + {"\x8F", 0, 0x6F5C29}, /* Korean hangul */ + {"\x90", 0, 0x6F5C2A}, /* Korean hangul */ + {"\x91", 0, 0x6F5C2B}, /* Korean hangul */ + {"\x98", 0, 0x6F5C2C}, /* Korean hangul */ + {"\x99", 0, 0x6F5C2D}, /* Korean hangul */ + {"\x9C", 0, 0x6F5C2E}, /* Korean hangul */ + {"\xA0", 0, 0x6F5C2F}, /* Korean hangul */ + {"\xA8", 0, 0x6F5C30}, /* Korean hangul */ + {"\xA9", 0, 0x6F5C31}, /* Korean hangul */ + {"\xAB", 0, 0x6F5C32}, /* Korean hangul */ + {"\xAD", 0, 0x6F5C33}, /* Korean hangul */ + {"\xB4", 0, 0x6F5C34}, /* Korean hangul */ + {"\xB5", 0, 0x6F5C35}, /* Korean hangul */ + {"\xB8", 0, 0x6F5C36}, /* Korean hangul */ + {"\xBC", 0, 0x6F5C37}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page505 = { + marc8r_9page505_flat, 0 +}; +/* PAGE 504 */ +struct yaz_iconv_trie_flat marc8r_9page504_flat[] = { + {"\xBC", 0, 0x6F5C23}, /* Korean hangul */ + {"\xBD", 0, 0x6F5C24}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page504 = { + marc8r_9page504_flat, 0 +}; +/* PAGE 503 */ +struct yaz_iconv_trie_flat marc8r_9page503_flat[] = { + {"\x80", 0, 0x6F5B67}, /* Korean hangul */ + {"\x81", 0, 0x6F5B68}, /* Korean hangul */ + {"\x85", 0, 0x6F5B69}, /* Korean hangul */ + {"\x8C", 0, 0x6F5B6C}, /* Korean hangul */ + {"\x8D", 0, 0x6F5B6D}, /* Korean hangul */ + {"\x8E", 0, 0x6F5B6E}, /* Korean hangul */ + {"\x90", 0, 0x6F5B6F}, /* Korean hangul */ + {"\x94", 0, 0x6F5B70}, /* Korean hangul */ + {"\x9C", 0, 0x6F5B71}, /* Korean hangul */ + {"\x9D", 0, 0x6F5B72}, /* Korean hangul */ + {"\x9F", 0, 0x6F5B73}, /* Korean hangul */ + {"\xA0", 0, 0x6F5B74}, /* Korean hangul */ + {"\xA1", 0, 0x6F5B75}, /* Korean hangul */ + {"\xA5", 0, 0x6F5B76}, /* Korean hangul */ + {"\xA8", 0, 0x6F5B77}, /* Korean hangul */ + {"\xA9", 0, 0x6F5B78}, /* Korean hangul */ + {"\xAC", 0, 0x6F5B79}, /* Korean hangul */ + {"\xB0", 0, 0x6F5B7A}, /* Korean hangul */ + {"\xB8", 0, 0x6F5B7B}, /* Korean hangul */ + {"\xB9", 0, 0x6F5B7C}, /* Korean hangul */ + {"\xBB", 0, 0x6F5B7D}, /* Korean hangul */ + {"\xBC", 0, 0x6F5B7E}, /* Korean hangul */ + {"\xBD", 0, 0x6F5C21}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page503 = { + marc8r_9page503_flat, 0 +}; +/* PAGE 502 */ +struct yaz_iconv_trie_flat marc8r_9page502_flat[] = { + {"\x80", 0, 0x6F5B5D}, /* Korean hangul */ + {"\x88", 0, 0x6F5B5E}, /* Korean hangul */ + {"\x89", 0, 0x6F5B5F}, /* Korean hangul */ + {"\x8B", 0, 0x6F5B60}, /* Korean hangul */ + {"\x94", 0, 0x6F5B61}, /* Korean hangul */ + {"\xB0", 0, 0x6F5B63}, /* Korean hangul */ + {"\xB1", 0, 0x6F5B64}, /* Korean hangul */ + {"\xB4", 0, 0x6F5B65}, /* Korean hangul */ + {"\xB8", 0, 0x6F5B66}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page502 = { + marc8r_9page502_flat, 0 +}; +/* PAGE 501 */ +struct yaz_iconv_trie_flat marc8r_9page501_flat[] = { + {"\x80", 0, 0x6F5B4D}, /* Korean hangul */ + {"\x84", 0, 0x6F5B4E}, /* Korean hangul */ + {"\x88", 0, 0x6F5B4F}, /* Korean hangul */ + {"\x90", 0, 0x6F5B50}, /* Korean hangul */ + {"\x91", 0, 0x6F5B51}, /* Korean hangul */ + {"\x93", 0, 0x6F5B52}, /* Korean hangul */ + {"\x95", 0, 0x6F5B53}, /* Korean hangul */ + {"\x9C", 0, 0x6F5B54}, /* Korean hangul */ + {"\xAC", 0, 0x6F5B57}, /* Korean hangul */ + {"\xB8", 0, 0x6F5B59}, /* Korean hangul */ + {"\xB9", 0, 0x6F5B5A}, /* Korean hangul */ + {"\xBC", 0, 0x6F5B5B}, /* Korean hangul */ + {"\xBF", 0, 0x6F5B5C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page501 = { + marc8r_9page501_flat, 0 +}; +/* PAGE 500 */ +struct yaz_iconv_trie_flat marc8r_9page500_flat[] = { + {"\x81", 0, 0x6F5B4A}, /* Korean hangul */ + {"\xA4", 0, 0x6F5B4B}, /* Korean hangul */ + {"\xB7", 0, 0x6F5B4C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page500 = { + marc8r_9page500_flat, 0 +}; +/* PAGE 499 */ +struct yaz_iconv_trie_flat marc8r_9page499_flat[] = { + {"\xAC", 0, 0x6F5B43}, /* Korean hangul */ + {"\xAD", 0, 0x6F5B44}, /* Korean hangul */ + {"\xB0", 0, 0x6F5B45}, /* Korean hangul */ + {"\xB4", 0, 0x6F5B46}, /* Korean hangul */ + {"\xBC", 0, 0x6F5B47}, /* Korean hangul */ + {"\xBD", 0, 0x6F5B48}, /* Korean hangul */ + {"\xBF", 0, 0x6F5B49}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page499 = { + marc8r_9page499_flat, 0 +}; +/* PAGE 498 */ +struct yaz_iconv_trie_flat marc8r_9page498_flat[] = { + {"\x98", 0, 0x6F5B40}, /* Korean hangul */ + {"\xB4", 0, 0x6F5B41}, /* Korean hangul */ + {"\xB8", 0, 0x6F5B62}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page498 = { + marc8r_9page498_flat, 0 +}; +/* PAGE 497 */ +struct yaz_iconv_trie_flat marc8r_9page497_flat[] = { + {"\xA0", 0, 0x6F5B38}, /* Korean hangul */ + {"\xA1", 0, 0x6F5B39}, /* Korean hangul */ + {"\xA4", 0, 0x6F5B3A}, /* Korean hangul */ + {"\xA8", 0, 0x6F5B3B}, /* Korean hangul */ + {"\xB0", 0, 0x6F5B3C}, /* Korean hangul */ + {"\xB1", 0, 0x6F5B3D}, /* Korean hangul */ + {"\xB3", 0, 0x6F5B3E}, /* Korean hangul */ + {"\xB5", 0, 0x6F5B3F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page497 = { + marc8r_9page497_flat, 0 +}; +/* PAGE 496 */ +struct yaz_iconv_trie_flat marc8r_9page496_flat[] = { + {"\x80", 0, 0x6F5B29}, /* Korean hangul */ + {"\x81", 0, 0x6F5B2A}, /* Korean hangul */ + {"\x83", 0, 0x6F5B2B}, /* Korean hangul */ + {"\x84", 0, 0x6F5B2C}, /* Korean hangul */ + {"\x85", 0, 0x6F5B2D}, /* Korean hangul */ + {"\x8C", 0, 0x6F5B2E}, /* Korean hangul */ + {"\x8D", 0, 0x6F5B2F}, /* Korean hangul */ + {"\x90", 0, 0x6F5B30}, /* Korean hangul */ + {"\x90", 0, 0x6F5B30}, /* Korean hangul */ + {"\x94", 0, 0x6F5B31}, /* Korean hangul */ + {"\x9C", 0, 0x6F5B32}, /* Korean hangul */ + {"\x9D", 0, 0x6F5B33}, /* Korean hangul */ + {"\x9F", 0, 0x6F5B34}, /* Korean hangul */ + {"\xA0", 0, 0x6F5B35}, /* Korean hangul */ + {"\xA1", 0, 0x6F5B36}, /* Korean hangul */ + {"\xA8", 0, 0x6F5B37}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page496 = { + marc8r_9page496_flat, 0 +}; +/* PAGE 495 */ +struct yaz_iconv_trie_flat marc8r_9page495_flat[] = { + {"\xB0", 0, 0x6F5B25}, /* Korean hangul */ + {"\xB1", 0, 0x6F5B26}, /* Korean hangul */ + {"\xB4", 0, 0x6F5B27}, /* Korean hangul */ + {"\xB8", 0, 0x6F5B28}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page495 = { + marc8r_9page495_flat, 0 +}; +/* PAGE 494 */ +struct yaz_iconv_trie_flat marc8r_9page494_flat[] = { + {"\x80", 0, 0x6F5A70}, /* Korean hangul */ + {"\x81", 0, 0x6F5A71}, /* Korean hangul */ + {"\x84", 0, 0x6F5A72}, /* Korean hangul */ + {"\x88", 0, 0x6F5A73}, /* Korean hangul */ + {"\x89", 0, 0x6F5A74}, /* Korean hangul */ + {"\x90", 0, 0x6F5A75}, /* Korean hangul */ + {"\x91", 0, 0x6F5A76}, /* Korean hangul */ + {"\x93", 0, 0x6F5A77}, /* Korean hangul */ + {"\x94", 0, 0x6F5A78}, /* Korean hangul */ + {"\x95", 0, 0x6F5A79}, /* Korean hangul */ + {"\x9C", 0, 0x6F5A7A}, /* Korean hangul */ + {"\x9D", 0, 0x6F5A7B}, /* Korean hangul */ + {"\xA0", 0, 0x6F5A7C}, /* Korean hangul */ + {"\xA4", 0, 0x6F5A7D}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A7E}, /* Korean hangul */ + {"\xAD", 0, 0x6F5B21}, /* Korean hangul */ + {"\xAF", 0, 0x6F5B22}, /* Korean hangul */ + {"\xB0", 0, 0x6F5B23}, /* Korean hangul */ + {"\xB1", 0, 0x6F5B24}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page494 = { + marc8r_9page494_flat, 0 +}; +/* PAGE 493 */ +struct yaz_iconv_trie_flat marc8r_9page493_flat[] = { + {"\x81", 0, 0x6F5A65}, /* Korean hangul */ + {"\xA4", 0, 0x6F5A66}, /* Korean hangul */ + {"\xA5", 0, 0x6F5A67}, /* Korean hangul */ + {"\xA8", 0, 0x6F5A68}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A69}, /* Korean hangul */ + {"\xB4", 0, 0x6F5A6A}, /* Korean hangul */ + {"\xB5", 0, 0x6F5A6B}, /* Korean hangul */ + {"\xB7", 0, 0x6F5A6C}, /* Korean hangul */ + {"\xB9", 0, 0x6F5A6D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page493 = { + marc8r_9page493_flat, 0 +}; +/* PAGE 492 */ +struct yaz_iconv_trie_flat marc8r_9page492_flat[] = { + {"\x90", 0, 0x6F5A5F}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A60}, /* Korean hangul */ + {"\xB0", 0, 0x6F5A61}, /* Korean hangul */ + {"\xB4", 0, 0x6F5A62}, /* Korean hangul */ + {"\xBC", 0, 0x6F5A63}, /* Korean hangul */ + {"\xBD", 0, 0x6F5A64}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page492 = { + marc8r_9page492_flat, 0 +}; +/* PAGE 491 */ +struct yaz_iconv_trie_flat marc8r_9page491_flat[] = { + {"\x98", 0, 0x6F5A5A}, /* Korean hangul */ + {"\xAD", 0, 0x6F5A5B}, /* Korean hangul */ + {"\xB4", 0, 0x6F5A5C}, /* Korean hangul */ + {"\xB5", 0, 0x6F5A5D}, /* Korean hangul */ + {"\xB8", 0, 0x6F5A5E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page491 = { + marc8r_9page491_flat, 0 +}; +/* PAGE 490 */ +struct yaz_iconv_trie_dir marc8r_9page490_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {492, 0, 0}, + {493, 0, 0}, + {494, 0, 0}, + {495, 0, 0}, + {496, 0, 0}, + {497, 0, 0}, + {498, 0, 0}, + {499, 0, 0}, + {500, 0, 0}, + {501, 0, 0}, + {502, 0, 0}, + {503, 0, 0}, + {504, 0, 0}, + {505, 0, 0}, + {506, 0, 0}, + {507, 0, 0}, + {508, 0, 0}, + {509, 0, 0}, + {510, 0, 0}, + {511, 0, 0}, + {512, 0, 0}, + {513, 0, 0}, + {514, 0, 0}, + {515, 0, 0}, + {516, 0, 0}, + {517, 0, 0}, + {518, 0, 0}, + {519, 0, 0}, + {520, 0, 0}, + {521, 0, 0}, + {522, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page490 = { + 0, marc8r_9page490_dir +}; +/* PAGE 489 */ +struct yaz_iconv_trie_flat marc8r_9page489_flat[] = { + {"\x84", 0, 0x6F5A50}, /* Korean hangul */ + {"\xA0", 0, 0x6F5A51}, /* Korean hangul */ + {"\xA1", 0, 0x6F5A52}, /* Korean hangul */ + {"\xA4", 0, 0x6F5A53}, /* Korean hangul */ + {"\xA8", 0, 0x6F5A54}, /* Korean hangul */ + {"\xB0", 0, 0x6F5A55}, /* Korean hangul */ + {"\xB3", 0, 0x6F5A56}, /* Korean hangul */ + {"\xB5", 0, 0x6F5A57}, /* Korean hangul */ + {"\xBC", 0, 0x6F5A58}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page489 = { + marc8r_9page489_flat, 0 +}; +/* PAGE 488 */ +struct yaz_iconv_trie_flat marc8r_9page488_flat[] = { + {"\x80", 0, 0x6F5A49}, /* Korean hangul */ + {"\x85", 0, 0x6F5A4A}, /* Korean hangul */ + {"\x8C", 0, 0x6F5A4B}, /* Korean hangul */ + {"\x8D", 0, 0x6F5A4C}, /* Korean hangul */ + {"\xA1", 0, 0x6F5A4D}, /* Korean hangul */ + {"\xB0", 0, 0x6F5A4F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page488 = { + marc8r_9page488_flat, 0 +}; +/* PAGE 487 */ +struct yaz_iconv_trie_flat marc8r_9page487_flat[] = { + {"\x94", 0, 0x6F5A3D}, /* Korean hangul */ + {"\x95", 0, 0x6F5A3E}, /* Korean hangul */ + {"\x98", 0, 0x6F5A3F}, /* Korean hangul */ + {"\x9C", 0, 0x6F5A40}, /* Korean hangul */ + {"\xA4", 0, 0x6F5A41}, /* Korean hangul */ + {"\xA5", 0, 0x6F5A42}, /* Korean hangul */ + {"\xA7", 0, 0x6F5A43}, /* Korean hangul */ + {"\xA9", 0, 0x6F5A44}, /* Korean hangul */ + {"\xB0", 0, 0x6F5A45}, /* Korean hangul */ + {"\xB1", 0, 0x6F5A46}, /* Korean hangul */ + {"\xB4", 0, 0x6F5A47}, /* Korean hangul */ + {"\xB8", 0, 0x6F5A48}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page487 = { + marc8r_9page487_flat, 0 +}; +/* PAGE 486 */ +struct yaz_iconv_trie_flat marc8r_9page486_flat[] = { + {"\x80", 0, 0x6F5A2E}, /* Korean hangul */ + {"\x81", 0, 0x6F5A2F}, /* Korean hangul */ + {"\x84", 0, 0x6F5A30}, /* Korean hangul */ + {"\x88", 0, 0x6F5A31}, /* Korean hangul */ + {"\x90", 0, 0x6F5A32}, /* Korean hangul */ + {"\x91", 0, 0x6F5A33}, /* Korean hangul */ + {"\x93", 0, 0x6F5A34}, /* Korean hangul */ + {"\x95", 0, 0x6F5A35}, /* Korean hangul */ + {"\x9C", 0, 0x6F5A36}, /* Korean hangul */ + {"\xA0", 0, 0x6F5A37}, /* Korean hangul */ + {"\xA4", 0, 0x6F5A38}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A39}, /* Korean hangul */ + {"\xAD", 0, 0x6F5A3A}, /* Korean hangul */ + {"\xAF", 0, 0x6F5A3B}, /* Korean hangul */ + {"\xB0", 0, 0x6F5A3C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page486 = { + marc8r_9page486_flat, 0 +}; +/* PAGE 485 */ +struct yaz_iconv_trie_flat marc8r_9page485_flat[] = { + {"\xA4", 0, 0x6F5A24}, /* Korean hangul */ + {"\xA8", 0, 0x6F5A26}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A27}, /* Korean hangul */ + {"\xB4", 0, 0x6F5A28}, /* Korean hangul */ + {"\xB5", 0, 0x6F5A29}, /* Korean hangul */ + {"\xB7", 0, 0x6F5A2A}, /* Korean hangul */ + {"\xB9", 0, 0x6F5A2C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page485 = { + marc8r_9page485_flat, 0 +}; +/* PAGE 484 */ +struct yaz_iconv_trie_flat marc8r_9page484_flat[] = { + {"\x84", 0, 0x6F5973}, /* Korean hangul */ + {"\x85", 0, 0x6F5974}, /* Korean hangul */ + {"\x87", 0, 0x6F5975}, /* Korean hangul */ + {"\x89", 0, 0x6F5976}, /* Korean hangul */ + {"\x90", 0, 0x6F5977}, /* Korean hangul */ + {"\x91", 0, 0x6F5978}, /* Korean hangul */ + {"\x94", 0, 0x6F5979}, /* Korean hangul */ + {"\x98", 0, 0x6F597A}, /* Korean hangul */ + {"\xA0", 0, 0x6F597B}, /* Korean hangul */ + {"\xA1", 0, 0x6F597C}, /* Korean hangul */ + {"\xA3", 0, 0x6F597D}, /* Korean hangul */ + {"\xA5", 0, 0x6F5A21}, /* Korean hangul */ + {"\xAC", 0, 0x6F5A22}, /* Korean hangul */ + {"\xAD", 0, 0x6F5A23}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page484 = { + marc8r_9page484_flat, 0 +}; +/* PAGE 483 */ +struct yaz_iconv_trie_flat marc8r_9page483_flat[] = { + {"\x98", 0, 0x6F5964}, /* Korean hangul */ + {"\x99", 0, 0x6F5965}, /* Korean hangul */ + {"\x9C", 0, 0x6F5966}, /* Korean hangul */ + {"\xA0", 0, 0x6F5967}, /* Korean hangul */ + {"\xA1", 0, 0x6F5968}, /* Korean hangul */ + {"\xA8", 0, 0x6F5969}, /* Korean hangul */ + {"\xA9", 0, 0x6F596A}, /* Korean hangul */ + {"\xAB", 0, 0x6F596B}, /* Korean hangul */ + {"\xAD", 0, 0x6F596C}, /* Korean hangul */ + {"\xB4", 0, 0x6F596F}, /* Korean hangul */ + {"\xB5", 0, 0x6F5970}, /* Korean hangul */ + {"\xB8", 0, 0x6F5971}, /* Korean hangul */ + {"\xBC", 0, 0x6F5972}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page483 = { + marc8r_9page483_flat, 0 +}; +/* PAGE 482 */ +struct yaz_iconv_trie_flat marc8r_9page482_flat[] = { + {"\x84", 0, 0x6F595F}, /* Korean hangul */ + {"\xA0", 0, 0x6F5960}, /* Korean hangul */ + {"\xA1", 0, 0x6F5961}, /* Korean hangul */ + {"\xB0", 0, 0x6F5962}, /* Korean hangul */ + {"\xB5", 0, 0x6F5963}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page482 = { + marc8r_9page482_flat, 0 +}; +/* PAGE 481 */ +struct yaz_iconv_trie_flat marc8r_9page481_flat[] = { + {"\x84", 0, 0x6F595C}, /* Korean hangul */ + {"\x8C", 0, 0x6F595D}, /* Korean hangul */ + {"\xA8", 0, 0x6F595E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page481 = { + marc8r_9page481_flat, 0 +}; +/* PAGE 480 */ +struct yaz_iconv_trie_flat marc8r_9page480_flat[] = { + {"\x94", 0, 0x6F5953}, /* Korean hangul */ + {"\x95", 0, 0x6F5954}, /* Korean hangul */ + {"\x98", 0, 0x6F5955}, /* Korean hangul */ + {"\x9C", 0, 0x6F5956}, /* Korean hangul */ + {"\xA4", 0, 0x6F5957}, /* Korean hangul */ + {"\xA5", 0, 0x6F5958}, /* Korean hangul */ + {"\xA7", 0, 0x6F5959}, /* Korean hangul */ + {"\xA9", 0, 0x6F595A}, /* Korean hangul */ + {"\xB0", 0, 0x6F595B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page480 = { + marc8r_9page480_flat, 0 +}; +/* PAGE 479 */ +struct yaz_iconv_trie_flat marc8r_9page479_flat[] = { + {"\x9C", 0, 0x6F5951}, /* Korean hangul */ + {"\xB8", 0, 0x6F5952}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page479 = { + marc8r_9page479_flat, 0 +}; +/* PAGE 478 */ +struct yaz_iconv_trie_flat marc8r_9page478_flat[] = { + {"\x88", 0, 0x6F5948}, /* Korean hangul */ + {"\x89", 0, 0x6F5949}, /* Korean hangul */ + {"\x8C", 0, 0x6F594A}, /* Korean hangul */ + {"\x90", 0, 0x6F594B}, /* Korean hangul */ + {"\x98", 0, 0x6F594C}, /* Korean hangul */ + {"\x99", 0, 0x6F594D}, /* Korean hangul */ + {"\x9B", 0, 0x6F594E}, /* Korean hangul */ + {"\x9D", 0, 0x6F594F}, /* Korean hangul */ + {"\xAC", 0, 0x6F5950}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page478 = { + marc8r_9page478_flat, 0 +}; +/* PAGE 477 */ +struct yaz_iconv_trie_flat marc8r_9page477_flat[] = { + {"\x87", 0, 0x6F5945}, /* Korean hangul */ + {"\x90", 0, 0x6F5946}, /* Korean hangul */ + {"\xA4", 0, 0x6F5947}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page477 = { + marc8r_9page477_flat, 0 +}; +/* PAGE 476 */ +struct yaz_iconv_trie_flat marc8r_9page476_flat[] = { + {"\x98", 0, 0x6F5939}, /* Korean hangul */ + {"\x99", 0, 0x6F593A}, /* Korean hangul */ + {"\x9C", 0, 0x6F593B}, /* Korean hangul */ + {"\xA0", 0, 0x6F593C}, /* Korean hangul */ + {"\xA8", 0, 0x6F593D}, /* Korean hangul */ + {"\xA9", 0, 0x6F593E}, /* Korean hangul */ + {"\xAB", 0, 0x6F593F}, /* Korean hangul */ + {"\xAD", 0, 0x6F5940}, /* Korean hangul */ + {"\xB4", 0, 0x6F5941}, /* Korean hangul */ + {"\xB5", 0, 0x6F5942}, /* Korean hangul */ + {"\xB8", 0, 0x6F5943}, /* Korean hangul */ + {"\xBC", 0, 0x6F5944}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page476 = { + marc8r_9page476_flat, 0 +}; +/* PAGE 475 */ +struct yaz_iconv_trie_flat marc8r_9page475_flat[] = { + {"\x84", 0, 0x6F592D}, /* Korean hangul */ + {"\x85", 0, 0x6F592E}, /* Korean hangul */ + {"\x88", 0, 0x6F592F}, /* Korean hangul */ + {"\x8C", 0, 0x6F5930}, /* Korean hangul */ + {"\x94", 0, 0x6F5931}, /* Korean hangul */ + {"\x95", 0, 0x6F5932}, /* Korean hangul */ + {"\x98", 0, 0x6F5933}, /* Korean hangul */ + {"\x99", 0, 0x6F5934}, /* Korean hangul */ + {"\xA0", 0, 0x6F5935}, /* Korean hangul */ + {"\xA4", 0, 0x6F5936}, /* Korean hangul */ + {"\xB0", 0, 0x6F5937}, /* Korean hangul */ + {"\xB1", 0, 0x6F5938}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page475 = { + marc8r_9page475_flat, 0 +}; +/* PAGE 474 */ +struct yaz_iconv_trie_flat marc8r_9page474_flat[] = { + {"\x8C", 0, 0x6F5873}, /* Korean hangul */ + {"\x8D", 0, 0x6F5874}, /* Korean hangul */ + {"\x90", 0, 0x6F5875}, /* Korean hangul */ + {"\x94", 0, 0x6F5876}, /* Korean hangul */ + {"\x9C", 0, 0x6F5877}, /* Korean hangul */ + {"\x9D", 0, 0x6F5878}, /* Korean hangul */ + {"\xA1", 0, 0x6F5879}, /* Korean hangul */ + {"\xA2", 0, 0x6F587A}, /* Korean hangul */ + {"\xA7", 0, 0x6F587B}, /* Korean hangul */ + {"\xA8", 0, 0x6F587E}, /* Korean hangul */ + {"\xA9", 0, 0x6F5921}, /* Korean hangul */ + {"\xAC", 0, 0x6F5922}, /* Korean hangul */ + {"\xAE", 0, 0x6F5923}, /* Korean hangul */ + {"\xAF", 0, 0x6F5924}, /* Korean hangul */ + {"\xB0", 0, 0x6F5925}, /* Korean hangul */ + {"\xB8", 0, 0x6F5926}, /* Korean hangul */ + {"\xB9", 0, 0x6F5927}, /* Korean hangul */ + {"\xBB", 0, 0x6F5928}, /* Korean hangul */ + {"\xBC", 0, 0x6F5929}, /* Korean hangul */ + {"\xBD", 0, 0x6F592A}, /* Korean hangul */ + {"\xBE", 0, 0x6F592B}, /* Korean hangul */ + {"\xBF", 0, 0x6F592C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page474 = { + marc8r_9page474_flat, 0 +}; +/* PAGE 473 */ +struct yaz_iconv_trie_flat marc8r_9page473_flat[] = { + {"\x94", 0, 0x6F5870}, /* Korean hangul */ + {"\xA4", 0, 0x6F5871}, /* Korean hangul */ + {"\xA7", 0, 0x6F5872}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page473 = { + marc8r_9page473_flat, 0 +}; +/* PAGE 472 */ +struct yaz_iconv_trie_flat marc8r_9page472_flat[] = { + {"\xB8", 0, 0x6F586F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page472 = { + marc8r_9page472_flat, 0 +}; +/* PAGE 471 */ +struct yaz_iconv_trie_flat marc8r_9page471_flat[] = { + {"\x81", 0, 0x6F5867}, /* Korean hangul */ + {"\x88", 0, 0x6F5868}, /* Korean hangul */ + {"\x89", 0, 0x6F5869}, /* Korean hangul */ + {"\x90", 0, 0x6F586A}, /* Korean hangul */ + {"\x98", 0, 0x6F586B}, /* Korean hangul */ + {"\x99", 0, 0x6F586C}, /* Korean hangul */ + {"\x9D", 0, 0x6F586D}, /* Korean hangul */ + {"\xA4", 0, 0x6F586E}, /* Korean hangul */ + {"\x8C", 0, 0x6F773E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page471 = { + marc8r_9page471_flat, 0 +}; +/* PAGE 470 */ +struct yaz_iconv_trie_flat marc8r_9page470_flat[] = { + {"\x90", 0, 0x6F5862}, /* Korean hangul */ + {"\x94", 0, 0x6F5863}, /* Korean hangul */ + {"\x98", 0, 0x6F5864}, /* Korean hangul */ + {"\xA0", 0, 0x6F5865}, /* Korean hangul */ + {"\xA1", 0, 0x6F5866}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page470 = { + marc8r_9page470_flat, 0 +}; +/* PAGE 469 */ +struct yaz_iconv_trie_flat marc8r_9page469_flat[] = { + {"\x80", 0, 0x6F5859}, /* Korean hangul */ + {"\x84", 0, 0x6F585A}, /* Korean hangul */ + {"\x8C", 0, 0x6F585B}, /* Korean hangul */ + {"\x8D", 0, 0x6F585C}, /* Korean hangul */ + {"\x91", 0, 0x6F585D}, /* Korean hangul */ + {"\x92", 0, 0x6F585E}, /* Korean hangul */ + {"\x93", 0, 0x6F585F}, /* Korean hangul */ + {"\x98", 0, 0x6F5860}, /* Korean hangul */ + {"\x99", 0, 0x6F5861}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page469 = { + marc8r_9page469_flat, 0 +}; +/* PAGE 468 */ +struct yaz_iconv_trie_flat marc8r_9page468_flat[] = { + {"\x84", 0, 0x6F5855}, /* Korean hangul */ + {"\x98", 0, 0x6F5856}, /* Korean hangul */ + {"\xBC", 0, 0x6F5857}, /* Korean hangul */ + {"\xBD", 0, 0x6F5858}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page468 = { + marc8r_9page468_flat, 0 +}; +/* PAGE 467 */ +struct yaz_iconv_trie_flat marc8r_9page467_flat[] = { + {"\x8C", 0, 0x6F584E}, /* Korean hangul */ + {"\x8D", 0, 0x6F584F}, /* Korean hangul */ + {"\x90", 0, 0x6F5850}, /* Korean hangul */ + {"\x94", 0, 0x6F5851}, /* Korean hangul */ + {"\x9C", 0, 0x6F5852}, /* Korean hangul */ + {"\x9D", 0, 0x6F5853}, /* Korean hangul */ + {"\xA1", 0, 0x6F5854}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page467 = { + marc8r_9page467_flat, 0 +}; +/* PAGE 466 */ +struct yaz_iconv_trie_flat marc8r_9page466_flat[] = { + {"\x80", 0, 0x6F5847}, /* Korean hangul */ + {"\x88", 0, 0x6F5848}, /* Korean hangul */ + {"\x89", 0, 0x6F5849}, /* Korean hangul */ + {"\x8B", 0, 0x6F584A}, /* Korean hangul */ + {"\x8C", 0, 0x6F584B}, /* Korean hangul */ + {"\x8D", 0, 0x6F584C}, /* Korean hangul */ + {"\x98", 0, 0x6F584D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page466 = { + marc8r_9page466_flat, 0 +}; +/* PAGE 465 */ +struct yaz_iconv_trie_flat marc8r_9page465_flat[] = { + {"\x80", 0, 0x6F5829}, /* Korean hangul */ + {"\x81", 0, 0x6F582A}, /* Korean hangul */ + {"\x84", 0, 0x6F582B}, /* Korean hangul */ + {"\x87", 0, 0x6F582C}, /* Korean hangul */ + {"\x88", 0, 0x6F582D}, /* Korean hangul */ + {"\x8A", 0, 0x6F582E}, /* Korean hangul */ + {"\x90", 0, 0x6F582F}, /* Korean hangul */ + {"\x91", 0, 0x6F5830}, /* Korean hangul */ + {"\x93", 0, 0x6F5831}, /* Korean hangul */ + {"\x95", 0, 0x6F5832}, /* Korean hangul */ + {"\x96", 0, 0x6F5833}, /* Korean hangul */ + {"\x99", 0, 0x6F5834}, /* Korean hangul */ + {"\x9A", 0, 0x6F5835}, /* Korean hangul */ + {"\x9C", 0, 0x6F5838}, /* Korean hangul */ + {"\x9D", 0, 0x6F5839}, /* Korean hangul */ + {"\xA0", 0, 0x6F583A}, /* Korean hangul */ + {"\xA2", 0, 0x6F583B}, /* Korean hangul */ + {"\xA4", 0, 0x6F583C}, /* Korean hangul */ + {"\xA7", 0, 0x6F583E}, /* Korean hangul */ + {"\xAC", 0, 0x6F583F}, /* Korean hangul */ + {"\xAD", 0, 0x6F5840}, /* Korean hangul */ + {"\xAF", 0, 0x6F5841}, /* Korean hangul */ + {"\xB0", 0, 0x6F5842}, /* Korean hangul */ + {"\xB1", 0, 0x6F5843}, /* Korean hangul */ + {"\xB8", 0, 0x6F5844}, /* Korean hangul */ + {"\xB9", 0, 0x6F5845}, /* Korean hangul */ + {"\xBC", 0, 0x6F5846}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page465 = { + marc8r_9page465_flat, 0 +}; +/* PAGE 464 */ +struct yaz_iconv_trie_flat marc8r_9page464_flat[] = { + {"\x88", 0, 0x6F5822}, /* Korean hangul */ + {"\x89", 0, 0x6F5823}, /* Korean hangul */ + {"\x8C", 0, 0x6F5824}, /* Korean hangul */ + {"\x90", 0, 0x6F5825}, /* Korean hangul */ + {"\x98", 0, 0x6F5826}, /* Korean hangul */ + {"\x99", 0, 0x6F5827}, /* Korean hangul */ + {"\x9D", 0, 0x6F5828}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page464 = { + marc8r_9page464_flat, 0 +}; +/* PAGE 463 */ +struct yaz_iconv_trie_flat marc8r_9page463_flat[] = { + {"\x90", 0, 0x6F5777}, /* Korean hangul */ + {"\x94", 0, 0x6F5779}, /* Korean hangul */ + {"\x98", 0, 0x6F577A}, /* Korean hangul */ + {"\xA0", 0, 0x6F577B}, /* Korean hangul */ + {"\xA1", 0, 0x6F577C}, /* Korean hangul */ + {"\xAC", 0, 0x6F577D}, /* Korean hangul */ + {"\xB0", 0, 0x6F577E}, /* Korean hangul */ + {"\xB4", 0, 0x6F5821}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page463 = { + marc8r_9page463_flat, 0 +}; +/* PAGE 462 */ +struct yaz_iconv_trie_flat marc8r_9page462_flat[] = { + {"\x80", 0, 0x6F576E}, /* Korean hangul */ + {"\x84", 0, 0x6F576F}, /* Korean hangul */ + {"\x86", 0, 0x6F5770}, /* Korean hangul */ + {"\x8C", 0, 0x6F5771}, /* Korean hangul */ + {"\x8D", 0, 0x6F5772}, /* Korean hangul */ + {"\x8F", 0, 0x6F5773}, /* Korean hangul */ + {"\x91", 0, 0x6F5774}, /* Korean hangul */ + {"\x98", 0, 0x6F5775}, /* Korean hangul */ + {"\xAC", 0, 0x6F5776}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page462 = { + marc8r_9page462_flat, 0 +}; +/* PAGE 461 */ +struct yaz_iconv_trie_flat marc8r_9page461_flat[] = { + {"\x84", 0, 0x6F5761}, /* Korean hangul */ + {"\x88", 0, 0x6F5762}, /* Korean hangul */ + {"\x8C", 0, 0x6F5763}, /* Korean hangul */ + {"\x94", 0, 0x6F5764}, /* Korean hangul */ + {"\x95", 0, 0x6F5765}, /* Korean hangul */ + {"\x97", 0, 0x6F5766}, /* Korean hangul */ + {"\xA0", 0, 0x6F5767}, /* Korean hangul */ + {"\xA4", 0, 0x6F5768}, /* Korean hangul */ + {"\xB0", 0, 0x6F5769}, /* Korean hangul */ + {"\xB1", 0, 0x6F576A}, /* Korean hangul */ + {"\xB5", 0, 0x6F576B}, /* Korean hangul */ + {"\xBC", 0, 0x6F576C}, /* Korean hangul */ + {"\xBD", 0, 0x6F576D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page461 = { + marc8r_9page461_flat, 0 +}; +/* PAGE 460 */ +struct yaz_iconv_trie_flat marc8r_9page460_flat[] = { + {"\x80", 0, 0x6F574E}, /* Korean hangul */ + {"\x81", 0, 0x6F574F}, /* Korean hangul */ + {"\x85", 0, 0x6F5750}, /* Korean hangul */ + {"\x86", 0, 0x6F5751}, /* Korean hangul */ + {"\x87", 0, 0x6F5752}, /* Korean hangul */ + {"\x8B", 0, 0x6F5753}, /* Korean hangul */ + {"\x8C", 0, 0x6F5754}, /* Korean hangul */ + {"\x8D", 0, 0x6F5755}, /* Korean hangul */ + {"\x90", 0, 0x6F5756}, /* Korean hangul */ + {"\x94", 0, 0x6F5757}, /* Korean hangul */ + {"\x9C", 0, 0x6F5758}, /* Korean hangul */ + {"\x9D", 0, 0x6F5759}, /* Korean hangul */ + {"\x9F", 0, 0x6F575A}, /* Korean hangul */ + {"\xA0", 0, 0x6F575B}, /* Korean hangul */ + {"\xA8", 0, 0x6F575D}, /* Korean hangul */ + {"\xAC", 0, 0x6F575E}, /* Korean hangul */ + {"\xB0", 0, 0x6F575F}, /* Korean hangul */ + {"\xB8", 0, 0x6F5760}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page460 = { + marc8r_9page460_flat, 0 +}; +/* PAGE 459 */ +struct yaz_iconv_trie_flat marc8r_9page459_flat[] = { + {"\x8C", 0, 0x6F5748}, /* Korean hangul */ + {"\xB0", 0, 0x6F5749}, /* Korean hangul */ + {"\xB1", 0, 0x6F574A}, /* Korean hangul */ + {"\xB4", 0, 0x6F574B}, /* Korean hangul */ + {"\xB8", 0, 0x6F574C}, /* Korean hangul */ + {"\xBA", 0, 0x6F574D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page459 = { + marc8r_9page459_flat, 0 +}; +/* PAGE 458 */ +struct yaz_iconv_trie_flat marc8r_9page458_flat[] = { + {"\x80", 0, 0x6F5734}, /* Korean hangul */ + {"\x81", 0, 0x6F5735}, /* Korean hangul */ + {"\x84", 0, 0x6F5736}, /* Korean hangul */ + {"\x88", 0, 0x6F5737}, /* Korean hangul */ + {"\x8A", 0, 0x6F5738}, /* Korean hangul */ + {"\x90", 0, 0x6F5739}, /* Korean hangul */ + {"\x91", 0, 0x6F573A}, /* Korean hangul */ + {"\x93", 0, 0x6F573B}, /* Korean hangul */ + {"\x94", 0, 0x6F573C}, /* Korean hangul */ + {"\x95", 0, 0x6F573D}, /* Korean hangul */ + {"\x96", 0, 0x6F573E}, /* Korean hangul */ + {"\x9C", 0, 0x6F573F}, /* Korean hangul */ + {"\x9D", 0, 0x6F5740}, /* Korean hangul */ + {"\xA0", 0, 0x6F5741}, /* Korean hangul */ + {"\xA4", 0, 0x6F5742}, /* Korean hangul */ + {"\xAC", 0, 0x6F5743}, /* Korean hangul */ + {"\xAD", 0, 0x6F5744}, /* Korean hangul */ + {"\xAF", 0, 0x6F5745}, /* Korean hangul */ + {"\xB8", 0, 0x6F5746}, /* Korean hangul */ + {"\xBC", 0, 0x6F5747}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page458 = { + marc8r_9page458_flat, 0 +}; +/* PAGE 457 */ +struct yaz_iconv_trie_flat marc8r_9page457_flat[] = { + {"\x80", 0, 0x6F572E}, /* Korean hangul */ + {"\x81", 0, 0x6F572F}, /* Korean hangul */ + {"\x88", 0, 0x6F5730}, /* Korean hangul */ + {"\x89", 0, 0x6F5731}, /* Korean hangul */ + {"\x8C", 0, 0x6F5732}, /* Korean hangul */ + {"\x98", 0, 0x6F5733}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page457 = { + marc8r_9page457_flat, 0 +}; +/* PAGE 456 */ +struct yaz_iconv_trie_flat marc8r_9page456_flat[] = { + {"\x83", 0, 0x6F566F}, /* Korean hangul */ + {"\x84", 0, 0x6F5670}, /* Korean hangul */ + {"\x85", 0, 0x6F5671}, /* Korean hangul */ + {"\x87", 0, 0x6F5672}, /* Korean hangul */ + {"\x88", 0, 0x6F5673}, /* Korean hangul */ + {"\x89", 0, 0x6F5674}, /* Korean hangul */ + {"\x8A", 0, 0x6F5675}, /* Korean hangul */ + {"\x8E", 0, 0x6F5676}, /* Korean hangul */ + {"\x90", 0, 0x6F5679}, /* Korean hangul */ + {"\x91", 0, 0x6F567A}, /* Korean hangul */ + {"\x94", 0, 0x6F567B}, /* Korean hangul */ + {"\x96", 0, 0x6F567C}, /* Korean hangul */ + {"\x98", 0, 0x6F567D}, /* Korean hangul */ + {"\xA0", 0, 0x6F567E}, /* Korean hangul */ + {"\xA1", 0, 0x6F5721}, /* Korean hangul */ + {"\xA3", 0, 0x6F5722}, /* Korean hangul */ + {"\xA4", 0, 0x6F5723}, /* Korean hangul */ + {"\xA5", 0, 0x6F5724}, /* Korean hangul */ + {"\xA6", 0, 0x6F5725}, /* Korean hangul */ + {"\xA7", 0, 0x6F5726}, /* Korean hangul */ + {"\xAC", 0, 0x6F5727}, /* Korean hangul */ + {"\xAD", 0, 0x6F5728}, /* Korean hangul */ + {"\xB0", 0, 0x6F5729}, /* Korean hangul */ + {"\xB4", 0, 0x6F572A}, /* Korean hangul */ + {"\xBC", 0, 0x6F572B}, /* Korean hangul */ + {"\xBD", 0, 0x6F572C}, /* Korean hangul */ + {"\xBF", 0, 0x6F572D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page456 = { + marc8r_9page456_flat, 0 +}; +/* PAGE 455 */ +struct yaz_iconv_trie_flat marc8r_9page455_flat[] = { + {"\x80", 0, 0x6F5663}, /* Korean hangul */ + {"\x84", 0, 0x6F5664}, /* Korean hangul */ + {"\x8A", 0, 0x6F5665}, /* Korean hangul */ + {"\x8C", 0, 0x6F5666}, /* Korean hangul */ + {"\x8D", 0, 0x6F5667}, /* Korean hangul */ + {"\x91", 0, 0x6F5668}, /* Korean hangul */ + {"\x98", 0, 0x6F5669}, /* Korean hangul */ + {"\xB4", 0, 0x6F566A}, /* Korean hangul */ + {"\xB5", 0, 0x6F566B}, /* Korean hangul */ + {"\xB8", 0, 0x6F566C}, /* Korean hangul */ + {"\xBC", 0, 0x6F566D}, /* Korean hangul */ + {"\xBD", 0, 0x6F566E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page455 = { + marc8r_9page455_flat, 0 +}; +/* PAGE 454 */ +struct yaz_iconv_trie_flat marc8r_9page454_flat[] = { + {"\x84", 0, 0x6F5653}, /* Korean hangul */ + {"\x85", 0, 0x6F5654}, /* Korean hangul */ + {"\x88", 0, 0x6F5655}, /* Korean hangul */ + {"\x8C", 0, 0x6F5656}, /* Korean hangul */ + {"\x94", 0, 0x6F5657}, /* Korean hangul */ + {"\x97", 0, 0x6F5658}, /* Korean hangul */ + {"\x99", 0, 0x6F5659}, /* Korean hangul */ + {"\xA0", 0, 0x6F565A}, /* Korean hangul */ + {"\xA1", 0, 0x6F565B}, /* Korean hangul */ + {"\xA4", 0, 0x6F565C}, /* Korean hangul */ + {"\xA8", 0, 0x6F565D}, /* Korean hangul */ + {"\xB0", 0, 0x6F565E}, /* Korean hangul */ + {"\xB5", 0, 0x6F565F}, /* Korean hangul */ + {"\xB7", 0, 0x6F5660}, /* Korean hangul */ + {"\xBC", 0, 0x6F5661}, /* Korean hangul */ + {"\xBD", 0, 0x6F5662}, /* Korean hangul */ + {"\x97", 0, 0x6F773C}, /* Korean hangul (unified with EACC 6F5658) */ + {"\xB3", 0, 0x6F773D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page454 = { + marc8r_9page454_flat, 0 +}; +/* PAGE 453 */ +struct yaz_iconv_trie_flat marc8r_9page453_flat[] = { + {"\x80", 0, 0x6F5641}, /* Korean hangul */ + {"\x81", 0, 0x6F5642}, /* Korean hangul */ + {"\x83", 0, 0x6F5643}, /* Korean hangul */ + {"\x85", 0, 0x6F5644}, /* Korean hangul */ + {"\x8C", 0, 0x6F5645}, /* Korean hangul */ + {"\x8D", 0, 0x6F5646}, /* Korean hangul */ + {"\x90", 0, 0x6F5647}, /* Korean hangul */ + {"\x94", 0, 0x6F5648}, /* Korean hangul */ + {"\x9C", 0, 0x6F5649}, /* Korean hangul */ + {"\x9D", 0, 0x6F564A}, /* Korean hangul */ + {"\x9F", 0, 0x6F564B}, /* Korean hangul */ + {"\xA0", 0, 0x6F564C}, /* Korean hangul */ + {"\xA1", 0, 0x6F564D}, /* Korean hangul */ + {"\xA8", 0, 0x6F564E}, /* Korean hangul */ + {"\xA9", 0, 0x6F564F}, /* Korean hangul */ + {"\xAC", 0, 0x6F5650}, /* Korean hangul */ + {"\xB0", 0, 0x6F5651}, /* Korean hangul */ + {"\xB8", 0, 0x6F5652}, /* Korean hangul */ + {"\xBD", 0, 0x6F773B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page453 = { + marc8r_9page453_flat, 0 +}; +/* PAGE 452 */ +struct yaz_iconv_trie_flat marc8r_9page452_flat[] = { + {"\x80", 0, 0x6F5630}, /* Korean hangul */ + {"\x88", 0, 0x6F5631}, /* Korean hangul */ + {"\x8B", 0, 0x6F5632}, /* Korean hangul */ + {"\x8D", 0, 0x6F5633}, /* Korean hangul */ + {"\x94", 0, 0x6F5634}, /* Korean hangul */ + {"\x95", 0, 0x6F5635}, /* Korean hangul */ + {"\x98", 0, 0x6F5636}, /* Korean hangul */ + {"\xA5", 0, 0x6F5637}, /* Korean hangul */ + {"\xA7", 0, 0x6F5638}, /* Korean hangul */ + {"\xA9", 0, 0x6F5639}, /* Korean hangul */ + {"\xB0", 0, 0x6F563A}, /* Korean hangul */ + {"\xB1", 0, 0x6F563B}, /* Korean hangul */ + {"\xB4", 0, 0x6F563C}, /* Korean hangul */ + {"\xB7", 0, 0x6F563D}, /* Korean hangul */ + {"\xB8", 0, 0x6F563E}, /* Korean hangul */ + {"\xB9", 0, 0x6F563F}, /* Korean hangul */ + {"\xBA", 0, 0x6F5640}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page452 = { + marc8r_9page452_flat, 0 +}; +/* PAGE 451 */ +struct yaz_iconv_trie_flat marc8r_9page451_flat[] = { + {"\x80", 0, 0x6F557E}, /* Korean hangul */ + {"\x81", 0, 0x6F5621}, /* Korean hangul */ + {"\x84", 0, 0x6F5622}, /* Korean hangul */ + {"\x88", 0, 0x6F5623}, /* Korean hangul */ + {"\x90", 0, 0x6F5624}, /* Korean hangul */ + {"\x91", 0, 0x6F5625}, /* Korean hangul */ + {"\x93", 0, 0x6F5626}, /* Korean hangul */ + {"\x94", 0, 0x6F5627}, /* Korean hangul */ + {"\x9C", 0, 0x6F5629}, /* Korean hangul */ + {"\x9D", 0, 0x6F562A}, /* Korean hangul */ + {"\xA0", 0, 0x6F562B}, /* Korean hangul */ + {"\xB1", 0, 0x6F562C}, /* Korean hangul */ + {"\xB8", 0, 0x6F562D}, /* Korean hangul */ + {"\xB9", 0, 0x6F562E}, /* Korean hangul */ + {"\xBC", 0, 0x6F562F}, /* Korean hangul */ + {"\x95", 0, 0x6F5677}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page451 = { + marc8r_9page451_flat, 0 +}; +/* PAGE 450 */ +struct yaz_iconv_trie_flat marc8r_9page450_flat[] = { + {"\x80", 0, 0x6F5569}, /* Korean hangul */ + {"\x81", 0, 0x6F556A}, /* Korean hangul */ + {"\x86", 0, 0x6F556B}, /* Korean hangul */ + {"\x87", 0, 0x6F556C}, /* Korean hangul */ + {"\x88", 0, 0x6F556D}, /* Korean hangul */ + {"\x8C", 0, 0x6F556E}, /* Korean hangul */ + {"\x90", 0, 0x6F556F}, /* Korean hangul */ + {"\x9B", 0, 0x6F5570}, /* Korean hangul */ + {"\xA4", 0, 0x6F5571}, /* Korean hangul */ + {"\xA5", 0, 0x6F5572}, /* Korean hangul */ + {"\xA8", 0, 0x6F5573}, /* Korean hangul */ + {"\xAC", 0, 0x6F5574}, /* Korean hangul */ + {"\xAD", 0, 0x6F5575}, /* Korean hangul */ + {"\xAE", 0, 0x6F5576}, /* Korean hangul */ + {"\xB3", 0, 0x6F5577}, /* Korean hangul */ + {"\xB4", 0, 0x6F5578}, /* Korean hangul */ + {"\xB5", 0, 0x6F5579}, /* Korean hangul */ + {"\xB7", 0, 0x6F557A}, /* Korean hangul */ + {"\xB9", 0, 0x6F557B}, /* Korean hangul */ + {"\xBA", 0, 0x6F557C}, /* Korean hangul */ + {"\xBB", 0, 0x6F557D}, /* Korean hangul */ + {"\x9C", 0, 0x6F7739}, /* Korean hangul */ + {"\x9D", 0, 0x6F773A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page450 = { + marc8r_9page450_flat, 0 +}; +/* PAGE 449 */ +struct yaz_iconv_trie_flat marc8r_9page449_flat[] = { + {"\x84", 0, 0x6F554D}, /* Korean hangul */ + {"\x85", 0, 0x6F554E}, /* Korean hangul */ + {"\x86", 0, 0x6F554F}, /* Korean hangul */ + {"\x87", 0, 0x6F5550}, /* Korean hangul */ + {"\x88", 0, 0x6F5551}, /* Korean hangul */ + {"\x89", 0, 0x6F5552}, /* Korean hangul */ + {"\x8A", 0, 0x6F5553}, /* Korean hangul */ + {"\x8C", 0, 0x6F5554}, /* Korean hangul */ + {"\x8E", 0, 0x6F5555}, /* Korean hangul */ + {"\x90", 0, 0x6F5556}, /* Korean hangul */ + {"\x91", 0, 0x6F5557}, /* Korean hangul */ + {"\x94", 0, 0x6F5558}, /* Korean hangul */ + {"\x98", 0, 0x6F5559}, /* Korean hangul */ + {"\xA0", 0, 0x6F555A}, /* Korean hangul */ + {"\xA1", 0, 0x6F555B}, /* Korean hangul */ + {"\xA3", 0, 0x6F555C}, /* Korean hangul */ + {"\xA5", 0, 0x6F555D}, /* Korean hangul */ + {"\xAC", 0, 0x6F555E}, /* Korean hangul */ + {"\xAD", 0, 0x6F555F}, /* Korean hangul */ + {"\xAE", 0, 0x6F5560}, /* Korean hangul */ + {"\xB0", 0, 0x6F5561}, /* Korean hangul */ + {"\xB4", 0, 0x6F5562}, /* Korean hangul */ + {"\xB6", 0, 0x6F5563}, /* Korean hangul */ + {"\xB7", 0, 0x6F5564}, /* Korean hangul */ + {"\xBC", 0, 0x6F5565}, /* Korean hangul */ + {"\xBD", 0, 0x6F5566}, /* Korean hangul */ + {"\xBE", 0, 0x6F5567}, /* Korean hangul */ + {"\xBF", 0, 0x6F5568}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page449 = { + marc8r_9page449_flat, 0 +}; +/* PAGE 448 */ +struct yaz_iconv_trie_flat marc8r_9page448_flat[] = { + {"\x80", 0, 0x6F5538}, /* Korean hangul */ + {"\x84", 0, 0x6F5539}, /* Korean hangul */ + {"\x87", 0, 0x6F553A}, /* Korean hangul */ + {"\x8C", 0, 0x6F553B}, /* Korean hangul */ + {"\x8D", 0, 0x6F553C}, /* Korean hangul */ + {"\x8F", 0, 0x6F553D}, /* Korean hangul */ + {"\x90", 0, 0x6F553E}, /* Korean hangul */ + {"\x91", 0, 0x6F553F}, /* Korean hangul */ + {"\x95", 0, 0x6F5540}, /* Korean hangul */ + {"\x97", 0, 0x6F5541}, /* Korean hangul */ + {"\x98", 0, 0x6F5542}, /* Korean hangul */ + {"\x9C", 0, 0x6F5543}, /* Korean hangul */ + {"\xB4", 0, 0x6F5544}, /* Korean hangul */ + {"\xB5", 0, 0x6F5545}, /* Korean hangul */ + {"\xB6", 0, 0x6F5546}, /* Korean hangul */ + {"\xB8", 0, 0x6F5547}, /* Korean hangul */ + {"\xB9", 0, 0x6F5548}, /* Korean hangul */ + {"\xBA", 0, 0x6F5549}, /* Korean hangul */ + {"\xBB", 0, 0x6F554A}, /* Korean hangul */ + {"\xBC", 0, 0x6F554B}, /* Korean hangul */ + {"\xBD", 0, 0x6F554C}, /* Korean hangul */ + {"\xAB", 0, 0x6F7737}, /* Korean hangul */ + {"\xB1", 0, 0x6F7738}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page448 = { + marc8r_9page448_flat, 0 +}; +/* PAGE 447 */ +struct yaz_iconv_trie_flat marc8r_9page447_flat[] = { + {"\x84", 0, 0x6F547C}, /* Korean hangul */ + {"\x85", 0, 0x6F547D}, /* Korean hangul */ + {"\x88", 0, 0x6F547E}, /* Korean hangul */ + {"\x89", 0, 0x6F5521}, /* Korean hangul */ + {"\x8A", 0, 0x6F5522}, /* Korean hangul */ + {"\x8C", 0, 0x6F5523}, /* Korean hangul */ + {"\x8E", 0, 0x6F5524}, /* Korean hangul */ + {"\x93", 0, 0x6F5525}, /* Korean hangul */ + {"\x94", 0, 0x6F5526}, /* Korean hangul */ + {"\x95", 0, 0x6F5527}, /* Korean hangul */ + {"\x97", 0, 0x6F5528}, /* Korean hangul */ + {"\x98", 0, 0x6F5529}, /* Korean hangul */ + {"\x99", 0, 0x6F552A}, /* Korean hangul */ + {"\x9E", 0, 0x6F552B}, /* Korean hangul */ + {"\x9F", 0, 0x6F552C}, /* Korean hangul */ + {"\xA0", 0, 0x6F552D}, /* Korean hangul */ + {"\xA1", 0, 0x6F552E}, /* Korean hangul */ + {"\xA4", 0, 0x6F552F}, /* Korean hangul */ + {"\xA8", 0, 0x6F5530}, /* Korean hangul */ + {"\xB0", 0, 0x6F5531}, /* Korean hangul */ + {"\xB1", 0, 0x6F5532}, /* Korean hangul */ + {"\xB3", 0, 0x6F5533}, /* Korean hangul */ + {"\xB4", 0, 0x6F5534}, /* Korean hangul */ + {"\xB5", 0, 0x6F5535}, /* Korean hangul */ + {"\xBC", 0, 0x6F5536}, /* Korean hangul */ + {"\xBD", 0, 0x6F5537}, /* Korean hangul */ + {"\x8D", 0, 0x6F7734}, /* Korean hangul */ + {"\x8F", 0, 0x6F7735}, /* Korean hangul */ + {"\x92", 0, 0x6F7736}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page447 = { + marc8r_9page447_flat, 0 +}; +/* PAGE 446 */ +struct yaz_iconv_trie_flat marc8r_9page446_flat[] = { + {"\x80", 0, 0x6F546E}, /* Korean hangul */ + {"\x81", 0, 0x6F546F}, /* Korean hangul */ + {"\x8C", 0, 0x6F5470}, /* Korean hangul */ + {"\x90", 0, 0x6F5471}, /* Korean hangul */ + {"\xA8", 0, 0x6F5472}, /* Korean hangul */ + {"\xA9", 0, 0x6F5473}, /* Korean hangul */ + {"\xAC", 0, 0x6F5474}, /* Korean hangul */ + {"\xB0", 0, 0x6F5475}, /* Korean hangul */ + {"\xB8", 0, 0x6F5476}, /* Korean hangul */ + {"\xB9", 0, 0x6F5477}, /* Korean hangul */ + {"\xBB", 0, 0x6F5478}, /* Korean hangul */ + {"\xBD", 0, 0x6F5479}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page446 = { + marc8r_9page446_flat, 0 +}; +/* PAGE 445 */ +struct yaz_iconv_trie_flat marc8r_9page445_flat[] = { + {"\x94", 0, 0x6F5468}, /* Korean hangul */ + {"\x95", 0, 0x6F5469}, /* Korean hangul */ + {"\xB0", 0, 0x6F546A}, /* Korean hangul */ + {"\xB1", 0, 0x6F546B}, /* Korean hangul */ + {"\xB4", 0, 0x6F546C}, /* Korean hangul */ + {"\xB8", 0, 0x6F546D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page445 = { + marc8r_9page445_flat, 0 +}; +/* PAGE 444 */ +struct yaz_iconv_trie_flat marc8r_9page444_flat[] = { + {"\x80", 0, 0x6F5466}, /* Korean hangul */ + {"\x94", 0, 0x6F5467}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page444 = { + marc8r_9page444_flat, 0 +}; +/* PAGE 443 */ +struct yaz_iconv_trie_flat marc8r_9page443_flat[] = { + {"\xA4", 0, 0x6F5460}, /* Korean hangul */ + {"\xA5", 0, 0x6F5461}, /* Korean hangul */ + {"\xA8", 0, 0x6F5462}, /* Korean hangul */ + {"\xAC", 0, 0x6F5463}, /* Korean hangul */ + {"\xB4", 0, 0x6F5464}, /* Korean hangul */ + {"\xB9", 0, 0x6F5465}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page443 = { + marc8r_9page443_flat, 0 +}; +/* PAGE 442 */ +struct yaz_iconv_trie_flat marc8r_9page442_flat[] = { + {"\x90", 0, 0x6F545A}, /* Korean hangul */ + {"\xAC", 0, 0x6F545B}, /* Korean hangul */ + {"\xB0", 0, 0x6F545C}, /* Korean hangul */ + {"\xB4", 0, 0x6F545D}, /* Korean hangul */ + {"\xBC", 0, 0x6F545E}, /* Korean hangul */ + {"\xBF", 0, 0x6F545F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page442 = { + marc8r_9page442_flat, 0 +}; +/* PAGE 441 */ +struct yaz_iconv_trie_flat marc8r_9page441_flat[] = { + {"\x98", 0, 0x6F5451}, /* Korean hangul */ + {"\x99", 0, 0x6F5452}, /* Korean hangul */ + {"\x9C", 0, 0x6F5453}, /* Korean hangul */ + {"\x9F", 0, 0x6F5454}, /* Korean hangul */ + {"\xA0", 0, 0x6F5455}, /* Korean hangul */ + {"\xA8", 0, 0x6F5456}, /* Korean hangul */ + {"\xAD", 0, 0x6F5457}, /* Korean hangul */ + {"\xB4", 0, 0x6F5458}, /* Korean hangul */ + {"\xB5", 0, 0x6F5459}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page441 = { + marc8r_9page441_flat, 0 +}; +/* PAGE 440 */ +struct yaz_iconv_trie_flat marc8r_9page440_flat[] = { + {"\x84", 0, 0x6F544E}, /* Korean hangul */ + {"\x88", 0, 0x6F544F}, /* Korean hangul */ + {"\x99", 0, 0x6F5450}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page440 = { + marc8r_9page440_flat, 0 +}; +/* PAGE 439 */ +struct yaz_iconv_trie_flat marc8r_9page439_flat[] = { + {"\x83", 0, 0x6F5443}, /* Korean hangul */ + {"\x85", 0, 0x6F5444}, /* Korean hangul */ + {"\xA8", 0, 0x6F5445}, /* Korean hangul */ + {"\xA9", 0, 0x6F5446}, /* Korean hangul */ + {"\xAC", 0, 0x6F5447}, /* Korean hangul */ + {"\xB0", 0, 0x6F5448}, /* Korean hangul */ + {"\xB2", 0, 0x6F5449}, /* Korean hangul */ + {"\xB8", 0, 0x6F544A}, /* Korean hangul */ + {"\xB9", 0, 0x6F544B}, /* Korean hangul */ + {"\xBC", 0, 0x6F544C}, /* Korean hangul */ + {"\xBD", 0, 0x6F544D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page439 = { + marc8r_9page439_flat, 0 +}; +/* PAGE 438 */ +struct yaz_iconv_trie_flat marc8r_9page438_flat[] = { + {"\x80", 0, 0x6F5433}, /* Korean hangul */ + {"\x88", 0, 0x6F5434}, /* Korean hangul */ + {"\x89", 0, 0x6F5435}, /* Korean hangul */ + {"\x8B", 0, 0x6F5436}, /* Korean hangul */ + {"\x8C", 0, 0x6F5437}, /* Korean hangul */ + {"\x8D", 0, 0x6F5438}, /* Korean hangul */ + {"\x93", 0, 0x6F5439}, /* Korean hangul */ + {"\x94", 0, 0x6F543A}, /* Korean hangul */ + {"\x95", 0, 0x6F543B}, /* Korean hangul */ + {"\x98", 0, 0x6F543C}, /* Korean hangul */ + {"\x9C", 0, 0x6F543D}, /* Korean hangul */ + {"\xA4", 0, 0x6F543E}, /* Korean hangul */ + {"\xA7", 0, 0x6F543F}, /* Korean hangul */ + {"\xA8", 0, 0x6F5440}, /* Korean hangul */ + {"\xA9", 0, 0x6F5441}, /* Korean hangul */ + {"\xB0", 0, 0x6F5442}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page438 = { + marc8r_9page438_flat, 0 +}; +/* PAGE 437 */ +struct yaz_iconv_trie_flat marc8r_9page437_flat[] = { + {"\x9C", 0, 0x6F5423}, /* Korean hangul */ + {"\x9D", 0, 0x6F5424}, /* Korean hangul */ + {"\xA0", 0, 0x6F5425}, /* Korean hangul */ + {"\xA3", 0, 0x6F5426}, /* Korean hangul */ + {"\xA4", 0, 0x6F5427}, /* Korean hangul */ + {"\xAB", 0, 0x6F5428}, /* Korean hangul */ + {"\xAC", 0, 0x6F5429}, /* Korean hangul */ + {"\xAD", 0, 0x6F542A}, /* Korean hangul */ + {"\xAF", 0, 0x6F542B}, /* Korean hangul */ + {"\xB1", 0, 0x6F542C}, /* Korean hangul */ + {"\xB6", 0, 0x6F542D}, /* Korean hangul */ + {"\xB8", 0, 0x6F5430}, /* Korean hangul */ + {"\xB9", 0, 0x6F5431}, /* Korean hangul */ + {"\xBC", 0, 0x6F5432}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page437 = { + marc8r_9page437_flat, 0 +}; +/* PAGE 436 */ +struct yaz_iconv_trie_flat marc8r_9page436_flat[] = { + {"\x81", 0, 0x6F5370}, /* Korean hangul */ + {"\x88", 0, 0x6F5371}, /* Korean hangul */ + {"\x89", 0, 0x6F5372}, /* Korean hangul */ + {"\x90", 0, 0x6F5373}, /* Korean hangul */ + {"\x98", 0, 0x6F5374}, /* Korean hangul */ + {"\x9B", 0, 0x6F5375}, /* Korean hangul */ + {"\x9D", 0, 0x6F5376}, /* Korean hangul */ + {"\xA4", 0, 0x6F5377}, /* Korean hangul */ + {"\xA5", 0, 0x6F5378}, /* Korean hangul */ + {"\xA8", 0, 0x6F5379}, /* Korean hangul */ + {"\xAC", 0, 0x6F537A}, /* Korean hangul */ + {"\xAD", 0, 0x6F537B}, /* Korean hangul */ + {"\xB4", 0, 0x6F537D}, /* Korean hangul */ + {"\xB5", 0, 0x6F537E}, /* Korean hangul */ + {"\xB7", 0, 0x6F5421}, /* Korean hangul */ + {"\xB9", 0, 0x6F5422}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page436 = { + marc8r_9page436_flat, 0 +}; +/* PAGE 435 */ +struct yaz_iconv_trie_flat marc8r_9page435_flat[] = { + {"\x90", 0, 0x6F5368}, /* Korean hangul */ + {"\x98", 0, 0x6F5369}, /* Korean hangul */ + {"\xAC", 0, 0x6F536A}, /* Korean hangul */ + {"\xB0", 0, 0x6F536B}, /* Korean hangul */ + {"\xB4", 0, 0x6F536C}, /* Korean hangul */ + {"\xBC", 0, 0x6F536D}, /* Korean hangul */ + {"\xBD", 0, 0x6F536E}, /* Korean hangul */ + {"\xBF", 0, 0x6F536F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page435 = { + marc8r_9page435_flat, 0 +}; +/* PAGE 434 */ +struct yaz_iconv_trie_flat marc8r_9page434_flat[] = { + {"\x80", 0, 0x6F5357}, /* Korean hangul */ + {"\x84", 0, 0x6F5358}, /* Korean hangul */ + {"\x8D", 0, 0x6F5359}, /* Korean hangul */ + {"\x98", 0, 0x6F535B}, /* Korean hangul */ + {"\x99", 0, 0x6F535C}, /* Korean hangul */ + {"\x9C", 0, 0x6F535D}, /* Korean hangul */ + {"\x9F", 0, 0x6F535E}, /* Korean hangul */ + {"\xA0", 0, 0x6F535F}, /* Korean hangul */ + {"\xA8", 0, 0x6F5360}, /* Korean hangul */ + {"\xA9", 0, 0x6F5361}, /* Korean hangul */ + {"\xAB", 0, 0x6F5362}, /* Korean hangul */ + {"\xAD", 0, 0x6F5363}, /* Korean hangul */ + {"\xAF", 0, 0x6F5364}, /* Korean hangul */ + {"\xB1", 0, 0x6F5365}, /* Korean hangul */ + {"\xB2", 0, 0x6F5366}, /* Korean hangul */ + {"\xB4", 0, 0x6F5367}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page434 = { + marc8r_9page434_flat, 0 +}; +/* PAGE 433 */ +struct yaz_iconv_trie_flat marc8r_9page433_flat[] = { + {"\x84", 0, 0x6F534C}, /* Korean hangul */ + {"\x88", 0, 0x6F534D}, /* Korean hangul */ + {"\x97", 0, 0x6F534E}, /* Korean hangul */ + {"\xA0", 0, 0x6F534F}, /* Korean hangul */ + {"\xA4", 0, 0x6F5350}, /* Korean hangul */ + {"\xA8", 0, 0x6F5351}, /* Korean hangul */ + {"\xB0", 0, 0x6F5352}, /* Korean hangul */ + {"\xB1", 0, 0x6F5353}, /* Korean hangul */ + {"\xB3", 0, 0x6F5354}, /* Korean hangul */ + {"\xBC", 0, 0x6F5355}, /* Korean hangul */ + {"\xBD", 0, 0x6F5356}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page433 = { + marc8r_9page433_flat, 0 +}; +/* PAGE 432 */ +struct yaz_iconv_trie_flat marc8r_9page432_flat[] = { + {"\x8C", 0, 0x6F533F}, /* Korean hangul */ + {"\x8D", 0, 0x6F5340}, /* Korean hangul */ + {"\x8E", 0, 0x6F5341}, /* Korean hangul */ + {"\x90", 0, 0x6F5342}, /* Korean hangul */ + {"\x94", 0, 0x6F5343}, /* Korean hangul */ + {"\x9C", 0, 0x6F5344}, /* Korean hangul */ + {"\x9D", 0, 0x6F5345}, /* Korean hangul */ + {"\x9F", 0, 0x6F5346}, /* Korean hangul */ + {"\xA1", 0, 0x6F5347}, /* Korean hangul */ + {"\xA5", 0, 0x6F5348}, /* Korean hangul */ + {"\xA8", 0, 0x6F5349}, /* Korean hangul */ + {"\xA9", 0, 0x6F534A}, /* Korean hangul */ + {"\xB0", 0, 0x6F534B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page432 = { + marc8r_9page432_flat, 0 +}; +/* PAGE 431 */ +struct yaz_iconv_trie_flat marc8r_9page431_flat[] = { + {"\x80", 0, 0x6F5334}, /* Korean hangul */ + {"\x88", 0, 0x6F5335}, /* Korean hangul */ + {"\x89", 0, 0x6F5336}, /* Korean hangul */ + {"\x8B", 0, 0x6F5337}, /* Korean hangul */ + {"\x8D", 0, 0x6F5338}, /* Korean hangul */ + {"\x91", 0, 0x6F5339}, /* Korean hangul */ + {"\x94", 0, 0x6F533A}, /* Korean hangul */ + {"\x98", 0, 0x6F533B}, /* Korean hangul */ + {"\xA7", 0, 0x6F533C}, /* Korean hangul */ + {"\xA8", 0, 0x6F533D}, /* Korean hangul */ + {"\xB0", 0, 0x6F533E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page431 = { + marc8r_9page431_flat, 0 +}; +/* PAGE 430 */ +struct yaz_iconv_trie_flat marc8r_9page430_flat[] = { + {"\x9C", 0, 0x6F5321}, /* Korean hangul */ + {"\x9D", 0, 0x6F5322}, /* Korean hangul */ + {"\x9E", 0, 0x6F5323}, /* Korean hangul */ + {"\xA0", 0, 0x6F5324}, /* Korean hangul */ + {"\xA3", 0, 0x6F5325}, /* Korean hangul */ + {"\xA4", 0, 0x6F5326}, /* Korean hangul */ + {"\xA4", 0, 0x6F5326}, /* Korean hangul */ + {"\xA5", 0, 0x6F5327}, /* Korean hangul */ + {"\xA6", 0, 0x6F5328}, /* Korean hangul */ + {"\xA7", 0, 0x6F5329}, /* Korean hangul */ + {"\xAA", 0, 0x6F532A}, /* Korean hangul */ + {"\xAC", 0, 0x6F532B}, /* Korean hangul */ + {"\xAD", 0, 0x6F532C}, /* Korean hangul */ + {"\xAF", 0, 0x6F532D}, /* Korean hangul */ + {"\xB0", 0, 0x6F532E}, /* Korean hangul */ + {"\xB1", 0, 0x6F532F}, /* Korean hangul */ + {"\xB6", 0, 0x6F5330}, /* Korean hangul */ + {"\xB8", 0, 0x6F5331}, /* Korean hangul */ + {"\xB9", 0, 0x6F5332}, /* Korean hangul */ + {"\xBC", 0, 0x6F5333}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page430 = { + marc8r_9page430_flat, 0 +}; +/* PAGE 429 */ +struct yaz_iconv_trie_flat marc8r_9page429_flat[] = { + {"\x80", 0, 0x6F526B}, /* Korean hangul */ + {"\x81", 0, 0x6F526C}, /* Korean hangul */ + {"\x85", 0, 0x6F526D}, /* Korean hangul */ + {"\x88", 0, 0x6F526E}, /* Korean hangul */ + {"\x89", 0, 0x6F526F}, /* Korean hangul */ + {"\x8C", 0, 0x6F5270}, /* Korean hangul */ + {"\x8F", 0, 0x6F5271}, /* Korean hangul */ + {"\x90", 0, 0x6F5272}, /* Korean hangul */ + {"\x98", 0, 0x6F5273}, /* Korean hangul */ + {"\x99", 0, 0x6F5274}, /* Korean hangul */ + {"\x9B", 0, 0x6F5275}, /* Korean hangul */ + {"\x9C", 0, 0x6F5276}, /* Korean hangul */ + {"\x9D", 0, 0x6F5277}, /* Korean hangul */ + {"\xA4", 0, 0x6F5278}, /* Korean hangul */ + {"\xA5", 0, 0x6F5279}, /* Korean hangul */ + {"\xA8", 0, 0x6F527A}, /* Korean hangul */ + {"\xAC", 0, 0x6F527B}, /* Korean hangul */ + {"\xB4", 0, 0x6F527C}, /* Korean hangul */ + {"\xB7", 0, 0x6F527D}, /* Korean hangul */ + {"\xB9", 0, 0x6F527E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page429 = { + marc8r_9page429_flat, 0 +}; +/* PAGE 428 */ +struct yaz_iconv_trie_flat marc8r_9page428_flat[] = { + {"\x90", 0, 0x6F5256}, /* Korean hangul */ + {"\x91", 0, 0x6F5257}, /* Korean hangul */ + {"\x94", 0, 0x6F5258}, /* Korean hangul */ + {"\x98", 0, 0x6F5259}, /* Korean hangul */ + {"\xA0", 0, 0x6F525A}, /* Korean hangul */ + {"\xA3", 0, 0x6F525B}, /* Korean hangul */ + {"\xA5", 0, 0x6F525C}, /* Korean hangul */ + {"\xAC", 0, 0x6F525F}, /* Korean hangul */ + {"\xAD", 0, 0x6F5260}, /* Korean hangul */ + {"\xAE", 0, 0x6F5261}, /* Korean hangul */ + {"\xAF", 0, 0x6F5262}, /* Korean hangul */ + {"\xB0", 0, 0x6F5263}, /* Korean hangul */ + {"\xB3", 0, 0x6F5264}, /* Korean hangul */ + {"\xB4", 0, 0x6F5265}, /* Korean hangul */ + {"\xB5", 0, 0x6F5266}, /* Korean hangul */ + {"\xB6", 0, 0x6F5267}, /* Korean hangul */ + {"\xBC", 0, 0x6F5268}, /* Korean hangul */ + {"\xBD", 0, 0x6F5269}, /* Korean hangul */ + {"\xBF", 0, 0x6F526A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page428 = { + marc8r_9page428_flat, 0 +}; +/* PAGE 427 */ +struct yaz_iconv_trie_flat marc8r_9page427_flat[] = { + {"\x98", 0, 0x6F5250}, /* Korean hangul */ + {"\x99", 0, 0x6F5251}, /* Korean hangul */ + {"\x9C", 0, 0x6F5252}, /* Korean hangul */ + {"\xA0", 0, 0x6F5253}, /* Korean hangul */ + {"\xA8", 0, 0x6F5254}, /* Korean hangul */ + {"\xA9", 0, 0x6F5255}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page427 = { + marc8r_9page427_flat, 0 +}; +/* PAGE 426 */ +struct yaz_iconv_trie_dir marc8r_9page426_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {428, 0, 0}, + {429, 0, 0}, + {430, 0, 0}, + {431, 0, 0}, + {432, 0, 0}, + {433, 0, 0}, + {434, 0, 0}, + {435, 0, 0}, + {436, 0, 0}, + {437, 0, 0}, + {438, 0, 0}, + {439, 0, 0}, + {440, 0, 0}, + {441, 0, 0}, + {442, 0, 0}, + {443, 0, 0}, + {444, 0, 0}, + {445, 0, 0}, + {446, 0, 0}, + {447, 0, 0}, + {448, 0, 0}, + {449, 0, 0}, + {450, 0, 0}, + {451, 0, 0}, + {452, 0, 0}, + {453, 0, 0}, + {454, 0, 0}, + {455, 0, 0}, + {456, 0, 0}, + {457, 0, 0}, + {458, 0, 0}, + {459, 0, 0}, + {460, 0, 0}, + {461, 0, 0}, + {462, 0, 0}, + {463, 0, 0}, + {464, 0, 0}, + {465, 0, 0}, + {466, 0, 0}, + {467, 0, 0}, + {468, 0, 0}, + {469, 0, 0}, + {470, 0, 0}, + {471, 0, 0}, + {472, 0, 0}, + {473, 0, 0}, + {474, 0, 0}, + {475, 0, 0}, + {476, 0, 0}, + {477, 0, 0}, + {478, 0, 0}, + {479, 0, 0}, + {480, 0, 0}, + {481, 0, 0}, + {482, 0, 0}, + {483, 0, 0}, + {484, 0, 0}, + {485, 0, 0}, + {486, 0, 0}, + {487, 0, 0}, + {488, 0, 0}, + {489, 0, 0}, + {490, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page426 = { + 0, marc8r_9page426_dir +}; +/* PAGE 425 */ +struct yaz_iconv_trie_flat marc8r_9page425_flat[] = { + {"\x80", 0, 0x6F5247}, /* Korean hangul */ + {"\x85", 0, 0x6F5248}, /* Korean hangul */ + {"\x8C", 0, 0x6F5249}, /* Korean hangul */ + {"\x8D", 0, 0x6F524A}, /* Korean hangul */ + {"\x90", 0, 0x6F524B}, /* Korean hangul */ + {"\x94", 0, 0x6F524C}, /* Korean hangul */ + {"\x9C", 0, 0x6F524D}, /* Korean hangul */ + {"\x9D", 0, 0x6F524E}, /* Korean hangul */ + {"\xA1", 0, 0x6F524F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page425 = { + marc8r_9page425_flat, 0 +}; +/* PAGE 424 */ +struct yaz_iconv_trie_flat marc8r_9page424_flat[] = { + {"\xB0", 0, 0x6F5246}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page424 = { + marc8r_9page424_flat, 0 +}; +/* PAGE 423 */ +struct yaz_iconv_trie_flat marc8r_9page423_flat[] = { + {"\x80", 0, 0x6F523F}, /* Korean hangul */ + {"\x81", 0, 0x6F5240}, /* Korean hangul */ + {"\x84", 0, 0x6F5241}, /* Korean hangul */ + {"\x88", 0, 0x6F5242}, /* Korean hangul */ + {"\x90", 0, 0x6F5243}, /* Korean hangul */ + {"\x91", 0, 0x6F5244}, /* Korean hangul */ + {"\x95", 0, 0x6F5245}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page423 = { + marc8r_9page423_flat, 0 +}; +/* PAGE 422 */ +struct yaz_iconv_trie_flat marc8r_9page422_flat[] = { + {"\x88", 0, 0x6F523B}, /* Korean hangul */ + {"\x89", 0, 0x6F523C}, /* Korean hangul */ + {"\x98", 0, 0x6F523D}, /* Korean hangul */ + {"\x9D", 0, 0x6F523E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page422 = { + marc8r_9page422_flat, 0 +}; +/* PAGE 421 */ +struct yaz_iconv_trie_flat marc8r_9page421_flat[] = { + {"\x90", 0, 0x6F5231}, /* Korean hangul */ + {"\x91", 0, 0x6F5232}, /* Korean hangul */ + {"\x94", 0, 0x6F5233}, /* Korean hangul */ + {"\x97", 0, 0x6F5234}, /* Korean hangul */ + {"\x98", 0, 0x6F5235}, /* Korean hangul */ + {"\xA0", 0, 0x6F5236}, /* Korean hangul */ + {"\xA3", 0, 0x6F5237}, /* Korean hangul */ + {"\xA4", 0, 0x6F5238}, /* Korean hangul */ + {"\xA5", 0, 0x6F5239}, /* Korean hangul */ + {"\xAC", 0, 0x6F523A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page421 = { + marc8r_9page421_flat, 0 +}; +/* PAGE 420 */ +struct yaz_iconv_trie_flat marc8r_9page420_flat[] = { + {"\x80", 0, 0x6F5229}, /* Korean hangul */ + {"\x84", 0, 0x6F522A}, /* Korean hangul */ + {"\x8C", 0, 0x6F522B}, /* Korean hangul */ + {"\x8F", 0, 0x6F522C}, /* Korean hangul */ + {"\x90", 0, 0x6F522D}, /* Korean hangul */ + {"\x91", 0, 0x6F522E}, /* Korean hangul */ + {"\x98", 0, 0x6F522F}, /* Korean hangul */ + {"\xA8", 0, 0x6F5230}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page420 = { + marc8r_9page420_flat, 0 +}; +/* PAGE 419 */ +struct yaz_iconv_trie_flat marc8r_9page419_flat[] = { + {"\x84", 0, 0x6F516D}, /* Korean hangul */ + {"\x85", 0, 0x6F516E}, /* Korean hangul */ + {"\x88", 0, 0x6F516F}, /* Korean hangul */ + {"\x8B", 0, 0x6F5170}, /* Korean hangul */ + {"\x8C", 0, 0x6F5171}, /* Korean hangul */ + {"\x8E", 0, 0x6F5172}, /* Korean hangul */ + {"\x94", 0, 0x6F5173}, /* Korean hangul */ + {"\x95", 0, 0x6F5174}, /* Korean hangul */ + {"\x97", 0, 0x6F5175}, /* Korean hangul */ + {"\x99", 0, 0x6F5176}, /* Korean hangul */ + {"\x9A", 0, 0x6F5177}, /* Korean hangul */ + {"\x9B", 0, 0x6F5178}, /* Korean hangul */ + {"\xA0", 0, 0x6F517B}, /* Korean hangul */ + {"\xA1", 0, 0x6F517C}, /* Korean hangul */ + {"\xA4", 0, 0x6F517D}, /* Korean hangul */ + {"\xA8", 0, 0x6F517E}, /* Korean hangul */ + {"\xB0", 0, 0x6F5221}, /* Korean hangul */ + {"\xB1", 0, 0x6F5222}, /* Korean hangul */ + {"\xB3", 0, 0x6F5223}, /* Korean hangul */ + {"\xB4", 0, 0x6F5224}, /* Korean hangul */ + {"\xB5", 0, 0x6F5225}, /* Korean hangul */ + {"\xBB", 0, 0x6F5226}, /* Korean hangul */ + {"\xBC", 0, 0x6F5227}, /* Korean hangul */ + {"\xBD", 0, 0x6F5228}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page419 = { + marc8r_9page419_flat, 0 +}; +/* PAGE 418 */ +struct yaz_iconv_trie_flat marc8r_9page418_flat[] = { + {"\x8C", 0, 0x6F5166}, /* Korean hangul */ + {"\x8D", 0, 0x6F5167}, /* Korean hangul */ + {"\x90", 0, 0x6F5168}, /* Korean hangul */ + {"\x94", 0, 0x6F5169}, /* Korean hangul */ + {"\x9C", 0, 0x6F516A}, /* Korean hangul */ + {"\x9D", 0, 0x6F516B}, /* Korean hangul */ + {"\x9F", 0, 0x6F516C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page418 = { + marc8r_9page418_flat, 0 +}; +/* PAGE 417 */ +struct yaz_iconv_trie_flat marc8r_9page417_flat[] = { + {"\x94", 0, 0x6F5164}, /* Korean hangul */ + {"\xB0", 0, 0x6F5165}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page417 = { + marc8r_9page417_flat, 0 +}; +/* PAGE 416 */ +struct yaz_iconv_trie_flat marc8r_9page416_flat[] = { + {"\x80", 0, 0x6F5158}, /* Korean hangul */ + {"\x81", 0, 0x6F5159}, /* Korean hangul */ + {"\x84", 0, 0x6F515A}, /* Korean hangul */ + {"\x87", 0, 0x6F515B}, /* Korean hangul */ + {"\x88", 0, 0x6F515C}, /* Korean hangul */ + {"\x89", 0, 0x6F515D}, /* Korean hangul */ + {"\x90", 0, 0x6F515E}, /* Korean hangul */ + {"\x91", 0, 0x6F515F}, /* Korean hangul */ + {"\x93", 0, 0x6F5160}, /* Korean hangul */ + {"\x95", 0, 0x6F5161}, /* Korean hangul */ + {"\x99", 0, 0x6F5162}, /* Korean hangul */ + {"\x9C", 0, 0x6F5163}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page416 = { + marc8r_9page416_flat, 0 +}; +/* PAGE 415 */ +struct yaz_iconv_trie_flat marc8r_9page415_flat[] = { + {"\x88", 0, 0x6F5151}, /* Korean hangul */ + {"\x89", 0, 0x6F5152}, /* Korean hangul */ + {"\x8C", 0, 0x6F5153}, /* Korean hangul */ + {"\x90", 0, 0x6F5154}, /* Korean hangul */ + {"\x98", 0, 0x6F5155}, /* Korean hangul */ + {"\x99", 0, 0x6F5156}, /* Korean hangul */ + {"\xA4", 0, 0x6F5157}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page415 = { + marc8r_9page415_flat, 0 +}; +/* PAGE 414 */ +struct yaz_iconv_trie_flat marc8r_9page414_flat[] = { + {"\x84", 0, 0x6F514A}, /* Korean hangul */ + {"\x85", 0, 0x6F514B}, /* Korean hangul */ + {"\x87", 0, 0x6F514C}, /* Korean hangul */ + {"\x89", 0, 0x6F514D}, /* Korean hangul */ + {"\x90", 0, 0x6F514E}, /* Korean hangul */ + {"\x94", 0, 0x6F514F}, /* Korean hangul */ + {"\xA4", 0, 0x6F5150}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page414 = { + marc8r_9page414_flat, 0 +}; +/* PAGE 413 */ +struct yaz_iconv_trie_flat marc8r_9page413_flat[] = { + {"\x80", 0, 0x6F513C}, /* Korean hangul */ + {"\x84", 0, 0x6F513D}, /* Korean hangul */ + {"\x8C", 0, 0x6F513E}, /* Korean hangul */ + {"\x8D", 0, 0x6F513F}, /* Korean hangul */ + {"\x8F", 0, 0x6F5140}, /* Korean hangul */ + {"\x90", 0, 0x6F5141}, /* Korean hangul */ + {"\x91", 0, 0x6F5142}, /* Korean hangul */ + {"\x92", 0, 0x6F5143}, /* Korean hangul */ + {"\x95", 0, 0x6F5144}, /* Korean hangul */ + {"\xB4", 0, 0x6F5145}, /* Korean hangul */ + {"\xB5", 0, 0x6F5146}, /* Korean hangul */ + {"\xB6", 0, 0x6F5147}, /* Korean hangul */ + {"\xB8", 0, 0x6F5148}, /* Korean hangul */ + {"\xBC", 0, 0x6F5149}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page413 = { + marc8r_9page413_flat, 0 +}; +/* PAGE 412 */ +struct yaz_iconv_trie_flat marc8r_9page412_flat[] = { + {"\x84", 0, 0x6F5126}, /* Korean hangul */ + {"\x85", 0, 0x6F5127}, /* Korean hangul */ + {"\x88", 0, 0x6F5128}, /* Korean hangul */ + {"\x8B", 0, 0x6F5129}, /* Korean hangul */ + {"\x8C", 0, 0x6F512A}, /* Korean hangul */ + {"\x94", 0, 0x6F512B}, /* Korean hangul */ + {"\x95", 0, 0x6F512C}, /* Korean hangul */ + {"\x97", 0, 0x6F512D}, /* Korean hangul */ + {"\x98", 0, 0x6F512E}, /* Korean hangul */ + {"\x99", 0, 0x6F512F}, /* Korean hangul */ + {"\x9A", 0, 0x6F5130}, /* Korean hangul */ + {"\xA0", 0, 0x6F5131}, /* Korean hangul */ + {"\xA1", 0, 0x6F5132}, /* Korean hangul */ + {"\xA4", 0, 0x6F5133}, /* Korean hangul */ + {"\xA7", 0, 0x6F5134}, /* Korean hangul */ + {"\xA8", 0, 0x6F5135}, /* Korean hangul */ + {"\xB0", 0, 0x6F5136}, /* Korean hangul */ + {"\xB1", 0, 0x6F5137}, /* Korean hangul */ + {"\xB3", 0, 0x6F5138}, /* Korean hangul */ + {"\xB5", 0, 0x6F5139}, /* Korean hangul */ + {"\xBC", 0, 0x6F513A}, /* Korean hangul */ + {"\xBD", 0, 0x6F513B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page412 = { + marc8r_9page412_flat, 0 +}; +/* PAGE 411 */ +struct yaz_iconv_trie_flat marc8r_9page411_flat[] = { + {"\x80", 0, 0x6F5121}, /* Korean hangul */ + {"\x81", 0, 0x6F5122}, /* Korean hangul */ + {"\x83", 0, 0x6F5123}, /* Korean hangul */ + {"\x84", 0, 0x6F5124}, /* Korean hangul */ + {"\x85", 0, 0x6F5125}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page411 = { + marc8r_9page411_flat, 0 +}; +/* PAGE 410 */ +struct yaz_iconv_trie_flat marc8r_9page410_flat[] = { + {"\x80", 0, 0x6F5063}, /* Korean hangul */ + {"\x88", 0, 0x6F5064}, /* Korean hangul */ + {"\x89", 0, 0x6F5065}, /* Korean hangul */ + {"\x8B", 0, 0x6F5066}, /* Korean hangul */ + {"\x8D", 0, 0x6F5068}, /* Korean hangul */ + {"\x8F", 0, 0x6F5069}, /* Korean hangul */ + {"\x91", 0, 0x6F506A}, /* Korean hangul */ + {"\x94", 0, 0x6F506D}, /* Korean hangul */ + {"\x95", 0, 0x6F506E}, /* Korean hangul */ + {"\x96", 0, 0x6F506F}, /* Korean hangul */ + {"\x98", 0, 0x6F5070}, /* Korean hangul */ + {"\x9B", 0, 0x6F5071}, /* Korean hangul */ + {"\x9C", 0, 0x6F5072}, /* Korean hangul */ + {"\x9D", 0, 0x6F5073}, /* Korean hangul */ + {"\x9F", 0, 0x6F5074}, /* Korean hangul */ + {"\xA4", 0, 0x6F5075}, /* Korean hangul */ + {"\xA5", 0, 0x6F5076}, /* Korean hangul */ + {"\xA7", 0, 0x6F5077}, /* Korean hangul */ + {"\xA9", 0, 0x6F5078}, /* Korean hangul */ + {"\xAD", 0, 0x6F5079}, /* Korean hangul */ + {"\xB0", 0, 0x6F507A}, /* Korean hangul */ + {"\xB1", 0, 0x6F507B}, /* Korean hangul */ + {"\xB4", 0, 0x6F507C}, /* Korean hangul */ + {"\xB7", 0, 0x6F507D}, /* Korean hangul */ + {"\xB8", 0, 0x6F507E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page410 = { + marc8r_9page410_flat, 0 +}; +/* PAGE 409 */ +struct yaz_iconv_trie_flat marc8r_9page409_flat[] = { + {"\x80", 0, 0x6F505B}, /* Korean hangul */ + {"\x84", 0, 0x6F505C}, /* Korean hangul */ + {"\x88", 0, 0x6F505D}, /* Korean hangul */ + {"\x90", 0, 0x6F505E}, /* Korean hangul */ + {"\xB8", 0, 0x6F505F}, /* Korean hangul */ + {"\xB9", 0, 0x6F5060}, /* Korean hangul */ + {"\xBC", 0, 0x6F5061}, /* Korean hangul */ + {"\xBF", 0, 0x6F5062}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page409 = { + marc8r_9page409_flat, 0 +}; +/* PAGE 408 */ +struct yaz_iconv_trie_flat marc8r_9page408_flat[] = { + {"\x88", 0, 0x6F5058}, /* Korean hangul */ + {"\x8C", 0, 0x6F5059}, /* Korean hangul */ + {"\xA4", 0, 0x6F505A}, /* Korean hangul */ + {"\xB4", 0, 0x6F506B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page408 = { + marc8r_9page408_flat, 0 +}; +/* PAGE 407 */ +struct yaz_iconv_trie_flat marc8r_9page407_flat[] = { + {"\x84", 0, 0x6F504E}, /* Korean hangul */ + {"\x87", 0, 0x6F504F}, /* Korean hangul */ + {"\x89", 0, 0x6F5050}, /* Korean hangul */ + {"\x8D", 0, 0x6F5051}, /* Korean hangul */ + {"\x8F", 0, 0x6F5052}, /* Korean hangul */ + {"\x90", 0, 0x6F5053}, /* Korean hangul */ + {"\x94", 0, 0x6F5054}, /* Korean hangul */ + {"\x98", 0, 0x6F5055}, /* Korean hangul */ + {"\xA1", 0, 0x6F5056}, /* Korean hangul */ + {"\xA3", 0, 0x6F5057}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page407 = { + marc8r_9page407_flat, 0 +}; +/* PAGE 406 */ +struct yaz_iconv_trie_flat marc8r_9page406_flat[] = { + {"\x8F", 0, 0x6F5045}, /* Korean hangul */ + {"\x98", 0, 0x6F5046}, /* Korean hangul */ + {"\xB4", 0, 0x6F5047}, /* Korean hangul */ + {"\xB5", 0, 0x6F5048}, /* Korean hangul */ + {"\xB6", 0, 0x6F5049}, /* Korean hangul */ + {"\xB8", 0, 0x6F504A}, /* Korean hangul */ + {"\xBB", 0, 0x6F504B}, /* Korean hangul */ + {"\xBC", 0, 0x6F504C}, /* Korean hangul */ + {"\xBD", 0, 0x6F504D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page406 = { + marc8r_9page406_flat, 0 +}; +/* PAGE 405 */ +struct yaz_iconv_trie_flat marc8r_9page405_flat[] = { + {"\x83", 0, 0x6F5043}, /* Korean hangul */ + {"\xBC", 0, 0x6F5044}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page405 = { + marc8r_9page405_flat, 0 +}; +/* PAGE 404 */ +struct yaz_iconv_trie_flat marc8r_9page404_flat[] = { + {"\x83", 0, 0x6F5036}, /* Korean hangul */ + {"\x84", 0, 0x6F5037}, /* Korean hangul */ + {"\x85", 0, 0x6F5038}, /* Korean hangul */ + {"\x87", 0, 0x6F5039}, /* Korean hangul */ + {"\xA8", 0, 0x6F503A}, /* Korean hangul */ + {"\xA9", 0, 0x6F503B}, /* Korean hangul */ + {"\xAB", 0, 0x6F503C}, /* Korean hangul */ + {"\xAC", 0, 0x6F503D}, /* Korean hangul */ + {"\xB0", 0, 0x6F503E}, /* Korean hangul */ + {"\xB8", 0, 0x6F503F}, /* Korean hangul */ + {"\xB9", 0, 0x6F5040}, /* Korean hangul */ + {"\xBB", 0, 0x6F5041}, /* Korean hangul */ + {"\xBD", 0, 0x6F5042}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page404 = { + marc8r_9page404_flat, 0 +}; +/* PAGE 403 */ +struct yaz_iconv_trie_flat marc8r_9page403_flat[] = { + {"\x80", 0, 0x6F5024}, /* Korean hangul */ + {"\x88", 0, 0x6F5025}, /* Korean hangul */ + {"\x89", 0, 0x6F5026}, /* Korean hangul */ + {"\x8B", 0, 0x6F5027}, /* Korean hangul */ + {"\x8D", 0, 0x6F5028}, /* Korean hangul */ + {"\x8E", 0, 0x6F5029}, /* Korean hangul */ + {"\x93", 0, 0x6F502A}, /* Korean hangul */ + {"\x94", 0, 0x6F502B}, /* Korean hangul */ + {"\x95", 0, 0x6F502C}, /* Korean hangul */ + {"\x98", 0, 0x6F502D}, /* Korean hangul */ + {"\x9C", 0, 0x6F502E}, /* Korean hangul */ + {"\xA4", 0, 0x6F502F}, /* Korean hangul */ + {"\xA5", 0, 0x6F5030}, /* Korean hangul */ + {"\xA7", 0, 0x6F5031}, /* Korean hangul */ + {"\xB0", 0, 0x6F5032}, /* Korean hangul */ + {"\xB1", 0, 0x6F5033}, /* Korean hangul */ + {"\xB4", 0, 0x6F5034}, /* Korean hangul */ + {"\xB8", 0, 0x6F5035}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page403 = { + marc8r_9page403_flat, 0 +}; +/* PAGE 402 */ +struct yaz_iconv_trie_flat marc8r_9page402_flat[] = { + {"\x80", 0, 0x6F4F7E}, /* Korean hangul */ + {"\xB8", 0, 0x6F5021}, /* Korean hangul */ + {"\xB9", 0, 0x6F5022}, /* Korean hangul */ + {"\xBC", 0, 0x6F5023}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page402 = { + marc8r_9page402_flat, 0 +}; +/* PAGE 401 */ +struct yaz_iconv_trie_flat marc8r_9page401_flat[] = { + {"\x81", 0, 0x6F4F63}, /* Korean hangul */ + {"\x88", 0, 0x6F4F66}, /* Korean hangul */ + {"\x89", 0, 0x6F4F67}, /* Korean hangul */ + {"\x8C", 0, 0x6F4F68}, /* Korean hangul */ + {"\x8E", 0, 0x6F4F69}, /* Korean hangul */ + {"\x8F", 0, 0x6F4F6A}, /* Korean hangul */ + {"\x90", 0, 0x6F4F6B}, /* Korean hangul */ + {"\x91", 0, 0x6F4F6C}, /* Korean hangul */ + {"\x98", 0, 0x6F4F6D}, /* Korean hangul */ + {"\x99", 0, 0x6F4F6E}, /* Korean hangul */ + {"\x9B", 0, 0x6F4F6F}, /* Korean hangul */ + {"\x9D", 0, 0x6F4F70}, /* Korean hangul */ + {"\x9E", 0, 0x6F4F71}, /* Korean hangul */ + {"\xA1", 0, 0x6F4F72}, /* Korean hangul */ + {"\xA3", 0, 0x6F4F73}, /* Korean hangul */ + {"\xA4", 0, 0x6F4F74}, /* Korean hangul */ + {"\xA5", 0, 0x6F4F75}, /* Korean hangul */ + {"\xA8", 0, 0x6F4F76}, /* Korean hangul */ + {"\xAC", 0, 0x6F4F77}, /* Korean hangul */ + {"\xB4", 0, 0x6F4F78}, /* Korean hangul */ + {"\xB5", 0, 0x6F4F79}, /* Korean hangul */ + {"\xB7", 0, 0x6F4F7A}, /* Korean hangul */ + {"\xB8", 0, 0x6F4F7B}, /* Korean hangul */ + {"\xB9", 0, 0x6F4F7C}, /* Korean hangul */ + {"\xBA", 0, 0x6F4F7D}, /* Korean hangul */ + {"\x84", 0, 0x6F7733}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page401 = { + marc8r_9page401_flat, 0 +}; +/* PAGE 400 */ +struct yaz_iconv_trie_flat marc8r_9page400_flat[] = { + {"\x84", 0, 0x6F4F57}, /* Korean hangul */ + {"\x85", 0, 0x6F4F58}, /* Korean hangul */ + {"\x87", 0, 0x6F4F59}, /* Korean hangul */ + {"\x89", 0, 0x6F4F5A}, /* Korean hangul */ + {"\x8E", 0, 0x6F4F5B}, /* Korean hangul */ + {"\xAC", 0, 0x6F4F5C}, /* Korean hangul */ + {"\xAD", 0, 0x6F4F5D}, /* Korean hangul */ + {"\xB0", 0, 0x6F4F5E}, /* Korean hangul */ + {"\xB4", 0, 0x6F4F5F}, /* Korean hangul */ + {"\xBC", 0, 0x6F4F60}, /* Korean hangul */ + {"\xBD", 0, 0x6F4F61}, /* Korean hangul */ + {"\xBF", 0, 0x6F4F62}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page400 = { + marc8r_9page400_flat, 0 +}; +/* PAGE 399 */ +struct yaz_iconv_trie_flat marc8r_9page399_flat[] = { + {"\x98", 0, 0x6F4F4D}, /* Korean hangul */ + {"\x99", 0, 0x6F4F4E}, /* Korean hangul */ + {"\x9C", 0, 0x6F4F4F}, /* Korean hangul */ + {"\xA0", 0, 0x6F4F50}, /* Korean hangul */ + {"\xA8", 0, 0x6F4F51}, /* Korean hangul */ + {"\xAD", 0, 0x6F4F52}, /* Korean hangul */ + {"\xB4", 0, 0x6F4F53}, /* Korean hangul */ + {"\xB5", 0, 0x6F4F54}, /* Korean hangul */ + {"\xB8", 0, 0x6F4F55}, /* Korean hangul */ + {"\xBC", 0, 0x6F4F56}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page399 = { + marc8r_9page399_flat, 0 +}; +/* PAGE 398 */ +struct yaz_iconv_trie_flat marc8r_9page398_flat[] = { + {"\x84", 0, 0x6F4F4B}, /* Korean hangul */ + {"\xBC", 0, 0x6F4F4C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page398 = { + marc8r_9page398_flat, 0 +}; +/* PAGE 397 */ +struct yaz_iconv_trie_flat marc8r_9page397_flat[] = { + {"\x8C", 0, 0x6F4F41}, /* Korean hangul */ + {"\xA1", 0, 0x6F4F42}, /* Korean hangul */ + {"\xA8", 0, 0x6F4F43}, /* Korean hangul */ + {"\xA9", 0, 0x6F4F44}, /* Korean hangul */ + {"\xAC", 0, 0x6F4F45}, /* Korean hangul */ + {"\xB0", 0, 0x6F4F46}, /* Korean hangul */ + {"\xB8", 0, 0x6F4F47}, /* Korean hangul */ + {"\xB9", 0, 0x6F4F48}, /* Korean hangul */ + {"\xBB", 0, 0x6F4F49}, /* Korean hangul */ + {"\xBD", 0, 0x6F4F4A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page397 = { + marc8r_9page397_flat, 0 +}; +/* PAGE 396 */ +struct yaz_iconv_trie_flat marc8r_9page396_flat[] = { + {"\xB0", 0, 0x6F4F40}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page396 = { + marc8r_9page396_flat, 0 +}; +/* PAGE 395 */ +struct yaz_iconv_trie_flat marc8r_9page395_flat[] = { + {"\x80", 0, 0x6F4F37}, /* Korean hangul */ + {"\x9C", 0, 0x6F4F38}, /* Korean hangul */ + {"\x9D", 0, 0x6F4F39}, /* Korean hangul */ + {"\xA0", 0, 0x6F4F3A}, /* Korean hangul */ + {"\xA4", 0, 0x6F4F3B}, /* Korean hangul */ + {"\xAC", 0, 0x6F4F3C}, /* Korean hangul */ + {"\xAD", 0, 0x6F4F3D}, /* Korean hangul */ + {"\xAF", 0, 0x6F4F3E}, /* Korean hangul */ + {"\xB1", 0, 0x6F4F3F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page395 = { + marc8r_9page395_flat, 0 +}; +/* PAGE 394 */ +struct yaz_iconv_trie_flat marc8r_9page394_flat[] = { + {"\x80", 0, 0x6F4F23}, /* Korean hangul */ + {"\x81", 0, 0x6F4F24}, /* Korean hangul */ + {"\x87", 0, 0x6F4F25}, /* Korean hangul */ + {"\x88", 0, 0x6F4F26}, /* Korean hangul */ + {"\x89", 0, 0x6F4F27}, /* Korean hangul */ + {"\x8C", 0, 0x6F4F28}, /* Korean hangul */ + {"\x90", 0, 0x6F4F29}, /* Korean hangul */ + {"\x98", 0, 0x6F4F2A}, /* Korean hangul */ + {"\x99", 0, 0x6F4F2B}, /* Korean hangul */ + {"\x9B", 0, 0x6F4F2C}, /* Korean hangul */ + {"\x9D", 0, 0x6F4F2D}, /* Korean hangul */ + {"\xA4", 0, 0x6F4F2E}, /* Korean hangul */ + {"\xA5", 0, 0x6F4F2F}, /* Korean hangul */ + {"\xA8", 0, 0x6F4F30}, /* Korean hangul */ + {"\xAC", 0, 0x6F4F31}, /* Korean hangul */ + {"\xB4", 0, 0x6F4F32}, /* Korean hangul */ + {"\xB5", 0, 0x6F4F33}, /* Korean hangul */ + {"\xB7", 0, 0x6F4F34}, /* Korean hangul */ + {"\xB8", 0, 0x6F4F35}, /* Korean hangul */ + {"\xB9", 0, 0x6F4F36}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page394 = { + marc8r_9page394_flat, 0 +}; +/* PAGE 393 */ +struct yaz_iconv_trie_flat marc8r_9page393_flat[] = { + {"\x89", 0, 0x6F4E79}, /* Korean hangul */ + {"\xAC", 0, 0x6F4E7A}, /* Korean hangul */ + {"\xAD", 0, 0x6F4E7B}, /* Korean hangul */ + {"\xB0", 0, 0x6F4E7C}, /* Korean hangul */ + {"\xB4", 0, 0x6F4E7D}, /* Korean hangul */ + {"\xBC", 0, 0x6F4E7E}, /* Korean hangul */ + {"\xBD", 0, 0x6F4F21}, /* Korean hangul */ + {"\xBF", 0, 0x6F4F22}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page393 = { + marc8r_9page393_flat, 0 +}; +/* PAGE 392 */ +struct yaz_iconv_trie_flat marc8r_9page392_flat[] = { + {"\x80", 0, 0x6F4E66}, /* Korean hangul */ + {"\x84", 0, 0x6F4E67}, /* Korean hangul */ + {"\x8C", 0, 0x6F4E68}, /* Korean hangul */ + {"\x8D", 0, 0x6F4E69}, /* Korean hangul */ + {"\x8F", 0, 0x6F4E6A}, /* Korean hangul */ + {"\x90", 0, 0x6F4E6B}, /* Korean hangul */ + {"\x91", 0, 0x6F4E6C}, /* Korean hangul */ + {"\x97", 0, 0x6F4E6D}, /* Korean hangul */ + {"\x98", 0, 0x6F4E6E}, /* Korean hangul */ + {"\x99", 0, 0x6F4E6F}, /* Korean hangul */ + {"\x9C", 0, 0x6F4E70}, /* Korean hangul */ + {"\xA0", 0, 0x6F4E71}, /* Korean hangul */ + {"\xA8", 0, 0x6F4E72}, /* Korean hangul */ + {"\xA9", 0, 0x6F4E73}, /* Korean hangul */ + {"\xAB", 0, 0x6F4E74}, /* Korean hangul */ + {"\xAC", 0, 0x6F4E75}, /* Korean hangul */ + {"\xAD", 0, 0x6F4E76}, /* Korean hangul */ + {"\xB4", 0, 0x6F4E77}, /* Korean hangul */ + {"\xB5", 0, 0x6F4E78}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page392 = { + marc8r_9page392_flat, 0 +}; +/* PAGE 391 */ +struct yaz_iconv_trie_flat marc8r_9page391_flat[] = { + {"\x84", 0, 0x6F4E5A}, /* Korean hangul */ + {"\x88", 0, 0x6F4E5B}, /* Korean hangul */ + {"\xA0", 0, 0x6F4E5C}, /* Korean hangul */ + {"\xA4", 0, 0x6F4E5D}, /* Korean hangul */ + {"\xA8", 0, 0x6F4E5E}, /* Korean hangul */ + {"\xB0", 0, 0x6F4E5F}, /* Korean hangul */ + {"\xB1", 0, 0x6F4E60}, /* Korean hangul */ + {"\xB5", 0, 0x6F4E61}, /* Korean hangul */ + {"\xBC", 0, 0x6F4E64}, /* Korean hangul */ + {"\xBD", 0, 0x6F4E65}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page391 = { + marc8r_9page391_flat, 0 +}; +/* PAGE 390 */ +struct yaz_iconv_trie_flat marc8r_9page390_flat[] = { + {"\x80", 0, 0x6F4E50}, /* Korean hangul */ + {"\x81", 0, 0x6F4E51}, /* Korean hangul */ + {"\xA8", 0, 0x6F4E52}, /* Korean hangul */ + {"\xA9", 0, 0x6F4E53}, /* Korean hangul */ + {"\xAC", 0, 0x6F4E54}, /* Korean hangul */ + {"\xAF", 0, 0x6F4E55}, /* Korean hangul */ + {"\xB0", 0, 0x6F4E56}, /* Korean hangul */ + {"\xB8", 0, 0x6F4E57}, /* Korean hangul */ + {"\xB9", 0, 0x6F4E58}, /* Korean hangul */ + {"\xBB", 0, 0x6F4E59}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page390 = { + marc8r_9page390_flat, 0 +}; +/* PAGE 389 */ +struct yaz_iconv_trie_flat marc8r_9page389_flat[] = { + {"\xB0", 0, 0x6F4E4D}, /* Korean hangul */ + {"\xB4", 0, 0x6F4E4E}, /* Korean hangul */ + {"\xB8", 0, 0x6F4E4F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page389 = { + marc8r_9page389_flat, 0 +}; +/* PAGE 388 */ +struct yaz_iconv_trie_flat marc8r_9page388_flat[] = { + {"\x9C", 0, 0x6F4E47}, /* Korean hangul */ + {"\x9D", 0, 0x6F4E48}, /* Korean hangul */ + {"\xA4", 0, 0x6F4E49}, /* Korean hangul */ + {"\xAB", 0, 0x6F4E4A}, /* Korean hangul */ + {"\xAC", 0, 0x6F4E4B}, /* Korean hangul */ + {"\xB1", 0, 0x6F4E4C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page388 = { + marc8r_9page388_flat, 0 +}; +/* PAGE 387 */ +struct yaz_iconv_trie_flat marc8r_9page387_flat[] = { + {"\xA4", 0, 0x6F4E46}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page387 = { + marc8r_9page387_flat, 0 +}; +/* PAGE 386 */ +struct yaz_iconv_trie_flat marc8r_9page386_flat[] = { + {"\x90", 0, 0x6F4E41}, /* Korean hangul */ + {"\x91", 0, 0x6F4E42}, /* Korean hangul */ + {"\x94", 0, 0x6F4E43}, /* Korean hangul */ + {"\x98", 0, 0x6F4E44}, /* Korean hangul */ + {"\xA5", 0, 0x6F4E45}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page386 = { + marc8r_9page386_flat, 0 +}; +/* PAGE 385 */ +struct yaz_iconv_trie_flat marc8r_9page385_flat[] = { + {"\x80", 0, 0x6F4E3C}, /* Korean hangul */ + {"\x84", 0, 0x6F4E3D}, /* Korean hangul */ + {"\x8C", 0, 0x6F4E3E}, /* Korean hangul */ + {"\x8F", 0, 0x6F4E3F}, /* Korean hangul */ + {"\x91", 0, 0x6F4E40}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page385 = { + marc8r_9page385_flat, 0 +}; +/* PAGE 384 */ +struct yaz_iconv_trie_flat marc8r_9page384_flat[] = { + {"\xA0", 0, 0x6F4E30}, /* Korean hangul */ + {"\xA1", 0, 0x6F4E31}, /* Korean hangul */ + {"\xA4", 0, 0x6F4E32}, /* Korean hangul */ + {"\xA8", 0, 0x6F4E33}, /* Korean hangul */ + {"\xAB", 0, 0x6F4E34}, /* Korean hangul */ + {"\xB0", 0, 0x6F4E35}, /* Korean hangul */ + {"\xB1", 0, 0x6F4E36}, /* Korean hangul */ + {"\xB3", 0, 0x6F4E37}, /* Korean hangul */ + {"\xB4", 0, 0x6F4E38}, /* Korean hangul */ + {"\xB5", 0, 0x6F4E39}, /* Korean hangul */ + {"\xBB", 0, 0x6F4E3A}, /* Korean hangul */ + {"\xBC", 0, 0x6F4E3B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page384 = { + marc8r_9page384_flat, 0 +}; +/* PAGE 383 */ +struct yaz_iconv_trie_flat marc8r_9page383_flat[] = { + {"\x80", 0, 0x6F4E21}, /* Korean hangul */ + {"\x81", 0, 0x6F4E22}, /* Korean hangul */ + {"\x83", 0, 0x6F4E23}, /* Korean hangul */ + {"\x84", 0, 0x6F4E24}, /* Korean hangul */ + {"\x85", 0, 0x6F4E25}, /* Korean hangul */ + {"\x8B", 0, 0x6F4E26}, /* Korean hangul */ + {"\x8C", 0, 0x6F4E27}, /* Korean hangul */ + {"\x8D", 0, 0x6F4E28}, /* Korean hangul */ + {"\x90", 0, 0x6F4E29}, /* Korean hangul */ + {"\x94", 0, 0x6F4E2A}, /* Korean hangul */ + {"\x9C", 0, 0x6F4E2B}, /* Korean hangul */ + {"\x9D", 0, 0x6F4E2C}, /* Korean hangul */ + {"\x9F", 0, 0x6F4E2D}, /* Korean hangul */ + {"\xA0", 0, 0x6F4E2E}, /* Korean hangul */ + {"\xA1", 0, 0x6F4E2F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page383 = { + marc8r_9page383_flat, 0 +}; +/* PAGE 382 */ +struct yaz_iconv_trie_flat marc8r_9page382_flat[] = { + {"\x94", 0, 0x6F4D6B}, /* Korean hangul */ + {"\x95", 0, 0x6F4D6C}, /* Korean hangul */ + {"\x98", 0, 0x6F4D6D}, /* Korean hangul */ + {"\x9B", 0, 0x6F4D6E}, /* Korean hangul */ + {"\x9C", 0, 0x6F4D6F}, /* Korean hangul */ + {"\xA4", 0, 0x6F4D70}, /* Korean hangul */ + {"\xA5", 0, 0x6F4D71}, /* Korean hangul */ + {"\xA7", 0, 0x6F4D72}, /* Korean hangul */ + {"\xA8", 0, 0x6F4D73}, /* Korean hangul */ + {"\xA9", 0, 0x6F4D74}, /* Korean hangul */ + {"\xAA", 0, 0x6F4D75}, /* Korean hangul */ + {"\xB0", 0, 0x6F4D78}, /* Korean hangul */ + {"\xB1", 0, 0x6F4D79}, /* Korean hangul */ + {"\xB2", 0, 0x6F4D7A}, /* Korean hangul */ + {"\xB4", 0, 0x6F4D7B}, /* Korean hangul */ + {"\xB7", 0, 0x6F4D7C}, /* Korean hangul */ + {"\xB8", 0, 0x6F4D7D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page382 = { + marc8r_9page382_flat, 0 +}; +/* PAGE 381 */ +struct yaz_iconv_trie_flat marc8r_9page381_flat[] = { + {"\x80", 0, 0x6F4D60}, /* Korean hangul */ + {"\x90", 0, 0x6F4D61}, /* Korean hangul */ + {"\x9C", 0, 0x6F4D62}, /* Korean hangul */ + {"\x9D", 0, 0x6F4D63}, /* Korean hangul */ + {"\xA0", 0, 0x6F4D64}, /* Korean hangul */ + {"\xA3", 0, 0x6F4D65}, /* Korean hangul */ + {"\xA4", 0, 0x6F4D66}, /* Korean hangul */ + {"\xAC", 0, 0x6F4D67}, /* Korean hangul */ + {"\xAD", 0, 0x6F4D68}, /* Korean hangul */ + {"\xAF", 0, 0x6F4D69}, /* Korean hangul */ + {"\xB1", 0, 0x6F4D6A}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page381 = { + marc8r_9page381_flat, 0 +}; +/* PAGE 380 */ +struct yaz_iconv_trie_flat marc8r_9page380_flat[] = { + {"\x80", 0, 0x6F4D5C}, /* Korean hangul */ + {"\x88", 0, 0x6F4D5D}, /* Korean hangul */ + {"\xA4", 0, 0x6F4D5E}, /* Korean hangul */ + {"\xB7", 0, 0x6F4D5F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page380 = { + marc8r_9page380_flat, 0 +}; +/* PAGE 379 */ +struct yaz_iconv_trie_flat marc8r_9page379_flat[] = { + {"\x90", 0, 0x6F4D53}, /* Korean hangul */ + {"\x91", 0, 0x6F4D54}, /* Korean hangul */ + {"\x94", 0, 0x6F4D55}, /* Korean hangul */ + {"\x98", 0, 0x6F4D56}, /* Korean hangul */ + {"\xA0", 0, 0x6F4D57}, /* Korean hangul */ + {"\xA1", 0, 0x6F4D58}, /* Korean hangul */ + {"\xA3", 0, 0x6F4D59}, /* Korean hangul */ + {"\xA5", 0, 0x6F4D5A}, /* Korean hangul */ + {"\xAC", 0, 0x6F4D5B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page379 = { + marc8r_9page379_flat, 0 +}; +/* PAGE 378 */ +struct yaz_iconv_trie_flat marc8r_9page378_flat[] = { + {"\x80", 0, 0x6F4D4A}, /* Korean hangul */ + {"\x90", 0, 0x6F4D4B}, /* Korean hangul */ + {"\x98", 0, 0x6F4D4C}, /* Korean hangul */ + {"\x9C", 0, 0x6F4D4D}, /* Korean hangul */ + {"\xA0", 0, 0x6F4D4E}, /* Korean hangul */ + {"\xA8", 0, 0x6F4D4F}, /* Korean hangul */ + {"\xA9", 0, 0x6F4D50}, /* Korean hangul */ + {"\xAB", 0, 0x6F4D51}, /* Korean hangul */ + {"\xAC", 0, 0x6F4D52}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page378 = { + marc8r_9page378_flat, 0 +}; +/* PAGE 377 */ +struct yaz_iconv_trie_flat marc8r_9page377_flat[] = { + {"\x84", 0, 0x6F4D3E}, /* Korean hangul */ + {"\x85", 0, 0x6F4D3F}, /* Korean hangul */ + {"\x88", 0, 0x6F4D40}, /* Korean hangul */ + {"\x8B", 0, 0x6F4D41}, /* Korean hangul */ + {"\x8C", 0, 0x6F4D42}, /* Korean hangul */ + {"\x90", 0, 0x6F4D43}, /* Korean hangul */ + {"\x94", 0, 0x6F4D44}, /* Korean hangul */ + {"\x95", 0, 0x6F4D45}, /* Korean hangul */ + {"\x97", 0, 0x6F4D46}, /* Korean hangul */ + {"\x99", 0, 0x6F4D47}, /* Korean hangul */ + {"\x9B", 0, 0x6F4D48}, /* Korean hangul */ + {"\xBC", 0, 0x6F4D49}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page377 = { + marc8r_9page377_flat, 0 +}; +/* PAGE 376 */ +struct yaz_iconv_trie_flat marc8r_9page376_flat[] = { + {"\x80", 0, 0x6F4D3A}, /* Korean hangul */ + {"\x83", 0, 0x6F4D3B}, /* Korean hangul */ + {"\x85", 0, 0x6F4D3C}, /* Korean hangul */ + {"\x8C", 0, 0x6F4D3D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page376 = { + marc8r_9page376_flat, 0 +}; +/* PAGE 375 */ +struct yaz_iconv_trie_flat marc8r_9page375_flat[] = { + {"\x94", 0, 0x6F4D28}, /* Korean hangul */ + {"\x95", 0, 0x6F4D29}, /* Korean hangul */ + {"\x98", 0, 0x6F4D2A}, /* Korean hangul */ + {"\x9B", 0, 0x6F4D2B}, /* Korean hangul */ + {"\x9C", 0, 0x6F4D2C}, /* Korean hangul */ + {"\x9F", 0, 0x6F4D2D}, /* Korean hangul */ + {"\xA4", 0, 0x6F4D2E}, /* Korean hangul */ + {"\xA5", 0, 0x6F4D2F}, /* Korean hangul */ + {"\xA7", 0, 0x6F4D30}, /* Korean hangul */ + {"\xA8", 0, 0x6F4D31}, /* Korean hangul */ + {"\xA9", 0, 0x6F4D32}, /* Korean hangul */ + {"\xAA", 0, 0x6F4D33}, /* Korean hangul */ + {"\xAB", 0, 0x6F4D34}, /* Korean hangul */ + {"\xAE", 0, 0x6F4D35}, /* Korean hangul */ + {"\xB0", 0, 0x6F4D36}, /* Korean hangul */ + {"\xB1", 0, 0x6F4D37}, /* Korean hangul */ + {"\xB4", 0, 0x6F4D38}, /* Korean hangul */ + {"\xB8", 0, 0x6F4D39}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page375 = { + marc8r_9page375_flat, 0 +}; +/* PAGE 374 */ +struct yaz_iconv_trie_flat marc8r_9page374_flat[] = { + {"\x80", 0, 0x6F4C7D}, /* Korean hangul */ + {"\x81", 0, 0x6F4C7E}, /* Korean hangul */ + {"\x84", 0, 0x6F4D21}, /* Korean hangul */ + {"\x88", 0, 0x6F4D22}, /* Korean hangul */ + {"\x90", 0, 0x6F4D23}, /* Korean hangul */ + {"\x91", 0, 0x6F4D24}, /* Korean hangul */ + {"\x93", 0, 0x6F4D25}, /* Korean hangul */ + {"\x94", 0, 0x6F4D26}, /* Korean hangul */ + {"\x95", 0, 0x6F4D27}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page374 = { + marc8r_9page374_flat, 0 +}; +/* PAGE 373 */ +struct yaz_iconv_trie_flat marc8r_9page373_flat[] = { + {"\x88", 0, 0x6F4C62}, /* Korean hangul */ + {"\x89", 0, 0x6F4C63}, /* Korean hangul */ + {"\x8C", 0, 0x6F4C64}, /* Korean hangul */ + {"\x90", 0, 0x6F4C65}, /* Korean hangul */ + {"\x98", 0, 0x6F4C66}, /* Korean hangul */ + {"\x99", 0, 0x6F4C67}, /* Korean hangul */ + {"\x9B", 0, 0x6F4C68}, /* Korean hangul */ + {"\x9D", 0, 0x6F4C69}, /* Korean hangul */ + {"\xA2", 0, 0x6F4C6A}, /* Korean hangul */ + {"\xA4", 0, 0x6F4C6D}, /* Korean hangul */ + {"\xA5", 0, 0x6F4C6E}, /* Korean hangul */ + {"\xA6", 0, 0x6F4C6F}, /* Korean hangul */ + {"\xA8", 0, 0x6F4C70}, /* Korean hangul */ + {"\xAB", 0, 0x6F4C71}, /* Korean hangul */ + {"\xAC", 0, 0x6F4C72}, /* Korean hangul */ + {"\xAD", 0, 0x6F4C73}, /* Korean hangul */ + {"\xAE", 0, 0x6F4C74}, /* Korean hangul */ + {"\xB3", 0, 0x6F4C75}, /* Korean hangul */ + {"\xB4", 0, 0x6F4C76}, /* Korean hangul */ + {"\xB5", 0, 0x6F4C77}, /* Korean hangul */ + {"\xB7", 0, 0x6F4C78}, /* Korean hangul */ + {"\xB9", 0, 0x6F4C79}, /* Korean hangul */ + {"\xBA", 0, 0x6F4C7A}, /* Korean hangul */ + {"\xBB", 0, 0x6F4C7B}, /* Korean hangul */ + {"\xBF", 0, 0x6F4C7C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page373 = { + marc8r_9page373_flat, 0 +}; +/* PAGE 372 */ +struct yaz_iconv_trie_flat marc8r_9page372_flat[] = { + {"\x84", 0, 0x6F4C55}, /* Korean hangul */ + {"\x89", 0, 0x6F4C56}, /* Korean hangul */ + {"\x90", 0, 0x6F4C57}, /* Korean hangul */ + {"\x91", 0, 0x6F4C58}, /* Korean hangul */ + {"\x94", 0, 0x6F4C59}, /* Korean hangul */ + {"\x98", 0, 0x6F4C5A}, /* Korean hangul */ + {"\x99", 0, 0x6F4C5B}, /* Korean hangul */ + {"\xA0", 0, 0x6F4C5C}, /* Korean hangul */ + {"\xA1", 0, 0x6F4C5D}, /* Korean hangul */ + {"\xA5", 0, 0x6F4C5E}, /* Korean hangul */ + {"\xA6", 0, 0x6F4C5F}, /* Korean hangul */ + {"\xAA", 0, 0x6F4C60}, /* Korean hangul */ + {"\xAC", 0, 0x6F4C61}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page372 = { + marc8r_9page372_flat, 0 +}; +/* PAGE 371 */ +struct yaz_iconv_trie_flat marc8r_9page371_flat[] = { + {"\x98", 0, 0x6F4C4F}, /* Korean hangul */ + {"\x9C", 0, 0x6F4C50}, /* Korean hangul */ + {"\xA0", 0, 0x6F4C51}, /* Korean hangul */ + {"\xA8", 0, 0x6F4C52}, /* Korean hangul */ + {"\xA9", 0, 0x6F4C53}, /* Korean hangul */ + {"\xB4", 0, 0x6F4C54}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page371 = { + marc8r_9page371_flat, 0 +}; +/* PAGE 370 */ +struct yaz_iconv_trie_flat marc8r_9page370_flat[] = { + {"\x84", 0, 0x6F4C43}, /* Korean hangul */ + {"\x85", 0, 0x6F4C44}, /* Korean hangul */ + {"\x88", 0, 0x6F4C45}, /* Korean hangul */ + {"\x8B", 0, 0x6F4C46}, /* Korean hangul */ + {"\x8C", 0, 0x6F4C47}, /* Korean hangul */ + {"\x93", 0, 0x6F4C48}, /* Korean hangul */ + {"\x94", 0, 0x6F4C49}, /* Korean hangul */ + {"\x95", 0, 0x6F4C4A}, /* Korean hangul */ + {"\x97", 0, 0x6F4C4B}, /* Korean hangul */ + {"\xA0", 0, 0x6F4C4C}, /* Korean hangul */ + {"\xB3", 0, 0x6F4C4D}, /* Korean hangul */ + {"\xB4", 0, 0x6F4C4E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page370 = { + marc8r_9page370_flat, 0 +}; +/* PAGE 369 */ +struct yaz_iconv_trie_flat marc8r_9page369_flat[] = { + {"\x8C", 0, 0x6F4C3D}, /* Korean hangul */ + {"\x90", 0, 0x6F4C3E}, /* Korean hangul */ + {"\x94", 0, 0x6F4C3F}, /* Korean hangul */ + {"\x9C", 0, 0x6F4C40}, /* Korean hangul */ + {"\xA8", 0, 0x6F4C41}, /* Korean hangul */ + {"\xBD", 0, 0x6F4C42}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page369 = { + marc8r_9page369_flat, 0 +}; +/* PAGE 368 */ +struct yaz_iconv_trie_flat marc8r_9page368_flat[] = { + {"\x80", 0, 0x6F4C34}, /* Korean hangul */ + {"\x88", 0, 0x6F4C35}, /* Korean hangul */ + {"\x89", 0, 0x6F4C36}, /* Korean hangul */ + {"\x8B", 0, 0x6F4C37}, /* Korean hangul */ + {"\x8D", 0, 0x6F4C38}, /* Korean hangul */ + {"\x92", 0, 0x6F4C39}, /* Korean hangul */ + {"\x93", 0, 0x6F4C3A}, /* Korean hangul */ + {"\x94", 0, 0x6F4C3B}, /* Korean hangul */ + {"\xA8", 0, 0x6F4C3C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page368 = { + marc8r_9page368_flat, 0 +}; +/* PAGE 367 */ +struct yaz_iconv_trie_flat marc8r_9page367_flat[] = { + {"\x80", 0, 0x6F4C26}, /* Korean hangul */ + {"\x81", 0, 0x6F4C27}, /* Korean hangul */ + {"\x84", 0, 0x6F4C28}, /* Korean hangul */ + {"\x90", 0, 0x6F4C29}, /* Korean hangul */ + {"\x91", 0, 0x6F4C2A}, /* Korean hangul */ + {"\x93", 0, 0x6F4C2B}, /* Korean hangul */ + {"\x94", 0, 0x6F4C2C}, /* Korean hangul */ + {"\x95", 0, 0x6F4C2D}, /* Korean hangul */ + {"\x98", 0, 0x6F4C2E}, /* Korean hangul */ + {"\x9C", 0, 0x6F4C2F}, /* Korean hangul */ + {"\xB8", 0, 0x6F4C30}, /* Korean hangul */ + {"\xB9", 0, 0x6F4C31}, /* Korean hangul */ + {"\xBA", 0, 0x6F4C32}, /* Korean hangul */ + {"\xBC", 0, 0x6F4C33}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page367 = { + marc8r_9page367_flat, 0 +}; +/* PAGE 366 */ +struct yaz_iconv_trie_flat marc8r_9page366_flat[] = { + {"\x88", 0, 0x6F4B6E}, /* Korean hangul */ + {"\x89", 0, 0x6F4B6F}, /* Korean hangul */ + {"\x8B", 0, 0x6F4B71}, /* Korean hangul */ + {"\x8C", 0, 0x6F4B72}, /* Korean hangul */ + {"\x8F", 0, 0x6F4B73}, /* Korean hangul */ + {"\x90", 0, 0x6F4B74}, /* Korean hangul */ + {"\x93", 0, 0x6F4B75}, /* Korean hangul */ + {"\x98", 0, 0x6F4B76}, /* Korean hangul */ + {"\x99", 0, 0x6F4B77}, /* Korean hangul */ + {"\x9B", 0, 0x6F4B78}, /* Korean hangul */ + {"\x9C", 0, 0x6F4B79}, /* Korean hangul */ + {"\x9D", 0, 0x6F4B7A}, /* Korean hangul */ + {"\x9E", 0, 0x6F4B7B}, /* Korean hangul */ + {"\xA3", 0, 0x6F4B7C}, /* Korean hangul */ + {"\xA4", 0, 0x6F4B7D}, /* Korean hangul */ + {"\xA5", 0, 0x6F4B7E}, /* Korean hangul */ + {"\xA8", 0, 0x6F4C21}, /* Korean hangul */ + {"\xAC", 0, 0x6F4C22}, /* Korean hangul */ + {"\xB4", 0, 0x6F4C23}, /* Korean hangul */ + {"\xB5", 0, 0x6F4C24}, /* Korean hangul */ + {"\xB7", 0, 0x6F4C25}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page366 = { + marc8r_9page366_flat, 0 +}; +/* PAGE 365 */ +struct yaz_iconv_trie_flat marc8r_9page365_flat[] = { + {"\x84", 0, 0x6F4B64}, /* Korean hangul */ + {"\x85", 0, 0x6F4B65}, /* Korean hangul */ + {"\x85", 0, 0x6F4B65}, /* Korean hangul */ + {"\x87", 0, 0x6F4B66}, /* Korean hangul */ + {"\x88", 0, 0x6F4B67}, /* Korean hangul */ + {"\x89", 0, 0x6F4B68}, /* Korean hangul */ + {"\x90", 0, 0x6F4B69}, /* Korean hangul */ + {"\x91", 0, 0x6F4B6A}, /* Korean hangul */ + {"\xA0", 0, 0x6F4B6B}, /* Korean hangul */ + {"\xA5", 0, 0x6F4B6C}, /* Korean hangul */ + {"\xAC", 0, 0x6F4B6D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page365 = { + marc8r_9page365_flat, 0 +}; +/* PAGE 364 */ +struct yaz_iconv_trie_flat marc8r_9page364_flat[] = { + {"\x80", 0, 0x6F4B46}, /* Korean hangul */ + {"\x84", 0, 0x6F4B47}, /* Korean hangul */ + {"\x8C", 0, 0x6F4B48}, /* Korean hangul */ + {"\x8D", 0, 0x6F4B49}, /* Korean hangul */ + {"\x8F", 0, 0x6F4B4A}, /* Korean hangul */ + {"\x90", 0, 0x6F4B4B}, /* Korean hangul */ + {"\x91", 0, 0x6F4B4C}, /* Korean hangul */ + {"\x98", 0, 0x6F4B4F}, /* Korean hangul */ + {"\x99", 0, 0x6F4B50}, /* Korean hangul */ + {"\x9A", 0, 0x6F4B51}, /* Korean hangul */ + {"\x9C", 0, 0x6F4B52}, /* Korean hangul */ + {"\x9F", 0, 0x6F4B53}, /* Korean hangul */ + {"\xA0", 0, 0x6F4B54}, /* Korean hangul */ + {"\xA1", 0, 0x6F4B55}, /* Korean hangul */ + {"\xA8", 0, 0x6F4B56}, /* Korean hangul */ + {"\xA9", 0, 0x6F4B57}, /* Korean hangul */ + {"\xAB", 0, 0x6F4B58}, /* Korean hangul */ + {"\xAC", 0, 0x6F4B59}, /* Korean hangul */ + {"\xAD", 0, 0x6F4B5A}, /* Korean hangul */ + {"\xAE", 0, 0x6F4B5B}, /* Korean hangul */ + {"\xAF", 0, 0x6F4B5C}, /* Korean hangul */ + {"\xB1", 0, 0x6F4B5D}, /* Korean hangul */ + {"\xB3", 0, 0x6F4B5E}, /* Korean hangul */ + {"\xB4", 0, 0x6F4B5F}, /* Korean hangul */ + {"\xB5", 0, 0x6F4B60}, /* Korean hangul */ + {"\xB8", 0, 0x6F4B61}, /* Korean hangul */ + {"\xBB", 0, 0x6F4B62}, /* Korean hangul */ + {"\xBC", 0, 0x6F4B63}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page364 = { + marc8r_9page364_flat, 0 +}; +/* PAGE 363 */ +struct yaz_iconv_trie_flat marc8r_9page363_flat[] = { + {"\x84", 0, 0x6F4B39}, /* Korean hangul */ + {"\x85", 0, 0x6F4B3A}, /* Korean hangul */ + {"\x88", 0, 0x6F4B3B}, /* Korean hangul */ + {"\x8A", 0, 0x6F4B3C}, /* Korean hangul */ + {"\x8C", 0, 0x6F4B3D}, /* Korean hangul */ + {"\x93", 0, 0x6F4B3E}, /* Korean hangul */ + {"\x94", 0, 0x6F4B3F}, /* Korean hangul */ + {"\x95", 0, 0x6F4B40}, /* Korean hangul */ + {"\x97", 0, 0x6F4B41}, /* Korean hangul */ + {"\x99", 0, 0x6F4B42}, /* Korean hangul */ + {"\x9D", 0, 0x6F4B43}, /* Korean hangul */ + {"\xBC", 0, 0x6F4B44}, /* Korean hangul */ + {"\xBD", 0, 0x6F4B45}, /* Korean hangul */ + {"\xA0", 0, 0x6F7732}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page363 = { + marc8r_9page363_flat, 0 +}; +/* PAGE 362 */ +struct yaz_iconv_trie_flat marc8r_9page362_flat[] = { + {"\x80", 0, 0x6F4B30}, /* Korean hangul */ + {"\x8C", 0, 0x6F4B32}, /* Korean hangul */ + {"\x8D", 0, 0x6F4B33}, /* Korean hangul */ + {"\x90", 0, 0x6F4B34}, /* Korean hangul */ + {"\x94", 0, 0x6F4B35}, /* Korean hangul */ + {"\x9C", 0, 0x6F4B36}, /* Korean hangul */ + {"\x9D", 0, 0x6F4B37}, /* Korean hangul */ + {"\xA8", 0, 0x6F4B38}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page362 = { + marc8r_9page362_flat, 0 +}; +/* PAGE 361 */ +struct yaz_iconv_trie_dir marc8r_9page361_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {363, 0, 0}, + {364, 0, 0}, + {365, 0, 0}, + {366, 0, 0}, + {367, 0, 0}, + {368, 0, 0}, + {369, 0, 0}, + {370, 0, 0}, + {371, 0, 0}, + {372, 0, 0}, + {373, 0, 0}, + {374, 0, 0}, + {375, 0, 0}, + {376, 0, 0}, + {377, 0, 0}, + {378, 0, 0}, + {379, 0, 0}, + {380, 0, 0}, + {381, 0, 0}, + {382, 0, 0}, + {383, 0, 0}, + {384, 0, 0}, + {385, 0, 0}, + {386, 0, 0}, + {387, 0, 0}, + {388, 0, 0}, + {389, 0, 0}, + {390, 0, 0}, + {391, 0, 0}, + {392, 0, 0}, + {393, 0, 0}, + {394, 0, 0}, + {395, 0, 0}, + {396, 0, 0}, + {397, 0, 0}, + {398, 0, 0}, + {399, 0, 0}, + {400, 0, 0}, + {401, 0, 0}, + {402, 0, 0}, + {403, 0, 0}, + {404, 0, 0}, + {405, 0, 0}, + {406, 0, 0}, + {407, 0, 0}, + {408, 0, 0}, + {409, 0, 0}, + {410, 0, 0}, + {411, 0, 0}, + {412, 0, 0}, + {413, 0, 0}, + {414, 0, 0}, + {415, 0, 0}, + {416, 0, 0}, + {417, 0, 0}, + {418, 0, 0}, + {419, 0, 0}, + {420, 0, 0}, + {421, 0, 0}, + {422, 0, 0}, + {423, 0, 0}, + {424, 0, 0}, + {425, 0, 0}, + {426, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page361 = { + 0, marc8r_9page361_dir +}; +/* PAGE 360 */ +struct yaz_iconv_trie_flat marc8r_9page360_flat[] = { + {"\x80", 0, 0x6F4B25}, /* Korean hangul */ + {"\x87", 0, 0x6F4B26}, /* Korean hangul */ + {"\x88", 0, 0x6F4B27}, /* Korean hangul */ + {"\x89", 0, 0x6F4B28}, /* Korean hangul */ + {"\x8B", 0, 0x6F4B29}, /* Korean hangul */ + {"\x8D", 0, 0x6F4B2A}, /* Korean hangul */ + {"\x8E", 0, 0x6F4B2B}, /* Korean hangul */ + {"\x94", 0, 0x6F4B2C}, /* Korean hangul */ + {"\x98", 0, 0x6F4B2D}, /* Korean hangul */ + {"\xA9", 0, 0x6F4B2E}, /* Korean hangul */ + {"\xB0", 0, 0x6F4B2F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page360 = { + marc8r_9page360_flat, 0 +}; +/* PAGE 359 */ +struct yaz_iconv_trie_flat marc8r_9page359_flat[] = { + {"\x80", 0, 0x6F4A7A}, /* Korean hangul */ + {"\x84", 0, 0x6F4A7B}, /* Korean hangul */ + {"\x88", 0, 0x6F4A7C}, /* Korean hangul */ + {"\x90", 0, 0x6F4A7D}, /* Korean hangul */ + {"\x95", 0, 0x6F4A7E}, /* Korean hangul */ + {"\x9C", 0, 0x6F4B21}, /* Korean hangul */ + {"\xB8", 0, 0x6F4B22}, /* Korean hangul */ + {"\xB9", 0, 0x6F4B23}, /* Korean hangul */ + {"\xBC", 0, 0x6F4B24}, /* Korean hangul */ + {"\xBF", 0, 0x6F7731}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page359 = { + marc8r_9page359_flat, 0 +}; +/* PAGE 358 */ +struct yaz_iconv_trie_flat marc8r_9page358_flat[] = { + {"\x81", 0, 0x6F4A6E}, /* Korean hangul */ + {"\x82", 0, 0x6F4A6F}, /* Korean hangul */ + {"\x83", 0, 0x6F4A70}, /* Korean hangul */ + {"\x88", 0, 0x6F4A71}, /* Korean hangul */ + {"\x89", 0, 0x6F4A72}, /* Korean hangul */ + {"\x8C", 0, 0x6F4A73}, /* Korean hangul */ + {"\x98", 0, 0x6F4A74}, /* Korean hangul */ + {"\x9C", 0, 0x6F4A75}, /* Korean hangul */ + {"\x9D", 0, 0x6F4A76}, /* Korean hangul */ + {"\xA4", 0, 0x6F4A77}, /* Korean hangul */ + {"\xA5", 0, 0x6F4A78}, /* Korean hangul */ + {"\xB9", 0, 0x6F4A79}, /* Korean hangul */ + {"\x90", 0, 0x6F7730}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page358 = { + marc8r_9page358_flat, 0 +}; +/* PAGE 357 */ +struct yaz_iconv_trie_flat marc8r_9page357_flat[] = { + {"\x8D", 0, 0x6F4A66}, /* Korean hangul */ + {"\xAC", 0, 0x6F4A67}, /* Korean hangul */ + {"\xAD", 0, 0x6F4A68}, /* Korean hangul */ + {"\xB0", 0, 0x6F4A69}, /* Korean hangul */ + {"\xB4", 0, 0x6F4A6A}, /* Korean hangul */ + {"\xBC", 0, 0x6F4A6B}, /* Korean hangul */ + {"\xBD", 0, 0x6F4A6C}, /* Korean hangul */ + {"\xBF", 0, 0x6F4A6D}, /* Korean hangul */ + {"\x89", 0, 0x6F772F}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page357 = { + marc8r_9page357_flat, 0 +}; +/* PAGE 356 */ +struct yaz_iconv_trie_flat marc8r_9page356_flat[] = { + {"\x80", 0, 0x6F4A5C}, /* Korean hangul */ + {"\x84", 0, 0x6F4A5D}, /* Korean hangul */ + {"\x8C", 0, 0x6F4A5E}, /* Korean hangul */ + {"\x8D", 0, 0x6F4A5F}, /* Korean hangul */ + {"\x8F", 0, 0x6F4A60}, /* Korean hangul */ + {"\x90", 0, 0x6F4A61}, /* Korean hangul */ + {"\x91", 0, 0x6F4A62}, /* Korean hangul */ + {"\x98", 0, 0x6F4A63}, /* Korean hangul */ + {"\x9C", 0, 0x6F4A64}, /* Korean hangul */ + {"\xB4", 0, 0x6F4A65}, /* Korean hangul */ + {"\xAD", 0, 0x6F772E}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page356 = { + marc8r_9page356_flat, 0 +}; +/* PAGE 355 */ +struct yaz_iconv_trie_flat marc8r_9page355_flat[] = { + {"\x84", 0, 0x6F4A57}, /* Korean hangul */ + {"\x85", 0, 0x6F4A58}, /* Korean hangul */ + {"\xBC", 0, 0x6F4A59}, /* Korean hangul */ + {"\xBD", 0, 0x6F4A5A}, /* Korean hangul */ + {"\xBE", 0, 0x6F4A5B}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page355 = { + marc8r_9page355_flat, 0 +}; +/* PAGE 354 */ +struct yaz_iconv_trie_flat marc8r_9page354_flat[] = { + {"\x80", 0, 0x6F4A3B}, /* Korean hangul */ + {"\x81", 0, 0x6F4A3C}, /* Korean hangul */ + {"\x83", 0, 0x6F4A3D}, /* Korean hangul */ + {"\x84", 0, 0x6F4A3E}, /* Korean hangul */ + {"\x85", 0, 0x6F4A3F}, /* Korean hangul */ + {"\x8A", 0, 0x6F4A40}, /* Korean hangul */ + {"\x8C", 0, 0x6F4A43}, /* Korean hangul */ + {"\x8D", 0, 0x6F4A44}, /* Korean hangul */ + {"\x8E", 0, 0x6F4A45}, /* Korean hangul */ + {"\x90", 0, 0x6F4A46}, /* Korean hangul */ + {"\x94", 0, 0x6F4A47}, /* Korean hangul */ + {"\x9C", 0, 0x6F4A48}, /* Korean hangul */ + {"\x9D", 0, 0x6F4A49}, /* Korean hangul */ + {"\xA0", 0, 0x6F4A4A}, /* Korean hangul */ + {"\xA1", 0, 0x6F4A4B}, /* Korean hangul */ + {"\xA2", 0, 0x6F4A4C}, /* Korean hangul */ + {"\xA5", 0, 0x6F4A4D}, /* Korean hangul */ + {"\xA8", 0, 0x6F4A4E}, /* Korean hangul */ + {"\xA9", 0, 0x6F4A4F}, /* Korean hangul */ + {"\xAC", 0, 0x6F4A50}, /* Korean hangul */ + {"\xB0", 0, 0x6F4A51}, /* Korean hangul */ + {"\xB8", 0, 0x6F4A52}, /* Korean hangul */ + {"\xB9", 0, 0x6F4A53}, /* Korean hangul */ + {"\xBB", 0, 0x6F4A54}, /* Korean hangul */ + {"\xBC", 0, 0x6F4A55}, /* Korean hangul */ + {"\xBD", 0, 0x6F4A56}, /* Korean hangul */ + {"\x9F", 0, 0x6F772D}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page354 = { + marc8r_9page354_flat, 0 +}; +/* PAGE 353 */ +struct yaz_iconv_trie_flat marc8r_9page353_flat[] = { + {"\x80", 0, 0x6F4A30}, /* Korean hangul */ + {"\x81", 0, 0x6F4A31}, /* Korean hangul */ + {"\x88", 0, 0x6F4A32}, /* Korean hangul */ + {"\x89", 0, 0x6F4A33}, /* Korean hangul */ + {"\x8B", 0, 0x6F4A34}, /* Korean hangul */ + {"\x8D", 0, 0x6F4A35}, /* Korean hangul */ + {"\xB0", 0, 0x6F4A36}, /* Korean hangul */ + {"\xB1", 0, 0x6F4A37}, /* Korean hangul */ + {"\xB4", 0, 0x6F4A38}, /* Korean hangul */ + {"\xB7", 0, 0x6F4A39}, /* Korean hangul */ + {"\xB8", 0, 0x6F4A3A}, /* Korean hangul */ + {"\x87", 0, 0x6F7728}, /* Korean hangul */ + {"\x8E", 0, 0x6F7729}, /* Korean hangul */ + {"\x8F", 0, 0x6F772A}, /* Korean hangul */ + {"\x91", 0, 0x6F772B}, /* Korean hangul */ + {"\x94", 0, 0x6F772C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page353 = { + marc8r_9page353_flat, 0 +}; +/* PAGE 352 */ +struct yaz_iconv_trie_flat marc8r_9page352_flat[] = { + {"\x80", 0, 0x6F4A22}, /* Korean hangul */ + {"\x84", 0, 0x6F4A23}, /* Korean hangul */ + {"\x88", 0, 0x6F4A24}, /* Korean hangul */ + {"\x90", 0, 0x6F4A25}, /* Korean hangul */ + {"\x91", 0, 0x6F4A26}, /* Korean hangul */ + {"\x93", 0, 0x6F4A27}, /* Korean hangul */ + {"\x9C", 0, 0x6F4A28}, /* Korean hangul */ + {"\xA0", 0, 0x6F4A29}, /* Korean hangul */ + {"\xA4", 0, 0x6F4A2A}, /* Korean hangul */ + {"\xAC", 0, 0x6F4A2B}, /* Korean hangul */ + {"\xB8", 0, 0x6F4A2C}, /* Korean hangul */ + {"\xB9", 0, 0x6F4A2D}, /* Korean hangul */ + {"\xBC", 0, 0x6F4A2E}, /* Korean hangul */ + {"\xBF", 0, 0x6F4A2F}, /* Korean hangul */ + {"\x95", 0, 0x6F7727}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page352 = { + marc8r_9page352_flat, 0 +}; +/* PAGE 351 */ +struct yaz_iconv_trie_flat marc8r_9page351_flat[] = { + {"\x81", 0, 0x6F4978}, /* Korean hangul */ + {"\x82", 0, 0x6F4979}, /* Korean hangul */ + {"\x88", 0, 0x6F497A}, /* Korean hangul */ + {"\x8C", 0, 0x6F497B}, /* Korean hangul */ + {"\x90", 0, 0x6F497C}, /* Korean hangul */ + {"\xA4", 0, 0x6F497E}, /* Korean hangul */ + {"\x89", 0, 0x6F7724}, /* Korean hangul */ + {"\x9D", 0, 0x6F7725}, /* Korean hangul */ + {"\xB9", 0, 0x6F7726}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page351 = { + marc8r_9page351_flat, 0 +}; +/* PAGE 350 */ +struct yaz_iconv_trie_flat marc8r_9page350_flat[] = { + {"\x84", 0, 0x6F496A}, /* Korean hangul */ + {"\x89", 0, 0x6F496C}, /* Korean hangul */ + {"\x90", 0, 0x6F496D}, /* Korean hangul */ + {"\xAC", 0, 0x6F496E}, /* Korean hangul */ + {"\xAD", 0, 0x6F496F}, /* Korean hangul */ + {"\xB0", 0, 0x6F4970}, /* Korean hangul */ + {"\xB3", 0, 0x6F4971}, /* Korean hangul */ + {"\xB4", 0, 0x6F4972}, /* Korean hangul */ + {"\xB5", 0, 0x6F4973}, /* Korean hangul */ + {"\xB6", 0, 0x6F4974}, /* Korean hangul */ + {"\xBC", 0, 0x6F4975}, /* Korean hangul */ + {"\xBD", 0, 0x6F4976}, /* Korean hangul */ + {"\xBF", 0, 0x6F4977}, /* Korean hangul */ + {"\xBB", 0, 0x6F7722}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page350 = { + marc8r_9page350_flat, 0 +}; +/* PAGE 349 */ +struct yaz_iconv_trie_flat marc8r_9page349_flat[] = { + {"\x80", 0, 0x6F495A}, /* Korean hangul */ + {"\x84", 0, 0x6F495B}, /* Korean hangul */ + {"\x8C", 0, 0x6F495C}, /* Korean hangul */ + {"\x8D", 0, 0x6F495D}, /* Korean hangul */ + {"\x8F", 0, 0x6F495E}, /* Korean hangul */ + {"\x91", 0, 0x6F495F}, /* Korean hangul */ + {"\x98", 0, 0x6F4960}, /* Korean hangul */ + {"\x99", 0, 0x6F4961}, /* Korean hangul */ + {"\x9C", 0, 0x6F4962}, /* Korean hangul */ + {"\xA0", 0, 0x6F4963}, /* Korean hangul */ + {"\xA8", 0, 0x6F4964}, /* Korean hangul */ + {"\xA9", 0, 0x6F4965}, /* Korean hangul */ + {"\xAD", 0, 0x6F4966}, /* Korean hangul */ + {"\xB4", 0, 0x6F4967}, /* Korean hangul */ + {"\xB8", 0, 0x6F4968}, /* Korean hangul */ + {"\xBC", 0, 0x6F4969}, /* Korean hangul */ + {"\xB5", 0, 0x6F7721}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page349 = { + marc8r_9page349_flat, 0 +}; +/* PAGE 348 */ +struct yaz_iconv_trie_flat marc8r_9page348_flat[] = { + {"\x81", 0, 0x6F4945}, /* Korean hangul */ + {"\x84", 0, 0x6F4947}, /* Korean hangul */ + {"\x97", 0, 0x6F4949}, /* Korean hangul */ + {"\xA0", 0, 0x6F494A}, /* Korean hangul */ + {"\xA1", 0, 0x6F494B}, /* Korean hangul */ + {"\xA4", 0, 0x6F494C}, /* Korean hangul */ + {"\xA7", 0, 0x6F494D}, /* Korean hangul */ + {"\xA8", 0, 0x6F494E}, /* Korean hangul */ + {"\xAA", 0, 0x6F494F}, /* Korean hangul */ + {"\xAC", 0, 0x6F4950}, /* Korean hangul */ + {"\xAF", 0, 0x6F4951}, /* Korean hangul */ + {"\xB0", 0, 0x6F4952}, /* Korean hangul */ + {"\xB1", 0, 0x6F4953}, /* Korean hangul */ + {"\xB3", 0, 0x6F4954}, /* Korean hangul */ + {"\xB5", 0, 0x6F4955}, /* Korean hangul */ + {"\xB6", 0, 0x6F4956}, /* Korean hangul */ + {"\xBA", 0, 0x6F4957}, /* Korean hangul */ + {"\xBC", 0, 0x6F4958}, /* Korean hangul */ + {"\xBD", 0, 0x6F4959}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page348 = { + marc8r_9page348_flat, 0 +}; +/* PAGE 347 */ +struct yaz_iconv_trie_flat marc8r_9page347_flat[] = { + {"\x80", 0, 0x6F4929}, /* Korean hangul */ + {"\x81", 0, 0x6F492A}, /* Korean hangul */ + {"\x83", 0, 0x6F492B}, /* Korean hangul */ + {"\x84", 0, 0x6F492C}, /* Korean hangul */ + {"\x85", 0, 0x6F492D}, /* Korean hangul */ + {"\x86", 0, 0x6F492E}, /* Korean hangul */ + {"\x89", 0, 0x6F4930}, /* Korean hangul */ + {"\x8A", 0, 0x6F4931}, /* Korean hangul */ + {"\x8B", 0, 0x6F4932}, /* Korean hangul */ + {"\x8C", 0, 0x6F4933}, /* Korean hangul */ + {"\x90", 0, 0x6F4934}, /* Korean hangul */ + {"\x94", 0, 0x6F4935}, /* Korean hangul */ + {"\x9C", 0, 0x6F4936}, /* Korean hangul */ + {"\x9F", 0, 0x6F4937}, /* Korean hangul */ + {"\x9F", 0, 0x6F4937}, /* Korean hangul */ + {"\xA0", 0, 0x6F4938}, /* Korean hangul */ + {"\xA1", 0, 0x6F4939}, /* Korean hangul */ + {"\xA8", 0, 0x6F493A}, /* Korean hangul */ + {"\xA9", 0, 0x6F493B}, /* Korean hangul */ + {"\xAA", 0, 0x6F493C}, /* Korean hangul */ + {"\xAC", 0, 0x6F493D}, /* Korean hangul */ + {"\xAF", 0, 0x6F493E}, /* Korean hangul */ + {"\xB0", 0, 0x6F493F}, /* Korean hangul */ + {"\xB8", 0, 0x6F4940}, /* Korean hangul */ + {"\xB9", 0, 0x6F4941}, /* Korean hangul */ + {"\xBC", 0, 0x6F4943}, /* Korean hangul */ + {"\xBD", 0, 0x6F4944}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page347 = { + marc8r_9page347_flat, 0 +}; +/* PAGE 346 */ +struct yaz_iconv_trie_flat marc8r_9page346_flat[] = { + {"\x80", 0, 0x6F487D}, /* Korean hangul */ + {"\x94", 0, 0x6F487E}, /* Korean hangul */ + {"\xB0", 0, 0x6F4921}, /* Korean hangul */ + {"\xB1", 0, 0x6F4922}, /* Korean hangul */ + {"\xB4", 0, 0x6F4924}, /* Korean hangul */ + {"\xB7", 0, 0x6F4925}, /* Korean hangul */ + {"\xB8", 0, 0x6F4926}, /* Korean hangul */ + {"\xB9", 0, 0x6F4927}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page346 = { + marc8r_9page346_flat, 0 +}; +/* PAGE 345 */ +struct yaz_iconv_trie_flat marc8r_9page345_flat[] = { + {"\x80", 0, 0x6F485F}, /* Korean hangul */ + {"\x81", 0, 0x6F4860}, /* Korean hangul */ + {"\x82", 0, 0x6F4861}, /* Korean hangul */ + {"\x84", 0, 0x6F4862}, /* Korean hangul */ + {"\x87", 0, 0x6F4863}, /* Korean hangul */ + {"\x88", 0, 0x6F4864}, /* Korean hangul */ + {"\x89", 0, 0x6F4865}, /* Korean hangul */ + {"\x90", 0, 0x6F4866}, /* Korean hangul */ + {"\x91", 0, 0x6F4867}, /* Korean hangul */ + {"\x92", 0, 0x6F4868}, /* Korean hangul */ + {"\x93", 0, 0x6F4869}, /* Korean hangul */ + {"\x94", 0, 0x6F486A}, /* Korean hangul */ + {"\x95", 0, 0x6F486B}, /* Korean hangul */ + {"\x96", 0, 0x6F486C}, /* Korean hangul */ + {"\x97", 0, 0x6F486D}, /* Korean hangul */ + {"\x99", 0, 0x6F486E}, /* Korean hangul */ + {"\x9A", 0, 0x6F486F}, /* Korean hangul */ + {"\x9B", 0, 0x6F4870}, /* Korean hangul */ + {"\x9C", 0, 0x6F4871}, /* Korean hangul */ + {"\x9D", 0, 0x6F4872}, /* Korean hangul */ + {"\xA0", 0, 0x6F4873}, /* Korean hangul */ + {"\xA4", 0, 0x6F4875}, /* Korean hangul */ + {"\xAC", 0, 0x6F4876}, /* Korean hangul */ + {"\xAD", 0, 0x6F4877}, /* Korean hangul */ + {"\xAF", 0, 0x6F4878}, /* Korean hangul */ + {"\xB0", 0, 0x6F4879}, /* Korean hangul */ + {"\xB1", 0, 0x6F487A}, /* Korean hangul */ + {"\xB8", 0, 0x6F487B}, /* Korean hangul */ + {"\xB9", 0, 0x6F487C}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page345 = { + marc8r_9page345_flat, 0 +}; +/* PAGE 344 */ +struct yaz_iconv_trie_dir marc8r_9page344_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {346, 0, 0}, + {347, 0, 0}, + {348, 0, 0}, + {349, 0, 0}, + {350, 0, 0}, + {351, 0, 0}, + {352, 0, 0}, + {353, 0, 0}, + {354, 0, 0}, + {355, 0, 0}, + {356, 0, 0}, + {357, 0, 0}, + {358, 0, 0}, + {359, 0, 0}, + {360, 0, 0}, + {361, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page344 = { + 0, marc8r_9page344_dir +}; +/* PAGE 343 */ +struct yaz_iconv_trie_flat marc8r_9page343_flat[] = { + {"\x81", 0, 0x6F245B}, /* Korean hangul */ + {"\x82", 0, 0x6F245C}, /* Korean hangul */ + {"\x85", 0, 0x6F245D}, /* Korean hangul */ + {"\x87", 0, 0x6F245E}, /* Korean hangul */ + {"\x88", 0, 0x6F245F}, /* Korean hangul */ + {"\x8A", 0, 0x6F2460}, /* Korean hangul */ + {"\x8B", 0, 0x6F2461}, /* Korean hangul */ + {"\x8C", 0, 0x6F2462}, /* Korean hangul */ + {"\x8D", 0, 0x6F2463}, /* Korean hangul */ + {"\x8E", 0, 0x6F2464}, /* Korean hangul */ + {"\x83", 0, 0x6F246E}, /* Korean hangul */ + {"\x86", 0, 0x6F2470}, /* Korean hangul */ + {"\x89", 0, 0x6F2471}, /* Korean hangul */ + {"\x8F", 0, 0x6F2472}, /* Korean hangul */ + {"\x90", 0, 0x6F2473}, /* Korean hangul */ + {"\x91", 0, 0x6F2474}, /* Korean hangul */ + {"\x93", 0, 0x6F2476}, /* Korean hangul */ + {"\x94", 0, 0x6F2477}, /* Korean hangul */ + {"\x95", 0, 0x6F2478}, /* Korean hangul */ + {"\x97", 0, 0x6F247A}, /* Korean hangul */ + {"\x98", 0, 0x6F247B}, /* Korean hangul */ + {"\x9B", 0, 0x6F247E}, /* Korean hangul */ + {"\x9C", 0, 0x6F2521}, /* Korean hangul */ + {"\xA0", 0, 0x6F2525}, /* Korean hangul */ + {"\xA1", 0, 0x6F2526}, /* Korean hangul */ + {"\xA2", 0, 0x6F2527}, /* Korean hangul */ + {"\xA3", 0, 0x6F2528}, /* Korean hangul */ + {"\xBF", 0, 0x6F7623}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page343 = { + marc8r_9page343_flat, 0 +}; +/* PAGE 342 */ +struct yaz_iconv_trie_flat marc8r_9page342_flat[] = { + {"\xB1", 0, 0x6F2457}, /* Korean hangul */ + {"\xB4", 0, 0x6F2458}, /* Korean hangul */ + {"\xB7", 0, 0x6F2459}, /* Korean hangul */ + {"\xB9", 0, 0x6F245A}, /* Korean hangul */ + {"\xB2", 0, 0x6F2465}, /* Korean hangul */ + {"\xB8", 0, 0x6F2469}, /* Korean hangul */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page342 = { + marc8r_9page342_flat, 0 +}; +/* PAGE 341 */ +struct yaz_iconv_trie_dir marc8r_9page341_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692460} /* Hiragana letter MU */, + {0, 0, 0x692461} /* Hiragana letter ME */, + {0, 0, 0x692462} /* Hiragana letter MO */, + {0, 0, 0x692463} /* Hiragana letter small YA */, + {0, 0, 0x692464} /* Hiragana letter YA */, + {0, 0, 0x692465} /* Hiragana letter small YU */, + {0, 0, 0x692466} /* Hiragana letter YU */, + {0, 0, 0x692467} /* Hiragana letter small YO */, + {0, 0, 0x692468} /* Hiragana letter YO */, + {0, 0, 0x692469} /* Hiragana letter RA */, + {0, 0, 0x69246A} /* Hiragana letter RI */, + {0, 0, 0x69246B} /* Hiragana letter RU */, + {0, 0, 0x69246C} /* Hiragana letter RE */, + {0, 0, 0x69246D} /* Hiragana letter RO */, + {0, 0, 0x69246E} /* Hiragana letter small WA */, + {0, 0, 0x69246F} /* Hiragana letter WA */, + {0, 0, 0x692470} /* Hiragana letter WI */, + {0, 0, 0x692471} /* Hiragana letter WE */, + {0, 0, 0x692472} /* Hiragana letter WO */, + {0, 0, 0x692473} /* Hiragana letter N */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692577} /* Katakana-hiragana voiced sound mark */, + {0, 0, 0x692578} /* Katakana-hiragana semi-voiced sound mark */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692521} /* Katakana letter small A */, + {0, 0, 0x692522} /* Katakana letter A */, + {0, 0, 0x692523} /* Katakana letter small I */, + {0, 0, 0x692524} /* Katakana letter I */, + {0, 0, 0x692525} /* Katakana letter small U */, + {0, 0, 0x692526} /* Katakana letter U */, + {0, 0, 0x692527} /* Katakana letter small E */, + {0, 0, 0x692528} /* Katakana letter E */, + {0, 0, 0x692529} /* Katakana letter small O */, + {0, 0, 0x69252A} /* Katakana letter O */, + {0, 0, 0x69252B} /* Katakana letter KA */, + {0, 0, 0x69252C} /* Katakana letter GA */, + {0, 0, 0x69252D} /* Katakana letter KI */, + {0, 0, 0x69252E} /* Katakana letter GI */, + {0, 0, 0x69252F} /* Katakana letter KU */, + {0, 0, 0x692530} /* Katakana letter GU */, + {0, 0, 0x692531} /* Katakana letter KE */, + {0, 0, 0x692532} /* Katakana letter GE */, + {0, 0, 0x692533} /* Katakana letter KO */, + {0, 0, 0x692534} /* Katakana letter GO */, + {0, 0, 0x692535} /* Katakana letter SA */, + {0, 0, 0x692536} /* Katakana letter ZA */, + {0, 0, 0x692537} /* Katakana letter SI */, + {0, 0, 0x692538} /* Katakana letter ZI */, + {0, 0, 0x692539} /* Katakana letter SU */, + {0, 0, 0x69253A} /* Katakana letter ZU */, + {0, 0, 0x69253B} /* Katakana letter SE */, + {0, 0, 0x69253C} /* Katakana letter ZE */, + {0, 0, 0x69253D} /* Katakana letter SO */, + {0, 0, 0x69253E} /* Katakana letter ZO */, + {0, 0, 0x69253F} /* Katakana letter TA */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page341 = { + 0, marc8r_9page341_dir +}; +/* PAGE 340 */ +struct yaz_iconv_trie_dir marc8r_9page340_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692421} /* Hiragana letter small A */, + {0, 0, 0x692422} /* Hiragana letter A */, + {0, 0, 0x692423} /* Hiragana letter small I */, + {0, 0, 0x692424} /* Hiragana letter I */, + {0, 0, 0x692425} /* Hiragana letter small U */, + {0, 0, 0x692426} /* Hiragana letter U */, + {0, 0, 0x692427} /* Hiragana letter small E */, + {0, 0, 0x692428} /* Hiragana letter E */, + {0, 0, 0x692429} /* Hiragana letter small O */, + {0, 0, 0x69242A} /* Hiragana letter O */, + {0, 0, 0x69242B} /* Hiragana letter KA */, + {0, 0, 0x69242C} /* Hiragana letter GA */, + {0, 0, 0x69242D} /* Hiragana letter KI */, + {0, 0, 0x69242E} /* Hiragana letter GI */, + {0, 0, 0x69242F} /* Hiragana letter KU */, + {0, 0, 0x692430} /* Hiragana letter GU */, + {0, 0, 0x692431} /* Hiragana letter KE */, + {0, 0, 0x692432} /* Hiragana letter GE */, + {0, 0, 0x692433} /* Hiragana letter KO */, + {0, 0, 0x692434} /* Hiragana letter GO */, + {0, 0, 0x692435} /* Hiragana letter SA */, + {0, 0, 0x692436} /* Hiragana letter ZA */, + {0, 0, 0x692437} /* Hiragana letter SI */, + {0, 0, 0x692438} /* Hiragana letter ZI */, + {0, 0, 0x692439} /* Hiragana letter SU */, + {0, 0, 0x69243A} /* Hiragana letter ZU */, + {0, 0, 0x69243B} /* Hiragana letter SE */, + {0, 0, 0x69243C} /* Hiragana letter ZE */, + {0, 0, 0x69243D} /* Hiragana letter SO */, + {0, 0, 0x69243E} /* Hiragana letter ZO */, + {0, 0, 0x69243F} /* Hiragana letter TA */, + {0, 0, 0x692440} /* Hiragana letter DA */, + {0, 0, 0x692441} /* Hiragana letter TI */, + {0, 0, 0x692442} /* Hiragana letter DI */, + {0, 0, 0x692443} /* Hiragana letter small TU */, + {0, 0, 0x692444} /* Hiragana letter TU */, + {0, 0, 0x692445} /* Hiragana letter DU */, + {0, 0, 0x692446} /* Hiragana letter TE */, + {0, 0, 0x692447} /* Hiragana letter DE */, + {0, 0, 0x692448} /* Hiragana letter TO */, + {0, 0, 0x692449} /* Hiragana letter DO */, + {0, 0, 0x69244A} /* Hiragana letter NA */, + {0, 0, 0x69244B} /* Hiragana letter NI */, + {0, 0, 0x69244C} /* Hiragana letter NU */, + {0, 0, 0x69244D} /* Hiragana letter NE */, + {0, 0, 0x69244E} /* Hiragana letter NO */, + {0, 0, 0x69244F} /* Hiragana letter HA */, + {0, 0, 0x692450} /* Hiragana letter BA */, + {0, 0, 0x692451} /* Hiragana letter PA */, + {0, 0, 0x692452} /* Hiragana letter HI */, + {0, 0, 0x692453} /* Hiragana letter BI */, + {0, 0, 0x692454} /* Hiragana letter PI */, + {0, 0, 0x692455} /* Hiragana letter HU */, + {0, 0, 0x692456} /* Hiragana letter BU */, + {0, 0, 0x692457} /* Hiragana letter PU */, + {0, 0, 0x692458} /* Hiragana letter HE */, + {0, 0, 0x692459} /* Hiragana letter BE */, + {0, 0, 0x69245A} /* Hiragana letter PE */, + {0, 0, 0x69245B} /* Hiragana letter HO */, + {0, 0, 0x69245C} /* Hiragana letter BO */, + {0, 0, 0x69245D} /* Hiragana letter PO */, + {0, 0, 0x69245E} /* Hiragana letter MA */, + {0, 0, 0x69245F} /* Hiragana letter MI */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page340 = { + 0, marc8r_9page340_dir +}; +/* PAGE 339 */ +struct yaz_iconv_trie_dir marc8r_9page339_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692540} /* Katakana letter DA */, + {0, 0, 0x692541} /* Katakana letter TI */, + {0, 0, 0x692542} /* Katakana letter DI */, + {0, 0, 0x692543} /* Katakana letter small TU */, + {0, 0, 0x692544} /* Katakana letter TU */, + {0, 0, 0x692545} /* Katakana letter DU */, + {0, 0, 0x692546} /* Katakana letter TE */, + {0, 0, 0x692547} /* Katakana letter DE */, + {0, 0, 0x692548} /* Katakana letter TO */, + {0, 0, 0x692549} /* Katakana letter DO */, + {0, 0, 0x69254A} /* Katakana letter NA */, + {0, 0, 0x69254B} /* Katakana letter NI */, + {0, 0, 0x69254C} /* Katakana letter NU */, + {0, 0, 0x69254D} /* Katakana letter NE */, + {0, 0, 0x69254E} /* Katakana letter NO */, + {0, 0, 0x69254F} /* Katakana letter HA */, + {0, 0, 0x692550} /* Katakana letter BA */, + {0, 0, 0x692551} /* Katakana letter PA */, + {0, 0, 0x692552} /* Katakana letter HI */, + {0, 0, 0x692553} /* Katakana letter BI */, + {0, 0, 0x692554} /* Katakana letter PI */, + {0, 0, 0x692555} /* Katakana letter HU */, + {0, 0, 0x692556} /* Katakana letter BU */, + {0, 0, 0x692557} /* Katakana letter PU */, + {0, 0, 0x692558} /* Katakana letter HE */, + {0, 0, 0x692559} /* Katakana letter BE */, + {0, 0, 0x69255A} /* Katakana letter PE */, + {0, 0, 0x69255B} /* Katakana letter HO */, + {0, 0, 0x69255C} /* Katakana letter BO */, + {0, 0, 0x69255D} /* Katakana letter PO */, + {0, 0, 0x69255E} /* Katakana letter MA */, + {0, 0, 0x69255F} /* Katakana letter MI */, + {0, 0, 0x692560} /* Katakana letter MU */, + {0, 0, 0x692561} /* Katakana letter ME */, + {0, 0, 0x692562} /* Katakana letter MO */, + {0, 0, 0x692563} /* Katakana letter small YA */, + {0, 0, 0x692564} /* Katakana letter YA */, + {0, 0, 0x692565} /* Katakana letter small YU */, + {0, 0, 0x692566} /* Katakana letter YU */, + {0, 0, 0x692567} /* Katakana letter small YO */, + {0, 0, 0x692568} /* Katakana letter YO */, + {0, 0, 0x692569} /* Katakana letter RA */, + {0, 0, 0x69256A} /* Katakana letter RI */, + {0, 0, 0x69256B} /* Katakana letter RU */, + {0, 0, 0x69256C} /* Katakana letter RE */, + {0, 0, 0x69256D} /* Katakana letter RO */, + {0, 0, 0x69256E} /* Katakana letter small WA */, + {0, 0, 0x69256F} /* Katakana letter WA */, + {0, 0, 0x692570} /* Katakana letter WI */, + {0, 0, 0x692571} /* Katakana letter WE */, + {0, 0, 0x692572} /* Katakana letter WO */, + {0, 0, 0x692573} /* Katakana letter N */, + {0, 0, 0x692574} /* Katakana letter VU */, + {0, 0, 0x692575} /* Katakana letter small KA */, + {0, 0, 0x692576} /* Katakana letter small KE */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x692126} /* Ideographic centered point */, + {0, 0, 0x69213C} /* Vowel elongation mark for kana */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page339 = { + 0, marc8r_9page339_dir +}; +/* PAGE 338 */ +struct yaz_iconv_trie_flat marc8r_9page338_flat[] = { + {"\x9E", 0, 0x2D3165}, /* East Asian ideograph (Unicode CJK Extension A) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page338 = { + marc8r_9page338_flat, 0 +}; +/* PAGE 337 */ +struct yaz_iconv_trie_flat marc8r_9page337_flat[] = { + {"\xA1", 0, 0x217E5B}, /* East Asian ideograph (Unicode CJK Extension A) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page337 = { + marc8r_9page337_flat, 0 +}; +/* PAGE 336 */ +struct yaz_iconv_trie_flat marc8r_9page336_flat[] = { + {"\x87", 0, 0x212F30}, /* East Asian ideograph (number zero) */ + {"\x80", 0, 0x212321}, /* Ideographic space per ANSI Z39.64 */ + {"\x80", 0, 0x212320}, /* Ideographic space in some implementations */ + {"\x93", 0, 0x212A46}, /* Ideographic geta symbol */ + {"\x8C", 0, 0x212B25}, /* Ideographic left corner bracket */ + {"\x8D", 0, 0x212B26}, /* Ideographic right corner bracket */ + {"\x82", 0, 0x212B33}, /* Ideographic full stop */ + {"\x81", 0, 0x212B35}, /* Ideographic comma */ + {"\x85", 0, 0x692139}, /* Ideographic iteration mark */ + {"\x88", 0, 0x692152}, /* Ideographic less than sign */ + {"\x89", 0, 0x692153}, /* Ideographic greater than sign */ + {"\x8A", 0, 0x692154}, /* Ideographic left double angle bracket */ + {"\x8B", 0, 0x692155}, /* Ideographic right double angle bracket */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page336 = { + marc8r_9page336_flat, 0 +}; +/* PAGE 335 */ +struct yaz_iconv_trie_flat marc8r_9page335_flat[] = { + {"\x81", 0, 0x276176}, /* East Asian ideograph */ + {"\x8D", 0, 0x276177}, /* East Asian ideograph */ + {"\x9B", 0, 0x276178}, /* East Asian ideograph */ + {"\x9C", 0, 0x276179}, /* East Asian ideograph */ + {"\x94", 0, 0x27617A}, /* East Asian ideograph */ + {"\xA8", 0, 0x27617B}, /* East Asian ideograph */ + {"\xA4", 0, 0x27617C}, /* East Asian ideograph */ + {"\xB8", 0, 0x27617D}, /* East Asian ideograph */ + {"\xB3", 0, 0x27617E}, /* East Asian ideograph */ + {"\xAB", 0, 0x276223}, /* East Asian ideograph */ + {"\xA2", 0, 0x276226}, /* East Asian ideograph */ + {"\x88", 0, 0x27622E}, /* East Asian ideograph */ + {"\x82", 0, 0x29565D}, /* East Asian ideograph */ + {"\x86", 0, 0x295721}, /* East Asian ideograph */ + {"\x87", 0, 0x295729}, /* East Asian ideograph */ + {"\x90", 0, 0x29572B}, /* East Asian ideograph */ + {"\x8B", 0, 0x295731}, /* East Asian ideograph */ + {"\x9E", 0, 0x295739}, /* East Asian ideograph */ + {"\x91", 0, 0x29573C}, /* East Asian ideograph */ + {"\x92", 0, 0x29573D}, /* East Asian ideograph */ + {"\x95", 0, 0x295742}, /* East Asian ideograph */ + {"\xA9", 0, 0x295756}, /* East Asian ideograph */ + {"\xA0", 0, 0x29575F}, /* East Asian ideograph */ + {"\xA7", 0, 0x29576E}, /* East Asian ideograph */ + {"\xAD", 0, 0x29577A}, /* East Asian ideograph */ + {"\xB0", 0, 0x29577C}, /* East Asian ideograph */ + {"\xAE", 0, 0x295822}, /* East Asian ideograph */ + {"\xBA", 0, 0x295825}, /* East Asian ideograph */ + {"\xB2", 0, 0x295827}, /* East Asian ideograph */ + {"\xB4", 0, 0x295828}, /* East Asian ideograph */ + {"\xB1", 0, 0x29582C}, /* East Asian ideograph */ + {"\xB7", 0, 0x29582D}, /* East Asian ideograph */ + {"\xB5", 0, 0x29582F}, /* East Asian ideograph */ + {"\xB6", 0, 0x295831}, /* East Asian ideograph */ + {"\xBB", 0, 0x295834}, /* East Asian ideograph */ + {"\xBD", 0, 0x29584B}, /* East Asian ideograph */ + {"\xA5", 0, 0x29586E}, /* East Asian ideograph */ + {"\xA3", 0, 0x295929}, /* East Asian ideograph */ + {"\x85", 0, 0x29593A}, /* East Asian ideograph */ + {"\x9F", 0, 0x29593B}, /* East Asian ideograph */ + {"\xBC", 0, 0x295940}, /* East Asian ideograph */ + {"\x8E", 0, 0x295955}, /* East Asian ideograph */ + {"\x9A", 0, 0x295958}, /* East Asian ideograph */ + {"\xA1", 0, 0x29596B}, /* East Asian ideograph */ + {"\xA6", 0, 0x4D5934}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page335 = { + marc8r_9page335_flat, 0 +}; +/* PAGE 334 */ +struct yaz_iconv_trie_dir marc8r_9page334_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275D66} /* East Asian ideograph */, + {0, 0, 0x275E28} /* East Asian ideograph */, + {0, 0, 0x29442E} /* East Asian ideograph */, + {0, 0, 0x29442B} /* East Asian ideograph */, + {0, 0, 0x275D68} /* East Asian ideograph */, + {0, 0, 0x275D7C} /* East Asian ideograph */, + {0, 0, 0x294440} /* East Asian ideograph */, + {0, 0, 0x294441} /* East Asian ideograph */, + {0, 0, 0x275E3B} /* East Asian ideograph */, + {0, 0, 0x275D69} /* East Asian ideograph */, + {0, 0, 0x294435} /* East Asian ideograph */, + {0, 0, 0x275D6A} /* East Asian ideograph */, + {0, 0, 0x275D62} /* East Asian ideograph */, + {0, 0, 0x29436C} /* East Asian ideograph */, + {0, 0, 0x294750} /* East Asian ideograph */, + {0, 0, 0x294751} /* East Asian ideograph */, + {0, 0, 0x275D64} /* East Asian ideograph */, + {0, 0, 0x275D63} /* East Asian ideograph */, + {0, 0, 0x29436A} /* East Asian ideograph */, + {0, 0, 0x294372} /* East Asian ideograph */, + {0, 0, 0x294375} /* East Asian ideograph */, + {0, 0, 0x294466} /* East Asian ideograph */, + {0, 0, 0x29445B} /* East Asian ideograph */, + {0, 0, 0x294551} /* East Asian ideograph */, + {0, 0, 0x294568} /* East Asian ideograph */, + {0, 0, 0x275D6F} /* East Asian ideograph */, + {0, 0, 0x275D7D} /* East Asian ideograph */, + {0, 0, 0x29446D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294471} /* East Asian ideograph */, + {0, 0, 0x294472} /* East Asian ideograph */, + {0, 0, 0x294474} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275D72} /* East Asian ideograph */, + {0, 0, 0x294478} /* East Asian ideograph */, + {0, 0, 0x275E49} /* East Asian ideograph */, + {0, 0, 0x275E22} /* East Asian ideograph */, + {0, 0, 0x275D75} /* East Asian ideograph */, + {0, 0, 0x275D76} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294531} /* East Asian ideograph */, + {0, 0, 0x294457} /* East Asian ideograph */, + {0, 0, 0x4D472C} /* East Asian ideograph */, + {0, 0, 0x29444D} /* East Asian ideograph */, + {0, 0, 0x294458} /* East Asian ideograph */, + {0, 0, 0x275D6B} /* East Asian ideograph */, + {0, 0, 0x275D79} /* East Asian ideograph */, + {0, 0, 0x275D6D} /* East Asian ideograph */, + {0, 0, 0x275D6E} /* East Asian ideograph */, + {0, 0, 0x294532} /* East Asian ideograph */, + {0, 0, 0x275D7A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x29454D} /* East Asian ideograph */, + {0, 0, 0x275E37} /* East Asian ideograph */, + {0, 0, 0x294564} /* East Asian ideograph */, + {0, 0, 0x294567} /* East Asian ideograph */, + {0, 0, 0x29456F} /* East Asian ideograph */, + {0, 0, 0x275E23} /* East Asian ideograph */, + {0, 0, 0x455E21} /* East Asian ideograph */, + {0, 0, 0x275E24} /* East Asian ideograph */, + {0, 0, 0x29464A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275D7E} /* East Asian ideograph */, + {0, 0, 0x4D4832} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page334 = { + 0, marc8r_9page334_dir +}; +/* PAGE 333 */ +struct yaz_iconv_trie_dir marc8r_9page333_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275D52} /* East Asian ideograph */, + {0, 0, 0x275E3D} /* East Asian ideograph */, + {0, 0, 0x275D57} /* East Asian ideograph */, + {0, 0, 0x275D58} /* East Asian ideograph */, + {0, 0, 0x275E45} /* East Asian ideograph */, + {0, 0, 0x275D55} /* East Asian ideograph */, + {0, 0, 0x29432B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294251} /* East Asian ideograph */, + {0, 0, 0x294252} /* East Asian ideograph */, + {0, 0, 0x294255} /* East Asian ideograph */, + {0, 0, 0x294254} /* East Asian ideograph */, + {0, 0, 0x29425C} /* East Asian ideograph */, + {0, 0, 0x29426D} /* East Asian ideograph */, + {0, 0, 0x275E3F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275D5B} /* East Asian ideograph */, + {0, 0, 0x294346} /* East Asian ideograph */, + {0, 0, 0x294343} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x294349} /* East Asian ideograph */, + {0, 0, 0x294340} /* East Asian ideograph */, + {0, 0, 0x294427} /* East Asian ideograph */, + {0, 0, 0x29437D} /* East Asian ideograph */, + {0, 0, 0x275E39} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275E3E} /* East Asian ideograph */, + {0, 0, 0x275D5C} /* East Asian ideograph */, + {0, 0, 0x275D67} /* East Asian ideograph */, + {0, 0, 0x29434F} /* East Asian ideograph */, + {0, 0, 0x294350} /* East Asian ideograph */, + {0, 0, 0x294642} /* East Asian ideograph */, + {0, 0, 0x29455E} /* East Asian ideograph */, + {0, 0, 0x275D5E} /* East Asian ideograph */, + {0, 0, 0x29435B} /* East Asian ideograph */, + {0, 0, 0x29443E} /* East Asian ideograph */, + {0, 0, 0x294359} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294767} /* East Asian ideograph */, + {0, 0, 0x275D60} /* East Asian ideograph */, + {0, 0, 0x29472F} /* East Asian ideograph */, + {0, 0, 0x294362} /* East Asian ideograph */, + {0, 0, 0x294355} /* East Asian ideograph */, + {0, 0, 0x275D5F} /* East Asian ideograph */, + {0, 0, 0x275D5D} /* East Asian ideograph */, + {0, 0, 0x275D73} /* East Asian ideograph */, + {0, 0, 0x294358} /* East Asian ideograph */, + {0, 0, 0x275D59} /* East Asian ideograph */, + {0, 0, 0x294331} /* East Asian ideograph */, + {0, 0, 0x275E2F} /* East Asian ideograph */, + {0, 0, 0x29432F} /* East Asian ideograph */, + {0, 0, 0x294732} /* East Asian ideograph */, + {0, 0, 0x294335} /* East Asian ideograph */, + {0, 0, 0x275D5A} /* East Asian ideograph */, + {0, 0, 0x294364} /* East Asian ideograph */, + {0, 0, 0x275E43} /* East Asian ideograph */, + {0, 0, 0x29473E} /* East Asian ideograph */, + {0, 0, 0x275D65} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294469} /* East Asian ideograph */, + {0, 0, 0x294371} /* East Asian ideograph */, + {0, 0, 0x275E31} /* East Asian ideograph */, + {0, 0, 0x275E30} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page333 = { + 0, marc8r_9page333_dir +}; +/* PAGE 332 */ +struct yaz_iconv_trie_dir marc8r_9page332_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275845} /* East Asian ideograph */, + {0, 0, 0x27593F} /* East Asian ideograph */, + {0, 0, 0x275851} /* East Asian ideograph */, + {0, 0, 0x51356A} /* East Asian ideograph */, + {0, 0, 0x27584E} /* East Asian ideograph */, + {0, 0, 0x275853} /* East Asian ideograph */, + {0, 0, 0x27593C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275854} /* East Asian ideograph */, + {0, 0, 0x275856} /* East Asian ideograph */, + {0, 0, 0x275857} /* East Asian ideograph */, + {0, 0, 0x275855} /* East Asian ideograph */, + {0, 0, 0x29337A} /* East Asian ideograph */, + {0, 0, 0x27584F} /* East Asian ideograph */, + {0, 0, 0x29323B} /* East Asian ideograph */, + {0, 0, 0x275852} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275946} /* East Asian ideograph */, + {0, 0, 0x29323C} /* East Asian ideograph */, + {0, 0, 0x293250} /* East Asian ideograph */, + {0, 0, 0x29325D} /* East Asian ideograph */, + {0, 0, 0x27585B} /* East Asian ideograph */, + {0, 0, 0x29324F} /* East Asian ideograph */, + {0, 0, 0x27585C} /* East Asian ideograph */, + {0, 0, 0x27585D} /* East Asian ideograph */, + {0, 0, 0x27585F} /* East Asian ideograph */, + {0, 0, 0x275860} /* East Asian ideograph */, + {0, 0, 0x275862} /* East Asian ideograph */, + {0, 0, 0x29325E} /* East Asian ideograph */, + {0, 0, 0x275866} /* East Asian ideograph */, + {0, 0, 0x275923} /* East Asian ideograph */, + {0, 0, 0x275868} /* East Asian ideograph */, + {0, 0, 0x275867} /* East Asian ideograph */, + {0, 0, 0x275863} /* East Asian ideograph */, + {0, 0, 0x275865} /* East Asian ideograph */, + {0, 0, 0x27585E} /* East Asian ideograph */, + {0, 0, 0x293336} /* East Asian ideograph */, + {0, 0, 0x275859} /* East Asian ideograph */, + {0, 0, 0x27585A} /* East Asian ideograph */, + {0, 0, 0x275858} /* East Asian ideograph */, + {0, 0, 0x293345} /* East Asian ideograph */, + {0, 0, 0x293256} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27586B} /* East Asian ideograph */, + {0, 0, 0x27586F} /* East Asian ideograph */, + {0, 0, 0x27586C} /* East Asian ideograph */, + {0, 0, 0x293271} /* East Asian ideograph */, + {0, 0, 0x275871} /* East Asian ideograph */, + {0, 0, 0x275873} /* East Asian ideograph */, + {0, 0, 0x275874} /* East Asian ideograph */, + {0, 0, 0x275872} /* East Asian ideograph */, + {0, 0, 0x275875} /* East Asian ideograph */, + {0, 0, 0x275869} /* East Asian ideograph */, + {0, 0, 0x27586A} /* East Asian ideograph */, + {0, 0, 0x4B3642} /* East Asian ideograph */, + {0, 0, 0x27587A} /* East Asian ideograph */, + {0, 0, 0x27587B} /* East Asian ideograph */, + {0, 0, 0x293325} /* East Asian ideograph */, + {0, 0, 0x27592E} /* East Asian ideograph */, + {0, 0, 0x27594A} /* East Asian ideograph */, + {0, 0, 0x29332C} /* East Asian ideograph */, + {0, 0, 0x293338} /* East Asian ideograph */, + {0, 0, 0x27587C} /* East Asian ideograph */, + {0, 0, 0x27587E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page332 = { + 0, marc8r_9page332_dir +}; +/* PAGE 331 */ +struct yaz_iconv_trie_dir marc8r_9page331_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x287061} /* East Asian ideograph */, + {0, 0, 0x287062} /* East Asian ideograph */, + {0, 0, 0x287065} /* East Asian ideograph */, + {0, 0, 0x275154} /* East Asian ideograph */, + {0, 0, 0x27512B} /* East Asian ideograph */, + {0, 0, 0x27512D} /* East Asian ideograph */, + {0, 0, 0x27512C} /* East Asian ideograph */, + {0, 0, 0x275171} /* East Asian ideograph */, + {0, 0, 0x275130} /* East Asian ideograph */, + {0, 0, 0x287269} /* East Asian ideograph */, + {0, 0, 0x275126} /* East Asian ideograph */, + {0, 0, 0x275128} /* East Asian ideograph */, + {0, 0, 0x27512F} /* East Asian ideograph */, + {0, 0, 0x27512A} /* East Asian ideograph */, + {0, 0, 0x275178} /* East Asian ideograph */, + {0, 0, 0x27513C} /* East Asian ideograph */, + {0, 0, 0x28706A} /* East Asian ideograph */, + {0, 0, 0x275140} /* East Asian ideograph */, + {0, 0, 0x275133} /* East Asian ideograph */, + {0, 0, 0x275134} /* East Asian ideograph */, + {0, 0, 0x4B5773} /* East Asian ideograph */, + {0, 0, 0x275173} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x287134} /* East Asian ideograph */, + {0, 0, 0x275179} /* East Asian ideograph */, + {0, 0, 0x275139} /* East Asian ideograph */, + {0, 0, 0x275136} /* East Asian ideograph */, + {0, 0, 0x287130} /* East Asian ideograph */, + {0, 0, 0x275138} /* East Asian ideograph */, + {0, 0, 0x275137} /* East Asian ideograph */, + {0, 0, 0x275132} /* East Asian ideograph */, + {0, 0, 0x275131} /* East Asian ideograph */, + {0, 0, 0x287144} /* East Asian ideograph */, + {0, 0, 0x28714D} /* East Asian ideograph */, + {0, 0, 0x27513E} /* East Asian ideograph */, + {0, 0, 0x275172} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27513F} /* East Asian ideograph */, + {0, 0, 0x4C715A} /* East Asian ideograph */, + {0, 0, 0x27517D} /* East Asian ideograph */, + {0, 0, 0x287139} /* East Asian ideograph */, + {0, 0, 0x275166} /* East Asian ideograph */, + {0, 0, 0x275155} /* East Asian ideograph */, + {0, 0, 0x275145} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275221} /* East Asian ideograph */, + {0, 0, 0x335147} /* East Asian ideograph */, + {0, 0, 0x287167} /* East Asian ideograph */, + {0, 0, 0x27514A} /* East Asian ideograph */, + {0, 0, 0x4D4D61} /* East Asian ideograph */, + {0, 0, 0x287174} /* East Asian ideograph */, + {0, 0, 0x275176} /* East Asian ideograph */, + {0, 0, 0x27514E} /* East Asian ideograph */, + {0, 0, 0x27514F} /* East Asian ideograph */, + {0, 0, 0x287178} /* East Asian ideograph */, + {0, 0, 0x4B516A} /* East Asian ideograph */, + {0, 0, 0x27514D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x28717D} /* East Asian ideograph */, + {0, 0, 0x287161} /* East Asian ideograph */, + {0, 0, 0x275141} /* East Asian ideograph */, + {0, 0, 0x275142} /* East Asian ideograph */, + {0, 0, 0x275143} /* East Asian ideograph */, + {0, 0, 0x27514C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page331 = { + 0, marc8r_9page331_dir +}; +/* PAGE 330 */ +struct yaz_iconv_trie_dir marc8r_9page330_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x23487C} /* East Asian ideograph */, + {0, 0, 0x23487B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x455D3E} /* East Asian ideograph */, + {0, 0, 0x294162} /* East Asian ideograph */, + {0, 0, 0x294161} /* East Asian ideograph */, + {0, 0, 0x275D3F} /* East Asian ideograph */, + {0, 0, 0x275D40} /* East Asian ideograph */, + {0, 0, 0x275D41} /* East Asian ideograph */, + {0, 0, 0x294164} /* East Asian ideograph */, + {0, 0, 0x294163} /* East Asian ideograph */, + {0, 0, 0x29416A} /* East Asian ideograph */, + {0, 0, 0x29416B} /* East Asian ideograph */, + {0, 0, 0x275D46} /* East Asian ideograph */, + {0, 0, 0x294222} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x294179} /* East Asian ideograph */, + {0, 0, 0x275D45} /* East Asian ideograph */, + {0, 0, 0x294475} /* East Asian ideograph */, + {0, 0, 0x294221} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275D43} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275D47} /* East Asian ideograph */, + {0, 0, 0x474236} /* East Asian ideograph */, + {0, 0, 0x294237} /* East Asian ideograph */, + {0, 0, 0x4B3C38} /* East Asian ideograph */, + {0, 0, 0x275D48} /* East Asian ideograph */, + {0, 0, 0x275D4B} /* East Asian ideograph */, + {0, 0, 0x275E21} /* East Asian ideograph */, + {0, 0, 0x275D4A} /* East Asian ideograph */, + {0, 0, 0x29442D} /* East Asian ideograph */, + {0, 0, 0x275D71} /* East Asian ideograph */, + {0, 0, 0x29424B} /* East Asian ideograph */, + {0, 0, 0x275D4D} /* East Asian ideograph */, + {0, 0, 0x275E47} /* East Asian ideograph */, + {0, 0, 0x274578} /* East Asian ideograph */, + {0, 0, 0x275D4C} /* East Asian ideograph */, + {0, 0, 0x275E29} /* East Asian ideograph */, + {0, 0, 0x275D56} /* East Asian ideograph */, + {0, 0, 0x294224} /* East Asian ideograph */, + {0, 0, 0x294225} /* East Asian ideograph */, + {0, 0, 0x294228} /* East Asian ideograph */, + {0, 0, 0x294223} /* East Asian ideograph */, + {0, 0, 0x275D49} /* East Asian ideograph */, + {0, 0, 0x294231} /* East Asian ideograph */, + {0, 0, 0x294258} /* East Asian ideograph */, + {0, 0, 0x275D70} /* East Asian ideograph */, + {0, 0, 0x294261} /* East Asian ideograph */, + {0, 0, 0x27502A} /* East Asian ideograph */, + {0, 0, 0x275D4F} /* East Asian ideograph */, + {0, 0, 0x335228} /* East Asian ideograph */, + {0, 0, 0x29425F} /* East Asian ideograph */, + {0, 0, 0x294260} /* East Asian ideograph */, + {0, 0, 0x275D51} /* East Asian ideograph */, + {0, 0, 0x275D50} /* East Asian ideograph */, + {0, 0, 0x294264} /* East Asian ideograph */, + {0, 0, 0x275E4A} /* East Asian ideograph */, + {0, 0, 0x474270} /* East Asian ideograph */, + {0, 0, 0x29426F} /* East Asian ideograph */, + {0, 0, 0x275D53} /* East Asian ideograph */, + {0, 0, 0x294274} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page330 = { + 0, marc8r_9page330_dir +}; +/* PAGE 329 */ +struct yaz_iconv_trie_flat marc8r_9page329_flat[] = { + {"\x90", 0, 0x232D42}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page329 = { + marc8r_9page329_flat, 0 +}; +/* PAGE 328 */ +struct yaz_iconv_trie_flat marc8r_9page328_flat[] = { + {"\x8A", 0, 0x21627D}, /* East Asian ideograph */ + {"\x8B", 0, 0x21627E}, /* East Asian ideograph */ + {"\x92", 0, 0x216321}, /* East Asian ideograph */ + {"\x9F", 0, 0x216322}, /* East Asian ideograph */ + {"\xA3", 0, 0x216323}, /* East Asian ideograph */ + {"\xA1", 0, 0x216324}, /* East Asian ideograph (variant of EACC 456324) */ + {"\xA6", 0, 0x216325}, /* East Asian ideograph */ + {"\x9C", 0, 0x216326}, /* East Asian ideograph */ + {"\xAC", 0, 0x216327}, /* East Asian ideograph */ + {"\xAA", 0, 0x216328}, /* East Asian ideograph */ + {"\xB7", 0, 0x216329}, /* East Asian ideograph */ + {"\xB2", 0, 0x21632A}, /* East Asian ideograph */ + {"\x81", 0, 0x235F69}, /* East Asian ideograph */ + {"\x85", 0, 0x235F6D}, /* East Asian ideograph */ + {"\x86", 0, 0x235F6F}, /* East Asian ideograph */ + {"\x88", 0, 0x235F71}, /* East Asian ideograph */ + {"\x89", 0, 0x235F73}, /* East Asian ideograph */ + {"\x8E", 0, 0x235F79}, /* East Asian ideograph */ + {"\x8F", 0, 0x235F7B}, /* East Asian ideograph */ + {"\x94", 0, 0x235F7C}, /* East Asian ideograph */ + {"\x95", 0, 0x235F7E}, /* East Asian ideograph */ + {"\x97", 0, 0x236023}, /* East Asian ideograph */ + {"\xA0", 0, 0x236028}, /* East Asian ideograph */ + {"\xAE", 0, 0x23603F}, /* East Asian ideograph */ + {"\xAF", 0, 0x236040}, /* East Asian ideograph */ + {"\xB6", 0, 0x236047}, /* East Asian ideograph */ + {"\x90", 0, 0x27627D}, /* East Asian ideograph */ + {"\xBF", 0, 0x276321}, /* East Asian ideograph */ + {"\x91", 0, 0x295F7B}, /* East Asian ideograph */ + {"\xA9", 0, 0x333623}, /* East Asian ideograph */ + {"\xA7", 0, 0x337345}, /* East Asian ideograph */ + {"\xA1", 0, 0x456324}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B6324}, /* East Asian ideograph */ + {"\x84", 0, 0x4D5F70}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page328 = { + marc8r_9page328_flat, 0 +}; +/* PAGE 327 */ +struct yaz_iconv_trie_flat marc8r_9page327_flat[] = { + {"\x87", 0, 0x216273}, /* East Asian ideograph */ + {"\x8E", 0, 0x216274}, /* East Asian ideograph */ + {"\x93", 0, 0x216275}, /* East Asian ideograph */ + {"\x95", 0, 0x216276}, /* East Asian ideograph */ + {"\x99", 0, 0x216277}, /* East Asian ideograph */ + {"\xA0", 0, 0x216278}, /* East Asian ideograph */ + {"\xAC", 0, 0x216279}, /* East Asian ideograph */ + {"\xB4", 0, 0x21627A}, /* East Asian ideograph */ + {"\xBB", 0, 0x21627B}, /* East Asian ideograph */ + {"\xBE", 0, 0x21627C}, /* East Asian ideograph */ + {"\x82", 0, 0x235E7D}, /* East Asian ideograph */ + {"\x8F", 0, 0x235F2F}, /* East Asian ideograph */ + {"\x90", 0, 0x235F31}, /* East Asian ideograph */ + {"\x92", 0, 0x235F32}, /* East Asian ideograph */ + {"\x96", 0, 0x235F33}, /* East Asian ideograph */ + {"\x97", 0, 0x235F34}, /* East Asian ideograph */ + {"\x9A", 0, 0x235F37}, /* East Asian ideograph */ + {"\xA2", 0, 0x235F45}, /* East Asian ideograph */ + {"\xAB", 0, 0x235F48}, /* East Asian ideograph */ + {"\xA6", 0, 0x235F49}, /* East Asian ideograph */ + {"\xAF", 0, 0x235F53}, /* East Asian ideograph */ + {"\xB9", 0, 0x235F5E}, /* East Asian ideograph */ + {"\xB7", 0, 0x235F5F}, /* East Asian ideograph */ + {"\xBD", 0, 0x235F64}, /* East Asian ideograph */ + {"\x8B", 0, 0x295E7C}, /* East Asian ideograph */ + {"\x8D", 0, 0x295F2B}, /* East Asian ideograph */ + {"\x84", 0, 0x2D5664}, /* East Asian ideograph */ + {"\x85", 0, 0x2D5675}, /* East Asian ideograph */ + {"\x88", 0, 0x2D622C}, /* East Asian ideograph */ + {"\xA1", 0, 0x4B6278}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page327 = { + marc8r_9page327_flat, 0 +}; +/* PAGE 326 */ +struct yaz_iconv_trie_flat marc8r_9page326_flat[] = { + {"\x83", 0, 0x216262}, /* East Asian ideograph */ + {"\x8D", 0, 0x216263}, /* East Asian ideograph */ + {"\x8E", 0, 0x216264}, /* East Asian ideograph */ + {"\x8F", 0, 0x216265}, /* East Asian ideograph */ + {"\x91", 0, 0x216266}, /* East Asian ideograph */ + {"\x98", 0, 0x216268}, /* East Asian ideograph */ + {"\x94", 0, 0x216269}, /* East Asian ideograph */ + {"\x9E", 0, 0x21626A}, /* East Asian ideograph */ + {"\x9C", 0, 0x21626B}, /* East Asian ideograph */ + {"\x9B", 0, 0x21626C}, /* East Asian ideograph */ + {"\x9D", 0, 0x21626D}, /* East Asian ideograph */ + {"\xA0", 0, 0x21626E}, /* East Asian ideograph */ + {"\xA8", 0, 0x21626F}, /* East Asian ideograph */ + {"\xAF", 0, 0x216270}, /* East Asian ideograph */ + {"\xB4", 0, 0x216271}, /* East Asian ideograph */ + {"\xB7", 0, 0x216272}, /* East Asian ideograph */ + {"\x81", 0, 0x235E30}, /* East Asian ideograph */ + {"\x86", 0, 0x235E35}, /* East Asian ideograph */ + {"\x88", 0, 0x235E37}, /* East Asian ideograph */ + {"\x8C", 0, 0x235E42}, /* East Asian ideograph */ + {"\x90", 0, 0x235E4A}, /* East Asian ideograph */ + {"\x93", 0, 0x235E4C}, /* East Asian ideograph */ + {"\x9A", 0, 0x235E53}, /* East Asian ideograph */ + {"\x9F", 0, 0x235E55}, /* East Asian ideograph */ + {"\xA3", 0, 0x235E57}, /* East Asian ideograph */ + {"\xA5", 0, 0x235E59}, /* East Asian ideograph */ + {"\xA7", 0, 0x235E5C}, /* East Asian ideograph */ + {"\xAE", 0, 0x235E60}, /* East Asian ideograph */ + {"\xB0", 0, 0x235E66}, /* East Asian ideograph */ + {"\xB6", 0, 0x235E6F}, /* East Asian ideograph */ + {"\xB9", 0, 0x235E74}, /* East Asian ideograph */ + {"\xBB", 0, 0x235E76}, /* East Asian ideograph */ + {"\xBC", 0, 0x235E77}, /* East Asian ideograph */ + {"\xBD", 0, 0x235E7A}, /* East Asian ideograph */ + {"\xBE", 0, 0x235E7B}, /* East Asian ideograph */ + {"\xBF", 0, 0x235E7C}, /* East Asian ideograph */ + {"\xA9", 0, 0x276272}, /* East Asian ideograph */ + {"\xAA", 0, 0x295E6A}, /* East Asian ideograph */ + {"\xBE", 0, 0x295E7A}, /* East Asian ideograph */ + {"\x84", 0, 0x2D6262}, /* East Asian ideograph */ + {"\x89", 0, 0x2F5E42}, /* East Asian ideograph */ + {"\x92", 0, 0x4B6266}, /* East Asian ideograph */ + {"\x99", 0, 0x4B6268}, /* East Asian ideograph */ + {"\xA2", 0, 0x707771}, /* East Asian ideograph (Version J extension) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page326 = { + marc8r_9page326_flat, 0 +}; +/* PAGE 325 */ +struct yaz_iconv_trie_flat marc8r_9page325_flat[] = { + {"\x82", 0, 0x216254}, /* East Asian ideograph */ + {"\x8B", 0, 0x216255}, /* East Asian ideograph */ + {"\x97", 0, 0x216256}, /* East Asian ideograph */ + {"\x92", 0, 0x216257}, /* East Asian ideograph */ + {"\x93", 0, 0x216258}, /* East Asian ideograph */ + {"\x9D", 0, 0x216259}, /* East Asian ideograph */ + {"\x9F", 0, 0x21625A}, /* East Asian ideograph */ + {"\xA5", 0, 0x21625B}, /* East Asian ideograph */ + {"\xA9", 0, 0x21625C}, /* East Asian ideograph */ + {"\xB4", 0, 0x21625D}, /* East Asian ideograph */ + {"\xB5", 0, 0x21625E}, /* East Asian ideograph */ + {"\xBB", 0, 0x21625F}, /* East Asian ideograph */ + {"\xBC", 0, 0x216260}, /* East Asian ideograph */ + {"\xBE", 0, 0x216261}, /* East Asian ideograph */ + {"\x80", 0, 0x235D47}, /* East Asian ideograph */ + {"\x83", 0, 0x235D48}, /* East Asian ideograph */ + {"\x84", 0, 0x235D49}, /* East Asian ideograph */ + {"\x88", 0, 0x235D4B}, /* East Asian ideograph */ + {"\x87", 0, 0x235D4F}, /* East Asian ideograph */ + {"\x90", 0, 0x235D55}, /* East Asian ideograph */ + {"\x8C", 0, 0x235D58}, /* East Asian ideograph */ + {"\x95", 0, 0x235D5A}, /* East Asian ideograph */ + {"\x91", 0, 0x235D5C}, /* East Asian ideograph */ + {"\x9B", 0, 0x235D5D}, /* East Asian ideograph */ + {"\x9E", 0, 0x235D66}, /* East Asian ideograph */ + {"\xAD", 0, 0x235D77}, /* East Asian ideograph */ + {"\xAF", 0, 0x235D79}, /* East Asian ideograph */ + {"\xB0", 0, 0x235D7A}, /* East Asian ideograph */ + {"\xA6", 0, 0x27625B}, /* East Asian ideograph */ + {"\xB8", 0, 0x27625C}, /* East Asian ideograph */ + {"\xA4", 0, 0x2F5D49}, /* East Asian ideograph */ + {"\xAA", 0, 0x33625E}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B625C}, /* East Asian ideograph (variant of EACC 27625C) */ + {"\xBD", 0, 0x4B6260}, /* East Asian ideograph */ + {"\x81", 0, 0x4D5D49}, /* East Asian ideograph */ + {"\xBF", 0, 0x694B7B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page325 = { + marc8r_9page325_flat, 0 +}; +/* PAGE 324 */ +struct yaz_iconv_trie_flat marc8r_9page324_flat[] = { + {"\xB9", 0, 0x216250}, /* East Asian ideograph */ + {"\xBD", 0, 0x216251}, /* East Asian ideograph */ + {"\xBC", 0, 0x216252}, /* East Asian ideograph */ + {"\xBF", 0, 0x216253}, /* East Asian ideograph */ + {"\xB5", 0, 0x235D3C}, /* East Asian ideograph */ + {"\xBA", 0, 0x235D42}, /* East Asian ideograph */ + {"\xBB", 0, 0x235D43}, /* East Asian ideograph */ + {"\x89", 0, 0x27623E}, /* East Asian ideograph */ + {"\x83", 0, 0x27623F}, /* East Asian ideograph */ + {"\x84", 0, 0x276240}, /* East Asian ideograph */ + {"\x85", 0, 0x276241}, /* East Asian ideograph */ + {"\x91", 0, 0x276242}, /* East Asian ideograph */ + {"\x8A", 0, 0x276243}, /* East Asian ideograph */ + {"\x8C", 0, 0x276244}, /* East Asian ideograph */ + {"\x8F", 0, 0x276245}, /* East Asian ideograph */ + {"\xA4", 0, 0x276246}, /* East Asian ideograph */ + {"\x9E", 0, 0x276248}, /* East Asian ideograph */ + {"\xA7", 0, 0x276249}, /* East Asian ideograph */ + {"\xB0", 0, 0x27624C}, /* East Asian ideograph */ + {"\xAD", 0, 0x27624D}, /* East Asian ideograph */ + {"\xA6", 0, 0x27624E}, /* East Asian ideograph */ + {"\x88", 0, 0x295A70}, /* East Asian ideograph */ + {"\x81", 0, 0x295A75}, /* East Asian ideograph */ + {"\x86", 0, 0x295B2A}, /* East Asian ideograph */ + {"\x8E", 0, 0x295B52}, /* East Asian ideograph */ + {"\x9C", 0, 0x295B59}, /* East Asian ideograph */ + {"\x9B", 0, 0x295B5C}, /* East Asian ideograph */ + {"\x95", 0, 0x295B60}, /* East Asian ideograph */ + {"\x97", 0, 0x295B6B}, /* East Asian ideograph */ + {"\x8B", 0, 0x295B6C}, /* East Asian ideograph */ + {"\xA3", 0, 0x295B77}, /* East Asian ideograph */ + {"\x9A", 0, 0x295B79}, /* East Asian ideograph */ + {"\x98", 0, 0x295C28}, /* East Asian ideograph */ + {"\xA8", 0, 0x295C47}, /* East Asian ideograph */ + {"\x87", 0, 0x295C49}, /* East Asian ideograph */ + {"\xAB", 0, 0x295C57}, /* East Asian ideograph */ + {"\xAC", 0, 0x295C5B}, /* East Asian ideograph */ + {"\xA9", 0, 0x295C65}, /* East Asian ideograph */ + {"\xAA", 0, 0x295C6C}, /* East Asian ideograph */ + {"\xB1", 0, 0x295D29}, /* East Asian ideograph */ + {"\xB3", 0, 0x295D3A}, /* East Asian ideograph */ + {"\x82", 0, 0x295D3B}, /* East Asian ideograph */ + {"\xBE", 0, 0x295D42}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page324 = { + marc8r_9page324_flat, 0 +}; +/* PAGE 323 */ +struct yaz_iconv_trie_flat marc8r_9page323_flat[] = { + {"\x9A", 0, 0x21624E}, /* East Asian ideograph */ + {"\x9E", 0, 0x21624F}, /* East Asian ideograph */ + {"\x82", 0, 0x225021}, /* East Asian ideograph */ + {"\x87", 0, 0x235C71}, /* East Asian ideograph */ + {"\x8E", 0, 0x235D27}, /* East Asian ideograph */ + {"\x91", 0, 0x235D2B}, /* East Asian ideograph */ + {"\x95", 0, 0x235D36}, /* East Asian ideograph */ + {"\x98", 0, 0x235D37}, /* East Asian ideograph */ + {"\x9C", 0, 0x235D39}, /* East Asian ideograph */ + {"\x9B", 0, 0x235D3A}, /* East Asian ideograph */ + {"\x9D", 0, 0x235D3B}, /* East Asian ideograph */ + {"\xA1", 0, 0x275F4C}, /* East Asian ideograph */ + {"\x9F", 0, 0x27622F}, /* East Asian ideograph */ + {"\xA0", 0, 0x276230}, /* East Asian ideograph */ + {"\xA2", 0, 0x276231}, /* East Asian ideograph */ + {"\xA3", 0, 0x276232}, /* East Asian ideograph */ + {"\xA9", 0, 0x276234}, /* East Asian ideograph */ + {"\xA6", 0, 0x276235}, /* East Asian ideograph */ + {"\xB5", 0, 0x276236}, /* East Asian ideograph */ + {"\xAA", 0, 0x276237}, /* East Asian ideograph */ + {"\xAD", 0, 0x276238}, /* East Asian ideograph */ + {"\xAF", 0, 0x276239}, /* East Asian ideograph */ + {"\xB3", 0, 0x27623A}, /* East Asian ideograph */ + {"\xBF", 0, 0x27623C}, /* East Asian ideograph */ + {"\xBD", 0, 0x27623D}, /* East Asian ideograph */ + {"\xA5", 0, 0x27624A}, /* East Asian ideograph */ + {"\xB6", 0, 0x27624B}, /* East Asian ideograph */ + {"\xBE", 0, 0x27624F}, /* East Asian ideograph */ + {"\xA8", 0, 0x295A28}, /* East Asian ideograph */ + {"\xB2", 0, 0x295A44}, /* East Asian ideograph */ + {"\xB1", 0, 0x295A48}, /* East Asian ideograph */ + {"\xB8", 0, 0x295A59}, /* East Asian ideograph */ + {"\xB9", 0, 0x295A65}, /* East Asian ideograph */ + {"\xBA", 0, 0x295A68}, /* East Asian ideograph */ + {"\xAB", 0, 0x295B35}, /* East Asian ideograph */ + {"\xB7", 0, 0x295C3E}, /* East Asian ideograph */ + {"\xAC", 0, 0x295D36}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page323 = { + marc8r_9page323_flat, 0 +}; +/* PAGE 322 */ +struct yaz_iconv_trie_flat marc8r_9page322_flat[] = { + {"\x82", 0, 0x216248}, /* East Asian ideograph */ + {"\x93", 0, 0x216249}, /* East Asian ideograph */ + {"\x97", 0, 0x21624A}, /* East Asian ideograph */ + {"\xA5", 0, 0x21624B}, /* East Asian ideograph */ + {"\xB9", 0, 0x21624C}, /* East Asian ideograph */ + {"\xBA", 0, 0x21624D}, /* East Asian ideograph */ + {"\x80", 0, 0x235B79}, /* East Asian ideograph */ + {"\x81", 0, 0x235B7A}, /* East Asian ideograph */ + {"\x8F", 0, 0x235B7E}, /* East Asian ideograph */ + {"\x87", 0, 0x235C22}, /* East Asian ideograph */ + {"\x83", 0, 0x235C27}, /* East Asian ideograph */ + {"\x9F", 0, 0x235C3A}, /* East Asian ideograph */ + {"\x99", 0, 0x235C3E}, /* East Asian ideograph */ + {"\x96", 0, 0x235C45}, /* East Asian ideograph */ + {"\x9E", 0, 0x235C46}, /* East Asian ideograph */ + {"\xA9", 0, 0x235C4F}, /* East Asian ideograph */ + {"\xB2", 0, 0x235C57}, /* East Asian ideograph */ + {"\xB8", 0, 0x235C5B}, /* East Asian ideograph */ + {"\xBC", 0, 0x235C5C}, /* East Asian ideograph */ + {"\xAB", 0, 0x235C5F}, /* East Asian ideograph */ + {"\xAF", 0, 0x235C65}, /* East Asian ideograph */ + {"\xAD", 0, 0x235C6A}, /* East Asian ideograph */ + {"\xA6", 0, 0x235C6C}, /* East Asian ideograph */ + {"\xAE", 0, 0x235C6D}, /* East Asian ideograph */ + {"\xBD", 0, 0x235C7E}, /* East Asian ideograph */ + {"\x84", 0, 0x2D5F4C}, /* East Asian ideograph */ + {"\xB0", 0, 0x3F4A28}, /* East Asian ideograph */ + {"\x86", 0, 0x4D5B7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page322 = { + marc8r_9page322_flat, 0 +}; +/* PAGE 321 */ +struct yaz_iconv_trie_flat marc8r_9page321_flat[] = { + {"\x89", 0, 0x216242}, /* East Asian ideograph */ + {"\xB4", 0, 0x216246}, /* East Asian ideograph */ + {"\xAF", 0, 0x216247}, /* East Asian ideograph */ + {"\x8A", 0, 0x235B2E}, /* East Asian ideograph */ + {"\x87", 0, 0x235B35}, /* East Asian ideograph */ + {"\x83", 0, 0x235B4F}, /* East Asian ideograph */ + {"\xA9", 0, 0x235B59}, /* East Asian ideograph */ + {"\x92", 0, 0x235B5E}, /* East Asian ideograph */ + {"\x98", 0, 0x235B60}, /* East Asian ideograph */ + {"\xA4", 0, 0x235B66}, /* East Asian ideograph */ + {"\xAA", 0, 0x235B67}, /* East Asian ideograph */ + {"\xA1", 0, 0x235B6A}, /* East Asian ideograph */ + {"\x9A", 0, 0x235B6B}, /* East Asian ideograph */ + {"\x96", 0, 0x235B70}, /* East Asian ideograph */ + {"\xB1", 0, 0x235B74}, /* East Asian ideograph */ + {"\xB6", 0, 0x235B76}, /* East Asian ideograph */ + {"\xBC", 0, 0x235B77}, /* East Asian ideograph */ + {"\xB8", 0, 0x235B7B}, /* East Asian ideograph */ + {"\xBA", 0, 0x235B7C}, /* East Asian ideograph */ + {"\xBB", 0, 0x235C28}, /* East Asian ideograph */ + {"\xB9", 0, 0x235C32}, /* East Asian ideograph */ + {"\xAC", 0, 0x235C34}, /* East Asian ideograph */ + {"\xB2", 0, 0x235C36}, /* East Asian ideograph */ + {"\x8F", 0, 0x4B5F4C}, /* East Asian ideograph */ + {"\xAB", 0, 0x4D5B35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page321 = { + marc8r_9page321_flat, 0 +}; +/* PAGE 320 */ +struct yaz_iconv_trie_flat marc8r_9page320_flat[] = { + {"\xA1", 0, 0x21623E}, /* East Asian ideograph */ + {"\x91", 0, 0x21623F}, /* East Asian ideograph */ + {"\xA0", 0, 0x216240}, /* East Asian ideograph */ + {"\x9D", 0, 0x216241}, /* East Asian ideograph */ + {"\xB2", 0, 0x216243}, /* East Asian ideograph */ + {"\xAA", 0, 0x216244}, /* East Asian ideograph */ + {"\xAC", 0, 0x216245}, /* East Asian ideograph */ + {"\x81", 0, 0x235A4F}, /* East Asian ideograph */ + {"\x82", 0, 0x235A68}, /* East Asian ideograph */ + {"\x80", 0, 0x235A69}, /* East Asian ideograph */ + {"\x9C", 0, 0x235A70}, /* East Asian ideograph */ + {"\x93", 0, 0x235A75}, /* East Asian ideograph */ + {"\x99", 0, 0x235A7B}, /* East Asian ideograph */ + {"\x9A", 0, 0x235B26}, /* East Asian ideograph */ + {"\x92", 0, 0x235B2A}, /* East Asian ideograph */ + {"\xB7", 0, 0x235B2C}, /* East Asian ideograph */ + {"\xBA", 0, 0x235B2F}, /* East Asian ideograph */ + {"\xB8", 0, 0x235B3F}, /* East Asian ideograph */ + {"\xBE", 0, 0x235B42}, /* East Asian ideograph */ + {"\xA9", 0, 0x235B47}, /* East Asian ideograph */ + {"\xBB", 0, 0x235B4D}, /* East Asian ideograph */ + {"\xAF", 0, 0x235B52}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D6235}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D6241}, /* East Asian ideograph */ + {"\x84", 0, 0x2F5A48}, /* East Asian ideograph */ + {"\xB0", 0, 0x335F49}, /* East Asian ideograph */ + {"\x89", 0, 0x4B624F}, /* East Asian ideograph */ + {"\x86", 0, 0x4D5A6C}, /* East Asian ideograph */ + {"\x90", 0, 0x4D5C6B}, /* East Asian ideograph */ + {"\x88", 0, 0x69727E}, /* East Asian ideograph */ + {"\xA4", 0, 0x697323}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page320 = { + marc8r_9page320_flat, 0 +}; +/* PAGE 319 */ +struct yaz_iconv_trie_flat marc8r_9page319_flat[] = { + {"\x86", 0, 0x216234}, /* East Asian ideograph */ + {"\x89", 0, 0x216235}, /* East Asian ideograph */ + {"\x95", 0, 0x216236}, /* East Asian ideograph */ + {"\xA3", 0, 0x216237}, /* East Asian ideograph */ + {"\xA8", 0, 0x216238}, /* East Asian ideograph */ + {"\xA6", 0, 0x216239}, /* East Asian ideograph */ + {"\x9B", 0, 0x21623A}, /* East Asian ideograph */ + {"\x92", 0, 0x21623B}, /* East Asian ideograph (variant of EACC 4B623B) */ + {"\xBB", 0, 0x21623C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21623D}, /* East Asian ideograph */ + {"\x82", 0, 0x235A21}, /* East Asian ideograph */ + {"\x83", 0, 0x235A22}, /* East Asian ideograph */ + {"\x84", 0, 0x235A24}, /* East Asian ideograph */ + {"\x87", 0, 0x235A28}, /* East Asian ideograph */ + {"\xAA", 0, 0x235A2F}, /* East Asian ideograph */ + {"\xA5", 0, 0x235A30}, /* East Asian ideograph */ + {"\x9E", 0, 0x235A3F}, /* East Asian ideograph */ + {"\x9D", 0, 0x235A44}, /* East Asian ideograph */ + {"\x9F", 0, 0x235A48}, /* East Asian ideograph */ + {"\xB6", 0, 0x235A53}, /* East Asian ideograph */ + {"\xBE", 0, 0x235A63}, /* East Asian ideograph */ + {"\xB0", 0, 0x235A65}, /* East Asian ideograph */ + {"\xBD", 0, 0x235A6B}, /* East Asian ideograph */ + {"\x88", 0, 0x335F43}, /* East Asian ideograph */ + {"\x92", 0, 0x4B623B}, /* East Asian ideograph */ + {"\xAC", 0, 0x4B6247}, /* East Asian ideograph */ + {"\xAB", 0, 0x693C32}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page319 = { + marc8r_9page319_flat, 0 +}; +/* PAGE 318 */ +struct yaz_iconv_trie_flat marc8r_9page318_flat[] = { + {"\xA5", 0, 0x21622F}, /* East Asian ideograph */ + {"\xA9", 0, 0x216230}, /* East Asian ideograph */ + {"\xB6", 0, 0x216231}, /* East Asian ideograph */ + {"\xB4", 0, 0x216232}, /* East Asian ideograph */ + {"\xB3", 0, 0x216233}, /* East Asian ideograph */ + {"\xA7", 0, 0x235973}, /* East Asian ideograph */ + {"\xB0", 0, 0x235974}, /* East Asian ideograph */ + {"\xB2", 0, 0x235977}, /* East Asian ideograph */ + {"\xB7", 0, 0x235A23}, /* East Asian ideograph */ + {"\xB8", 0, 0x235A2C}, /* East Asian ideograph */ + {"\x83", 0, 0x276221}, /* East Asian ideograph */ + {"\x85", 0, 0x276222}, /* East Asian ideograph */ + {"\x8D", 0, 0x276224}, /* East Asian ideograph */ + {"\x8F", 0, 0x276225}, /* East Asian ideograph */ + {"\x94", 0, 0x276227}, /* East Asian ideograph */ + {"\x97", 0, 0x276228}, /* East Asian ideograph */ + {"\x9D", 0, 0x276229}, /* East Asian ideograph */ + {"\x9E", 0, 0x27622A}, /* East Asian ideograph */ + {"\x9C", 0, 0x27622B}, /* East Asian ideograph */ + {"\x96", 0, 0x27622C}, /* East Asian ideograph */ + {"\x8A", 0, 0x29583E}, /* East Asian ideograph */ + {"\x84", 0, 0x295854}, /* East Asian ideograph */ + {"\x86", 0, 0x295859}, /* East Asian ideograph */ + {"\x87", 0, 0x29585C}, /* East Asian ideograph */ + {"\x8B", 0, 0x29586A}, /* East Asian ideograph */ + {"\x8E", 0, 0x295871}, /* East Asian ideograph */ + {"\x99", 0, 0x295921}, /* East Asian ideograph */ + {"\x8C", 0, 0x295925}, /* East Asian ideograph */ + {"\x95", 0, 0x295928}, /* East Asian ideograph */ + {"\x93", 0, 0x29592A}, /* East Asian ideograph */ + {"\x98", 0, 0x295932}, /* East Asian ideograph */ + {"\x9F", 0, 0x295938}, /* East Asian ideograph */ + {"\xA2", 0, 0x29594F}, /* East Asian ideograph */ + {"\xAB", 0, 0x2D5F43}, /* East Asian ideograph */ + {"\xAC", 0, 0x2F5973}, /* East Asian ideograph */ + {"\x90", 0, 0x4D5875}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page318 = { + marc8r_9page318_flat, 0 +}; +/* PAGE 317 */ +struct yaz_iconv_trie_flat marc8r_9page317_flat[] = { + {"\x94", 0, 0x216229}, /* East Asian ideograph */ + {"\x97", 0, 0x21622A}, /* East Asian ideograph */ + {"\x96", 0, 0x21622B}, /* East Asian ideograph */ + {"\x89", 0, 0x21622C}, /* East Asian ideograph */ + {"\xB7", 0, 0x21622D}, /* East Asian ideograph */ + {"\xB8", 0, 0x21622E}, /* East Asian ideograph */ + {"\x86", 0, 0x23587E}, /* East Asian ideograph */ + {"\x84", 0, 0x235926}, /* East Asian ideograph */ + {"\x88", 0, 0x235928}, /* East Asian ideograph */ + {"\x87", 0, 0x235930}, /* East Asian ideograph */ + {"\x92", 0, 0x235938}, /* East Asian ideograph */ + {"\x98", 0, 0x23593B}, /* East Asian ideograph */ + {"\x91", 0, 0x235945}, /* East Asian ideograph */ + {"\xA3", 0, 0x235949}, /* East Asian ideograph */ + {"\xA7", 0, 0x23594F}, /* East Asian ideograph */ + {"\x9F", 0, 0x235955}, /* East Asian ideograph */ + {"\xA0", 0, 0x235956}, /* East Asian ideograph */ + {"\xAD", 0, 0x235958}, /* East Asian ideograph */ + {"\xA8", 0, 0x23595B}, /* East Asian ideograph */ + {"\xAF", 0, 0x23595C}, /* East Asian ideograph */ + {"\xAE", 0, 0x23595E}, /* East Asian ideograph */ + {"\xBA", 0, 0x23596B}, /* East Asian ideograph */ + {"\xBC", 0, 0x276174}, /* East Asian ideograph */ + {"\xBF", 0, 0x276175}, /* East Asian ideograph */ + {"\x93", 0, 0x2D6229}, /* East Asian ideograph */ + {"\x91", 0, 0x2F585C}, /* East Asian ideograph (unrelated variant of EACC 235945) */ + {"\xBB", 0, 0x336179}, /* East Asian ideograph */ + {"\xB6", 0, 0x355739}, /* East Asian ideograph */ + {"\x9A", 0, 0x697265}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page317 = { + marc8r_9page317_flat, 0 +}; +/* PAGE 316 */ +struct yaz_iconv_trie_flat marc8r_9page316_flat[] = { + {"\x93", 0, 0x216221}, /* East Asian ideograph */ + {"\x8D", 0, 0x216222}, /* East Asian ideograph */ + {"\xAD", 0, 0x216224}, /* East Asian ideograph */ + {"\xA5", 0, 0x216225}, /* East Asian ideograph */ + {"\xB1", 0, 0x216226}, /* East Asian ideograph */ + {"\xBE", 0, 0x216227}, /* East Asian ideograph */ + {"\xBB", 0, 0x216228}, /* East Asian ideograph */ + {"\x86", 0, 0x235843}, /* East Asian ideograph */ + {"\x95", 0, 0x235844}, /* East Asian ideograph */ + {"\x8A", 0, 0x235849}, /* East Asian ideograph */ + {"\x88", 0, 0x23584B}, /* East Asian ideograph */ + {"\x94", 0, 0x23584C}, /* East Asian ideograph */ + {"\x84", 0, 0x23584D}, /* East Asian ideograph */ + {"\x82", 0, 0x235852}, /* East Asian ideograph */ + {"\x90", 0, 0x235854}, /* East Asian ideograph */ + {"\x92", 0, 0x235859}, /* East Asian ideograph */ + {"\x89", 0, 0x23585C}, /* East Asian ideograph */ + {"\x9C", 0, 0x235866}, /* East Asian ideograph */ + {"\xAF", 0, 0x235869}, /* East Asian ideograph */ + {"\xA3", 0, 0x23586E}, /* East Asian ideograph */ + {"\xAE", 0, 0x235870}, /* East Asian ideograph */ + {"\xA8", 0, 0x235871}, /* East Asian ideograph */ + {"\xA1", 0, 0x235878}, /* East Asian ideograph */ + {"\xA4", 0, 0x235879}, /* East Asian ideograph */ + {"\xB2", 0, 0x235925}, /* East Asian ideograph */ + {"\xB9", 0, 0x235929}, /* East Asian ideograph */ + {"\xB3", 0, 0x23592A}, /* East Asian ideograph */ + {"\xB5", 0, 0x235932}, /* East Asian ideograph */ + {"\xB7", 0, 0x235934}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D6222}, /* East Asian ideograph */ + {"\x9B", 0, 0x2F5870}, /* East Asian ideograph */ + {"\xBA", 0, 0x47594E}, /* East Asian ideograph */ + {"\xB0", 0, 0x697260}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page316 = { + marc8r_9page316_flat, 0 +}; +/* PAGE 315 */ +struct yaz_iconv_trie_flat marc8r_9page315_flat[] = { + {"\x8A", 0, 0x21617B}, /* East Asian ideograph */ + {"\x89", 0, 0x21617C}, /* East Asian ideograph */ + {"\xA8", 0, 0x21617D}, /* East Asian ideograph */ + {"\xA7", 0, 0x21617E}, /* East Asian ideograph */ + {"\xBD", 0, 0x216223}, /* East Asian ideograph */ + {"\x87", 0, 0x235756}, /* East Asian ideograph */ + {"\x92", 0, 0x235759}, /* East Asian ideograph */ + {"\x86", 0, 0x23575D}, /* East Asian ideograph */ + {"\x81", 0, 0x23575F}, /* East Asian ideograph */ + {"\x93", 0, 0x23576C}, /* East Asian ideograph */ + {"\x80", 0, 0x23576E}, /* East Asian ideograph */ + {"\x88", 0, 0x235772}, /* East Asian ideograph */ + {"\x97", 0, 0x235777}, /* East Asian ideograph */ + {"\x96", 0, 0x23577A}, /* East Asian ideograph */ + {"\xAB", 0, 0x23577C}, /* East Asian ideograph */ + {"\x95", 0, 0x235823}, /* East Asian ideograph */ + {"\xA4", 0, 0x235827}, /* East Asian ideograph */ + {"\xB1", 0, 0x23582B}, /* East Asian ideograph */ + {"\xA1", 0, 0x23582C}, /* East Asian ideograph */ + {"\x9B", 0, 0x23582D}, /* East Asian ideograph */ + {"\xA2", 0, 0x23582F}, /* East Asian ideograph */ + {"\xB0", 0, 0x235831}, /* East Asian ideograph */ + {"\x94", 0, 0x235834}, /* East Asian ideograph */ + {"\xBF", 0, 0x23583E}, /* East Asian ideograph */ + {"\xBD", 0, 0x396223}, /* East Asian ideograph (variant of EACC 216223) */ + {"\x96", 0, 0x47577A}, /* East Asian ideograph (variant of EACC 23577A) */ + {"\xA3", 0, 0x4D5858}, /* East Asian ideograph */ + {"\xB5", 0, 0x4D594E}, /* East Asian ideograph */ + {"\x8F", 0, 0x697245}, /* East Asian ideograph */ + {"\x91", 0, 0x697246}, /* East Asian ideograph */ + {"\xB2", 0, 0x69724E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page315 = { + marc8r_9page315_flat, 0 +}; +/* PAGE 314 */ +struct yaz_iconv_trie_flat marc8r_9page314_flat[] = { + {"\x91", 0, 0x216177}, /* East Asian ideograph */ + {"\xAB", 0, 0x216178}, /* East Asian ideograph */ + {"\xAE", 0, 0x216179}, /* East Asian ideograph */ + {"\xAA", 0, 0x21617A}, /* East Asian ideograph */ + {"\x80", 0, 0x235672}, /* East Asian ideograph */ + {"\x8C", 0, 0x235673}, /* East Asian ideograph */ + {"\x95", 0, 0x23567A}, /* East Asian ideograph */ + {"\x83", 0, 0x235721}, /* East Asian ideograph */ + {"\x8E", 0, 0x235729}, /* East Asian ideograph */ + {"\x90", 0, 0x23572B}, /* East Asian ideograph */ + {"\x93", 0, 0x23572E}, /* East Asian ideograph */ + {"\x97", 0, 0x23572F}, /* East Asian ideograph */ + {"\x92", 0, 0x235731}, /* East Asian ideograph */ + {"\x98", 0, 0x235732}, /* East Asian ideograph */ + {"\x9F", 0, 0x235736}, /* East Asian ideograph */ + {"\x9D", 0, 0x235739}, /* East Asian ideograph */ + {"\xAD", 0, 0x23573C}, /* East Asian ideograph */ + {"\x9A", 0, 0x23573D}, /* East Asian ideograph */ + {"\xA8", 0, 0x23573F}, /* East Asian ideograph */ + {"\x9E", 0, 0x235742}, /* East Asian ideograph */ + {"\x99", 0, 0x235743}, /* East Asian ideograph */ + {"\x86", 0, 0x235749}, /* East Asian ideograph */ + {"\xA0", 0, 0x23574E}, /* East Asian ideograph */ + {"\xBF", 0, 0x23575E}, /* East Asian ideograph */ + {"\xB9", 0, 0x235766}, /* East Asian ideograph */ + {"\xBB", 0, 0x23576B}, /* East Asian ideograph */ + {"\x96", 0, 0x69723B}, /* East Asian ideograph */ + {"\xB4", 0, 0x697240}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page314 = { + marc8r_9page314_flat, 0 +}; +/* PAGE 313 */ +struct yaz_iconv_trie_flat marc8r_9page313_flat[] = { + {"\x81", 0, 0x21616D}, /* East Asian ideograph */ + {"\x82", 0, 0x21616E}, /* East Asian ideograph */ + {"\x85", 0, 0x21616F}, /* East Asian ideograph */ + {"\x84", 0, 0x216170}, /* East Asian ideograph */ + {"\x8F", 0, 0x216171}, /* East Asian ideograph */ + {"\x94", 0, 0x216172}, /* East Asian ideograph */ + {"\x98", 0, 0x216173}, /* East Asian ideograph */ + {"\x9A", 0, 0x216174}, /* East Asian ideograph */ + {"\xB7", 0, 0x216175}, /* East Asian ideograph */ + {"\xAF", 0, 0x216176}, /* East Asian ideograph */ + {"\x83", 0, 0x235636}, /* East Asian ideograph */ + {"\x88", 0, 0x23563A}, /* East Asian ideograph */ + {"\x8E", 0, 0x23563C}, /* East Asian ideograph */ + {"\x8D", 0, 0x23563E}, /* East Asian ideograph */ + {"\x8B", 0, 0x235641}, /* East Asian ideograph */ + {"\x91", 0, 0x235647}, /* East Asian ideograph */ + {"\xB4", 0, 0x23565D}, /* East Asian ideograph */ + {"\xA8", 0, 0x235663}, /* East Asian ideograph */ + {"\xBD", 0, 0x23567B}, /* East Asian ideograph */ + {"\x87", 0, 0x276173}, /* East Asian ideograph */ + {"\x89", 0, 0x29563C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page313 = { + marc8r_9page313_flat, 0 +}; +/* PAGE 312 */ +struct yaz_iconv_trie_flat marc8r_9page312_flat[] = { + {"\x83", 0, 0x216162}, /* East Asian ideograph */ + {"\x86", 0, 0x216163}, /* East Asian ideograph */ + {"\x8D", 0, 0x216164}, /* East Asian ideograph */ + {"\x9A", 0, 0x216165}, /* East Asian ideograph */ + {"\xA2", 0, 0x216166}, /* East Asian ideograph */ + {"\xA5", 0, 0x216167}, /* East Asian ideograph */ + {"\xA7", 0, 0x216168}, /* East Asian ideograph */ + {"\xB1", 0, 0x21616A}, /* East Asian ideograph */ + {"\xB2", 0, 0x21616B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21616C}, /* East Asian ideograph */ + {"\x81", 0, 0x235536}, /* East Asian ideograph */ + {"\x82", 0, 0x235538}, /* East Asian ideograph */ + {"\x80", 0, 0x23553B}, /* East Asian ideograph */ + {"\x88", 0, 0x23553C}, /* East Asian ideograph */ + {"\x84", 0, 0x23553E}, /* East Asian ideograph */ + {"\x85", 0, 0x235541}, /* East Asian ideograph */ + {"\x8B", 0, 0x235543}, /* East Asian ideograph */ + {"\x8E", 0, 0x235547}, /* East Asian ideograph */ + {"\x91", 0, 0x23554E}, /* East Asian ideograph */ + {"\x90", 0, 0x23554F}, /* East Asian ideograph */ + {"\x98", 0, 0x235554}, /* East Asian ideograph */ + {"\x9D", 0, 0x235556}, /* East Asian ideograph */ + {"\x9F", 0, 0x23555E}, /* East Asian ideograph */ + {"\xA3", 0, 0x235566}, /* East Asian ideograph */ + {"\xA9", 0, 0x23556C}, /* East Asian ideograph */ + {"\xAD", 0, 0x235573}, /* East Asian ideograph */ + {"\xAE", 0, 0x235574}, /* East Asian ideograph */ + {"\xAF", 0, 0x235576}, /* East Asian ideograph */ + {"\xB4", 0, 0x23557D}, /* East Asian ideograph */ + {"\xB5", 0, 0x235622}, /* East Asian ideograph */ + {"\xB7", 0, 0x235623}, /* East Asian ideograph */ + {"\x93", 0, 0x276166}, /* East Asian ideograph */ + {"\x92", 0, 0x2F5E66}, /* East Asian ideograph */ + {"\xA8", 0, 0x33362A}, /* East Asian ideograph */ + {"\xBB", 0, 0x39505B}, /* East Asian ideograph */ + {"\xAA", 0, 0x396167}, /* East Asian ideograph */ + {"\xAE", 0, 0x4D5574}, /* East Asian ideograph */ + {"\x8F", 0, 0x70775D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page312 = { + marc8r_9page312_flat, 0 +}; +/* PAGE 311 */ +struct yaz_iconv_trie_flat marc8r_9page311_flat[] = { + {"\x8F", 0, 0x216158}, /* East Asian ideograph */ + {"\x93", 0, 0x216159}, /* East Asian ideograph */ + {"\x94", 0, 0x21615A}, /* East Asian ideograph */ + {"\x92", 0, 0x21615B}, /* East Asian ideograph */ + {"\x98", 0, 0x21615C}, /* East Asian ideograph */ + {"\xA5", 0, 0x21615D}, /* East Asian ideograph */ + {"\xAE", 0, 0x21615F}, /* East Asian ideograph */ + {"\xBB", 0, 0x216160}, /* East Asian ideograph */ + {"\xAD", 0, 0x216161}, /* East Asian ideograph */ + {"\x81", 0, 0x235457}, /* East Asian ideograph */ + {"\x80", 0, 0x235459}, /* East Asian ideograph */ + {"\x82", 0, 0x23545A}, /* East Asian ideograph */ + {"\x88", 0, 0x23545D}, /* East Asian ideograph */ + {"\x90", 0, 0x235466}, /* East Asian ideograph */ + {"\x91", 0, 0x23546A}, /* East Asian ideograph */ + {"\x96", 0, 0x23546D}, /* East Asian ideograph */ + {"\x9C", 0, 0x235472}, /* East Asian ideograph */ + {"\x9F", 0, 0x235474}, /* East Asian ideograph */ + {"\xA0", 0, 0x235476}, /* East Asian ideograph */ + {"\xA2", 0, 0x235477}, /* East Asian ideograph */ + {"\xA7", 0, 0x235521}, /* East Asian ideograph */ + {"\xAB", 0, 0x235527}, /* East Asian ideograph */ + {"\xB2", 0, 0x235528}, /* East Asian ideograph */ + {"\xAF", 0, 0x23552A}, /* East Asian ideograph */ + {"\xB9", 0, 0x235532}, /* East Asian ideograph */ + {"\xBD", 0, 0x235535}, /* East Asian ideograph */ + {"\x85", 0, 0x276158}, /* East Asian ideograph */ + {"\x8B", 0, 0x29546D}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D3D5E}, /* East Asian ideograph */ + {"\x97", 0, 0x2D5421}, /* East Asian ideograph */ + {"\x84", 0, 0x2D6159}, /* East Asian ideograph */ + {"\xA1", 0, 0x2F5476}, /* East Asian ideograph */ + {"\x95", 0, 0x33537D}, /* East Asian ideograph */ + {"\xA3", 0, 0x393078}, /* East Asian ideograph */ + {"\xA6", 0, 0x394A60}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B537D}, /* East Asian ideograph */ + {"\xAA", 0, 0x4B615F}, /* East Asian ideograph */ + {"\x9E", 0, 0x697174}, /* East Asian ideograph */ + {"\xB1", 0, 0x69717D}, /* East Asian ideograph */ + {"\xB7", 0, 0x69717E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page311 = { + marc8r_9page311_flat, 0 +}; +/* PAGE 310 */ +struct yaz_iconv_trie_flat marc8r_9page310_flat[] = { + {"\xA8", 0, 0x216152}, /* East Asian ideograph */ + {"\xAF", 0, 0x216153}, /* East Asian ideograph */ + {"\xB0", 0, 0x216154}, /* East Asian ideograph */ + {"\xB7", 0, 0x216155}, /* East Asian ideograph */ + {"\xB8", 0, 0x216156}, /* East Asian ideograph */ + {"\xBC", 0, 0x216157}, /* East Asian ideograph */ + {"\xAD", 0, 0x23543F}, /* East Asian ideograph */ + {"\xAB", 0, 0x235441}, /* East Asian ideograph */ + {"\xB1", 0, 0x235443}, /* East Asian ideograph */ + {"\xB3", 0, 0x235445}, /* East Asian ideograph */ + {"\xB6", 0, 0x235449}, /* East Asian ideograph */ + {"\xBB", 0, 0x23544C}, /* East Asian ideograph */ + {"\xBA", 0, 0x235450}, /* East Asian ideograph */ + {"\xBD", 0, 0x235454}, /* East Asian ideograph */ + {"\x82", 0, 0x275234}, /* East Asian ideograph */ + {"\x87", 0, 0x27613B}, /* East Asian ideograph */ + {"\x86", 0, 0x27613C}, /* East Asian ideograph */ + {"\x8B", 0, 0x27613D}, /* East Asian ideograph */ + {"\x8F", 0, 0x27613E}, /* East Asian ideograph */ + {"\x88", 0, 0x27613F}, /* East Asian ideograph */ + {"\x91", 0, 0x276140}, /* East Asian ideograph */ + {"\x97", 0, 0x276141}, /* East Asian ideograph */ + {"\x9B", 0, 0x276142}, /* East Asian ideograph */ + {"\x9E", 0, 0x276143}, /* East Asian ideograph */ + {"\x9A", 0, 0x276145}, /* East Asian ideograph */ + {"\xA0", 0, 0x276146}, /* East Asian ideograph */ + {"\xA1", 0, 0x276149}, /* East Asian ideograph */ + {"\x84", 0, 0x27614A}, /* East Asian ideograph */ + {"\x8C", 0, 0x27614D}, /* East Asian ideograph */ + {"\xA4", 0, 0x27614E}, /* East Asian ideograph */ + {"\xA5", 0, 0x276150}, /* East Asian ideograph */ + {"\x8A", 0, 0x276151}, /* East Asian ideograph */ + {"\x80", 0, 0x295269}, /* East Asian ideograph */ + {"\x90", 0, 0x29533D}, /* East Asian ideograph */ + {"\x92", 0, 0x295340}, /* East Asian ideograph */ + {"\x93", 0, 0x295347}, /* East Asian ideograph */ + {"\x9F", 0, 0x29535A}, /* East Asian ideograph */ + {"\x98", 0, 0x295360}, /* East Asian ideograph */ + {"\x9D", 0, 0x29536A}, /* East Asian ideograph */ + {"\x9C", 0, 0x295370}, /* East Asian ideograph */ + {"\x96", 0, 0x295379}, /* East Asian ideograph */ + {"\xA2", 0, 0x29537A}, /* East Asian ideograph */ + {"\xA3", 0, 0x295421}, /* East Asian ideograph */ + {"\x81", 0, 0x295422}, /* East Asian ideograph */ + {"\x85", 0, 0x295427}, /* East Asian ideograph */ + {"\xA7", 0, 0x295433}, /* East Asian ideograph */ + {"\xBE", 0, 0x2F575F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page310 = { + marc8r_9page310_flat, 0 +}; +/* PAGE 309 */ +struct yaz_iconv_trie_flat marc8r_9page309_flat[] = { + {"\x83", 0, 0x216146}, /* East Asian ideograph */ + {"\x85", 0, 0x216147}, /* East Asian ideograph */ + {"\x80", 0, 0x216148}, /* East Asian ideograph */ + {"\x95", 0, 0x21614A}, /* East Asian ideograph */ + {"\x9A", 0, 0x21614B}, /* East Asian ideograph */ + {"\x9B", 0, 0x21614C}, /* East Asian ideograph */ + {"\x97", 0, 0x21614D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21614E}, /* East Asian ideograph */ + {"\xA2", 0, 0x21614F}, /* East Asian ideograph */ + {"\xA5", 0, 0x216150}, /* East Asian ideograph */ + {"\xAA", 0, 0x216151}, /* East Asian ideograph */ + {"\x81", 0, 0x235370}, /* East Asian ideograph */ + {"\x82", 0, 0x235379}, /* East Asian ideograph */ + {"\x84", 0, 0x23537A}, /* East Asian ideograph */ + {"\x88", 0, 0x23537D}, /* East Asian ideograph */ + {"\x8C", 0, 0x23537E}, /* East Asian ideograph */ + {"\x8D", 0, 0x235422}, /* East Asian ideograph */ + {"\x92", 0, 0x235424}, /* East Asian ideograph */ + {"\x8A", 0, 0x235427}, /* East Asian ideograph */ + {"\x98", 0, 0x23542A}, /* East Asian ideograph */ + {"\x96", 0, 0x23542C}, /* East Asian ideograph */ + {"\xA4", 0, 0x235433}, /* East Asian ideograph */ + {"\xA6", 0, 0x235434}, /* East Asian ideograph */ + {"\xAB", 0, 0x23543A}, /* East Asian ideograph */ + {"\xAC", 0, 0x27612C}, /* East Asian ideograph */ + {"\xAD", 0, 0x27612E}, /* East Asian ideograph */ + {"\xB0", 0, 0x27612F}, /* East Asian ideograph */ + {"\xAE", 0, 0x276130}, /* East Asian ideograph */ + {"\xAF", 0, 0x276131}, /* East Asian ideograph */ + {"\xB3", 0, 0x276132}, /* East Asian ideograph */ + {"\xBB", 0, 0x276133}, /* East Asian ideograph */ + {"\xBC", 0, 0x276134}, /* East Asian ideograph */ + {"\xBE", 0, 0x276135}, /* East Asian ideograph */ + {"\xB7", 0, 0x276136}, /* East Asian ideograph */ + {"\xB6", 0, 0x276137}, /* East Asian ideograph */ + {"\xB9", 0, 0x276138}, /* East Asian ideograph */ + {"\xB8", 0, 0x276139}, /* East Asian ideograph */ + {"\xBD", 0, 0x27613A}, /* East Asian ideograph */ + {"\xB1", 0, 0x276147}, /* East Asian ideograph */ + {"\xBF", 0, 0x27614C}, /* East Asian ideograph */ + {"\xB4", 0, 0x27614F}, /* East Asian ideograph */ + {"\xB5", 0, 0x295263}, /* East Asian ideograph */ + {"\xBA", 0, 0x295369}, /* East Asian ideograph */ + {"\xA9", 0, 0x3F4621}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page309 = { + marc8r_9page309_flat, 0 +}; +/* PAGE 308 */ +struct yaz_iconv_trie_flat marc8r_9page308_flat[] = { + {"\x81", 0, 0x21613D}, /* East Asian ideograph */ + {"\x8E", 0, 0x216140}, /* East Asian ideograph */ + {"\x99", 0, 0x216141}, /* East Asian ideograph */ + {"\x96", 0, 0x216142}, /* East Asian ideograph */ + {"\xAB", 0, 0x216143}, /* East Asian ideograph */ + {"\xB0", 0, 0x216144}, /* East Asian ideograph */ + {"\xB7", 0, 0x216145}, /* East Asian ideograph */ + {"\xBE", 0, 0x216149}, /* East Asian ideograph */ + {"\x82", 0, 0x235324}, /* East Asian ideograph */ + {"\x8F", 0, 0x23533D}, /* East Asian ideograph */ + {"\x8B", 0, 0x23533E}, /* East Asian ideograph */ + {"\x89", 0, 0x23533F}, /* East Asian ideograph */ + {"\x84", 0, 0x235344}, /* East Asian ideograph */ + {"\x91", 0, 0x235345}, /* East Asian ideograph */ + {"\x85", 0, 0x235347}, /* East Asian ideograph */ + {"\x90", 0, 0x235348}, /* East Asian ideograph */ + {"\xA4", 0, 0x23534C}, /* East Asian ideograph */ + {"\xA2", 0, 0x23534D}, /* East Asian ideograph */ + {"\xA0", 0, 0x23534F}, /* East Asian ideograph */ + {"\xA7", 0, 0x235352}, /* East Asian ideograph */ + {"\xAF", 0, 0x235359}, /* East Asian ideograph */ + {"\xB8", 0, 0x23535A}, /* East Asian ideograph */ + {"\xAD", 0, 0x235360}, /* East Asian ideograph */ + {"\xB5", 0, 0x235361}, /* East Asian ideograph */ + {"\xB2", 0, 0x235364}, /* East Asian ideograph */ + {"\xB6", 0, 0x235369}, /* East Asian ideograph */ + {"\xAE", 0, 0x23536A}, /* East Asian ideograph */ + {"\xBB", 0, 0x235374}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D6162}, /* East Asian ideograph */ + {"\x83", 0, 0x333556}, /* East Asian ideograph */ + {"\xA3", 0, 0x336162}, /* East Asian ideograph */ + {"\x88", 0, 0x4B613F}, /* East Asian ideograph */ + {"\x92", 0, 0x4B6145}, /* East Asian ideograph */ + {"\x93", 0, 0x4B614D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page308 = { + marc8r_9page308_flat, 0 +}; +/* PAGE 307 */ +struct yaz_iconv_trie_flat marc8r_9page307_flat[] = { + {"\x81", 0, 0x216132}, /* East Asian ideograph */ + {"\x90", 0, 0x216133}, /* East Asian ideograph */ + {"\x9D", 0, 0x216134}, /* East Asian ideograph */ + {"\x95", 0, 0x216135}, /* East Asian ideograph */ + {"\x9F", 0, 0x216136}, /* East Asian ideograph */ + {"\x9B", 0, 0x216137}, /* East Asian ideograph */ + {"\x92", 0, 0x216138}, /* East Asian ideograph */ + {"\x99", 0, 0x216139}, /* East Asian ideograph */ + {"\x91", 0, 0x21613A}, /* East Asian ideograph */ + {"\xAD", 0, 0x21613B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21613C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21613E}, /* East Asian ideograph */ + {"\xA2", 0, 0x21613F}, /* East Asian ideograph */ + {"\x83", 0, 0x23524F}, /* East Asian ideograph */ + {"\x93", 0, 0x235261}, /* East Asian ideograph */ + {"\x94", 0, 0x235263}, /* East Asian ideograph */ + {"\x89", 0, 0x235265}, /* East Asian ideograph */ + {"\x98", 0, 0x235269}, /* East Asian ideograph */ + {"\xAC", 0, 0x235274}, /* East Asian ideograph */ + {"\xB0", 0, 0x23527A}, /* East Asian ideograph */ + {"\xA3", 0, 0x23527B}, /* East Asian ideograph */ + {"\xAA", 0, 0x23527C}, /* East Asian ideograph */ + {"\xB8", 0, 0x235329}, /* East Asian ideograph */ + {"\xB4", 0, 0x23532A}, /* East Asian ideograph */ + {"\xBB", 0, 0x235330}, /* East Asian ideograph */ + {"\xBD", 0, 0x235331}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D6132}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D6134}, /* East Asian ideograph */ + {"\x88", 0, 0x2D6147}, /* East Asian ideograph */ + {"\xA1", 0, 0x335234}, /* East Asian ideograph */ + {"\x85", 0, 0x3F614C}, /* East Asian ideograph */ + {"\x84", 0, 0x4B6130}, /* East Asian ideograph */ + {"\x86", 0, 0x4B6147}, /* East Asian ideograph */ + {"\xB2", 0, 0x697152}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page307 = { + marc8r_9page307_flat, 0 +}; +/* PAGE 306 */ +struct yaz_iconv_trie_flat marc8r_9page306_flat[] = { + {"\x96", 0, 0x216128}, /* East Asian ideograph */ + {"\x99", 0, 0x216129}, /* East Asian ideograph */ + {"\xA5", 0, 0x21612A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21612B}, /* East Asian ideograph */ + {"\xAC", 0, 0x21612C}, /* East Asian ideograph */ + {"\xAE", 0, 0x21612D}, /* East Asian ideograph */ + {"\xAD", 0, 0x21612E}, /* East Asian ideograph */ + {"\xB3", 0, 0x21612F}, /* East Asian ideograph */ + {"\xB1", 0, 0x216130}, /* East Asian ideograph */ + {"\xB4", 0, 0x216131}, /* East Asian ideograph */ + {"\x97", 0, 0x23522F}, /* East Asian ideograph */ + {"\x98", 0, 0x235230}, /* East Asian ideograph */ + {"\xA3", 0, 0x23523B}, /* East Asian ideograph */ + {"\xA1", 0, 0x23523C}, /* East Asian ideograph */ + {"\xA6", 0, 0x23523E}, /* East Asian ideograph */ + {"\xA9", 0, 0x235241}, /* East Asian ideograph */ + {"\xAA", 0, 0x235242}, /* East Asian ideograph */ + {"\xB5", 0, 0x235249}, /* East Asian ideograph */ + {"\xBF", 0, 0x23524D}, /* East Asian ideograph */ + {"\xBC", 0, 0x23524E}, /* East Asian ideograph */ + {"\xB9", 0, 0x235253}, /* East Asian ideograph */ + {"\xBD", 0, 0x235254}, /* East Asian ideograph */ + {"\x81", 0, 0x276075}, /* East Asian ideograph */ + {"\x86", 0, 0x276079}, /* East Asian ideograph */ + {"\x84", 0, 0x27607B}, /* East Asian ideograph */ + {"\x85", 0, 0x27607C}, /* East Asian ideograph */ + {"\x8F", 0, 0x27607E}, /* East Asian ideograph */ + {"\x8A", 0, 0x276121}, /* East Asian ideograph */ + {"\x92", 0, 0x276123}, /* East Asian ideograph */ + {"\x8B", 0, 0x276127}, /* East Asian ideograph */ + {"\x90", 0, 0x29516A}, /* East Asian ideograph */ + {"\x91", 0, 0x29516D}, /* East Asian ideograph */ + {"\x8D", 0, 0x295170}, /* East Asian ideograph */ + {"\x94", 0, 0x295172}, /* East Asian ideograph */ + {"\x93", 0, 0x295175}, /* East Asian ideograph */ + {"\x80", 0, 0x456076}, /* East Asian ideograph */ + {"\x88", 0, 0x516122}, /* East Asian ideograph */ + {"\x87", 0, 0x706247}, /* East Asian ideograph */ + {"\x95", 0, 0x70624E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page306 = { + marc8r_9page306_flat, 0 +}; +/* PAGE 305 */ +struct yaz_iconv_trie_flat marc8r_9page305_flat[] = { + {"\x85", 0, 0x216123}, /* East Asian ideograph */ + {"\x92", 0, 0x216124}, /* East Asian ideograph */ + {"\x91", 0, 0x216125}, /* East Asian ideograph */ + {"\x9C", 0, 0x216126}, /* East Asian ideograph */ + {"\x9E", 0, 0x216127}, /* East Asian ideograph */ + {"\x82", 0, 0x235154}, /* East Asian ideograph (variant of EACC 4D5154) */ + {"\x81", 0, 0x235161}, /* East Asian ideograph */ + {"\x80", 0, 0x235164}, /* East Asian ideograph */ + {"\x88", 0, 0x23516A}, /* East Asian ideograph */ + {"\x87", 0, 0x23516C}, /* East Asian ideograph */ + {"\x89", 0, 0x23516D}, /* East Asian ideograph */ + {"\x83", 0, 0x235170}, /* East Asian ideograph */ + {"\x8D", 0, 0x235171}, /* East Asian ideograph */ + {"\x8C", 0, 0x235172}, /* East Asian ideograph */ + {"\x8E", 0, 0x235173}, /* East Asian ideograph */ + {"\x90", 0, 0x235174}, /* East Asian ideograph */ + {"\x98", 0, 0x23517A}, /* East Asian ideograph */ + {"\x94", 0, 0x23517B}, /* East Asian ideograph */ + {"\x95", 0, 0x23517E}, /* East Asian ideograph */ + {"\x97", 0, 0x235222}, /* East Asian ideograph (variant of EACC 475222) */ + {"\x9D", 0, 0x235229}, /* East Asian ideograph */ + {"\x9F", 0, 0x23522B}, /* East Asian ideograph */ + {"\xA5", 0, 0x276065}, /* East Asian ideograph */ + {"\xA8", 0, 0x276067}, /* East Asian ideograph */ + {"\xAC", 0, 0x276068}, /* East Asian ideograph */ + {"\xAA", 0, 0x276069}, /* East Asian ideograph */ + {"\xAE", 0, 0x27606A}, /* East Asian ideograph */ + {"\xAD", 0, 0x27606B}, /* East Asian ideograph */ + {"\xB2", 0, 0x27606C}, /* East Asian ideograph */ + {"\xB4", 0, 0x27606D}, /* East Asian ideograph */ + {"\xB1", 0, 0x27606E}, /* East Asian ideograph */ + {"\xB0", 0, 0x27606F}, /* East Asian ideograph */ + {"\xBA", 0, 0x276070}, /* East Asian ideograph */ + {"\xB5", 0, 0x276072}, /* East Asian ideograph */ + {"\xB7", 0, 0x276073}, /* East Asian ideograph */ + {"\xBF", 0, 0x276077}, /* East Asian ideograph */ + {"\xBC", 0, 0x276078}, /* East Asian ideograph */ + {"\xAF", 0, 0x27607A}, /* East Asian ideograph */ + {"\xB6", 0, 0x276124}, /* East Asian ideograph */ + {"\xAB", 0, 0x29506C}, /* East Asian ideograph */ + {"\xBD", 0, 0x295132}, /* East Asian ideograph */ + {"\xA7", 0, 0x295153}, /* East Asian ideograph */ + {"\xA9", 0, 0x295166}, /* East Asian ideograph */ + {"\xA3", 0, 0x456064}, /* East Asian ideograph */ + {"\x97", 0, 0x475222}, /* East Asian ideograph */ + {"\x8B", 0, 0x4B6122}, /* East Asian ideograph */ + {"\x82", 0, 0x4D5154}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page305 = { + marc8r_9page305_flat, 0 +}; +/* PAGE 304 */ +struct yaz_iconv_trie_flat marc8r_9page304_flat[] = { + {"\x83", 0, 0x216070}, /* East Asian ideograph */ + {"\x8A", 0, 0x216071}, /* East Asian ideograph */ + {"\x8C", 0, 0x216072}, /* East Asian ideograph */ + {"\x89", 0, 0x216073}, /* East Asian ideograph */ + {"\x90", 0, 0x216074}, /* East Asian ideograph */ + {"\x92", 0, 0x216075}, /* East Asian ideograph */ + {"\x98", 0, 0x216076}, /* East Asian ideograph */ + {"\x93", 0, 0x216077}, /* East Asian ideograph */ + {"\x85", 0, 0x216078}, /* East Asian ideograph */ + {"\xA8", 0, 0x216079}, /* East Asian ideograph */ + {"\x9E", 0, 0x21607A}, /* East Asian ideograph */ + {"\x9B", 0, 0x21607B}, /* East Asian ideograph */ + {"\xA1", 0, 0x21607C}, /* East Asian ideograph */ + {"\xB5", 0, 0x21607D}, /* East Asian ideograph */ + {"\xBE", 0, 0x21607E}, /* East Asian ideograph */ + {"\xBF", 0, 0x216121}, /* East Asian ideograph */ + {"\xBD", 0, 0x216122}, /* East Asian ideograph */ + {"\x87", 0, 0x235124}, /* East Asian ideograph */ + {"\x82", 0, 0x235128}, /* East Asian ideograph */ + {"\x96", 0, 0x23512F}, /* East Asian ideograph */ + {"\x94", 0, 0x235130}, /* East Asian ideograph */ + {"\x97", 0, 0x235131}, /* East Asian ideograph */ + {"\x91", 0, 0x235132}, /* East Asian ideograph */ + {"\x95", 0, 0x235138}, /* East Asian ideograph */ + {"\xA4", 0, 0x23513A}, /* East Asian ideograph */ + {"\x9F", 0, 0x23513B}, /* East Asian ideograph */ + {"\x9C", 0, 0x235140}, /* East Asian ideograph */ + {"\xA9", 0, 0x235143}, /* East Asian ideograph */ + {"\xA7", 0, 0x235145}, /* East Asian ideograph */ + {"\x9A", 0, 0x235147}, /* East Asian ideograph */ + {"\xAE", 0, 0x23514F}, /* East Asian ideograph */ + {"\xAC", 0, 0x235150}, /* East Asian ideograph */ + {"\xAA", 0, 0x235151}, /* East Asian ideograph */ + {"\xB3", 0, 0x235153}, /* East Asian ideograph */ + {"\xB2", 0, 0x235155}, /* East Asian ideograph */ + {"\xAB", 0, 0x235156}, /* East Asian ideograph */ + {"\xB1", 0, 0x235158}, /* East Asian ideograph */ + {"\xBB", 0, 0x23515C}, /* East Asian ideograph */ + {"\xBA", 0, 0x235160}, /* East Asian ideograph */ + {"\xBC", 0, 0x235166}, /* East Asian ideograph */ + {"\x8D", 0, 0x276126}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D6078}, /* East Asian ideograph */ + {"\x88", 0, 0x2E6F43}, /* East Asian ideograph */ + {"\xB9", 0, 0x395063}, /* East Asian ideograph */ + {"\x9D", 0, 0x4B606F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page304 = { + marc8r_9page304_flat, 0 +}; +/* PAGE 303 */ +struct yaz_iconv_trie_flat marc8r_9page303_flat[] = { + {"\x84", 0, 0x216062}, /* East Asian ideograph */ + {"\x9B", 0, 0x216063}, /* East Asian ideograph */ + {"\x9F", 0, 0x216064}, /* East Asian ideograph */ + {"\xA2", 0, 0x216065}, /* East Asian ideograph */ + {"\xA7", 0, 0x216066}, /* East Asian ideograph */ + {"\xA9", 0, 0x216067}, /* East Asian ideograph */ + {"\xAD", 0, 0x216068}, /* East Asian ideograph */ + {"\xAA", 0, 0x216069}, /* East Asian ideograph */ + {"\xAE", 0, 0x21606A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21606B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21606C}, /* East Asian ideograph */ + {"\xB4", 0, 0x21606D}, /* East Asian ideograph */ + {"\xBD", 0, 0x21606E}, /* East Asian ideograph */ + {"\xBE", 0, 0x21606F}, /* East Asian ideograph */ + {"\x80", 0, 0x23504E}, /* East Asian ideograph */ + {"\x86", 0, 0x235053}, /* East Asian ideograph */ + {"\xA1", 0, 0x23505F}, /* East Asian ideograph */ + {"\xA3", 0, 0x235060}, /* East Asian ideograph */ + {"\xA4", 0, 0x235061}, /* East Asian ideograph */ + {"\xA5", 0, 0x235063}, /* East Asian ideograph */ + {"\xB1", 0, 0x235068}, /* East Asian ideograph */ + {"\xAB", 0, 0x23506C}, /* East Asian ideograph */ + {"\x8E", 0, 0x27605B}, /* East Asian ideograph */ + {"\x92", 0, 0x27605C}, /* East Asian ideograph */ + {"\x93", 0, 0x27605F}, /* East Asian ideograph */ + {"\x95", 0, 0x276061}, /* East Asian ideograph */ + {"\x98", 0, 0x276062}, /* East Asian ideograph */ + {"\x9E", 0, 0x276063}, /* East Asian ideograph */ + {"\x99", 0, 0x295053}, /* East Asian ideograph */ + {"\xA8", 0, 0x295222}, /* East Asian ideograph */ + {"\x9C", 0, 0x2D5259}, /* East Asian ideograph */ + {"\x83", 0, 0x336062}, /* East Asian ideograph */ + {"\x88", 0, 0x355053}, /* East Asian ideograph */ + {"\xB0", 0, 0x45606B}, /* East Asian ideograph */ + {"\x91", 0, 0x4D503A}, /* East Asian ideograph */ + {"\x9A", 0, 0x4D5053}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page303 = { + marc8r_9page303_flat, 0 +}; +/* PAGE 302 */ +struct yaz_iconv_trie_flat marc8r_9page302_flat[] = { + {"\xA8", 0, 0x21605B}, /* East Asian ideograph */ + {"\xAF", 0, 0x21605C}, /* East Asian ideograph */ + {"\xB1", 0, 0x21605D}, /* East Asian ideograph */ + {"\xB3", 0, 0x21605E}, /* East Asian ideograph */ + {"\xB6", 0, 0x21605F}, /* East Asian ideograph */ + {"\xBA", 0, 0x216060}, /* East Asian ideograph */ + {"\xBC", 0, 0x216061}, /* East Asian ideograph */ + {"\xAD", 0, 0x235039}, /* East Asian ideograph */ + {"\xB4", 0, 0x235040}, /* East Asian ideograph */ + {"\xB8", 0, 0x235048}, /* East Asian ideograph */ + {"\xBF", 0, 0x23504A}, /* East Asian ideograph */ + {"\xBB", 0, 0x23504D}, /* East Asian ideograph */ + {"\x84", 0, 0x27603D}, /* East Asian ideograph */ + {"\x81", 0, 0x276041}, /* East Asian ideograph */ + {"\x82", 0, 0x276042}, /* East Asian ideograph */ + {"\x87", 0, 0x276043}, /* East Asian ideograph */ + {"\x86", 0, 0x276044}, /* East Asian ideograph */ + {"\x89", 0, 0x276045}, /* East Asian ideograph */ + {"\x8A", 0, 0x276047}, /* East Asian ideograph */ + {"\x88", 0, 0x276048}, /* East Asian ideograph */ + {"\x91", 0, 0x276049}, /* East Asian ideograph */ + {"\x93", 0, 0x27604A}, /* East Asian ideograph */ + {"\x94", 0, 0x27604B}, /* East Asian ideograph */ + {"\x90", 0, 0x27604C}, /* East Asian ideograph */ + {"\x97", 0, 0x27604D}, /* East Asian ideograph */ + {"\x9C", 0, 0x27604E}, /* East Asian ideograph */ + {"\x9D", 0, 0x27604F}, /* East Asian ideograph */ + {"\x98", 0, 0x276050}, /* East Asian ideograph */ + {"\x9A", 0, 0x276051}, /* East Asian ideograph */ + {"\x9B", 0, 0x276052}, /* East Asian ideograph */ + {"\xA0", 0, 0x276054}, /* East Asian ideograph */ + {"\xA4", 0, 0x276057}, /* East Asian ideograph */ + {"\x85", 0, 0x276059}, /* East Asian ideograph */ + {"\xA6", 0, 0x27605A}, /* East Asian ideograph */ + {"\x8D", 0, 0x284C62}, /* East Asian ideograph */ + {"\x83", 0, 0x294E7B}, /* East Asian ideograph */ + {"\x80", 0, 0x294F23}, /* East Asian ideograph */ + {"\x8F", 0, 0x294F2C}, /* East Asian ideograph */ + {"\xA1", 0, 0x294F6B}, /* East Asian ideograph */ + {"\x9F", 0, 0x294F77}, /* East Asian ideograph */ + {"\xA2", 0, 0x295021}, /* East Asian ideograph */ + {"\xA5", 0, 0x295029}, /* East Asian ideograph */ + {"\x9E", 0, 0x295030}, /* East Asian ideograph */ + {"\xA7", 0, 0x295031}, /* East Asian ideograph */ + {"\x96", 0, 0x454F45}, /* East Asian ideograph */ + {"\x8C", 0, 0x4D4F39}, /* East Asian ideograph */ + {"\xAA", 0, 0x697124}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page302 = { + marc8r_9page302_flat, 0 +}; +/* PAGE 301 */ +struct yaz_iconv_trie_flat marc8r_9page301_flat[] = { + {"\x86", 0, 0x21604D}, /* East Asian ideograph */ + {"\x94", 0, 0x21604E}, /* East Asian ideograph */ + {"\x8D", 0, 0x21604F}, /* East Asian ideograph */ + {"\x8C", 0, 0x216050}, /* East Asian ideograph */ + {"\x8E", 0, 0x216051}, /* East Asian ideograph */ + {"\x93", 0, 0x216052}, /* East Asian ideograph */ + {"\x9E", 0, 0x216053}, /* East Asian ideograph (variant of EACC 4B6053) */ + {"\x9A", 0, 0x216054}, /* East Asian ideograph */ + {"\x98", 0, 0x216055}, /* East Asian ideograph */ + {"\xA7", 0, 0x216056}, /* East Asian ideograph */ + {"\xAB", 0, 0x216057}, /* East Asian ideograph */ + {"\xAF", 0, 0x216058}, /* East Asian ideograph */ + {"\xB1", 0, 0x216059}, /* East Asian ideograph */ + {"\xB0", 0, 0x21605A}, /* East Asian ideograph */ + {"\x87", 0, 0x234F4B}, /* East Asian ideograph */ + {"\x84", 0, 0x234F4E}, /* East Asian ideograph */ + {"\x92", 0, 0x234F60}, /* East Asian ideograph */ + {"\x8B", 0, 0x234F62}, /* East Asian ideograph */ + {"\x9C", 0, 0x234F6A}, /* East Asian ideograph */ + {"\x99", 0, 0x234F6B}, /* East Asian ideograph */ + {"\x97", 0, 0x234F6F}, /* East Asian ideograph */ + {"\x96", 0, 0x234F72}, /* East Asian ideograph */ + {"\xA2", 0, 0x234F77}, /* East Asian ideograph */ + {"\xA8", 0, 0x234F7E}, /* East Asian ideograph */ + {"\xA5", 0, 0x235021}, /* East Asian ideograph */ + {"\xA6", 0, 0x235022}, /* East Asian ideograph */ + {"\xAC", 0, 0x235029}, /* East Asian ideograph */ + {"\xB3", 0, 0x235030}, /* East Asian ideograph */ + {"\xB4", 0, 0x235031}, /* East Asian ideograph */ + {"\xB5", 0, 0x276037}, /* East Asian ideograph */ + {"\xB6", 0, 0x276038}, /* East Asian ideograph */ + {"\xB7", 0, 0x276039}, /* East Asian ideograph */ + {"\xB9", 0, 0x27603A}, /* East Asian ideograph */ + {"\xBA", 0, 0x27603B}, /* East Asian ideograph */ + {"\xBB", 0, 0x27603C}, /* East Asian ideograph */ + {"\xBC", 0, 0x27603E}, /* East Asian ideograph */ + {"\xBD", 0, 0x27603F}, /* East Asian ideograph */ + {"\xBF", 0, 0x276040}, /* East Asian ideograph */ + {"\xBE", 0, 0x276056}, /* East Asian ideograph */ + {"\xBB", 0, 0x276165}, /* East Asian ideograph (duplicate simplified) */ + {"\xB8", 0, 0x294E79}, /* East Asian ideograph */ + {"\x9B", 0, 0x336054}, /* East Asian ideograph */ + {"\x95", 0, 0x336058}, /* East Asian ideograph */ + {"\x8F", 0, 0x45604E}, /* East Asian ideograph */ + {"\x9E", 0, 0x4B6053}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page301 = { + marc8r_9page301_flat, 0 +}; +/* PAGE 300 */ +struct yaz_iconv_trie_flat marc8r_9page300_flat[] = { + {"\x81", 0, 0x216037}, /* East Asian ideograph */ + {"\x82", 0, 0x216038}, /* East Asian ideograph */ + {"\x83", 0, 0x216039}, /* East Asian ideograph */ + {"\x85", 0, 0x21603A}, /* East Asian ideograph */ + {"\x86", 0, 0x21603B}, /* East Asian ideograph */ + {"\x88", 0, 0x21603C}, /* East Asian ideograph */ + {"\x90", 0, 0x21603D}, /* East Asian ideograph */ + {"\x8A", 0, 0x21603E}, /* East Asian ideograph */ + {"\x91", 0, 0x21603F}, /* East Asian ideograph */ + {"\x93", 0, 0x216040}, /* East Asian ideograph */ + {"\x92", 0, 0x216041}, /* East Asian ideograph */ + {"\x8C", 0, 0x216042}, /* East Asian ideograph */ + {"\x97", 0, 0x216043}, /* East Asian ideograph */ + {"\x98", 0, 0x216044}, /* East Asian ideograph (variant of EACC 4B6044) */ + {"\xA1", 0, 0x216045}, /* East Asian ideograph */ + {"\xAD", 0, 0x216046}, /* East Asian ideograph */ + {"\xB0", 0, 0x216047}, /* East Asian ideograph */ + {"\xB8", 0, 0x216048}, /* East Asian ideograph */ + {"\xBB", 0, 0x216049}, /* East Asian ideograph */ + {"\xB9", 0, 0x21604A}, /* East Asian ideograph */ + {"\xB7", 0, 0x21604B}, /* East Asian ideograph */ + {"\xA4", 0, 0x21604C}, /* East Asian ideograph */ + {"\x87", 0, 0x234E79}, /* East Asian ideograph */ + {"\x8F", 0, 0x234E7B}, /* East Asian ideograph */ + {"\x8D", 0, 0x234E7E}, /* East Asian ideograph */ + {"\x8E", 0, 0x234F23}, /* East Asian ideograph */ + {"\x96", 0, 0x234F26}, /* East Asian ideograph */ + {"\xA6", 0, 0x234F2C}, /* East Asian ideograph */ + {"\x9E", 0, 0x234F2D}, /* East Asian ideograph */ + {"\xAB", 0, 0x234F34}, /* East Asian ideograph */ + {"\xA0", 0, 0x234F37}, /* East Asian ideograph */ + {"\x9F", 0, 0x234F38}, /* East Asian ideograph */ + {"\xB3", 0, 0x234F3D}, /* East Asian ideograph */ + {"\xAE", 0, 0x234F40}, /* East Asian ideograph */ + {"\xAF", 0, 0x234F44}, /* East Asian ideograph */ + {"\xB2", 0, 0x234F45}, /* East Asian ideograph */ + {"\xBF", 0, 0x234F66}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D4F45}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D6056}, /* East Asian ideograph */ + {"\x80", 0, 0x2E4E56}, /* East Asian ideograph */ + {"\xBC", 0, 0x395A36}, /* East Asian ideograph */ + {"\x98", 0, 0x4B6044}, /* East Asian ideograph */ + {"\x9A", 0, 0x4B6048}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page300 = { + marc8r_9page300_flat, 0 +}; +/* PAGE 299 */ +struct yaz_iconv_trie_flat marc8r_9page299_flat[] = { + {"\x83", 0, 0x216029}, /* East Asian ideograph */ + {"\x81", 0, 0x21602A}, /* East Asian ideograph */ + {"\x86", 0, 0x21602B}, /* East Asian ideograph */ + {"\x8B", 0, 0x21602C}, /* East Asian ideograph */ + {"\x8C", 0, 0x21602D}, /* East Asian ideograph */ + {"\x93", 0, 0x21602E}, /* East Asian ideograph */ + {"\x9C", 0, 0x21602F}, /* East Asian ideograph */ + {"\xAD", 0, 0x216030}, /* East Asian ideograph */ + {"\xB3", 0, 0x216031}, /* East Asian ideograph */ + {"\xB6", 0, 0x216034}, /* East Asian ideograph */ + {"\xBB", 0, 0x216035}, /* East Asian ideograph */ + {"\xBF", 0, 0x216036}, /* East Asian ideograph (variant of EACC 456036) */ + {"\xAF", 0, 0x222F69}, /* East Asian ideograph */ + {"\x80", 0, 0x234E38}, /* East Asian ideograph */ + {"\x85", 0, 0x234E3B}, /* East Asian ideograph */ + {"\x89", 0, 0x234E43}, /* East Asian ideograph */ + {"\x8E", 0, 0x234E4B}, /* East Asian ideograph */ + {"\x8D", 0, 0x234E4C}, /* East Asian ideograph */ + {"\x90", 0, 0x234E4E}, /* East Asian ideograph */ + {"\x94", 0, 0x234E51}, /* East Asian ideograph */ + {"\x98", 0, 0x234E53}, /* East Asian ideograph */ + {"\x99", 0, 0x234E54}, /* East Asian ideograph */ + {"\x9D", 0, 0x234E59}, /* East Asian ideograph */ + {"\x9E", 0, 0x234E5C}, /* East Asian ideograph */ + {"\xA0", 0, 0x234E5E}, /* East Asian ideograph */ + {"\xA1", 0, 0x234E60}, /* East Asian ideograph */ + {"\xB5", 0, 0x234E6C}, /* East Asian ideograph */ + {"\xBA", 0, 0x234E73}, /* East Asian ideograph */ + {"\xA6", 0, 0x27602C}, /* East Asian ideograph */ + {"\xA7", 0, 0x27602D}, /* East Asian ideograph */ + {"\xA9", 0, 0x27602E}, /* East Asian ideograph */ + {"\xAC", 0, 0x27602F}, /* East Asian ideograph */ + {"\xAA", 0, 0x294E54}, /* East Asian ideograph */ + {"\xAB", 0, 0x294E5C}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D6030}, /* East Asian ideograph */ + {"\x88", 0, 0x335821}, /* East Asian ideograph */ + {"\xA4", 0, 0x395821}, /* East Asian ideograph */ + {"\xBF", 0, 0x456036}, /* East Asian ideograph */ + {"\x9E", 0, 0x474E5C}, /* East Asian ideograph (variant of EACC 234E5C) */ + {"\xB2", 0, 0x4D5F7B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page299 = { + marc8r_9page299_flat, 0 +}; +/* PAGE 298 */ +struct yaz_iconv_trie_flat marc8r_9page298_flat[] = { + {"\x85", 0, 0x215F7E}, /* East Asian ideograph */ + {"\x8D", 0, 0x216021}, /* East Asian ideograph */ + {"\x8B", 0, 0x216022}, /* East Asian ideograph */ + {"\x8F", 0, 0x216023}, /* East Asian ideograph */ + {"\x98", 0, 0x216024}, /* East Asian ideograph */ + {"\xA0", 0, 0x216025}, /* East Asian ideograph */ + {"\xA3", 0, 0x216026}, /* East Asian ideograph */ + {"\xA6", 0, 0x216027}, /* East Asian ideograph */ + {"\xAD", 0, 0x216028}, /* East Asian ideograph */ + {"\x97", 0, 0x216879}, /* East Asian ideograph */ + {"\x83", 0, 0x234D37}, /* East Asian ideograph */ + {"\x80", 0, 0x234D3A}, /* East Asian ideograph */ + {"\x81", 0, 0x234D3C}, /* East Asian ideograph */ + {"\x84", 0, 0x234D40}, /* East Asian ideograph */ + {"\x89", 0, 0x234D49}, /* East Asian ideograph */ + {"\x94", 0, 0x234D54}, /* East Asian ideograph */ + {"\x9B", 0, 0x234D59}, /* East Asian ideograph */ + {"\x9F", 0, 0x234D5A}, /* East Asian ideograph */ + {"\x9A", 0, 0x234D5C}, /* East Asian ideograph */ + {"\x9C", 0, 0x234D62}, /* East Asian ideograph */ + {"\xAC", 0, 0x234D6A}, /* East Asian ideograph */ + {"\xAE", 0, 0x234D70}, /* East Asian ideograph */ + {"\xA8", 0, 0x234D71}, /* East Asian ideograph */ + {"\xAB", 0, 0x234D74}, /* East Asian ideograph */ + {"\xA5", 0, 0x234D78}, /* East Asian ideograph */ + {"\xB2", 0, 0x234D7A}, /* East Asian ideograph */ + {"\xB4", 0, 0x234D7C}, /* East Asian ideograph */ + {"\xB3", 0, 0x234E24}, /* East Asian ideograph */ + {"\xB5", 0, 0x234E26}, /* East Asian ideograph */ + {"\xB9", 0, 0x234E29}, /* East Asian ideograph */ + {"\xB8", 0, 0x234E2D}, /* East Asian ideograph */ + {"\xBE", 0, 0x234E35}, /* East Asian ideograph */ + {"\x91", 0, 0x276029}, /* East Asian ideograph */ + {"\xAF", 0, 0x294E43}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D6021}, /* East Asian ideograph */ + {"\x92", 0, 0x4B4559}, /* East Asian ideograph */ + {"\x86", 0, 0x69705D}, /* East Asian ideograph */ + {"\x90", 0, 0x697060}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page298 = { + marc8r_9page298_flat, 0 +}; +/* PAGE 297 */ +struct yaz_iconv_trie_flat marc8r_9page297_flat[] = { + {"\x84", 0, 0x215F6D}, /* East Asian ideograph */ + {"\x82", 0, 0x215F6E}, /* East Asian ideograph */ + {"\x88", 0, 0x215F6F}, /* East Asian ideograph */ + {"\x91", 0, 0x215F70}, /* East Asian ideograph */ + {"\x96", 0, 0x215F71}, /* East Asian ideograph (variant of EACC 4B5F71) */ + {"\x9B", 0, 0x215F72}, /* East Asian ideograph (variant of EACC 4B5F72) */ + {"\x9C", 0, 0x215F73}, /* East Asian ideograph */ + {"\x9E", 0, 0x215F74}, /* East Asian ideograph */ + {"\xA0", 0, 0x215F75}, /* East Asian ideograph */ + {"\xA1", 0, 0x215F76}, /* East Asian ideograph */ + {"\xA6", 0, 0x215F78}, /* East Asian ideograph */ + {"\xA8", 0, 0x215F79}, /* East Asian ideograph */ + {"\xA9", 0, 0x215F7A}, /* East Asian ideograph */ + {"\xB6", 0, 0x215F7B}, /* East Asian ideograph */ + {"\xB4", 0, 0x215F7C}, /* East Asian ideograph */ + {"\xBC", 0, 0x215F7D}, /* East Asian ideograph */ + {"\x81", 0, 0x234C6A}, /* East Asian ideograph */ + {"\x87", 0, 0x234C6B}, /* East Asian ideograph */ + {"\x86", 0, 0x234C6C}, /* East Asian ideograph */ + {"\x89", 0, 0x234C6E}, /* East Asian ideograph */ + {"\x98", 0, 0x234C75}, /* East Asian ideograph */ + {"\x9A", 0, 0x234C76}, /* East Asian ideograph */ + {"\x9D", 0, 0x234C78}, /* East Asian ideograph */ + {"\x9F", 0, 0x234C7B}, /* East Asian ideograph */ + {"\xA4", 0, 0x234C7D}, /* East Asian ideograph */ + {"\xA7", 0, 0x234D25}, /* East Asian ideograph */ + {"\xAB", 0, 0x234D2C}, /* East Asian ideograph */ + {"\xAE", 0, 0x234D30}, /* East Asian ideograph */ + {"\xB7", 0, 0x234D31}, /* East Asian ideograph */ + {"\xB8", 0, 0x234D32}, /* East Asian ideograph */ + {"\xB3", 0, 0x234D35}, /* East Asian ideograph */ + {"\xBA", 0, 0x234D38}, /* East Asian ideograph */ + {"\xBF", 0, 0x234D43}, /* East Asian ideograph */ + {"\xA5", 0, 0x275F79}, /* East Asian ideograph */ + {"\xA2", 0, 0x27625E}, /* East Asian ideograph */ + {"\x93", 0, 0x294C76}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D5F73}, /* East Asian ideograph (unrelated variant of EACC 234C76) */ + {"\xAD", 0, 0x2D602D}, /* East Asian ideograph */ + {"\x99", 0, 0x335F73}, /* East Asian ideograph */ + {"\x92", 0, 0x4B5F70}, /* East Asian ideograph */ + {"\x96", 0, 0x4B5F71}, /* East Asian ideograph */ + {"\x9B", 0, 0x4B5F72}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B5F73}, /* East Asian ideograph (variant of EACC 215F73) */ + {"\xB1", 0, 0x4B602D}, /* East Asian ideograph */ + {"\xB9", 0, 0x697058}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page297 = { + marc8r_9page297_flat, 0 +}; +/* PAGE 296 */ +struct yaz_iconv_trie_flat marc8r_9page296_flat[] = { + {"\x80", 0, 0x215F59}, /* East Asian ideograph */ + {"\x87", 0, 0x215F5A}, /* East Asian ideograph */ + {"\x84", 0, 0x215F5B}, /* East Asian ideograph */ + {"\x89", 0, 0x215F5C}, /* East Asian ideograph */ + {"\x86", 0, 0x215F5D}, /* East Asian ideograph */ + {"\x91", 0, 0x215F5E}, /* East Asian ideograph */ + {"\x8E", 0, 0x215F5F}, /* East Asian ideograph */ + {"\x96", 0, 0x215F60}, /* East Asian ideograph */ + {"\x8F", 0, 0x215F61}, /* East Asian ideograph */ + {"\x8D", 0, 0x215F62}, /* East Asian ideograph */ + {"\x93", 0, 0x215F63}, /* East Asian ideograph */ + {"\x9C", 0, 0x215F64}, /* East Asian ideograph */ + {"\x9E", 0, 0x215F65}, /* East Asian ideograph */ + {"\xAA", 0, 0x215F66}, /* East Asian ideograph */ + {"\xA7", 0, 0x215F67}, /* East Asian ideograph */ + {"\xB8", 0, 0x215F68}, /* East Asian ideograph */ + {"\xB9", 0, 0x215F69}, /* East Asian ideograph */ + {"\xB2", 0, 0x215F6A}, /* East Asian ideograph */ + {"\xBD", 0, 0x215F6B}, /* East Asian ideograph */ + {"\xBE", 0, 0x215F6C}, /* East Asian ideograph */ + {"\x82", 0, 0x234C27}, /* East Asian ideograph */ + {"\x88", 0, 0x234C29}, /* East Asian ideograph */ + {"\x85", 0, 0x234C2A}, /* East Asian ideograph */ + {"\x9B", 0, 0x234C38}, /* East Asian ideograph */ + {"\x9D", 0, 0x234C3D}, /* East Asian ideograph */ + {"\x99", 0, 0x234C3E}, /* East Asian ideograph */ + {"\xA3", 0, 0x234C47}, /* East Asian ideograph */ + {"\xA2", 0, 0x234C49}, /* East Asian ideograph */ + {"\xA4", 0, 0x234C4A}, /* East Asian ideograph */ + {"\xA8", 0, 0x234C4E}, /* East Asian ideograph */ + {"\xA6", 0, 0x234C50}, /* East Asian ideograph */ + {"\xB1", 0, 0x234C52}, /* East Asian ideograph */ + {"\xB0", 0, 0x234C58}, /* East Asian ideograph */ + {"\xB6", 0, 0x234C5C}, /* East Asian ideograph */ + {"\x81", 0, 0x275F6B}, /* East Asian ideograph */ + {"\xAD", 0, 0x275F6D}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B5F6F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page296 = { + marc8r_9page296_flat, 0 +}; +/* PAGE 295 */ +struct yaz_iconv_trie_flat marc8r_9page295_flat[] = { + {"\x80", 0, 0x215F3F}, /* East Asian ideograph */ + {"\x87", 0, 0x215F40}, /* East Asian ideograph */ + {"\x86", 0, 0x215F41}, /* East Asian ideograph */ + {"\x84", 0, 0x215F42}, /* East Asian ideograph */ + {"\x81", 0, 0x215F43}, /* East Asian ideograph */ + {"\x85", 0, 0x215F44}, /* East Asian ideograph */ + {"\x8D", 0, 0x215F45}, /* East Asian ideograph */ + {"\x8B", 0, 0x215F46}, /* East Asian ideograph */ + {"\x89", 0, 0x215F47}, /* East Asian ideograph */ + {"\x8C", 0, 0x215F48}, /* East Asian ideograph */ + {"\x95", 0, 0x215F49}, /* East Asian ideograph */ + {"\x96", 0, 0x215F4A}, /* East Asian ideograph */ + {"\x9C", 0, 0x215F4B}, /* East Asian ideograph */ + {"\x9E", 0, 0x215F4C}, /* East Asian ideograph */ + {"\x9B", 0, 0x215F4D}, /* East Asian ideograph */ + {"\x99", 0, 0x215F4E}, /* East Asian ideograph */ + {"\xA2", 0, 0x215F4F}, /* East Asian ideograph */ + {"\xA3", 0, 0x215F50}, /* East Asian ideograph (variant of EACC 4B5F50) */ + {"\xA8", 0, 0x215F51}, /* East Asian ideograph */ + {"\xAA", 0, 0x215F52}, /* East Asian ideograph */ + {"\xAF", 0, 0x215F53}, /* East Asian ideograph */ + {"\xB2", 0, 0x215F54}, /* East Asian ideograph */ + {"\xBB", 0, 0x215F55}, /* East Asian ideograph */ + {"\xB7", 0, 0x215F56}, /* East Asian ideograph */ + {"\xB9", 0, 0x215F57}, /* East Asian ideograph */ + {"\xB6", 0, 0x215F58}, /* East Asian ideograph */ + {"\x8E", 0, 0x234B52}, /* East Asian ideograph */ + {"\x8A", 0, 0x234B53}, /* East Asian ideograph */ + {"\x92", 0, 0x234B57}, /* East Asian ideograph */ + {"\x9F", 0, 0x234B64}, /* East Asian ideograph */ + {"\x98", 0, 0x234B66}, /* East Asian ideograph */ + {"\x9D", 0, 0x234B67}, /* East Asian ideograph */ + {"\xA9", 0, 0x234B71}, /* East Asian ideograph */ + {"\xB1", 0, 0x234B74}, /* East Asian ideograph */ + {"\xB0", 0, 0x234B76}, /* East Asian ideograph */ + {"\xB4", 0, 0x234B77}, /* East Asian ideograph */ + {"\xBA", 0, 0x234B78}, /* East Asian ideograph */ + {"\xB5", 0, 0x234B7A}, /* East Asian ideograph */ + {"\xBF", 0, 0x234C22}, /* East Asian ideograph */ + {"\x8F", 0, 0x275F4D}, /* East Asian ideograph */ + {"\xBE", 0, 0x275F67}, /* East Asian ideograph */ + {"\xB3", 0, 0x275F6E}, /* East Asian ideograph */ + {"\x91", 0, 0x2D5F4B}, /* East Asian ideograph */ + {"\xA0", 0, 0x4B306C}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B5F50}, /* East Asian ideograph */ + {"\xB6", 0, 0x4B5F58}, /* East Asian ideograph (variant of EACC 215F58 */ + {"\xAB", 0, 0x693C36}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page295 = { + marc8r_9page295_flat, 0 +}; +/* PAGE 294 */ +struct yaz_iconv_trie_flat marc8r_9page294_flat[] = { + {"\x8A", 0, 0x215F2B}, /* East Asian ideograph */ + {"\x8E", 0, 0x215F2C}, /* East Asian ideograph */ + {"\x8B", 0, 0x215F2D}, /* East Asian ideograph */ + {"\x85", 0, 0x215F2F}, /* East Asian ideograph */ + {"\x86", 0, 0x215F30}, /* East Asian ideograph */ + {"\x8D", 0, 0x215F31}, /* East Asian ideograph */ + {"\x98", 0, 0x215F32}, /* East Asian ideograph */ + {"\x94", 0, 0x215F33}, /* East Asian ideograph */ + {"\x99", 0, 0x215F34}, /* East Asian ideograph */ + {"\x95", 0, 0x215F35}, /* East Asian ideograph */ + {"\x9C", 0, 0x215F36}, /* East Asian ideograph */ + {"\x9B", 0, 0x215F37}, /* East Asian ideograph */ + {"\xA7", 0, 0x215F38}, /* East Asian ideograph */ + {"\xA8", 0, 0x215F39}, /* East Asian ideograph */ + {"\xAA", 0, 0x215F3A}, /* East Asian ideograph */ + {"\xB1", 0, 0x215F3B}, /* East Asian ideograph */ + {"\xB4", 0, 0x215F3C}, /* East Asian ideograph */ + {"\xB8", 0, 0x215F3D}, /* East Asian ideograph */ + {"\xBB", 0, 0x215F3E}, /* East Asian ideograph */ + {"\x84", 0, 0x234A63}, /* East Asian ideograph */ + {"\x88", 0, 0x234A65}, /* East Asian ideograph */ + {"\x89", 0, 0x234A6C}, /* East Asian ideograph */ + {"\x82", 0, 0x234A6D}, /* East Asian ideograph */ + {"\x83", 0, 0x234A6E}, /* East Asian ideograph */ + {"\x96", 0, 0x234A79}, /* East Asian ideograph */ + {"\x97", 0, 0x234A7A}, /* East Asian ideograph */ + {"\xA4", 0, 0x234B2F}, /* East Asian ideograph */ + {"\xA9", 0, 0x234B35}, /* East Asian ideograph */ + {"\xAE", 0, 0x234B37}, /* East Asian ideograph */ + {"\xB0", 0, 0x234B3B}, /* East Asian ideograph */ + {"\xB2", 0, 0x234B3C}, /* East Asian ideograph */ + {"\xB3", 0, 0x234B3E}, /* East Asian ideograph */ + {"\xB9", 0, 0x234B48}, /* East Asian ideograph */ + {"\xBC", 0, 0x234B49}, /* East Asian ideograph */ + {"\x8F", 0, 0x275F39}, /* East Asian ideograph */ + {"\x90", 0, 0x275F3B}, /* East Asian ideograph */ + {"\xB6", 0, 0x275F3D}, /* East Asian ideograph */ + {"\xBE", 0, 0x275F50}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D5C74}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D5F3B}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D5F46}, /* East Asian ideograph */ + {"\xB7", 0, 0x335F3D}, /* East Asian ideograph */ + {"\x99", 0, 0x3F5F34}, /* East Asian ideograph */ + {"\x86", 0, 0x4B5F30}, /* East Asian ideograph (variant of EACC 215F30) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page294 = { + marc8r_9page294_flat, 0 +}; +/* PAGE 293 */ +struct yaz_iconv_trie_flat marc8r_9page293_flat[] = { + {"\x80", 0, 0x215E72}, /* East Asian ideograph */ + {"\x84", 0, 0x215E75}, /* East Asian ideograph */ + {"\x90", 0, 0x215E76}, /* East Asian ideograph */ + {"\x8C", 0, 0x215E77}, /* East Asian ideograph */ + {"\x8B", 0, 0x215E78}, /* East Asian ideograph */ + {"\x8D", 0, 0x215E79}, /* East Asian ideograph */ + {"\xA2", 0, 0x215E7A}, /* East Asian ideograph */ + {"\xA3", 0, 0x215E7B}, /* East Asian ideograph */ + {"\x9B", 0, 0x215E7C}, /* East Asian ideograph */ + {"\xA1", 0, 0x215E7D}, /* East Asian ideograph */ + {"\x9D", 0, 0x215E7E}, /* East Asian ideograph */ + {"\xA4", 0, 0x215F21}, /* East Asian ideograph */ + {"\xAA", 0, 0x215F22}, /* East Asian ideograph */ + {"\xB3", 0, 0x215F23}, /* East Asian ideograph */ + {"\xB8", 0, 0x215F24}, /* East Asian ideograph */ + {"\xB5", 0, 0x215F25}, /* East Asian ideograph */ + {"\xB2", 0, 0x215F26}, /* East Asian ideograph */ + {"\xB6", 0, 0x215F27}, /* East Asian ideograph */ + {"\xB7", 0, 0x215F28}, /* East Asian ideograph */ + {"\xB4", 0, 0x215F29}, /* East Asian ideograph */ + {"\xB0", 0, 0x215F2A}, /* East Asian ideograph */ + {"\xBD", 0, 0x215F2E}, /* East Asian ideograph */ + {"\x82", 0, 0x234A2F}, /* East Asian ideograph */ + {"\x91", 0, 0x234A3C}, /* East Asian ideograph */ + {"\xA0", 0, 0x234A42}, /* East Asian ideograph */ + {"\x9C", 0, 0x234A44}, /* East Asian ideograph */ + {"\x98", 0, 0x234A46}, /* East Asian ideograph */ + {"\x9F", 0, 0x234A4A}, /* East Asian ideograph */ + {"\x96", 0, 0x234A4B}, /* East Asian ideograph */ + {"\xAC", 0, 0x234A51}, /* East Asian ideograph */ + {"\xBB", 0, 0x234A5D}, /* East Asian ideograph */ + {"\xBF", 0, 0x234A5E}, /* East Asian ideograph */ + {"\xBE", 0, 0x234A62}, /* East Asian ideograph */ + {"\x88", 0, 0x275F23}, /* East Asian ideograph */ + {"\x86", 0, 0x275F24}, /* East Asian ideograph */ + {"\x85", 0, 0x275F37}, /* East Asian ideograph */ + {"\xA9", 0, 0x275F3A}, /* East Asian ideograph */ + {"\x87", 0, 0x275F3C}, /* East Asian ideograph */ + {"\x95", 0, 0x294A44}, /* East Asian ideograph */ + {"\x89", 0, 0x294A46}, /* East Asian ideograph */ + {"\xA5", 0, 0x2D5F28}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D5F2D}, /* East Asian ideograph */ + {"\x94", 0, 0x2D753A}, /* East Asian ideograph */ + {"\x9E", 0, 0x39345B}, /* East Asian ideograph */ + {"\xA8", 0, 0x455F35}, /* East Asian ideograph (Version J extension) */ + {"\xBA", 0, 0x4B5F3A}, /* East Asian ideograph */ + {"\xA7", 0, 0x4D4A6C}, /* East Asian ideograph */ + {"\xA6", 0, 0x697023}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page293 = { + marc8r_9page293_flat, 0 +}; +/* PAGE 292 */ +struct yaz_iconv_trie_flat marc8r_9page292_flat[] = { + {"\x9C", 0, 0x215E6C}, /* East Asian ideograph */ + {"\xA1", 0, 0x215E6D}, /* East Asian ideograph */ + {"\xB2", 0, 0x215E6E}, /* East Asian ideograph */ + {"\xB1", 0, 0x215E6F}, /* East Asian ideograph */ + {"\xAE", 0, 0x215E70}, /* East Asian ideograph */ + {"\xAA", 0, 0x215E71}, /* East Asian ideograph */ + {"\xBF", 0, 0x215E73}, /* East Asian ideograph */ + {"\xBB", 0, 0x215E74}, /* East Asian ideograph */ + {"\x9E", 0, 0x23497A}, /* East Asian ideograph */ + {"\xA4", 0, 0x23497B}, /* East Asian ideograph */ + {"\xA2", 0, 0x23497C}, /* East Asian ideograph */ + {"\xA7", 0, 0x234A21}, /* East Asian ideograph */ + {"\xBD", 0, 0x234A30}, /* East Asian ideograph */ + {"\xBC", 0, 0x234A32}, /* East Asian ideograph */ + {"\x82", 0, 0x275E58}, /* East Asian ideograph */ + {"\x81", 0, 0x275E5B}, /* East Asian ideograph */ + {"\x80", 0, 0x275E5C}, /* East Asian ideograph */ + {"\x85", 0, 0x275E5E}, /* East Asian ideograph */ + {"\x8E", 0, 0x275E60}, /* East Asian ideograph */ + {"\x94", 0, 0x275E61}, /* East Asian ideograph */ + {"\x95", 0, 0x275E62}, /* East Asian ideograph */ + {"\x91", 0, 0x275E63}, /* East Asian ideograph */ + {"\x97", 0, 0x275E68}, /* East Asian ideograph */ + {"\x90", 0, 0x275E6A}, /* East Asian ideograph */ + {"\xB5", 0, 0x275E7B}, /* East Asian ideograph */ + {"\xB4", 0, 0x275F2A}, /* East Asian ideograph */ + {"\x9F", 0, 0x275F2B}, /* East Asian ideograph */ + {"\xB6", 0, 0x275F2C}, /* East Asian ideograph */ + {"\xB3", 0, 0x275F2E}, /* East Asian ideograph */ + {"\x86", 0, 0x294942}, /* East Asian ideograph */ + {"\x83", 0, 0x294944}, /* East Asian ideograph */ + {"\x8F", 0, 0x294948}, /* East Asian ideograph */ + {"\x88", 0, 0x294949}, /* East Asian ideograph */ + {"\x89", 0, 0x29494D}, /* East Asian ideograph */ + {"\x8A", 0, 0x29494F}, /* East Asian ideograph */ + {"\x8C", 0, 0x294950}, /* East Asian ideograph */ + {"\x8D", 0, 0x294952}, /* East Asian ideograph */ + {"\x92", 0, 0x29495A}, /* East Asian ideograph */ + {"\x99", 0, 0x294960}, /* East Asian ideograph */ + {"\x9A", 0, 0x294969}, /* East Asian ideograph */ + {"\x8B", 0, 0x29556C}, /* East Asian ideograph */ + {"\x84", 0, 0x295574}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D377C}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D3821}, /* East Asian ideograph */ + {"\xA8", 0, 0x333475}, /* East Asian ideograph */ + {"\x9D", 0, 0x4B5C5E}, /* East Asian ideograph */ + {"\x9D", 0, 0x4B5E6C}, /* East Asian ideograph (duplicate simplified) */ + {"\x96", 0, 0x515E5D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page292 = { + marc8r_9page292_flat, 0 +}; +/* PAGE 291 */ +struct yaz_iconv_trie_flat marc8r_9page291_flat[] = { + {"\x8A", 0, 0x215E61}, /* East Asian ideograph */ + {"\x8B", 0, 0x215E62}, /* East Asian ideograph */ + {"\x8C", 0, 0x215E63}, /* East Asian ideograph */ + {"\x88", 0, 0x215E64}, /* East Asian ideograph */ + {"\x86", 0, 0x215E65}, /* East Asian ideograph */ + {"\x96", 0, 0x215E67}, /* East Asian ideograph */ + {"\x90", 0, 0x215E68}, /* East Asian ideograph */ + {"\x9C", 0, 0x215E69}, /* East Asian ideograph */ + {"\xA1", 0, 0x215E6A}, /* East Asian ideograph */ + {"\xA2", 0, 0x215E6B}, /* East Asian ideograph */ + {"\x8D", 0, 0x23494A}, /* East Asian ideograph */ + {"\x89", 0, 0x234959}, /* East Asian ideograph */ + {"\x8E", 0, 0x23495D}, /* East Asian ideograph */ + {"\x95", 0, 0x234960}, /* East Asian ideograph */ + {"\x92", 0, 0x234962}, /* East Asian ideograph */ + {"\x93", 0, 0x234963}, /* East Asian ideograph */ + {"\x91", 0, 0x234964}, /* East Asian ideograph */ + {"\x83", 0, 0x234965}, /* East Asian ideograph */ + {"\x9A", 0, 0x234966}, /* East Asian ideograph */ + {"\x9E", 0, 0x234969}, /* East Asian ideograph */ + {"\xA0", 0, 0x23496A}, /* East Asian ideograph */ + {"\xA5", 0, 0x23496F}, /* East Asian ideograph */ + {"\xA4", 0, 0x234972}, /* East Asian ideograph */ + {"\xA7", 0, 0x234976}, /* East Asian ideograph */ + {"\xAE", 0, 0x273648}, /* East Asian ideograph */ + {"\xB7", 0, 0x273E5C}, /* East Asian ideograph */ + {"\xBB", 0, 0x275271}, /* East Asian ideograph */ + {"\xA8", 0, 0x275E4D}, /* East Asian ideograph */ + {"\xA9", 0, 0x275E4E}, /* East Asian ideograph */ + {"\xAA", 0, 0x275E4F}, /* East Asian ideograph */ + {"\xAD", 0, 0x275E50}, /* East Asian ideograph */ + {"\xB5", 0, 0x275E51}, /* East Asian ideograph */ + {"\xB0", 0, 0x275E52}, /* East Asian ideograph */ + {"\xB2", 0, 0x275E54}, /* East Asian ideograph */ + {"\xB4", 0, 0x275E55}, /* East Asian ideograph */ + {"\xB8", 0, 0x275E57}, /* East Asian ideograph */ + {"\xBA", 0, 0x275E59}, /* East Asian ideograph */ + {"\xBD", 0, 0x275E5A}, /* East Asian ideograph */ + {"\xBE", 0, 0x275E5F}, /* East Asian ideograph */ + {"\xB1", 0, 0x275E64}, /* East Asian ideograph */ + {"\xAF", 0, 0x275E67}, /* East Asian ideograph */ + {"\xB9", 0, 0x276168}, /* East Asian ideograph */ + {"\xB3", 0, 0x294936}, /* East Asian ideograph */ + {"\xBC", 0, 0x29496F}, /* East Asian ideograph */ + {"\x87", 0, 0x33433E}, /* East Asian ideograph */ + {"\xAB", 0, 0x455E60}, /* East Asian ideograph (Version J extension) */ + {"\xB6", 0, 0x474931}, /* East Asian ideograph */ + {"\x94", 0, 0x4B5E5D}, /* East Asian ideograph */ + {"\x98", 0, 0x4B6167}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page291 = { + marc8r_9page291_flat, 0 +}; +/* PAGE 290 */ +struct yaz_iconv_trie_flat marc8r_9page290_flat[] = { + {"\x80", 0, 0x215E4D}, /* East Asian ideograph */ + {"\x82", 0, 0x215E4E}, /* East Asian ideograph */ + {"\x83", 0, 0x215E4F}, /* East Asian ideograph */ + {"\x89", 0, 0x215E50}, /* East Asian ideograph */ + {"\x94", 0, 0x215E51}, /* East Asian ideograph */ + {"\x8F", 0, 0x215E52}, /* East Asian ideograph */ + {"\x8B", 0, 0x215E53}, /* East Asian ideograph */ + {"\x91", 0, 0x215E54}, /* East Asian ideograph */ + {"\x93", 0, 0x215E55}, /* East Asian ideograph */ + {"\x92", 0, 0x215E56}, /* East Asian ideograph */ + {"\x98", 0, 0x215E57}, /* East Asian ideograph */ + {"\xA1", 0, 0x215E58}, /* East Asian ideograph */ + {"\xA8", 0, 0x215E59}, /* East Asian ideograph */ + {"\xA9", 0, 0x215E5A}, /* East Asian ideograph */ + {"\xA3", 0, 0x215E5B}, /* East Asian ideograph */ + {"\xA5", 0, 0x215E5C}, /* East Asian ideograph */ + {"\xA4", 0, 0x215E5D}, /* East Asian ideograph */ + {"\xB1", 0, 0x215E5E}, /* East Asian ideograph */ + {"\xAD", 0, 0x215E5F}, /* East Asian ideograph */ + {"\xBB", 0, 0x215E60}, /* East Asian ideograph */ + {"\x85", 0, 0x23492E}, /* East Asian ideograph */ + {"\x88", 0, 0x234930}, /* East Asian ideograph */ + {"\x8C", 0, 0x234931}, /* East Asian ideograph */ + {"\x97", 0, 0x234934}, /* East Asian ideograph */ + {"\x8E", 0, 0x234936}, /* East Asian ideograph */ + {"\x9F", 0, 0x234938}, /* East Asian ideograph */ + {"\xA0", 0, 0x23493A}, /* East Asian ideograph */ + {"\xAC", 0, 0x234942}, /* East Asian ideograph */ + {"\xAB", 0, 0x234944}, /* East Asian ideograph */ + {"\xBC", 0, 0x234948}, /* East Asian ideograph */ + {"\xBE", 0, 0x234949}, /* East Asian ideograph */ + {"\xB9", 0, 0x23494D}, /* East Asian ideograph */ + {"\xBA", 0, 0x23494E}, /* East Asian ideograph */ + {"\xB6", 0, 0x23494F}, /* East Asian ideograph */ + {"\xBF", 0, 0x234950}, /* East Asian ideograph */ + {"\xBD", 0, 0x234952}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D362A}, /* East Asian ideograph */ + {"\x87", 0, 0x2D5E50}, /* East Asian ideograph */ + {"\x86", 0, 0x3F5E60}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B5E69}, /* East Asian ideograph */ + {"\x99", 0, 0x4B6168}, /* East Asian ideograph */ + {"\x8A", 0, 0x696F5B}, /* East Asian ideograph */ + {"\x96", 0, 0x696F5D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page290 = { + marc8r_9page290_flat, 0 +}; +/* PAGE 289 */ +struct yaz_iconv_trie_flat marc8r_9page289_flat[] = { + {"\xB7", 0, 0x215E4C}, /* East Asian ideograph */ + {"\x80", 0, 0x275D77}, /* East Asian ideograph */ + {"\x81", 0, 0x275D78}, /* East Asian ideograph */ + {"\x91", 0, 0x275E25}, /* East Asian ideograph */ + {"\x87", 0, 0x275E27}, /* East Asian ideograph */ + {"\x8D", 0, 0x275E2A}, /* East Asian ideograph */ + {"\x9C", 0, 0x275E2B}, /* East Asian ideograph */ + {"\x9D", 0, 0x275E2C}, /* East Asian ideograph */ + {"\x9E", 0, 0x275E2E}, /* East Asian ideograph */ + {"\x96", 0, 0x275E32}, /* East Asian ideograph */ + {"\x97", 0, 0x275E33}, /* East Asian ideograph */ + {"\x82", 0, 0x275E34}, /* East Asian ideograph */ + {"\x98", 0, 0x275E35}, /* East Asian ideograph */ + {"\x99", 0, 0x275E36}, /* East Asian ideograph */ + {"\xB0", 0, 0x275E3A}, /* East Asian ideograph */ + {"\xAD", 0, 0x275E3C}, /* East Asian ideograph */ + {"\xAF", 0, 0x275E40}, /* East Asian ideograph */ + {"\xB3", 0, 0x275E44}, /* East Asian ideograph */ + {"\xB6", 0, 0x275E46}, /* East Asian ideograph */ + {"\xBF", 0, 0x275E4C}, /* East Asian ideograph */ + {"\x85", 0, 0x29454E}, /* East Asian ideograph */ + {"\x90", 0, 0x29457A}, /* East Asian ideograph */ + {"\x93", 0, 0x294621}, /* East Asian ideograph */ + {"\x92", 0, 0x294628}, /* East Asian ideograph */ + {"\x89", 0, 0x29462D}, /* East Asian ideograph */ + {"\x8F", 0, 0x294647}, /* East Asian ideograph */ + {"\x9B", 0, 0x294656}, /* East Asian ideograph */ + {"\x9F", 0, 0x29465A}, /* East Asian ideograph */ + {"\xAA", 0, 0x294662}, /* East Asian ideograph */ + {"\x86", 0, 0x29467C}, /* East Asian ideograph */ + {"\xA6", 0, 0x294734}, /* East Asian ideograph */ + {"\xA8", 0, 0x29473C}, /* East Asian ideograph */ + {"\xAB", 0, 0x29474D}, /* East Asian ideograph */ + {"\xA1", 0, 0x294758}, /* East Asian ideograph */ + {"\xA2", 0, 0x29475E}, /* East Asian ideograph */ + {"\xA3", 0, 0x294760}, /* East Asian ideograph */ + {"\xA4", 0, 0x294769}, /* East Asian ideograph */ + {"\xB1", 0, 0x294774}, /* East Asian ideograph */ + {"\x94", 0, 0x29483E}, /* East Asian ideograph */ + {"\xB2", 0, 0x29483F}, /* East Asian ideograph */ + {"\xAC", 0, 0x29484A}, /* East Asian ideograph */ + {"\xA5", 0, 0x29485C}, /* East Asian ideograph */ + {"\xA7", 0, 0x294869}, /* East Asian ideograph */ + {"\xA9", 0, 0x29486F}, /* East Asian ideograph */ + {"\x8A", 0, 0x294871}, /* East Asian ideograph */ + {"\x8E", 0, 0x4D446B}, /* East Asian ideograph */ + {"\x84", 0, 0x4D4754}, /* East Asian ideograph */ + {"\x8C", 0, 0x4D4835}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page289 = { + marc8r_9page289_flat, 0 +}; +/* PAGE 288 */ +struct yaz_iconv_trie_flat marc8r_9page288_flat[] = { + {"\x91", 0, 0x215E42}, /* East Asian ideograph */ + {"\x84", 0, 0x215E43}, /* East Asian ideograph */ + {"\xA3", 0, 0x215E44}, /* East Asian ideograph */ + {"\xA0", 0, 0x215E45}, /* East Asian ideograph */ + {"\xB2", 0, 0x215E46}, /* East Asian ideograph */ + {"\xB0", 0, 0x215E47}, /* East Asian ideograph */ + {"\xBE", 0, 0x215E48}, /* East Asian ideograph */ + {"\xBC", 0, 0x215E49}, /* East Asian ideograph */ + {"\xBD", 0, 0x215E4A}, /* East Asian ideograph */ + {"\xBF", 0, 0x215E4B}, /* East Asian ideograph */ + {"\x80", 0, 0x234832}, /* East Asian ideograph */ + {"\x81", 0, 0x234837}, /* East Asian ideograph */ + {"\xA7", 0, 0x23483D}, /* East Asian ideograph */ + {"\x8C", 0, 0x23483E}, /* East Asian ideograph */ + {"\x85", 0, 0x234840}, /* East Asian ideograph */ + {"\x90", 0, 0x234842}, /* East Asian ideograph */ + {"\x8A", 0, 0x23484A}, /* East Asian ideograph */ + {"\xA6", 0, 0x234853}, /* East Asian ideograph */ + {"\xA4", 0, 0x234857}, /* East Asian ideograph */ + {"\xA2", 0, 0x234858}, /* East Asian ideograph */ + {"\xA5", 0, 0x23485C}, /* East Asian ideograph */ + {"\x95", 0, 0x23485D}, /* East Asian ideograph */ + {"\x9E", 0, 0x23485E}, /* East Asian ideograph */ + {"\xAA", 0, 0x234862}, /* East Asian ideograph */ + {"\xAB", 0, 0x234868}, /* East Asian ideograph */ + {"\xAD", 0, 0x234869}, /* East Asian ideograph */ + {"\xAF", 0, 0x23486C}, /* East Asian ideograph */ + {"\xB1", 0, 0x23486D}, /* East Asian ideograph */ + {"\xB7", 0, 0x234871}, /* East Asian ideograph */ + {"\x9B", 0, 0x2D4E5B}, /* East Asian ideograph */ + {"\xB5", 0, 0x2D522B}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D5E4A}, /* East Asian ideograph */ + {"\x92", 0, 0x335E42}, /* East Asian ideograph */ + {"\x93", 0, 0x694C7A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page288 = { + marc8r_9page288_flat, 0 +}; +/* PAGE 287 */ +struct yaz_iconv_trie_flat marc8r_9page287_flat[] = { + {"\x83", 0, 0x215E39}, /* East Asian ideograph */ + {"\xAE", 0, 0x215E3A}, /* East Asian ideograph */ + {"\xB3", 0, 0x215E3C}, /* East Asian ideograph */ + {"\xB5", 0, 0x215E3D}, /* East Asian ideograph */ + {"\xBA", 0, 0x215E3E}, /* East Asian ideograph */ + {"\xB8", 0, 0x215E3F}, /* East Asian ideograph */ + {"\xB2", 0, 0x215E40}, /* East Asian ideograph */ + {"\x8B", 0, 0x234732}, /* East Asian ideograph */ + {"\x93", 0, 0x234734}, /* East Asian ideograph */ + {"\x8F", 0, 0x23473B}, /* East Asian ideograph */ + {"\xA0", 0, 0x23473C}, /* East Asian ideograph */ + {"\x99", 0, 0x23474D}, /* East Asian ideograph */ + {"\x8D", 0, 0x23474E}, /* East Asian ideograph */ + {"\xA6", 0, 0x234750}, /* East Asian ideograph */ + {"\xA7", 0, 0x234751}, /* East Asian ideograph */ + {"\x89", 0, 0x234755}, /* East Asian ideograph */ + {"\x94", 0, 0x234758}, /* East Asian ideograph */ + {"\x84", 0, 0x234759}, /* East Asian ideograph */ + {"\xA2", 0, 0x23475C}, /* East Asian ideograph */ + {"\x86", 0, 0x23475D}, /* East Asian ideograph */ + {"\x90", 0, 0x234760}, /* East Asian ideograph */ + {"\xA3", 0, 0x234762}, /* East Asian ideograph */ + {"\x87", 0, 0x23476A}, /* East Asian ideograph */ + {"\x8E", 0, 0x23476F}, /* East Asian ideograph */ + {"\x91", 0, 0x234771}, /* East Asian ideograph */ + {"\xBF", 0, 0x234774}, /* East Asian ideograph */ + {"\xA9", 0, 0x234779}, /* East Asian ideograph */ + {"\xBD", 0, 0x23477C}, /* East Asian ideograph */ + {"\xB6", 0, 0x234828}, /* East Asian ideograph */ + {"\xBB", 0, 0x23482B}, /* East Asian ideograph */ + {"\xA4", 0, 0x23482D}, /* East Asian ideograph */ + {"\xB7", 0, 0x234830}, /* East Asian ideograph */ + {"\xAB", 0, 0x234835}, /* East Asian ideograph */ + {"\xAD", 0, 0x234836}, /* East Asian ideograph */ + {"\xB1", 0, 0x234838}, /* East Asian ideograph */ + {"\x98", 0, 0x2D5E21}, /* East Asian ideograph */ + {"\x9A", 0, 0x2F445F}, /* East Asian ideograph */ + {"\xA1", 0, 0x4B5E3D}, /* East Asian ideograph */ + {"\xBE", 0, 0x4D477B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page287 = { + marc8r_9page287_flat, 0 +}; +/* PAGE 286 */ +struct yaz_iconv_trie_flat marc8r_9page286_flat[] = { + {"\xA1", 0, 0x215E2B}, /* East Asian ideograph */ + {"\x91", 0, 0x215E2C}, /* East Asian ideograph */ + {"\x96", 0, 0x215E2D}, /* East Asian ideograph */ + {"\x83", 0, 0x215E2E}, /* East Asian ideograph */ + {"\x9F", 0, 0x215E2F}, /* East Asian ideograph */ + {"\x97", 0, 0x215E30}, /* East Asian ideograph */ + {"\x88", 0, 0x215E31}, /* East Asian ideograph */ + {"\xA2", 0, 0x215E32}, /* East Asian ideograph */ + {"\x9C", 0, 0x215E33}, /* East Asian ideograph */ + {"\xA4", 0, 0x215E34}, /* East Asian ideograph */ + {"\x9D", 0, 0x215E35}, /* East Asian ideograph */ + {"\x8D", 0, 0x215E36}, /* East Asian ideograph */ + {"\x98", 0, 0x215E37}, /* East Asian ideograph */ + {"\xBD", 0, 0x215E3B}, /* East Asian ideograph */ + {"\xB1", 0, 0x234653}, /* East Asian ideograph */ + {"\x9E", 0, 0x234656}, /* East Asian ideograph */ + {"\xAE", 0, 0x234657}, /* East Asian ideograph */ + {"\x87", 0, 0x23465A}, /* East Asian ideograph */ + {"\xB2", 0, 0x23465B}, /* East Asian ideograph */ + {"\x94", 0, 0x23465D}, /* East Asian ideograph */ + {"\xA5", 0, 0x23465F}, /* East Asian ideograph */ + {"\xB9", 0, 0x234662}, /* East Asian ideograph */ + {"\x8A", 0, 0x234663}, /* East Asian ideograph */ + {"\x84", 0, 0x234664}, /* East Asian ideograph */ + {"\xA8", 0, 0x234666}, /* East Asian ideograph */ + {"\xA7", 0, 0x234667}, /* East Asian ideograph */ + {"\x9A", 0, 0x234672}, /* East Asian ideograph */ + {"\x90", 0, 0x234673}, /* East Asian ideograph */ + {"\xAF", 0, 0x234674}, /* East Asian ideograph */ + {"\x9B", 0, 0x234675}, /* East Asian ideograph */ + {"\x8C", 0, 0x23467C}, /* East Asian ideograph */ + {"\x93", 0, 0x23472C}, /* East Asian ideograph */ + {"\xA6", 0, 0x234730}, /* East Asian ideograph */ + {"\xBB", 0, 0x23473D}, /* East Asian ideograph */ + {"\xBA", 0, 0x234749}, /* East Asian ideograph */ + {"\xB5", 0, 0x234767}, /* East Asian ideograph */ + {"\xB7", 0, 0x234769}, /* East Asian ideograph */ + {"\xB4", 0, 0x234827}, /* East Asian ideograph */ + {"\x81", 0, 0x2D5E28}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page286 = { + marc8r_9page286_flat, 0 +}; +/* PAGE 285 */ +struct yaz_iconv_trie_flat marc8r_9page285_flat[] = { + {"\x82", 0, 0x215D78}, /* East Asian ideograph */ + {"\x8A", 0, 0x215E25}, /* East Asian ideograph */ + {"\x94", 0, 0x215E26}, /* East Asian ideograph */ + {"\xAE", 0, 0x215E27}, /* East Asian ideograph */ + {"\x96", 0, 0x215E28}, /* East Asian ideograph */ + {"\xA2", 0, 0x215E29}, /* East Asian ideograph */ + {"\xB3", 0, 0x215E2A}, /* East Asian ideograph */ + {"\x86", 0, 0x234544}, /* East Asian ideograph */ + {"\xBE", 0, 0x234560}, /* East Asian ideograph */ + {"\x8F", 0, 0x234579}, /* East Asian ideograph */ + {"\xAC", 0, 0x23457A}, /* East Asian ideograph */ + {"\x95", 0, 0x23457B}, /* East Asian ideograph */ + {"\x8B", 0, 0x23457E}, /* East Asian ideograph */ + {"\xB5", 0, 0x234621}, /* East Asian ideograph */ + {"\x8C", 0, 0x234622}, /* East Asian ideograph */ + {"\x88", 0, 0x234623}, /* East Asian ideograph */ + {"\xB9", 0, 0x234625}, /* East Asian ideograph */ + {"\xA1", 0, 0x234627}, /* East Asian ideograph */ + {"\xB0", 0, 0x234628}, /* East Asian ideograph */ + {"\xA3", 0, 0x234629}, /* East Asian ideograph */ + {"\xB7", 0, 0x23462A}, /* East Asian ideograph */ + {"\x9B", 0, 0x23462B}, /* East Asian ideograph */ + {"\x98", 0, 0x23462D}, /* East Asian ideograph */ + {"\x89", 0, 0x23463C}, /* East Asian ideograph */ + {"\xA4", 0, 0x23463D}, /* East Asian ideograph */ + {"\xBC", 0, 0x234640}, /* East Asian ideograph */ + {"\xA7", 0, 0x234642}, /* East Asian ideograph */ + {"\xBD", 0, 0x234644}, /* East Asian ideograph */ + {"\xA6", 0, 0x234647}, /* East Asian ideograph */ + {"\x9A", 0, 0x234648}, /* East Asian ideograph */ + {"\xAA", 0, 0x23464A}, /* East Asian ideograph */ + {"\x9E", 0, 0x23464D}, /* East Asian ideograph */ + {"\x97", 0, 0x23464F}, /* East Asian ideograph */ + {"\xBB", 0, 0x234651}, /* East Asian ideograph */ + {"\xA9", 0, 0x23472F}, /* East Asian ideograph */ + {"\xAD", 0, 0x4B5E27}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page285 = { + marc8r_9page285_flat, 0 +}; +/* PAGE 284 */ +struct yaz_iconv_trie_flat marc8r_9page284_flat[] = { + {"\x8D", 0, 0x215D77}, /* East Asian ideograph */ + {"\xB5", 0, 0x215D79}, /* East Asian ideograph */ + {"\xA5", 0, 0x215D7A}, /* East Asian ideograph */ + {"\x8B", 0, 0x215D7C}, /* East Asian ideograph */ + {"\xB0", 0, 0x215D7E}, /* East Asian ideograph */ + {"\xBE", 0, 0x215E21}, /* East Asian ideograph */ + {"\xAC", 0, 0x215E23}, /* East Asian ideograph */ + {"\x9B", 0, 0x215E24}, /* East Asian ideograph */ + {"\x84", 0, 0x23444F}, /* East Asian ideograph */ + {"\x80", 0, 0x234471}, /* East Asian ideograph */ + {"\x82", 0, 0x23452F}, /* East Asian ideograph */ + {"\x81", 0, 0x234531}, /* East Asian ideograph */ + {"\x8C", 0, 0x234535}, /* East Asian ideograph */ + {"\xB9", 0, 0x234541}, /* East Asian ideograph */ + {"\xAA", 0, 0x234547}, /* East Asian ideograph */ + {"\x9C", 0, 0x234548}, /* East Asian ideograph */ + {"\x8F", 0, 0x23454C}, /* East Asian ideograph */ + {"\x87", 0, 0x23454D}, /* East Asian ideograph */ + {"\xBA", 0, 0x234551}, /* East Asian ideograph */ + {"\x96", 0, 0x234553}, /* East Asian ideograph */ + {"\xB1", 0, 0x234554}, /* East Asian ideograph */ + {"\xBC", 0, 0x234556}, /* East Asian ideograph */ + {"\xB7", 0, 0x23455C}, /* East Asian ideograph */ + {"\x89", 0, 0x23455D}, /* East Asian ideograph */ + {"\x98", 0, 0x23455E}, /* East Asian ideograph */ + {"\x9A", 0, 0x23455F}, /* East Asian ideograph */ + {"\x9F", 0, 0x234562}, /* East Asian ideograph */ + {"\xB6", 0, 0x234564}, /* East Asian ideograph */ + {"\x95", 0, 0x234566}, /* East Asian ideograph */ + {"\x94", 0, 0x234567}, /* East Asian ideograph */ + {"\x88", 0, 0x23456A}, /* East Asian ideograph */ + {"\xB4", 0, 0x23456B}, /* East Asian ideograph */ + {"\x91", 0, 0x23456E}, /* East Asian ideograph */ + {"\xA4", 0, 0x23456F}, /* East Asian ideograph */ + {"\xAB", 0, 0x234571}, /* East Asian ideograph */ + {"\xAD", 0, 0x234572}, /* East Asian ideograph */ + {"\xA0", 0, 0x234573}, /* East Asian ideograph */ + {"\xAE", 0, 0x234577}, /* East Asian ideograph */ + {"\x8A", 0, 0x33496A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page284 = { + marc8r_9page284_flat, 0 +}; +/* PAGE 283 */ +struct yaz_iconv_trie_flat marc8r_9page283_flat[] = { + {"\xA0", 0, 0x215D6B}, /* East Asian ideograph */ + {"\xB6", 0, 0x215D6C}, /* East Asian ideograph */ + {"\xB3", 0, 0x215D6E}, /* East Asian ideograph */ + {"\xAF", 0, 0x215D6F}, /* East Asian ideograph */ + {"\xA2", 0, 0x215D70}, /* East Asian ideograph */ + {"\xAB", 0, 0x215D72}, /* East Asian ideograph */ + {"\x9A", 0, 0x215D73}, /* East Asian ideograph */ + {"\x84", 0, 0x215D74}, /* East Asian ideograph */ + {"\x90", 0, 0x215D75}, /* East Asian ideograph */ + {"\xA6", 0, 0x215D76}, /* East Asian ideograph */ + {"\xA8", 0, 0x215D7D}, /* East Asian ideograph */ + {"\x98", 0, 0x215E22}, /* East Asian ideograph */ + {"\x83", 0, 0x23444C}, /* East Asian ideograph */ + {"\x87", 0, 0x23444D}, /* East Asian ideograph */ + {"\x9E", 0, 0x23444E}, /* East Asian ideograph */ + {"\x9D", 0, 0x234453}, /* East Asian ideograph */ + {"\x9F", 0, 0x234458}, /* East Asian ideograph */ + {"\xB1", 0, 0x23445A}, /* East Asian ideograph */ + {"\x86", 0, 0x23445B}, /* East Asian ideograph */ + {"\x8F", 0, 0x23445F}, /* East Asian ideograph */ + {"\x82", 0, 0x234462}, /* East Asian ideograph */ + {"\xA4", 0, 0x234464}, /* East Asian ideograph */ + {"\x92", 0, 0x234466}, /* East Asian ideograph */ + {"\xB8", 0, 0x234469}, /* East Asian ideograph */ + {"\xA3", 0, 0x23446A}, /* East Asian ideograph */ + {"\xA1", 0, 0x23446C}, /* East Asian ideograph */ + {"\x81", 0, 0x234472}, /* East Asian ideograph */ + {"\x95", 0, 0x234474}, /* East Asian ideograph */ + {"\xA9", 0, 0x234476}, /* East Asian ideograph */ + {"\xAE", 0, 0x234478}, /* East Asian ideograph */ + {"\xAA", 0, 0x234479}, /* East Asian ideograph */ + {"\xBF", 0, 0x23447B}, /* East Asian ideograph */ + {"\xBA", 0, 0x23447C}, /* East Asian ideograph */ + {"\xB5", 0, 0x23447E}, /* East Asian ideograph */ + {"\x94", 0, 0x234522}, /* East Asian ideograph */ + {"\x99", 0, 0x234532}, /* East Asian ideograph */ + {"\xBE", 0, 0x294666}, /* East Asian ideograph */ + {"\xAC", 0, 0x4B496A}, /* East Asian ideograph */ + {"\x86", 0, 0x4D445B}, /* East Asian ideograph (variant of EACC 23445B) */ + {"\xBB", 0, 0x696F27}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page283 = { + marc8r_9page283_flat, 0 +}; +/* PAGE 282 */ +struct yaz_iconv_trie_flat marc8r_9page282_flat[] = { + {"\x85", 0, 0x215D62}, /* East Asian ideograph */ + {"\xAA", 0, 0x215D65}, /* East Asian ideograph */ + {"\x81", 0, 0x215D67}, /* East Asian ideograph */ + {"\xA4", 0, 0x215D68}, /* East Asian ideograph */ + {"\x92", 0, 0x215D6A}, /* East Asian ideograph */ + {"\xB8", 0, 0x215D6D}, /* East Asian ideograph */ + {"\xBC", 0, 0x215D71}, /* East Asian ideograph */ + {"\xAE", 0, 0x234340}, /* East Asian ideograph */ + {"\x88", 0, 0x234366}, /* East Asian ideograph */ + {"\x83", 0, 0x23436A}, /* East Asian ideograph */ + {"\x90", 0, 0x23436F}, /* East Asian ideograph */ + {"\xB1", 0, 0x234371}, /* East Asian ideograph */ + {"\x9F", 0, 0x234372}, /* East Asian ideograph */ + {"\xA6", 0, 0x234375}, /* East Asian ideograph */ + {"\x80", 0, 0x234377}, /* East Asian ideograph */ + {"\x99", 0, 0x23437A}, /* East Asian ideograph */ + {"\x95", 0, 0x23437E}, /* East Asian ideograph */ + {"\x86", 0, 0x234421}, /* East Asian ideograph */ + {"\xB4", 0, 0x234425}, /* East Asian ideograph */ + {"\x8F", 0, 0x234427}, /* East Asian ideograph */ + {"\xA7", 0, 0x23442C}, /* East Asian ideograph */ + {"\x87", 0, 0x23442D}, /* East Asian ideograph */ + {"\xB0", 0, 0x23442E}, /* East Asian ideograph */ + {"\x9B", 0, 0x23442F}, /* East Asian ideograph */ + {"\x9C", 0, 0x234430}, /* East Asian ideograph */ + {"\x98", 0, 0x234431}, /* East Asian ideograph */ + {"\xA9", 0, 0x234433}, /* East Asian ideograph */ + {"\x9D", 0, 0x234435}, /* East Asian ideograph */ + {"\x91", 0, 0x234439}, /* East Asian ideograph */ + {"\x8A", 0, 0x23443A}, /* East Asian ideograph */ + {"\x82", 0, 0x23443C}, /* East Asian ideograph */ + {"\x8C", 0, 0x23443E}, /* East Asian ideograph */ + {"\xAF", 0, 0x234440}, /* East Asian ideograph */ + {"\xA8", 0, 0x234441}, /* East Asian ideograph */ + {"\xAB", 0, 0x234443}, /* East Asian ideograph */ + {"\xB5", 0, 0x234445}, /* East Asian ideograph */ + {"\xB2", 0, 0x234448}, /* East Asian ideograph */ + {"\xBA", 0, 0x234454}, /* East Asian ideograph */ + {"\xB9", 0, 0x23445D}, /* East Asian ideograph */ + {"\xBE", 0, 0x234528}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D5E43}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page282 = { + marc8r_9page282_flat, 0 +}; +/* PAGE 281 */ +struct yaz_iconv_trie_flat marc8r_9page281_flat[] = { + {"\x80", 0, 0x215D5A}, /* East Asian ideograph */ + {"\xAC", 0, 0x215D5B}, /* East Asian ideograph */ + {"\x85", 0, 0x215D5C}, /* East Asian ideograph */ + {"\x98", 0, 0x215D5D}, /* East Asian ideograph */ + {"\x96", 0, 0x215D5E}, /* East Asian ideograph */ + {"\x93", 0, 0x215D60}, /* East Asian ideograph */ + {"\x9C", 0, 0x215D61}, /* East Asian ideograph */ + {"\xBB", 0, 0x215D63}, /* East Asian ideograph */ + {"\xB3", 0, 0x215D64}, /* East Asian ideograph */ + {"\xB7", 0, 0x215D66}, /* East Asian ideograph */ + {"\xBC", 0, 0x215D69}, /* East Asian ideograph */ + {"\x92", 0, 0x23422A}, /* East Asian ideograph */ + {"\xA2", 0, 0x23424F}, /* East Asian ideograph */ + {"\x83", 0, 0x23432F}, /* East Asian ideograph */ + {"\xA5", 0, 0x234331}, /* East Asian ideograph */ + {"\x82", 0, 0x234333}, /* East Asian ideograph */ + {"\xA8", 0, 0x234335}, /* East Asian ideograph */ + {"\xA4", 0, 0x234338}, /* East Asian ideograph */ + {"\x8D", 0, 0x23433F}, /* East Asian ideograph */ + {"\x88", 0, 0x234342}, /* East Asian ideograph */ + {"\x8E", 0, 0x234345}, /* East Asian ideograph */ + {"\xA0", 0, 0x234346}, /* East Asian ideograph */ + {"\xAA", 0, 0x234349}, /* East Asian ideograph */ + {"\xA6", 0, 0x234350}, /* East Asian ideograph */ + {"\x9A", 0, 0x234355}, /* East Asian ideograph */ + {"\xAB", 0, 0x234358}, /* East Asian ideograph */ + {"\x91", 0, 0x23435B}, /* East Asian ideograph */ + {"\x9B", 0, 0x23435D}, /* East Asian ideograph */ + {"\xA3", 0, 0x234364}, /* East Asian ideograph */ + {"\xB6", 0, 0x234376}, /* East Asian ideograph */ + {"\xBE", 0, 0x234379}, /* East Asian ideograph */ + {"\xB2", 0, 0x23442A}, /* East Asian ideograph */ + {"\xAE", 0, 0x275E48}, /* East Asian ideograph */ + {"\xB9", 0, 0x2D5E3B}, /* East Asian ideograph */ + {"\x95", 0, 0x395E3D}, /* East Asian ideograph */ + {"\xAD", 0, 0x4B5D70}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page281 = { + marc8r_9page281_flat, 0 +}; +/* PAGE 280 */ +struct yaz_iconv_trie_flat marc8r_9page280_flat[] = { + {"\x80", 0, 0x215D53}, /* East Asian ideograph */ + {"\x8B", 0, 0x215D54}, /* East Asian ideograph */ + {"\x9B", 0, 0x215D55}, /* East Asian ideograph */ + {"\xA4", 0, 0x215D56}, /* East Asian ideograph */ + {"\x91", 0, 0x215D57}, /* East Asian ideograph */ + {"\xB8", 0, 0x215D59}, /* East Asian ideograph */ + {"\xBB", 0, 0x215D5F}, /* East Asian ideograph */ + {"\x89", 0, 0x234252}, /* East Asian ideograph */ + {"\x8D", 0, 0x234254}, /* East Asian ideograph */ + {"\x88", 0, 0x234255}, /* East Asian ideograph */ + {"\xA6", 0, 0x234261}, /* East Asian ideograph */ + {"\x9E", 0, 0x234264}, /* East Asian ideograph */ + {"\x90", 0, 0x23426B}, /* East Asian ideograph */ + {"\xAB", 0, 0x23426C}, /* East Asian ideograph */ + {"\xAD", 0, 0x23426F}, /* East Asian ideograph */ + {"\xAC", 0, 0x234270}, /* East Asian ideograph */ + {"\x8F", 0, 0x234271}, /* East Asian ideograph */ + {"\xA0", 0, 0x234277}, /* East Asian ideograph */ + {"\x8E", 0, 0x234323}, /* East Asian ideograph */ + {"\x8C", 0, 0x234326}, /* East Asian ideograph */ + {"\x96", 0, 0x234327}, /* East Asian ideograph */ + {"\x9A", 0, 0x23432B}, /* East Asian ideograph */ + {"\x81", 0, 0x23432E}, /* East Asian ideograph */ + {"\xBC", 0, 0x234337}, /* East Asian ideograph */ + {"\xB6", 0, 0x23433E}, /* East Asian ideograph */ + {"\xBA", 0, 0x234343}, /* East Asian ideograph */ + {"\xB7", 0, 0x234347}, /* East Asian ideograph */ + {"\xBE", 0, 0x234354}, /* East Asian ideograph */ + {"\xBF", 0, 0x234362}, /* East Asian ideograph */ + {"\x85", 0, 0x2D3C38}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D5228}, /* East Asian ideograph */ + {"\x97", 0, 0x33502A}, /* East Asian ideograph */ + {"\x84", 0, 0x335E3D}, /* East Asian ideograph */ + {"\xB4", 0, 0x395E42}, /* East Asian ideograph */ + {"\xB1", 0, 0x514E5B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page280 = { + marc8r_9page280_flat, 0 +}; +/* PAGE 279 */ +struct yaz_iconv_trie_flat marc8r_9page279_flat[] = { + {"\xA3", 0, 0x215D47}, /* East Asian ideograph */ + {"\x8D", 0, 0x215D48}, /* East Asian ideograph */ + {"\x95", 0, 0x215D49}, /* East Asian ideograph */ + {"\x89", 0, 0x215D4A}, /* East Asian ideograph */ + {"\x94", 0, 0x215D4B}, /* East Asian ideograph */ + {"\x9E", 0, 0x215D4C}, /* East Asian ideograph */ + {"\x90", 0, 0x215D4D}, /* East Asian ideograph */ + {"\xB7", 0, 0x215D4F}, /* East Asian ideograph */ + {"\xB8", 0, 0x215D50}, /* East Asian ideograph */ + {"\xBD", 0, 0x215D51}, /* East Asian ideograph */ + {"\xBE", 0, 0x215D52}, /* East Asian ideograph */ + {"\xB4", 0, 0x215D58}, /* East Asian ideograph (variant of EACC 4B5D58) */ + {"\x84", 0, 0x234223}, /* East Asian ideograph */ + {"\x81", 0, 0x234225}, /* East Asian ideograph */ + {"\xAB", 0, 0x234226}, /* East Asian ideograph */ + {"\x8A", 0, 0x234227}, /* East Asian ideograph */ + {"\xA5", 0, 0x234228}, /* East Asian ideograph */ + {"\xA8", 0, 0x23422C}, /* East Asian ideograph */ + {"\x87", 0, 0x23422E}, /* East Asian ideograph */ + {"\x83", 0, 0x23422F}, /* East Asian ideograph */ + {"\x80", 0, 0x234231}, /* East Asian ideograph */ + {"\x98", 0, 0x234232}, /* East Asian ideograph */ + {"\x88", 0, 0x234236}, /* East Asian ideograph */ + {"\xA6", 0, 0x234237}, /* East Asian ideograph */ + {"\x9C", 0, 0x234238}, /* East Asian ideograph */ + {"\xA4", 0, 0x23423B}, /* East Asian ideograph */ + {"\x92", 0, 0x234243}, /* East Asian ideograph */ + {"\x96", 0, 0x23424A}, /* East Asian ideograph */ + {"\x91", 0, 0x23424B}, /* East Asian ideograph */ + {"\x86", 0, 0x23424E}, /* East Asian ideograph */ + {"\xB0", 0, 0x234251}, /* East Asian ideograph */ + {"\xBA", 0, 0x234258}, /* East Asian ideograph */ + {"\xAE", 0, 0x23425C}, /* East Asian ideograph */ + {"\xB3", 0, 0x23425F}, /* East Asian ideograph */ + {"\xB5", 0, 0x234268}, /* East Asian ideograph */ + {"\xB9", 0, 0x23426D}, /* East Asian ideograph */ + {"\xBF", 0, 0x234274}, /* East Asian ideograph */ + {"\xB6", 0, 0x23427E}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D5D56}, /* East Asian ideograph */ + {"\xA1", 0, 0x335E21}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B5D58}, /* East Asian ideograph */ + {"\xAC", 0, 0x4B5E3F}, /* East Asian ideograph */ + {"\xA9", 0, 0x4D4862}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page279 = { + marc8r_9page279_flat, 0 +}; +/* PAGE 278 */ +struct yaz_iconv_trie_flat marc8r_9page278_flat[] = { + {"\x80", 0, 0x215D34}, /* East Asian ideograph */ + {"\x81", 0, 0x215D35}, /* East Asian ideograph */ + {"\x87", 0, 0x215D36}, /* East Asian ideograph */ + {"\x89", 0, 0x215D37}, /* East Asian ideograph */ + {"\x8B", 0, 0x215D38}, /* East Asian ideograph */ + {"\x8D", 0, 0x215D3A}, /* East Asian ideograph */ + {"\x8E", 0, 0x215D3B}, /* East Asian ideograph */ + {"\x8F", 0, 0x215D3C}, /* East Asian ideograph */ + {"\x90", 0, 0x215D3D}, /* East Asian ideograph */ + {"\x91", 0, 0x215D3E}, /* East Asian ideograph */ + {"\x9D", 0, 0x215D3F}, /* East Asian ideograph */ + {"\x98", 0, 0x215D40}, /* East Asian ideograph */ + {"\x97", 0, 0x215D41}, /* East Asian ideograph */ + {"\x9C", 0, 0x215D42}, /* East Asian ideograph */ + {"\xB5", 0, 0x215D43}, /* East Asian ideograph */ + {"\xA6", 0, 0x215D44}, /* East Asian ideograph */ + {"\xA3", 0, 0x215D45}, /* East Asian ideograph */ + {"\xA7", 0, 0x215D46}, /* East Asian ideograph */ + {"\x82", 0, 0x23415A}, /* East Asian ideograph */ + {"\x84", 0, 0x23415B}, /* East Asian ideograph */ + {"\x83", 0, 0x23415C}, /* East Asian ideograph */ + {"\x94", 0, 0x234161}, /* East Asian ideograph */ + {"\x93", 0, 0x234162}, /* East Asian ideograph */ + {"\x95", 0, 0x234163}, /* East Asian ideograph */ + {"\x99", 0, 0x234164}, /* East Asian ideograph */ + {"\xA2", 0, 0x234168}, /* East Asian ideograph */ + {"\xAD", 0, 0x234169}, /* East Asian ideograph */ + {"\xB7", 0, 0x23416A}, /* East Asian ideograph */ + {"\xBA", 0, 0x23416B}, /* East Asian ideograph */ + {"\xB2", 0, 0x23416F}, /* East Asian ideograph */ + {"\xA8", 0, 0x234171}, /* East Asian ideograph */ + {"\xB6", 0, 0x234172}, /* East Asian ideograph */ + {"\xAE", 0, 0x234173}, /* East Asian ideograph */ + {"\xB4", 0, 0x234174}, /* East Asian ideograph */ + {"\xB1", 0, 0x234177}, /* East Asian ideograph */ + {"\xA9", 0, 0x234179}, /* East Asian ideograph */ + {"\xB8", 0, 0x23417A}, /* East Asian ideograph */ + {"\xB9", 0, 0x234221}, /* East Asian ideograph */ + {"\xA4", 0, 0x234222}, /* East Asian ideograph */ + {"\xBE", 0, 0x234233}, /* East Asian ideograph */ + {"\xBF", 0, 0x234248}, /* East Asian ideograph */ + {"\x8C", 0, 0x275763}, /* East Asian ideograph */ + {"\x8A", 0, 0x275D38}, /* East Asian ideograph */ + {"\xBC", 0, 0x333421}, /* East Asian ideograph */ + {"\x86", 0, 0x4B5D36}, /* East Asian ideograph */ + {"\x88", 0, 0x4B5D38}, /* East Asian ideograph */ + {"\xA1", 0, 0x4B5D42}, /* East Asian ideograph */ + {"\x9B", 0, 0x4D4176}, /* East Asian ideograph */ + {"\x96", 0, 0x513421}, /* East Asian ideograph */ + {"\x9F", 0, 0x696E5C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page278 = { + marc8r_9page278_flat, 0 +}; +/* PAGE 277 */ +struct yaz_iconv_trie_flat marc8r_9page277_flat[] = { + {"\x87", 0, 0x215D29}, /* East Asian ideograph */ + {"\x89", 0, 0x215D2A}, /* East Asian ideograph */ + {"\x8B", 0, 0x215D2B}, /* East Asian ideograph */ + {"\x83", 0, 0x215D2C}, /* East Asian ideograph */ + {"\x92", 0, 0x215D2D}, /* East Asian ideograph */ + {"\xA3", 0, 0x215D2E}, /* East Asian ideograph */ + {"\x9E", 0, 0x215D2F}, /* East Asian ideograph */ + {"\x9C", 0, 0x215D30}, /* East Asian ideograph */ + {"\xAB", 0, 0x215D31}, /* East Asian ideograph */ + {"\xAC", 0, 0x215D32}, /* East Asian ideograph */ + {"\xBA", 0, 0x215D33}, /* East Asian ideograph */ + {"\x85", 0, 0x23406D}, /* East Asian ideograph */ + {"\x82", 0, 0x23406F}, /* East Asian ideograph */ + {"\x8A", 0, 0x234070}, /* East Asian ideograph */ + {"\x86", 0, 0x234071}, /* East Asian ideograph */ + {"\x8C", 0, 0x234072}, /* East Asian ideograph */ + {"\x81", 0, 0x234073}, /* East Asian ideograph */ + {"\x91", 0, 0x23407B}, /* East Asian ideograph */ + {"\x90", 0, 0x23407D}, /* East Asian ideograph */ + {"\x8E", 0, 0x23407E}, /* East Asian ideograph */ + {"\x8D", 0, 0x234124}, /* East Asian ideograph */ + {"\x93", 0, 0x234125}, /* East Asian ideograph */ + {"\x9D", 0, 0x23412B}, /* East Asian ideograph */ + {"\x9A", 0, 0x23412C}, /* East Asian ideograph */ + {"\xA2", 0, 0x234130}, /* East Asian ideograph */ + {"\x9B", 0, 0x234134}, /* East Asian ideograph (variant of EACC 4D4134) */ + {"\xA8", 0, 0x234137}, /* East Asian ideograph */ + {"\xAA", 0, 0x23413D}, /* East Asian ideograph */ + {"\xAF", 0, 0x234141}, /* East Asian ideograph */ + {"\xB1", 0, 0x234142}, /* East Asian ideograph */ + {"\xAD", 0, 0x234147}, /* East Asian ideograph */ + {"\xAE", 0, 0x234148}, /* East Asian ideograph */ + {"\xB4", 0, 0x23414B}, /* East Asian ideograph */ + {"\xB2", 0, 0x23414C}, /* East Asian ideograph */ + {"\xB5", 0, 0x23414D}, /* East Asian ideograph */ + {"\xBF", 0, 0x234156}, /* East Asian ideograph */ + {"\xBD", 0, 0x234157}, /* East Asian ideograph */ + {"\x96", 0, 0x2D5D2F}, /* East Asian ideograph */ + {"\xBC", 0, 0x334A28}, /* East Asian ideograph */ + {"\xBE", 0, 0x354156}, /* East Asian ideograph */ + {"\xBB", 0, 0x395D23}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B5D34}, /* East Asian ideograph */ + {"\x9B", 0, 0x4D4134}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page277 = { + marc8r_9page277_flat, 0 +}; +/* PAGE 276 */ +struct yaz_iconv_trie_flat marc8r_9page276_flat[] = { + {"\x89", 0, 0x215C78}, /* East Asian ideograph */ + {"\x8B", 0, 0x215C79}, /* East Asian ideograph */ + {"\x8A", 0, 0x215C7A}, /* East Asian ideograph */ + {"\x92", 0, 0x215C7B}, /* East Asian ideograph */ + {"\x8D", 0, 0x215C7C}, /* East Asian ideograph */ + {"\x8C", 0, 0x215C7D}, /* East Asian ideograph */ + {"\x97", 0, 0x215C7E}, /* East Asian ideograph */ + {"\xA3", 0, 0x215D21}, /* East Asian ideograph */ + {"\xA5", 0, 0x215D22}, /* East Asian ideograph */ + {"\xAC", 0, 0x215D23}, /* East Asian ideograph */ + {"\xA9", 0, 0x215D24}, /* East Asian ideograph */ + {"\xAA", 0, 0x215D25}, /* East Asian ideograph */ + {"\xB5", 0, 0x215D26}, /* East Asian ideograph */ + {"\xB8", 0, 0x215D27}, /* East Asian ideograph */ + {"\xB7", 0, 0x215D28}, /* East Asian ideograph */ + {"\x83", 0, 0x23403B}, /* East Asian ideograph */ + {"\x86", 0, 0x23403E}, /* East Asian ideograph */ + {"\x85", 0, 0x23403F}, /* East Asian ideograph */ + {"\x88", 0, 0x234040}, /* East Asian ideograph */ + {"\x87", 0, 0x234041}, /* East Asian ideograph */ + {"\x90", 0, 0x234042}, /* East Asian ideograph */ + {"\x8E", 0, 0x234043}, /* East Asian ideograph */ + {"\x99", 0, 0x234048}, /* East Asian ideograph */ + {"\x9C", 0, 0x234049}, /* East Asian ideograph */ + {"\x96", 0, 0x23404D}, /* East Asian ideograph */ + {"\x98", 0, 0x234050}, /* East Asian ideograph */ + {"\x9A", 0, 0x234052}, /* East Asian ideograph */ + {"\xA1", 0, 0x234053}, /* East Asian ideograph */ + {"\xA4", 0, 0x234056}, /* East Asian ideograph */ + {"\xAF", 0, 0x234061}, /* East Asian ideograph */ + {"\xAE", 0, 0x234062}, /* East Asian ideograph */ + {"\xBA", 0, 0x234066}, /* East Asian ideograph */ + {"\xB2", 0, 0x234068}, /* East Asian ideograph */ + {"\xB9", 0, 0x234069}, /* East Asian ideograph */ + {"\xB6", 0, 0x23406A}, /* East Asian ideograph */ + {"\xB4", 0, 0x23406B}, /* East Asian ideograph */ + {"\xB3", 0, 0x23406C}, /* East Asian ideograph */ + {"\x94", 0, 0x275D2A}, /* East Asian ideograph */ + {"\x9D", 0, 0x275D2F}, /* East Asian ideograph */ + {"\xB1", 0, 0x275D32}, /* East Asian ideograph */ + {"\xBF", 0, 0x275D34}, /* East Asian ideograph */ + {"\xBE", 0, 0x29415C}, /* East Asian ideograph */ + {"\xBD", 0, 0x29415D}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D5D23}, /* East Asian ideograph */ + {"\x8F", 0, 0x2F4053}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B5D2B}, /* East Asian ideograph */ + {"\x9E", 0, 0x704C2A}, /* East Asian ideograph */ + {"\xB0", 0, 0x707523}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page276 = { + marc8r_9page276_flat, 0 +}; +/* PAGE 275 */ +struct yaz_iconv_trie_flat marc8r_9page275_flat[] = { + {"\x82", 0, 0x215C6F}, /* East Asian ideograph */ + {"\x89", 0, 0x215C70}, /* East Asian ideograph */ + {"\x92", 0, 0x215C71}, /* East Asian ideograph */ + {"\x99", 0, 0x215C72}, /* East Asian ideograph */ + {"\xAD", 0, 0x215C73}, /* East Asian ideograph */ + {"\xB0", 0, 0x215C74}, /* East Asian ideograph */ + {"\xA7", 0, 0x215C75}, /* East Asian ideograph */ + {"\xB1", 0, 0x215C76}, /* East Asian ideograph */ + {"\xB9", 0, 0x215C77}, /* East Asian ideograph (variant of EACC 4B5C77) */ + {"\x84", 0, 0x233F49}, /* East Asian ideograph */ + {"\x86", 0, 0x233F4C}, /* East Asian ideograph */ + {"\x80", 0, 0x233F4E}, /* East Asian ideograph */ + {"\x87", 0, 0x233F50}, /* East Asian ideograph */ + {"\x8F", 0, 0x233F57}, /* East Asian ideograph */ + {"\x91", 0, 0x233F58}, /* East Asian ideograph */ + {"\x96", 0, 0x233F5A}, /* East Asian ideograph */ + {"\x94", 0, 0x233F5C}, /* East Asian ideograph */ + {"\x8B", 0, 0x233F60}, /* East Asian ideograph */ + {"\xA3", 0, 0x233F62}, /* East Asian ideograph (Version J extension) */ + {"\x98", 0, 0x233F63}, /* East Asian ideograph */ + {"\x9C", 0, 0x233F64}, /* East Asian ideograph */ + {"\xA0", 0, 0x233F66}, /* East Asian ideograph */ + {"\xA2", 0, 0x233F67}, /* East Asian ideograph */ + {"\x9E", 0, 0x233F6A}, /* East Asian ideograph */ + {"\xA4", 0, 0x233F71}, /* East Asian ideograph */ + {"\x9A", 0, 0x233F72}, /* East Asian ideograph */ + {"\xA5", 0, 0x233F74}, /* East Asian ideograph */ + {"\xAF", 0, 0x233F77}, /* East Asian ideograph */ + {"\xAB", 0, 0x233F79}, /* East Asian ideograph */ + {"\xB2", 0, 0x234021}, /* East Asian ideograph */ + {"\xA6", 0, 0x234024}, /* East Asian ideograph */ + {"\xB4", 0, 0x23402B}, /* East Asian ideograph */ + {"\xB6", 0, 0x23402C}, /* East Asian ideograph */ + {"\xBA", 0, 0x234031}, /* East Asian ideograph */ + {"\xBB", 0, 0x234032}, /* East Asian ideograph */ + {"\x99", 0, 0x4B5C72}, /* East Asian ideograph (variant of EACC 215C72) */ + {"\xB9", 0, 0x4B5C77}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page275 = { + marc8r_9page275_flat, 0 +}; +/* PAGE 274 */ +struct yaz_iconv_trie_flat marc8r_9page274_flat[] = { + {"\x8E", 0, 0x215C67}, /* East Asian ideograph */ + {"\x8A", 0, 0x215C68}, /* East Asian ideograph */ + {"\xA1", 0, 0x215C6A}, /* East Asian ideograph */ + {"\xA8", 0, 0x215C6B}, /* East Asian ideograph */ + {"\xAD", 0, 0x215C6C}, /* East Asian ideograph */ + {"\xB5", 0, 0x215C6D}, /* East Asian ideograph */ + {"\xBD", 0, 0x215C6E}, /* East Asian ideograph */ + {"\x89", 0, 0x233E68}, /* East Asian ideograph */ + {"\x95", 0, 0x233E6F}, /* East Asian ideograph */ + {"\x87", 0, 0x233E75}, /* East Asian ideograph */ + {"\x88", 0, 0x233E78}, /* East Asian ideograph */ + {"\x83", 0, 0x233E79}, /* East Asian ideograph */ + {"\x9D", 0, 0x233F22}, /* East Asian ideograph */ + {"\x9F", 0, 0x233F23}, /* East Asian ideograph */ + {"\xA2", 0, 0x233F26}, /* East Asian ideograph */ + {"\x98", 0, 0x233F27}, /* East Asian ideograph */ + {"\x9B", 0, 0x233F28}, /* East Asian ideograph */ + {"\x9C", 0, 0x233F2A}, /* East Asian ideograph */ + {"\x97", 0, 0x233F2C}, /* East Asian ideograph */ + {"\xA4", 0, 0x233F2D}, /* East Asian ideograph */ + {"\xAF", 0, 0x233F2E}, /* East Asian ideograph */ + {"\xAA", 0, 0x233F2F}, /* East Asian ideograph */ + {"\xB0", 0, 0x233F32}, /* East Asian ideograph */ + {"\xB4", 0, 0x233F33}, /* East Asian ideograph */ + {"\xB2", 0, 0x233F34}, /* East Asian ideograph */ + {"\xAB", 0, 0x233F3E}, /* East Asian ideograph */ + {"\xB3", 0, 0x233F3F}, /* East Asian ideograph */ + {"\xBC", 0, 0x233F46}, /* East Asian ideograph */ + {"\xBE", 0, 0x233F47}, /* East Asian ideograph */ + {"\xBF", 0, 0x233F4A}, /* East Asian ideograph */ + {"\x91", 0, 0x275C73}, /* East Asian ideograph */ + {"\x81", 0, 0x27616A}, /* East Asian ideograph */ + {"\x8F", 0, 0x293F23}, /* East Asian ideograph */ + {"\x93", 0, 0x293F4C}, /* East Asian ideograph */ + {"\xA7", 0, 0x293F5A}, /* East Asian ideograph */ + {"\xB8", 0, 0x294021}, /* East Asian ideograph */ + {"\x90", 0, 0x29402C}, /* East Asian ideograph */ + {"\xA6", 0, 0x294040}, /* East Asian ideograph */ + {"\x84", 0, 0x335F34}, /* East Asian ideograph */ + {"\x85", 0, 0x34782A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page274 = { + marc8r_9page274_flat, 0 +}; +/* PAGE 273 */ +struct yaz_iconv_trie_flat marc8r_9page273_flat[] = { + {"\x81", 0, 0x215C56}, /* East Asian ideograph */ + {"\x84", 0, 0x215C57}, /* East Asian ideograph */ + {"\x82", 0, 0x215C58}, /* East Asian ideograph */ + {"\x80", 0, 0x215C59}, /* East Asian ideograph */ + {"\x87", 0, 0x215C5A}, /* East Asian ideograph */ + {"\x8A", 0, 0x215C5B}, /* East Asian ideograph */ + {"\x90", 0, 0x215C5C}, /* East Asian ideograph */ + {"\x8F", 0, 0x215C5D}, /* East Asian ideograph */ + {"\x91", 0, 0x215C5E}, /* East Asian ideograph */ + {"\x95", 0, 0x215C5F}, /* East Asian ideograph */ + {"\xA3", 0, 0x215C60}, /* East Asian ideograph */ + {"\xA2", 0, 0x215C61}, /* East Asian ideograph */ + {"\xAA", 0, 0x215C62}, /* East Asian ideograph */ + {"\xA6", 0, 0x215C63}, /* East Asian ideograph */ + {"\xB5", 0, 0x215C64}, /* East Asian ideograph */ + {"\xB1", 0, 0x215C65}, /* East Asian ideograph */ + {"\xB8", 0, 0x215C66}, /* East Asian ideograph */ + {"\x85", 0, 0x233E2C}, /* East Asian ideograph */ + {"\x83", 0, 0x233E34}, /* East Asian ideograph */ + {"\x88", 0, 0x233E37}, /* East Asian ideograph */ + {"\x8B", 0, 0x233E3A}, /* East Asian ideograph */ + {"\x99", 0, 0x233E3F}, /* East Asian ideograph */ + {"\x97", 0, 0x233E40}, /* East Asian ideograph */ + {"\x9B", 0, 0x233E43}, /* East Asian ideograph */ + {"\x9C", 0, 0x233E44}, /* East Asian ideograph */ + {"\xA1", 0, 0x233E48}, /* East Asian ideograph */ + {"\xA8", 0, 0x233E51}, /* East Asian ideograph */ + {"\xA0", 0, 0x233E54}, /* East Asian ideograph */ + {"\xAF", 0, 0x233E58}, /* East Asian ideograph */ + {"\xB3", 0, 0x233E59}, /* East Asian ideograph */ + {"\xB6", 0, 0x233E5B}, /* East Asian ideograph */ + {"\xB0", 0, 0x233E5D}, /* East Asian ideograph */ + {"\xAD", 0, 0x233E5F}, /* East Asian ideograph */ + {"\xB2", 0, 0x233E61}, /* East Asian ideograph */ + {"\xBD", 0, 0x233E6A}, /* East Asian ideograph */ + {"\xBE", 0, 0x233E72}, /* East Asian ideograph */ + {"\xAE", 0, 0x275C6D}, /* East Asian ideograph */ + {"\xB9", 0, 0x275C71}, /* East Asian ideograph */ + {"\xBB", 0, 0x275C74}, /* East Asian ideograph */ + {"\x93", 0, 0x275C75}, /* East Asian ideograph */ + {"\xAC", 0, 0x293F5C}, /* East Asian ideograph */ + {"\xBA", 0, 0x29402B}, /* East Asian ideograph */ + {"\x9D", 0, 0x294031}, /* East Asian ideograph */ + {"\x89", 0, 0x2D5C5B}, /* East Asian ideograph */ + {"\xB4", 0, 0x2F4A2E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page273 = { + marc8r_9page273_flat, 0 +}; +/* PAGE 272 */ +struct yaz_iconv_trie_dir marc8r_9page272_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215C41} /* East Asian ideograph */, + {0, 0, 0x215C37} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D6A} /* East Asian ideograph */, + {0, 0, 0x4B5C50} /* East Asian ideograph */, + {0, 0, 0x233D5B} /* East Asian ideograph */, + {0, 0, 0x215C3C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D67} /* East Asian ideograph */, + {0, 0, 0x33477B} /* East Asian ideograph */, + {0, 0, 0x215C34} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C3F} /* East Asian ideograph */, + {0, 0, 0x215C3E} /* East Asian ideograph */, + {0, 0, 0x215C3D} /* East Asian ideograph */, + {0, 0, 0x215C38} /* East Asian ideograph */, + {0, 0, 0x215C40} /* East Asian ideograph */, + {0, 0, 0x233D5D} /* East Asian ideograph */, + {0, 0, 0x215C36} /* East Asian ideograph */, + {0, 0, 0x215C39} /* East Asian ideograph */, + {0, 0, 0x215C3A} /* East Asian ideograph */, + {0, 0, 0x696E28} /* East Asian ideograph */, + {0, 0, 0x275C53} /* East Asian ideograph */, + {0, 0, 0x215C43} /* East Asian ideograph */, + {0, 0, 0x4B5C47} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D78} /* East Asian ideograph */, + {0, 0, 0x215C45} /* East Asian ideograph */, + {0, 0, 0x233D75} /* East Asian ideograph */, + {0, 0, 0x215C48} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C44} /* East Asian ideograph */, + {0, 0, 0x39483B} /* East Asian ideograph */, + {0, 0, 0x233D74} /* East Asian ideograph */, + {0, 0, 0x215C46} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C47} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215C4B} /* East Asian ideograph */, + {0, 0, 0x215C49} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D7B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C4C} /* East Asian ideograph */, + {0, 0, 0x215C4A} /* East Asian ideograph */, + {0, 0, 0x233E25} /* East Asian ideograph */, + {0, 0, 0x233E21} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C50} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C4E} /* East Asian ideograph */, + {0, 0, 0x215C4D} /* East Asian ideograph */, + {0, 0, 0x233E28} /* East Asian ideograph */, + {0, 0, 0x215C51} /* East Asian ideograph */, + {0, 0, 0x215C4F} /* East Asian ideograph */, + {0, 0, 0x233E26} /* East Asian ideograph */, + {0, 0, 0x215C53} /* East Asian ideograph */, + {0, 0, 0x233E2A} /* East Asian ideograph */, + {0, 0, 0x215C52} /* East Asian ideograph */, + {0, 0, 0x215C55} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C54} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page272 = { + 0, marc8r_9page272_dir +}; +/* PAGE 271 */ +struct yaz_iconv_trie_dir marc8r_9page271_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215B77} /* East Asian ideograph */, + {0, 0, 0x215B74} /* East Asian ideograph */, + {0, 0, 0x275C49} /* East Asian ideograph */, + {0, 0, 0x215B7A} /* East Asian ideograph */, + {0, 0, 0x233D3F} /* East Asian ideograph */, + {0, 0, 0x215B7C} /* East Asian ideograph */, + {0, 0, 0x215B75} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D40} /* East Asian ideograph */, + {0, 0, 0x275C4F} /* East Asian ideograph */, + {0, 0, 0x275C45} /* East Asian ideograph */, + {0, 0, 0x233D45} /* East Asian ideograph */, + {0, 0, 0x233D48} /* East Asian ideograph */, + {0, 0, 0x215C26} /* East Asian ideograph */, + {0, 0, 0x2F3D5D} /* East Asian ideograph */, + {0, 0, 0x215C2A} /* East Asian ideograph */, + {0, 0, 0x215C24} /* East Asian ideograph */, + {0, 0, 0x233D44} /* East Asian ideograph */, + {0, 0, 0x275C48} /* East Asian ideograph */, + {0, 0, 0x2D5C48} /* East Asian ideograph */, + {0, 0, 0x215C2E} /* East Asian ideograph */, + {0, 0, 0x2D3D67} /* East Asian ideograph */, + {0, 0, 0x215C2C} /* East Asian ideograph */, + {0, 0, 0x215C22} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B7D} /* East Asian ideograph */, + {0, 0, 0x215C28} /* East Asian ideograph */, + {0, 0, 0x215C2D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C23} /* East Asian ideograph */, + {0, 0, 0x215C27} /* East Asian ideograph */, + {0, 0, 0x215C21} /* East Asian ideograph */, + {0, 0, 0x215C29} /* East Asian ideograph */, + {0, 0, 0x233D49} /* East Asian ideograph */, + {0, 0, 0x215C2B} /* East Asian ideograph */, + {0, 0, 0x215B7E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275C5C} /* East Asian ideograph */, + {0, 0, 0x696D7A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x33392F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233D4E} /* East Asian ideograph */, + {0, 0, 0x233D4A} /* East Asian ideograph */, + {0, 0, 0x215C2F} /* East Asian ideograph */, + {0, 0, 0x233D58} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C31} /* East Asian ideograph */, + {0, 0, 0x215C33} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x233D57} /* East Asian ideograph */, + {0, 0, 0x215C30} /* East Asian ideograph */, + {0, 0, 0x233D59} /* East Asian ideograph */, + {0, 0, 0x233D56} /* East Asian ideograph */, + {0, 0, 0x4B5C32} /* East Asian ideograph */, + {0, 0, 0x4B5C39} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275C5D} /* East Asian ideograph */, + {0, 0, 0x215C3B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215C42} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page271 = { + 0, marc8r_9page271_dir +}; +/* PAGE 270 */ +struct yaz_iconv_trie_flat marc8r_9page270_flat[] = { + {"\x90", 0, 0x213D2D}, /* East Asian ideograph */ + {"\x8D", 0, 0x21632B}, /* East Asian ideograph */ + {"\x94", 0, 0x21632C}, /* East Asian ideograph */ + {"\x9C", 0, 0x21632D}, /* East Asian ideograph */ + {"\x8E", 0, 0x23605B}, /* East Asian ideograph */ + {"\x93", 0, 0x236061}, /* East Asian ideograph */ + {"\x95", 0, 0x236062}, /* East Asian ideograph */ + {"\xA0", 0, 0x23606B}, /* East Asian ideograph */ + {"\xA5", 0, 0x236071}, /* East Asian ideograph */ + {"\xA4", 0, 0x236072}, /* East Asian ideograph */ + {"\x83", 0, 0x276322}, /* East Asian ideograph */ + {"\x84", 0, 0x276324}, /* East Asian ideograph */ + {"\x88", 0, 0x276325}, /* East Asian ideograph */ + {"\x87", 0, 0x276326}, /* East Asian ideograph */ + {"\x89", 0, 0x276327}, /* East Asian ideograph */ + {"\x8A", 0, 0x276328}, /* East Asian ideograph */ + {"\x8C", 0, 0x276329}, /* East Asian ideograph */ + {"\x8B", 0, 0x27632A}, /* East Asian ideograph */ + {"\x99", 0, 0x27632B}, /* East Asian ideograph */ + {"\x9A", 0, 0x27632C}, /* East Asian ideograph */ + {"\x9F", 0, 0x27632D}, /* East Asian ideograph */ + {"\x80", 0, 0x295F7C}, /* East Asian ideograph */ + {"\x86", 0, 0x296028}, /* East Asian ideograph */ + {"\x85", 0, 0x29602B}, /* East Asian ideograph */ + {"\x9B", 0, 0x296062}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D4F29}, /* East Asian ideograph */ + {"\xA2", 0, 0x393577}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page270 = { + marc8r_9page270_flat, 0 +}; +/* PAGE 269 */ +struct yaz_iconv_trie_flat marc8r_9page269_flat[] = { + {"\x86", 0, 0x215B66}, /* East Asian ideograph */ + {"\x85", 0, 0x215B67}, /* East Asian ideograph */ + {"\x84", 0, 0x215B68}, /* East Asian ideograph */ + {"\x8E", 0, 0x215B6A}, /* East Asian ideograph */ + {"\x91", 0, 0x215B6B}, /* East Asian ideograph */ + {"\x94", 0, 0x215B6C}, /* East Asian ideograph */ + {"\xB0", 0, 0x215B6D}, /* East Asian ideograph (variant of EACC 275B6D) */ + {"\xA6", 0, 0x215B6E}, /* East Asian ideograph */ + {"\xA2", 0, 0x215B6F}, /* East Asian ideograph */ + {"\xAA", 0, 0x215B70}, /* East Asian ideograph */ + {"\xA5", 0, 0x215B71}, /* East Asian ideograph */ + {"\xAB", 0, 0x215B73}, /* East Asian ideograph */ + {"\xB7", 0, 0x215B76}, /* East Asian ideograph */ + {"\xBD", 0, 0x215B7B}, /* East Asian ideograph */ + {"\x92", 0, 0x233C75}, /* East Asian ideograph */ + {"\x8B", 0, 0x233C77}, /* East Asian ideograph */ + {"\x8A", 0, 0x233C7A}, /* East Asian ideograph */ + {"\x93", 0, 0x233C7B}, /* East Asian ideograph */ + {"\x8D", 0, 0x233C7D}, /* East Asian ideograph */ + {"\x9A", 0, 0x233D21}, /* East Asian ideograph */ + {"\x95", 0, 0x233D22}, /* East Asian ideograph */ + {"\xA4", 0, 0x233D2F}, /* East Asian ideograph */ + {"\xAE", 0, 0x233D30}, /* East Asian ideograph */ + {"\xB9", 0, 0x233D35}, /* East Asian ideograph */ + {"\xBB", 0, 0x233D3C}, /* East Asian ideograph */ + {"\xAD", 0, 0x274C3C}, /* East Asian ideograph */ + {"\xB0", 0, 0x275B6D}, /* East Asian ideograph */ + {"\x99", 0, 0x275B7D}, /* East Asian ideograph */ + {"\x9E", 0, 0x275B7E}, /* East Asian ideograph */ + {"\x9B", 0, 0x275C33}, /* East Asian ideograph */ + {"\x90", 0, 0x275C34}, /* East Asian ideograph */ + {"\x9D", 0, 0x275C3A}, /* East Asian ideograph */ + {"\x82", 0, 0x275C3C}, /* East Asian ideograph */ + {"\x87", 0, 0x275C3E}, /* East Asian ideograph */ + {"\x9C", 0, 0x275C44}, /* East Asian ideograph */ + {"\x9F", 0, 0x275C50}, /* East Asian ideograph */ + {"\x81", 0, 0x275C51}, /* East Asian ideograph */ + {"\x88", 0, 0x275C56}, /* East Asian ideograph */ + {"\x98", 0, 0x275C57}, /* East Asian ideograph */ + {"\xA9", 0, 0x275C5A}, /* East Asian ideograph (variant of EACC 2D5C5A) */ + {"\xB8", 0, 0x293D4E}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D5B7A}, /* East Asian ideograph */ + {"\xA8", 0, 0x2D5C2F}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D5C5A}, /* East Asian ideograph */ + {"\xBA", 0, 0x33303A}, /* East Asian ideograph */ + {"\xB4", 0, 0x333768}, /* East Asian ideograph */ + {"\xB3", 0, 0x513D67}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page269 = { + marc8r_9page269_flat, 0 +}; +/* PAGE 268 */ +struct yaz_iconv_trie_dir marc8r_9page268_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233C2D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4B5B52} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B4F} /* East Asian ideograph */, + {0, 0, 0x215B51} /* East Asian ideograph */, + {0, 0, 0x233C30} /* East Asian ideograph */, + {0, 0, 0x233C33} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B55} /* East Asian ideograph */, + {0, 0, 0x233C31} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x696D5A} /* East Asian ideograph */, + {0, 0, 0x215B54} /* East Asian ideograph */, + {0, 0, 0x215B57} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233C3D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B56} /* East Asian ideograph */, + {0, 0, 0x233C4B} /* East Asian ideograph */, + {0, 0, 0x233C48} /* East Asian ideograph */, + {0, 0, 0x233C49} /* East Asian ideograph */, + {0, 0, 0x233C4C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233C4D} /* East Asian ideograph */, + {0, 0, 0x233C53} /* East Asian ideograph */, + {0, 0, 0x233C4E} /* East Asian ideograph */, + {0, 0, 0x215B58} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B59} /* East Asian ideograph */, + {0, 0, 0x233C57} /* East Asian ideograph */, + {0, 0, 0x233C59} /* East Asian ideograph */, + {0, 0, 0x233C5A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275B32} /* East Asian ideograph */, + {0, 0, 0x275B33} /* East Asian ideograph */, + {0, 0, 0x275B35} /* East Asian ideograph */, + {0, 0, 0x275B36} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275B37} /* East Asian ideograph */, + {0, 0, 0x275B55} /* East Asian ideograph */, + {0, 0, 0x275B39} /* East Asian ideograph */, + {0, 0, 0x275B4A} /* East Asian ideograph */, + {0, 0, 0x275B38} /* East Asian ideograph */, + {0, 0, 0x275B58} /* East Asian ideograph */, + {0, 0, 0x293B3E} /* East Asian ideograph */, + {0, 0, 0x275B3A} /* East Asian ideograph */, + {0, 0, 0x293C5A} /* East Asian ideograph */, + {0, 0, 0x275B3B} /* East Asian ideograph */, + {0, 0, 0x293B42} /* East Asian ideograph */, + {0, 0, 0x275B3C} /* East Asian ideograph */, + {0, 0, 0x293B47} /* East Asian ideograph */, + {0, 0, 0x293B4F} /* East Asian ideograph */, + {0, 0, 0x293C57} /* East Asian ideograph */, + {0, 0, 0x293B3F} /* East Asian ideograph */, + {0, 0, 0x275B43} /* East Asian ideograph */, + {0, 0, 0x275B3E} /* East Asian ideograph */, + {0, 0, 0x275B3F} /* East Asian ideograph */, + {0, 0, 0x275B40} /* East Asian ideograph */, + {0, 0, 0x275B57} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page268 = { + 0, marc8r_9page268_dir +}; +/* PAGE 267 */ +struct yaz_iconv_trie_flat marc8r_9page267_flat[] = { + {"\x83", 0, 0x215B3D}, /* East Asian ideograph */ + {"\x89", 0, 0x215B3F}, /* East Asian ideograph */ + {"\x8A", 0, 0x215B40}, /* East Asian ideograph */ + {"\x94", 0, 0x215B41}, /* East Asian ideograph */ + {"\x92", 0, 0x215B42}, /* East Asian ideograph */ + {"\x95", 0, 0x215B43}, /* East Asian ideograph */ + {"\x93", 0, 0x215B44}, /* East Asian ideograph */ + {"\xA6", 0, 0x215B45}, /* East Asian ideograph */ + {"\x9B", 0, 0x215B46}, /* East Asian ideograph */ + {"\x9F", 0, 0x215B47}, /* East Asian ideograph */ + {"\x9D", 0, 0x215B48}, /* East Asian ideograph */ + {"\xA9", 0, 0x215B49}, /* East Asian ideograph */ + {"\xAA", 0, 0x215B4A}, /* East Asian ideograph */ + {"\x9C", 0, 0x215B4B}, /* East Asian ideograph */ + {"\xBB", 0, 0x215B4C}, /* East Asian ideograph */ + {"\xAF", 0, 0x215B4D}, /* East Asian ideograph */ + {"\xB8", 0, 0x215B4E}, /* East Asian ideograph */ + {"\xBE", 0, 0x215B50}, /* East Asian ideograph */ + {"\xBF", 0, 0x215B53}, /* East Asian ideograph */ + {"\x80", 0, 0x233B56}, /* East Asian ideograph */ + {"\x85", 0, 0x233B59}, /* East Asian ideograph */ + {"\x88", 0, 0x233B5A}, /* East Asian ideograph */ + {"\x87", 0, 0x233B5B}, /* East Asian ideograph */ + {"\xA7", 0, 0x233B63}, /* East Asian ideograph */ + {"\xAC", 0, 0x233B64}, /* East Asian ideograph */ + {"\x9E", 0, 0x233B6B}, /* East Asian ideograph */ + {"\xA5", 0, 0x233B6D}, /* East Asian ideograph */ + {"\xA0", 0, 0x233B6E}, /* East Asian ideograph */ + {"\x97", 0, 0x233B75}, /* East Asian ideograph */ + {"\xB6", 0, 0x233B78}, /* East Asian ideograph */ + {"\xAE", 0, 0x233B79}, /* East Asian ideograph */ + {"\xB3", 0, 0x233B7A}, /* East Asian ideograph */ + {"\xAD", 0, 0x233B7D}, /* East Asian ideograph */ + {"\xB9", 0, 0x233C26}, /* East Asian ideograph */ + {"\xB4", 0, 0x233C27}, /* East Asian ideograph */ + {"\x99", 0, 0x2D5B42}, /* East Asian ideograph */ + {"\xBC", 0, 0x2F3C2D}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B5B46}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page267 = { + marc8r_9page267_flat, 0 +}; +/* PAGE 266 */ +struct yaz_iconv_trie_flat marc8r_9page266_flat[] = { + {"\x80", 0, 0x215B31}, /* East Asian ideograph */ + {"\x8A", 0, 0x215B32}, /* East Asian ideograph */ + {"\x8B", 0, 0x215B33}, /* East Asian ideograph */ + {"\x8D", 0, 0x215B34}, /* East Asian ideograph */ + {"\x8C", 0, 0x215B35}, /* East Asian ideograph */ + {"\x92", 0, 0x215B36}, /* East Asian ideograph */ + {"\x94", 0, 0x215B37}, /* East Asian ideograph */ + {"\x9F", 0, 0x215B38}, /* East Asian ideograph */ + {"\x9B", 0, 0x215B39}, /* East Asian ideograph */ + {"\xBB", 0, 0x215B3A}, /* East Asian ideograph */ + {"\xB8", 0, 0x215B3B}, /* East Asian ideograph */ + {"\xBC", 0, 0x215B3C}, /* East Asian ideograph */ + {"\xBE", 0, 0x215B3E}, /* East Asian ideograph */ + {"\x89", 0, 0x233B2E}, /* East Asian ideograph */ + {"\x8F", 0, 0x233B2F}, /* East Asian ideograph */ + {"\x8E", 0, 0x233B31}, /* East Asian ideograph */ + {"\x95", 0, 0x233B33}, /* East Asian ideograph */ + {"\xBA", 0, 0x233B3F}, /* East Asian ideograph */ + {"\xB9", 0, 0x233B42}, /* East Asian ideograph */ + {"\xA8", 0, 0x233B4B}, /* East Asian ideograph */ + {"\xAB", 0, 0x233B4F}, /* East Asian ideograph */ + {"\xBF", 0, 0x233B51}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D5B43}, /* East Asian ideograph */ + {"\x86", 0, 0x2D615A}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B5B55}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B5B58}, /* East Asian ideograph */ + {"\x85", 0, 0x696D40}, /* East Asian ideograph */ + {"\x88", 0, 0x696D41}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page266 = { + marc8r_9page266_flat, 0 +}; +/* PAGE 265 */ +struct yaz_iconv_trie_flat marc8r_9page265_flat[] = { + {"\x82", 0, 0x215B23}, /* East Asian ideograph */ + {"\x81", 0, 0x215B24}, /* East Asian ideograph */ + {"\x87", 0, 0x215B25}, /* East Asian ideograph */ + {"\x89", 0, 0x215B26}, /* East Asian ideograph */ + {"\x85", 0, 0x215B27}, /* East Asian ideograph */ + {"\x8A", 0, 0x215B28}, /* East Asian ideograph */ + {"\x8D", 0, 0x215B29}, /* East Asian ideograph (variant of EACC 4B5B29) */ + {"\x91", 0, 0x215B2A}, /* East Asian ideograph */ + {"\xA1", 0, 0x215B2B}, /* East Asian ideograph */ + {"\xAA", 0, 0x215B2C}, /* East Asian ideograph */ + {"\xAB", 0, 0x215B2D}, /* East Asian ideograph */ + {"\xAC", 0, 0x215B2E}, /* East Asian ideograph */ + {"\xB2", 0, 0x215B2F}, /* East Asian ideograph */ + {"\xBA", 0, 0x215B30}, /* East Asian ideograph */ + {"\x95", 0, 0x233A46}, /* East Asian ideograph */ + {"\x83", 0, 0x233A52}, /* East Asian ideograph */ + {"\x84", 0, 0x233A53}, /* East Asian ideograph */ + {"\x8B", 0, 0x233A57}, /* East Asian ideograph */ + {"\x94", 0, 0x233A5D}, /* East Asian ideograph */ + {"\x9A", 0, 0x233A5E}, /* East Asian ideograph */ + {"\x92", 0, 0x233A5F}, /* East Asian ideograph */ + {"\x93", 0, 0x233A60}, /* East Asian ideograph */ + {"\x90", 0, 0x233A62}, /* East Asian ideograph */ + {"\x98", 0, 0x233A63}, /* East Asian ideograph */ + {"\x9E", 0, 0x233A64}, /* East Asian ideograph */ + {"\xA5", 0, 0x233A6B}, /* East Asian ideograph */ + {"\xA7", 0, 0x233A6F}, /* East Asian ideograph */ + {"\xA9", 0, 0x233A71}, /* East Asian ideograph */ + {"\x99", 0, 0x233A72}, /* East Asian ideograph */ + {"\xB3", 0, 0x233A78}, /* East Asian ideograph */ + {"\xBC", 0, 0x233A7A}, /* East Asian ideograph */ + {"\xB6", 0, 0x233A7D}, /* East Asian ideograph */ + {"\x8F", 0, 0x275B2C}, /* East Asian ideograph */ + {"\xAF", 0, 0x275B31}, /* East Asian ideograph */ + {"\x9C", 0, 0x293A70}, /* East Asian ideograph */ + {"\xAD", 0, 0x2D526C}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D5B2F}, /* East Asian ideograph */ + {"\xB0", 0, 0x33615A}, /* East Asian ideograph */ + {"\x8D", 0, 0x4B5B29}, /* East Asian ideograph */ + {"\xBE", 0, 0x696D3F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page265 = { + marc8r_9page265_flat, 0 +}; +/* PAGE 264 */ +struct yaz_iconv_trie_flat marc8r_9page264_flat[] = { + {"\x84", 0, 0x215A6E}, /* East Asian ideograph */ + {"\x82", 0, 0x215A70}, /* East Asian ideograph */ + {"\x89", 0, 0x215A74}, /* East Asian ideograph */ + {"\x8B", 0, 0x215A75}, /* East Asian ideograph */ + {"\x88", 0, 0x215A76}, /* East Asian ideograph */ + {"\x8A", 0, 0x215A77}, /* East Asian ideograph */ + {"\xA3", 0, 0x215A78}, /* East Asian ideograph */ + {"\x99", 0, 0x215A79}, /* East Asian ideograph */ + {"\xA6", 0, 0x215A7A}, /* East Asian ideograph */ + {"\xA4", 0, 0x215A7B}, /* East Asian ideograph */ + {"\xB2", 0, 0x215A7C}, /* East Asian ideograph */ + {"\xAC", 0, 0x215A7D}, /* East Asian ideograph */ + {"\xBA", 0, 0x215A7E}, /* East Asian ideograph */ + {"\xB6", 0, 0x215B21}, /* East Asian ideograph */ + {"\xBC", 0, 0x215B22}, /* East Asian ideograph */ + {"\x81", 0, 0x23396F}, /* East Asian ideograph */ + {"\x80", 0, 0x233977}, /* East Asian ideograph */ + {"\x87", 0, 0x233A24}, /* East Asian ideograph */ + {"\x86", 0, 0x233A26}, /* East Asian ideograph */ + {"\x8C", 0, 0x233A2E}, /* East Asian ideograph */ + {"\x90", 0, 0x233A30}, /* East Asian ideograph */ + {"\x8F", 0, 0x233A32}, /* East Asian ideograph */ + {"\x9C", 0, 0x233A34}, /* East Asian ideograph */ + {"\xA2", 0, 0x233A35}, /* East Asian ideograph */ + {"\xA0", 0, 0x233A36}, /* East Asian ideograph */ + {"\x94", 0, 0x233A3A}, /* East Asian ideograph */ + {"\xA7", 0, 0x233A3B}, /* East Asian ideograph */ + {"\x9A", 0, 0x233A3E}, /* East Asian ideograph */ + {"\x9E", 0, 0x233A3F}, /* East Asian ideograph */ + {"\x95", 0, 0x233A40}, /* East Asian ideograph */ + {"\xA1", 0, 0x233A41}, /* East Asian ideograph */ + {"\x9D", 0, 0x233A43}, /* East Asian ideograph */ + {"\xB5", 0, 0x233A44}, /* East Asian ideograph */ + {"\xB4", 0, 0x233A45}, /* East Asian ideograph */ + {"\xAD", 0, 0x233A48}, /* East Asian ideograph */ + {"\xA9", 0, 0x233A4B}, /* East Asian ideograph */ + {"\x92", 0, 0x275A78}, /* East Asian ideograph */ + {"\x91", 0, 0x275B2B}, /* East Asian ideograph */ + {"\xB0", 0, 0x293A46}, /* East Asian ideograph */ + {"\xBF", 0, 0x293A6B}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D5A5F}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D5A7E}, /* East Asian ideograph */ + {"\xAE", 0, 0x2F3A5E}, /* East Asian ideograph */ + {"\xAF", 0, 0x334C37}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page264 = { + marc8r_9page264_flat, 0 +}; +/* PAGE 263 */ +struct yaz_iconv_trie_flat marc8r_9page263_flat[] = { + {"\xAB", 0, 0x215A67}, /* East Asian ideograph */ + {"\x90", 0, 0x215A68}, /* East Asian ideograph */ + {"\xA2", 0, 0x215A69}, /* East Asian ideograph */ + {"\x9D", 0, 0x215A6A}, /* East Asian ideograph */ + {"\x8F", 0, 0x215A6B}, /* East Asian ideograph */ + {"\xA9", 0, 0x215A6C}, /* East Asian ideograph */ + {"\x9F", 0, 0x215A6D}, /* East Asian ideograph */ + {"\xB1", 0, 0x215A6F}, /* East Asian ideograph */ + {"\xB4", 0, 0x215A71}, /* East Asian ideograph */ + {"\xB9", 0, 0x215A72}, /* East Asian ideograph */ + {"\xB5", 0, 0x215A73}, /* East Asian ideograph */ + {"\x89", 0, 0x23393F}, /* East Asian ideograph */ + {"\x85", 0, 0x233946}, /* East Asian ideograph */ + {"\x81", 0, 0x233949}, /* East Asian ideograph */ + {"\x84", 0, 0x23394E}, /* East Asian ideograph */ + {"\x86", 0, 0x233950}, /* East Asian ideograph */ + {"\xAA", 0, 0x233952}, /* East Asian ideograph */ + {"\xA3", 0, 0x233954}, /* East Asian ideograph */ + {"\xAE", 0, 0x233957}, /* East Asian ideograph */ + {"\xA1", 0, 0x233958}, /* East Asian ideograph */ + {"\x9E", 0, 0x23395C}, /* East Asian ideograph */ + {"\x96", 0, 0x233964}, /* East Asian ideograph */ + {"\xA6", 0, 0x233966}, /* East Asian ideograph */ + {"\xA7", 0, 0x233967}, /* East Asian ideograph */ + {"\x94", 0, 0x233968}, /* East Asian ideograph */ + {"\x98", 0, 0x233969}, /* East Asian ideograph */ + {"\xB6", 0, 0x233979}, /* East Asian ideograph */ + {"\xBD", 0, 0x23397E}, /* East Asian ideograph */ + {"\xB0", 0, 0x233A21}, /* East Asian ideograph */ + {"\x8A", 0, 0x275A71}, /* East Asian ideograph */ + {"\x8C", 0, 0x275B28}, /* East Asian ideograph */ + {"\xAF", 0, 0x275B2A}, /* East Asian ideograph */ + {"\xAC", 0, 0x293A60}, /* East Asian ideograph */ + {"\x88", 0, 0x334C3E}, /* East Asian ideograph */ + {"\xA8", 0, 0x335A7B}, /* East Asian ideograph */ + {"\xBA", 0, 0x70755D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page263 = { + marc8r_9page263_flat, 0 +}; +/* PAGE 262 */ +struct yaz_iconv_trie_flat marc8r_9page262_flat[] = { + {"\x8E", 0, 0x215A57}, /* East Asian ideograph */ + {"\x9D", 0, 0x215A58}, /* East Asian ideograph */ + {"\x9B", 0, 0x215A59}, /* East Asian ideograph */ + {"\x8B", 0, 0x215A5A}, /* East Asian ideograph */ + {"\x9A", 0, 0x215A5B}, /* East Asian ideograph */ + {"\x86", 0, 0x215A5C}, /* East Asian ideograph */ + {"\x91", 0, 0x215A5D}, /* East Asian ideograph */ + {"\x8C", 0, 0x215A5E}, /* East Asian ideograph */ + {"\xA1", 0, 0x215A5F}, /* East Asian ideograph */ + {"\x9F", 0, 0x215A60}, /* East Asian ideograph */ + {"\xA8", 0, 0x215A61}, /* East Asian ideograph */ + {"\xB3", 0, 0x215A62}, /* East Asian ideograph */ + {"\xBA", 0, 0x215A63}, /* East Asian ideograph */ + {"\xAA", 0, 0x215A64}, /* East Asian ideograph */ + {"\xAF", 0, 0x215A65}, /* East Asian ideograph */ + {"\xBC", 0, 0x215A66}, /* East Asian ideograph */ + {"\x82", 0, 0x233871}, /* East Asian ideograph */ + {"\x81", 0, 0x233872}, /* East Asian ideograph */ + {"\x8F", 0, 0x233921}, /* East Asian ideograph */ + {"\x96", 0, 0x233922}, /* East Asian ideograph */ + {"\x90", 0, 0x233927}, /* East Asian ideograph */ + {"\x85", 0, 0x23392B}, /* East Asian ideograph */ + {"\xA4", 0, 0x23392F}, /* East Asian ideograph */ + {"\xAC", 0, 0x233934}, /* East Asian ideograph */ + {"\xAB", 0, 0x233935}, /* East Asian ideograph */ + {"\xB4", 0, 0x233936}, /* East Asian ideograph */ + {"\xA9", 0, 0x233938}, /* East Asian ideograph */ + {"\xA6", 0, 0x23393A}, /* East Asian ideograph */ + {"\xA3", 0, 0x23393B}, /* East Asian ideograph */ + {"\xA7", 0, 0x23393D}, /* East Asian ideograph */ + {"\xB2", 0, 0x23393E}, /* East Asian ideograph */ + {"\xBD", 0, 0x233941}, /* East Asian ideograph */ + {"\xBF", 0, 0x233944}, /* East Asian ideograph */ + {"\xB5", 0, 0x275A68}, /* East Asian ideograph */ + {"\xB7", 0, 0x275A7E}, /* East Asian ideograph */ + {"\x83", 0, 0x275B29}, /* East Asian ideograph */ + {"\x84", 0, 0x293A2E}, /* East Asian ideograph */ + {"\xB8", 0, 0x293A40}, /* East Asian ideograph */ + {"\xBB", 0, 0x293A57}, /* East Asian ideograph */ + {"\xB9", 0, 0x293A5E}, /* East Asian ideograph */ + {"\x9E", 0, 0x293A5F}, /* East Asian ideograph */ + {"\xA5", 0, 0x2D5A63}, /* East Asian ideograph */ + {"\x97", 0, 0x2F386F}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B5A68}, /* East Asian ideograph (variant of EACC 275A68) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page262 = { + marc8r_9page262_flat, 0 +}; +/* PAGE 261 */ +struct yaz_iconv_trie_flat marc8r_9page261_flat[] = { + {"\x85", 0, 0x215A4C}, /* East Asian ideograph */ + {"\x8A", 0, 0x215A4D}, /* East Asian ideograph */ + {"\x81", 0, 0x215A4E}, /* East Asian ideograph */ + {"\x99", 0, 0x215A4F}, /* East Asian ideograph */ + {"\x95", 0, 0x215A50}, /* East Asian ideograph */ + {"\xA3", 0, 0x215A51}, /* East Asian ideograph */ + {"\x9F", 0, 0x215A52}, /* East Asian ideograph */ + {"\xA8", 0, 0x215A53}, /* East Asian ideograph */ + {"\xB3", 0, 0x215A54}, /* East Asian ideograph */ + {"\xB4", 0, 0x215A55}, /* East Asian ideograph */ + {"\xBE", 0, 0x215A56}, /* East Asian ideograph */ + {"\x84", 0, 0x233761}, /* East Asian ideograph */ + {"\x94", 0, 0x233771}, /* East Asian ideograph */ + {"\x8D", 0, 0x233775}, /* East Asian ideograph */ + {"\x96", 0, 0x233822}, /* East Asian ideograph */ + {"\xA1", 0, 0x23382F}, /* East Asian ideograph */ + {"\xA6", 0, 0x233833}, /* East Asian ideograph */ + {"\xAB", 0, 0x233852}, /* East Asian ideograph */ + {"\xAF", 0, 0x233859}, /* East Asian ideograph */ + {"\xB0", 0, 0x23385A}, /* East Asian ideograph */ + {"\xB2", 0, 0x233866}, /* East Asian ideograph */ + {"\xBC", 0, 0x23386E}, /* East Asian ideograph */ + {"\xBA", 0, 0x23386F}, /* East Asian ideograph */ + {"\xB9", 0, 0x233870}, /* East Asian ideograph */ + {"\xBF", 0, 0x233873}, /* East Asian ideograph */ + {"\x8B", 0, 0x275A53}, /* East Asian ideograph */ + {"\xB8", 0, 0x275B26}, /* East Asian ideograph */ + {"\xB1", 0, 0x293866}, /* East Asian ideograph */ + {"\x82", 0, 0x2D5A4E}, /* East Asian ideograph */ + {"\x91", 0, 0x2F3833}, /* East Asian ideograph */ + {"\xB5", 0, 0x3B3922}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page261 = { + marc8r_9page261_flat, 0 +}; +/* PAGE 260 */ +struct yaz_iconv_trie_flat marc8r_9page260_flat[] = { + {"\xA4", 0, 0x215A43}, /* East Asian ideograph */ + {"\xA7", 0, 0x215A44}, /* East Asian ideograph */ + {"\xA6", 0, 0x215A45}, /* East Asian ideograph */ + {"\xAB", 0, 0x215A46}, /* East Asian ideograph */ + {"\xAD", 0, 0x215A47}, /* East Asian ideograph */ + {"\xB0", 0, 0x215A48}, /* East Asian ideograph */ + {"\xB4", 0, 0x215A49}, /* East Asian ideograph */ + {"\xB3", 0, 0x215A4A}, /* East Asian ideograph */ + {"\xB7", 0, 0x215A4B}, /* East Asian ideograph */ + {"\xAC", 0, 0x233748}, /* East Asian ideograph */ + {"\xB8", 0, 0x233752}, /* East Asian ideograph */ + {"\xBA", 0, 0x23375C}, /* East Asian ideograph */ + {"\x85", 0, 0x275A21}, /* East Asian ideograph */ + {"\x84", 0, 0x275A22}, /* East Asian ideograph */ + {"\x80", 0, 0x275A26}, /* East Asian ideograph */ + {"\x81", 0, 0x275A27}, /* East Asian ideograph */ + {"\x82", 0, 0x275A28}, /* East Asian ideograph */ + {"\x88", 0, 0x275A2A}, /* East Asian ideograph */ + {"\x8A", 0, 0x275A2B}, /* East Asian ideograph */ + {"\x94", 0, 0x275A2C}, /* East Asian ideograph */ + {"\x8B", 0, 0x275A2D}, /* East Asian ideograph */ + {"\x8F", 0, 0x275A32}, /* East Asian ideograph */ + {"\x90", 0, 0x275A33}, /* East Asian ideograph */ + {"\x8C", 0, 0x275A35}, /* East Asian ideograph */ + {"\x96", 0, 0x275A36}, /* East Asian ideograph */ + {"\x9B", 0, 0x275A37}, /* East Asian ideograph */ + {"\x9A", 0, 0x275A38}, /* East Asian ideograph */ + {"\x98", 0, 0x275A39}, /* East Asian ideograph */ + {"\xA0", 0, 0x275A3B}, /* East Asian ideograph */ + {"\x9D", 0, 0x275A3C}, /* East Asian ideograph */ + {"\x9E", 0, 0x275A3D}, /* East Asian ideograph */ + {"\xA2", 0, 0x275A3E}, /* East Asian ideograph */ + {"\xA1", 0, 0x275A3F}, /* East Asian ideograph */ + {"\x83", 0, 0x275A40}, /* East Asian ideograph */ + {"\x8E", 0, 0x275A41}, /* East Asian ideograph */ + {"\xA3", 0, 0x275A42}, /* East Asian ideograph */ + {"\xB5", 0, 0x275A4F}, /* East Asian ideograph */ + {"\xB6", 0, 0x275A50}, /* East Asian ideograph */ + {"\x87", 0, 0x29365F}, /* East Asian ideograph */ + {"\x93", 0, 0x29366A}, /* East Asian ideograph */ + {"\x95", 0, 0x29366B}, /* East Asian ideograph */ + {"\x89", 0, 0x293670}, /* East Asian ideograph */ + {"\x99", 0, 0x29367E}, /* East Asian ideograph */ + {"\x9C", 0, 0x293726}, /* East Asian ideograph */ + {"\x86", 0, 0x29373A}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D5A48}, /* East Asian ideograph */ + {"\x8D", 0, 0x47366F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page260 = { + marc8r_9page260_flat, 0 +}; +/* PAGE 259 */ +struct yaz_iconv_trie_dir marc8r_9page259_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233725} /* East Asian ideograph */, + {0, 0, 0x215A39} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x23372B} /* East Asian ideograph */, + {0, 0, 0x215A3B} /* East Asian ideograph (variant of EACC 4B5A3B) */, + {0, 0, 0x23372D} /* East Asian ideograph */, + {0, 0, 0x215A3D} /* East Asian ideograph */, + {0, 0, 0x215A3C} /* East Asian ideograph */, + {0, 0, 0x233732} /* East Asian ideograph */, + {0, 0, 0x215A3F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215A3E} /* East Asian ideograph */, + {0, 0, 0x23373A} /* East Asian ideograph */, + {0, 0, 0x233739} /* East Asian ideograph */, + {0, 0, 0x23373B} /* East Asian ideograph */, + {0, 0, 0x215A40} /* East Asian ideograph */, + {0, 0, 0x23373D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215A41} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x23373E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215A42} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275968} /* East Asian ideograph */, + {0, 0, 0x275969} /* East Asian ideograph */, + {0, 0, 0x27596A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27596B} /* East Asian ideograph */, + {0, 0, 0x27596C} /* East Asian ideograph */, + {0, 0, 0x27596D} /* East Asian ideograph */, + {0, 0, 0x275A30} /* East Asian ideograph */, + {0, 0, 0x274247} /* East Asian ideograph */, + {0, 0, 0x393C52} /* East Asian ideograph */, + {0, 0, 0x27596F} /* East Asian ideograph */, + {0, 0, 0x275A34} /* East Asian ideograph */, + {0, 0, 0x275972} /* East Asian ideograph */, + {0, 0, 0x275970} /* East Asian ideograph */, + {0, 0, 0x275971} /* East Asian ideograph */, + {0, 0, 0x27597B} /* East Asian ideograph */, + {0, 0, 0x275A3A} /* East Asian ideograph */, + {0, 0, 0x4B5973} /* East Asian ideograph */, + {0, 0, 0x27596E} /* East Asian ideograph */, + {0, 0, 0x453051} /* East Asian ideograph */, + {0, 0, 0x275A31} /* East Asian ideograph */, + {0, 0, 0x275976} /* East Asian ideograph */, + {0, 0, 0x29364E} /* East Asian ideograph */, + {0, 0, 0x275979} /* East Asian ideograph */, + {0, 0, 0x275978} /* East Asian ideograph */, + {0, 0, 0x293651} /* East Asian ideograph */, + {0, 0, 0x27597D} /* East Asian ideograph */, + {0, 0, 0x27597E} /* East Asian ideograph */, + {0, 0, 0x275975} /* East Asian ideograph */, + {0, 0, 0x275977} /* East Asian ideograph */, + {0, 0, 0x27597C} /* East Asian ideograph */, + {0, 0, 0x275A23} /* East Asian ideograph */, + {0, 0, 0x293725} /* East Asian ideograph */, + {0, 0, 0x275A24} /* East Asian ideograph */, + {0, 0, 0x275A25} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page259 = { + 0, marc8r_9page259_dir +}; +/* PAGE 258 */ +struct yaz_iconv_trie_flat marc8r_9page258_flat[] = { + {"\x81", 0, 0x215976}, /* East Asian ideograph */ + {"\x80", 0, 0x215977}, /* East Asian ideograph */ + {"\x85", 0, 0x215A21}, /* East Asian ideograph */ + {"\x87", 0, 0x215A22}, /* East Asian ideograph */ + {"\x8A", 0, 0x215A23}, /* East Asian ideograph */ + {"\x88", 0, 0x215A24}, /* East Asian ideograph */ + {"\x84", 0, 0x215A25}, /* East Asian ideograph */ + {"\x83", 0, 0x215A27}, /* East Asian ideograph */ + {"\x82", 0, 0x215A28}, /* East Asian ideograph */ + {"\x93", 0, 0x215A29}, /* East Asian ideograph */ + {"\x91", 0, 0x215A2A}, /* East Asian ideograph */ + {"\x92", 0, 0x215A2B}, /* East Asian ideograph */ + {"\xA0", 0, 0x215A2C}, /* East Asian ideograph */ + {"\xA6", 0, 0x215A2D}, /* East Asian ideograph */ + {"\xA3", 0, 0x215A2F}, /* East Asian ideograph */ + {"\xA2", 0, 0x215A30}, /* East Asian ideograph */ + {"\xA4", 0, 0x215A31}, /* East Asian ideograph */ + {"\x9E", 0, 0x215A32}, /* East Asian ideograph */ + {"\x9C", 0, 0x215A33}, /* East Asian ideograph */ + {"\xAA", 0, 0x215A34}, /* East Asian ideograph */ + {"\xAD", 0, 0x215A35}, /* East Asian ideograph */ + {"\xB4", 0, 0x215A36}, /* East Asian ideograph */ + {"\xBD", 0, 0x215A37}, /* East Asian ideograph */ + {"\xBA", 0, 0x215A38}, /* East Asian ideograph */ + {"\xBC", 0, 0x215A3A}, /* East Asian ideograph */ + {"\x8D", 0, 0x233657}, /* East Asian ideograph */ + {"\x98", 0, 0x23365E}, /* East Asian ideograph */ + {"\x95", 0, 0x23365F}, /* East Asian ideograph */ + {"\xA8", 0, 0x233667}, /* East Asian ideograph */ + {"\xA9", 0, 0x233668}, /* East Asian ideograph */ + {"\xA1", 0, 0x23366A}, /* East Asian ideograph */ + {"\xAB", 0, 0x23366F}, /* East Asian ideograph */ + {"\x9A", 0, 0x233670}, /* East Asian ideograph */ + {"\x9D", 0, 0x233672}, /* East Asian ideograph */ + {"\x99", 0, 0x233674}, /* East Asian ideograph */ + {"\xAE", 0, 0x233676}, /* East Asian ideograph */ + {"\xB1", 0, 0x23367B}, /* East Asian ideograph */ + {"\xB5", 0, 0x23367C}, /* East Asian ideograph */ + {"\xBB", 0, 0x23367E}, /* East Asian ideograph */ + {"\xB7", 0, 0x233721}, /* East Asian ideograph */ + {"\xBE", 0, 0x233726}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D3377}, /* East Asian ideograph */ + {"\x9B", 0, 0x2D5A3D}, /* East Asian ideograph */ + {"\xAC", 0, 0x333C52}, /* East Asian ideograph */ + {"\x89", 0, 0x393E47}, /* East Asian ideograph */ + {"\x8E", 0, 0x4B5A31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page258 = { + marc8r_9page258_flat, 0 +}; +/* PAGE 257 */ +struct yaz_iconv_trie_flat marc8r_9page257_flat[] = { + {"\x82", 0, 0x215962}, /* East Asian ideograph */ + {"\x8A", 0, 0x215963}, /* East Asian ideograph */ + {"\x89", 0, 0x215964}, /* East Asian ideograph */ + {"\x8D", 0, 0x215965}, /* East Asian ideograph */ + {"\x8C", 0, 0x215966}, /* East Asian ideograph */ + {"\x93", 0, 0x215967}, /* East Asian ideograph */ + {"\x9D", 0, 0x215968}, /* East Asian ideograph */ + {"\x9E", 0, 0x215969}, /* East Asian ideograph */ + {"\xA0", 0, 0x21596A}, /* East Asian ideograph */ + {"\xA2", 0, 0x21596B}, /* East Asian ideograph */ + {"\xA1", 0, 0x21596C}, /* East Asian ideograph */ + {"\xAC", 0, 0x21596D}, /* East Asian ideograph */ + {"\xAB", 0, 0x21596E}, /* East Asian ideograph */ + {"\xA8", 0, 0x21596F}, /* East Asian ideograph */ + {"\xAA", 0, 0x215970}, /* East Asian ideograph */ + {"\xA7", 0, 0x215971}, /* East Asian ideograph */ + {"\xA9", 0, 0x215972}, /* East Asian ideograph */ + {"\xAF", 0, 0x215973}, /* East Asian ideograph */ + {"\xBB", 0, 0x215975}, /* East Asian ideograph */ + {"\xB4", 0, 0x215978}, /* East Asian ideograph */ + {"\xBC", 0, 0x215979}, /* East Asian ideograph */ + {"\xB7", 0, 0x21597A}, /* East Asian ideograph */ + {"\xB6", 0, 0x21597B}, /* East Asian ideograph */ + {"\xBD", 0, 0x21597C}, /* East Asian ideograph */ + {"\xB8", 0, 0x21597D}, /* East Asian ideograph */ + {"\xBF", 0, 0x21597E}, /* East Asian ideograph */ + {"\xB2", 0, 0x215A26}, /* East Asian ideograph */ + {"\x86", 0, 0x23362A}, /* East Asian ideograph */ + {"\x85", 0, 0x23362D}, /* East Asian ideograph */ + {"\x88", 0, 0x23362E}, /* East Asian ideograph */ + {"\x94", 0, 0x233639}, /* East Asian ideograph */ + {"\x9B", 0, 0x233641}, /* East Asian ideograph */ + {"\x9F", 0, 0x233643}, /* East Asian ideograph */ + {"\xA4", 0, 0x233644}, /* East Asian ideograph */ + {"\xB0", 0, 0x23364E}, /* East Asian ideograph */ + {"\xBA", 0, 0x233651}, /* East Asian ideograph */ + {"\xB5", 0, 0x233652}, /* East Asian ideograph */ + {"\xB9", 0, 0x233653}, /* East Asian ideograph */ + {"\x98", 0, 0x2D5963}, /* East Asian ideograph */ + {"\xAD", 0, 0x2D5A34}, /* East Asian ideograph */ + {"\xB3", 0, 0x333051}, /* East Asian ideograph */ + {"\x8E", 0, 0x355D5C}, /* East Asian ideograph */ + {"\xAE", 0, 0x513051}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page257 = { + marc8r_9page257_flat, 0 +}; +/* PAGE 256 */ +struct yaz_iconv_trie_dir marc8r_9page256_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x29333B} /* East Asian ideograph */, + {0, 0, 0x275922} /* East Asian ideograph */, + {0, 0, 0x293340} /* East Asian ideograph */, + {0, 0, 0x27587D} /* East Asian ideograph */, + {0, 0, 0x275921} /* East Asian ideograph */, + {0, 0, 0x275878} /* East Asian ideograph */, + {0, 0, 0x275877} /* East Asian ideograph */, + {0, 0, 0x29327E} /* East Asian ideograph */, + {0, 0, 0x275879} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275876} /* East Asian ideograph */, + {0, 0, 0x27592B} /* East Asian ideograph */, + {0, 0, 0x29334E} /* East Asian ideograph */, + {0, 0, 0x27592A} /* East Asian ideograph */, + {0, 0, 0x275935} /* East Asian ideograph */, + {0, 0, 0x275927} /* East Asian ideograph */, + {0, 0, 0x275929} /* East Asian ideograph */, + {0, 0, 0x293359} /* East Asian ideograph */, + {0, 0, 0x27592C} /* East Asian ideograph */, + {0, 0, 0x27592D} /* East Asian ideograph */, + {0, 0, 0x293357} /* East Asian ideograph */, + {0, 0, 0x275930} /* East Asian ideograph */, + {0, 0, 0x29335D} /* East Asian ideograph */, + {0, 0, 0x27594E} /* East Asian ideograph */, + {0, 0, 0x4B3622} /* East Asian ideograph */, + {0, 0, 0x293344} /* East Asian ideograph */, + {0, 0, 0x275926} /* East Asian ideograph */, + {0, 0, 0x275925} /* East Asian ideograph */, + {0, 0, 0x275933} /* East Asian ideograph */, + {0, 0, 0x293362} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27593B} /* East Asian ideograph */, + {0, 0, 0x293537} /* East Asian ideograph */, + {0, 0, 0x293373} /* East Asian ideograph */, + {0, 0, 0x275938} /* East Asian ideograph */, + {0, 0, 0x275936} /* East Asian ideograph */, + {0, 0, 0x275931} /* East Asian ideograph */, + {0, 0, 0x4D3363} /* East Asian ideograph */, + {0, 0, 0x275932} /* East Asian ideograph */, + {0, 0, 0x29337D} /* East Asian ideograph */, + {0, 0, 0x275939} /* East Asian ideograph */, + {0, 0, 0x293438} /* East Asian ideograph */, + {0, 0, 0x473422} /* East Asian ideograph */, + {0, 0, 0x47347B} /* East Asian ideograph */, + {0, 0, 0x27593A} /* East Asian ideograph */, + {0, 0, 0x275940} /* East Asian ideograph */, + {0, 0, 0x29344D} /* East Asian ideograph */, + {0, 0, 0x293459} /* East Asian ideograph */, + {0, 0, 0x29352D} /* East Asian ideograph */, + {0, 0, 0x27593D} /* East Asian ideograph */, + {0, 0, 0x27593E} /* East Asian ideograph */, + {0, 0, 0x293539} /* East Asian ideograph */, + {0, 0, 0x275947} /* East Asian ideograph */, + {0, 0, 0x293468} /* East Asian ideograph */, + {0, 0, 0x27594D} /* East Asian ideograph */, + {0, 0, 0x274F40} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x23353D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215952} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page256 = { + 0, marc8r_9page256_dir +}; +/* PAGE 255 */ +struct yaz_iconv_trie_flat marc8r_9page255_flat[] = { + {"\x81", 0, 0x215951}, /* East Asian ideograph */ + {"\x86", 0, 0x215953}, /* East Asian ideograph */ + {"\x88", 0, 0x215954}, /* East Asian ideograph */ + {"\x89", 0, 0x215955}, /* East Asian ideograph */ + {"\x8C", 0, 0x215956}, /* East Asian ideograph */ + {"\x8E", 0, 0x215957}, /* East Asian ideograph */ + {"\x90", 0, 0x215958}, /* East Asian ideograph */ + {"\x94", 0, 0x215959}, /* East Asian ideograph */ + {"\x9A", 0, 0x21595A}, /* East Asian ideograph */ + {"\xA2", 0, 0x21595C}, /* East Asian ideograph */ + {"\xAA", 0, 0x21595D}, /* East Asian ideograph */ + {"\xAB", 0, 0x21595E}, /* East Asian ideograph */ + {"\xAC", 0, 0x21595F}, /* East Asian ideograph */ + {"\xBA", 0, 0x215960}, /* East Asian ideograph */ + {"\xB9", 0, 0x215961}, /* East Asian ideograph */ + {"\x80", 0, 0x233544}, /* East Asian ideograph */ + {"\x82", 0, 0x233545}, /* East Asian ideograph */ + {"\x87", 0, 0x23354B}, /* East Asian ideograph */ + {"\x8B", 0, 0x23354D}, /* East Asian ideograph */ + {"\x8F", 0, 0x233550}, /* East Asian ideograph */ + {"\x95", 0, 0x233552}, /* East Asian ideograph */ + {"\x97", 0, 0x233554}, /* East Asian ideograph */ + {"\x9C", 0, 0x233555}, /* East Asian ideograph */ + {"\x9D", 0, 0x233556}, /* East Asian ideograph */ + {"\xA8", 0, 0x233563}, /* East Asian ideograph */ + {"\xAD", 0, 0x233565}, /* East Asian ideograph */ + {"\xB3", 0, 0x23356D}, /* East Asian ideograph */ + {"\xB4", 0, 0x23356F}, /* East Asian ideograph */ + {"\xB5", 0, 0x233571}, /* East Asian ideograph */ + {"\xB7", 0, 0x233573}, /* East Asian ideograph */ + {"\xB6", 0, 0x233574}, /* East Asian ideograph */ + {"\xB8", 0, 0x23357B}, /* East Asian ideograph */ + {"\xBB", 0, 0x23357D}, /* East Asian ideograph */ + {"\xA1", 0, 0x273257}, /* East Asian ideograph */ + {"\xBC", 0, 0x2F3639}, /* East Asian ideograph */ + {"\x8A", 0, 0x335958}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page255 = { + marc8r_9page255_flat, 0 +}; +/* PAGE 254 */ +struct yaz_iconv_trie_flat marc8r_9page254_flat[] = { + {"\x80", 0, 0x21594A}, /* East Asian ideograph */ + {"\x8A", 0, 0x21594B}, /* East Asian ideograph */ + {"\x93", 0, 0x21594C}, /* East Asian ideograph */ + {"\x96", 0, 0x21594D}, /* East Asian ideograph */ + {"\x92", 0, 0x21594E}, /* East Asian ideograph */ + {"\x9A", 0, 0x21594F}, /* East Asian ideograph */ + {"\x85", 0, 0x233478}, /* East Asian ideograph */ + {"\x81", 0, 0x233479}, /* East Asian ideograph */ + {"\x8B", 0, 0x233523}, /* East Asian ideograph */ + {"\x87", 0, 0x233526}, /* East Asian ideograph */ + {"\x95", 0, 0x23352D}, /* East Asian ideograph */ + {"\x94", 0, 0x23352E}, /* East Asian ideograph */ + {"\x9C", 0, 0x233537}, /* East Asian ideograph */ + {"\x9F", 0, 0x23353A}, /* East Asian ideograph */ + {"\xA1", 0, 0x275838}, /* East Asian ideograph */ + {"\xA2", 0, 0x275839}, /* East Asian ideograph */ + {"\xA3", 0, 0x27583A}, /* East Asian ideograph */ + {"\xA6", 0, 0x27583B}, /* East Asian ideograph */ + {"\xB0", 0, 0x27583C}, /* East Asian ideograph */ + {"\xA8", 0, 0x27583D}, /* East Asian ideograph */ + {"\xA7", 0, 0x27583E}, /* East Asian ideograph */ + {"\xAA", 0, 0x27583F}, /* East Asian ideograph */ + {"\xAF", 0, 0x275840}, /* East Asian ideograph */ + {"\xAB", 0, 0x275841}, /* East Asian ideograph */ + {"\xAD", 0, 0x275843}, /* East Asian ideograph */ + {"\xBF", 0, 0x275844}, /* East Asian ideograph */ + {"\xB6", 0, 0x275846}, /* East Asian ideograph */ + {"\xB7", 0, 0x275847}, /* East Asian ideograph */ + {"\xB8", 0, 0x275848}, /* East Asian ideograph */ + {"\xBE", 0, 0x275849}, /* East Asian ideograph */ + {"\xB9", 0, 0x27584A}, /* East Asian ideograph */ + {"\xBC", 0, 0x27584B}, /* East Asian ideograph */ + {"\xA4", 0, 0x275870}, /* East Asian ideograph */ + {"\xBA", 0, 0x275924}, /* East Asian ideograph */ + {"\xB3", 0, 0x275928}, /* East Asian ideograph */ + {"\xBD", 0, 0x27592F}, /* East Asian ideograph */ + {"\xB2", 0, 0x275934}, /* East Asian ideograph */ + {"\xA5", 0, 0x275942}, /* East Asian ideograph */ + {"\xAE", 0, 0x275943}, /* East Asian ideograph */ + {"\xA9", 0, 0x27594C}, /* East Asian ideograph */ + {"\xB5", 0, 0x29322A}, /* East Asian ideograph */ + {"\xB4", 0, 0x293430}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D306C}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D4A28}, /* East Asian ideograph */ + {"\x83", 0, 0x2D594F}, /* East Asian ideograph */ + {"\x90", 0, 0x33306C}, /* East Asian ideograph */ + {"\x99", 0, 0x334621}, /* East Asian ideograph */ + {"\xA0", 0, 0x455837}, /* East Asian ideograph */ + {"\x9E", 0, 0x473539}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page254 = { + marc8r_9page254_flat, 0 +}; +/* PAGE 253 */ +struct yaz_iconv_trie_flat marc8r_9page253_flat[] = { + {"\x98", 0, 0x21593C}, /* East Asian ideograph */ + {"\x9C", 0, 0x21593D}, /* East Asian ideograph */ + {"\x8E", 0, 0x21593E}, /* East Asian ideograph */ + {"\x89", 0, 0x21593F}, /* East Asian ideograph */ + {"\x9A", 0, 0x215940}, /* East Asian ideograph */ + {"\x81", 0, 0x215941}, /* East Asian ideograph */ + {"\x8F", 0, 0x215942}, /* East Asian ideograph */ + {"\xB0", 0, 0x215943}, /* East Asian ideograph */ + {"\xAC", 0, 0x215944}, /* East Asian ideograph */ + {"\xA6", 0, 0x215945}, /* East Asian ideograph */ + {"\xAF", 0, 0x215946}, /* East Asian ideograph */ + {"\xB4", 0, 0x215947}, /* East Asian ideograph */ + {"\xB7", 0, 0x215948}, /* East Asian ideograph */ + {"\xBD", 0, 0x215949}, /* East Asian ideograph */ + {"\x8C", 0, 0x233349}, /* East Asian ideograph */ + {"\x88", 0, 0x233442}, /* East Asian ideograph */ + {"\x94", 0, 0x233444}, /* East Asian ideograph */ + {"\x93", 0, 0x233448}, /* East Asian ideograph */ + {"\x8A", 0, 0x233449}, /* East Asian ideograph */ + {"\x86", 0, 0x23344A}, /* East Asian ideograph */ + {"\x96", 0, 0x23344D}, /* East Asian ideograph */ + {"\x99", 0, 0x233459}, /* East Asian ideograph */ + {"\x8D", 0, 0x23345F}, /* East Asian ideograph */ + {"\xAB", 0, 0x233468}, /* East Asian ideograph */ + {"\xAD", 0, 0x23346B}, /* East Asian ideograph */ + {"\xB8", 0, 0x233470}, /* East Asian ideograph */ + {"\x85", 0, 0x233473}, /* East Asian ideograph */ + {"\xBE", 0, 0x23347B}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D3748}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D594C}, /* East Asian ideograph */ + {"\xB1", 0, 0x33523F}, /* East Asian ideograph */ + {"\x9B", 0, 0x35344D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page253 = { + marc8r_9page253_flat, 0 +}; +/* PAGE 252 */ +struct yaz_iconv_trie_flat marc8r_9page252_flat[] = { + {"\x80", 0, 0x21592B}, /* East Asian ideograph */ + {"\x81", 0, 0x21592C}, /* East Asian ideograph (variant of EACC 2D592C) */ + {"\x82", 0, 0x21592D}, /* East Asian ideograph */ + {"\x97", 0, 0x215931}, /* East Asian ideograph */ + {"\x99", 0, 0x215932}, /* East Asian ideograph */ + {"\x8E", 0, 0x215933}, /* East Asian ideograph */ + {"\x9B", 0, 0x215934}, /* East Asian ideograph */ + {"\x8A", 0, 0x215935}, /* East Asian ideograph */ + {"\xA1", 0, 0x215936}, /* East Asian ideograph */ + {"\x84", 0, 0x215937}, /* East Asian ideograph */ + {"\x9D", 0, 0x215938}, /* East Asian ideograph */ + {"\xB9", 0, 0x215939}, /* East Asian ideograph */ + {"\xAC", 0, 0x21593A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21593B}, /* East Asian ideograph */ + {"\x83", 0, 0x233356}, /* East Asian ideograph */ + {"\x94", 0, 0x233359}, /* East Asian ideograph */ + {"\x87", 0, 0x233364}, /* East Asian ideograph */ + {"\x8C", 0, 0x23336B}, /* East Asian ideograph */ + {"\x9C", 0, 0x23336F}, /* East Asian ideograph */ + {"\x96", 0, 0x233373}, /* East Asian ideograph */ + {"\x9F", 0, 0x233376}, /* East Asian ideograph */ + {"\x8B", 0, 0x233378}, /* East Asian ideograph */ + {"\x86", 0, 0x233379}, /* East Asian ideograph */ + {"\x85", 0, 0x23337A}, /* East Asian ideograph */ + {"\x8F", 0, 0x23337C}, /* East Asian ideograph */ + {"\x90", 0, 0x23337D}, /* East Asian ideograph */ + {"\xAB", 0, 0x233422}, /* East Asian ideograph */ + {"\xB7", 0, 0x23342A}, /* East Asian ideograph */ + {"\xA6", 0, 0x23342D}, /* East Asian ideograph */ + {"\xB3", 0, 0x233430}, /* East Asian ideograph */ + {"\xBE", 0, 0x233438}, /* East Asian ideograph */ + {"\xA9", 0, 0x23343A}, /* East Asian ideograph */ + {"\xBF", 0, 0x23344F}, /* East Asian ideograph */ + {"\x81", 0, 0x2D592C}, /* East Asian ideograph */ + {"\x9A", 0, 0x2F3363}, /* East Asian ideograph */ + {"\xAD", 0, 0x35347B}, /* East Asian ideograph */ + {"\xBC", 0, 0x3F3573}, /* East Asian ideograph */ + {"\xA0", 0, 0x4B5936}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page252 = { + marc8r_9page252_flat, 0 +}; +/* PAGE 251 */ +struct yaz_iconv_trie_flat marc8r_9page251_flat[] = { + {"\x84", 0, 0x215877}, /* East Asian ideograph */ + {"\x92", 0, 0x215878}, /* East Asian ideograph */ + {"\x87", 0, 0x215879}, /* East Asian ideograph */ + {"\x8B", 0, 0x21587A}, /* East Asian ideograph (variant of EACC 4B587A) */ + {"\xB8", 0, 0x21587B}, /* East Asian ideograph */ + {"\x89", 0, 0x21587E}, /* East Asian ideograph */ + {"\x82", 0, 0x215921}, /* East Asian ideograph */ + {"\x96", 0, 0x215924}, /* East Asian ideograph */ + {"\xA6", 0, 0x215925}, /* East Asian ideograph */ + {"\xBA", 0, 0x215926}, /* East Asian ideograph */ + {"\xAB", 0, 0x215927}, /* East Asian ideograph */ + {"\xB1", 0, 0x215928}, /* East Asian ideograph */ + {"\xA7", 0, 0x215929}, /* East Asian ideograph */ + {"\x9C", 0, 0x21592A}, /* East Asian ideograph */ + {"\xBE", 0, 0x21592E}, /* East Asian ideograph */ + {"\xB7", 0, 0x21592F}, /* East Asian ideograph */ + {"\xAD", 0, 0x215930}, /* East Asian ideograph */ + {"\x8F", 0, 0x233325}, /* East Asian ideograph */ + {"\x86", 0, 0x233327}, /* East Asian ideograph */ + {"\x91", 0, 0x23332C}, /* East Asian ideograph */ + {"\x93", 0, 0x23332D}, /* East Asian ideograph */ + {"\x94", 0, 0x233333}, /* East Asian ideograph */ + {"\x8D", 0, 0x233336}, /* East Asian ideograph */ + {"\x9B", 0, 0x23333B}, /* East Asian ideograph */ + {"\x90", 0, 0x23333F}, /* East Asian ideograph */ + {"\x97", 0, 0x233340}, /* East Asian ideograph */ + {"\xB3", 0, 0x233344}, /* East Asian ideograph */ + {"\xA2", 0, 0x233345}, /* East Asian ideograph */ + {"\x9D", 0, 0x23334C}, /* East Asian ideograph */ + {"\xB6", 0, 0x23334E}, /* East Asian ideograph */ + {"\xB4", 0, 0x23334F}, /* East Asian ideograph */ + {"\xB5", 0, 0x233350}, /* East Asian ideograph */ + {"\x9F", 0, 0x233353}, /* East Asian ideograph */ + {"\xA4", 0, 0x233357}, /* East Asian ideograph */ + {"\xBC", 0, 0x23335D}, /* East Asian ideograph */ + {"\x9E", 0, 0x233362}, /* East Asian ideograph */ + {"\xA1", 0, 0x233363}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D3622}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D5927}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D593D}, /* East Asian ideograph */ + {"\xA0", 0, 0x39365A}, /* East Asian ideograph */ + {"\x8B", 0, 0x4B587A}, /* East Asian ideograph */ + {"\x9A", 0, 0x696B5C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page251 = { + marc8r_9page251_flat, 0 +}; +/* PAGE 250 */ +struct yaz_iconv_trie_flat marc8r_9page250_flat[] = { + {"\xA0", 0, 0x215860}, /* East Asian ideograph */ + {"\x87", 0, 0x215861}, /* East Asian ideograph */ + {"\x85", 0, 0x215862}, /* East Asian ideograph */ + {"\xAA", 0, 0x215869}, /* East Asian ideograph */ + {"\xA6", 0, 0x21586A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21586B}, /* East Asian ideograph */ + {"\x9E", 0, 0x21586C}, /* East Asian ideograph */ + {"\x8C", 0, 0x21586D}, /* East Asian ideograph */ + {"\x93", 0, 0x21586E}, /* East Asian ideograph */ + {"\xA3", 0, 0x21586F}, /* East Asian ideograph */ + {"\x8D", 0, 0x215870}, /* East Asian ideograph */ + {"\xA4", 0, 0x215871}, /* East Asian ideograph (variant of EACC 4B5871) */ + {"\xA8", 0, 0x215872}, /* East Asian ideograph */ + {"\xA5", 0, 0x215873}, /* East Asian ideograph */ + {"\x98", 0, 0x215874}, /* East Asian ideograph */ + {"\x91", 0, 0x215875}, /* East Asian ideograph */ + {"\xBC", 0, 0x215876}, /* East Asian ideograph */ + {"\xB2", 0, 0x21587C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21587D}, /* East Asian ideograph */ + {"\xB0", 0, 0x215922}, /* East Asian ideograph */ + {"\x95", 0, 0x215923}, /* East Asian ideograph */ + {"\x86", 0, 0x233250}, /* East Asian ideograph */ + {"\x82", 0, 0x233259}, /* East Asian ideograph */ + {"\x84", 0, 0x23325D}, /* East Asian ideograph */ + {"\x8F", 0, 0x233269}, /* East Asian ideograph */ + {"\x96", 0, 0x23326F}, /* East Asian ideograph */ + {"\x9A", 0, 0x233271}, /* East Asian ideograph */ + {"\xB6", 0, 0x23327E}, /* East Asian ideograph */ + {"\xBE", 0, 0x233321}, /* East Asian ideograph */ + {"\xAF", 0, 0x233331}, /* East Asian ideograph */ + {"\xB9", 0, 0x233338}, /* East Asian ideograph */ + {"\x8A", 0, 0x275937}, /* East Asian ideograph */ + {"\x89", 0, 0x275949}, /* East Asian ideograph */ + {"\x92", 0, 0x333642}, /* East Asian ideograph */ + {"\xA4", 0, 0x4B5871}, /* East Asian ideograph */ + {"\xAD", 0, 0x4B594A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page250 = { + marc8r_9page250_flat, 0 +}; +/* PAGE 249 */ +struct yaz_iconv_trie_flat marc8r_9page249_flat[] = { + {"\xA0", 0, 0x21584D}, /* East Asian ideograph */ + {"\x95", 0, 0x21584E}, /* East Asian ideograph */ + {"\x9E", 0, 0x21584F}, /* East Asian ideograph */ + {"\x81", 0, 0x215851}, /* East Asian ideograph */ + {"\x94", 0, 0x215852}, /* East Asian ideograph */ + {"\x9B", 0, 0x215853}, /* East Asian ideograph */ + {"\x90", 0, 0x215854}, /* East Asian ideograph */ + {"\x86", 0, 0x215855}, /* East Asian ideograph */ + {"\xAB", 0, 0x215858}, /* East Asian ideograph */ + {"\xB2", 0, 0x215859}, /* East Asian ideograph */ + {"\xB3", 0, 0x21585A}, /* East Asian ideograph */ + {"\xA6", 0, 0x21585B}, /* East Asian ideograph */ + {"\xA9", 0, 0x21585C}, /* East Asian ideograph */ + {"\xB0", 0, 0x21585D}, /* East Asian ideograph */ + {"\xA3", 0, 0x21585E}, /* East Asian ideograph */ + {"\xBC", 0, 0x21585F}, /* East Asian ideograph */ + {"\xAD", 0, 0x215863}, /* East Asian ideograph */ + {"\xB9", 0, 0x215864}, /* East Asian ideograph */ + {"\xA2", 0, 0x215865}, /* East Asian ideograph */ + {"\xB1", 0, 0x215866}, /* East Asian ideograph */ + {"\xAE", 0, 0x215867}, /* East Asian ideograph */ + {"\xAC", 0, 0x215868}, /* East Asian ideograph */ + {"\x91", 0, 0x233227}, /* East Asian ideograph */ + {"\x8A", 0, 0x233228}, /* East Asian ideograph */ + {"\x8E", 0, 0x23322A}, /* East Asian ideograph */ + {"\x96", 0, 0x233230}, /* East Asian ideograph */ + {"\x97", 0, 0x233237}, /* East Asian ideograph */ + {"\x88", 0, 0x233239}, /* East Asian ideograph */ + {"\x98", 0, 0x23323B}, /* East Asian ideograph */ + {"\x92", 0, 0x23323C}, /* East Asian ideograph */ + {"\x85", 0, 0x233242}, /* East Asian ideograph */ + {"\xBF", 0, 0x23324F}, /* East Asian ideograph */ + {"\xA1", 0, 0x233256}, /* East Asian ideograph */ + {"\xB5", 0, 0x23325E}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D3632}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D3B33}, /* East Asian ideograph */ + {"\xBE", 0, 0x2F317D}, /* East Asian ideograph */ + {"\xB6", 0, 0x335D23}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page249 = { + marc8r_9page249_flat, 0 +}; +/* PAGE 248 */ +struct yaz_iconv_trie_flat marc8r_9page248_flat[] = { + {"\x80", 0, 0x215837}, /* East Asian ideograph */ + {"\x88", 0, 0x215838}, /* East Asian ideograph */ + {"\x82", 0, 0x215839}, /* East Asian ideograph */ + {"\x83", 0, 0x21583A}, /* East Asian ideograph */ + {"\x90", 0, 0x21583B}, /* East Asian ideograph */ + {"\x98", 0, 0x21583C}, /* East Asian ideograph */ + {"\x8E", 0, 0x21583D}, /* East Asian ideograph */ + {"\x8C", 0, 0x21583E}, /* East Asian ideograph */ + {"\x95", 0, 0x21583F}, /* East Asian ideograph */ + {"\x8A", 0, 0x215840}, /* East Asian ideograph */ + {"\x96", 0, 0x215841}, /* East Asian ideograph */ + {"\x97", 0, 0x215842}, /* East Asian ideograph */ + {"\x93", 0, 0x215843}, /* East Asian ideograph */ + {"\xAA", 0, 0x215844}, /* East Asian ideograph */ + {"\xA3", 0, 0x215845}, /* East Asian ideograph */ + {"\x9D", 0, 0x215846}, /* East Asian ideograph */ + {"\xA5", 0, 0x215847}, /* East Asian ideograph */ + {"\xB1", 0, 0x215848}, /* East Asian ideograph */ + {"\xAD", 0, 0x215849}, /* East Asian ideograph */ + {"\x9B", 0, 0x21584A}, /* East Asian ideograph */ + {"\x9F", 0, 0x21584B}, /* East Asian ideograph */ + {"\xBB", 0, 0x21584C}, /* East Asian ideograph */ + {"\xB4", 0, 0x215856}, /* East Asian ideograph */ + {"\xBA", 0, 0x215857}, /* East Asian ideograph */ + {"\x86", 0, 0x23316C}, /* East Asian ideograph */ + {"\x87", 0, 0x23316D}, /* East Asian ideograph */ + {"\x84", 0, 0x23316E}, /* East Asian ideograph */ + {"\x8F", 0, 0x233170}, /* East Asian ideograph */ + {"\x91", 0, 0x233171}, /* East Asian ideograph */ + {"\x92", 0, 0x233172}, /* East Asian ideograph */ + {"\x8D", 0, 0x233173}, /* East Asian ideograph */ + {"\xA7", 0, 0x23317A}, /* East Asian ideograph */ + {"\xA9", 0, 0x23317D}, /* East Asian ideograph */ + {"\xA2", 0, 0x233225}, /* East Asian ideograph */ + {"\xBD", 0, 0x233240}, /* East Asian ideograph */ + {"\xBE", 0, 0x233258}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D356A}, /* East Asian ideograph */ + {"\xBC", 0, 0x39593F}, /* East Asian ideograph */ + {"\xA5", 0, 0x455847}, /* East Asian ideograph (variant of EACC 215847) */ + {"\xB3", 0, 0x4B5946}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page248 = { + marc8r_9page248_flat, 0 +}; +/* PAGE 247 */ +struct yaz_iconv_trie_flat marc8r_9page247_flat[] = { + {"\x80", 0, 0x215832}, /* East Asian ideograph */ + {"\x92", 0, 0x215833}, /* East Asian ideograph */ + {"\xA3", 0, 0x215834}, /* East Asian ideograph */ + {"\xB4", 0, 0x215835}, /* East Asian ideograph */ + {"\xB8", 0, 0x215836}, /* East Asian ideograph */ + {"\x96", 0, 0x23313A}, /* East Asian ideograph */ + {"\x95", 0, 0x23313B}, /* East Asian ideograph */ + {"\x9A", 0, 0x23313F}, /* East Asian ideograph */ + {"\xA5", 0, 0x233143}, /* East Asian ideograph */ + {"\x9C", 0, 0x233145}, /* East Asian ideograph */ + {"\xA1", 0, 0x233147}, /* East Asian ideograph */ + {"\xA9", 0, 0x23314C}, /* East Asian ideograph */ + {"\xAB", 0, 0x23314D}, /* East Asian ideograph */ + {"\xAD", 0, 0x233153}, /* East Asian ideograph */ + {"\xB1", 0, 0x233158}, /* East Asian ideograph */ + {"\xB3", 0, 0x23315C}, /* East Asian ideograph */ + {"\xB5", 0, 0x23315E}, /* East Asian ideograph */ + {"\xB6", 0, 0x233160}, /* East Asian ideograph */ + {"\xB7", 0, 0x233164}, /* East Asian ideograph */ + {"\xBF", 0, 0x23316B}, /* East Asian ideograph */ + {"\x81", 0, 0x275828}, /* East Asian ideograph */ + {"\x84", 0, 0x275829}, /* East Asian ideograph */ + {"\x85", 0, 0x27582A}, /* East Asian ideograph */ + {"\x86", 0, 0x27582B}, /* East Asian ideograph */ + {"\x8E", 0, 0x27582D}, /* East Asian ideograph */ + {"\x8A", 0, 0x27582E}, /* East Asian ideograph */ + {"\x90", 0, 0x27582F}, /* East Asian ideograph */ + {"\x89", 0, 0x275830}, /* East Asian ideograph */ + {"\x88", 0, 0x275831}, /* East Asian ideograph */ + {"\x82", 0, 0x275832}, /* East Asian ideograph */ + {"\x9E", 0, 0x275835}, /* East Asian ideograph */ + {"\x87", 0, 0x293066}, /* East Asian ideograph */ + {"\x8B", 0, 0x29306F}, /* East Asian ideograph */ + {"\x8F", 0, 0x29307D}, /* East Asian ideograph */ + {"\x91", 0, 0x29312B}, /* East Asian ideograph */ + {"\x8C", 0, 0x293132}, /* East Asian ideograph */ + {"\xAF", 0, 0x293160}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D5836}, /* East Asian ideograph */ + {"\xB5", 0, 0x2F3143}, /* East Asian ideograph (unrelated variant of EACC 23315E) */ + {"\x94", 0, 0x334260}, /* East Asian ideograph */ + {"\x9D", 0, 0x334A58}, /* East Asian ideograph */ + {"\xA7", 0, 0x335834}, /* East Asian ideograph */ + {"\x92", 0, 0x4B5361}, /* East Asian ideograph (duplicate simplified) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page247 = { + marc8r_9page247_flat, 0 +}; +/* PAGE 246 */ +struct yaz_iconv_trie_flat marc8r_9page246_flat[] = { + {"\x81", 0, 0x215825}, /* East Asian ideograph */ + {"\x83", 0, 0x215826}, /* East Asian ideograph */ + {"\x8B", 0, 0x215828}, /* East Asian ideograph */ + {"\x8F", 0, 0x215829}, /* East Asian ideograph */ + {"\x93", 0, 0x21582A}, /* East Asian ideograph */ + {"\x96", 0, 0x21582B}, /* East Asian ideograph */ + {"\xAA", 0, 0x21582C}, /* East Asian ideograph */ + {"\xA6", 0, 0x21582D}, /* East Asian ideograph */ + {"\xAC", 0, 0x21582E}, /* East Asian ideograph */ + {"\xB2", 0, 0x21582F}, /* East Asian ideograph */ + {"\xBA", 0, 0x215830}, /* East Asian ideograph */ + {"\xBD", 0, 0x215831}, /* East Asian ideograph */ + {"\x84", 0, 0x233053}, /* East Asian ideograph */ + {"\x85", 0, 0x233055}, /* East Asian ideograph */ + {"\x91", 0, 0x233062}, /* East Asian ideograph */ + {"\x97", 0, 0x233064}, /* East Asian ideograph */ + {"\x98", 0, 0x233066}, /* East Asian ideograph */ + {"\x9C", 0, 0x23306B}, /* East Asian ideograph */ + {"\xA1", 0, 0x23306F}, /* East Asian ideograph */ + {"\xA5", 0, 0x233076}, /* East Asian ideograph */ + {"\xA9", 0, 0x233079}, /* East Asian ideograph */ + {"\xAF", 0, 0x23307D}, /* East Asian ideograph */ + {"\xB8", 0, 0x23312A}, /* East Asian ideograph */ + {"\xB7", 0, 0x23312B}, /* East Asian ideograph */ + {"\xB6", 0, 0x23312C}, /* East Asian ideograph */ + {"\xBC", 0, 0x23312F}, /* East Asian ideograph */ + {"\xBF", 0, 0x233132}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D5238}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D5831}, /* East Asian ideograph */ + {"\xBB", 0, 0x2F312B}, /* East Asian ideograph */ + {"\x89", 0, 0x335238}, /* East Asian ideograph */ + {"\x88", 0, 0x394444}, /* East Asian ideograph */ + {"\x87", 0, 0x395F68}, /* East Asian ideograph */ + {"\x86", 0, 0x3F3D6F}, /* East Asian ideograph */ + {"\x88", 0, 0x4B4444}, /* East Asian ideograph (Version J extension) */ + {"\x83", 0, 0x4B5826}, /* East Asian ideograph (variant of EACC 215826) */ + {"\x9A", 0, 0x4B5830}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B5832}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page246 = { + marc8r_9page246_flat, 0 +}; +/* PAGE 245 */ +struct yaz_iconv_trie_flat marc8r_9page245_flat[] = { + {"\x84", 0, 0x21577A}, /* East Asian ideograph */ + {"\x9F", 0, 0x21577B}, /* East Asian ideograph */ + {"\xA0", 0, 0x21577C}, /* East Asian ideograph */ + {"\x96", 0, 0x21577D}, /* East Asian ideograph */ + {"\xA4", 0, 0x21577E}, /* East Asian ideograph */ + {"\xAA", 0, 0x215821}, /* East Asian ideograph */ + {"\xAF", 0, 0x215822}, /* East Asian ideograph */ + {"\xB2", 0, 0x215823}, /* East Asian ideograph */ + {"\xBF", 0, 0x215824}, /* East Asian ideograph */ + {"\x81", 0, 0x232F5D}, /* East Asian ideograph */ + {"\x94", 0, 0x232F66}, /* East Asian ideograph */ + {"\x8F", 0, 0x232F6F}, /* East Asian ideograph */ + {"\x87", 0, 0x232F72}, /* East Asian ideograph */ + {"\x8C", 0, 0x232F7A}, /* East Asian ideograph */ + {"\x86", 0, 0x232F7B}, /* East Asian ideograph */ + {"\x8D", 0, 0x233021}, /* East Asian ideograph */ + {"\xA2", 0, 0x233023}, /* East Asian ideograph */ + {"\x9A", 0, 0x233024}, /* East Asian ideograph */ + {"\x9E", 0, 0x233025}, /* East Asian ideograph */ + {"\x9B", 0, 0x233029}, /* East Asian ideograph */ + {"\x9C", 0, 0x23302C}, /* East Asian ideograph */ + {"\x9D", 0, 0x23302D}, /* East Asian ideograph */ + {"\xA6", 0, 0x233031}, /* East Asian ideograph */ + {"\xAD", 0, 0x233037}, /* East Asian ideograph */ + {"\xAB", 0, 0x23303A}, /* East Asian ideograph */ + {"\xAE", 0, 0x23303B}, /* East Asian ideograph */ + {"\xAC", 0, 0x23303C}, /* East Asian ideograph */ + {"\xB6", 0, 0x233041}, /* East Asian ideograph */ + {"\xB4", 0, 0x233042}, /* East Asian ideograph */ + {"\xBB", 0, 0x233049}, /* East Asian ideograph */ + {"\xBC", 0, 0x23304A}, /* East Asian ideograph */ + {"\x83", 0, 0x335772}, /* East Asian ideograph */ + {"\xBE", 0, 0x4B5824}, /* East Asian ideograph */ + {"\x81", 0, 0x4D2F5D}, /* East Asian ideograph (variant of EACC 232F5D) */ + {"\xB7", 0, 0x696B27}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page245 = { + marc8r_9page245_flat, 0 +}; +/* PAGE 244 */ +struct yaz_iconv_trie_flat marc8r_9page244_flat[] = { + {"\x82", 0, 0x215767}, /* East Asian ideograph */ + {"\x9A", 0, 0x21576E}, /* East Asian ideograph */ + {"\x90", 0, 0x21576F}, /* East Asian ideograph */ + {"\x93", 0, 0x215771}, /* East Asian ideograph */ + {"\x92", 0, 0x215772}, /* East Asian ideograph */ + {"\xB2", 0, 0x215773}, /* East Asian ideograph */ + {"\xAA", 0, 0x215774}, /* East Asian ideograph */ + {"\xA5", 0, 0x215775}, /* East Asian ideograph */ + {"\xAB", 0, 0x215776}, /* East Asian ideograph */ + {"\xBB", 0, 0x215777}, /* East Asian ideograph */ + {"\xB6", 0, 0x215778}, /* East Asian ideograph */ + {"\xB8", 0, 0x215779}, /* East Asian ideograph */ + {"\x80", 0, 0x232E78}, /* East Asian ideograph */ + {"\x83", 0, 0x232F24}, /* East Asian ideograph */ + {"\x89", 0, 0x232F2D}, /* East Asian ideograph */ + {"\x98", 0, 0x232F2F}, /* East Asian ideograph */ + {"\x86", 0, 0x232F35}, /* East Asian ideograph */ + {"\x8C", 0, 0x232F36}, /* East Asian ideograph */ + {"\x99", 0, 0x232F37}, /* East Asian ideograph */ + {"\x8A", 0, 0x232F3D}, /* East Asian ideograph */ + {"\x95", 0, 0x232F43}, /* East Asian ideograph */ + {"\xAF", 0, 0x232F45}, /* East Asian ideograph */ + {"\xB0", 0, 0x232F47}, /* East Asian ideograph */ + {"\xA1", 0, 0x232F4E}, /* East Asian ideograph */ + {"\xA7", 0, 0x232F4F}, /* East Asian ideograph */ + {"\x9F", 0, 0x232F51}, /* East Asian ideograph */ + {"\xB1", 0, 0x232F53}, /* East Asian ideograph */ + {"\x9E", 0, 0x232F54}, /* East Asian ideograph */ + {"\xA6", 0, 0x232F56}, /* East Asian ideograph */ + {"\xA2", 0, 0x232F57}, /* East Asian ideograph */ + {"\xB5", 0, 0x232F5A}, /* East Asian ideograph */ + {"\xB3", 0, 0x232F60}, /* East Asian ideograph */ + {"\xB4", 0, 0x275771}, /* East Asian ideograph */ + {"\x9B", 0, 0x275779}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D5758}, /* East Asian ideograph */ + {"\x87", 0, 0x393D6F}, /* East Asian ideograph */ + {"\x90", 0, 0x4B576F}, /* East Asian ideograph (variant of EACC 21576F) */ + {"\x9D", 0, 0x4D2F7A}, /* East Asian ideograph */ + {"\x84", 0, 0x696A6D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page244 = { + marc8r_9page244_flat, 0 +}; +/* PAGE 243 */ +struct yaz_iconv_trie_flat marc8r_9page243_flat[] = { + {"\x81", 0, 0x21575C}, /* East Asian ideograph */ + {"\x82", 0, 0x21575D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21575F}, /* East Asian ideograph */ + {"\x99", 0, 0x215760}, /* East Asian ideograph */ + {"\x98", 0, 0x215761}, /* East Asian ideograph */ + {"\x9C", 0, 0x215762}, /* East Asian ideograph */ + {"\x8F", 0, 0x215763}, /* East Asian ideograph */ + {"\x94", 0, 0x215764}, /* East Asian ideograph */ + {"\x9D", 0, 0x215765}, /* East Asian ideograph */ + {"\x95", 0, 0x215766}, /* East Asian ideograph */ + {"\xB3", 0, 0x215768}, /* East Asian ideograph */ + {"\xB8", 0, 0x215769}, /* East Asian ideograph */ + {"\xB9", 0, 0x21576A}, /* East Asian ideograph */ + {"\xB4", 0, 0x21576B}, /* East Asian ideograph */ + {"\xBD", 0, 0x21576C}, /* East Asian ideograph */ + {"\xA8", 0, 0x21576D}, /* East Asian ideograph */ + {"\x89", 0, 0x232E48}, /* East Asian ideograph */ + {"\x80", 0, 0x232E4F}, /* East Asian ideograph */ + {"\x84", 0, 0x232E5A}, /* East Asian ideograph */ + {"\x8B", 0, 0x232E5E}, /* East Asian ideograph */ + {"\x8C", 0, 0x232E60}, /* East Asian ideograph */ + {"\x9B", 0, 0x232E62}, /* East Asian ideograph */ + {"\x8E", 0, 0x232E64}, /* East Asian ideograph */ + {"\x92", 0, 0x232E68}, /* East Asian ideograph */ + {"\xB1", 0, 0x232E71}, /* East Asian ideograph */ + {"\xBE", 0, 0x232E72}, /* East Asian ideograph */ + {"\xB2", 0, 0x232E75}, /* East Asian ideograph */ + {"\xB0", 0, 0x232E7A}, /* East Asian ideograph */ + {"\xBC", 0, 0x232F21}, /* East Asian ideograph */ + {"\xAF", 0, 0x232F23}, /* East Asian ideograph */ + {"\x85", 0, 0x275765}, /* East Asian ideograph */ + {"\xA4", 0, 0x275773}, /* East Asian ideograph */ + {"\x86", 0, 0x27577C}, /* East Asian ideograph */ + {"\xA2", 0, 0x292F60}, /* East Asian ideograph */ + {"\xA5", 0, 0x292F72}, /* East Asian ideograph */ + {"\xA3", 0, 0x29302D}, /* East Asian ideograph */ + {"\xA1", 0, 0x2D5763}, /* East Asian ideograph */ + {"\xA0", 0, 0x335760}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B3A47}, /* East Asian ideograph */ + {"\x83", 0, 0x696A61}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page243 = { + marc8r_9page243_flat, 0 +}; +/* PAGE 242 */ +struct yaz_iconv_trie_flat marc8r_9page242_flat[] = { + {"\x82", 0, 0x215751}, /* East Asian ideograph */ + {"\x81", 0, 0x215752}, /* East Asian ideograph */ + {"\x88", 0, 0x215755}, /* East Asian ideograph */ + {"\xAB", 0, 0x215756}, /* East Asian ideograph */ + {"\x92", 0, 0x215757}, /* East Asian ideograph */ + {"\x96", 0, 0x215758}, /* East Asian ideograph */ + {"\x8D", 0, 0x215759}, /* East Asian ideograph */ + {"\x8B", 0, 0x21575A}, /* East Asian ideograph */ + {"\x9E", 0, 0x21575B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21575E}, /* East Asian ideograph */ + {"\xA2", 0, 0x232E28}, /* East Asian ideograph */ + {"\xA4", 0, 0x232E2A}, /* East Asian ideograph */ + {"\xAA", 0, 0x232E2F}, /* East Asian ideograph */ + {"\x9A", 0, 0x232E34}, /* East Asian ideograph */ + {"\x90", 0, 0x232E3A}, /* East Asian ideograph */ + {"\x8C", 0, 0x232E3B}, /* East Asian ideograph */ + {"\xA0", 0, 0x232E3D}, /* East Asian ideograph */ + {"\x99", 0, 0x232E40}, /* East Asian ideograph */ + {"\x97", 0, 0x232E45}, /* East Asian ideograph */ + {"\xBF", 0, 0x232E49}, /* East Asian ideograph */ + {"\xBA", 0, 0x232E4A}, /* East Asian ideograph */ + {"\xB2", 0, 0x232E51}, /* East Asian ideograph */ + {"\xBC", 0, 0x232E54}, /* East Asian ideograph */ + {"\xB7", 0, 0x232E57}, /* East Asian ideograph */ + {"\xBD", 0, 0x232E59}, /* East Asian ideograph */ + {"\x84", 0, 0x27577D}, /* East Asian ideograph */ + {"\x9C", 0, 0x275821}, /* East Asian ideograph */ + {"\xAD", 0, 0x275823}, /* East Asian ideograph */ + {"\xB5", 0, 0x2F2D79}, /* East Asian ideograph */ + {"\xB4", 0, 0x335773}, /* East Asian ideograph */ + {"\xAE", 0, 0x4D3032}, /* East Asian ideograph */ + {"\x85", 0, 0x513A47}, /* East Asian ideograph */ + {"\xB0", 0, 0x696A5E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page242 = { + marc8r_9page242_flat, 0 +}; +/* PAGE 241 */ +struct yaz_iconv_trie_flat marc8r_9page241_flat[] = { + {"\x80", 0, 0x215743}, /* East Asian ideograph */ + {"\x8C", 0, 0x215744}, /* East Asian ideograph */ + {"\x8D", 0, 0x215745}, /* East Asian ideograph */ + {"\x93", 0, 0x215746}, /* East Asian ideograph (variant of EACC 4B5746) */ + {"\x97", 0, 0x215747}, /* East Asian ideograph */ + {"\x99", 0, 0x215748}, /* East Asian ideograph */ + {"\x9B", 0, 0x215749}, /* East Asian ideograph */ + {"\x9D", 0, 0x21574A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21574B}, /* East Asian ideograph */ + {"\xA2", 0, 0x21574C}, /* East Asian ideograph */ + {"\xA3", 0, 0x21574D}, /* East Asian ideograph */ + {"\xA8", 0, 0x21574F}, /* East Asian ideograph */ + {"\xAB", 0, 0x215750}, /* East Asian ideograph */ + {"\xB0", 0, 0x215753}, /* East Asian ideograph */ + {"\xB7", 0, 0x215754}, /* East Asian ideograph */ + {"\x81", 0, 0x232D41}, /* East Asian ideograph */ + {"\x84", 0, 0x232D44}, /* East Asian ideograph */ + {"\x87", 0, 0x232D4B}, /* East Asian ideograph */ + {"\x8A", 0, 0x232D51}, /* East Asian ideograph */ + {"\x8E", 0, 0x232D53}, /* East Asian ideograph */ + {"\x92", 0, 0x232D56}, /* East Asian ideograph */ + {"\x90", 0, 0x232D57}, /* East Asian ideograph */ + {"\x96", 0, 0x232D59}, /* East Asian ideograph */ + {"\x95", 0, 0x232D5A}, /* East Asian ideograph */ + {"\x9C", 0, 0x232D5E}, /* East Asian ideograph */ + {"\x9A", 0, 0x232D5F}, /* East Asian ideograph */ + {"\xA9", 0, 0x232D69}, /* East Asian ideograph */ + {"\xAD", 0, 0x232D6D}, /* East Asian ideograph */ + {"\xBA", 0, 0x232D6E}, /* East Asian ideograph */ + {"\xB5", 0, 0x232D71}, /* East Asian ideograph */ + {"\xB2", 0, 0x232D75}, /* East Asian ideograph */ + {"\xBD", 0, 0x232D79}, /* East Asian ideograph */ + {"\xB9", 0, 0x232D7C}, /* East Asian ideograph */ + {"\xBF", 0, 0x232D7D}, /* East Asian ideograph */ + {"\xBE", 0, 0x232D7E}, /* East Asian ideograph */ + {"\xA5", 0, 0x275762}, /* East Asian ideograph */ + {"\xAC", 0, 0x275822}, /* East Asian ideograph */ + {"\x85", 0, 0x275D35}, /* East Asian ideograph */ + {"\x94", 0, 0x275D61}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D5749}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D575B}, /* East Asian ideograph */ + {"\x82", 0, 0x3B2D44}, /* East Asian ideograph */ + {"\x86", 0, 0x4B4D56}, /* East Asian ideograph */ + {"\x93", 0, 0x4B5746}, /* East Asian ideograph */ + {"\xB2", 0, 0x4D2D75}, /* East Asian ideograph (variant of EACC 232D75) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page241 = { + marc8r_9page241_flat, 0 +}; +/* PAGE 240 */ +struct yaz_iconv_trie_flat marc8r_9page240_flat[] = { + {"\x85", 0, 0x215736}, /* East Asian ideograph */ + {"\x8D", 0, 0x215737}, /* East Asian ideograph */ + {"\x94", 0, 0x215739}, /* East Asian ideograph */ + {"\x95", 0, 0x21573A}, /* East Asian ideograph */ + {"\xA2", 0, 0x21573B}, /* East Asian ideograph */ + {"\xA3", 0, 0x21573C}, /* East Asian ideograph */ + {"\xA1", 0, 0x21573D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21573E}, /* East Asian ideograph */ + {"\xB1", 0, 0x21573F}, /* East Asian ideograph */ + {"\xB9", 0, 0x215740}, /* East Asian ideograph */ + {"\xB6", 0, 0x215741}, /* East Asian ideograph */ + {"\xBB", 0, 0x215742}, /* East Asian ideograph */ + {"\x81", 0, 0x232C4D}, /* East Asian ideograph */ + {"\x83", 0, 0x232C4F}, /* East Asian ideograph */ + {"\x8A", 0, 0x232C50}, /* East Asian ideograph */ + {"\x8B", 0, 0x232C5C}, /* East Asian ideograph */ + {"\x86", 0, 0x232C5D}, /* East Asian ideograph */ + {"\x90", 0, 0x232C61}, /* East Asian ideograph */ + {"\x99", 0, 0x232C63}, /* East Asian ideograph */ + {"\x91", 0, 0x232C64}, /* East Asian ideograph */ + {"\x98", 0, 0x232C66}, /* East Asian ideograph */ + {"\x93", 0, 0x232C6A}, /* East Asian ideograph */ + {"\x96", 0, 0x232C6B}, /* East Asian ideograph */ + {"\xB4", 0, 0x232C72}, /* East Asian ideograph */ + {"\x9C", 0, 0x232C73}, /* East Asian ideograph */ + {"\x9B", 0, 0x232C7A}, /* East Asian ideograph */ + {"\xA8", 0, 0x232D23}, /* East Asian ideograph */ + {"\xB2", 0, 0x232D2A}, /* East Asian ideograph */ + {"\xAE", 0, 0x232D2E}, /* East Asian ideograph */ + {"\xAD", 0, 0x232D32}, /* East Asian ideograph */ + {"\xBC", 0, 0x232D3C}, /* East Asian ideograph */ + {"\x8E", 0, 0x33572E}, /* East Asian ideograph */ + {"\x8F", 0, 0x335738}, /* East Asian ideograph */ + {"\x81", 0, 0x472C4D}, /* East Asian ideograph (variant of EACC 232C4D) */ + {"\xA7", 0, 0x4B5740}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page240 = { + marc8r_9page240_flat, 0 +}; +/* PAGE 239 */ +struct yaz_iconv_trie_flat marc8r_9page239_flat[] = { + {"\x91", 0, 0x215728}, /* East Asian ideograph */ + {"\x80", 0, 0x215729}, /* East Asian ideograph */ + {"\x88", 0, 0x21572D}, /* East Asian ideograph */ + {"\x92", 0, 0x21572E}, /* East Asian ideograph */ + {"\x86", 0, 0x215730}, /* East Asian ideograph */ + {"\x8B", 0, 0x215731}, /* East Asian ideograph */ + {"\xAF", 0, 0x215732}, /* East Asian ideograph */ + {"\xB2", 0, 0x215733}, /* East Asian ideograph */ + {"\xAC", 0, 0x215734}, /* East Asian ideograph */ + {"\xBB", 0, 0x215735}, /* East Asian ideograph */ + {"\xB9", 0, 0x215738}, /* East Asian ideograph */ + {"\x84", 0, 0x232B6E}, /* East Asian ideograph */ + {"\xAE", 0, 0x232C2C}, /* East Asian ideograph */ + {"\xB3", 0, 0x232C30}, /* East Asian ideograph */ + {"\xB0", 0, 0x232C31}, /* East Asian ideograph */ + {"\xAA", 0, 0x232C34}, /* East Asian ideograph */ + {"\x9B", 0, 0x232C36}, /* East Asian ideograph */ + {"\xA2", 0, 0x232C37}, /* East Asian ideograph */ + {"\xAB", 0, 0x232C39}, /* East Asian ideograph */ + {"\x96", 0, 0x232C3A}, /* East Asian ideograph */ + {"\xB5", 0, 0x232C3F}, /* East Asian ideograph */ + {"\xA0", 0, 0x232C47}, /* East Asian ideograph */ + {"\x93", 0, 0x232C48}, /* East Asian ideograph */ + {"\x9C", 0, 0x232C49}, /* East Asian ideograph */ + {"\xA3", 0, 0x232C4C}, /* East Asian ideograph */ + {"\xB6", 0, 0x232C55}, /* East Asian ideograph */ + {"\xB7", 0, 0x232C57}, /* East Asian ideograph */ + {"\xBE", 0, 0x232C5F}, /* East Asian ideograph */ + {"\x87", 0, 0x2D5730}, /* East Asian ideograph */ + {"\x8A", 0, 0x2F2A73}, /* East Asian ideograph */ + {"\x81", 0, 0x335652}, /* East Asian ideograph */ + {"\xA5", 0, 0x4D2C3C}, /* East Asian ideograph */ + {"\x90", 0, 0x696A2C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page239 = { + marc8r_9page239_flat, 0 +}; +/* PAGE 238 */ +struct yaz_iconv_trie_flat marc8r_9page238_flat[] = { + {"\x83", 0, 0x215722}, /* East Asian ideograph */ + {"\x82", 0, 0x215723}, /* East Asian ideograph */ + {"\xA2", 0, 0x215724}, /* East Asian ideograph */ + {"\x9E", 0, 0x215725}, /* East Asian ideograph */ + {"\x8D", 0, 0x215726}, /* East Asian ideograph */ + {"\x9F", 0, 0x215727}, /* East Asian ideograph */ + {"\xAB", 0, 0x21572A}, /* East Asian ideograph */ + {"\xB3", 0, 0x21572B}, /* East Asian ideograph */ + {"\xBB", 0, 0x21572C}, /* East Asian ideograph */ + {"\xBA", 0, 0x21572F}, /* East Asian ideograph */ + {"\xA3", 0, 0x232B3A}, /* East Asian ideograph */ + {"\x93", 0, 0x232B3D}, /* East Asian ideograph */ + {"\x99", 0, 0x232B45}, /* East Asian ideograph */ + {"\x88", 0, 0x232B48}, /* East Asian ideograph */ + {"\x98", 0, 0x232B4C}, /* East Asian ideograph */ + {"\x85", 0, 0x232B53}, /* East Asian ideograph */ + {"\x8B", 0, 0x232B54}, /* East Asian ideograph */ + {"\x84", 0, 0x232B55}, /* East Asian ideograph */ + {"\xA9", 0, 0x232B58}, /* East Asian ideograph */ + {"\x89", 0, 0x232B5D}, /* East Asian ideograph */ + {"\xAD", 0, 0x232B60}, /* East Asian ideograph */ + {"\xBE", 0, 0x232B66}, /* East Asian ideograph */ + {"\xAF", 0, 0x232B6F}, /* East Asian ideograph */ + {"\xAC", 0, 0x232B72}, /* East Asian ideograph */ + {"\xAE", 0, 0x232B78}, /* East Asian ideograph */ + {"\xBF", 0, 0x232B7E}, /* East Asian ideograph */ + {"\xBD", 0, 0x232C24}, /* East Asian ideograph */ + {"\x97", 0, 0x2D572B}, /* East Asian ideograph */ + {"\xB5", 0, 0x2F2A64}, /* East Asian ideograph */ + {"\xA1", 0, 0x395652}, /* East Asian ideograph */ + {"\xA8", 0, 0x70727D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page238 = { + marc8r_9page238_flat, 0 +}; +/* PAGE 237 */ +struct yaz_iconv_trie_flat marc8r_9page237_flat[] = { + {"\x95", 0, 0x215676}, /* East Asian ideograph */ + {"\xA0", 0, 0x215677}, /* East Asian ideograph */ + {"\xB6", 0, 0x215678}, /* East Asian ideograph */ + {"\xB4", 0, 0x215679}, /* East Asian ideograph */ + {"\xA6", 0, 0x21567A}, /* East Asian ideograph */ + {"\xB8", 0, 0x21567B}, /* East Asian ideograph */ + {"\xA8", 0, 0x21567C}, /* East Asian ideograph */ + {"\x8C", 0, 0x21567D}, /* East Asian ideograph */ + {"\x97", 0, 0x21567E}, /* East Asian ideograph */ + {"\x99", 0, 0x215721}, /* East Asian ideograph */ + {"\x8A", 0, 0x232A42}, /* East Asian ideograph */ + {"\x80", 0, 0x232A49}, /* East Asian ideograph */ + {"\x83", 0, 0x232A53}, /* East Asian ideograph */ + {"\x84", 0, 0x232A55}, /* East Asian ideograph */ + {"\x8F", 0, 0x232A6B}, /* East Asian ideograph */ + {"\xB1", 0, 0x232A6C}, /* East Asian ideograph */ + {"\xA3", 0, 0x232A6D}, /* East Asian ideograph */ + {"\xA4", 0, 0x232A71}, /* East Asian ideograph */ + {"\xA5", 0, 0x232A73}, /* East Asian ideograph */ + {"\xBD", 0, 0x232A74}, /* East Asian ideograph */ + {"\x98", 0, 0x232A79}, /* East Asian ideograph */ + {"\xBB", 0, 0x232A7B}, /* East Asian ideograph */ + {"\xA1", 0, 0x232B21}, /* East Asian ideograph */ + {"\xAA", 0, 0x232B24}, /* East Asian ideograph */ + {"\x8E", 0, 0x232B27}, /* East Asian ideograph */ + {"\x9F", 0, 0x232B28}, /* East Asian ideograph */ + {"\xAF", 0, 0x232B2D}, /* East Asian ideograph */ + {"\x9D", 0, 0x232B2E}, /* East Asian ideograph */ + {"\xAE", 0, 0x232B30}, /* East Asian ideograph */ + {"\x8D", 0, 0x232B33}, /* East Asian ideograph */ + {"\x93", 0, 0x232B35}, /* East Asian ideograph */ + {"\xBC", 0, 0x27572C}, /* East Asian ideograph */ + {"\x89", 0, 0x275734}, /* East Asian ideograph */ + {"\x87", 0, 0x275736}, /* East Asian ideograph */ + {"\xBE", 0, 0x292C64}, /* East Asian ideograph */ + {"\x88", 0, 0x2D572D}, /* East Asian ideograph */ + {"\xBF", 0, 0x4B5736}, /* East Asian ideograph */ + {"\xB0", 0, 0x4D2925}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page237 = { + marc8r_9page237_flat, 0 +}; +/* PAGE 236 */ +struct yaz_iconv_trie_flat marc8r_9page236_flat[] = { + {"\x87", 0, 0x215668}, /* East Asian ideograph */ + {"\x83", 0, 0x215669}, /* East Asian ideograph */ + {"\x88", 0, 0x21566A}, /* East Asian ideograph */ + {"\x80", 0, 0x21566B}, /* East Asian ideograph */ + {"\x93", 0, 0x21566D}, /* East Asian ideograph */ + {"\x82", 0, 0x21566E}, /* East Asian ideograph */ + {"\x9C", 0, 0x21566F}, /* East Asian ideograph */ + {"\xBF", 0, 0x215670}, /* East Asian ideograph */ + {"\xBB", 0, 0x215671}, /* East Asian ideograph */ + {"\xA2", 0, 0x215672}, /* East Asian ideograph */ + {"\xA5", 0, 0x215673}, /* East Asian ideograph */ + {"\xB4", 0, 0x215674}, /* East Asian ideograph */ + {"\x98", 0, 0x215675}, /* East Asian ideograph */ + {"\x8B", 0, 0x232A25}, /* East Asian ideograph */ + {"\x86", 0, 0x232A34}, /* East Asian ideograph */ + {"\x8E", 0, 0x232A36}, /* East Asian ideograph */ + {"\x89", 0, 0x232A38}, /* East Asian ideograph */ + {"\x8A", 0, 0x232A3A}, /* East Asian ideograph */ + {"\x8D", 0, 0x232A3E}, /* East Asian ideograph */ + {"\xA3", 0, 0x232A43}, /* East Asian ideograph */ + {"\xB7", 0, 0x232A44}, /* East Asian ideograph */ + {"\xA8", 0, 0x232A45}, /* East Asian ideograph */ + {"\xAE", 0, 0x232A4B}, /* East Asian ideograph */ + {"\xBD", 0, 0x232A4C}, /* East Asian ideograph */ + {"\x9E", 0, 0x232A4E}, /* East Asian ideograph */ + {"\xBE", 0, 0x232A57}, /* East Asian ideograph */ + {"\xA9", 0, 0x232A59}, /* East Asian ideograph */ + {"\xB9", 0, 0x232A5A}, /* East Asian ideograph */ + {"\x9A", 0, 0x232A5F}, /* East Asian ideograph */ + {"\xB1", 0, 0x232A64}, /* East Asian ideograph */ + {"\x91", 0, 0x232A65}, /* East Asian ideograph */ + {"\x92", 0, 0x232A66}, /* East Asian ideograph */ + {"\xA1", 0, 0x27573E}, /* East Asian ideograph */ + {"\x97", 0, 0x2D567B}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D5F63}, /* East Asian ideograph */ + {"\x88", 0, 0x4B566A}, /* East Asian ideograph (variant of EACC 21566A) */ + {"\xBB", 0, 0x4B5671}, /* East Asian ideograph (variant of EACC 215671) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page236 = { + marc8r_9page236_flat, 0 +}; +/* PAGE 235 */ +struct yaz_iconv_trie_flat marc8r_9page235_flat[] = { + {"\x80", 0, 0x215657}, /* East Asian ideograph */ + {"\x87", 0, 0x215658}, /* East Asian ideograph */ + {"\x8B", 0, 0x21565A}, /* East Asian ideograph */ + {"\x84", 0, 0x21565C}, /* East Asian ideograph */ + {"\x86", 0, 0x21565D}, /* East Asian ideograph */ + {"\x9F", 0, 0x215660}, /* East Asian ideograph */ + {"\x99", 0, 0x215661}, /* East Asian ideograph */ + {"\xAD", 0, 0x215662}, /* East Asian ideograph */ + {"\x94", 0, 0x215663}, /* East Asian ideograph */ + {"\x9B", 0, 0x215664}, /* East Asian ideograph */ + {"\xA4", 0, 0x215665}, /* East Asian ideograph */ + {"\xBB", 0, 0x215666}, /* East Asian ideograph */ + {"\xB9", 0, 0x215667}, /* East Asian ideograph */ + {"\xBE", 0, 0x21566C}, /* East Asian ideograph */ + {"\x89", 0, 0x232962}, /* East Asian ideograph */ + {"\x98", 0, 0x232967}, /* East Asian ideograph */ + {"\xA3", 0, 0x23296E}, /* East Asian ideograph */ + {"\xA9", 0, 0x23296F}, /* East Asian ideograph */ + {"\xAC", 0, 0x232971}, /* East Asian ideograph */ + {"\x95", 0, 0x232974}, /* East Asian ideograph */ + {"\x90", 0, 0x232977}, /* East Asian ideograph */ + {"\x91", 0, 0x23297A}, /* East Asian ideograph */ + {"\x9E", 0, 0x23297E}, /* East Asian ideograph */ + {"\xBA", 0, 0x232A2F}, /* East Asian ideograph */ + {"\xB8", 0, 0x232A33}, /* East Asian ideograph */ + {"\x83", 0, 0x23355C}, /* East Asian ideograph */ + {"\xB2", 0, 0x275732}, /* East Asian ideograph */ + {"\x8E", 0, 0x27573C}, /* East Asian ideograph */ + {"\x8A", 0, 0x27573F}, /* East Asian ideograph */ + {"\xAE", 0, 0x275742}, /* East Asian ideograph */ + {"\xB1", 0, 0x292A2F}, /* East Asian ideograph */ + {"\xB3", 0, 0x292B55}, /* East Asian ideograph */ + {"\xB0", 0, 0x292B6E}, /* East Asian ideograph */ + {"\x8F", 0, 0x292C55}, /* East Asian ideograph */ + {"\xB4", 0, 0x292C61}, /* East Asian ideograph */ + {"\x8D", 0, 0x4B5724}, /* East Asian ideograph */ + {"\x89", 0, 0x4D2962}, /* East Asian ideograph (variant of EACC 232962) */ + {"\xAF", 0, 0x696962}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page235 = { + marc8r_9page235_flat, 0 +}; +/* PAGE 234 */ +struct yaz_iconv_trie_flat marc8r_9page234_flat[] = { + {"\xA9", 0, 0x215650}, /* East Asian ideograph */ + {"\xAA", 0, 0x215651}, /* East Asian ideograph */ + {"\x8A", 0, 0x215652}, /* East Asian ideograph */ + {"\x93", 0, 0x215653}, /* East Asian ideograph */ + {"\xA4", 0, 0x215654}, /* East Asian ideograph */ + {"\x8C", 0, 0x215655}, /* East Asian ideograph */ + {"\xA3", 0, 0x215656}, /* East Asian ideograph */ + {"\xB5", 0, 0x215659}, /* East Asian ideograph */ + {"\xB6", 0, 0x21565B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21565E}, /* East Asian ideograph */ + {"\xAF", 0, 0x21565F}, /* East Asian ideograph */ + {"\x96", 0, 0x23292E}, /* East Asian ideograph */ + {"\xA8", 0, 0x23292F}, /* East Asian ideograph */ + {"\x91", 0, 0x232936}, /* East Asian ideograph */ + {"\x9C", 0, 0x232937}, /* East Asian ideograph */ + {"\x98", 0, 0x232939}, /* East Asian ideograph */ + {"\x8D", 0, 0x23293C}, /* East Asian ideograph */ + {"\x8B", 0, 0x23293D}, /* East Asian ideograph */ + {"\xA6", 0, 0x232940}, /* East Asian ideograph */ + {"\x9D", 0, 0x232942}, /* East Asian ideograph */ + {"\xA0", 0, 0x232946}, /* East Asian ideograph */ + {"\xA7", 0, 0x232948}, /* East Asian ideograph */ + {"\xBF", 0, 0x23294B}, /* East Asian ideograph */ + {"\xBA", 0, 0x232958}, /* East Asian ideograph */ + {"\xB0", 0, 0x232959}, /* East Asian ideograph */ + {"\xB3", 0, 0x232960}, /* East Asian ideograph */ + {"\xB4", 0, 0x232963}, /* East Asian ideograph */ + {"\x80", 0, 0x275676}, /* East Asian ideograph */ + {"\x82", 0, 0x275725}, /* East Asian ideograph */ + {"\x81", 0, 0x275735}, /* East Asian ideograph */ + {"\x95", 0, 0x275741}, /* East Asian ideograph */ + {"\xAC", 0, 0x292A34}, /* East Asian ideograph */ + {"\x8B", 0, 0x2F2A5A}, /* East Asian ideograph (unrelated variant of EACC 23293D) */ + {"\xA1", 0, 0x2F5F45}, /* East Asian ideograph */ + {"\xAB", 0, 0x69695B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page234 = { + marc8r_9page234_flat, 0 +}; +/* PAGE 233 */ +struct yaz_iconv_trie_flat marc8r_9page233_flat[] = { + {"\x8E", 0, 0x215643}, /* East Asian ideograph */ + {"\x90", 0, 0x215644}, /* East Asian ideograph */ + {"\x94", 0, 0x215645}, /* East Asian ideograph */ + {"\x95", 0, 0x215647}, /* East Asian ideograph */ + {"\x9C", 0, 0x215648}, /* East Asian ideograph */ + {"\x9B", 0, 0x215649}, /* East Asian ideograph */ + {"\x9F", 0, 0x21564A}, /* East Asian ideograph */ + {"\x9E", 0, 0x21564B}, /* East Asian ideograph */ + {"\xA7", 0, 0x21564C}, /* East Asian ideograph */ + {"\xB9", 0, 0x21564F}, /* East Asian ideograph */ + {"\x92", 0, 0x216D74}, /* East Asian ideograph */ + {"\x81", 0, 0x21787C}, /* East Asian ideograph */ + {"\x80", 0, 0x23283F}, /* East Asian ideograph */ + {"\x85", 0, 0x23284C}, /* East Asian ideograph */ + {"\x8D", 0, 0x232859}, /* East Asian ideograph */ + {"\x93", 0, 0x23285A}, /* East Asian ideograph */ + {"\x99", 0, 0x23285E}, /* East Asian ideograph */ + {"\xA1", 0, 0x232866}, /* East Asian ideograph */ + {"\xA2", 0, 0x232869}, /* East Asian ideograph */ + {"\xA3", 0, 0x23286A}, /* East Asian ideograph */ + {"\xA9", 0, 0x232871}, /* East Asian ideograph */ + {"\xAC", 0, 0x232878}, /* East Asian ideograph */ + {"\xB2", 0, 0x23287B}, /* East Asian ideograph */ + {"\xAF", 0, 0x23287C}, /* East Asian ideograph */ + {"\xBB", 0, 0x23287E}, /* East Asian ideograph */ + {"\xBA", 0, 0x232925}, /* East Asian ideograph */ + {"\xB3", 0, 0x232926}, /* East Asian ideograph */ + {"\xBC", 0, 0x232927}, /* East Asian ideograph */ + {"\x91", 0, 0x273F36}, /* East Asian ideograph */ + {"\x8F", 0, 0x275648}, /* East Asian ideograph */ + {"\xBE", 0, 0x27567A}, /* East Asian ideograph */ + {"\xAB", 0, 0x275733}, /* East Asian ideograph */ + {"\xBD", 0, 0x275F4A}, /* East Asian ideograph */ + {"\xAE", 0, 0x292C4C}, /* East Asian ideograph */ + {"\xBF", 0, 0x292C5D}, /* East Asian ideograph */ + {"\x96", 0, 0x333573}, /* East Asian ideograph */ + {"\xB1", 0, 0x33567C}, /* East Asian ideograph */ + {"\x9E", 0, 0x45564B}, /* East Asian ideograph (variant of EACC 21564B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page233 = { + marc8r_9page233_flat, 0 +}; +/* PAGE 232 */ +struct yaz_iconv_trie_flat marc8r_9page232_flat[] = { + {"\x91", 0, 0x215638}, /* East Asian ideograph */ + {"\x86", 0, 0x21563A}, /* East Asian ideograph */ + {"\x8B", 0, 0x21563B}, /* East Asian ideograph */ + {"\x87", 0, 0x21563C}, /* East Asian ideograph */ + {"\x8A", 0, 0x21563D}, /* East Asian ideograph */ + {"\xAD", 0, 0x21563E}, /* East Asian ideograph */ + {"\x97", 0, 0x21563F}, /* East Asian ideograph */ + {"\x9A", 0, 0x215640}, /* East Asian ideograph */ + {"\xB8", 0, 0x215641}, /* East Asian ideograph */ + {"\xBF", 0, 0x215642}, /* East Asian ideograph */ + {"\xA4", 0, 0x232724}, /* East Asian ideograph */ + {"\xA2", 0, 0x232752}, /* East Asian ideograph */ + {"\x90", 0, 0x232754}, /* East Asian ideograph */ + {"\x80", 0, 0x232760}, /* East Asian ideograph */ + {"\x84", 0, 0x232768}, /* East Asian ideograph */ + {"\x85", 0, 0x232771}, /* East Asian ideograph */ + {"\xAB", 0, 0x232775}, /* East Asian ideograph */ + {"\xA7", 0, 0x232822}, /* East Asian ideograph */ + {"\xA9", 0, 0x232826}, /* East Asian ideograph */ + {"\xB7", 0, 0x232832}, /* East Asian ideograph */ + {"\xB6", 0, 0x232838}, /* East Asian ideograph */ + {"\xBC", 0, 0x23283E}, /* East Asian ideograph */ + {"\xBA", 0, 0x232840}, /* East Asian ideograph */ + {"\x93", 0, 0x2D563C}, /* East Asian ideograph */ + {"\x82", 0, 0x335577}, /* East Asian ideograph */ + {"\xAF", 0, 0x4B4D41}, /* East Asian ideograph */ + {"\x96", 0, 0x51563F}, /* East Asian ideograph */ + {"\xB0", 0, 0x696946}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page232 = { + marc8r_9page232_flat, 0 +}; +/* PAGE 231 */ +struct yaz_iconv_trie_flat marc8r_9page231_flat[] = { + {"\x8D", 0, 0x215629}, /* East Asian ideograph (variant of EACC 4B5629) */ + {"\x8F", 0, 0x21562B}, /* East Asian ideograph */ + {"\x90", 0, 0x21562D}, /* East Asian ideograph */ + {"\x89", 0, 0x21562E}, /* East Asian ideograph */ + {"\xA9", 0, 0x215630}, /* East Asian ideograph */ + {"\x9D", 0, 0x215631}, /* East Asian ideograph */ + {"\xAA", 0, 0x215632}, /* East Asian ideograph */ + {"\xA4", 0, 0x215633}, /* East Asian ideograph */ + {"\x95", 0, 0x215634}, /* East Asian ideograph */ + {"\xA5", 0, 0x215635}, /* East Asian ideograph */ + {"\xBB", 0, 0x215636}, /* East Asian ideograph */ + {"\xB9", 0, 0x215637}, /* East Asian ideograph */ + {"\xBA", 0, 0x215639}, /* East Asian ideograph */ + {"\x81", 0, 0x23265D}, /* East Asian ideograph */ + {"\x8E", 0, 0x232668}, /* East Asian ideograph */ + {"\x82", 0, 0x23266A}, /* East Asian ideograph */ + {"\x84", 0, 0x232670}, /* East Asian ideograph */ + {"\xB7", 0, 0x232728}, /* East Asian ideograph */ + {"\xA6", 0, 0x23272C}, /* East Asian ideograph */ + {"\x94", 0, 0x23272E}, /* East Asian ideograph */ + {"\xAD", 0, 0x232731}, /* East Asian ideograph */ + {"\x9A", 0, 0x232739}, /* East Asian ideograph */ + {"\x9F", 0, 0x232743}, /* East Asian ideograph */ + {"\x98", 0, 0x232745}, /* East Asian ideograph */ + {"\x9C", 0, 0x23274C}, /* East Asian ideograph */ + {"\xB5", 0, 0x23274E}, /* East Asian ideograph */ + {"\xBC", 0, 0x232757}, /* East Asian ideograph */ + {"\xBF", 0, 0x23275B}, /* East Asian ideograph */ + {"\xBE", 0, 0x23275E}, /* East Asian ideograph */ + {"\x93", 0, 0x275640}, /* East Asian ideograph */ + {"\x8D", 0, 0x4B5629}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page231 = { + marc8r_9page231_flat, 0 +}; +/* PAGE 230 */ +struct yaz_iconv_trie_flat marc8r_9page230_flat[] = { + {"\x84", 0, 0x21557E}, /* East Asian ideograph */ + {"\xAA", 0, 0x215621}, /* East Asian ideograph */ + {"\x9B", 0, 0x215623}, /* East Asian ideograph */ + {"\x91", 0, 0x215624}, /* East Asian ideograph */ + {"\x94", 0, 0x215626}, /* East Asian ideograph */ + {"\x9C", 0, 0x215627}, /* East Asian ideograph */ + {"\x87", 0, 0x215628}, /* East Asian ideograph */ + {"\xA9", 0, 0x21562A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21562C}, /* East Asian ideograph */ + {"\xB0", 0, 0x21562F}, /* East Asian ideograph */ + {"\x8C", 0, 0x232577}, /* East Asian ideograph */ + {"\x80", 0, 0x232625}, /* East Asian ideograph */ + {"\x8F", 0, 0x232628}, /* East Asian ideograph */ + {"\x98", 0, 0x232635}, /* East Asian ideograph */ + {"\xA4", 0, 0x23263D}, /* East Asian ideograph */ + {"\x97", 0, 0x232644}, /* East Asian ideograph */ + {"\xA8", 0, 0x232649}, /* East Asian ideograph */ + {"\x86", 0, 0x23264E}, /* East Asian ideograph */ + {"\x99", 0, 0x232650}, /* East Asian ideograph */ + {"\x8A", 0, 0x232651}, /* East Asian ideograph */ + {"\xA2", 0, 0x232652}, /* East Asian ideograph */ + {"\x90", 0, 0x232654}, /* East Asian ideograph */ + {"\x85", 0, 0x232656}, /* East Asian ideograph */ + {"\x88", 0, 0x232657}, /* East Asian ideograph */ + {"\xB8", 0, 0x23265A}, /* East Asian ideograph */ + {"\xBA", 0, 0x232661}, /* East Asian ideograph */ + {"\xB7", 0, 0x23266B}, /* East Asian ideograph */ + {"\xB9", 0, 0x23266C}, /* East Asian ideograph */ + {"\xB3", 0, 0x23266E}, /* East Asian ideograph */ + {"\xBD", 0, 0x23266F}, /* East Asian ideograph */ + {"\xBF", 0, 0x232672}, /* East Asian ideograph */ + {"\xBE", 0, 0x232675}, /* East Asian ideograph */ + {"\xB6", 0, 0x23267E}, /* East Asian ideograph */ + {"\xAE", 0, 0x275632}, /* East Asian ideograph */ + {"\xAC", 0, 0x335635}, /* East Asian ideograph */ + {"\xA6", 0, 0x395477}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page230 = { + marc8r_9page230_flat, 0 +}; +/* PAGE 229 */ +struct yaz_iconv_trie_flat marc8r_9page229_flat[] = { + {"\xA9", 0, 0x215576}, /* East Asian ideograph */ + {"\x8A", 0, 0x215577}, /* East Asian ideograph */ + {"\x99", 0, 0x215578}, /* East Asian ideograph */ + {"\x88", 0, 0x215579}, /* East Asian ideograph */ + {"\xA8", 0, 0x21557A}, /* East Asian ideograph */ + {"\x83", 0, 0x21557B}, /* East Asian ideograph */ + {"\xAA", 0, 0x21557C}, /* East Asian ideograph */ + {"\x89", 0, 0x21557D}, /* East Asian ideograph */ + {"\xAD", 0, 0x215622}, /* East Asian ideograph */ + {"\xBE", 0, 0x215625}, /* East Asian ideograph */ + {"\x96", 0, 0x232536}, /* East Asian ideograph */ + {"\x81", 0, 0x232546}, /* East Asian ideograph */ + {"\x98", 0, 0x23254B}, /* East Asian ideograph */ + {"\x93", 0, 0x23254D}, /* East Asian ideograph */ + {"\xA1", 0, 0x23254E}, /* East Asian ideograph */ + {"\x80", 0, 0x23254F}, /* East Asian ideograph */ + {"\x86", 0, 0x23255A}, /* East Asian ideograph */ + {"\xA4", 0, 0x23255C}, /* East Asian ideograph */ + {"\x9E", 0, 0x23255D}, /* East Asian ideograph */ + {"\xB3", 0, 0x23255E}, /* East Asian ideograph */ + {"\x91", 0, 0x23255F}, /* East Asian ideograph */ + {"\xA2", 0, 0x232564}, /* East Asian ideograph */ + {"\xA3", 0, 0x23256B}, /* East Asian ideograph */ + {"\x82", 0, 0x23256D}, /* East Asian ideograph */ + {"\x8E", 0, 0x232571}, /* East Asian ideograph */ + {"\x95", 0, 0x232574}, /* East Asian ideograph */ + {"\x9D", 0, 0x232576}, /* East Asian ideograph */ + {"\xB9", 0, 0x23262D}, /* East Asian ideograph */ + {"\xBF", 0, 0x232632}, /* East Asian ideograph */ + {"\xB7", 0, 0x232633}, /* East Asian ideograph */ + {"\xB8", 0, 0x232634}, /* East Asian ideograph */ + {"\xBB", 0, 0x232636}, /* East Asian ideograph */ + {"\xBA", 0, 0x232642}, /* East Asian ideograph */ + {"\x97", 0, 0x232645}, /* East Asian ideograph */ + {"\xB4", 0, 0x27563D}, /* East Asian ideograph */ + {"\xB2", 0, 0x292768}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D5554}, /* East Asian ideograph */ + {"\x8B", 0, 0x395577}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page229 = { + marc8r_9page229_flat, 0 +}; +/* PAGE 228 */ +struct yaz_iconv_trie_flat marc8r_9page228_flat[] = { + {"\xBD", 0, 0x215568}, /* East Asian ideograph */ + {"\x97", 0, 0x21556A}, /* East Asian ideograph */ + {"\x9A", 0, 0x21556B}, /* East Asian ideograph */ + {"\xAC", 0, 0x21556D}, /* East Asian ideograph */ + {"\xAD", 0, 0x21556E}, /* East Asian ideograph */ + {"\x93", 0, 0x21556F}, /* East Asian ideograph */ + {"\xA3", 0, 0x215571}, /* East Asian ideograph */ + {"\xA1", 0, 0x215572}, /* East Asian ideograph */ + {"\x94", 0, 0x215573}, /* East Asian ideograph */ + {"\xA5", 0, 0x215575}, /* East Asian ideograph */ + {"\x86", 0, 0x232446}, /* East Asian ideograph */ + {"\x8B", 0, 0x232447}, /* East Asian ideograph */ + {"\x80", 0, 0x23244D}, /* East Asian ideograph */ + {"\x9F", 0, 0x232459}, /* East Asian ideograph */ + {"\xBB", 0, 0x23245C}, /* East Asian ideograph */ + {"\x8C", 0, 0x23246A}, /* East Asian ideograph */ + {"\xAF", 0, 0x232472}, /* East Asian ideograph */ + {"\x95", 0, 0x232475}, /* East Asian ideograph */ + {"\x9E", 0, 0x232524}, /* East Asian ideograph */ + {"\x98", 0, 0x23252A}, /* East Asian ideograph */ + {"\xA6", 0, 0x23252D}, /* East Asian ideograph */ + {"\x87", 0, 0x23252E}, /* East Asian ideograph (variant of EACC 2F252E) */ + {"\xB7", 0, 0x275626}, /* East Asian ideograph */ + {"\xBC", 0, 0x275637}, /* East Asian ideograph */ + {"\xBA", 0, 0x275639}, /* East Asian ideograph */ + {"\xB9", 0, 0x29282A}, /* East Asian ideograph */ + {"\x91", 0, 0x292D51}, /* East Asian ideograph */ + {"\x87", 0, 0x2F252E}, /* East Asian ideograph */ + {"\xB4", 0, 0x33625F}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B562B}, /* East Asian ideograph */ + {"\xB8", 0, 0x4C4146}, /* East Asian ideograph */ + {"\xAB", 0, 0x51496B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page228 = { + marc8r_9page228_flat, 0 +}; +/* PAGE 227 */ +struct yaz_iconv_trie_flat marc8r_9page227_flat[] = { + {"\x86", 0, 0x21555D}, /* East Asian ideograph */ + {"\x84", 0, 0x21555E}, /* East Asian ideograph */ + {"\x89", 0, 0x21555F}, /* East Asian ideograph */ + {"\x8B", 0, 0x215561}, /* East Asian ideograph */ + {"\x80", 0, 0x215563}, /* East Asian ideograph */ + {"\x93", 0, 0x215565}, /* East Asian ideograph */ + {"\xBF", 0, 0x215569}, /* East Asian ideograph */ + {"\xAE", 0, 0x21556C}, /* East Asian ideograph */ + {"\xAC", 0, 0x215574}, /* East Asian ideograph */ + {"\x81", 0, 0x23235E}, /* East Asian ideograph */ + {"\x8D", 0, 0x232368}, /* East Asian ideograph */ + {"\x90", 0, 0x232372}, /* East Asian ideograph */ + {"\x87", 0, 0x232379}, /* East Asian ideograph */ + {"\x82", 0, 0x23237C}, /* East Asian ideograph */ + {"\x96", 0, 0x232433}, /* East Asian ideograph */ + {"\x9A", 0, 0x232435}, /* East Asian ideograph */ + {"\x8F", 0, 0x23243F}, /* East Asian ideograph */ + {"\x8A", 0, 0x232441}, /* East Asian ideograph */ + {"\xAA", 0, 0x23245F}, /* East Asian ideograph */ + {"\xB4", 0, 0x232466}, /* East Asian ideograph */ + {"\xB7", 0, 0x232477}, /* East Asian ideograph */ + {"\xBC", 0, 0x23247A}, /* East Asian ideograph */ + {"\xAB", 0, 0x23247C}, /* East Asian ideograph */ + {"\xBD", 0, 0x23247D}, /* East Asian ideograph */ + {"\xA7", 0, 0x23252F}, /* East Asian ideograph */ + {"\xB0", 0, 0x232534}, /* East Asian ideograph */ + {"\xAF", 0, 0x232535}, /* East Asian ideograph */ + {"\x9D", 0, 0x275629}, /* East Asian ideograph */ + {"\xA6", 0, 0x276148}, /* East Asian ideograph */ + {"\xA3", 0, 0x292633}, /* East Asian ideograph */ + {"\x9F", 0, 0x292651}, /* East Asian ideograph */ + {"\xA0", 0, 0x292840}, /* East Asian ideograph */ + {"\xA5", 0, 0x294629}, /* East Asian ideograph */ + {"\x91", 0, 0x2D5036}, /* East Asian ideograph */ + {"\xA1", 0, 0x3F347D}, /* East Asian ideograph */ + {"\x99", 0, 0x696868}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page227 = { + marc8r_9page227_flat, 0 +}; +/* PAGE 226 */ +struct yaz_iconv_trie_flat marc8r_9page226_flat[] = { + {"\xB5", 0, 0x21554C}, /* East Asian ideograph */ + {"\xA6", 0, 0x21554D}, /* East Asian ideograph */ + {"\x97", 0, 0x21554E}, /* East Asian ideograph */ + {"\x89", 0, 0x21554F}, /* East Asian ideograph */ + {"\xAC", 0, 0x215550}, /* East Asian ideograph */ + {"\xAB", 0, 0x215551}, /* East Asian ideograph */ + {"\x9B", 0, 0x215552}, /* East Asian ideograph */ + {"\xB7", 0, 0x215553}, /* East Asian ideograph */ + {"\xA1", 0, 0x215556}, /* East Asian ideograph */ + {"\xA3", 0, 0x215557}, /* East Asian ideograph */ + {"\xA9", 0, 0x215558}, /* East Asian ideograph */ + {"\x93", 0, 0x232248}, /* East Asian ideograph */ + {"\xB6", 0, 0x23224D}, /* East Asian ideograph */ + {"\xB9", 0, 0x23224E}, /* East Asian ideograph */ + {"\x91", 0, 0x23225C}, /* East Asian ideograph */ + {"\xBD", 0, 0x23225F}, /* East Asian ideograph */ + {"\x9A", 0, 0x232262}, /* East Asian ideograph */ + {"\x99", 0, 0x232266}, /* East Asian ideograph */ + {"\xB3", 0, 0x232269}, /* East Asian ideograph */ + {"\xAD", 0, 0x232271}, /* East Asian ideograph */ + {"\xBA", 0, 0x232278}, /* East Asian ideograph */ + {"\xB8", 0, 0x23227C}, /* East Asian ideograph */ + {"\x9C", 0, 0x232329}, /* East Asian ideograph */ + {"\xB1", 0, 0x232332}, /* East Asian ideograph */ + {"\x9F", 0, 0x232335}, /* East Asian ideograph */ + {"\xA0", 0, 0x232336}, /* East Asian ideograph */ + {"\xAE", 0, 0x232337}, /* East Asian ideograph */ + {"\x86", 0, 0x23233A}, /* East Asian ideograph */ + {"\x92", 0, 0x23233C}, /* East Asian ideograph */ + {"\x8A", 0, 0x23233F}, /* East Asian ideograph */ + {"\x8E", 0, 0x232345}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D5635}, /* East Asian ideograph */ + {"\xA2", 0, 0x335561}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page226 = { + marc8r_9page226_flat, 0 +}; +/* PAGE 225 */ +struct yaz_iconv_trie_flat marc8r_9page225_flat[] = { + {"\x82", 0, 0x21554A}, /* East Asian ideograph */ + {"\xB2", 0, 0x21555A}, /* East Asian ideograph */ + {"\x9E", 0, 0x21555B}, /* East Asian ideograph */ + {"\xBF", 0, 0x21555C}, /* East Asian ideograph */ + {"\x9C", 0, 0x215560}, /* East Asian ideograph */ + {"\xB8", 0, 0x215562}, /* East Asian ideograph */ + {"\x99", 0, 0x215564}, /* East Asian ideograph */ + {"\x90", 0, 0x215566}, /* East Asian ideograph */ + {"\xBC", 0, 0x215567}, /* East Asian ideograph */ + {"\x8E", 0, 0x23224A}, /* East Asian ideograph */ + {"\x84", 0, 0x23227B}, /* East Asian ideograph */ + {"\x97", 0, 0x232349}, /* East Asian ideograph */ + {"\xA1", 0, 0x232350}, /* East Asian ideograph */ + {"\x9F", 0, 0x232353}, /* East Asian ideograph */ + {"\xBA", 0, 0x232356}, /* East Asian ideograph */ + {"\xB9", 0, 0x232358}, /* East Asian ideograph */ + {"\xB4", 0, 0x23235C}, /* East Asian ideograph */ + {"\xBB", 0, 0x23235F}, /* East Asian ideograph */ + {"\xB1", 0, 0x232370}, /* East Asian ideograph */ + {"\x9D", 0, 0x232371}, /* East Asian ideograph */ + {"\x94", 0, 0x232375}, /* East Asian ideograph */ + {"\xBD", 0, 0x23237A}, /* East Asian ideograph */ + {"\x95", 0, 0x232421}, /* East Asian ideograph */ + {"\xAF", 0, 0x232427}, /* East Asian ideograph */ + {"\xAD", 0, 0x232429}, /* East Asian ideograph */ + {"\xA8", 0, 0x232432}, /* East Asian ideograph */ + {"\x93", 0, 0x23243A}, /* East Asian ideograph */ + {"\x8D", 0, 0x23256C}, /* East Asian ideograph */ + {"\x8B", 0, 0x275571}, /* East Asian ideograph */ + {"\x8C", 0, 0x292524}, /* East Asian ideograph */ + {"\x87", 0, 0x29255A}, /* East Asian ideograph */ + {"\x89", 0, 0x292564}, /* East Asian ideograph */ + {"\x88", 0, 0x705D5C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page225 = { + marc8r_9page225_flat, 0 +}; +/* PAGE 224 */ +struct yaz_iconv_trie_flat marc8r_9page224_flat[] = { + {"\xA0", 0, 0x215535}, /* East Asian ideograph */ + {"\xA9", 0, 0x215536}, /* East Asian ideograph */ + {"\x85", 0, 0x215539}, /* East Asian ideograph */ + {"\x81", 0, 0x21553A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21553C}, /* East Asian ideograph */ + {"\xB1", 0, 0x21553E}, /* East Asian ideograph */ + {"\x8C", 0, 0x215543}, /* East Asian ideograph */ + {"\x9C", 0, 0x215544}, /* East Asian ideograph */ + {"\x8A", 0, 0x215545}, /* East Asian ideograph */ + {"\xB2", 0, 0x215546}, /* East Asian ideograph */ + {"\x8F", 0, 0x227E41}, /* East Asian ideograph */ + {"\xB9", 0, 0x227E43}, /* East Asian ideograph */ + {"\xAA", 0, 0x227E52}, /* East Asian ideograph */ + {"\xBC", 0, 0x227E56}, /* East Asian ideograph */ + {"\xB6", 0, 0x227E57}, /* East Asian ideograph */ + {"\xA1", 0, 0x227E5A}, /* East Asian ideograph */ + {"\x86", 0, 0x227E60}, /* East Asian ideograph */ + {"\xAB", 0, 0x227E63}, /* East Asian ideograph */ + {"\xA2", 0, 0x227E6B}, /* East Asian ideograph */ + {"\x98", 0, 0x227E71}, /* East Asian ideograph */ + {"\xA5", 0, 0x227E72}, /* East Asian ideograph */ + {"\x8E", 0, 0x227E79}, /* East Asian ideograph */ + {"\x93", 0, 0x227E7B}, /* East Asian ideograph */ + {"\x96", 0, 0x227E7D}, /* East Asian ideograph */ + {"\xBD", 0, 0x232223}, /* East Asian ideograph */ + {"\x89", 0, 0x232229}, /* East Asian ideograph */ + {"\x9F", 0, 0x23222A}, /* East Asian ideograph */ + {"\xB3", 0, 0x23223C}, /* East Asian ideograph */ + {"\x91", 0, 0x232243}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D3C49}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D3C7C}, /* East Asian ideograph */ + {"\x80", 0, 0x2D546F}, /* East Asian ideograph */ + {"\x94", 0, 0x2D5573}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D625F}, /* East Asian ideograph */ + {"\xB0", 0, 0x2E7D24}, /* East Asian ideograph */ + {"\x87", 0, 0x347D24}, /* East Asian ideograph */ + {"\x9D", 0, 0x395568}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B496B}, /* East Asian ideograph */ + {"\x81", 0, 0x4B553A}, /* East Asian ideograph (variant of EACC 21553A) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page224 = { + marc8r_9page224_flat, 0 +}; +/* PAGE 223 */ +struct yaz_iconv_trie_flat marc8r_9page223_flat[] = { + {"\x8E", 0, 0x215524}, /* East Asian ideograph */ + {"\x98", 0, 0x215525}, /* East Asian ideograph */ + {"\x9E", 0, 0x215526}, /* East Asian ideograph */ + {"\xA2", 0, 0x215528}, /* East Asian ideograph */ + {"\x96", 0, 0x215529}, /* East Asian ideograph */ + {"\xA7", 0, 0x21552A}, /* East Asian ideograph */ + {"\xAB", 0, 0x21552B}, /* East Asian ideograph */ + {"\x92", 0, 0x21552C}, /* East Asian ideograph (variant of EACC 4B552C) */ + {"\x8A", 0, 0x21552D}, /* East Asian ideograph */ + {"\x93", 0, 0x21552E}, /* East Asian ideograph */ + {"\xA0", 0, 0x21552F}, /* East Asian ideograph */ + {"\x89", 0, 0x215530}, /* East Asian ideograph */ + {"\xBD", 0, 0x21553F}, /* East Asian ideograph */ + {"\xA8", 0, 0x227D62}, /* East Asian ideograph */ + {"\xAD", 0, 0x227D67}, /* East Asian ideograph */ + {"\xB0", 0, 0x227D72}, /* East Asian ideograph */ + {"\x8F", 0, 0x227D7A}, /* East Asian ideograph */ + {"\x95", 0, 0x227D7C}, /* East Asian ideograph */ + {"\x99", 0, 0x227E22}, /* East Asian ideograph */ + {"\xA6", 0, 0x227E23}, /* East Asian ideograph */ + {"\x87", 0, 0x227E25}, /* East Asian ideograph */ + {"\xB9", 0, 0x227E26}, /* East Asian ideograph */ + {"\xA9", 0, 0x227E2B}, /* East Asian ideograph */ + {"\x9B", 0, 0x227E2F}, /* East Asian ideograph */ + {"\xAA", 0, 0x227E33}, /* East Asian ideograph */ + {"\x9C", 0, 0x227E37}, /* East Asian ideograph */ + {"\x9F", 0, 0x227E38}, /* East Asian ideograph */ + {"\xBF", 0, 0x227E6A}, /* East Asian ideograph */ + {"\x9A", 0, 0x232236}, /* East Asian ideograph */ + {"\xB7", 0, 0x274B29}, /* East Asian ideograph */ + {"\xB7", 0, 0x274F4B}, /* East Asian ideograph (duplicate simplified) */ + {"\xB1", 0, 0x275541}, /* East Asian ideograph */ + {"\xB4", 0, 0x275555}, /* East Asian ideograph */ + {"\xB2", 0, 0x27556C}, /* East Asian ideograph */ + {"\xBA", 0, 0x276247}, /* East Asian ideograph */ + {"\xB3", 0, 0x292375}, /* East Asian ideograph */ + {"\xBC", 0, 0x29243A}, /* East Asian ideograph */ + {"\xB8", 0, 0x292574}, /* East Asian ideograph */ + {"\xB6", 0, 0x292658}, /* East Asian ideograph */ + {"\x86", 0, 0x2D555A}, /* East Asian ideograph */ + {"\x85", 0, 0x2D555B}, /* East Asian ideograph */ + {"\x92", 0, 0x4B552C}, /* East Asian ideograph */ + {"\xBD", 0, 0x4B553F}, /* East Asian ideograph (variant of EACC 21553F) */ + {"\xB5", 0, 0x4D222A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page223 = { + marc8r_9page223_flat, 0 +}; +/* PAGE 222 */ +struct yaz_iconv_trie_flat marc8r_9page222_flat[] = { + {"\x92", 0, 0x215473}, /* East Asian ideograph */ + {"\x8A", 0, 0x215474}, /* East Asian ideograph */ + {"\x94", 0, 0x215476}, /* East Asian ideograph */ + {"\x90", 0, 0x215477}, /* East Asian ideograph */ + {"\x89", 0, 0x215478}, /* East Asian ideograph */ + {"\x80", 0, 0x21547D}, /* East Asian ideograph */ + {"\x8F", 0, 0x215522}, /* East Asian ideograph */ + {"\xB8", 0, 0x215527}, /* East Asian ideograph */ + {"\xB7", 0, 0x215531}, /* East Asian ideograph */ + {"\xBC", 0, 0x215532}, /* East Asian ideograph */ + {"\xBB", 0, 0x215533}, /* East Asian ideograph */ + {"\x84", 0, 0x227D2B}, /* East Asian ideograph */ + {"\x91", 0, 0x227D2E}, /* East Asian ideograph */ + {"\x96", 0, 0x227D3B}, /* East Asian ideograph */ + {"\x8D", 0, 0x227D4A}, /* East Asian ideograph */ + {"\x83", 0, 0x227D4D}, /* East Asian ideograph (variant of EACC 4C7D4D) */ + {"\x88", 0, 0x227D53}, /* East Asian ideograph */ + {"\x87", 0, 0x227D5F}, /* East Asian ideograph */ + {"\xB3", 0, 0x227D6D}, /* East Asian ideograph */ + {"\xB5", 0, 0x227D7E}, /* East Asian ideograph */ + {"\xBF", 0, 0x227E21}, /* East Asian ideograph */ + {"\xA3", 0, 0x274537}, /* East Asian ideograph */ + {"\xA6", 0, 0x274A5E}, /* East Asian ideograph */ + {"\x85", 0, 0x275023}, /* East Asian ideograph */ + {"\x9A", 0, 0x275528}, /* East Asian ideograph */ + {"\xA4", 0, 0x275553}, /* East Asian ideograph */ + {"\xAA", 0, 0x275563}, /* East Asian ideograph */ + {"\xAB", 0, 0x27556E}, /* East Asian ideograph */ + {"\xA1", 0, 0x275576}, /* East Asian ideograph */ + {"\xAF", 0, 0x275635}, /* East Asian ideograph */ + {"\xA5", 0, 0x284B43}, /* East Asian ideograph */ + {"\xA7", 0, 0x285323}, /* East Asian ideograph */ + {"\xAD", 0, 0x29233C}, /* East Asian ideograph */ + {"\xAE", 0, 0x29233D}, /* East Asian ideograph */ + {"\x9C", 0, 0x29247D}, /* East Asian ideograph */ + {"\xA8", 0, 0x292546}, /* East Asian ideograph */ + {"\x9B", 0, 0x29254B}, /* East Asian ideograph */ + {"\xAC", 0, 0x292567}, /* East Asian ideograph */ + {"\x9E", 0, 0x292571}, /* East Asian ideograph */ + {"\x9F", 0, 0x292657}, /* East Asian ideograph */ + {"\xA0", 0, 0x292661}, /* East Asian ideograph */ + {"\xA9", 0, 0x292668}, /* East Asian ideograph */ + {"\x98", 0, 0x2D552D}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D5547}, /* East Asian ideograph */ + {"\x83", 0, 0x4C7D4D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page222 = { + marc8r_9page222_flat, 0 +}; +/* PAGE 221 */ +struct yaz_iconv_trie_flat marc8r_9page221_flat[] = { + {"\x85", 0, 0x215461}, /* East Asian ideograph */ + {"\x89", 0, 0x215462}, /* East Asian ideograph */ + {"\x84", 0, 0x215466}, /* East Asian ideograph */ + {"\x82", 0, 0x215468}, /* East Asian ideograph */ + {"\x81", 0, 0x21546C}, /* East Asian ideograph */ + {"\xAB", 0, 0x215472}, /* East Asian ideograph */ + {"\xB8", 0, 0x215475}, /* East Asian ideograph */ + {"\xB5", 0, 0x215479}, /* East Asian ideograph */ + {"\xB4", 0, 0x21547A}, /* East Asian ideograph */ + {"\xB6", 0, 0x21547B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21547C}, /* East Asian ideograph */ + {"\x97", 0, 0x21547E}, /* East Asian ideograph */ + {"\xB9", 0, 0x215523}, /* East Asian ideograph */ + {"\x80", 0, 0x227C5C}, /* East Asian ideograph */ + {"\xBA", 0, 0x227C63}, /* East Asian ideograph */ + {"\x87", 0, 0x227C67}, /* East Asian ideograph */ + {"\x94", 0, 0x227C6E}, /* East Asian ideograph */ + {"\x90", 0, 0x227C7B}, /* East Asian ideograph */ + {"\x8C", 0, 0x227D21}, /* East Asian ideograph */ + {"\xB3", 0, 0x227D26}, /* East Asian ideograph */ + {"\xA8", 0, 0x227D29}, /* East Asian ideograph */ + {"\x9B", 0, 0x227D35}, /* East Asian ideograph */ + {"\xA2", 0, 0x227D3F}, /* East Asian ideograph */ + {"\xAC", 0, 0x227D40}, /* East Asian ideograph */ + {"\xBC", 0, 0x227D48}, /* East Asian ideograph */ + {"\xAF", 0, 0x227D52}, /* East Asian ideograph */ + {"\x92", 0, 0x227D54}, /* East Asian ideograph */ + {"\x96", 0, 0x227D56}, /* East Asian ideograph */ + {"\x9A", 0, 0x227D58}, /* East Asian ideograph */ + {"\x9D", 0, 0x227D76}, /* East Asian ideograph */ + {"\xAD", 0, 0x27447C}, /* East Asian ideograph */ + {"\x83", 0, 0x275030}, /* East Asian ideograph */ + {"\xA7", 0, 0x275177}, /* East Asian ideograph */ + {"\x8E", 0, 0x275529}, /* East Asian ideograph */ + {"\x91", 0, 0x29252D}, /* East Asian ideograph */ + {"\x8F", 0, 0x292752}, /* East Asian ideograph */ + {"\x88", 0, 0x2D4450}, /* East Asian ideograph */ + {"\x86", 0, 0x2D5461}, /* East Asian ideograph */ + {"\x98", 0, 0x2D5476}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D5529}, /* East Asian ideograph (variant of EACC 275529) */ + {"\x9C", 0, 0x2E7C2E}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B5521}, /* East Asian ideograph */ + {"\x95", 0, 0x4C5175}, /* East Asian ideograph */ + {"\xA3", 0, 0x4C7D6A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page221 = { + marc8r_9page221_flat, 0 +}; +/* PAGE 220 */ +struct yaz_iconv_trie_flat marc8r_9page220_flat[] = { + {"\xA7", 0, 0x215460}, /* East Asian ideograph */ + {"\xA3", 0, 0x215463}, /* East Asian ideograph */ + {"\x9B", 0, 0x215464}, /* East Asian ideograph */ + {"\xA6", 0, 0x215465}, /* East Asian ideograph */ + {"\xA5", 0, 0x215467}, /* East Asian ideograph */ + {"\x9C", 0, 0x215469}, /* East Asian ideograph */ + {"\x97", 0, 0x21546A}, /* East Asian ideograph */ + {"\xB1", 0, 0x21546B}, /* East Asian ideograph */ + {"\x93", 0, 0x21546D}, /* East Asian ideograph */ + {"\x94", 0, 0x21546E}, /* East Asian ideograph */ + {"\x91", 0, 0x21546F}, /* East Asian ideograph */ + {"\x9E", 0, 0x215470}, /* East Asian ideograph */ + {"\x9F", 0, 0x215471}, /* East Asian ideograph */ + {"\x99", 0, 0x227C55}, /* East Asian ideograph */ + {"\xBE", 0, 0x227C57}, /* East Asian ideograph */ + {"\xA0", 0, 0x227C5A}, /* East Asian ideograph */ + {"\x90", 0, 0x227C5B}, /* East Asian ideograph */ + {"\xAA", 0, 0x227C5F}, /* East Asian ideograph */ + {"\xB7", 0, 0x227C60}, /* East Asian ideograph */ + {"\xAF", 0, 0x227C62}, /* East Asian ideograph */ + {"\xA4", 0, 0x227C64}, /* East Asian ideograph */ + {"\x95", 0, 0x227C65}, /* East Asian ideograph */ + {"\xBA", 0, 0x227C68}, /* East Asian ideograph */ + {"\xB4", 0, 0x227C69}, /* East Asian ideograph */ + {"\xA2", 0, 0x227C6A}, /* East Asian ideograph */ + {"\x92", 0, 0x227C6D}, /* East Asian ideograph */ + {"\xAB", 0, 0x227C71}, /* East Asian ideograph */ + {"\x98", 0, 0x227C72}, /* East Asian ideograph */ + {"\xA1", 0, 0x227C73}, /* East Asian ideograph */ + {"\xB6", 0, 0x227C75}, /* East Asian ideograph */ + {"\xB3", 0, 0x227C7C}, /* East Asian ideograph */ + {"\xBB", 0, 0x227D22}, /* East Asian ideograph */ + {"\xBD", 0, 0x227D24}, /* East Asian ideograph */ + {"\x8B", 0, 0x27552A}, /* East Asian ideograph */ + {"\x87", 0, 0x27554D}, /* East Asian ideograph */ + {"\x8E", 0, 0x275564}, /* East Asian ideograph */ + {"\x8D", 0, 0x275567}, /* East Asian ideograph */ + {"\xB9", 0, 0x27563B}, /* East Asian ideograph */ + {"\x8F", 0, 0x27563C}, /* East Asian ideograph */ + {"\x8C", 0, 0x287E61}, /* East Asian ideograph */ + {"\x81", 0, 0x292535}, /* East Asian ideograph */ + {"\x88", 0, 0x292765}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D552E}, /* East Asian ideograph (variant of EACC 227C68) */ + {"\x85", 0, 0x4B3354}, /* East Asian ideograph */ + {"\x93", 0, 0x4B546D}, /* East Asian ideograph (variant of EACC 21546D) */ + {"\x8A", 0, 0x705C43}, /* East Asian ideograph */ + {"\x84", 0, 0x705C50}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page220 = { + marc8r_9page220_flat, 0 +}; +/* PAGE 219 */ +struct yaz_iconv_trie_flat marc8r_9page219_flat[] = { + {"\x92", 0, 0x215451}, /* East Asian ideograph */ + {"\x8B", 0, 0x215452}, /* East Asian ideograph */ + {"\x8D", 0, 0x215453}, /* East Asian ideograph */ + {"\xB3", 0, 0x215454}, /* East Asian ideograph */ + {"\x9D", 0, 0x215455}, /* East Asian ideograph */ + {"\x99", 0, 0x215456}, /* East Asian ideograph */ + {"\xBD", 0, 0x215457}, /* East Asian ideograph */ + {"\xAD", 0, 0x215458}, /* East Asian ideograph */ + {"\xAC", 0, 0x215459}, /* East Asian ideograph */ + {"\xA5", 0, 0x21545A}, /* East Asian ideograph */ + {"\x9F", 0, 0x21545B}, /* East Asian ideograph */ + {"\xBB", 0, 0x21545C}, /* East Asian ideograph */ + {"\xB1", 0, 0x21545D}, /* East Asian ideograph */ + {"\xB9", 0, 0x21545E}, /* East Asian ideograph */ + {"\x88", 0, 0x216330}, /* East Asian ideograph */ + {"\x8E", 0, 0x227C24}, /* East Asian ideograph */ + {"\x91", 0, 0x227C25}, /* East Asian ideograph */ + {"\x8F", 0, 0x227C27}, /* East Asian ideograph */ + {"\x84", 0, 0x227C28}, /* East Asian ideograph */ + {"\x83", 0, 0x227C2D}, /* East Asian ideograph */ + {"\x8A", 0, 0x227C2E}, /* East Asian ideograph */ + {"\xAF", 0, 0x227C31}, /* East Asian ideograph */ + {"\xA7", 0, 0x227C34}, /* East Asian ideograph */ + {"\xAB", 0, 0x227C38}, /* East Asian ideograph */ + {"\xB0", 0, 0x227C3A}, /* East Asian ideograph */ + {"\xA4", 0, 0x227C3C}, /* East Asian ideograph */ + {"\x9A", 0, 0x227C3F}, /* East Asian ideograph */ + {"\xA3", 0, 0x227C42}, /* East Asian ideograph */ + {"\xB7", 0, 0x227C44}, /* East Asian ideograph */ + {"\xAE", 0, 0x227C45}, /* East Asian ideograph (variant of EACC 4C7C45) */ + {"\xA9", 0, 0x227C46}, /* East Asian ideograph */ + {"\xBC", 0, 0x227C49}, /* East Asian ideograph */ + {"\xA8", 0, 0x227C4C}, /* East Asian ideograph */ + {"\xB4", 0, 0x227C4E}, /* East Asian ideograph */ + {"\xA1", 0, 0x227C50}, /* East Asian ideograph */ + {"\xAA", 0, 0x227C53}, /* East Asian ideograph */ + {"\x82", 0, 0x275033}, /* East Asian ideograph */ + {"\x98", 0, 0x275568}, /* East Asian ideograph */ + {"\x9C", 0, 0x27557C}, /* East Asian ideograph */ + {"\xA6", 0, 0x27563A}, /* East Asian ideograph */ + {"\x98", 0, 0x292433}, /* East Asian ideograph (duplicate simplified) */ + {"\x97", 0, 0x292577}, /* East Asian ideograph */ + {"\x98", 0, 0x2D3C6D}, /* East Asian ideograph (duplicate simplified) */ + {"\xBE", 0, 0x355E76}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B5631}, /* East Asian ideograph */ + {"\xA6", 0, 0x4B563A}, /* East Asian ideograph (variant of EACC 27563A) */ + {"\xAE", 0, 0x4C7C45}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page219 = { + marc8r_9page219_flat, 0 +}; +/* PAGE 218 */ +struct yaz_iconv_trie_flat marc8r_9page218_flat[] = { + {"\x87", 0, 0x215448}, /* East Asian ideograph */ + {"\x98", 0, 0x215449}, /* East Asian ideograph */ + {"\x99", 0, 0x21544A}, /* East Asian ideograph */ + {"\xA6", 0, 0x21544B}, /* East Asian ideograph */ + {"\xAE", 0, 0x21544C}, /* East Asian ideograph */ + {"\xAF", 0, 0x21544D}, /* East Asian ideograph */ + {"\xB1", 0, 0x21544E}, /* East Asian ideograph */ + {"\xB2", 0, 0x21544F}, /* East Asian ideograph */ + {"\xBE", 0, 0x215450}, /* East Asian ideograph */ + {"\x88", 0, 0x227B42}, /* East Asian ideograph */ + {"\x89", 0, 0x227B43}, /* East Asian ideograph */ + {"\x84", 0, 0x227B45}, /* East Asian ideograph */ + {"\x80", 0, 0x227B47}, /* East Asian ideograph */ + {"\x81", 0, 0x227B48}, /* East Asian ideograph */ + {"\x85", 0, 0x227B4A}, /* East Asian ideograph */ + {"\x8B", 0, 0x227B4B}, /* East Asian ideograph */ + {"\x8F", 0, 0x227B50}, /* East Asian ideograph */ + {"\x8E", 0, 0x227B53}, /* East Asian ideograph */ + {"\x96", 0, 0x227B56}, /* East Asian ideograph */ + {"\x97", 0, 0x227B57}, /* East Asian ideograph */ + {"\x9A", 0, 0x227B5E}, /* East Asian ideograph */ + {"\x9F", 0, 0x227B62}, /* East Asian ideograph */ + {"\xA2", 0, 0x227B67}, /* East Asian ideograph */ + {"\xA8", 0, 0x227B6B}, /* East Asian ideograph */ + {"\xAD", 0, 0x227B6F}, /* East Asian ideograph */ + {"\xB8", 0, 0x227B77}, /* East Asian ideograph */ + {"\xBF", 0, 0x227B7D}, /* East Asian ideograph */ + {"\xB0", 0, 0x27544E}, /* East Asian ideograph */ + {"\xBA", 0, 0x275631}, /* East Asian ideograph */ + {"\xBD", 0, 0x276030}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D342E}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D5447}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D5959}, /* East Asian ideograph */ + {"\xAA", 0, 0x33456D}, /* East Asian ideograph */ + {"\xA4", 0, 0x344177}, /* East Asian ideograph */ + {"\xAB", 0, 0x39456D}, /* East Asian ideograph */ + {"\xA3", 0, 0x3F456D}, /* East Asian ideograph */ + {"\xB6", 0, 0x3F5959}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B5959}, /* East Asian ideograph */ + {"\x9D", 0, 0x69675C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page218 = { + marc8r_9page218_flat, 0 +}; +/* PAGE 217 */ +struct yaz_iconv_trie_dir marc8r_9page217_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21542F} /* East Asian ideograph */, + {0, 0, 0x227A72} /* East Asian ideograph */, + {0, 0, 0x215430} /* East Asian ideograph */, + {0, 0, 0x227A74} /* East Asian ideograph */, + {0, 0, 0x227A75} /* East Asian ideograph */, + {0, 0, 0x215431} /* East Asian ideograph */, + {0, 0, 0x275B53} /* East Asian ideograph */, + {0, 0, 0x215432} /* East Asian ideograph */, + {0, 0, 0x215433} /* East Asian ideograph */, + {0, 0, 0x215434} /* East Asian ideograph */, + {0, 0, 0x215435} /* East Asian ideograph */, + {0, 0, 0x227A77} /* East Asian ideograph */, + {0, 0, 0x215436} /* East Asian ideograph */, + {0, 0, 0x215437} /* East Asian ideograph */, + {0, 0, 0x4B5437} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215438} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215439} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21543A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x2D5D65} /* East Asian ideograph */, + {0, 0, 0x4B5D65} /* East Asian ideograph */, + {0, 0, 0x2D6079} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21543B} /* East Asian ideograph */, + {0, 0, 0x21543C} /* East Asian ideograph */, + {0, 0, 0x227B27} /* East Asian ideograph */, + {0, 0, 0x21543D} /* East Asian ideograph */, + {0, 0, 0x21543E} /* East Asian ideograph */, + {0, 0, 0x227B29} /* East Asian ideograph */, + {0, 0, 0x335446} /* East Asian ideograph */, + {0, 0, 0x21543F} /* East Asian ideograph */, + {0, 0, 0x4C4177} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215443} /* East Asian ideograph */, + {0, 0, 0x2D5446} /* East Asian ideograph */, + {0, 0, 0x215440} /* East Asian ideograph */, + {0, 0, 0x215441} /* East Asian ideograph */, + {0, 0, 0x215442} /* East Asian ideograph */, + {0, 0, 0x227B2E} /* East Asian ideograph */, + {0, 0, 0x51456D} /* East Asian ideograph */, + {0, 0, 0x227B2F} /* East Asian ideograph */, + {0, 0, 0x27544B} /* East Asian ideograph */, + {0, 0, 0x27544A} /* East Asian ideograph */, + {0, 0, 0x227B3A} /* East Asian ideograph */, + {0, 0, 0x227B35} /* East Asian ideograph */, + {0, 0, 0x227B36} /* East Asian ideograph */, + {0, 0, 0x215445} /* East Asian ideograph */, + {0, 0, 0x215447} /* East Asian ideograph */, + {0, 0, 0x215444} /* East Asian ideograph */, + {0, 0, 0x227B32} /* East Asian ideograph */, + {0, 0, 0x215446} /* East Asian ideograph */, + {0, 0, 0x227B34} /* East Asian ideograph */, + {0, 0, 0x4B456D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x707438} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page217 = { + 0, marc8r_9page217_dir +}; +/* PAGE 216 */ +struct yaz_iconv_trie_flat marc8r_9page216_flat[] = { + {"\x86", 0, 0x215373}, /* East Asian ideograph */ + {"\x83", 0, 0x215375}, /* East Asian ideograph */ + {"\x80", 0, 0x215376}, /* East Asian ideograph */ + {"\x82", 0, 0x215377}, /* East Asian ideograph */ + {"\x89", 0, 0x21537A}, /* East Asian ideograph */ + {"\x8D", 0, 0x21537C}, /* East Asian ideograph */ + {"\x8F", 0, 0x21537D}, /* East Asian ideograph */ + {"\x98", 0, 0x21537E}, /* East Asian ideograph */ + {"\x9A", 0, 0x215421}, /* East Asian ideograph */ + {"\x9F", 0, 0x215422}, /* East Asian ideograph */ + {"\xA3", 0, 0x215423}, /* East Asian ideograph */ + {"\xA5", 0, 0x215424}, /* East Asian ideograph */ + {"\xA8", 0, 0x215425}, /* East Asian ideograph */ + {"\xAA", 0, 0x215426}, /* East Asian ideograph */ + {"\xAC", 0, 0x215427}, /* East Asian ideograph */ + {"\xAD", 0, 0x215428}, /* East Asian ideograph */ + {"\xB3", 0, 0x215429}, /* East Asian ideograph */ + {"\xBA", 0, 0x21542B}, /* East Asian ideograph */ + {"\xBB", 0, 0x21542C}, /* East Asian ideograph */ + {"\xBC", 0, 0x21542D}, /* East Asian ideograph */ + {"\xBE", 0, 0x21542E}, /* East Asian ideograph */ + {"\x81", 0, 0x227A38}, /* East Asian ideograph */ + {"\x8C", 0, 0x227A39}, /* East Asian ideograph */ + {"\x8A", 0, 0x227A3A}, /* East Asian ideograph */ + {"\x84", 0, 0x227A3B}, /* East Asian ideograph */ + {"\x91", 0, 0x227A40}, /* East Asian ideograph */ + {"\x8E", 0, 0x227A41}, /* East Asian ideograph */ + {"\x90", 0, 0x227A43}, /* East Asian ideograph */ + {"\x9B", 0, 0x227A4B}, /* East Asian ideograph */ + {"\x9D", 0, 0x227A4F}, /* East Asian ideograph */ + {"\x9E", 0, 0x227A53}, /* East Asian ideograph */ + {"\xA0", 0, 0x227A56}, /* East Asian ideograph */ + {"\xA2", 0, 0x227A57}, /* East Asian ideograph */ + {"\xA7", 0, 0x227A5B}, /* East Asian ideograph */ + {"\xAF", 0, 0x227A60}, /* East Asian ideograph */ + {"\xB2", 0, 0x227A65}, /* East Asian ideograph */ + {"\xB6", 0, 0x227A68}, /* East Asian ideograph */ + {"\xB4", 0, 0x275163}, /* East Asian ideograph */ + {"\x88", 0, 0x2D537E}, /* East Asian ideograph */ + {"\x99", 0, 0x335347}, /* East Asian ideograph */ + {"\x95", 0, 0x3A7970}, /* East Asian ideograph */ + {"\x93", 0, 0x4B5422}, /* East Asian ideograph */ + {"\xAD", 0, 0x4B5428}, /* East Asian ideograph (variant of EACC 215428) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page216 = { + marc8r_9page216_flat, 0 +}; +/* PAGE 215 */ +struct yaz_iconv_trie_flat marc8r_9page215_flat[] = { + {"\x80", 0, 0x215366}, /* East Asian ideograph */ + {"\x8F", 0, 0x215367}, /* East Asian ideograph */ + {"\x8A", 0, 0x215369}, /* East Asian ideograph */ + {"\x88", 0, 0x21536A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21536B}, /* East Asian ideograph */ + {"\xA0", 0, 0x21536C}, /* East Asian ideograph */ + {"\x9B", 0, 0x21536D}, /* East Asian ideograph */ + {"\x9A", 0, 0x21536E}, /* East Asian ideograph */ + {"\x9C", 0, 0x21536F}, /* East Asian ideograph */ + {"\xB3", 0, 0x215370}, /* East Asian ideograph */ + {"\xA9", 0, 0x215371}, /* East Asian ideograph */ + {"\xA8", 0, 0x215372}, /* East Asian ideograph */ + {"\xBA", 0, 0x215374}, /* East Asian ideograph */ + {"\xBF", 0, 0x215378}, /* East Asian ideograph */ + {"\xBD", 0, 0x215379}, /* East Asian ideograph */ + {"\xBE", 0, 0x21537B}, /* East Asian ideograph */ + {"\x82", 0, 0x22794D}, /* East Asian ideograph */ + {"\x8B", 0, 0x227951}, /* East Asian ideograph */ + {"\x86", 0, 0x227952}, /* East Asian ideograph */ + {"\x83", 0, 0x227959}, /* East Asian ideograph */ + {"\x9F", 0, 0x22796A}, /* East Asian ideograph */ + {"\xA3", 0, 0x22796B}, /* East Asian ideograph */ + {"\x98", 0, 0x227970}, /* East Asian ideograph */ + {"\x95", 0, 0x227975}, /* East Asian ideograph */ + {"\x97", 0, 0x227977}, /* East Asian ideograph */ + {"\xAA", 0, 0x22797C}, /* East Asian ideograph */ + {"\xA6", 0, 0x22797D}, /* East Asian ideograph */ + {"\xB5", 0, 0x227A2C}, /* East Asian ideograph */ + {"\xB0", 0, 0x227A2E}, /* East Asian ideograph */ + {"\xB4", 0, 0x227A2F}, /* East Asian ideograph */ + {"\xB7", 0, 0x227A33}, /* East Asian ideograph */ + {"\xBB", 0, 0x227A37}, /* East Asian ideograph */ + {"\x91", 0, 0x27537D}, /* East Asian ideograph */ + {"\x93", 0, 0x2D535E}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B6159}, /* East Asian ideograph */ + {"\xA4", 0, 0x696733}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page215 = { + marc8r_9page215_flat, 0 +}; +/* PAGE 214 */ +struct yaz_iconv_trie_flat marc8r_9page214_flat[] = { + {"\x95", 0, 0x215353}, /* East Asian ideograph */ + {"\x94", 0, 0x215354}, /* East Asian ideograph */ + {"\x8B", 0, 0x215355}, /* East Asian ideograph */ + {"\x91", 0, 0x215356}, /* East Asian ideograph */ + {"\x90", 0, 0x215357}, /* East Asian ideograph */ + {"\x8E", 0, 0x215358}, /* East Asian ideograph */ + {"\x86", 0, 0x21535A}, /* East Asian ideograph */ + {"\xB1", 0, 0x21535C}, /* East Asian ideograph */ + {"\xB0", 0, 0x21535D}, /* East Asian ideograph */ + {"\xB8", 0, 0x21535E}, /* East Asian ideograph */ + {"\xA5", 0, 0x21535F}, /* East Asian ideograph */ + {"\xAE", 0, 0x215360}, /* East Asian ideograph */ + {"\xB3", 0, 0x215361}, /* East Asian ideograph */ + {"\xAB", 0, 0x215362}, /* East Asian ideograph */ + {"\xB9", 0, 0x215363}, /* East Asian ideograph */ + {"\xBA", 0, 0x215364}, /* East Asian ideograph */ + {"\xA6", 0, 0x215365}, /* East Asian ideograph */ + {"\xBF", 0, 0x215368}, /* East Asian ideograph */ + {"\x9A", 0, 0x22786A}, /* East Asian ideograph */ + {"\x88", 0, 0x22786D}, /* East Asian ideograph */ + {"\x8C", 0, 0x227877}, /* East Asian ideograph */ + {"\x93", 0, 0x22787C}, /* East Asian ideograph */ + {"\x81", 0, 0x22787D}, /* East Asian ideograph */ + {"\x8D", 0, 0x227925}, /* East Asian ideograph */ + {"\xA0", 0, 0x227932}, /* East Asian ideograph */ + {"\xA9", 0, 0x22793B}, /* East Asian ideograph */ + {"\xBC", 0, 0x22793C}, /* East Asian ideograph */ + {"\xA1", 0, 0x227941}, /* East Asian ideograph */ + {"\xB6", 0, 0x227946}, /* East Asian ideograph */ + {"\xB4", 0, 0x227947}, /* East Asian ideograph */ + {"\xA7", 0, 0x227948}, /* East Asian ideograph */ + {"\xAF", 0, 0x22794B}, /* East Asian ideograph */ + {"\xBB", 0, 0x275371}, /* East Asian ideograph */ + {"\x8A", 0, 0x27537E}, /* East Asian ideograph */ + {"\xBE", 0, 0x276144}, /* East Asian ideograph */ + {"\xBD", 0, 0x4C7959}, /* East Asian ideograph */ + {"\x9F", 0, 0x4C796B}, /* East Asian ideograph */ + {"\xAD", 0, 0x4D6047}, /* East Asian ideograph */ + {"\x99", 0, 0x706B6A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page214 = { + marc8r_9page214_flat, 0 +}; +/* PAGE 213 */ +struct yaz_iconv_trie_flat marc8r_9page213_flat[] = { + {"\x82", 0, 0x215343}, /* East Asian ideograph */ + {"\x85", 0, 0x215344}, /* East Asian ideograph */ + {"\x86", 0, 0x215349}, /* East Asian ideograph */ + {"\x8A", 0, 0x21534C}, /* East Asian ideograph */ + {"\x88", 0, 0x21534D}, /* East Asian ideograph */ + {"\xAB", 0, 0x21534E}, /* East Asian ideograph */ + {"\xAF", 0, 0x21534F}, /* East Asian ideograph */ + {"\x96", 0, 0x215350}, /* East Asian ideograph */ + {"\xA9", 0, 0x215352}, /* East Asian ideograph */ + {"\xB9", 0, 0x215359}, /* East Asian ideograph */ + {"\xBE", 0, 0x21535B}, /* East Asian ideograph */ + {"\x83", 0, 0x22783C}, /* East Asian ideograph */ + {"\x9D", 0, 0x227849}, /* East Asian ideograph */ + {"\x98", 0, 0x22784B}, /* East Asian ideograph */ + {"\xB0", 0, 0x227850}, /* East Asian ideograph */ + {"\xA4", 0, 0x227854}, /* East Asian ideograph */ + {"\x9B", 0, 0x227855}, /* East Asian ideograph */ + {"\xAA", 0, 0x227860}, /* East Asian ideograph */ + {"\x9E", 0, 0x227861}, /* East Asian ideograph */ + {"\xA1", 0, 0x227864}, /* East Asian ideograph */ + {"\x97", 0, 0x227866}, /* East Asian ideograph */ + {"\xBA", 0, 0x227869}, /* East Asian ideograph */ + {"\x89", 0, 0x27534D}, /* East Asian ideograph */ + {"\x91", 0, 0x275365}, /* East Asian ideograph */ + {"\x93", 0, 0x275378}, /* East Asian ideograph */ + {"\xB8", 0, 0x27537A}, /* East Asian ideograph */ + {"\x8D", 0, 0x27537B}, /* East Asian ideograph */ + {"\x90", 0, 0x27537C}, /* East Asian ideograph */ + {"\x8F", 0, 0x275422}, /* East Asian ideograph (duplicate simplified) */ + {"\x8F", 0, 0x27615B}, /* East Asian ideograph */ + {"\xB6", 0, 0x287941}, /* East Asian ideograph */ + {"\x94", 0, 0x287A56}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D5340}, /* East Asian ideograph */ + {"\x87", 0, 0x2D5344}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D5361}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D6F7D}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B3B52}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B5365}, /* East Asian ideograph */ + {"\x8E", 0, 0x706B5B}, /* East Asian ideograph */ + {"\x92", 0, 0x706B5F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page213 = { + marc8r_9page213_flat, 0 +}; +/* PAGE 212 */ +struct yaz_iconv_trie_flat marc8r_9page212_flat[] = { + {"\x96", 0, 0x215337}, /* East Asian ideograph */ + {"\x8C", 0, 0x215338}, /* East Asian ideograph */ + {"\xA5", 0, 0x215339}, /* East Asian ideograph */ + {"\x9A", 0, 0x21533A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21533B}, /* East Asian ideograph */ + {"\x83", 0, 0x21533C}, /* East Asian ideograph */ + {"\x9B", 0, 0x21533D}, /* East Asian ideograph */ + {"\x84", 0, 0x21533E}, /* East Asian ideograph */ + {"\x8E", 0, 0x21533F}, /* East Asian ideograph */ + {"\x9E", 0, 0x215340}, /* East Asian ideograph */ + {"\xA4", 0, 0x215341}, /* East Asian ideograph */ + {"\xB0", 0, 0x215342}, /* East Asian ideograph */ + {"\xB1", 0, 0x215345}, /* East Asian ideograph */ + {"\xB4", 0, 0x215346}, /* East Asian ideograph */ + {"\xAD", 0, 0x215347}, /* East Asian ideograph */ + {"\xBD", 0, 0x215348}, /* East Asian ideograph */ + {"\xB3", 0, 0x21534A}, /* East Asian ideograph */ + {"\xB8", 0, 0x21534B}, /* East Asian ideograph */ + {"\xA0", 0, 0x227773}, /* East Asian ideograph */ + {"\x9F", 0, 0x22777B}, /* East Asian ideograph */ + {"\x82", 0, 0x22777D}, /* East Asian ideograph */ + {"\x99", 0, 0x227827}, /* East Asian ideograph */ + {"\x9D", 0, 0x22782A}, /* East Asian ideograph */ + {"\x8F", 0, 0x22782D}, /* East Asian ideograph */ + {"\x8D", 0, 0x22782F}, /* East Asian ideograph */ + {"\x97", 0, 0x227830}, /* East Asian ideograph */ + {"\xB2", 0, 0x227833}, /* East Asian ideograph */ + {"\xBA", 0, 0x227834}, /* East Asian ideograph */ + {"\xBE", 0, 0x227838}, /* East Asian ideograph */ + {"\xB9", 0, 0x227840}, /* East Asian ideograph */ + {"\xAF", 0, 0x227841}, /* East Asian ideograph */ + {"\x94", 0, 0x227842}, /* East Asian ideograph */ + {"\x9C", 0, 0x273437}, /* East Asian ideograph */ + {"\xA7", 0, 0x274366}, /* East Asian ideograph */ + {"\xA1", 0, 0x275062}, /* East Asian ideograph (duplicate simplified) */ + {"\x81", 0, 0x275344}, /* East Asian ideograph */ + {"\x80", 0, 0x275359}, /* East Asian ideograph */ + {"\xB6", 0, 0x27536C}, /* East Asian ideograph */ + {"\x86", 0, 0x275379}, /* East Asian ideograph */ + {"\xAA", 0, 0x275421}, /* East Asian ideograph */ + {"\xA1", 0, 0x275551}, /* East Asian ideograph (duplicate simplified) */ + {"\xA1", 0, 0x275679}, /* East Asian ideograph (duplicate simplified) */ + {"\xA1", 0, 0x276164}, /* East Asian ideograph (duplicate simplified) */ + {"\xAB", 0, 0x287855}, /* East Asian ideograph */ + {"\xA8", 0, 0x28786E}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D534B}, /* East Asian ideograph */ + {"\xBC", 0, 0x3A787D}, /* East Asian ideograph */ + {"\xAC", 0, 0x706640}, /* East Asian ideograph */ + {"\xA9", 0, 0x706B4C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page212 = { + marc8r_9page212_flat, 0 +}; +/* PAGE 211 */ +struct yaz_iconv_trie_flat marc8r_9page211_flat[] = { + {"\x84", 0, 0x21527E}, /* East Asian ideograph */ + {"\x85", 0, 0x215321}, /* East Asian ideograph */ + {"\x87", 0, 0x215322}, /* East Asian ideograph */ + {"\x89", 0, 0x215323}, /* East Asian ideograph */ + {"\x8B", 0, 0x215324}, /* East Asian ideograph */ + {"\x8C", 0, 0x215325}, /* East Asian ideograph */ + {"\x93", 0, 0x215326}, /* East Asian ideograph */ + {"\x9D", 0, 0x215327}, /* East Asian ideograph */ + {"\x98", 0, 0x215328}, /* East Asian ideograph */ + {"\x9B", 0, 0x215329}, /* East Asian ideograph */ + {"\x9A", 0, 0x21532A}, /* East Asian ideograph */ + {"\x96", 0, 0x21532B}, /* East Asian ideograph */ + {"\xB2", 0, 0x21532C}, /* East Asian ideograph */ + {"\xAA", 0, 0x21532D}, /* East Asian ideograph */ + {"\xBA", 0, 0x21532E}, /* East Asian ideograph */ + {"\xBA", 0, 0x21532E}, /* East Asian ideograph */ + {"\xA5", 0, 0x21532F}, /* East Asian ideograph */ + {"\xA2", 0, 0x215330}, /* East Asian ideograph */ + {"\xAB", 0, 0x215331}, /* East Asian ideograph */ + {"\xB1", 0, 0x215332}, /* East Asian ideograph */ + {"\xAF", 0, 0x215333}, /* East Asian ideograph */ + {"\xA1", 0, 0x215334}, /* East Asian ideograph */ + {"\xA9", 0, 0x215335}, /* East Asian ideograph */ + {"\xB4", 0, 0x215336}, /* East Asian ideograph */ + {"\x9C", 0, 0x222973}, /* East Asian ideograph */ + {"\x8A", 0, 0x227747}, /* East Asian ideograph */ + {"\x8E", 0, 0x227749}, /* East Asian ideograph */ + {"\x9F", 0, 0x22774E}, /* East Asian ideograph */ + {"\xA7", 0, 0x227760}, /* East Asian ideograph */ + {"\xB0", 0, 0x227761}, /* East Asian ideograph */ + {"\xB8", 0, 0x227768}, /* East Asian ideograph */ + {"\xB5", 0, 0x227769}, /* East Asian ideograph */ + {"\xA6", 0, 0x22776A}, /* East Asian ideograph */ + {"\x83", 0, 0x275321}, /* East Asian ideograph */ + {"\x90", 0, 0x27534A}, /* East Asian ideograph */ + {"\xBE", 0, 0x275358}, /* East Asian ideograph */ + {"\xA0", 0, 0x27535E}, /* East Asian ideograph */ + {"\xBF", 0, 0x275362}, /* East Asian ideograph */ + {"\xA4", 0, 0x27536E}, /* East Asian ideograph */ + {"\xAE", 0, 0x276153}, /* East Asian ideograph */ + {"\x86", 0, 0x2D3765}, /* East Asian ideograph */ + {"\xAD", 0, 0x2E3A33}, /* East Asian ideograph */ + {"\xBB", 0, 0x335333}, /* East Asian ideograph */ + {"\xAC", 0, 0x345E3B}, /* East Asian ideograph */ + {"\x80", 0, 0x4B527C}, /* East Asian ideograph */ + {"\xAD", 0, 0x4C3A33}, /* East Asian ideograph (variant of EACC 2E3A33) */ + {"\xB7", 0, 0x4C794E}, /* East Asian ideograph */ + {"\xBC", 0, 0x706B42}, /* East Asian ideograph */ + {"\xBD", 0, 0x706B44}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page211 = { + marc8r_9page211_flat, 0 +}; +/* PAGE 210 */ +struct yaz_iconv_trie_flat marc8r_9page210_flat[] = { + {"\x8A", 0, 0x21526D}, /* East Asian ideograph */ + {"\x86", 0, 0x21526E}, /* East Asian ideograph */ + {"\x96", 0, 0x21526F}, /* East Asian ideograph */ + {"\x98", 0, 0x215270}, /* East Asian ideograph */ + {"\x9E", 0, 0x215271}, /* East Asian ideograph */ + {"\x9A", 0, 0x215272}, /* East Asian ideograph */ + {"\xB1", 0, 0x215273}, /* East Asian ideograph */ + {"\xB2", 0, 0x215274}, /* East Asian ideograph */ + {"\xB3", 0, 0x215275}, /* East Asian ideograph */ + {"\xB0", 0, 0x215276}, /* East Asian ideograph */ + {"\xAF", 0, 0x215277}, /* East Asian ideograph */ + {"\xB7", 0, 0x215278}, /* East Asian ideograph */ + {"\xB6", 0, 0x215279}, /* East Asian ideograph */ + {"\xBE", 0, 0x21527A}, /* East Asian ideograph */ + {"\xBD", 0, 0x21527B}, /* East Asian ideograph */ + {"\xBF", 0, 0x21527C}, /* East Asian ideograph */ + {"\x81", 0, 0x22766B}, /* East Asian ideograph */ + {"\x83", 0, 0x227670}, /* East Asian ideograph */ + {"\x92", 0, 0x22767B}, /* East Asian ideograph */ + {"\xA2", 0, 0x22767E}, /* East Asian ideograph */ + {"\xA3", 0, 0x227728}, /* East Asian ideograph */ + {"\xAC", 0, 0x227732}, /* East Asian ideograph */ + {"\xB5", 0, 0x227739}, /* East Asian ideograph */ + {"\xBB", 0, 0x22773E}, /* East Asian ideograph */ + {"\xB9", 0, 0x22773F}, /* East Asian ideograph */ + {"\xAA", 0, 0x275276}, /* East Asian ideograph */ + {"\x94", 0, 0x275277}, /* East Asian ideograph */ + {"\x8C", 0, 0x275278}, /* East Asian ideograph */ + {"\x82", 0, 0x275279}, /* East Asian ideograph */ + {"\x8B", 0, 0x27527A}, /* East Asian ideograph */ + {"\xA9", 0, 0x287739}, /* East Asian ideograph */ + {"\x8D", 0, 0x28773F}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D527B}, /* East Asian ideograph */ + {"\xA1", 0, 0x335276}, /* East Asian ideograph */ + {"\x9F", 0, 0x4B3A2F}, /* East Asian ideograph */ + {"\x86", 0, 0x4B526E}, /* East Asian ideograph (variant of EACC 21526E) */ + {"\xA8", 0, 0x4B5277}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page210 = { + marc8r_9page210_flat, 0 +}; +/* PAGE 209 */ +struct yaz_iconv_trie_flat marc8r_9page209_flat[] = { + {"\x80", 0, 0x21525B}, /* East Asian ideograph */ + {"\x81", 0, 0x21525C}, /* East Asian ideograph */ + {"\x83", 0, 0x21525D}, /* East Asian ideograph */ + {"\x86", 0, 0x21525E}, /* East Asian ideograph */ + {"\x85", 0, 0x21525F}, /* East Asian ideograph */ + {"\x8C", 0, 0x215260}, /* East Asian ideograph */ + {"\x90", 0, 0x215261}, /* East Asian ideograph */ + {"\x8D", 0, 0x215262}, /* East Asian ideograph */ + {"\x92", 0, 0x215263}, /* East Asian ideograph */ + {"\x95", 0, 0x215264}, /* East Asian ideograph */ + {"\x98", 0, 0x215265}, /* East Asian ideograph */ + {"\x99", 0, 0x215266}, /* East Asian ideograph */ + {"\x97", 0, 0x215267}, /* East Asian ideograph */ + {"\x9C", 0, 0x215268}, /* East Asian ideograph */ + {"\xB3", 0, 0x215269}, /* East Asian ideograph */ + {"\xB6", 0, 0x21526A}, /* East Asian ideograph */ + {"\xBF", 0, 0x21526B}, /* East Asian ideograph */ + {"\xBD", 0, 0x21526C}, /* East Asian ideograph */ + {"\x84", 0, 0x22762E}, /* East Asian ideograph */ + {"\x88", 0, 0x227631}, /* East Asian ideograph */ + {"\x8B", 0, 0x227633}, /* East Asian ideograph */ + {"\x8E", 0, 0x227634}, /* East Asian ideograph */ + {"\x91", 0, 0x227635}, /* East Asian ideograph */ + {"\x8F", 0, 0x227636}, /* East Asian ideograph */ + {"\x94", 0, 0x227637}, /* East Asian ideograph */ + {"\x96", 0, 0x227639}, /* East Asian ideograph */ + {"\x9F", 0, 0x22763B}, /* East Asian ideograph */ + {"\x9E", 0, 0x22763D}, /* East Asian ideograph */ + {"\x9D", 0, 0x22763E}, /* East Asian ideograph */ + {"\xA5", 0, 0x22764B}, /* East Asian ideograph */ + {"\xA6", 0, 0x22764C}, /* East Asian ideograph */ + {"\xAA", 0, 0x22764D}, /* East Asian ideograph */ + {"\xA9", 0, 0x22764E}, /* East Asian ideograph */ + {"\xA8", 0, 0x22764F}, /* East Asian ideograph */ + {"\xB0", 0, 0x22765B}, /* East Asian ideograph */ + {"\xB1", 0, 0x22765D}, /* East Asian ideograph */ + {"\xB5", 0, 0x227660}, /* East Asian ideograph */ + {"\xB9", 0, 0x227669}, /* East Asian ideograph */ + {"\xB8", 0, 0x275275}, /* East Asian ideograph */ + {"\xA7", 0, 0x287655}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D3E3C}, /* East Asian ideograph */ + {"\xA4", 0, 0x2D562E}, /* East Asian ideograph */ + {"\xA1", 0, 0x2D5D68}, /* East Asian ideograph */ + {"\xA0", 0, 0x2E684E}, /* East Asian ideograph */ + {"\xB7", 0, 0x2E765F}, /* East Asian ideograph */ + {"\x99", 0, 0x2F4231}, /* East Asian ideograph (unrelated variant of EACC 215266) */ + {"\xA2", 0, 0x344138}, /* East Asian ideograph */ + {"\x82", 0, 0x4B525C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page209 = { + marc8r_9page209_flat, 0 +}; +/* PAGE 208 */ +struct yaz_iconv_trie_dir marc8r_9page208_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x293B5B} /* East Asian ideograph */, + {0, 0, 0x293B59} /* East Asian ideograph */, + {0, 0, 0x275B3D} /* East Asian ideograph */, + {0, 0, 0x275B42} /* East Asian ideograph */, + {0, 0, 0x275B41} /* East Asian ideograph */, + {0, 0, 0x275B46} /* East Asian ideograph */, + {0, 0, 0x275B45} /* East Asian ideograph */, + {0, 0, 0x275B49} /* East Asian ideograph */, + {0, 0, 0x275B48} /* East Asian ideograph */, + {0, 0, 0x293B6D} /* East Asian ideograph */, + {0, 0, 0x293B6B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275B47} /* East Asian ideograph */, + {0, 0, 0x275B4B} /* East Asian ideograph */, + {0, 0, 0x293B7A} /* East Asian ideograph */, + {0, 0, 0x275B4C} /* East Asian ideograph */, + {0, 0, 0x275B4D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275B4E} /* East Asian ideograph */, + {0, 0, 0x275B59} /* East Asian ideograph */, + {0, 0, 0x275B51} /* East Asian ideograph */, + {0, 0, 0x275B4F} /* East Asian ideograph */, + {0, 0, 0x275B50} /* East Asian ideograph */, + {0, 0, 0x293C30} /* East Asian ideograph */, + {0, 0, 0x275B54} /* East Asian ideograph */, + {0, 0, 0x275B56} /* East Asian ideograph */, + {0, 0, 0x215B5A} /* East Asian ideograph */, + {0, 0, 0x215B5B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275B60} /* East Asian ideograph */, + {0, 0, 0x275E6B} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x2D5232} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x2D5B5D} /* East Asian ideograph */, + {0, 0, 0x215B5D} /* East Asian ideograph */, + {0, 0, 0x233C65} /* East Asian ideograph */, + {0, 0, 0x233C66} /* East Asian ideograph */, + {0, 0, 0x215B5F} /* East Asian ideograph */, + {0, 0, 0x2D5B5E} /* East Asian ideograph */, + {0, 0, 0x215B5E} /* East Asian ideograph */, + {0, 0, 0x275B61} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27517A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215B60} /* East Asian ideograph */, + {0, 0, 0x21517A} /* East Asian ideograph */, + {0, 0, 0x215B61} /* East Asian ideograph */, + {0, 0, 0x215B62} /* East Asian ideograph */, + {0, 0, 0x215B63} /* East Asian ideograph */, + {0, 0, 0x215B64} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x233C6C} /* East Asian ideograph */, + {0, 0, 0x4D3C6C} /* East Asian ideograph */, + {0, 0, 0x233C6D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275C5B} /* East Asian ideograph */, + {0, 0, 0x4B5C5B} /* East Asian ideograph */, + {0, 0, 0x233C6E} /* East Asian ideograph */, + {0, 0, 0x233C70} /* East Asian ideograph */, + {0, 0, 0x275C52} /* East Asian ideograph */, + {0, 0, 0x275C39} /* East Asian ideograph */, + {0, 0, 0x233C74} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page208 = { + 0, marc8r_9page208_dir +}; +/* PAGE 207 */ +struct yaz_iconv_trie_flat marc8r_9page207_flat[] = { + {"\xAC", 0, 0x214F22}, /* East Asian ideograph */ + {"\x8D", 0, 0x215534}, /* East Asian ideograph */ + {"\x83", 0, 0x215538}, /* East Asian ideograph */ + {"\x8B", 0, 0x21553B}, /* East Asian ideograph */ + {"\x8A", 0, 0x215541}, /* East Asian ideograph */ + {"\x8C", 0, 0x215542}, /* East Asian ideograph */ + {"\x8E", 0, 0x215547}, /* East Asian ideograph */ + {"\x84", 0, 0x215548}, /* East Asian ideograph */ + {"\xBD", 0, 0x215549}, /* East Asian ideograph */ + {"\xB1", 0, 0x21554B}, /* East Asian ideograph */ + {"\xBC", 0, 0x215554}, /* East Asian ideograph */ + {"\xB5", 0, 0x215555}, /* East Asian ideograph */ + {"\xB8", 0, 0x215559}, /* East Asian ideograph */ + {"\xA1", 0, 0x227E45}, /* East Asian ideograph */ + {"\xA3", 0, 0x227E51}, /* East Asian ideograph */ + {"\x93", 0, 0x227E53}, /* East Asian ideograph */ + {"\x90", 0, 0x227E59}, /* East Asian ideograph */ + {"\x87", 0, 0x227E61}, /* East Asian ideograph */ + {"\x81", 0, 0x227E6D}, /* East Asian ideograph */ + {"\x98", 0, 0x227E74}, /* East Asian ideograph */ + {"\x9E", 0, 0x232225}, /* East Asian ideograph */ + {"\x9F", 0, 0x23222C}, /* East Asian ideograph */ + {"\x8F", 0, 0x23222E}, /* East Asian ideograph */ + {"\x91", 0, 0x232230}, /* East Asian ideograph */ + {"\xB9", 0, 0x23224C}, /* East Asian ideograph */ + {"\xBE", 0, 0x23226E}, /* East Asian ideograph */ + {"\xB2", 0, 0x232324}, /* East Asian ideograph */ + {"\xAA", 0, 0x23232D}, /* East Asian ideograph */ + {"\xA9", 0, 0x23232E}, /* East Asian ideograph */ + {"\xA5", 0, 0x274A2E}, /* East Asian ideograph */ + {"\xA6", 0, 0x275161}, /* East Asian ideograph */ + {"\xA7", 0, 0x275622}, /* East Asian ideograph */ + {"\xA8", 0, 0x27562A}, /* East Asian ideograph */ + {"\x9D", 0, 0x275642}, /* East Asian ideograph */ + {"\xA4", 0, 0x275724}, /* East Asian ideograph */ + {"\x86", 0, 0x335568}, /* East Asian ideograph */ + {"\xA0", 0, 0x4B5542}, /* East Asian ideograph */ + {"\xA2", 0, 0x69684D}, /* East Asian ideograph */ + {"\x9C", 0, 0x705D46}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page207 = { + marc8r_9page207_flat, 0 +}; +/* PAGE 206 */ +struct yaz_iconv_trie_flat marc8r_9page206_flat[] = { + {"\x85", 0, 0x21524A}, /* East Asian ideograph */ + {"\x81", 0, 0x21524B}, /* East Asian ideograph */ + {"\x8C", 0, 0x21524C}, /* East Asian ideograph */ + {"\x92", 0, 0x21524D}, /* East Asian ideograph */ + {"\x8E", 0, 0x21524E}, /* East Asian ideograph (variant of EACC 4B524E) */ + {"\x94", 0, 0x21524F}, /* East Asian ideograph */ + {"\x95", 0, 0x215250}, /* East Asian ideograph */ + {"\xA0", 0, 0x215251}, /* East Asian ideograph */ + {"\xA1", 0, 0x215252}, /* East Asian ideograph */ + {"\x9F", 0, 0x215253}, /* East Asian ideograph */ + {"\xA9", 0, 0x215254}, /* East Asian ideograph */ + {"\xB0", 0, 0x215255}, /* East Asian ideograph */ + {"\xB3", 0, 0x215256}, /* East Asian ideograph */ + {"\xBC", 0, 0x215257}, /* East Asian ideograph */ + {"\xB9", 0, 0x215258}, /* East Asian ideograph */ + {"\xBB", 0, 0x215259}, /* East Asian ideograph */ + {"\xB1", 0, 0x21525A}, /* East Asian ideograph */ + {"\x83", 0, 0x227551}, /* East Asian ideograph */ + {"\x8A", 0, 0x227557}, /* East Asian ideograph */ + {"\x9B", 0, 0x227567}, /* East Asian ideograph */ + {"\xA3", 0, 0x227568}, /* East Asian ideograph */ + {"\xA6", 0, 0x22756C}, /* East Asian ideograph */ + {"\xA5", 0, 0x22756F}, /* East Asian ideograph */ + {"\xAC", 0, 0x227572}, /* East Asian ideograph */ + {"\xAB", 0, 0x227573}, /* East Asian ideograph */ + {"\xAF", 0, 0x227577}, /* East Asian ideograph */ + {"\xAE", 0, 0x22757A}, /* East Asian ideograph */ + {"\xBD", 0, 0x227629}, /* East Asian ideograph */ + {"\xBE", 0, 0x22762A}, /* East Asian ideograph */ + {"\xBF", 0, 0x22762C}, /* East Asian ideograph */ + {"\x86", 0, 0x275251}, /* East Asian ideograph */ + {"\x98", 0, 0x275258}, /* East Asian ideograph */ + {"\x84", 0, 0x2D524A}, /* East Asian ideograph */ + {"\x8E", 0, 0x4B524E}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B525A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page206 = { + marc8r_9page206_flat, 0 +}; +/* PAGE 205 */ +struct yaz_iconv_trie_flat marc8r_9page205_flat[] = { + {"\x85", 0, 0x215237}, /* East Asian ideograph */ + {"\x88", 0, 0x215238}, /* East Asian ideograph */ + {"\x8A", 0, 0x215239}, /* East Asian ideograph */ + {"\x8C", 0, 0x21523A}, /* East Asian ideograph */ + {"\x8E", 0, 0x21523B}, /* East Asian ideograph */ + {"\x94", 0, 0x21523C}, /* East Asian ideograph */ + {"\x9E", 0, 0x21523D}, /* East Asian ideograph */ + {"\x9A", 0, 0x21523E}, /* East Asian ideograph */ + {"\xA8", 0, 0x215240}, /* East Asian ideograph */ + {"\xA4", 0, 0x215241}, /* East Asian ideograph */ + {"\xA9", 0, 0x215242}, /* East Asian ideograph */ + {"\xAF", 0, 0x215243}, /* East Asian ideograph */ + {"\xB2", 0, 0x215244}, /* East Asian ideograph */ + {"\xB6", 0, 0x215245}, /* East Asian ideograph */ + {"\xB8", 0, 0x215246}, /* East Asian ideograph */ + {"\xB9", 0, 0x215247}, /* East Asian ideograph */ + {"\xBD", 0, 0x215248}, /* East Asian ideograph */ + {"\xBF", 0, 0x215249}, /* East Asian ideograph */ + {"\x86", 0, 0x227472}, /* East Asian ideograph */ + {"\x91", 0, 0x22747A}, /* East Asian ideograph */ + {"\x96", 0, 0x22747E}, /* East Asian ideograph */ + {"\x97", 0, 0x227523}, /* East Asian ideograph */ + {"\x95", 0, 0x227524}, /* East Asian ideograph */ + {"\xA2", 0, 0x22752C}, /* East Asian ideograph */ + {"\xA7", 0, 0x227533}, /* East Asian ideograph */ + {"\xB0", 0, 0x22753B}, /* East Asian ideograph */ + {"\xAD", 0, 0x22753C}, /* East Asian ideograph */ + {"\xB1", 0, 0x22753F}, /* East Asian ideograph */ + {"\xB4", 0, 0x227540}, /* East Asian ideograph */ + {"\xB5", 0, 0x227542}, /* East Asian ideograph */ + {"\xBC", 0, 0x22754A}, /* East Asian ideograph */ + {"\xBE", 0, 0x22754C}, /* East Asian ideograph */ + {"\x81", 0, 0x275238}, /* East Asian ideograph */ + {"\x9F", 0, 0x287531}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D4A58}, /* East Asian ideograph */ + {"\xA1", 0, 0x2D5240}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D5241}, /* East Asian ideograph */ + {"\x82", 0, 0x2E7450}, /* East Asian ideograph */ + {"\x87", 0, 0x4B5238}, /* East Asian ideograph */ + {"\x9A", 0, 0x4B523E}, /* East Asian ideograph (variant of EACC 21523E) */ + {"\xAE", 0, 0x4B5247}, /* East Asian ideograph */ + {"\x83", 0, 0x4B6A22}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page205 = { + marc8r_9page205_flat, 0 +}; +/* PAGE 204 */ +struct yaz_iconv_trie_flat marc8r_9page204_flat[] = { + {"\x84", 0, 0x215229}, /* East Asian ideograph */ + {"\x90", 0, 0x21522B}, /* East Asian ideograph */ + {"\x95", 0, 0x21522C}, /* East Asian ideograph */ + {"\x94", 0, 0x21522D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21522E}, /* East Asian ideograph */ + {"\xB2", 0, 0x21522F}, /* East Asian ideograph */ + {"\xAE", 0, 0x215230}, /* East Asian ideograph */ + {"\xA9", 0, 0x215231}, /* East Asian ideograph */ + {"\xAA", 0, 0x215232}, /* East Asian ideograph */ + {"\xB0", 0, 0x215233}, /* East Asian ideograph */ + {"\xB5", 0, 0x215234}, /* East Asian ideograph */ + {"\xB7", 0, 0x215235}, /* East Asian ideograph */ + {"\xB9", 0, 0x215236}, /* East Asian ideograph */ + {"\x83", 0, 0x227425}, /* East Asian ideograph */ + {"\x86", 0, 0x227427}, /* East Asian ideograph */ + {"\x85", 0, 0x227428}, /* East Asian ideograph */ + {"\x8B", 0, 0x22742B}, /* East Asian ideograph */ + {"\x8C", 0, 0x22742E}, /* East Asian ideograph */ + {"\x8D", 0, 0x22742F}, /* East Asian ideograph */ + {"\x8E", 0, 0x227431}, /* East Asian ideograph */ + {"\x8F", 0, 0x227432}, /* East Asian ideograph */ + {"\xA0", 0, 0x22743E}, /* East Asian ideograph */ + {"\xA1", 0, 0x22743F}, /* East Asian ideograph */ + {"\x9D", 0, 0x227443}, /* East Asian ideograph */ + {"\x9B", 0, 0x227445}, /* East Asian ideograph */ + {"\xA3", 0, 0x227447}, /* East Asian ideograph */ + {"\xA5", 0, 0x227450}, /* East Asian ideograph */ + {"\xA6", 0, 0x227451}, /* East Asian ideograph */ + {"\xAD", 0, 0x227453}, /* East Asian ideograph */ + {"\xAB", 0, 0x227454}, /* East Asian ideograph */ + {"\xA7", 0, 0x227455}, /* East Asian ideograph */ + {"\xA8", 0, 0x227457}, /* East Asian ideograph */ + {"\xB1", 0, 0x22745E}, /* East Asian ideograph */ + {"\xB3", 0, 0x227460}, /* East Asian ideograph */ + {"\xB6", 0, 0x227463}, /* East Asian ideograph */ + {"\xBF", 0, 0x22746A}, /* East Asian ideograph */ + {"\xBE", 0, 0x22746B}, /* East Asian ideograph */ + {"\xBD", 0, 0x22746C}, /* East Asian ideograph */ + {"\x97", 0, 0x273761}, /* East Asian ideograph (duplicate simplified) */ + {"\x91", 0, 0x275148}, /* East Asian ideograph */ + {"\x9A", 0, 0x275233}, /* East Asian ideograph */ + {"\xA2", 0, 0x275235}, /* East Asian ideograph */ + {"\x97", 0, 0x275237}, /* East Asian ideograph */ + {"\x82", 0, 0x28742E}, /* East Asian ideograph */ + {"\xB4", 0, 0x287472}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D5233}, /* East Asian ideograph */ + {"\x88", 0, 0x2E7431}, /* East Asian ideograph */ + {"\x98", 0, 0x2E7451}, /* East Asian ideograph */ + {"\x87", 0, 0x334550}, /* East Asian ideograph */ + {"\xAE", 0, 0x335230}, /* East Asian ideograph (variant of EACC 215230) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page204 = { + marc8r_9page204_flat, 0 +}; +/* PAGE 203 */ +struct yaz_iconv_trie_dir marc8r_9page203_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275146} /* East Asian ideograph */, + {0, 0, 0x275151} /* East Asian ideograph */, + {0, 0, 0x28722A} /* East Asian ideograph */, + {0, 0, 0x287231} /* East Asian ideograph */, + {0, 0, 0x275156} /* East Asian ideograph */, + {0, 0, 0x275157} /* East Asian ideograph */, + {0, 0, 0x275224} /* East Asian ideograph */, + {0, 0, 0x287236} /* East Asian ideograph */, + {0, 0, 0x28723C} /* East Asian ideograph */, + {0, 0, 0x275158} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4B5179} /* East Asian ideograph */, + {0, 0, 0x28723E} /* East Asian ideograph */, + {0, 0, 0x27515D} /* East Asian ideograph */, + {0, 0, 0x27515E} /* East Asian ideograph */, + {0, 0, 0x287248} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x287247} /* East Asian ideograph */, + {0, 0, 0x287253} /* East Asian ideograph */, + {0, 0, 0x275159} /* East Asian ideograph */, + {0, 0, 0x275152} /* East Asian ideograph */, + {0, 0, 0x275168} /* East Asian ideograph */, + {0, 0, 0x27515B} /* East Asian ideograph */, + {0, 0, 0x287229} /* East Asian ideograph */, + {0, 0, 0x27515A} /* East Asian ideograph */, + {0, 0, 0x28725E} /* East Asian ideograph */, + {0, 0, 0x275162} /* East Asian ideograph */, + {0, 0, 0x28725F} /* East Asian ideograph */, + {0, 0, 0x28725D} /* East Asian ideograph */, + {0, 0, 0x27516C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x287251} /* East Asian ideograph */, + {0, 0, 0x27517E} /* East Asian ideograph */, + {0, 0, 0x287272} /* East Asian ideograph */, + {0, 0, 0x275160} /* East Asian ideograph */, + {0, 0, 0x27515F} /* East Asian ideograph */, + {0, 0, 0x27517B} /* East Asian ideograph */, + {0, 0, 0x287279} /* East Asian ideograph */, + {0, 0, 0x287321} /* East Asian ideograph */, + {0, 0, 0x275169} /* East Asian ideograph */, + {0, 0, 0x275222} /* East Asian ideograph */, + {0, 0, 0x275165} /* East Asian ideograph */, + {0, 0, 0x275167} /* East Asian ideograph */, + {0, 0, 0x27516F} /* East Asian ideograph */, + {0, 0, 0x287360} /* East Asian ideograph */, + {0, 0, 0x275174} /* East Asian ideograph */, + {0, 0, 0x275170} /* East Asian ideograph */, + {0, 0, 0x28732D} /* East Asian ideograph */, + {0, 0, 0x287349} /* East Asian ideograph */, + {0, 0, 0x287359} /* East Asian ideograph */, + {0, 0, 0x28734E} /* East Asian ideograph */, + {0, 0, 0x287351} /* East Asian ideograph */, + {0, 0, 0x287352} /* East Asian ideograph */, + {0, 0, 0x287374} /* East Asian ideograph */, + {0, 0, 0x4B522B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215226} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215227} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x215228} /* East Asian ideograph */, + {0, 0, 0x2D4B71} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page203 = { + 0, marc8r_9page203_dir +}; +/* PAGE 202 */ +struct yaz_iconv_trie_dir marc8r_9page202_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x22735B} /* East Asian ideograph */, + {0, 0, 0x21517C} /* East Asian ideograph */, + {0, 0, 0x69656D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x227364} /* East Asian ideograph */, + {0, 0, 0x22735E} /* East Asian ideograph */, + {0, 0, 0x227360} /* East Asian ideograph */, + {0, 0, 0x2E7374} /* East Asian ideograph */, + {0, 0, 0x22735D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x215221} /* East Asian ideograph */, + {0, 0, 0x33512E} /* East Asian ideograph */, + {0, 0, 0x335223} /* East Asian ideograph */, + {0, 0, 0x21517E} /* East Asian ideograph */, + {0, 0, 0x696576} /* East Asian ideograph */, + {0, 0, 0x22736A} /* East Asian ideograph */, + {0, 0, 0x4B517E} /* East Asian ideograph */, + {0, 0, 0x215222} /* East Asian ideograph */, + {0, 0, 0x22736D} /* East Asian ideograph */, + {0, 0, 0x22736B} /* East Asian ideograph */, + {0, 0, 0x215223} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x227374} /* East Asian ideograph */, + {0, 0, 0x227373} /* East Asian ideograph */, + {0, 0, 0x227371} /* East Asian ideograph */, + {0, 0, 0x227370} /* East Asian ideograph */, + {0, 0, 0x215224} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x51513B} /* East Asian ideograph */, + {0, 0, 0x27506F} /* East Asian ideograph */, + {0, 0, 0x287042} /* East Asian ideograph */, + {0, 0, 0x275072} /* East Asian ideograph */, + {0, 0, 0x275071} /* East Asian ideograph */, + {0, 0, 0x287271} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x275075} /* East Asian ideograph */, + {0, 0, 0x275074} /* East Asian ideograph */, + {0, 0, 0x275123} /* East Asian ideograph */, + {0, 0, 0x287045} /* East Asian ideograph */, + {0, 0, 0x28735D} /* East Asian ideograph */, + {0, 0, 0x275070} /* East Asian ideograph */, + {0, 0, 0x275073} /* East Asian ideograph */, + {0, 0, 0x275153} /* East Asian ideograph */, + {0, 0, 0x27507A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27507D} /* East Asian ideograph */, + {0, 0, 0x27507C} /* East Asian ideograph */, + {0, 0, 0x275121} /* East Asian ideograph */, + {0, 0, 0x275149} /* East Asian ideograph */, + {0, 0, 0x275122} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27516E} /* East Asian ideograph */, + {0, 0, 0x275150} /* East Asian ideograph */, + {0, 0, 0x275125} /* East Asian ideograph */, + {0, 0, 0x275124} /* East Asian ideograph */, + {0, 0, 0x275077} /* East Asian ideograph */, + {0, 0, 0x275076} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x27507E} /* East Asian ideograph */, + {0, 0, 0x28704A} /* East Asian ideograph */, + {0, 0, 0x27515C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page202 = { + 0, marc8r_9page202_dir +}; +/* PAGE 201 */ +struct yaz_iconv_trie_flat marc8r_9page201_flat[] = { + {"\x86", 0, 0x215167}, /* East Asian ideograph */ + {"\x83", 0, 0x21516A}, /* East Asian ideograph */ + {"\x81", 0, 0x21516B}, /* East Asian ideograph */ + {"\x85", 0, 0x21516F}, /* East Asian ideograph */ + {"\x95", 0, 0x215170}, /* East Asian ideograph */ + {"\x94", 0, 0x215171}, /* East Asian ideograph */ + {"\xA1", 0, 0x215172}, /* East Asian ideograph */ + {"\x9E", 0, 0x215173}, /* East Asian ideograph */ + {"\x9A", 0, 0x215174}, /* East Asian ideograph */ + {"\xAB", 0, 0x215175}, /* East Asian ideograph */ + {"\xA9", 0, 0x215176}, /* East Asian ideograph */ + {"\xAD", 0, 0x215177}, /* East Asian ideograph */ + {"\xB9", 0, 0x215178}, /* East Asian ideograph */ + {"\xAA", 0, 0x215179}, /* East Asian ideograph */ + {"\xBD", 0, 0x21517B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21517D}, /* East Asian ideograph */ + {"\x84", 0, 0x22727D}, /* East Asian ideograph */ + {"\x87", 0, 0x227328}, /* East Asian ideograph */ + {"\x92", 0, 0x22732D}, /* East Asian ideograph */ + {"\x91", 0, 0x22732F}, /* East Asian ideograph */ + {"\x90", 0, 0x227333}, /* East Asian ideograph */ + {"\xA7", 0, 0x227334}, /* East Asian ideograph */ + {"\x96", 0, 0x227337}, /* East Asian ideograph */ + {"\xA8", 0, 0x227348}, /* East Asian ideograph */ + {"\xAE", 0, 0x227349}, /* East Asian ideograph */ + {"\xB0", 0, 0x22734E}, /* East Asian ideograph */ + {"\xAF", 0, 0x227351}, /* East Asian ideograph */ + {"\xB3", 0, 0x227352}, /* East Asian ideograph */ + {"\xBB", 0, 0x227358}, /* East Asian ideograph */ + {"\xBE", 0, 0x227359}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D5179}, /* East Asian ideograph */ + {"\x88", 0, 0x2F2F5D}, /* East Asian ideograph */ + {"\x99", 0, 0x335259}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B5223}, /* East Asian ideograph */ + {"\xBF", 0, 0x4B577E}, /* East Asian ideograph */ + {"\x9D", 0, 0x4D2F73}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page201 = { + marc8r_9page201_flat, 0 +}; +/* PAGE 200 */ +struct yaz_iconv_trie_flat marc8r_9page200_flat[] = { + {"\x91", 0, 0x21515F}, /* East Asian ideograph */ + {"\x8A", 0, 0x215160}, /* East Asian ideograph */ + {"\x88", 0, 0x215161}, /* East Asian ideograph */ + {"\x9B", 0, 0x215162}, /* East Asian ideograph */ + {"\xA3", 0, 0x215164}, /* East Asian ideograph */ + {"\xAE", 0, 0x215165}, /* East Asian ideograph */ + {"\xBE", 0, 0x215166}, /* East Asian ideograph */ + {"\xB7", 0, 0x215168}, /* East Asian ideograph */ + {"\xB2", 0, 0x215169}, /* East Asian ideograph */ + {"\xAB", 0, 0x21516C}, /* East Asian ideograph */ + {"\xBD", 0, 0x21516D}, /* East Asian ideograph */ + {"\xB1", 0, 0x21516E}, /* East Asian ideograph */ + {"\x86", 0, 0x22723A}, /* East Asian ideograph */ + {"\x97", 0, 0x227250}, /* East Asian ideograph */ + {"\x9E", 0, 0x227251}, /* East Asian ideograph */ + {"\xA1", 0, 0x227252}, /* East Asian ideograph */ + {"\x8B", 0, 0x227253}, /* East Asian ideograph */ + {"\x92", 0, 0x227255}, /* East Asian ideograph */ + {"\xA2", 0, 0x227256}, /* East Asian ideograph */ + {"\xA0", 0, 0x22725B}, /* East Asian ideograph */ + {"\x9D", 0, 0x22725D}, /* East Asian ideograph */ + {"\x89", 0, 0x22725E}, /* East Asian ideograph */ + {"\x9F", 0, 0x22725F}, /* East Asian ideograph */ + {"\x95", 0, 0x227265}, /* East Asian ideograph */ + {"\x90", 0, 0x227269}, /* East Asian ideograph */ + {"\x8F", 0, 0x22726A}, /* East Asian ideograph */ + {"\xBB", 0, 0x22726D}, /* East Asian ideograph */ + {"\xB4", 0, 0x227271}, /* East Asian ideograph */ + {"\xAD", 0, 0x227272}, /* East Asian ideograph */ + {"\xAF", 0, 0x227273}, /* East Asian ideograph */ + {"\xB6", 0, 0x227275}, /* East Asian ideograph */ + {"\xBA", 0, 0x227277}, /* East Asian ideograph */ + {"\xB9", 0, 0x227279}, /* East Asian ideograph */ + {"\xB5", 0, 0x227321}, /* East Asian ideograph */ + {"\xBF", 0, 0x227326}, /* East Asian ideograph */ + {"\xA7", 0, 0x2E715A}, /* East Asian ideograph */ + {"\x9A", 0, 0x34715A}, /* East Asian ideograph */ + {"\x81", 0, 0x4B515A}, /* East Asian ideograph */ + {"\xA6", 0, 0x4B516E}, /* East Asian ideograph */ + {"\x84", 0, 0x4B5176}, /* East Asian ideograph */ + {"\x85", 0, 0x69654F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page200 = { + marc8r_9page200_flat, 0 +}; +/* PAGE 199 */ +struct yaz_iconv_trie_flat marc8r_9page199_flat[] = { + {"\x8A", 0, 0x215144}, /* East Asian ideograph */ + {"\x87", 0, 0x215151}, /* East Asian ideograph */ + {"\xA0", 0, 0x215152}, /* East Asian ideograph */ + {"\xAF", 0, 0x215153}, /* East Asian ideograph */ + {"\xB4", 0, 0x215154}, /* East Asian ideograph (variant of EACC 4B5154) */ + {"\x96", 0, 0x215155}, /* East Asian ideograph */ + {"\x98", 0, 0x215156}, /* East Asian ideograph */ + {"\xAC", 0, 0x215157}, /* East Asian ideograph */ + {"\x9D", 0, 0x215158}, /* East Asian ideograph */ + {"\xA9", 0, 0x215159}, /* East Asian ideograph */ + {"\xA3", 0, 0x21515A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21515B}, /* East Asian ideograph */ + {"\x9A", 0, 0x21515C}, /* East Asian ideograph */ + {"\x9E", 0, 0x21515E}, /* East Asian ideograph */ + {"\xBB", 0, 0x215163}, /* East Asian ideograph */ + {"\x8B", 0, 0x227167}, /* East Asian ideograph */ + {"\x8E", 0, 0x22716A}, /* East Asian ideograph */ + {"\x89", 0, 0x22716B}, /* East Asian ideograph */ + {"\x85", 0, 0x22716E}, /* East Asian ideograph */ + {"\x84", 0, 0x227174}, /* East Asian ideograph */ + {"\xA1", 0, 0x227229}, /* East Asian ideograph */ + {"\x99", 0, 0x22722A}, /* East Asian ideograph */ + {"\xA4", 0, 0x22722B}, /* East Asian ideograph */ + {"\x97", 0, 0x227231}, /* East Asian ideograph */ + {"\xB9", 0, 0x227236}, /* East Asian ideograph */ + {"\xB2", 0, 0x22723C}, /* East Asian ideograph */ + {"\xA6", 0, 0x22723E}, /* East Asian ideograph */ + {"\x9C", 0, 0x227246}, /* East Asian ideograph */ + {"\xB1", 0, 0x227247}, /* East Asian ideograph */ + {"\xB6", 0, 0x227248}, /* East Asian ideograph */ + {"\xA5", 0, 0x227249}, /* East Asian ideograph */ + {"\xB5", 0, 0x22724B}, /* East Asian ideograph */ + {"\x91", 0, 0x33514C}, /* East Asian ideograph */ + {"\x90", 0, 0x33516B}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B5154}, /* East Asian ideograph */ + {"\x8F", 0, 0x4B516D}, /* East Asian ideograph */ + {"\xBC", 0, 0x4C7265}, /* East Asian ideograph */ + {"\x95", 0, 0x69656E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page199 = { + marc8r_9page199_flat, 0 +}; +/* PAGE 198 */ +struct yaz_iconv_trie_flat marc8r_9page198_flat[] = { + {"\x93", 0, 0x21513C}, /* East Asian ideograph */ + {"\x91", 0, 0x21513D}, /* East Asian ideograph */ + {"\x8F", 0, 0x21513F}, /* East Asian ideograph */ + {"\x81", 0, 0x215140}, /* East Asian ideograph */ + {"\x9C", 0, 0x215141}, /* East Asian ideograph */ + {"\xBB", 0, 0x215142}, /* East Asian ideograph */ + {"\xB0", 0, 0x215143}, /* East Asian ideograph */ + {"\xBE", 0, 0x215145}, /* East Asian ideograph */ + {"\xB4", 0, 0x215146}, /* East Asian ideograph */ + {"\xBA", 0, 0x215147}, /* East Asian ideograph */ + {"\xB2", 0, 0x215148}, /* East Asian ideograph */ + {"\xB1", 0, 0x215149}, /* East Asian ideograph */ + {"\xBD", 0, 0x21514A}, /* East Asian ideograph */ + {"\xB5", 0, 0x21514B}, /* East Asian ideograph */ + {"\xA0", 0, 0x21514C}, /* East Asian ideograph */ + {"\xA2", 0, 0x21514D}, /* East Asian ideograph */ + {"\xAD", 0, 0x21514E}, /* East Asian ideograph */ + {"\xBF", 0, 0x21514F}, /* East Asian ideograph */ + {"\xB8", 0, 0x215150}, /* East Asian ideograph */ + {"\x9E", 0, 0x21515D}, /* East Asian ideograph */ + {"\x8B", 0, 0x227137}, /* East Asian ideograph */ + {"\x88", 0, 0x227139}, /* East Asian ideograph */ + {"\x85", 0, 0x22713B}, /* East Asian ideograph */ + {"\x8E", 0, 0x22713D}, /* East Asian ideograph */ + {"\x86", 0, 0x227144}, /* East Asian ideograph */ + {"\x8D", 0, 0x227148}, /* East Asian ideograph */ + {"\x9B", 0, 0x22714B}, /* East Asian ideograph */ + {"\x83", 0, 0x22714D}, /* East Asian ideograph */ + {"\x96", 0, 0x227159}, /* East Asian ideograph */ + {"\x8C", 0, 0x22715B}, /* East Asian ideograph */ + {"\xA3", 0, 0x227161}, /* East Asian ideograph */ + {"\xAE", 0, 0x227162}, /* East Asian ideograph */ + {"\xAA", 0, 0x227169}, /* East Asian ideograph */ + {"\xA6", 0, 0x22716F}, /* East Asian ideograph */ + {"\xAC", 0, 0x227178}, /* East Asian ideograph */ + {"\xB9", 0, 0x22717D}, /* East Asian ideograph */ + {"\x9F", 0, 0x227222}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D516A}, /* East Asian ideograph */ + {"\x99", 0, 0x2D517D}, /* East Asian ideograph */ + {"\xAB", 0, 0x33515C}, /* East Asian ideograph */ + {"\x89", 0, 0x335172}, /* East Asian ideograph */ + {"\xAF", 0, 0x395773}, /* East Asian ideograph */ + {"\x9A", 0, 0x4B5221}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page198 = { + marc8r_9page198_flat, 0 +}; +/* PAGE 197 */ +struct yaz_iconv_trie_flat marc8r_9page197_flat[] = { + {"\x86", 0, 0x215126}, /* East Asian ideograph */ + {"\x84", 0, 0x21512B}, /* East Asian ideograph */ + {"\x80", 0, 0x21512F}, /* East Asian ideograph */ + {"\x82", 0, 0x215130}, /* East Asian ideograph */ + {"\xB1", 0, 0x215131}, /* East Asian ideograph */ + {"\x9E", 0, 0x215132}, /* East Asian ideograph */ + {"\xA8", 0, 0x215133}, /* East Asian ideograph */ + {"\x90", 0, 0x215134}, /* East Asian ideograph */ + {"\xA2", 0, 0x215136}, /* East Asian ideograph */ + {"\xB6", 0, 0x215137}, /* East Asian ideograph */ + {"\xA1", 0, 0x215138}, /* East Asian ideograph */ + {"\xA6", 0, 0x215139}, /* East Asian ideograph */ + {"\xAE", 0, 0x21513A}, /* East Asian ideograph */ + {"\xB2", 0, 0x21513B}, /* East Asian ideograph */ + {"\xB9", 0, 0x21513E}, /* East Asian ideograph */ + {"\x85", 0, 0x227068}, /* East Asian ideograph */ + {"\x81", 0, 0x22706F}, /* East Asian ideograph */ + {"\x9C", 0, 0x22707A}, /* East Asian ideograph */ + {"\x93", 0, 0x22707C}, /* East Asian ideograph */ + {"\x9A", 0, 0x22707E}, /* East Asian ideograph */ + {"\xB0", 0, 0x227122}, /* East Asian ideograph */ + {"\xA7", 0, 0x227129}, /* East Asian ideograph */ + {"\xAA", 0, 0x22712B}, /* East Asian ideograph */ + {"\xAB", 0, 0x22712C}, /* East Asian ideograph */ + {"\xB3", 0, 0x227130}, /* East Asian ideograph */ + {"\x8E", 0, 0x227134}, /* East Asian ideograph */ + {"\xBF", 0, 0x227142}, /* East Asian ideograph */ + {"\xBD", 0, 0x22714F}, /* East Asian ideograph */ + {"\xBB", 0, 0x227154}, /* East Asian ideograph */ + {"\xBA", 0, 0x227158}, /* East Asian ideograph */ + {"\x9B", 0, 0x22715A}, /* East Asian ideograph */ + {"\xB7", 0, 0x287275}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D5773}, /* East Asian ideograph */ + {"\x8F", 0, 0x2E7062}, /* East Asian ideograph */ + {"\xA3", 0, 0x2E717C}, /* East Asian ideograph */ + {"\x96", 0, 0x2E735D}, /* East Asian ideograph */ + {"\x83", 0, 0x333D42}, /* East Asian ideograph */ + {"\x8C", 0, 0x33513C}, /* East Asian ideograph */ + {"\xB5", 0, 0x395179}, /* East Asian ideograph */ + {"\x8B", 0, 0x4C735D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page197 = { + marc8r_9page197_flat, 0 +}; +/* PAGE 196 */ +struct yaz_iconv_trie_flat marc8r_9page196_flat[] = { + {"\x80", 0, 0x215070}, /* East Asian ideograph */ + {"\x82", 0, 0x215071}, /* East Asian ideograph */ + {"\x85", 0, 0x215072}, /* East Asian ideograph */ + {"\x89", 0, 0x215073}, /* East Asian ideograph */ + {"\x84", 0, 0x215074}, /* East Asian ideograph */ + {"\x87", 0, 0x215075}, /* East Asian ideograph */ + {"\xA1", 0, 0x215076}, /* East Asian ideograph */ + {"\x8B", 0, 0x215077}, /* East Asian ideograph */ + {"\x8A", 0, 0x215078}, /* East Asian ideograph */ + {"\xA0", 0, 0x215079}, /* East Asian ideograph */ + {"\x9C", 0, 0x21507A}, /* East Asian ideograph */ + {"\xA2", 0, 0x21507B}, /* East Asian ideograph */ + {"\x95", 0, 0x21507C}, /* East Asian ideograph */ + {"\x94", 0, 0x21507D}, /* East Asian ideograph */ + {"\x90", 0, 0x21507E}, /* East Asian ideograph */ + {"\x97", 0, 0x215121}, /* East Asian ideograph */ + {"\x8D", 0, 0x215122}, /* East Asian ideograph (variant of EACC 455122) */ + {"\x9A", 0, 0x215123}, /* East Asian ideograph */ + {"\x99", 0, 0x215124}, /* East Asian ideograph */ + {"\x9B", 0, 0x215125}, /* East Asian ideograph */ + {"\xBC", 0, 0x215128}, /* East Asian ideograph */ + {"\xAE", 0, 0x215129}, /* East Asian ideograph */ + {"\xB9", 0, 0x21512A}, /* East Asian ideograph */ + {"\xB0", 0, 0x21512C}, /* East Asian ideograph */ + {"\xB3", 0, 0x21512D}, /* East Asian ideograph */ + {"\xAF", 0, 0x21512E}, /* East Asian ideograph */ + {"\xAB", 0, 0x215135}, /* East Asian ideograph */ + {"\x86", 0, 0x227042}, /* East Asian ideograph */ + {"\x83", 0, 0x227044}, /* East Asian ideograph */ + {"\x88", 0, 0x227045}, /* East Asian ideograph */ + {"\x8F", 0, 0x227049}, /* East Asian ideograph */ + {"\x93", 0, 0x22704A}, /* East Asian ideograph */ + {"\x98", 0, 0x227050}, /* East Asian ideograph */ + {"\x9E", 0, 0x227051}, /* East Asian ideograph */ + {"\x9D", 0, 0x227052}, /* East Asian ideograph */ + {"\xB5", 0, 0x227059}, /* East Asian ideograph */ + {"\xBD", 0, 0x22705A}, /* East Asian ideograph */ + {"\xBA", 0, 0x227061}, /* East Asian ideograph */ + {"\xB2", 0, 0x227062}, /* East Asian ideograph */ + {"\xB1", 0, 0x227065}, /* East Asian ideograph */ + {"\xBF", 0, 0x22706A}, /* East Asian ideograph */ + {"\xA9", 0, 0x22706C}, /* East Asian ideograph */ + {"\xBE", 0, 0x227071}, /* East Asian ideograph */ + {"\xA7", 0, 0x275144}, /* East Asian ideograph */ + {"\xA5", 0, 0x2D5129}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D514D}, /* East Asian ideograph */ + {"\x8D", 0, 0x455122}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page196 = { + marc8r_9page196_flat, 0 +}; +/* PAGE 195 */ +struct yaz_iconv_trie_flat marc8r_9page195_flat[] = { + {"\x8A", 0, 0x215062}, /* East Asian ideograph */ + {"\x96", 0, 0x215063}, /* East Asian ideograph */ + {"\x95", 0, 0x215064}, /* East Asian ideograph */ + {"\xA0", 0, 0x215065}, /* East Asian ideograph */ + {"\x9C", 0, 0x215066}, /* East Asian ideograph */ + {"\x9F", 0, 0x215067}, /* East Asian ideograph */ + {"\x9E", 0, 0x215068}, /* East Asian ideograph */ + {"\xA2", 0, 0x215069}, /* East Asian ideograph */ + {"\x99", 0, 0x21506A}, /* East Asian ideograph */ + {"\xA7", 0, 0x21506B}, /* East Asian ideograph */ + {"\xAF", 0, 0x21506C}, /* East Asian ideograph */ + {"\xBB", 0, 0x21506E}, /* East Asian ideograph */ + {"\xBE", 0, 0x21506F}, /* East Asian ideograph */ + {"\x82", 0, 0x226F64}, /* East Asian ideograph */ + {"\x8E", 0, 0x226F66}, /* East Asian ideograph */ + {"\x88", 0, 0x226F68}, /* East Asian ideograph */ + {"\x85", 0, 0x226F69}, /* East Asian ideograph */ + {"\x8C", 0, 0x226F6D}, /* East Asian ideograph */ + {"\x89", 0, 0x226F6F}, /* East Asian ideograph */ + {"\x92", 0, 0x226F71}, /* East Asian ideograph */ + {"\x97", 0, 0x226F75}, /* East Asian ideograph */ + {"\xA1", 0, 0x226F77}, /* East Asian ideograph */ + {"\xA8", 0, 0x226F7B}, /* East Asian ideograph (variant of EACC 4C6F7B) */ + {"\x9D", 0, 0x227022}, /* East Asian ideograph */ + {"\xAD", 0, 0x227028}, /* East Asian ideograph */ + {"\xB0", 0, 0x22702E}, /* East Asian ideograph */ + {"\xB2", 0, 0x227030}, /* East Asian ideograph */ + {"\xB4", 0, 0x227035}, /* East Asian ideograph */ + {"\xB6", 0, 0x227039}, /* East Asian ideograph */ + {"\xBB", 0, 0x273169}, /* East Asian ideograph (duplicate simplified) */ + {"\xBB", 0, 0x275175}, /* East Asian ideograph (duplicate simplified) */ + {"\x81", 0, 0x287022}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D506F}, /* East Asian ideograph */ + {"\x87", 0, 0x2F5158}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B513B}, /* East Asian ideograph */ + {"\x8D", 0, 0x4C6F43}, /* East Asian ideograph */ + {"\xA8", 0, 0x4C6F7B}, /* East Asian ideograph */ + {"\x80", 0, 0x696471}, /* East Asian ideograph */ + {"\x98", 0, 0x696474}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page195 = { + marc8r_9page195_flat, 0 +}; +/* PAGE 194 */ +struct yaz_iconv_trie_flat marc8r_9page194_flat[] = { + {"\x89", 0, 0x215057}, /* East Asian ideograph */ + {"\x92", 0, 0x215058}, /* East Asian ideograph */ + {"\x97", 0, 0x215059}, /* East Asian ideograph */ + {"\x9F", 0, 0x21505A}, /* East Asian ideograph */ + {"\xA5", 0, 0x21505B}, /* East Asian ideograph */ + {"\xA4", 0, 0x21505C}, /* East Asian ideograph */ + {"\xB1", 0, 0x21505D}, /* East Asian ideograph */ + {"\xB3", 0, 0x21505E}, /* East Asian ideograph */ + {"\xBD", 0, 0x21505F}, /* East Asian ideograph */ + {"\xB9", 0, 0x215060}, /* East Asian ideograph */ + {"\xBE", 0, 0x215061}, /* East Asian ideograph (variant of EACC 4B5061) */ + {"\x81", 0, 0x226F21}, /* East Asian ideograph */ + {"\x8E", 0, 0x226F28}, /* East Asian ideograph */ + {"\x91", 0, 0x226F29}, /* East Asian ideograph */ + {"\x83", 0, 0x226F2A}, /* East Asian ideograph */ + {"\x8D", 0, 0x226F2C}, /* East Asian ideograph */ + {"\x99", 0, 0x226F3A}, /* East Asian ideograph */ + {"\x98", 0, 0x226F3B}, /* East Asian ideograph */ + {"\x9C", 0, 0x226F3E}, /* East Asian ideograph */ + {"\x95", 0, 0x226F40}, /* East Asian ideograph */ + {"\xA7", 0, 0x226F42}, /* East Asian ideograph */ + {"\xA2", 0, 0x226F43}, /* East Asian ideograph */ + {"\x9E", 0, 0x226F45}, /* East Asian ideograph */ + {"\xA9", 0, 0x226F46}, /* East Asian ideograph */ + {"\xA8", 0, 0x226F48}, /* East Asian ideograph */ + {"\xA1", 0, 0x226F49}, /* East Asian ideograph */ + {"\xAC", 0, 0x226F4A}, /* East Asian ideograph */ + {"\xA6", 0, 0x226F4C}, /* East Asian ideograph */ + {"\xB2", 0, 0x226F54}, /* East Asian ideograph */ + {"\xBB", 0, 0x226F58}, /* East Asian ideograph */ + {"\xBF", 0, 0x226F59}, /* East Asian ideograph */ + {"\xBA", 0, 0x226F5E}, /* East Asian ideograph */ + {"\xBC", 0, 0x226F5F}, /* East Asian ideograph */ + {"\x8B", 0, 0x275060}, /* East Asian ideograph */ + {"\xAA", 0, 0x275068}, /* East Asian ideograph */ + {"\xAE", 0, 0x27506B}, /* East Asian ideograph */ + {"\x9D", 0, 0x287030}, /* East Asian ideograph */ + {"\x9B", 0, 0x2D5321}, /* East Asian ideograph */ + {"\xBE", 0, 0x4B5061}, /* East Asian ideograph */ + {"\xAB", 0, 0x4B506C}, /* East Asian ideograph */ + {"\x82", 0, 0x693729}, /* East Asian ideograph */ + {"\x90", 0, 0x696464}, /* East Asian ideograph */ + {"\xAD", 0, 0x696466}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page194 = { + marc8r_9page194_flat, 0 +}; +/* PAGE 193 */ +struct yaz_iconv_trie_flat marc8r_9page193_flat[] = { + {"\x83", 0, 0x21504C}, /* East Asian ideograph */ + {"\x8C", 0, 0x21504D}, /* East Asian ideograph */ + {"\x8D", 0, 0x21504E}, /* East Asian ideograph */ + {"\x90", 0, 0x21504F}, /* East Asian ideograph */ + {"\xA0", 0, 0x215050}, /* East Asian ideograph */ + {"\x9F", 0, 0x215051}, /* East Asian ideograph */ + {"\xA4", 0, 0x215052}, /* East Asian ideograph */ + {"\xAC", 0, 0x215053}, /* East Asian ideograph */ + {"\xAE", 0, 0x215054}, /* East Asian ideograph */ + {"\xB2", 0, 0x215055}, /* East Asian ideograph */ + {"\xB3", 0, 0x215056}, /* East Asian ideograph */ + {"\x80", 0, 0x226E2A}, /* East Asian ideograph */ + {"\x82", 0, 0x226E3B}, /* East Asian ideograph */ + {"\x8E", 0, 0x226E46}, /* East Asian ideograph */ + {"\x9D", 0, 0x226E54}, /* East Asian ideograph */ + {"\x9C", 0, 0x226E56}, /* East Asian ideograph */ + {"\x9A", 0, 0x226E57}, /* East Asian ideograph */ + {"\x9B", 0, 0x226E58}, /* East Asian ideograph */ + {"\x99", 0, 0x226E59}, /* East Asian ideograph */ + {"\x9E", 0, 0x226E5B}, /* East Asian ideograph */ + {"\xA7", 0, 0x226E5C}, /* East Asian ideograph */ + {"\xA3", 0, 0x226E5E}, /* East Asian ideograph */ + {"\xA8", 0, 0x226E61}, /* East Asian ideograph */ + {"\xA5", 0, 0x226E62}, /* East Asian ideograph */ + {"\xAF", 0, 0x226E6F}, /* East Asian ideograph */ + {"\xB5", 0, 0x226E75}, /* East Asian ideograph */ + {"\xBE", 0, 0x226E79}, /* East Asian ideograph */ + {"\xB8", 0, 0x226E7A}, /* East Asian ideograph */ + {"\xBD", 0, 0x226E7D}, /* East Asian ideograph */ + {"\x81", 0, 0x275051}, /* East Asian ideograph */ + {"\xBB", 0, 0x276053}, /* East Asian ideograph */ + {"\xB4", 0, 0x287035}, /* East Asian ideograph */ + {"\x98", 0, 0x2D504F}, /* East Asian ideograph */ + {"\xBC", 0, 0x34682A}, /* East Asian ideograph */ + {"\x96", 0, 0x4B5052}, /* East Asian ideograph */ + {"\x94", 0, 0x4B5632}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page193 = { + marc8r_9page193_flat, 0 +}; +/* PAGE 192 */ +struct yaz_iconv_trie_flat marc8r_9page192_flat[] = { + {"\x91", 0, 0x215036}, /* East Asian ideograph */ + {"\x87", 0, 0x21503D}, /* East Asian ideograph */ + {"\x8D", 0, 0x21503E}, /* East Asian ideograph */ + {"\xA1", 0, 0x215041}, /* East Asian ideograph */ + {"\xAB", 0, 0x215042}, /* East Asian ideograph */ + {"\xAA", 0, 0x215043}, /* East Asian ideograph */ + {"\xA7", 0, 0x215044}, /* East Asian ideograph */ + {"\x9E", 0, 0x215045}, /* East Asian ideograph */ + {"\xA3", 0, 0x215046}, /* East Asian ideograph */ + {"\xBF", 0, 0x215047}, /* East Asian ideograph */ + {"\xBE", 0, 0x215048}, /* East Asian ideograph */ + {"\xB8", 0, 0x215049}, /* East Asian ideograph */ + {"\xB7", 0, 0x21504A}, /* East Asian ideograph */ + {"\xBD", 0, 0x21504B}, /* East Asian ideograph */ + {"\x86", 0, 0x226D3B}, /* East Asian ideograph */ + {"\x8F", 0, 0x226D41}, /* East Asian ideograph */ + {"\x8B", 0, 0x226D46}, /* East Asian ideograph */ + {"\x80", 0, 0x226D47}, /* East Asian ideograph */ + {"\x8C", 0, 0x226D4B}, /* East Asian ideograph */ + {"\x89", 0, 0x226D5A}, /* East Asian ideograph */ + {"\x83", 0, 0x226D5B}, /* East Asian ideograph */ + {"\x9C", 0, 0x226D5F}, /* East Asian ideograph */ + {"\xA6", 0, 0x226D61}, /* East Asian ideograph */ + {"\xA8", 0, 0x226D62}, /* East Asian ideograph */ + {"\xA0", 0, 0x226D63}, /* East Asian ideograph */ + {"\x9F", 0, 0x226D66}, /* East Asian ideograph */ + {"\xAF", 0, 0x226D68}, /* East Asian ideograph */ + {"\xB0", 0, 0x226D75}, /* East Asian ideograph */ + {"\xB5", 0, 0x226E27}, /* East Asian ideograph */ + {"\xB9", 0, 0x226E30}, /* East Asian ideograph */ + {"\xBB", 0, 0x226E34}, /* East Asian ideograph */ + {"\xB4", 0, 0x226E35}, /* East Asian ideograph */ + {"\x96", 0, 0x286E69}, /* East Asian ideograph */ + {"\x94", 0, 0x4B5036}, /* East Asian ideograph */ + {"\x92", 0, 0x4B503B}, /* East Asian ideograph */ + {"\xA7", 0, 0x4B5044}, /* East Asian ideograph (variant of EACC 215044) */ + {"\xB1", 0, 0x4C6E42}, /* East Asian ideograph */ + {"\x93", 0, 0x696449}, /* East Asian ideograph */ + {"\x97", 0, 0x69644C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page192 = { + marc8r_9page192_flat, 0 +}; +/* PAGE 191 */ +struct yaz_iconv_trie_flat marc8r_9page191_flat[] = { + {"\x87", 0, 0x21502E}, /* East Asian ideograph */ + {"\x84", 0, 0x215030}, /* East Asian ideograph */ + {"\x80", 0, 0x215033}, /* East Asian ideograph */ + {"\x86", 0, 0x215034}, /* East Asian ideograph */ + {"\x81", 0, 0x215035}, /* East Asian ideograph */ + {"\x99", 0, 0x215037}, /* East Asian ideograph */ + {"\x9B", 0, 0x215038}, /* East Asian ideograph */ + {"\xA4", 0, 0x215039}, /* East Asian ideograph */ + {"\x89", 0, 0x21503A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21503B}, /* East Asian ideograph */ + {"\xA9", 0, 0x21503C}, /* East Asian ideograph */ + {"\xBE", 0, 0x21503F}, /* East Asian ideograph */ + {"\xB7", 0, 0x215040}, /* East Asian ideograph */ + {"\x8B", 0, 0x226C58}, /* East Asian ideograph */ + {"\x8F", 0, 0x226C5A}, /* East Asian ideograph */ + {"\x90", 0, 0x226C5C}, /* East Asian ideograph */ + {"\x8C", 0, 0x226C6F}, /* East Asian ideograph */ + {"\x9D", 0, 0x226D22}, /* East Asian ideograph */ + {"\xA5", 0, 0x226D24}, /* East Asian ideograph */ + {"\xA8", 0, 0x226D29}, /* East Asian ideograph */ + {"\xB9", 0, 0x226D2E}, /* East Asian ideograph */ + {"\x94", 0, 0x226D2F}, /* East Asian ideograph */ + {"\x9F", 0, 0x226D32}, /* East Asian ideograph */ + {"\x98", 0, 0x226D35}, /* East Asian ideograph */ + {"\xAA", 0, 0x226D37}, /* East Asian ideograph (unrelated variant of EACC 3A6A7C) */ + {"\xB0", 0, 0x226D3E}, /* East Asian ideograph */ + {"\xB4", 0, 0x226D4F}, /* East Asian ideograph */ + {"\xB3", 0, 0x226D54}, /* East Asian ideograph */ + {"\xBC", 0, 0x226D5C}, /* East Asian ideograph */ + {"\x93", 0, 0x27503E}, /* East Asian ideograph */ + {"\x91", 0, 0x275046}, /* East Asian ideograph */ + {"\xAE", 0, 0x27504C}, /* East Asian ideograph */ + {"\xB1", 0, 0x275053}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D3D4E}, /* East Asian ideograph */ + {"\xA0", 0, 0x2E6C26}, /* East Asian ideograph */ + {"\xA6", 0, 0x2E6C46}, /* East Asian ideograph */ + {"\x9A", 0, 0x343E38}, /* East Asian ideograph */ + {"\xAD", 0, 0x395050}, /* East Asian ideograph */ + {"\xAA", 0, 0x3A6A7C}, /* East Asian ideograph */ + {"\xB6", 0, 0x69644E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page191 = { + marc8r_9page191_flat, 0 +}; +/* PAGE 190 */ +struct yaz_iconv_trie_flat marc8r_9page190_flat[] = { + {"\xA1", 0, 0x215027}, /* East Asian ideograph */ + {"\x94", 0, 0x215028}, /* East Asian ideograph */ + {"\x95", 0, 0x215029}, /* East Asian ideograph */ + {"\x9D", 0, 0x21502A}, /* East Asian ideograph */ + {"\x8B", 0, 0x21502B}, /* East Asian ideograph */ + {"\x97", 0, 0x21502C}, /* East Asian ideograph */ + {"\x8F", 0, 0x21502D}, /* East Asian ideograph */ + {"\xAD", 0, 0x21502F}, /* East Asian ideograph */ + {"\xB1", 0, 0x215031}, /* East Asian ideograph */ + {"\xB4", 0, 0x215032}, /* East Asian ideograph */ + {"\x9A", 0, 0x216B5F}, /* East Asian ideograph */ + {"\x9C", 0, 0x226C2D}, /* East Asian ideograph */ + {"\x92", 0, 0x226C33}, /* East Asian ideograph */ + {"\x91", 0, 0x226C34}, /* East Asian ideograph */ + {"\x90", 0, 0x226C35}, /* East Asian ideograph */ + {"\xA3", 0, 0x226C38}, /* East Asian ideograph */ + {"\x8D", 0, 0x226C3A}, /* East Asian ideograph */ + {"\x85", 0, 0x226C41}, /* East Asian ideograph */ + {"\x8E", 0, 0x226C43}, /* East Asian ideograph */ + {"\x98", 0, 0x226C44}, /* East Asian ideograph */ + {"\x86", 0, 0x226C46}, /* East Asian ideograph */ + {"\x99", 0, 0x226C48}, /* East Asian ideograph */ + {"\xB2", 0, 0x226C52}, /* East Asian ideograph */ + {"\xB8", 0, 0x226C59}, /* East Asian ideograph */ + {"\xBE", 0, 0x226C60}, /* East Asian ideograph */ + {"\xAC", 0, 0x275038}, /* East Asian ideograph */ + {"\x80", 0, 0x275041}, /* East Asian ideograph */ + {"\xAB", 0, 0x275042}, /* East Asian ideograph */ + {"\xAA", 0, 0x275045}, /* East Asian ideograph */ + {"\xA9", 0, 0x275054}, /* East Asian ideograph */ + {"\xA7", 0, 0x286C58}, /* East Asian ideograph */ + {"\xA6", 0, 0x286D47}, /* East Asian ideograph */ + {"\xA8", 0, 0x286E56}, /* East Asian ideograph */ + {"\x87", 0, 0x2D3224}, /* East Asian ideograph */ + {"\xA0", 0, 0x2E3E3F}, /* East Asian ideograph */ + {"\x9F", 0, 0x4C6C46}, /* East Asian ideograph */ + {"\xA2", 0, 0x70736E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page190 = { + marc8r_9page190_flat, 0 +}; +/* PAGE 189 */ +struct yaz_iconv_trie_flat marc8r_9page189_flat[] = { + {"\x86", 0, 0x214F79}, /* East Asian ideograph */ + {"\x89", 0, 0x214F7A}, /* East Asian ideograph */ + {"\x90", 0, 0x214F7B}, /* East Asian ideograph */ + {"\x96", 0, 0x214F7C}, /* East Asian ideograph */ + {"\x92", 0, 0x214F7D}, /* East Asian ideograph */ + {"\x8B", 0, 0x214F7E}, /* East Asian ideograph */ + {"\x8D", 0, 0x215021}, /* East Asian ideograph */ + {"\x8F", 0, 0x215022}, /* East Asian ideograph */ + {"\x94", 0, 0x215023}, /* East Asian ideograph */ + {"\xA0", 0, 0x215024}, /* East Asian ideograph */ + {"\xB7", 0, 0x215025}, /* East Asian ideograph */ + {"\xB5", 0, 0x215026}, /* East Asian ideograph */ + {"\x8A", 0, 0x226B52}, /* East Asian ideograph */ + {"\x99", 0, 0x226B53}, /* East Asian ideograph */ + {"\x87", 0, 0x226B55}, /* East Asian ideograph */ + {"\x98", 0, 0x226B59}, /* East Asian ideograph */ + {"\xAC", 0, 0x226B5B}, /* East Asian ideograph */ + {"\x88", 0, 0x226B60}, /* East Asian ideograph */ + {"\x85", 0, 0x226B61}, /* East Asian ideograph */ + {"\x8C", 0, 0x226B62}, /* East Asian ideograph */ + {"\x8E", 0, 0x226B63}, /* East Asian ideograph */ + {"\xA6", 0, 0x226B68}, /* East Asian ideograph */ + {"\xA4", 0, 0x226B6C}, /* East Asian ideograph */ + {"\xA9", 0, 0x226B6E}, /* East Asian ideograph */ + {"\xAD", 0, 0x226B70}, /* East Asian ideograph */ + {"\xA2", 0, 0x226B74}, /* East Asian ideograph */ + {"\xAE", 0, 0x226B75}, /* East Asian ideograph */ + {"\xB4", 0, 0x226B76}, /* East Asian ideograph */ + {"\xB2", 0, 0x226B79}, /* East Asian ideograph */ + {"\xB8", 0, 0x226B7A}, /* East Asian ideograph */ + {"\xAF", 0, 0x226B7B}, /* East Asian ideograph */ + {"\xA7", 0, 0x226B7C}, /* East Asian ideograph */ + {"\xA5", 0, 0x226B7E}, /* East Asian ideograph */ + {"\xB1", 0, 0x226C26}, /* East Asian ideograph */ + {"\xB0", 0, 0x226C27}, /* East Asian ideograph */ + {"\xB3", 0, 0x226C29}, /* East Asian ideograph */ + {"\x91", 0, 0x27503A}, /* East Asian ideograph */ + {"\x9B", 0, 0x27503C}, /* East Asian ideograph */ + {"\xBE", 0, 0x27504B}, /* East Asian ideograph */ + {"\xB9", 0, 0x27504D}, /* East Asian ideograph */ + {"\xBE", 0, 0x275052}, /* East Asian ideograph (duplicate simplified) */ + {"\x9A", 0, 0x286D54}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D4F7C}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D502D}, /* East Asian ideograph */ + {"\x99", 0, 0x2E6C3E}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B4F7B}, /* East Asian ideograph */ + {"\x8C", 0, 0x4C6B62}, /* East Asian ideograph (variant of EACC 226B62) */ + {"\xBB", 0, 0x707360}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page189 = { + marc8r_9page189_flat, 0 +}; +/* PAGE 188 */ +struct yaz_iconv_trie_flat marc8r_9page188_flat[] = { + {"\x86", 0, 0x214F70}, /* East Asian ideograph */ + {"\x91", 0, 0x214F71}, /* East Asian ideograph */ + {"\xA0", 0, 0x214F72}, /* East Asian ideograph */ + {"\xAC", 0, 0x214F73}, /* East Asian ideograph */ + {"\xA8", 0, 0x214F74}, /* East Asian ideograph */ + {"\x9B", 0, 0x214F75}, /* East Asian ideograph */ + {"\x9E", 0, 0x214F76}, /* East Asian ideograph */ + {"\x99", 0, 0x214F77}, /* East Asian ideograph */ + {"\xA6", 0, 0x214F78}, /* East Asian ideograph */ + {"\xB9", 0, 0x226B27}, /* East Asian ideograph */ + {"\x8F", 0, 0x226B2D}, /* East Asian ideograph */ + {"\x88", 0, 0x226B2E}, /* East Asian ideograph */ + {"\x8A", 0, 0x226B33}, /* East Asian ideograph */ + {"\xB5", 0, 0x226B35}, /* East Asian ideograph */ + {"\xA5", 0, 0x226B36}, /* East Asian ideograph */ + {"\xB8", 0, 0x226B39}, /* East Asian ideograph */ + {"\xBB", 0, 0x226B3B}, /* East Asian ideograph */ + {"\xA4", 0, 0x226B3F}, /* East Asian ideograph */ + {"\xB3", 0, 0x226B40}, /* East Asian ideograph */ + {"\xAA", 0, 0x226B42}, /* East Asian ideograph */ + {"\x98", 0, 0x226B44}, /* East Asian ideograph */ + {"\xB1", 0, 0x226B47}, /* East Asian ideograph */ + {"\xAB", 0, 0x226B4A}, /* East Asian ideograph */ + {"\xB7", 0, 0x226B4B}, /* East Asian ideograph */ + {"\x9F", 0, 0x226B4D}, /* East Asian ideograph */ + {"\x84", 0, 0x226B54}, /* East Asian ideograph (variant of EACC 2E6B54) */ + {"\x94", 0, 0x274F79}, /* East Asian ideograph */ + {"\x8B", 0, 0x275021}, /* East Asian ideograph */ + {"\xBA", 0, 0x27502B}, /* East Asian ideograph */ + {"\x83", 0, 0x275039}, /* East Asian ideograph */ + {"\xBC", 0, 0x275050}, /* East Asian ideograph */ + {"\x95", 0, 0x286B7C}, /* East Asian ideograph */ + {"\xBE", 0, 0x286E68}, /* East Asian ideograph */ + {"\x84", 0, 0x2E6B54}, /* East Asian ideograph */ + {"\xAE", 0, 0x2E6C27}, /* East Asian ideograph */ + {"\xB6", 0, 0x4B4E21}, /* East Asian ideograph */ + {"\x82", 0, 0x696373}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page188 = { + marc8r_9page188_flat, 0 +}; +/* PAGE 187 */ +struct yaz_iconv_trie_flat marc8r_9page187_flat[] = { + {"\x85", 0, 0x214F61}, /* East Asian ideograph */ + {"\x84", 0, 0x214F62}, /* East Asian ideograph */ + {"\x87", 0, 0x214F63}, /* East Asian ideograph */ + {"\x8A", 0, 0x214F64}, /* East Asian ideograph */ + {"\x8B", 0, 0x214F65}, /* East Asian ideograph */ + {"\x99", 0, 0x214F66}, /* East Asian ideograph */ + {"\xA5", 0, 0x214F67}, /* East Asian ideograph */ + {"\xA3", 0, 0x214F68}, /* East Asian ideograph */ + {"\xAD", 0, 0x214F69}, /* East Asian ideograph */ + {"\xAF", 0, 0x214F6A}, /* East Asian ideograph */ + {"\xB6", 0, 0x214F6B}, /* East Asian ideograph */ + {"\xB9", 0, 0x214F6C}, /* East Asian ideograph */ + {"\xBA", 0, 0x214F6D}, /* East Asian ideograph */ + {"\xBF", 0, 0x214F6E}, /* East Asian ideograph */ + {"\xBD", 0, 0x214F6F}, /* East Asian ideograph */ + {"\xA0", 0, 0x216032}, /* East Asian ideograph */ + {"\x9F", 0, 0x216033}, /* East Asian ideograph */ + {"\x8D", 0, 0x226A49}, /* East Asian ideograph */ + {"\x8F", 0, 0x226A4B}, /* East Asian ideograph */ + {"\x91", 0, 0x226A4F}, /* East Asian ideograph */ + {"\x93", 0, 0x226A51}, /* East Asian ideograph */ + {"\x94", 0, 0x226A52}, /* East Asian ideograph */ + {"\x95", 0, 0x226A54}, /* East Asian ideograph */ + {"\x9A", 0, 0x226A55}, /* East Asian ideograph */ + {"\xA1", 0, 0x226A5A}, /* East Asian ideograph */ + {"\xA6", 0, 0x226A5E}, /* East Asian ideograph */ + {"\xAB", 0, 0x226A66}, /* East Asian ideograph */ + {"\xB0", 0, 0x226A6B}, /* East Asian ideograph */ + {"\xB5", 0, 0x226A76}, /* East Asian ideograph */ + {"\xBE", 0, 0x226A7C}, /* East Asian ideograph */ + {"\x9E", 0, 0x274F6B}, /* East Asian ideograph */ + {"\x96", 0, 0x275957}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D3032}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D3164}, /* East Asian ideograph */ + {"\x92", 0, 0x2D3932}, /* East Asian ideograph */ + {"\x88", 0, 0x2D4947}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D4F6B}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D5957}, /* East Asian ideograph */ + {"\x9C", 0, 0x33632B}, /* East Asian ideograph */ + {"\x83", 0, 0x4B4947}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page187 = { + marc8r_9page187_flat, 0 +}; +/* PAGE 186 */ +struct yaz_iconv_trie_flat marc8r_9page186_flat[] = { + {"\x81", 0, 0x214F52}, /* East Asian ideograph */ + {"\x84", 0, 0x214F53}, /* East Asian ideograph */ + {"\x88", 0, 0x214F54}, /* East Asian ideograph */ + {"\x92", 0, 0x214F55}, /* East Asian ideograph */ + {"\x95", 0, 0x214F56}, /* East Asian ideograph */ + {"\x98", 0, 0x214F57}, /* East Asian ideograph */ + {"\x96", 0, 0x214F58}, /* East Asian ideograph */ + {"\x97", 0, 0x214F59}, /* East Asian ideograph */ + {"\x9F", 0, 0x214F5A}, /* East Asian ideograph */ + {"\xA0", 0, 0x214F5B}, /* East Asian ideograph */ + {"\xAA", 0, 0x214F5C}, /* East Asian ideograph */ + {"\xA9", 0, 0x214F5D}, /* East Asian ideograph */ + {"\xAF", 0, 0x214F5E}, /* East Asian ideograph */ + {"\xAE", 0, 0x214F5F}, /* East Asian ideograph */ + {"\xBA", 0, 0x214F60}, /* East Asian ideograph */ + {"\x80", 0, 0x22696B}, /* East Asian ideograph */ + {"\x85", 0, 0x226970}, /* East Asian ideograph */ + {"\x86", 0, 0x226975}, /* East Asian ideograph */ + {"\x8A", 0, 0x226978}, /* East Asian ideograph */ + {"\x94", 0, 0x22697A}, /* East Asian ideograph */ + {"\xA3", 0, 0x226A28}, /* East Asian ideograph */ + {"\x9E", 0, 0x226A2B}, /* East Asian ideograph */ + {"\xA7", 0, 0x226A2C}, /* East Asian ideograph */ + {"\xA8", 0, 0x226A2E}, /* East Asian ideograph */ + {"\xAC", 0, 0x226A31}, /* East Asian ideograph */ + {"\xB3", 0, 0x226A36}, /* East Asian ideograph */ + {"\xBD", 0, 0x226A3A}, /* East Asian ideograph */ + {"\xB6", 0, 0x226A3C}, /* East Asian ideograph */ + {"\xB8", 0, 0x226A3D}, /* East Asian ideograph */ + {"\xB5", 0, 0x226A3E}, /* East Asian ideograph */ + {"\xBB", 0, 0x226A3F}, /* East Asian ideograph */ + {"\xBF", 0, 0x226A43}, /* East Asian ideograph */ + {"\x9D", 0, 0x274F5D}, /* East Asian ideograph */ + {"\xA5", 0, 0x274F60}, /* East Asian ideograph */ + {"\x8D", 0, 0x274F61}, /* East Asian ideograph */ + {"\x9C", 0, 0x274F62}, /* East Asian ideograph */ + {"\xA6", 0, 0x274F63}, /* East Asian ideograph */ + {"\x83", 0, 0x274F64}, /* East Asian ideograph */ + {"\xAD", 0, 0x286A3C}, /* East Asian ideograph */ + {"\xB0", 0, 0x2D4F5E}, /* East Asian ideograph */ + {"\x93", 0, 0x334F59}, /* East Asian ideograph */ + {"\x91", 0, 0x334F5E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page186 = { + marc8r_9page186_flat, 0 +}; +/* PAGE 185 */ +struct yaz_iconv_trie_flat marc8r_9page185_flat[] = { + {"\x80", 0, 0x214F40}, /* East Asian ideograph */ + {"\x8D", 0, 0x214F44}, /* East Asian ideograph */ + {"\x8E", 0, 0x214F45}, /* East Asian ideograph */ + {"\x8C", 0, 0x214F46}, /* East Asian ideograph */ + {"\x86", 0, 0x214F47}, /* East Asian ideograph */ + {"\x97", 0, 0x214F48}, /* East Asian ideograph */ + {"\xA1", 0, 0x214F49}, /* East Asian ideograph */ + {"\xA2", 0, 0x214F4A}, /* East Asian ideograph */ + {"\xAB", 0, 0x214F4B}, /* East Asian ideograph */ + {"\xA9", 0, 0x214F4C}, /* East Asian ideograph */ + {"\xB4", 0, 0x214F4D}, /* East Asian ideograph */ + {"\xB6", 0, 0x214F4E}, /* East Asian ideograph */ + {"\xB9", 0, 0x214F4F}, /* East Asian ideograph */ + {"\xBA", 0, 0x214F50}, /* East Asian ideograph */ + {"\xBF", 0, 0x214F51}, /* East Asian ideograph */ + {"\x88", 0, 0x226939}, /* East Asian ideograph */ + {"\x8B", 0, 0x22693D}, /* East Asian ideograph */ + {"\x87", 0, 0x22693E}, /* East Asian ideograph */ + {"\x84", 0, 0x22693F}, /* East Asian ideograph */ + {"\x9C", 0, 0x226940}, /* East Asian ideograph */ + {"\x9F", 0, 0x22694D}, /* East Asian ideograph */ + {"\xA0", 0, 0x22694F}, /* East Asian ideograph */ + {"\xAE", 0, 0x226957}, /* East Asian ideograph */ + {"\xB0", 0, 0x22695F}, /* East Asian ideograph */ + {"\xB5", 0, 0x226966}, /* East Asian ideograph */ + {"\xB8", 0, 0x226969}, /* East Asian ideograph */ + {"\x91", 0, 0x274F49}, /* East Asian ideograph */ + {"\xB7", 0, 0x274F5F}, /* East Asian ideograph */ + {"\x82", 0, 0x2D4F48}, /* East Asian ideograph */ + {"\x89", 0, 0x334F3A}, /* East Asian ideograph */ + {"\x85", 0, 0x335065}, /* East Asian ideograph */ + {"\xBD", 0, 0x395E6F}, /* East Asian ideograph */ + {"\x90", 0, 0x4B4F29}, /* East Asian ideograph */ + {"\x8F", 0, 0x4B4F4C}, /* East Asian ideograph */ + {"\xA3", 0, 0x4C695F}, /* East Asian ideograph */ + {"\x83", 0, 0x69634E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page185 = { + marc8r_9page185_flat, 0 +}; +/* PAGE 184 */ +struct yaz_iconv_trie_flat marc8r_9page184_flat[] = { + {"\x85", 0, 0x214F32}, /* East Asian ideograph */ + {"\x8D", 0, 0x214F33}, /* East Asian ideograph */ + {"\x88", 0, 0x214F34}, /* East Asian ideograph */ + {"\x8B", 0, 0x214F35}, /* East Asian ideograph */ + {"\x80", 0, 0x214F36}, /* East Asian ideograph */ + {"\x9F", 0, 0x214F37}, /* East Asian ideograph */ + {"\xA0", 0, 0x214F39}, /* East Asian ideograph */ + {"\x9A", 0, 0x214F3A}, /* East Asian ideograph */ + {"\x94", 0, 0x214F3B}, /* East Asian ideograph */ + {"\xB1", 0, 0x214F3C}, /* East Asian ideograph */ + {"\xAE", 0, 0x214F3D}, /* East Asian ideograph */ + {"\xBF", 0, 0x214F3E}, /* East Asian ideograph */ + {"\xBC", 0, 0x214F3F}, /* East Asian ideograph */ + {"\xBD", 0, 0x214F41}, /* East Asian ideograph */ + {"\xB7", 0, 0x214F42}, /* East Asian ideograph */ + {"\xBB", 0, 0x214F43}, /* East Asian ideograph */ + {"\xA5", 0, 0x223924}, /* East Asian ideograph */ + {"\x82", 0, 0x22684F}, /* East Asian ideograph */ + {"\x8A", 0, 0x226850}, /* East Asian ideograph */ + {"\x89", 0, 0x226854}, /* East Asian ideograph */ + {"\x83", 0, 0x22685C}, /* East Asian ideograph */ + {"\x8C", 0, 0x226861}, /* East Asian ideograph */ + {"\x91", 0, 0x22686B}, /* East Asian ideograph */ + {"\x98", 0, 0x22686C}, /* East Asian ideograph */ + {"\x99", 0, 0x22686F}, /* East Asian ideograph (variant of EACC 2E686F) */ + {"\x9E", 0, 0x226871}, /* East Asian ideograph */ + {"\x97", 0, 0x226876}, /* East Asian ideograph */ + {"\xAD", 0, 0x22687E}, /* East Asian ideograph */ + {"\xAC", 0, 0x226922}, /* East Asian ideograph */ + {"\xA3", 0, 0x274F46}, /* East Asian ideograph */ + {"\xB3", 0, 0x274F4C}, /* East Asian ideograph */ + {"\xBE", 0, 0x2D4F3E}, /* East Asian ideograph */ + {"\x9C", 0, 0x2E3D73}, /* East Asian ideograph */ + {"\x99", 0, 0x2E686F}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B4F43}, /* East Asian ideograph */ + {"\x86", 0, 0x4C695C}, /* East Asian ideograph */ + {"\xB9", 0, 0x4C725D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page184 = { + marc8r_9page184_flat, 0 +}; +/* PAGE 183 */ +struct yaz_iconv_trie_flat marc8r_9page183_flat[] = { + {"\x80", 0, 0x214F24}, /* East Asian ideograph */ + {"\x81", 0, 0x214F25}, /* East Asian ideograph */ + {"\x89", 0, 0x214F27}, /* East Asian ideograph */ + {"\x91", 0, 0x214F28}, /* East Asian ideograph */ + {"\x8B", 0, 0x214F29}, /* East Asian ideograph */ + {"\x92", 0, 0x214F2A}, /* East Asian ideograph */ + {"\xA4", 0, 0x214F2B}, /* East Asian ideograph */ + {"\xA6", 0, 0x214F2C}, /* East Asian ideograph */ + {"\xA3", 0, 0x214F2D}, /* East Asian ideograph */ + {"\x9F", 0, 0x214F2E}, /* East Asian ideograph */ + {"\xA7", 0, 0x214F2F}, /* East Asian ideograph */ + {"\xA9", 0, 0x214F30}, /* East Asian ideograph */ + {"\xBB", 0, 0x214F31}, /* East Asian ideograph */ + {"\x8C", 0, 0x225070}, /* East Asian ideograph */ + {"\x86", 0, 0x226828}, /* East Asian ideograph */ + {"\x88", 0, 0x22682A}, /* East Asian ideograph */ + {"\x94", 0, 0x22682D}, /* East Asian ideograph */ + {"\x95", 0, 0x22682E}, /* East Asian ideograph */ + {"\x96", 0, 0x226832}, /* East Asian ideograph */ + {"\xAC", 0, 0x22683D}, /* East Asian ideograph */ + {"\xAB", 0, 0x22683E}, /* East Asian ideograph (variant of EACC 4C683E) */ + {"\xA1", 0, 0x226842}, /* East Asian ideograph */ + {"\x9D", 0, 0x226844}, /* East Asian ideograph */ + {"\xAD", 0, 0x226845}, /* East Asian ideograph */ + {"\xB8", 0, 0x226848}, /* East Asian ideograph */ + {"\xB0", 0, 0x274F3C}, /* East Asian ideograph */ + {"\x8D", 0, 0x274F3D}, /* East Asian ideograph */ + {"\xAF", 0, 0x274F44}, /* East Asian ideograph */ + {"\xBD", 0, 0x274F4A}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D3C65}, /* East Asian ideograph */ + {"\x90", 0, 0x2D5265}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D5267}, /* East Asian ideograph */ + {"\x98", 0, 0x4B4E67}, /* East Asian ideograph */ + {"\xB0", 0, 0x4B4F3C}, /* East Asian ideograph (variant of EACC 274F3C) */ + {"\xAB", 0, 0x4C683E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page183 = { + marc8r_9page183_flat, 0 +}; +/* PAGE 182 */ +struct yaz_iconv_trie_dir marc8r_9page182_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {210, 0, 0}, + {211, 0, 0}, + {212, 0, 0}, + {213, 0, 0}, + {214, 0, 0}, + {215, 0, 0}, + {216, 0, 0}, + {217, 0, 0}, + {218, 0, 0}, + {219, 0, 0}, + {220, 0, 0}, + {221, 0, 0}, + {222, 0, 0}, + {223, 0, 0}, + {224, 0, 0}, + {225, 0, 0}, + {208, 0, 0}, + {227, 0, 0}, + {226, 0, 0}, + {228, 0, 0}, + {229, 0, 0}, + {230, 0, 0}, + {231, 0, 0}, + {232, 0, 0}, + {233, 0, 0}, + {234, 0, 0}, + {235, 0, 0}, + {236, 0, 0}, + {237, 0, 0}, + {238, 0, 0}, + {239, 0, 0}, + {240, 0, 0}, + {241, 0, 0}, + {242, 0, 0}, + {243, 0, 0}, + {244, 0, 0}, + {245, 0, 0}, + {246, 0, 0}, + {247, 0, 0}, + {248, 0, 0}, + {249, 0, 0}, + {250, 0, 0}, + {251, 0, 0}, + {252, 0, 0}, + {253, 0, 0}, + {254, 0, 0}, + {255, 0, 0}, + {333, 0, 0}, + {257, 0, 0}, + {256, 0, 0}, + {258, 0, 0}, + {259, 0, 0}, + {260, 0, 0}, + {261, 0, 0}, + {262, 0, 0}, + {263, 0, 0}, + {264, 0, 0}, + {265, 0, 0}, + {266, 0, 0}, + {267, 0, 0}, + {268, 0, 0}, + {269, 0, 0}, + {209, 0, 0}, + {270, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page182 = { + 0, marc8r_9page182_dir +}; +/* PAGE 181 */ +struct yaz_iconv_trie_flat marc8r_9page181_flat[] = { + {"\x81", 0, 0x214E74}, /* East Asian ideograph */ + {"\x8F", 0, 0x214E76}, /* East Asian ideograph */ + {"\x8D", 0, 0x214E77}, /* East Asian ideograph */ + {"\x8E", 0, 0x214E78}, /* East Asian ideograph */ + {"\xA6", 0, 0x214E79}, /* East Asian ideograph */ + {"\xA7", 0, 0x214E7A}, /* East Asian ideograph */ + {"\xAA", 0, 0x214E7B}, /* East Asian ideograph */ + {"\xAE", 0, 0x214E7C}, /* East Asian ideograph */ + {"\xB1", 0, 0x214E7D}, /* East Asian ideograph */ + {"\xB9", 0, 0x214E7E}, /* East Asian ideograph */ + {"\xBD", 0, 0x214F21}, /* East Asian ideograph */ + {"\xBE", 0, 0x214F23}, /* East Asian ideograph */ + {"\xBF", 0, 0x214F26}, /* East Asian ideograph */ + {"\x98", 0, 0x22674A}, /* East Asian ideograph */ + {"\x8A", 0, 0x22674B}, /* East Asian ideograph */ + {"\x99", 0, 0x22674D}, /* East Asian ideograph */ + {"\x95", 0, 0x22674E}, /* East Asian ideograph */ + {"\x8B", 0, 0x22674F}, /* East Asian ideograph */ + {"\x96", 0, 0x226750}, /* East Asian ideograph */ + {"\x94", 0, 0x226754}, /* East Asian ideograph */ + {"\x93", 0, 0x226755}, /* East Asian ideograph */ + {"\x9A", 0, 0x22675C}, /* East Asian ideograph */ + {"\xA1", 0, 0x22675F}, /* East Asian ideograph */ + {"\x9B", 0, 0x226760}, /* East Asian ideograph */ + {"\xA3", 0, 0x226761}, /* East Asian ideograph */ + {"\x9D", 0, 0x226764}, /* East Asian ideograph */ + {"\xA9", 0, 0x22676E}, /* East Asian ideograph */ + {"\xAB", 0, 0x226770}, /* East Asian ideograph */ + {"\xA8", 0, 0x226771}, /* East Asian ideograph */ + {"\xB0", 0, 0x226775}, /* East Asian ideograph */ + {"\xB3", 0, 0x22677A}, /* East Asian ideograph */ + {"\xB4", 0, 0x22677B}, /* East Asian ideograph */ + {"\xB8", 0, 0x226822}, /* East Asian ideograph */ + {"\xBA", 0, 0x226823}, /* East Asian ideograph */ + {"\xBC", 0, 0x226825}, /* East Asian ideograph */ + {"\x85", 0, 0x274E7B}, /* East Asian ideograph */ + {"\xBB", 0, 0x275F4F}, /* East Asian ideograph */ + {"\x80", 0, 0x2D4F37}, /* East Asian ideograph */ + {"\xA5", 0, 0x334E73}, /* East Asian ideograph */ + {"\x84", 0, 0x454E75}, /* East Asian ideograph */ + {"\x85", 0, 0x4B4E7B}, /* East Asian ideograph (variant of EACC 274E7B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page181 = { + marc8r_9page181_flat, 0 +}; +/* PAGE 180 */ +struct yaz_iconv_trie_flat marc8r_9page180_flat[] = { + {"\x80", 0, 0x214E60}, /* East Asian ideograph */ + {"\x81", 0, 0x214E62}, /* East Asian ideograph */ + {"\x85", 0, 0x214E63}, /* East Asian ideograph */ + {"\x89", 0, 0x214E64}, /* East Asian ideograph */ + {"\x88", 0, 0x214E65}, /* East Asian ideograph */ + {"\x87", 0, 0x214E66}, /* East Asian ideograph */ + {"\x95", 0, 0x214E67}, /* East Asian ideograph */ + {"\xA0", 0, 0x214E68}, /* East Asian ideograph */ + {"\x90", 0, 0x214E69}, /* East Asian ideograph */ + {"\x96", 0, 0x214E6A}, /* East Asian ideograph */ + {"\x9E", 0, 0x214E6B}, /* East Asian ideograph */ + {"\x9D", 0, 0x214E6C}, /* East Asian ideograph */ + {"\x9F", 0, 0x214E6D}, /* East Asian ideograph */ + {"\x9A", 0, 0x214E6E}, /* East Asian ideograph */ + {"\x97", 0, 0x214E6F}, /* East Asian ideograph */ + {"\xA5", 0, 0x214E70}, /* East Asian ideograph */ + {"\xA8", 0, 0x214E71}, /* East Asian ideograph */ + {"\xAD", 0, 0x214E72}, /* East Asian ideograph */ + {"\xBA", 0, 0x214E73}, /* East Asian ideograph */ + {"\xBF", 0, 0x214E75}, /* East Asian ideograph */ + {"\x82", 0, 0x226667}, /* East Asian ideograph */ + {"\x8A", 0, 0x22666A}, /* East Asian ideograph */ + {"\x8D", 0, 0x22666B}, /* East Asian ideograph */ + {"\x86", 0, 0x226675}, /* East Asian ideograph */ + {"\x98", 0, 0x226677}, /* East Asian ideograph */ + {"\x9B", 0, 0x226679}, /* East Asian ideograph */ + {"\x9C", 0, 0x22667A}, /* East Asian ideograph */ + {"\x8F", 0, 0x22667B}, /* East Asian ideograph */ + {"\x93", 0, 0x22667C}, /* East Asian ideograph */ + {"\x93", 0, 0x22667D}, /* East Asian ideograph (unrelated variant of EACC 22667C) */ + {"\x91", 0, 0x226721}, /* East Asian ideograph */ + {"\x94", 0, 0x226723}, /* East Asian ideograph */ + {"\xA7", 0, 0x22672A}, /* East Asian ideograph */ + {"\xAB", 0, 0x22672D}, /* East Asian ideograph */ + {"\xB2", 0, 0x226730}, /* East Asian ideograph */ + {"\xBC", 0, 0x22673E}, /* East Asian ideograph */ + {"\xB8", 0, 0x274E77}, /* East Asian ideograph */ + {"\xAF", 0, 0x274E78}, /* East Asian ideograph */ + {"\xB7", 0, 0x274E7D}, /* East Asian ideograph */ + {"\xA2", 0, 0x293032}, /* East Asian ideograph */ + {"\xA2", 0, 0x4C6775}, /* East Asian ideograph (unrelated variant of EACC 293032) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page180 = { + marc8r_9page180_flat, 0 +}; +/* PAGE 179 */ +struct yaz_iconv_trie_flat marc8r_9page179_flat[] = { + {"\x81", 0, 0x214E57}, /* East Asian ideograph */ + {"\x8E", 0, 0x214E59}, /* East Asian ideograph */ + {"\x99", 0, 0x214E5A}, /* East Asian ideograph */ + {"\xA6", 0, 0x214E5B}, /* East Asian ideograph */ + {"\xAC", 0, 0x214E5C}, /* East Asian ideograph */ + {"\xAA", 0, 0x214E5D}, /* East Asian ideograph */ + {"\xAB", 0, 0x214E5E}, /* East Asian ideograph */ + {"\xBA", 0, 0x214E5F}, /* East Asian ideograph */ + {"\xBE", 0, 0x214E61}, /* East Asian ideograph */ + {"\x85", 0, 0x22657E}, /* East Asian ideograph */ + {"\x84", 0, 0x22662B}, /* East Asian ideograph */ + {"\x92", 0, 0x22662E}, /* East Asian ideograph */ + {"\x8C", 0, 0x226632}, /* East Asian ideograph */ + {"\x93", 0, 0x226634}, /* East Asian ideograph */ + {"\x91", 0, 0x226635}, /* East Asian ideograph */ + {"\x9E", 0, 0x226643}, /* East Asian ideograph */ + {"\xA2", 0, 0x226646}, /* East Asian ideograph */ + {"\xA4", 0, 0x22664C}, /* East Asian ideograph */ + {"\xA7", 0, 0x22664D}, /* East Asian ideograph */ + {"\xA9", 0, 0x226650}, /* East Asian ideograph */ + {"\xB1", 0, 0x226655}, /* East Asian ideograph */ + {"\xB4", 0, 0x22665D}, /* East Asian ideograph */ + {"\xB6", 0, 0x226660}, /* East Asian ideograph */ + {"\xBD", 0, 0x226665}, /* East Asian ideograph */ + {"\xBF", 0, 0x226668}, /* East Asian ideograph */ + {"\xBC", 0, 0x274E7C}, /* East Asian ideograph */ + {"\xAE", 0, 0x394956}, /* East Asian ideograph */ + {"\x87", 0, 0x696325}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page179 = { + marc8r_9page179_flat, 0 +}; +/* PAGE 178 */ +struct yaz_iconv_trie_flat marc8r_9page178_flat[] = { + {"\x8B", 0, 0x214E48}, /* East Asian ideograph */ + {"\x81", 0, 0x214E4A}, /* East Asian ideograph */ + {"\x85", 0, 0x214E4B}, /* East Asian ideograph */ + {"\x95", 0, 0x214E4D}, /* East Asian ideograph */ + {"\x8A", 0, 0x214E4F}, /* East Asian ideograph */ + {"\x90", 0, 0x214E50}, /* East Asian ideograph */ + {"\xA8", 0, 0x214E51}, /* East Asian ideograph */ + {"\xAC", 0, 0x214E52}, /* East Asian ideograph */ + {"\x9A", 0, 0x214E53}, /* East Asian ideograph */ + {"\xB7", 0, 0x214E54}, /* East Asian ideograph */ + {"\xB4", 0, 0x214E55}, /* East Asian ideograph */ + {"\xBA", 0, 0x214E56}, /* East Asian ideograph (variant of EACC 4B4E56) */ + {"\xAF", 0, 0x214E58}, /* East Asian ideograph */ + {"\x8C", 0, 0x226555}, /* East Asian ideograph */ + {"\x89", 0, 0x226556}, /* East Asian ideograph */ + {"\x91", 0, 0x226558}, /* East Asian ideograph */ + {"\x98", 0, 0x22655A}, /* East Asian ideograph */ + {"\x88", 0, 0x22655E}, /* East Asian ideograph */ + {"\x94", 0, 0x226560}, /* East Asian ideograph */ + {"\x9F", 0, 0x226568}, /* East Asian ideograph */ + {"\xA7", 0, 0x22656A}, /* East Asian ideograph */ + {"\x9B", 0, 0x22656E}, /* East Asian ideograph */ + {"\xA1", 0, 0x22656F}, /* East Asian ideograph */ + {"\xA0", 0, 0x226573}, /* East Asian ideograph */ + {"\xAE", 0, 0x226576}, /* East Asian ideograph */ + {"\xA3", 0, 0x226577}, /* East Asian ideograph */ + {"\xB2", 0, 0x226579}, /* East Asian ideograph */ + {"\xB9", 0, 0x226621}, /* East Asian ideograph */ + {"\xBD", 0, 0x226622}, /* East Asian ideograph */ + {"\xBE", 0, 0x226627}, /* East Asian ideograph */ + {"\xBB", 0, 0x226629}, /* East Asian ideograph */ + {"\x92", 0, 0x2D5F35}, /* East Asian ideograph */ + {"\x86", 0, 0x4B4846}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B4E56}, /* East Asian ideograph */ + {"\x99", 0, 0x4C6564}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page178 = { + marc8r_9page178_flat, 0 +}; +/* PAGE 177 */ +struct yaz_iconv_trie_flat marc8r_9page177_flat[] = { + {"\xB0", 0, 0x214E3C}, /* East Asian ideograph */ + {"\x97", 0, 0x214E3D}, /* East Asian ideograph */ + {"\x8E", 0, 0x214E3E}, /* East Asian ideograph */ + {"\x98", 0, 0x214E3F}, /* East Asian ideograph */ + {"\x89", 0, 0x214E40}, /* East Asian ideograph */ + {"\x91", 0, 0x214E41}, /* East Asian ideograph */ + {"\x8C", 0, 0x214E43}, /* East Asian ideograph */ + {"\xA7", 0, 0x214E44}, /* East Asian ideograph */ + {"\xA9", 0, 0x214E45}, /* East Asian ideograph */ + {"\x9F", 0, 0x214E46}, /* East Asian ideograph */ + {"\xB3", 0, 0x214E47}, /* East Asian ideograph */ + {"\xBA", 0, 0x214E49}, /* East Asian ideograph */ + {"\xBC", 0, 0x214E4C}, /* East Asian ideograph */ + {"\xBE", 0, 0x214E4E}, /* East Asian ideograph */ + {"\x86", 0, 0x226469}, /* East Asian ideograph */ + {"\x9A", 0, 0x22646B}, /* East Asian ideograph */ + {"\x87", 0, 0x22646D}, /* East Asian ideograph */ + {"\x94", 0, 0x226470}, /* East Asian ideograph */ + {"\x8F", 0, 0x226476}, /* East Asian ideograph */ + {"\x99", 0, 0x22647E}, /* East Asian ideograph */ + {"\x93", 0, 0x226529}, /* East Asian ideograph */ + {"\x92", 0, 0x22652C}, /* East Asian ideograph */ + {"\x96", 0, 0x22652D}, /* East Asian ideograph */ + {"\xB2", 0, 0x22652F}, /* East Asian ideograph */ + {"\xA1", 0, 0x226531}, /* East Asian ideograph */ + {"\xB6", 0, 0x226532}, /* East Asian ideograph */ + {"\xB7", 0, 0x226539}, /* East Asian ideograph */ + {"\xA4", 0, 0x22653B}, /* East Asian ideograph */ + {"\xB4", 0, 0x22653E}, /* East Asian ideograph */ + {"\xAD", 0, 0x226540}, /* East Asian ideograph */ + {"\xA3", 0, 0x226541}, /* East Asian ideograph */ + {"\x9E", 0, 0x226543}, /* East Asian ideograph */ + {"\xA8", 0, 0x226544}, /* East Asian ideograph */ + {"\xAB", 0, 0x226548}, /* East Asian ideograph */ + {"\xBB", 0, 0x22654E}, /* East Asian ideograph */ + {"\x8D", 0, 0x274E5A}, /* East Asian ideograph */ + {"\x9B", 0, 0x28656A}, /* East Asian ideograph */ + {"\x9C", 0, 0x286577}, /* East Asian ideograph */ + {"\xA5", 0, 0x2D3F76}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D4B5B}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D4E33}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D6252}, /* East Asian ideograph */ + {"\x95", 0, 0x333C21}, /* East Asian ideograph */ + {"\x81", 0, 0x3F4472}, /* East Asian ideograph */ + {"\x8C", 0, 0x454E43}, /* East Asian ideograph (variant of EACC 214E43) */ + {"\xB9", 0, 0x4C6565}, /* East Asian ideograph */ + {"\xB5", 0, 0x696273}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page177 = { + marc8r_9page177_flat, 0 +}; +/* PAGE 176 */ +struct yaz_iconv_trie_flat marc8r_9page176_flat[] = { + {"\xAB", 0, 0x214E36}, /* East Asian ideograph */ + {"\x8F", 0, 0x214E37}, /* East Asian ideograph */ + {"\x83", 0, 0x214E38}, /* East Asian ideograph */ + {"\xAC", 0, 0x214E39}, /* East Asian ideograph */ + {"\x9D", 0, 0x214E3A}, /* East Asian ideograph */ + {"\xAF", 0, 0x214E3B}, /* East Asian ideograph */ + {"\xBC", 0, 0x214E42}, /* East Asian ideograph */ + {"\x8D", 0, 0x226444}, /* East Asian ideograph */ + {"\x88", 0, 0x226448}, /* East Asian ideograph */ + {"\x93", 0, 0x226449}, /* East Asian ideograph */ + {"\x94", 0, 0x22644A}, /* East Asian ideograph */ + {"\x85", 0, 0x22644B}, /* East Asian ideograph */ + {"\x92", 0, 0x22644C}, /* East Asian ideograph */ + {"\x90", 0, 0x22644E}, /* East Asian ideograph */ + {"\x98", 0, 0x22644F}, /* East Asian ideograph */ + {"\x87", 0, 0x226452}, /* East Asian ideograph */ + {"\x8C", 0, 0x226456}, /* East Asian ideograph */ + {"\xA8", 0, 0x22645A}, /* East Asian ideograph */ + {"\xAD", 0, 0x22645B}, /* East Asian ideograph */ + {"\xA4", 0, 0x226460}, /* East Asian ideograph */ + {"\x9C", 0, 0x226461}, /* East Asian ideograph */ + {"\xB6", 0, 0x226464}, /* East Asian ideograph */ + {"\xAA", 0, 0x226466}, /* East Asian ideograph */ + {"\xBF", 0, 0x22646C}, /* East Asian ideograph */ + {"\x95", 0, 0x274E45}, /* East Asian ideograph */ + {"\xAE", 0, 0x274E49}, /* East Asian ideograph */ + {"\x80", 0, 0x274E59}, /* East Asian ideograph */ + {"\xB7", 0, 0x276252}, /* East Asian ideograph */ + {"\x96", 0, 0x286460}, /* East Asian ideograph */ + {"\x97", 0, 0x286622}, /* East Asian ideograph */ + {"\x8E", 0, 0x334E37}, /* East Asian ideograph */ + {"\x8E", 0, 0x3F377B}, /* East Asian ideograph (Version J extension) */ + {"\xB2", 0, 0x694823}, /* East Asian ideograph */ + {"\xB4", 0, 0x69626D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page176 = { + marc8r_9page176_flat, 0 +}; +/* PAGE 175 */ +struct yaz_iconv_trie_flat marc8r_9page175_flat[] = { + {"\x82", 0, 0x214E2A}, /* East Asian ideograph */ + {"\x8D", 0, 0x214E2B}, /* East Asian ideograph */ + {"\x8C", 0, 0x214E2C}, /* East Asian ideograph */ + {"\xB0", 0, 0x214E2E}, /* East Asian ideograph */ + {"\x9D", 0, 0x214E2F}, /* East Asian ideograph */ + {"\xB4", 0, 0x214E30}, /* East Asian ideograph */ + {"\xB8", 0, 0x214E31}, /* East Asian ideograph */ + {"\xB7", 0, 0x214E32}, /* East Asian ideograph */ + {"\xA7", 0, 0x214E33}, /* East Asian ideograph */ + {"\xAD", 0, 0x214E34}, /* East Asian ideograph */ + {"\xA5", 0, 0x214E35}, /* East Asian ideograph */ + {"\x89", 0, 0x226370}, /* East Asian ideograph */ + {"\x86", 0, 0x226371}, /* East Asian ideograph */ + {"\x99", 0, 0x226373}, /* East Asian ideograph */ + {"\x91", 0, 0x226374}, /* East Asian ideograph */ + {"\x92", 0, 0x226378}, /* East Asian ideograph */ + {"\x9B", 0, 0x226424}, /* East Asian ideograph */ + {"\xAC", 0, 0x226426}, /* East Asian ideograph */ + {"\xA3", 0, 0x226427}, /* East Asian ideograph */ + {"\xAB", 0, 0x226428}, /* East Asian ideograph */ + {"\xA9", 0, 0x22642A}, /* East Asian ideograph */ + {"\xA2", 0, 0x22642D}, /* East Asian ideograph */ + {"\xB5", 0, 0x226431}, /* East Asian ideograph */ + {"\xB3", 0, 0x226432}, /* East Asian ideograph */ + {"\xAE", 0, 0x226433}, /* East Asian ideograph */ + {"\xA0", 0, 0x226435}, /* East Asian ideograph */ + {"\xBD", 0, 0x226438}, /* East Asian ideograph */ + {"\x9F", 0, 0x22643B}, /* East Asian ideograph */ + {"\xB1", 0, 0x22643D}, /* East Asian ideograph */ + {"\xA6", 0, 0x226450}, /* East Asian ideograph */ + {"\x9A", 0, 0x274E3B}, /* East Asian ideograph */ + {"\x95", 0, 0x274E3E}, /* East Asian ideograph */ + {"\x81", 0, 0x274E4C}, /* East Asian ideograph */ + {"\x96", 0, 0x274E53}, /* East Asian ideograph */ + {"\xBA", 0, 0x274E5D}, /* East Asian ideograph */ + {"\xBE", 0, 0x274E5E}, /* East Asian ideograph */ + {"\x97", 0, 0x28645A}, /* East Asian ideograph */ + {"\x80", 0, 0x286540}, /* East Asian ideograph */ + {"\xBB", 0, 0x286655}, /* East Asian ideograph */ + {"\xB2", 0, 0x3F4956}, /* East Asian ideograph */ + {"\x94", 0, 0x4B4E37}, /* East Asian ideograph */ + {"\xBF", 0, 0x4B4E5B}, /* East Asian ideograph */ + {"\xB9", 0, 0x4C6376}, /* East Asian ideograph */ + {"\x98", 0, 0x706D3B}, /* East Asian ideograph */ + {"\x9C", 0, 0x706D3F}, /* East Asian ideograph */ + {"\xBC", 0, 0x706D45}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page175 = { + marc8r_9page175_flat, 0 +}; +/* PAGE 174 */ +struct yaz_iconv_trie_flat marc8r_9page174_flat[] = { + {"\x93", 0, 0x214D7A}, /* East Asian ideograph */ + {"\x97", 0, 0x214D7B}, /* East Asian ideograph */ + {"\x9A", 0, 0x214D7C}, /* East Asian ideograph */ + {"\x9B", 0, 0x214D7D}, /* East Asian ideograph */ + {"\x9C", 0, 0x214D7E}, /* East Asian ideograph */ + {"\xA2", 0, 0x214E21}, /* East Asian ideograph */ + {"\xA3", 0, 0x214E22}, /* East Asian ideograph */ + {"\xA5", 0, 0x214E23}, /* East Asian ideograph */ + {"\xA9", 0, 0x214E24}, /* East Asian ideograph */ + {"\xAD", 0, 0x214E25}, /* East Asian ideograph */ + {"\xAE", 0, 0x214E26}, /* East Asian ideograph */ + {"\xAF", 0, 0x214E27}, /* East Asian ideograph */ + {"\xB3", 0, 0x214E28}, /* East Asian ideograph */ + {"\xBD", 0, 0x214E29}, /* East Asian ideograph */ + {"\x8D", 0, 0x226335}, /* East Asian ideograph */ + {"\x91", 0, 0x22633A}, /* East Asian ideograph */ + {"\x9E", 0, 0x226345}, /* East Asian ideograph */ + {"\x9F", 0, 0x226346}, /* East Asian ideograph */ + {"\xA7", 0, 0x22634F}, /* East Asian ideograph */ + {"\xA6", 0, 0x226352}, /* East Asian ideograph */ + {"\xAC", 0, 0x226355}, /* East Asian ideograph */ + {"\xB0", 0, 0x226359}, /* East Asian ideograph */ + {"\xB1", 0, 0x22635A}, /* East Asian ideograph */ + {"\xB4", 0, 0x22635C}, /* East Asian ideograph */ + {"\xBC", 0, 0x226360}, /* East Asian ideograph */ + {"\xB8", 0, 0x226367}, /* East Asian ideograph */ + {"\xBB", 0, 0x226368}, /* East Asian ideograph */ + {"\xAB", 0, 0x274E27}, /* East Asian ideograph */ + {"\xB6", 0, 0x274E58}, /* East Asian ideograph */ + {"\xBF", 0, 0x274E5B}, /* East Asian ideograph */ + {"\xBE", 0, 0x274E5C}, /* East Asian ideograph */ + {"\x81", 0, 0x2E625F}, /* East Asian ideograph */ + {"\x97", 0, 0x4B4D7B}, /* East Asian ideograph (variant of EACC 214D7B) */ + {"\x87", 0, 0x4B5564}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page174 = { + marc8r_9page174_flat, 0 +}; +/* PAGE 173 */ +struct yaz_iconv_trie_flat marc8r_9page173_flat[] = { + {"\x84", 0, 0x214D66}, /* East Asian ideograph */ + {"\x87", 0, 0x214D68}, /* East Asian ideograph */ + {"\x8E", 0, 0x214D69}, /* East Asian ideograph */ + {"\x8C", 0, 0x214D6A}, /* East Asian ideograph */ + {"\x91", 0, 0x214D6B}, /* East Asian ideograph */ + {"\x9F", 0, 0x214D6C}, /* East Asian ideograph */ + {"\x9E", 0, 0x214D6D}, /* East Asian ideograph */ + {"\xA0", 0, 0x214D6E}, /* East Asian ideograph */ + {"\xA5", 0, 0x214D6F}, /* East Asian ideograph */ + {"\xB3", 0, 0x214D70}, /* East Asian ideograph */ + {"\xAA", 0, 0x214D71}, /* East Asian ideograph */ + {"\xB0", 0, 0x214D72}, /* East Asian ideograph */ + {"\xAD", 0, 0x214D73}, /* East Asian ideograph */ + {"\xAC", 0, 0x214D74}, /* East Asian ideograph */ + {"\xA7", 0, 0x214D75}, /* East Asian ideograph */ + {"\xBD", 0, 0x214D76}, /* East Asian ideograph */ + {"\xBF", 0, 0x214D77}, /* East Asian ideograph */ + {"\xBB", 0, 0x214D78}, /* East Asian ideograph */ + {"\x80", 0, 0x226252}, /* East Asian ideograph */ + {"\x85", 0, 0x22625F}, /* East Asian ideograph */ + {"\x8B", 0, 0x226266}, /* East Asian ideograph (variant of EACC 4C6266) */ + {"\x8D", 0, 0x22626A}, /* East Asian ideograph */ + {"\x98", 0, 0x226272}, /* East Asian ideograph */ + {"\x96", 0, 0x226273}, /* East Asian ideograph */ + {"\xA2", 0, 0x226275}, /* East Asian ideograph */ + {"\x99", 0, 0x226276}, /* East Asian ideograph */ + {"\xB5", 0, 0x22627A}, /* East Asian ideograph */ + {"\xB7", 0, 0x22627D}, /* East Asian ideograph */ + {"\xB6", 0, 0x226323}, /* East Asian ideograph */ + {"\xBE", 0, 0x226329}, /* East Asian ideograph */ + {"\xB9", 0, 0x22632B}, /* East Asian ideograph */ + {"\xBC", 0, 0x22632C}, /* East Asian ideograph */ + {"\xA9", 0, 0x274D7C}, /* East Asian ideograph */ + {"\x92", 0, 0x2D4D6D}, /* East Asian ideograph */ + {"\x8B", 0, 0x4C6266}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page173 = { + marc8r_9page173_flat, 0 +}; +/* PAGE 172 */ +struct yaz_iconv_trie_flat marc8r_9page172_flat[] = { + {"\x8F", 0, 0x214D57}, /* East Asian ideograph */ + {"\xAB", 0, 0x214D58}, /* East Asian ideograph */ + {"\x9B", 0, 0x214D59}, /* East Asian ideograph */ + {"\xAA", 0, 0x214D5A}, /* East Asian ideograph */ + {"\xA6", 0, 0x214D5B}, /* East Asian ideograph */ + {"\xB9", 0, 0x214D5C}, /* East Asian ideograph */ + {"\x9E", 0, 0x214D5D}, /* East Asian ideograph */ + {"\xA3", 0, 0x214D5E}, /* East Asian ideograph */ + {"\x9C", 0, 0x214D5F}, /* East Asian ideograph */ + {"\xAC", 0, 0x214D60}, /* East Asian ideograph */ + {"\xA8", 0, 0x214D61}, /* East Asian ideograph */ + {"\xA5", 0, 0x214D62}, /* East Asian ideograph */ + {"\xBD", 0, 0x214D63}, /* East Asian ideograph */ + {"\xB1", 0, 0x214D64}, /* East Asian ideograph */ + {"\xBF", 0, 0x214D65}, /* East Asian ideograph */ + {"\xA1", 0, 0x214D67}, /* East Asian ideograph */ + {"\x80", 0, 0x226174}, /* East Asian ideograph */ + {"\x87", 0, 0x22622D}, /* East Asian ideograph */ + {"\x85", 0, 0x226231}, /* East Asian ideograph */ + {"\x8D", 0, 0x226232}, /* East Asian ideograph */ + {"\x8A", 0, 0x226233}, /* East Asian ideograph */ + {"\x83", 0, 0x226235}, /* East Asian ideograph */ + {"\x8E", 0, 0x226237}, /* East Asian ideograph */ + {"\x9F", 0, 0x22623A}, /* East Asian ideograph */ + {"\xA0", 0, 0x22623D}, /* East Asian ideograph */ + {"\x92", 0, 0x22623E}, /* East Asian ideograph */ + {"\x98", 0, 0x226242}, /* East Asian ideograph */ + {"\x96", 0, 0x226244}, /* East Asian ideograph */ + {"\x9A", 0, 0x226245}, /* East Asian ideograph */ + {"\xA2", 0, 0x22624F}, /* East Asian ideograph */ + {"\xAF", 0, 0x226256}, /* East Asian ideograph */ + {"\xBE", 0, 0x22625D}, /* East Asian ideograph */ + {"\xBA", 0, 0x226260}, /* East Asian ideograph */ + {"\x90", 0, 0x274D5D}, /* East Asian ideograph */ + {"\x91", 0, 0x28632C}, /* East Asian ideograph */ + {"\x81", 0, 0x2D4D5F}, /* East Asian ideograph */ + {"\x9B", 0, 0x4B4D59}, /* East Asian ideograph (variant of EACC 214D59) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page172 = { + marc8r_9page172_flat, 0 +}; +/* PAGE 171 */ +struct yaz_iconv_trie_flat marc8r_9page171_flat[] = { + {"\x89", 0, 0x214D46}, /* East Asian ideograph */ + {"\x81", 0, 0x214D49}, /* East Asian ideograph */ + {"\x8B", 0, 0x214D4A}, /* East Asian ideograph */ + {"\xA9", 0, 0x214D4D}, /* East Asian ideograph */ + {"\xA0", 0, 0x214D4E}, /* East Asian ideograph */ + {"\x9E", 0, 0x214D4F}, /* East Asian ideograph */ + {"\xA8", 0, 0x214D50}, /* East Asian ideograph */ + {"\xB7", 0, 0x214D51}, /* East Asian ideograph */ + {"\xBC", 0, 0x214D52}, /* East Asian ideograph */ + {"\xB6", 0, 0x214D53}, /* East Asian ideograph */ + {"\xB8", 0, 0x214D54}, /* East Asian ideograph */ + {"\xBA", 0, 0x214D55}, /* East Asian ideograph */ + {"\xBE", 0, 0x214D56}, /* East Asian ideograph */ + {"\x84", 0, 0x22614B}, /* East Asian ideograph */ + {"\x88", 0, 0x22614F}, /* East Asian ideograph */ + {"\x87", 0, 0x226150}, /* East Asian ideograph */ + {"\x8A", 0, 0x226154}, /* East Asian ideograph */ + {"\xAB", 0, 0x22615E}, /* East Asian ideograph */ + {"\x8E", 0, 0x226160}, /* East Asian ideograph */ + {"\x9B", 0, 0x226162}, /* East Asian ideograph */ + {"\xA4", 0, 0x226163}, /* East Asian ideograph */ + {"\xA2", 0, 0x22616C}, /* East Asian ideograph */ + {"\x9A", 0, 0x22616D}, /* East Asian ideograph */ + {"\xA1", 0, 0x22616F}, /* East Asian ideograph */ + {"\xB9", 0, 0x226175}, /* East Asian ideograph */ + {"\xAF", 0, 0x226176}, /* East Asian ideograph */ + {"\xB1", 0, 0x226177}, /* East Asian ideograph */ + {"\xA5", 0, 0x226222}, /* East Asian ideograph */ + {"\xB5", 0, 0x226225}, /* East Asian ideograph */ + {"\xB4", 0, 0x226226}, /* East Asian ideograph */ + {"\xA6", 0, 0x286222}, /* East Asian ideograph */ + {"\x8D", 0, 0x286272}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D4D4F}, /* East Asian ideograph */ + {"\x99", 0, 0x2D4D71}, /* East Asian ideograph */ + {"\xAD", 0, 0x2E624F}, /* East Asian ideograph */ + {"\x98", 0, 0x333F24}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B5164}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page171 = { + marc8r_9page171_flat, 0 +}; +/* PAGE 170 */ +struct yaz_iconv_trie_flat marc8r_9page170_flat[] = { + {"\x82", 0, 0x214D2F}, /* East Asian ideograph */ + {"\x88", 0, 0x214D31}, /* East Asian ideograph */ + {"\x86", 0, 0x214D32}, /* East Asian ideograph */ + {"\x8A", 0, 0x214D33}, /* East Asian ideograph */ + {"\x8D", 0, 0x214D34}, /* East Asian ideograph */ + {"\x8E", 0, 0x214D35}, /* East Asian ideograph */ + {"\x94", 0, 0x214D36}, /* East Asian ideograph */ + {"\x92", 0, 0x214D37}, /* East Asian ideograph */ + {"\x9C", 0, 0x214D38}, /* East Asian ideograph */ + {"\x9B", 0, 0x214D39}, /* East Asian ideograph */ + {"\x9E", 0, 0x214D3A}, /* East Asian ideograph */ + {"\x9F", 0, 0x214D3B}, /* East Asian ideograph */ + {"\xA1", 0, 0x214D3C}, /* East Asian ideograph */ + {"\xA3", 0, 0x214D3D}, /* East Asian ideograph */ + {"\xA4", 0, 0x214D3E}, /* East Asian ideograph */ + {"\xA7", 0, 0x214D3F}, /* East Asian ideograph */ + {"\xA5", 0, 0x214D40}, /* East Asian ideograph */ + {"\xAA", 0, 0x214D41}, /* East Asian ideograph */ + {"\xAE", 0, 0x214D42}, /* East Asian ideograph */ + {"\xAF", 0, 0x214D43}, /* East Asian ideograph */ + {"\xB2", 0, 0x214D44}, /* East Asian ideograph */ + {"\xB4", 0, 0x214D45}, /* East Asian ideograph */ + {"\xB9", 0, 0x214D47}, /* East Asian ideograph */ + {"\xB8", 0, 0x214D48}, /* East Asian ideograph */ + {"\xBC", 0, 0x214D4B}, /* East Asian ideograph */ + {"\xBE", 0, 0x214D4C}, /* East Asian ideograph */ + {"\x8B", 0, 0x226123}, /* East Asian ideograph */ + {"\x8C", 0, 0x226126}, /* East Asian ideograph */ + {"\xA6", 0, 0x22613B}, /* East Asian ideograph */ + {"\xA9", 0, 0x22613C}, /* East Asian ideograph */ + {"\xAC", 0, 0x226140}, /* East Asian ideograph */ + {"\xAD", 0, 0x226144}, /* East Asian ideograph */ + {"\xB1", 0, 0x226148}, /* East Asian ideograph */ + {"\xB7", 0, 0x226153}, /* East Asian ideograph */ + {"\xBB", 0, 0x226159}, /* East Asian ideograph */ + {"\x8F", 0, 0x274D3A}, /* East Asian ideograph */ + {"\x91", 0, 0x274D3D}, /* East Asian ideograph */ + {"\x98", 0, 0x274D3E}, /* East Asian ideograph */ + {"\x90", 0, 0x276251}, /* East Asian ideograph */ + {"\x87", 0, 0x2D4D34}, /* East Asian ideograph */ + {"\x97", 0, 0x2D4D38}, /* East Asian ideograph */ + {"\x96", 0, 0x2D5561}, /* East Asian ideograph */ + {"\x83", 0, 0x334425}, /* East Asian ideograph */ + {"\x85", 0, 0x334674}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B4D45}, /* East Asian ideograph (variant of EACC 214D45) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page170 = { + marc8r_9page170_flat, 0 +}; +/* PAGE 169 */ +struct yaz_iconv_trie_flat marc8r_9page169_flat[] = { + {"\x82", 0, 0x214D21}, /* East Asian ideograph */ + {"\x84", 0, 0x214D22}, /* East Asian ideograph */ + {"\x87", 0, 0x214D23}, /* East Asian ideograph */ + {"\x86", 0, 0x214D24}, /* East Asian ideograph */ + {"\x8E", 0, 0x214D26}, /* East Asian ideograph */ + {"\x96", 0, 0x214D27}, /* East Asian ideograph */ + {"\x93", 0, 0x214D28}, /* East Asian ideograph */ + {"\x9A", 0, 0x214D29}, /* East Asian ideograph */ + {"\xAE", 0, 0x214D2A}, /* East Asian ideograph */ + {"\xB0", 0, 0x214D2B}, /* East Asian ideograph */ + {"\xB4", 0, 0x214D2C}, /* East Asian ideograph */ + {"\xBA", 0, 0x214D2D}, /* East Asian ideograph */ + {"\xBF", 0, 0x214D2E}, /* East Asian ideograph */ + {"\x80", 0, 0x226048}, /* East Asian ideograph */ + {"\x8B", 0, 0x22604A}, /* East Asian ideograph */ + {"\x95", 0, 0x226052}, /* East Asian ideograph */ + {"\x99", 0, 0x226059}, /* East Asian ideograph */ + {"\x9C", 0, 0x22605D}, /* East Asian ideograph */ + {"\x9D", 0, 0x22605F}, /* East Asian ideograph */ + {"\xA4", 0, 0x226065}, /* East Asian ideograph */ + {"\xA5", 0, 0x226066}, /* East Asian ideograph */ + {"\xA6", 0, 0x226067}, /* East Asian ideograph */ + {"\xAA", 0, 0x22606A}, /* East Asian ideograph */ + {"\xAD", 0, 0x22606D}, /* East Asian ideograph */ + {"\xB8", 0, 0x226074}, /* East Asian ideograph */ + {"\xBD", 0, 0x226077}, /* East Asian ideograph */ + {"\x91", 0, 0x274D29}, /* East Asian ideograph */ + {"\xB1", 0, 0x274D2D}, /* East Asian ideograph */ + {"\x83", 0, 0x275966}, /* East Asian ideograph */ + {"\x81", 0, 0x2D4D21}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D6275}, /* East Asian ideograph */ + {"\x90", 0, 0x2E604A}, /* East Asian ideograph */ + {"\xA1", 0, 0x2E6060}, /* East Asian ideograph */ + {"\xBC", 0, 0x336275}, /* East Asian ideograph */ + {"\x88", 0, 0x45462B}, /* East Asian ideograph */ + {"\xB2", 0, 0x466074}, /* East Asian ideograph */ + {"\xB9", 0, 0x4C6074}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page169 = { + marc8r_9page169_flat, 0 +}; +/* PAGE 168 */ +struct yaz_iconv_trie_flat marc8r_9page168_flat[] = { + {"\x86", 0, 0x214C6D}, /* East Asian ideograph */ + {"\x82", 0, 0x214C6E}, /* East Asian ideograph */ + {"\x8C", 0, 0x214C6F}, /* East Asian ideograph */ + {"\x96", 0, 0x214C70}, /* East Asian ideograph */ + {"\x98", 0, 0x214C71}, /* East Asian ideograph */ + {"\xA2", 0, 0x214C73}, /* East Asian ideograph */ + {"\xA5", 0, 0x214C74}, /* East Asian ideograph */ + {"\xA9", 0, 0x214C75}, /* East Asian ideograph */ + {"\xAE", 0, 0x214C76}, /* East Asian ideograph */ + {"\xAC", 0, 0x214C77}, /* East Asian ideograph */ + {"\xB1", 0, 0x214C78}, /* East Asian ideograph */ + {"\xB2", 0, 0x214C79}, /* East Asian ideograph (variant of EACC 4B4C79) */ + {"\xB8", 0, 0x214C7A}, /* East Asian ideograph */ + {"\xBC", 0, 0x214C7B}, /* East Asian ideograph */ + {"\xBB", 0, 0x214C7C}, /* East Asian ideograph */ + {"\xBD", 0, 0x214C7D}, /* East Asian ideograph */ + {"\xBE", 0, 0x214C7E}, /* East Asian ideograph */ + {"\x88", 0, 0x225F67}, /* East Asian ideograph */ + {"\x8E", 0, 0x225F68}, /* East Asian ideograph */ + {"\x87", 0, 0x225F69}, /* East Asian ideograph */ + {"\x83", 0, 0x225F6A}, /* East Asian ideograph */ + {"\x8D", 0, 0x225F6E}, /* East Asian ideograph */ + {"\x89", 0, 0x225F6F}, /* East Asian ideograph */ + {"\x94", 0, 0x225F75}, /* East Asian ideograph */ + {"\x9C", 0, 0x225F7A}, /* East Asian ideograph */ + {"\x97", 0, 0x225F7B}, /* East Asian ideograph */ + {"\xA4", 0, 0x226022}, /* East Asian ideograph */ + {"\x99", 0, 0x226024}, /* East Asian ideograph */ + {"\x9F", 0, 0x22602B}, /* East Asian ideograph */ + {"\xA7", 0, 0x226032}, /* East Asian ideograph */ + {"\xAA", 0, 0x226035}, /* East Asian ideograph */ + {"\xAD", 0, 0x226037}, /* East Asian ideograph */ + {"\xAF", 0, 0x226038}, /* East Asian ideograph */ + {"\xB0", 0, 0x22603A}, /* East Asian ideograph */ + {"\xB6", 0, 0x226040}, /* East Asian ideograph */ + {"\xB7", 0, 0x226041}, /* East Asian ideograph */ + {"\x9E", 0, 0x274C75}, /* East Asian ideograph */ + {"\xA3", 0, 0x274C77}, /* East Asian ideograph */ + {"\xAB", 0, 0x274C79}, /* East Asian ideograph */ + {"\xA1", 0, 0x2D4C5D}, /* East Asian ideograph */ + {"\x92", 0, 0x333E7D}, /* East Asian ideograph */ + {"\xBA", 0, 0x334C7B}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B4C79}, /* East Asian ideograph */ + {"\xA8", 0, 0x4B5F62}, /* East Asian ideograph */ + {"\x80", 0, 0x4C5F58}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page168 = { + marc8r_9page168_flat, 0 +}; +/* PAGE 167 */ +struct yaz_iconv_trie_flat marc8r_9page167_flat[] = { + {"\x81", 0, 0x214C58}, /* East Asian ideograph */ + {"\x80", 0, 0x214C59}, /* East Asian ideograph */ + {"\x8D", 0, 0x214C60}, /* East Asian ideograph */ + {"\xA7", 0, 0x214C61}, /* East Asian ideograph */ + {"\x93", 0, 0x214C62}, /* East Asian ideograph */ + {"\x8B", 0, 0x214C63}, /* East Asian ideograph */ + {"\xA0", 0, 0x214C65}, /* East Asian ideograph */ + {"\xA9", 0, 0x214C66}, /* East Asian ideograph */ + {"\x9F", 0, 0x214C67}, /* East Asian ideograph */ + {"\xA4", 0, 0x214C68}, /* East Asian ideograph */ + {"\xA6", 0, 0x214C69}, /* East Asian ideograph */ + {"\xA1", 0, 0x214C6A}, /* East Asian ideograph */ + {"\xB4", 0, 0x214C6B}, /* East Asian ideograph */ + {"\xB8", 0, 0x214C6C}, /* East Asian ideograph */ + {"\x82", 0, 0x225E7A}, /* East Asian ideograph */ + {"\x83", 0, 0x225E7E}, /* East Asian ideograph */ + {"\x96", 0, 0x225F29}, /* East Asian ideograph */ + {"\x88", 0, 0x225F2C}, /* East Asian ideograph */ + {"\x95", 0, 0x225F2D}, /* East Asian ideograph */ + {"\x8C", 0, 0x225F2E}, /* East Asian ideograph */ + {"\x8F", 0, 0x225F2F}, /* East Asian ideograph */ + {"\x90", 0, 0x225F3B}, /* East Asian ideograph */ + {"\x8A", 0, 0x225F3C}, /* East Asian ideograph */ + {"\xA5", 0, 0x225F3E}, /* East Asian ideograph */ + {"\x9A", 0, 0x225F3F}, /* East Asian ideograph */ + {"\x9B", 0, 0x225F40}, /* East Asian ideograph */ + {"\x99", 0, 0x225F47}, /* East Asian ideograph */ + {"\x9E", 0, 0x225F48}, /* East Asian ideograph */ + {"\x9D", 0, 0x225F4C}, /* East Asian ideograph */ + {"\xA2", 0, 0x225F50}, /* East Asian ideograph */ + {"\xAF", 0, 0x225F51}, /* East Asian ideograph */ + {"\xAD", 0, 0x225F54}, /* East Asian ideograph */ + {"\xB3", 0, 0x225F5C}, /* East Asian ideograph */ + {"\xBB", 0, 0x225F5E}, /* East Asian ideograph */ + {"\xB0", 0, 0x225F5F}, /* East Asian ideograph */ + {"\xBC", 0, 0x225F60}, /* East Asian ideograph */ + {"\xB5", 0, 0x225F62}, /* East Asian ideograph */ + {"\xBE", 0, 0x274C76}, /* East Asian ideograph */ + {"\xAB", 0, 0x274C78}, /* East Asian ideograph */ + {"\x97", 0, 0x285F48}, /* East Asian ideograph */ + {"\x98", 0, 0x285F5E}, /* East Asian ideograph */ + {"\x85", 0, 0x285F6F}, /* East Asian ideograph */ + {"\xAA", 0, 0x28602B}, /* East Asian ideograph */ + {"\xBF", 0, 0x286037}, /* East Asian ideograph */ + {"\x89", 0, 0x393E7D}, /* East Asian ideograph */ + {"\x9F", 0, 0x4B4C67}, /* East Asian ideograph (variant of EACC 214C67) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page167 = { + marc8r_9page167_flat, 0 +}; +/* PAGE 166 */ +struct yaz_iconv_trie_flat marc8r_9page166_flat[] = { + {"\x87", 0, 0x214C46}, /* East Asian ideograph */ + {"\x85", 0, 0x214C47}, /* East Asian ideograph */ + {"\x95", 0, 0x214C4E}, /* East Asian ideograph */ + {"\x94", 0, 0x214C4F}, /* East Asian ideograph */ + {"\x8A", 0, 0x214C51}, /* East Asian ideograph (variant of EACC 4B4C51) */ + {"\x9B", 0, 0x214C52}, /* East Asian ideograph */ + {"\xA3", 0, 0x214C53}, /* East Asian ideograph */ + {"\x98", 0, 0x214C54}, /* East Asian ideograph */ + {"\x9E", 0, 0x214C55}, /* East Asian ideograph */ + {"\x99", 0, 0x214C56}, /* East Asian ideograph */ + {"\xA2", 0, 0x214C57}, /* East Asian ideograph */ + {"\xB0", 0, 0x214C5A}, /* East Asian ideograph */ + {"\xB2", 0, 0x214C5B}, /* East Asian ideograph */ + {"\xB1", 0, 0x214C5C}, /* East Asian ideograph */ + {"\xB4", 0, 0x214C5D}, /* East Asian ideograph */ + {"\xBF", 0, 0x214C5E}, /* East Asian ideograph */ + {"\xBA", 0, 0x214C5F}, /* East Asian ideograph */ + {"\x83", 0, 0x225E44}, /* East Asian ideograph */ + {"\x82", 0, 0x225E4A}, /* East Asian ideograph */ + {"\x81", 0, 0x225E4E}, /* East Asian ideograph */ + {"\x84", 0, 0x225E51}, /* East Asian ideograph */ + {"\x8D", 0, 0x225E58}, /* East Asian ideograph */ + {"\x8F", 0, 0x225E5C}, /* East Asian ideograph */ + {"\x8C", 0, 0x225E5E}, /* East Asian ideograph */ + {"\x90", 0, 0x225E5F}, /* East Asian ideograph */ + {"\xA7", 0, 0x225E63}, /* East Asian ideograph */ + {"\xA1", 0, 0x225E66}, /* East Asian ideograph */ + {"\xA6", 0, 0x225E67}, /* East Asian ideograph */ + {"\xA4", 0, 0x225E71}, /* East Asian ideograph */ + {"\xA0", 0, 0x225E72}, /* East Asian ideograph */ + {"\x97", 0, 0x225E73}, /* East Asian ideograph */ + {"\xB9", 0, 0x225F21}, /* East Asian ideograph */ + {"\xBC", 0, 0x225F22}, /* East Asian ideograph */ + {"\x89", 0, 0x274C56}, /* East Asian ideograph */ + {"\xAA", 0, 0x274C62}, /* East Asian ideograph */ + {"\xA8", 0, 0x274C6D}, /* East Asian ideograph */ + {"\x92", 0, 0x274C73}, /* East Asian ideograph */ + {"\x96", 0, 0x285E7A}, /* East Asian ideograph */ + {"\x88", 0, 0x28603A}, /* East Asian ideograph */ + {"\xBE", 0, 0x345E47}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B4C51}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B4C5B}, /* East Asian ideograph */ + {"\xAB", 0, 0x4C5F69}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page166 = { + marc8r_9page166_flat, 0 +}; +/* PAGE 165 */ +struct yaz_iconv_trie_flat marc8r_9page165_flat[] = { + {"\x86", 0, 0x214C3A}, /* East Asian ideograph */ + {"\x87", 0, 0x214C3B}, /* East Asian ideograph */ + {"\x8A", 0, 0x214C3C}, /* East Asian ideograph */ + {"\x8F", 0, 0x214C3E}, /* East Asian ideograph */ + {"\x91", 0, 0x214C3F}, /* East Asian ideograph */ + {"\x9D", 0, 0x214C40}, /* East Asian ideograph */ + {"\x99", 0, 0x214C41}, /* East Asian ideograph */ + {"\x9A", 0, 0x214C42}, /* East Asian ideograph */ + {"\xA4", 0, 0x214C43}, /* East Asian ideograph */ + {"\xAB", 0, 0x214C44}, /* East Asian ideograph */ + {"\xA5", 0, 0x214C45}, /* East Asian ideograph */ + {"\xB3", 0, 0x214C48}, /* East Asian ideograph */ + {"\xB2", 0, 0x214C49}, /* East Asian ideograph */ + {"\xBD", 0, 0x214C4A}, /* East Asian ideograph */ + {"\xBE", 0, 0x214C4B}, /* East Asian ideograph */ + {"\xBC", 0, 0x214C4C}, /* East Asian ideograph */ + {"\xB9", 0, 0x214C4D}, /* East Asian ideograph */ + {"\xB5", 0, 0x214C50}, /* East Asian ideograph */ + {"\x83", 0, 0x225E25}, /* East Asian ideograph */ + {"\x90", 0, 0x225E2C}, /* East Asian ideograph */ + {"\x92", 0, 0x225E2D}, /* East Asian ideograph */ + {"\x94", 0, 0x225E2E}, /* East Asian ideograph */ + {"\x95", 0, 0x225E31}, /* East Asian ideograph */ + {"\x98", 0, 0x225E35}, /* East Asian ideograph */ + {"\xA2", 0, 0x225E37}, /* East Asian ideograph */ + {"\xA3", 0, 0x225E3B}, /* East Asian ideograph */ + {"\xBA", 0, 0x225E3E}, /* East Asian ideograph */ + {"\xB0", 0, 0x225E43}, /* East Asian ideograph */ + {"\xBF", 0, 0x225E46}, /* East Asian ideograph */ + {"\xB4", 0, 0x225E47}, /* East Asian ideograph */ + {"\xB1", 0, 0x225E50}, /* East Asian ideograph */ + {"\xA1", 0, 0x274C60}, /* East Asian ideograph */ + {"\x9F", 0, 0x274C61}, /* East Asian ideograph */ + {"\xAF", 0, 0x274C63}, /* East Asian ideograph */ + {"\xAE", 0, 0x274C6A}, /* East Asian ideograph */ + {"\x97", 0, 0x274C6E}, /* East Asian ideograph */ + {"\xA0", 0, 0x274C71}, /* East Asian ideograph */ + {"\xAC", 0, 0x286032}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D3453}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D4C3E}, /* East Asian ideograph */ + {"\xB8", 0, 0x2E5F6F}, /* East Asian ideograph */ + {"\x82", 0, 0x3F4C3C}, /* East Asian ideograph */ + {"\x89", 0, 0x454C3C}, /* East Asian ideograph */ + {"\x96", 0, 0x4C6022}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page165 = { + marc8r_9page165_flat, 0 +}; +/* PAGE 164 */ +struct yaz_iconv_trie_flat marc8r_9page164_flat[] = { + {"\x8F", 0, 0x214C2B}, /* East Asian ideograph */ + {"\x8C", 0, 0x214C2C}, /* East Asian ideograph */ + {"\x9D", 0, 0x214C2D}, /* East Asian ideograph */ + {"\x9C", 0, 0x214C2E}, /* East Asian ideograph */ + {"\x94", 0, 0x214C2F}, /* East Asian ideograph */ + {"\x9A", 0, 0x214C30}, /* East Asian ideograph */ + {"\x99", 0, 0x214C31}, /* East Asian ideograph */ + {"\xA6", 0, 0x214C32}, /* East Asian ideograph */ + {"\xA2", 0, 0x214C33}, /* East Asian ideograph */ + {"\xB0", 0, 0x214C34}, /* East Asian ideograph */ + {"\xA5", 0, 0x214C35}, /* East Asian ideograph */ + {"\xAB", 0, 0x214C36}, /* East Asian ideograph */ + {"\xAA", 0, 0x214C37}, /* East Asian ideograph */ + {"\xB8", 0, 0x214C38}, /* East Asian ideograph */ + {"\xB6", 0, 0x214C39}, /* East Asian ideograph */ + {"\x93", 0, 0x22477B}, /* East Asian ideograph */ + {"\x91", 0, 0x225068}, /* East Asian ideograph */ + {"\x80", 0, 0x225D51}, /* East Asian ideograph */ + {"\x8A", 0, 0x225D55}, /* East Asian ideograph */ + {"\x8E", 0, 0x225D57}, /* East Asian ideograph */ + {"\x87", 0, 0x225D58}, /* East Asian ideograph */ + {"\x8B", 0, 0x225D59}, /* East Asian ideograph */ + {"\x88", 0, 0x225D5A}, /* East Asian ideograph */ + {"\x9F", 0, 0x225D5F}, /* East Asian ideograph */ + {"\x9B", 0, 0x225D60}, /* East Asian ideograph */ + {"\xA4", 0, 0x225D62}, /* East Asian ideograph */ + {"\xA3", 0, 0x225D67}, /* East Asian ideograph */ + {"\xAF", 0, 0x225D69}, /* East Asian ideograph */ + {"\xAC", 0, 0x225D6B}, /* East Asian ideograph */ + {"\xB9", 0, 0x225D6D}, /* East Asian ideograph */ + {"\xBA", 0, 0x225D6E}, /* East Asian ideograph */ + {"\xB7", 0, 0x225D71}, /* East Asian ideograph */ + {"\xB1", 0, 0x225D75}, /* East Asian ideograph */ + {"\xBD", 0, 0x225D79}, /* East Asian ideograph */ + {"\xBF", 0, 0x225D7E}, /* East Asian ideograph */ + {"\x85", 0, 0x274343}, /* East Asian ideograph */ + {"\x84", 0, 0x274C31}, /* East Asian ideograph */ + {"\xB4", 0, 0x274C3B}, /* East Asian ideograph */ + {"\xB2", 0, 0x285D6B}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D4C2D}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D4C35}, /* East Asian ideograph */ + {"\x8D", 0, 0x334C2C}, /* East Asian ideograph */ + {"\xAD", 0, 0x345D6B}, /* East Asian ideograph */ + {"\x86", 0, 0x394C2D}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B4C36}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B4C3C}, /* East Asian ideograph */ + {"\xA0", 0, 0x69482B}, /* East Asian ideograph */ + {"\x89", 0, 0x69613A}, /* East Asian ideograph */ + {"\xA9", 0, 0x69613E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page164 = { + marc8r_9page164_flat, 0 +}; +/* PAGE 163 */ +struct yaz_iconv_trie_flat marc8r_9page163_flat[] = { + {"\x84", 0, 0x214B73}, /* East Asian ideograph */ + {"\x8C", 0, 0x214B74}, /* East Asian ideograph */ + {"\x95", 0, 0x214B75}, /* East Asian ideograph */ + {"\x98", 0, 0x214B76}, /* East Asian ideograph */ + {"\x9A", 0, 0x214B77}, /* East Asian ideograph */ + {"\x9C", 0, 0x214B78}, /* East Asian ideograph */ + {"\x9F", 0, 0x214B79}, /* East Asian ideograph */ + {"\xA2", 0, 0x214B7A}, /* East Asian ideograph */ + {"\xA6", 0, 0x214B7B}, /* East Asian ideograph */ + {"\xA5", 0, 0x214B7C}, /* East Asian ideograph */ + {"\xA8", 0, 0x214B7D}, /* East Asian ideograph */ + {"\xA9", 0, 0x214B7E}, /* East Asian ideograph */ + {"\xAC", 0, 0x214C21}, /* East Asian ideograph */ + {"\xAB", 0, 0x214C22}, /* East Asian ideograph */ + {"\xAD", 0, 0x214C23}, /* East Asian ideograph */ + {"\xB0", 0, 0x214C24}, /* East Asian ideograph */ + {"\xB2", 0, 0x214C25}, /* East Asian ideograph */ + {"\xB1", 0, 0x214C26}, /* East Asian ideograph */ + {"\xB3", 0, 0x214C27}, /* East Asian ideograph */ + {"\xB7", 0, 0x214C28}, /* East Asian ideograph */ + {"\xB8", 0, 0x214C29}, /* East Asian ideograph */ + {"\xBD", 0, 0x214C2A}, /* East Asian ideograph */ + {"\x85", 0, 0x225C71}, /* East Asian ideograph */ + {"\x83", 0, 0x225C77}, /* East Asian ideograph */ + {"\x87", 0, 0x225C7D}, /* East Asian ideograph */ + {"\x8E", 0, 0x225D25}, /* East Asian ideograph */ + {"\x8D", 0, 0x225D28}, /* East Asian ideograph */ + {"\x91", 0, 0x225D2C}, /* East Asian ideograph */ + {"\x8F", 0, 0x225D2D}, /* East Asian ideograph */ + {"\x92", 0, 0x225D32}, /* East Asian ideograph */ + {"\x93", 0, 0x225D33}, /* East Asian ideograph */ + {"\x97", 0, 0x225D39}, /* East Asian ideograph */ + {"\xA1", 0, 0x225D42}, /* East Asian ideograph */ + {"\xA4", 0, 0x225D44}, /* East Asian ideograph */ + {"\xAF", 0, 0x225D49}, /* East Asian ideograph */ + {"\xBA", 0, 0x225D4D}, /* East Asian ideograph */ + {"\xBF", 0, 0x225D4F}, /* East Asian ideograph */ + {"\xBE", 0, 0x225D52}, /* East Asian ideograph */ + {"\xBB", 0, 0x274C36}, /* East Asian ideograph */ + {"\xB5", 0, 0x275F55}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D3730}, /* East Asian ideograph */ + {"\x86", 0, 0x2D4B72}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D5833}, /* East Asian ideograph */ + {"\x96", 0, 0x2E742E}, /* East Asian ideograph */ + {"\xBB", 0, 0x334C36}, /* East Asian ideograph (variant of EACC 274C36) */ + {"\xA3", 0, 0x454B7A}, /* East Asian ideograph */ + {"\xBC", 0, 0x696136}, /* East Asian ideograph */ + {"\x99", 0, 0x705F30}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page163 = { + marc8r_9page163_flat, 0 +}; +/* PAGE 162 */ +struct yaz_iconv_trie_flat marc8r_9page162_flat[] = { + {"\x8A", 0, 0x214B6A}, /* East Asian ideograph */ + {"\x8F", 0, 0x214B6B}, /* East Asian ideograph */ + {"\x9C", 0, 0x214B6C}, /* East Asian ideograph */ + {"\xA0", 0, 0x214B6D}, /* East Asian ideograph */ + {"\xA2", 0, 0x214B6E}, /* East Asian ideograph */ + {"\xA3", 0, 0x214B6F}, /* East Asian ideograph */ + {"\xA6", 0, 0x214B70}, /* East Asian ideograph */ + {"\xB6", 0, 0x214B71}, /* East Asian ideograph */ + {"\xB7", 0, 0x214B72}, /* East Asian ideograph */ + {"\x80", 0, 0x225B7A}, /* East Asian ideograph */ + {"\x88", 0, 0x225C30}, /* East Asian ideograph */ + {"\x85", 0, 0x225C31}, /* East Asian ideograph */ + {"\x8C", 0, 0x225C32}, /* East Asian ideograph */ + {"\x96", 0, 0x225C38}, /* East Asian ideograph */ + {"\x94", 0, 0x225C3A}, /* East Asian ideograph */ + {"\x98", 0, 0x225C3D}, /* East Asian ideograph */ + {"\x9A", 0, 0x225C40}, /* East Asian ideograph */ + {"\x9B", 0, 0x225C41}, /* East Asian ideograph */ + {"\x9E", 0, 0x225C47}, /* East Asian ideograph */ + {"\xA4", 0, 0x225C50}, /* East Asian ideograph */ + {"\xA7", 0, 0x225C52}, /* East Asian ideograph */ + {"\xA9", 0, 0x225C54}, /* East Asian ideograph */ + {"\xB1", 0, 0x225C58}, /* East Asian ideograph */ + {"\xB0", 0, 0x225C5A}, /* East Asian ideograph */ + {"\xAE", 0, 0x225C5C}, /* East Asian ideograph */ + {"\xB4", 0, 0x225C61}, /* East Asian ideograph */ + {"\xB8", 0, 0x225C63}, /* East Asian ideograph */ + {"\xBB", 0, 0x225C66}, /* East Asian ideograph */ + {"\xBF", 0, 0x225C67}, /* East Asian ideograph */ + {"\xAF", 0, 0x274B74}, /* East Asian ideograph */ + {"\x92", 0, 0x285C40}, /* East Asian ideograph */ + {"\xB4", 0, 0x4C5C61}, /* East Asian ideograph (variant of EACC 225C61) */ + {"\xB2", 0, 0x696126}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page162 = { + marc8r_9page162_flat, 0 +}; +/* PAGE 161 */ +struct yaz_iconv_trie_flat marc8r_9page161_flat[] = { + {"\x83", 0, 0x214B5C}, /* East Asian ideograph */ + {"\x8B", 0, 0x214B62}, /* East Asian ideograph */ + {"\x9C", 0, 0x214B63}, /* East Asian ideograph (variant of EACC 4B4B63) */ + {"\xA3", 0, 0x214B64}, /* East Asian ideograph */ + {"\xA7", 0, 0x214B65}, /* East Asian ideograph */ + {"\xA9", 0, 0x214B66}, /* East Asian ideograph */ + {"\xB0", 0, 0x214B67}, /* East Asian ideograph */ + {"\xA6", 0, 0x214B68}, /* East Asian ideograph */ + {"\xBD", 0, 0x214B69}, /* East Asian ideograph */ + {"\x84", 0, 0x225A7A}, /* East Asian ideograph */ + {"\x87", 0, 0x225A7B}, /* East Asian ideograph */ + {"\x88", 0, 0x225A7E}, /* East Asian ideograph */ + {"\x89", 0, 0x225B21}, /* East Asian ideograph */ + {"\x82", 0, 0x225B27}, /* East Asian ideograph */ + {"\x8A", 0, 0x225B2A}, /* East Asian ideograph */ + {"\x86", 0, 0x225B2D}, /* East Asian ideograph */ + {"\x80", 0, 0x225B38}, /* East Asian ideograph */ + {"\x81", 0, 0x225B3C}, /* East Asian ideograph */ + {"\x85", 0, 0x225B3F}, /* East Asian ideograph */ + {"\x97", 0, 0x225B40}, /* East Asian ideograph */ + {"\x98", 0, 0x225B43}, /* East Asian ideograph */ + {"\x9A", 0, 0x225B45}, /* East Asian ideograph */ + {"\xA4", 0, 0x225B4D}, /* East Asian ideograph */ + {"\x9F", 0, 0x225B54}, /* East Asian ideograph */ + {"\x9D", 0, 0x225B55}, /* East Asian ideograph */ + {"\x8D", 0, 0x225B56}, /* East Asian ideograph */ + {"\x9E", 0, 0x225B57}, /* East Asian ideograph */ + {"\xA0", 0, 0x225B59}, /* East Asian ideograph */ + {"\xA1", 0, 0x225B5D}, /* East Asian ideograph */ + {"\xB2", 0, 0x225B60}, /* East Asian ideograph */ + {"\xB1", 0, 0x225B61}, /* East Asian ideograph */ + {"\xB4", 0, 0x225B66}, /* East Asian ideograph */ + {"\xAB", 0, 0x225B67}, /* East Asian ideograph */ + {"\xAA", 0, 0x225B69}, /* East Asian ideograph */ + {"\x90", 0, 0x225B6A}, /* East Asian ideograph */ + {"\xA5", 0, 0x225B6C}, /* East Asian ideograph */ + {"\xA8", 0, 0x225B6E}, /* East Asian ideograph */ + {"\xB8", 0, 0x225B76}, /* East Asian ideograph */ + {"\xBF", 0, 0x225C25}, /* East Asian ideograph */ + {"\xB5", 0, 0x225C28}, /* East Asian ideograph */ + {"\xBA", 0, 0x225C29}, /* East Asian ideograph */ + {"\x8E", 0, 0x285C3A}, /* East Asian ideograph */ + {"\xA2", 0, 0x2E5A78}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B4B63}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page161 = { + marc8r_9page161_flat, 0 +}; +/* PAGE 160 */ +struct yaz_iconv_trie_flat marc8r_9page160_flat[] = { + {"\x95", 0, 0x214B53}, /* East Asian ideograph */ + {"\x9F", 0, 0x214B54}, /* East Asian ideograph */ + {"\x9A", 0, 0x214B55}, /* East Asian ideograph */ + {"\x81", 0, 0x214B56}, /* East Asian ideograph */ + {"\x9B", 0, 0x214B58}, /* East Asian ideograph */ + {"\x9E", 0, 0x214B59}, /* East Asian ideograph */ + {"\x9C", 0, 0x214B5A}, /* East Asian ideograph */ + {"\x99", 0, 0x214B5B}, /* East Asian ideograph */ + {"\xA9", 0, 0x214B5D}, /* East Asian ideograph */ + {"\xAA", 0, 0x214B5E}, /* East Asian ideograph */ + {"\xA3", 0, 0x214B5F}, /* East Asian ideograph */ + {"\xA4", 0, 0x214B60}, /* East Asian ideograph */ + {"\xB0", 0, 0x214B61}, /* East Asian ideograph */ + {"\x84", 0, 0x225A36}, /* East Asian ideograph */ + {"\x87", 0, 0x225A40}, /* East Asian ideograph */ + {"\x98", 0, 0x225A43}, /* East Asian ideograph */ + {"\x82", 0, 0x225A45}, /* East Asian ideograph */ + {"\x8B", 0, 0x225A47}, /* East Asian ideograph */ + {"\x8A", 0, 0x225A4A}, /* East Asian ideograph */ + {"\x92", 0, 0x225A4F}, /* East Asian ideograph */ + {"\x97", 0, 0x225A55}, /* East Asian ideograph */ + {"\x91", 0, 0x225A56}, /* East Asian ideograph */ + {"\x9D", 0, 0x225A5A}, /* East Asian ideograph */ + {"\x94", 0, 0x225A5B}, /* East Asian ideograph */ + {"\x80", 0, 0x225A5D}, /* East Asian ideograph */ + {"\xAD", 0, 0x225A60}, /* East Asian ideograph */ + {"\xA2", 0, 0x225A61}, /* East Asian ideograph */ + {"\xB3", 0, 0x225A62}, /* East Asian ideograph */ + {"\xB4", 0, 0x225A68}, /* East Asian ideograph */ + {"\xAE", 0, 0x225A69}, /* East Asian ideograph */ + {"\xB1", 0, 0x225A6A}, /* East Asian ideograph */ + {"\xA8", 0, 0x225A6B}, /* East Asian ideograph */ + {"\xA0", 0, 0x225A78}, /* East Asian ideograph */ + {"\xB2", 0, 0x225A79}, /* East Asian ideograph */ + {"\xBC", 0, 0x225B22}, /* East Asian ideograph */ + {"\xBE", 0, 0x225B28}, /* East Asian ideograph */ + {"\xBA", 0, 0x225B30}, /* East Asian ideograph */ + {"\xBD", 0, 0x225B3E}, /* East Asian ideograph */ + {"\xB7", 0, 0x274B68}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D4B43}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page160 = { + marc8r_9page160_flat, 0 +}; +/* PAGE 159 */ +struct yaz_iconv_trie_flat marc8r_9page159_flat[] = { + {"\x85", 0, 0x214B43}, /* East Asian ideograph */ + {"\x89", 0, 0x214B44}, /* East Asian ideograph */ + {"\x83", 0, 0x214B45}, /* East Asian ideograph */ + {"\x8A", 0, 0x214B46}, /* East Asian ideograph */ + {"\x86", 0, 0x214B48}, /* East Asian ideograph */ + {"\x8D", 0, 0x214B49}, /* East Asian ideograph */ + {"\xBA", 0, 0x214B4A}, /* East Asian ideograph */ + {"\xB5", 0, 0x214B4B}, /* East Asian ideograph */ + {"\xB6", 0, 0x214B4C}, /* East Asian ideograph */ + {"\xB4", 0, 0x214B4D}, /* East Asian ideograph */ + {"\xAA", 0, 0x214B4E}, /* East Asian ideograph */ + {"\xB3", 0, 0x214B4F}, /* East Asian ideograph */ + {"\xA2", 0, 0x214B50}, /* East Asian ideograph */ + {"\xA5", 0, 0x214B51}, /* East Asian ideograph */ + {"\xBF", 0, 0x214B57}, /* East Asian ideograph */ + {"\xB9", 0, 0x223D66}, /* East Asian ideograph */ + {"\x87", 0, 0x22595C}, /* East Asian ideograph */ + {"\x92", 0, 0x22595E}, /* East Asian ideograph */ + {"\xBC", 0, 0x225963}, /* East Asian ideograph */ + {"\xAE", 0, 0x225966}, /* East Asian ideograph */ + {"\xAF", 0, 0x225967}, /* East Asian ideograph */ + {"\x94", 0, 0x225969}, /* East Asian ideograph */ + {"\xAC", 0, 0x22596A}, /* East Asian ideograph */ + {"\xB0", 0, 0x22596C}, /* East Asian ideograph */ + {"\xAB", 0, 0x22596E}, /* East Asian ideograph */ + {"\x9A", 0, 0x225971}, /* East Asian ideograph */ + {"\x96", 0, 0x225978}, /* East Asian ideograph */ + {"\xA6", 0, 0x22597A}, /* East Asian ideograph */ + {"\xA8", 0, 0x225A21}, /* East Asian ideograph */ + {"\xA9", 0, 0x225A23}, /* East Asian ideograph */ + {"\xA0", 0, 0x225A28}, /* East Asian ideograph */ + {"\x9B", 0, 0x225A2A}, /* East Asian ideograph */ + {"\xA4", 0, 0x225A2B}, /* East Asian ideograph */ + {"\xB2", 0, 0x225A2C}, /* East Asian ideograph */ + {"\xAD", 0, 0x225A2D}, /* East Asian ideograph */ + {"\x95", 0, 0x225A30}, /* East Asian ideograph */ + {"\xBB", 0, 0x225A32}, /* East Asian ideograph */ + {"\x90", 0, 0x274B5F}, /* East Asian ideograph */ + {"\x8F", 0, 0x285B21}, /* East Asian ideograph */ + {"\xB1", 0, 0x3F5F49}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page159 = { + marc8r_9page159_flat, 0 +}; +/* PAGE 158 */ +struct yaz_iconv_trie_flat marc8r_9page158_flat[] = { + {"\x8A", 0, 0x214B3A}, /* East Asian ideograph */ + {"\x80", 0, 0x214B3C}, /* East Asian ideograph */ + {"\x8D", 0, 0x214B3F}, /* East Asian ideograph */ + {"\xAD", 0, 0x214B40}, /* East Asian ideograph */ + {"\xAE", 0, 0x214B41}, /* East Asian ideograph */ + {"\xA0", 0, 0x214B42}, /* East Asian ideograph */ + {"\xBE", 0, 0x214B47}, /* East Asian ideograph */ + {"\x8F", 0, 0x225868}, /* East Asian ideograph */ + {"\x82", 0, 0x22586A}, /* East Asian ideograph */ + {"\x90", 0, 0x22586B}, /* East Asian ideograph */ + {"\x88", 0, 0x225870}, /* East Asian ideograph */ + {"\x8C", 0, 0x22587D}, /* East Asian ideograph */ + {"\x93", 0, 0x225921}, /* East Asian ideograph */ + {"\xAA", 0, 0x225927}, /* East Asian ideograph */ + {"\xA5", 0, 0x225928}, /* East Asian ideograph */ + {"\x99", 0, 0x22592A}, /* East Asian ideograph */ + {"\xAF", 0, 0x22592B}, /* East Asian ideograph */ + {"\x94", 0, 0x22592F}, /* East Asian ideograph */ + {"\x9B", 0, 0x225930}, /* East Asian ideograph */ + {"\x96", 0, 0x225932}, /* East Asian ideograph */ + {"\xA7", 0, 0x225936}, /* East Asian ideograph */ + {"\xA3", 0, 0x225938}, /* East Asian ideograph */ + {"\x9E", 0, 0x22593A}, /* East Asian ideograph */ + {"\xA6", 0, 0x22593C}, /* East Asian ideograph */ + {"\xA9", 0, 0x22593F}, /* East Asian ideograph */ + {"\xB6", 0, 0x225945}, /* East Asian ideograph */ + {"\xBA", 0, 0x225947}, /* East Asian ideograph */ + {"\xB8", 0, 0x22594A}, /* East Asian ideograph */ + {"\xB5", 0, 0x225954}, /* East Asian ideograph */ + {"\xBD", 0, 0x22595A}, /* East Asian ideograph */ + {"\xB7", 0, 0x225970}, /* East Asian ideograph */ + {"\xB2", 0, 0x274B57}, /* East Asian ideograph */ + {"\x91", 0, 0x274B6B}, /* East Asian ideograph */ + {"\x89", 0, 0x2D4B35}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D4B3F}, /* East Asian ideograph */ + {"\xB1", 0, 0x4C5C3A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page158 = { + marc8r_9page158_flat, 0 +}; +/* PAGE 157 */ +struct yaz_iconv_trie_flat marc8r_9page157_flat[] = { + {"\x80", 0, 0x214B2F}, /* East Asian ideograph */ + {"\x84", 0, 0x214B30}, /* East Asian ideograph */ + {"\x87", 0, 0x214B31}, /* East Asian ideograph */ + {"\x89", 0, 0x214B32}, /* East Asian ideograph */ + {"\x8B", 0, 0x214B33}, /* East Asian ideograph */ + {"\x96", 0, 0x214B34}, /* East Asian ideograph */ + {"\x9F", 0, 0x214B35}, /* East Asian ideograph */ + {"\xA8", 0, 0x214B36}, /* East Asian ideograph */ + {"\xA9", 0, 0x214B37}, /* East Asian ideograph */ + {"\xAB", 0, 0x214B38}, /* East Asian ideograph */ + {"\xBB", 0, 0x214B39}, /* East Asian ideograph */ + {"\xB7", 0, 0x214B3B}, /* East Asian ideograph */ + {"\xB2", 0, 0x214B3E}, /* East Asian ideograph */ + {"\x8D", 0, 0x216437}, /* East Asian ideograph */ + {"\x81", 0, 0x22583B}, /* East Asian ideograph */ + {"\x88", 0, 0x22583F}, /* East Asian ideograph */ + {"\x8E", 0, 0x225842}, /* East Asian ideograph */ + {"\x95", 0, 0x225846}, /* East Asian ideograph */ + {"\x92", 0, 0x225847}, /* East Asian ideograph */ + {"\x97", 0, 0x225848}, /* East Asian ideograph */ + {"\x93", 0, 0x22584C}, /* East Asian ideograph */ + {"\x94", 0, 0x22584D}, /* East Asian ideograph */ + {"\x9E", 0, 0x225851}, /* East Asian ideograph */ + {"\xA6", 0, 0x225852}, /* East Asian ideograph */ + {"\xA5", 0, 0x22585D}, /* East Asian ideograph */ + {"\xA2", 0, 0x225862}, /* East Asian ideograph */ + {"\xA0", 0, 0x225863}, /* East Asian ideograph */ + {"\xB6", 0, 0x225867}, /* East Asian ideograph */ + {"\xBF", 0, 0x22586F}, /* East Asian ideograph */ + {"\xBC", 0, 0x225935}, /* East Asian ideograph */ + {"\xB0", 0, 0x274B47}, /* East Asian ideograph */ + {"\x9B", 0, 0x274B5E}, /* East Asian ideograph */ + {"\x91", 0, 0x274B64}, /* East Asian ideograph */ + {"\xAF", 0, 0x274B67}, /* East Asian ideograph */ + {"\xBA", 0, 0x274B69}, /* East Asian ideograph */ + {"\xAE", 0, 0x285A47}, /* East Asian ideograph */ + {"\x85", 0, 0x2D3954}, /* East Asian ideograph */ + {"\xB3", 0, 0x2E5A40}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B4B3E}, /* East Asian ideograph (variant of EACC 214B3E) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page157 = { + marc8r_9page157_flat, 0 +}; +/* PAGE 156 */ +struct yaz_iconv_trie_flat marc8r_9page156_flat[] = { + {"\x84", 0, 0x214A7E}, /* East Asian ideograph */ + {"\x85", 0, 0x214B23}, /* East Asian ideograph */ + {"\x90", 0, 0x214B24}, /* East Asian ideograph */ + {"\x97", 0, 0x214B26}, /* East Asian ideograph */ + {"\xA8", 0, 0x214B27}, /* East Asian ideograph */ + {"\xB0", 0, 0x214B28}, /* East Asian ideograph */ + {"\xB2", 0, 0x214B29}, /* East Asian ideograph */ + {"\xB7", 0, 0x214B2A}, /* East Asian ideograph */ + {"\xB8", 0, 0x214B2B}, /* East Asian ideograph */ + {"\xB5", 0, 0x214B2C}, /* East Asian ideograph */ + {"\xBA", 0, 0x214B2D}, /* East Asian ideograph */ + {"\xBB", 0, 0x214B2E}, /* East Asian ideograph */ + {"\x87", 0, 0x22575A}, /* East Asian ideograph */ + {"\x88", 0, 0x22575B}, /* East Asian ideograph */ + {"\x89", 0, 0x22575C}, /* East Asian ideograph */ + {"\x80", 0, 0x225765}, /* East Asian ideograph */ + {"\x8D", 0, 0x225768}, /* East Asian ideograph */ + {"\x92", 0, 0x22576B}, /* East Asian ideograph */ + {"\x9E", 0, 0x225772}, /* East Asian ideograph */ + {"\x9D", 0, 0x225774}, /* East Asian ideograph */ + {"\xA0", 0, 0x225779}, /* East Asian ideograph */ + {"\x98", 0, 0x22577B}, /* East Asian ideograph */ + {"\xA2", 0, 0x22577E}, /* East Asian ideograph */ + {"\x8B", 0, 0x225821}, /* East Asian ideograph */ + {"\xA7", 0, 0x225825}, /* East Asian ideograph */ + {"\xAC", 0, 0x225829}, /* East Asian ideograph */ + {"\xAB", 0, 0x22582B}, /* East Asian ideograph */ + {"\xAF", 0, 0x22582F}, /* East Asian ideograph */ + {"\xBC", 0, 0x225836}, /* East Asian ideograph */ + {"\xBE", 0, 0x225838}, /* East Asian ideograph */ + {"\xAD", 0, 0x274B2D}, /* East Asian ideograph */ + {"\x83", 0, 0x2D3556}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D4B22}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B4B2B}, /* East Asian ideograph */ + {"\x8F", 0, 0x4B5963}, /* East Asian ideograph */ + {"\x8E", 0, 0x517954}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page156 = { + marc8r_9page156_flat, 0 +}; +/* PAGE 155 */ +struct yaz_iconv_trie_flat marc8r_9page155_flat[] = { + {"\x9C", 0, 0x214A74}, /* East Asian ideograph */ + {"\x9B", 0, 0x214A75}, /* East Asian ideograph */ + {"\x93", 0, 0x214A76}, /* East Asian ideograph */ + {"\x96", 0, 0x214A77}, /* East Asian ideograph */ + {"\x99", 0, 0x214A78}, /* East Asian ideograph */ + {"\xB6", 0, 0x214A79}, /* East Asian ideograph */ + {"\xB7", 0, 0x214A7A}, /* East Asian ideograph */ + {"\xA9", 0, 0x214A7B}, /* East Asian ideograph */ + {"\xA5", 0, 0x214A7C}, /* East Asian ideograph */ + {"\xB4", 0, 0x214A7D}, /* East Asian ideograph */ + {"\xBF", 0, 0x214B21}, /* East Asian ideograph */ + {"\xBE", 0, 0x214B22}, /* East Asian ideograph */ + {"\x82", 0, 0x225729}, /* East Asian ideograph */ + {"\x81", 0, 0x22572D}, /* East Asian ideograph */ + {"\x9D", 0, 0x225731}, /* East Asian ideograph */ + {"\x8B", 0, 0x225735}, /* East Asian ideograph */ + {"\x97", 0, 0x225736}, /* East Asian ideograph */ + {"\x87", 0, 0x22573B}, /* East Asian ideograph */ + {"\x98", 0, 0x22573E}, /* East Asian ideograph */ + {"\x9E", 0, 0x225742}, /* East Asian ideograph */ + {"\xB1", 0, 0x225746}, /* East Asian ideograph */ + {"\xB8", 0, 0x225749}, /* East Asian ideograph */ + {"\xA2", 0, 0x22574A}, /* East Asian ideograph */ + {"\xB2", 0, 0x22574C}, /* East Asian ideograph */ + {"\xAC", 0, 0x22574D}, /* East Asian ideograph */ + {"\xA7", 0, 0x22574E}, /* East Asian ideograph */ + {"\xAB", 0, 0x22574F}, /* East Asian ideograph */ + {"\xAF", 0, 0x225752}, /* East Asian ideograph */ + {"\xA8", 0, 0x225755}, /* East Asian ideograph */ + {"\xBB", 0, 0x22575F}, /* East Asian ideograph */ + {"\xBA", 0, 0x225762}, /* East Asian ideograph */ + {"\x8E", 0, 0x274B2C}, /* East Asian ideograph */ + {"\xAE", 0, 0x274B2E}, /* East Asian ideograph */ + {"\xA1", 0, 0x274B2F}, /* East Asian ideograph */ + {"\x83", 0, 0x28582B}, /* East Asian ideograph */ + {"\x95", 0, 0x285836}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D595F}, /* East Asian ideograph */ + {"\x8A", 0, 0x2F5D5C}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B4A74}, /* East Asian ideograph (variant of EACC 214A74) */ + {"\x9F", 0, 0x4B4B2C}, /* East Asian ideograph */ + {"\xB9", 0, 0x70622A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page155 = { + marc8r_9page155_flat, 0 +}; +/* PAGE 154 */ +struct yaz_iconv_trie_flat marc8r_9page154_flat[] = { + {"\x84", 0, 0x214A65}, /* East Asian ideograph */ + {"\x82", 0, 0x214A66}, /* East Asian ideograph */ + {"\x99", 0, 0x214A67}, /* East Asian ideograph */ + {"\x80", 0, 0x214A68}, /* East Asian ideograph */ + {"\x8E", 0, 0x214A69}, /* East Asian ideograph */ + {"\x97", 0, 0x214A6A}, /* East Asian ideograph */ + {"\x90", 0, 0x214A6B}, /* East Asian ideograph */ + {"\xA1", 0, 0x214A6C}, /* East Asian ideograph */ + {"\xA9", 0, 0x214A6D}, /* East Asian ideograph */ + {"\xA0", 0, 0x214A6E}, /* East Asian ideograph */ + {"\xBC", 0, 0x214A6F}, /* East Asian ideograph */ + {"\xB9", 0, 0x214A70}, /* East Asian ideograph */ + {"\xBD", 0, 0x214A72}, /* East Asian ideograph */ + {"\xB7", 0, 0x214A73}, /* East Asian ideograph */ + {"\x86", 0, 0x225651}, /* East Asian ideograph */ + {"\x83", 0, 0x225658}, /* East Asian ideograph */ + {"\x81", 0, 0x22565B}, /* East Asian ideograph */ + {"\x96", 0, 0x225660}, /* East Asian ideograph */ + {"\x92", 0, 0x225664}, /* East Asian ideograph */ + {"\x89", 0, 0x225667}, /* East Asian ideograph */ + {"\x8C", 0, 0x22566C}, /* East Asian ideograph */ + {"\x9B", 0, 0x22566E}, /* East Asian ideograph */ + {"\x8D", 0, 0x22566F}, /* East Asian ideograph */ + {"\xA8", 0, 0x225673}, /* East Asian ideograph */ + {"\xAB", 0, 0x225676}, /* East Asian ideograph */ + {"\xA5", 0, 0x225679}, /* East Asian ideograph */ + {"\xBA", 0, 0x22567E}, /* East Asian ideograph */ + {"\xB4", 0, 0x225724}, /* East Asian ideograph */ + {"\xBE", 0, 0x225725}, /* East Asian ideograph */ + {"\xBB", 0, 0x22572C}, /* East Asian ideograph */ + {"\xB3", 0, 0x22572E}, /* East Asian ideograph */ + {"\xAD", 0, 0x274A70}, /* East Asian ideograph */ + {"\x88", 0, 0x274A72}, /* East Asian ideograph */ + {"\xB1", 0, 0x274A7E}, /* East Asian ideograph */ + {"\xAF", 0, 0x274B22}, /* East Asian ideograph */ + {"\xAE", 0, 0x274B23}, /* East Asian ideograph */ + {"\xAC", 0, 0x274B27}, /* East Asian ideograph */ + {"\x9E", 0, 0x274B28}, /* East Asian ideograph */ + {"\xB2", 0, 0x28575F}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D5965}, /* East Asian ideograph */ + {"\xB0", 0, 0x4B4A78}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B5964}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page154 = { + marc8r_9page154_flat, 0 +}; +/* PAGE 153 */ +struct yaz_iconv_trie_flat marc8r_9page153_flat[] = { + {"\x81", 0, 0x214A5B}, /* East Asian ideograph */ + {"\x80", 0, 0x214A5C}, /* East Asian ideograph */ + {"\x84", 0, 0x214A5D}, /* East Asian ideograph */ + {"\x96", 0, 0x214A5E}, /* East Asian ideograph */ + {"\x92", 0, 0x214A5F}, /* East Asian ideograph */ + {"\x9B", 0, 0x214A60}, /* East Asian ideograph */ + {"\xA2", 0, 0x214A61}, /* East Asian ideograph */ + {"\xA7", 0, 0x214A62}, /* East Asian ideograph */ + {"\xAC", 0, 0x214A63}, /* East Asian ideograph */ + {"\xAF", 0, 0x214A64}, /* East Asian ideograph */ + {"\x89", 0, 0x225574}, /* East Asian ideograph */ + {"\x8B", 0, 0x22557C}, /* East Asian ideograph */ + {"\x8D", 0, 0x225622}, /* East Asian ideograph */ + {"\x8F", 0, 0x225628}, /* East Asian ideograph */ + {"\xA8", 0, 0x225648}, /* East Asian ideograph */ + {"\xAB", 0, 0x22564C}, /* East Asian ideograph */ + {"\xB0", 0, 0x22564E}, /* East Asian ideograph */ + {"\xB4", 0, 0x22564F}, /* East Asian ideograph */ + {"\xB5", 0, 0x225652}, /* East Asian ideograph */ + {"\xBC", 0, 0x225656}, /* East Asian ideograph */ + {"\x8A", 0, 0x274A61}, /* East Asian ideograph */ + {"\xB6", 0, 0x274A68}, /* East Asian ideograph */ + {"\xB9", 0, 0x274A79}, /* East Asian ideograph */ + {"\xB7", 0, 0x274B2A}, /* East Asian ideograph */ + {"\xB8", 0, 0x28575E}, /* East Asian ideograph */ + {"\x87", 0, 0x2D392F}, /* East Asian ideograph */ + {"\x82", 0, 0x2D4A5B}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D5960}, /* East Asian ideograph */ + {"\xA0", 0, 0x4B4A62}, /* East Asian ideograph */ + {"\x9F", 0, 0x4C5638}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page153 = { + marc8r_9page153_flat, 0 +}; +/* PAGE 152 */ +struct yaz_iconv_trie_flat marc8r_9page152_flat[] = { + {"\x86", 0, 0x214A46}, /* East Asian ideograph */ + {"\x87", 0, 0x214A47}, /* East Asian ideograph */ + {"\x88", 0, 0x214A48}, /* East Asian ideograph */ + {"\x8C", 0, 0x214A49}, /* East Asian ideograph */ + {"\x92", 0, 0x214A4A}, /* East Asian ideograph */ + {"\x96", 0, 0x214A4B}, /* East Asian ideograph */ + {"\x98", 0, 0x214A4C}, /* East Asian ideograph */ + {"\x99", 0, 0x214A4D}, /* East Asian ideograph */ + {"\x9B", 0, 0x214A4E}, /* East Asian ideograph */ + {"\x9F", 0, 0x214A4F}, /* East Asian ideograph */ + {"\x9D", 0, 0x214A50}, /* East Asian ideograph */ + {"\xA2", 0, 0x214A51}, /* East Asian ideograph */ + {"\xA1", 0, 0x214A52}, /* East Asian ideograph */ + {"\xA0", 0, 0x214A53}, /* East Asian ideograph */ + {"\xA7", 0, 0x214A54}, /* East Asian ideograph */ + {"\xA9", 0, 0x214A55}, /* East Asian ideograph */ + {"\xAF", 0, 0x214A56}, /* East Asian ideograph */ + {"\xB2", 0, 0x214A57}, /* East Asian ideograph */ + {"\xB4", 0, 0x214A58}, /* East Asian ideograph */ + {"\xB9", 0, 0x214A59}, /* East Asian ideograph */ + {"\xBD", 0, 0x214A5A}, /* East Asian ideograph */ + {"\x81", 0, 0x225543}, /* East Asian ideograph */ + {"\x82", 0, 0x225544}, /* East Asian ideograph */ + {"\x90", 0, 0x22554F}, /* East Asian ideograph */ + {"\x8F", 0, 0x225551}, /* East Asian ideograph */ + {"\x93", 0, 0x225552}, /* East Asian ideograph */ + {"\x95", 0, 0x225553}, /* East Asian ideograph */ + {"\x9A", 0, 0x225556}, /* East Asian ideograph */ + {"\xA3", 0, 0x225559}, /* East Asian ideograph */ + {"\xB3", 0, 0x225561}, /* East Asian ideograph */ + {"\xAE", 0, 0x225563}, /* East Asian ideograph */ + {"\xB6", 0, 0x225566}, /* East Asian ideograph */ + {"\xB7", 0, 0x225568}, /* East Asian ideograph */ + {"\xBE", 0, 0x22556B}, /* East Asian ideograph */ + {"\xBC", 0, 0x22556D}, /* East Asian ideograph */ + {"\xBF", 0, 0x225571}, /* East Asian ideograph */ + {"\x8D", 0, 0x274A4C}, /* East Asian ideograph */ + {"\xB5", 0, 0x274A5A}, /* East Asian ideograph */ + {"\xBA", 0, 0x274A62}, /* East Asian ideograph */ + {"\x80", 0, 0x2D3C6E}, /* East Asian ideograph */ + {"\x8B", 0, 0x33502B}, /* East Asian ideograph */ + {"\xA6", 0, 0x3F4A60}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page152 = { + marc8r_9page152_flat, 0 +}; +/* PAGE 151 */ +struct yaz_iconv_trie_flat marc8r_9page151_flat[] = { + {"\x86", 0, 0x214A35}, /* East Asian ideograph */ + {"\x8D", 0, 0x214A36}, /* East Asian ideograph */ + {"\x90", 0, 0x214A37}, /* East Asian ideograph */ + {"\x9B", 0, 0x214A38}, /* East Asian ideograph */ + {"\xA8", 0, 0x214A39}, /* East Asian ideograph */ + {"\xAA", 0, 0x214A3A}, /* East Asian ideograph */ + {"\xAD", 0, 0x214A3B}, /* East Asian ideograph */ + {"\xAC", 0, 0x214A3C}, /* East Asian ideograph */ + {"\xB0", 0, 0x214A3D}, /* East Asian ideograph */ + {"\xB5", 0, 0x214A3E}, /* East Asian ideograph (variant of EACC 4B4A3E) */ + {"\xB6", 0, 0x214A3F}, /* East Asian ideograph */ + {"\xB8", 0, 0x214A40}, /* East Asian ideograph */ + {"\xB9", 0, 0x214A41}, /* East Asian ideograph */ + {"\xBA", 0, 0x214A42}, /* East Asian ideograph */ + {"\xBB", 0, 0x214A43}, /* East Asian ideograph */ + {"\xBD", 0, 0x214A44}, /* East Asian ideograph */ + {"\xBE", 0, 0x214A45}, /* East Asian ideograph */ + {"\x8C", 0, 0x22544B}, /* East Asian ideograph */ + {"\x8E", 0, 0x22545B}, /* East Asian ideograph */ + {"\x8A", 0, 0x22545E}, /* East Asian ideograph */ + {"\x97", 0, 0x225460}, /* East Asian ideograph */ + {"\x87", 0, 0x225461}, /* East Asian ideograph */ + {"\x95", 0, 0x225466}, /* East Asian ideograph */ + {"\x93", 0, 0x225469}, /* East Asian ideograph */ + {"\x98", 0, 0x22546E}, /* East Asian ideograph */ + {"\x8B", 0, 0x225471}, /* East Asian ideograph */ + {"\x9A", 0, 0x225479}, /* East Asian ideograph */ + {"\x9F", 0, 0x22547D}, /* East Asian ideograph */ + {"\x9D", 0, 0x225521}, /* East Asian ideograph */ + {"\xA5", 0, 0x225529}, /* East Asian ideograph */ + {"\xA6", 0, 0x22552A}, /* East Asian ideograph */ + {"\xBF", 0, 0x225541}, /* East Asian ideograph */ + {"\xB1", 0, 0x273E77}, /* East Asian ideograph */ + {"\xB7", 0, 0x274A42}, /* East Asian ideograph */ + {"\xBC", 0, 0x4B316A}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B4A3E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page151 = { + marc8r_9page151_flat, 0 +}; +/* PAGE 150 */ +struct yaz_iconv_trie_flat marc8r_9page150_flat[] = { + {"\x99", 0, 0x21497E}, /* East Asian ideograph */ + {"\x89", 0, 0x214A22}, /* East Asian ideograph */ + {"\x90", 0, 0x214A23}, /* East Asian ideograph */ + {"\x88", 0, 0x214A24}, /* East Asian ideograph */ + {"\x9C", 0, 0x214A25}, /* East Asian ideograph */ + {"\x92", 0, 0x214A26}, /* East Asian ideograph */ + {"\x95", 0, 0x214A28}, /* East Asian ideograph */ + {"\x8E", 0, 0x214A29}, /* East Asian ideograph */ + {"\x83", 0, 0x214A2A}, /* East Asian ideograph */ + {"\x84", 0, 0x214A2B}, /* East Asian ideograph */ + {"\xAE", 0, 0x214A2C}, /* East Asian ideograph */ + {"\xA7", 0, 0x214A2D}, /* East Asian ideograph */ + {"\x9F", 0, 0x214A2E}, /* East Asian ideograph */ + {"\xA5", 0, 0x214A2F}, /* East Asian ideograph */ + {"\xAD", 0, 0x214A30}, /* East Asian ideograph */ + {"\xA6", 0, 0x214A31}, /* East Asian ideograph */ + {"\xAC", 0, 0x214A32}, /* East Asian ideograph */ + {"\xB4", 0, 0x214A33}, /* East Asian ideograph */ + {"\xBB", 0, 0x214A34}, /* East Asian ideograph */ + {"\x91", 0, 0x225367}, /* East Asian ideograph */ + {"\x87", 0, 0x225369}, /* East Asian ideograph */ + {"\x8A", 0, 0x22536D}, /* East Asian ideograph */ + {"\x8F", 0, 0x22536F}, /* East Asian ideograph */ + {"\x96", 0, 0x225370}, /* East Asian ideograph */ + {"\x82", 0, 0x225375}, /* East Asian ideograph */ + {"\x85", 0, 0x225377}, /* East Asian ideograph */ + {"\x9D", 0, 0x225421}, /* East Asian ideograph */ + {"\x80", 0, 0x225422}, /* East Asian ideograph */ + {"\x81", 0, 0x225424}, /* East Asian ideograph */ + {"\x94", 0, 0x225426}, /* East Asian ideograph */ + {"\x8B", 0, 0x225429}, /* East Asian ideograph */ + {"\x9E", 0, 0x22542A}, /* East Asian ideograph */ + {"\xAB", 0, 0x225432}, /* East Asian ideograph */ + {"\xA8", 0, 0x225436}, /* East Asian ideograph */ + {"\xB5", 0, 0x22543A}, /* East Asian ideograph */ + {"\xB3", 0, 0x22543D}, /* East Asian ideograph */ + {"\xA1", 0, 0x22543F}, /* East Asian ideograph */ + {"\xA0", 0, 0x225447}, /* East Asian ideograph */ + {"\xBC", 0, 0x22544F}, /* East Asian ideograph */ + {"\xB9", 0, 0x225456}, /* East Asian ideograph */ + {"\xBE", 0, 0x2E5452}, /* East Asian ideograph */ + {"\xBF", 0, 0x33525B}, /* East Asian ideograph */ + {"\x97", 0, 0x4B4A38}, /* East Asian ideograph */ + {"\xA0", 0, 0x4C5447}, /* East Asian ideograph (variant of EACC 225447) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page150 = { + marc8r_9page150_flat, 0 +}; +/* PAGE 149 */ +struct yaz_iconv_trie_flat marc8r_9page149_flat[] = { + {"\x99", 0, 0x214977}, /* East Asian ideograph */ + {"\x8A", 0, 0x214978}, /* East Asian ideograph */ + {"\x84", 0, 0x214979}, /* East Asian ideograph */ + {"\x9F", 0, 0x21497A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21497B}, /* East Asian ideograph */ + {"\xAC", 0, 0x21497C}, /* East Asian ideograph */ + {"\xB1", 0, 0x21497D}, /* East Asian ideograph */ + {"\xBE", 0, 0x214A21}, /* East Asian ideograph */ + {"\xB9", 0, 0x214A27}, /* East Asian ideograph */ + {"\x87", 0, 0x22527B}, /* East Asian ideograph */ + {"\x92", 0, 0x225323}, /* East Asian ideograph */ + {"\x80", 0, 0x22532B}, /* East Asian ideograph */ + {"\x89", 0, 0x22532C}, /* East Asian ideograph */ + {"\x85", 0, 0x225332}, /* East Asian ideograph */ + {"\x96", 0, 0x225333}, /* East Asian ideograph */ + {"\x98", 0, 0x225339}, /* East Asian ideograph */ + {"\x97", 0, 0x22533C}, /* East Asian ideograph */ + {"\xB5", 0, 0x22533E}, /* East Asian ideograph */ + {"\xA9", 0, 0x22533F}, /* East Asian ideograph */ + {"\xA5", 0, 0x225342}, /* East Asian ideograph */ + {"\x9E", 0, 0x225346}, /* East Asian ideograph */ + {"\xB2", 0, 0x225347}, /* East Asian ideograph */ + {"\x9B", 0, 0x22534A}, /* East Asian ideograph */ + {"\xAF", 0, 0x22534E}, /* East Asian ideograph */ + {"\xA4", 0, 0x225351}, /* East Asian ideograph */ + {"\xA0", 0, 0x225352}, /* East Asian ideograph */ + {"\x9A", 0, 0x225355}, /* East Asian ideograph */ + {"\xB3", 0, 0x225357}, /* East Asian ideograph */ + {"\xB4", 0, 0x225359}, /* East Asian ideograph */ + {"\xB7", 0, 0x22536A}, /* East Asian ideograph */ + {"\xBA", 0, 0x225372}, /* East Asian ideograph */ + {"\xBF", 0, 0x22537A}, /* East Asian ideograph */ + {"\xB8", 0, 0x22537C}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D4A34}, /* East Asian ideograph */ + {"\x94", 0, 0x2D5E26}, /* East Asian ideograph */ + {"\x88", 0, 0x4B4977}, /* East Asian ideograph */ + {"\x95", 0, 0x695F70}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page149 = { + marc8r_9page149_flat, 0 +}; +/* PAGE 148 */ +struct yaz_iconv_trie_flat marc8r_9page148_flat[] = { + {"\xAE", 0, 0x214963}, /* East Asian ideograph */ + {"\x8E", 0, 0x214969}, /* East Asian ideograph */ + {"\x89", 0, 0x21496A}, /* East Asian ideograph */ + {"\x99", 0, 0x21496B}, /* East Asian ideograph */ + {"\xA4", 0, 0x21496C}, /* East Asian ideograph */ + {"\xA9", 0, 0x21496D}, /* East Asian ideograph */ + {"\x9C", 0, 0x21496E}, /* East Asian ideograph */ + {"\xAC", 0, 0x21496F}, /* East Asian ideograph */ + {"\xA6", 0, 0x214970}, /* East Asian ideograph */ + {"\xA7", 0, 0x214971}, /* East Asian ideograph */ + {"\x9E", 0, 0x214972}, /* East Asian ideograph */ + {"\xA5", 0, 0x214973}, /* East Asian ideograph */ + {"\x8C", 0, 0x214974}, /* East Asian ideograph */ + {"\xBD", 0, 0x214975}, /* East Asian ideograph */ + {"\xB7", 0, 0x225248}, /* East Asian ideograph */ + {"\x86", 0, 0x225251}, /* East Asian ideograph */ + {"\x92", 0, 0x225252}, /* East Asian ideograph */ + {"\x8F", 0, 0x225254}, /* East Asian ideograph */ + {"\x9D", 0, 0x225255}, /* East Asian ideograph */ + {"\x81", 0, 0x225256}, /* East Asian ideograph */ + {"\xA0", 0, 0x225257}, /* East Asian ideograph */ + {"\xB5", 0, 0x225259}, /* East Asian ideograph */ + {"\xB3", 0, 0x22525A}, /* East Asian ideograph */ + {"\x83", 0, 0x22525C}, /* East Asian ideograph */ + {"\x9A", 0, 0x22525D}, /* East Asian ideograph */ + {"\xB6", 0, 0x22525E}, /* East Asian ideograph */ + {"\x8B", 0, 0x225260}, /* East Asian ideograph */ + {"\x87", 0, 0x225262}, /* East Asian ideograph */ + {"\xA8", 0, 0x225265}, /* East Asian ideograph */ + {"\xB1", 0, 0x225266}, /* East Asian ideograph */ + {"\x9F", 0, 0x225267}, /* East Asian ideograph */ + {"\x90", 0, 0x225269}, /* East Asian ideograph */ + {"\x93", 0, 0x22526B}, /* East Asian ideograph */ + {"\x84", 0, 0x225270}, /* East Asian ideograph */ + {"\xB2", 0, 0x225276}, /* East Asian ideograph */ + {"\xB8", 0, 0x225278}, /* East Asian ideograph */ + {"\xBB", 0, 0x22527C}, /* East Asian ideograph */ + {"\xBC", 0, 0x225336}, /* East Asian ideograph */ + {"\x85", 0, 0x2D5E24}, /* East Asian ideograph */ + {"\x8A", 0, 0x2E3870}, /* East Asian ideograph */ + {"\x9B", 0, 0x2E525D}, /* East Asian ideograph */ + {"\x96", 0, 0x334342}, /* East Asian ideograph */ + {"\xA2", 0, 0x345175}, /* East Asian ideograph */ + {"\xBA", 0, 0x4C523A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page148 = { + marc8r_9page148_flat, 0 +}; +/* PAGE 147 */ +struct yaz_iconv_trie_flat marc8r_9page147_flat[] = { + {"\x89", 0, 0x21495F}, /* East Asian ideograph */ + {"\x8A", 0, 0x214960}, /* East Asian ideograph */ + {"\x99", 0, 0x214962}, /* East Asian ideograph */ + {"\x9A", 0, 0x214964}, /* East Asian ideograph */ + {"\xB6", 0, 0x214965}, /* East Asian ideograph */ + {"\xA1", 0, 0x214966}, /* East Asian ideograph */ + {"\xA1", 0, 0x214966}, /* East Asian ideograph */ + {"\xB0", 0, 0x214967}, /* East Asian ideograph */ + {"\xA6", 0, 0x214968}, /* East Asian ideograph */ + {"\x84", 0, 0x225144}, /* East Asian ideograph */ + {"\x90", 0, 0x22514A}, /* East Asian ideograph */ + {"\x83", 0, 0x22514C}, /* East Asian ideograph */ + {"\x91", 0, 0x225155}, /* East Asian ideograph */ + {"\x92", 0, 0x225156}, /* East Asian ideograph */ + {"\x8C", 0, 0x22515C}, /* East Asian ideograph */ + {"\x93", 0, 0x225166}, /* East Asian ideograph */ + {"\x80", 0, 0x225168}, /* East Asian ideograph */ + {"\x9E", 0, 0x22516C}, /* East Asian ideograph */ + {"\xB4", 0, 0x22516D}, /* East Asian ideograph */ + {"\xA0", 0, 0x22516E}, /* East Asian ideograph */ + {"\xBF", 0, 0x22516F}, /* East Asian ideograph */ + {"\xB1", 0, 0x225174}, /* East Asian ideograph */ + {"\xAD", 0, 0x225175}, /* East Asian ideograph */ + {"\xB9", 0, 0x225227}, /* East Asian ideograph */ + {"\xB5", 0, 0x225228}, /* East Asian ideograph */ + {"\xBB", 0, 0x22522C}, /* East Asian ideograph */ + {"\x9C", 0, 0x22522E}, /* East Asian ideograph */ + {"\xBD", 0, 0x225232}, /* East Asian ideograph */ + {"\xAF", 0, 0x225235}, /* East Asian ideograph */ + {"\xA9", 0, 0x22523B}, /* East Asian ideograph */ + {"\xAE", 0, 0x225243}, /* East Asian ideograph */ + {"\x96", 0, 0x274A25}, /* East Asian ideograph */ + {"\xBC", 0, 0x2D4A26}, /* East Asian ideograph */ + {"\xB3", 0, 0x334968}, /* East Asian ideograph */ + {"\x98", 0, 0x345452}, /* East Asian ideograph */ + {"\x95", 0, 0x4B4973}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page147 = { + marc8r_9page147_flat, 0 +}; +/* PAGE 146 */ +struct yaz_iconv_trie_flat marc8r_9page146_flat[] = { + {"\x8A", 0, 0x214958}, /* East Asian ideograph */ + {"\xA4", 0, 0x214959}, /* East Asian ideograph */ + {"\x98", 0, 0x21495A}, /* East Asian ideograph */ + {"\x88", 0, 0x21495B}, /* East Asian ideograph */ + {"\x99", 0, 0x21495C}, /* East Asian ideograph */ + {"\x8F", 0, 0x21495D}, /* East Asian ideograph */ + {"\xB9", 0, 0x21495E}, /* East Asian ideograph */ + {"\xBD", 0, 0x214961}, /* East Asian ideograph */ + {"\xBE", 0, 0x217627}, /* East Asian ideograph */ + {"\xAA", 0, 0x225078}, /* East Asian ideograph */ + {"\xA5", 0, 0x22507B}, /* East Asian ideograph */ + {"\x9C", 0, 0x22507C}, /* East Asian ideograph */ + {"\x93", 0, 0x22507D}, /* East Asian ideograph */ + {"\x9D", 0, 0x225122}, /* East Asian ideograph */ + {"\xA1", 0, 0x225123}, /* East Asian ideograph */ + {"\xA3", 0, 0x225126}, /* East Asian ideograph */ + {"\xA0", 0, 0x225128}, /* East Asian ideograph */ + {"\x94", 0, 0x22512B}, /* East Asian ideograph */ + {"\x91", 0, 0x22512E}, /* East Asian ideograph */ + {"\x8B", 0, 0x225138}, /* East Asian ideograph */ + {"\x90", 0, 0x22513A}, /* East Asian ideograph */ + {"\x87", 0, 0x22513B}, /* East Asian ideograph */ + {"\x9A", 0, 0x22513C}, /* East Asian ideograph */ + {"\x86", 0, 0x22513D}, /* East Asian ideograph */ + {"\xBA", 0, 0x22513F}, /* East Asian ideograph */ + {"\xB7", 0, 0x225142}, /* East Asian ideograph */ + {"\xB3", 0, 0x225148}, /* East Asian ideograph */ + {"\xB4", 0, 0x225150}, /* East Asian ideograph */ + {"\xB6", 0, 0x225160}, /* East Asian ideograph */ + {"\xAF", 0, 0x225167}, /* East Asian ideograph */ + {"\xA6", 0, 0x27496D}, /* East Asian ideograph */ + {"\xAD", 0, 0x27497D}, /* East Asian ideograph */ + {"\xAB", 0, 0x27497E}, /* East Asian ideograph */ + {"\xA7", 0, 0x274A26}, /* East Asian ideograph */ + {"\x9B", 0, 0x274A30}, /* East Asian ideograph */ + {"\xA9", 0, 0x274A33}, /* East Asian ideograph */ + {"\x81", 0, 0x274A36}, /* East Asian ideograph */ + {"\x82", 0, 0x274A38}, /* East Asian ideograph */ + {"\x83", 0, 0x285150}, /* East Asian ideograph */ + {"\xA8", 0, 0x285424}, /* East Asian ideograph */ + {"\xAC", 0, 0x28544F}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D4954}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D496B}, /* East Asian ideograph */ + {"\x96", 0, 0x33494A}, /* East Asian ideograph */ + {"\x80", 0, 0x706C43}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page146 = { + marc8r_9page146_flat, 0 +}; +/* PAGE 145 */ +struct yaz_iconv_trie_flat marc8r_9page145_flat[] = { + {"\x95", 0, 0x21494B}, /* East Asian ideograph */ + {"\x8E", 0, 0x21494C}, /* East Asian ideograph */ + {"\x92", 0, 0x21494D}, /* East Asian ideograph */ + {"\x99", 0, 0x21494E}, /* East Asian ideograph */ + {"\x8A", 0, 0x21494F}, /* East Asian ideograph */ + {"\xAB", 0, 0x214950}, /* East Asian ideograph */ + {"\xBA", 0, 0x214951}, /* East Asian ideograph */ + {"\xAC", 0, 0x214952}, /* East Asian ideograph */ + {"\xB3", 0, 0x214953}, /* East Asian ideograph */ + {"\xAF", 0, 0x214954}, /* East Asian ideograph */ + {"\xAD", 0, 0x214955}, /* East Asian ideograph */ + {"\xAE", 0, 0x214956}, /* East Asian ideograph */ + {"\xB8", 0, 0x214957}, /* East Asian ideograph */ + {"\x93", 0, 0x225040}, /* East Asian ideograph */ + {"\x86", 0, 0x225042}, /* East Asian ideograph */ + {"\x96", 0, 0x225048}, /* East Asian ideograph */ + {"\x84", 0, 0x225049}, /* East Asian ideograph */ + {"\x81", 0, 0x22504A}, /* East Asian ideograph */ + {"\x88", 0, 0x225056}, /* East Asian ideograph */ + {"\x98", 0, 0x225057}, /* East Asian ideograph */ + {"\x8C", 0, 0x225059}, /* East Asian ideograph */ + {"\xB7", 0, 0x22505C}, /* East Asian ideograph */ + {"\xA1", 0, 0x225062}, /* East Asian ideograph */ + {"\xA3", 0, 0x225063}, /* East Asian ideograph */ + {"\xA7", 0, 0x22506F}, /* East Asian ideograph */ + {"\xB5", 0, 0x225071}, /* East Asian ideograph */ + {"\xBF", 0, 0x225072}, /* East Asian ideograph */ + {"\xA9", 0, 0x225073}, /* East Asian ideograph */ + {"\xBC", 0, 0x27496A}, /* East Asian ideograph */ + {"\x80", 0, 0x27496F}, /* East Asian ideograph */ + {"\xBD", 0, 0x274A21}, /* East Asian ideograph */ + {"\x96", 0, 0x274A22}, /* East Asian ideograph */ + {"\x89", 0, 0x274A37}, /* East Asian ideograph */ + {"\xB9", 0, 0x27626A}, /* East Asian ideograph */ + {"\x9C", 0, 0x285252}, /* East Asian ideograph */ + {"\x9D", 0, 0x28533C}, /* East Asian ideograph */ + {"\xB0", 0, 0x2D4956}, /* East Asian ideograph */ + {"\xA4", 0, 0x2D4971}, /* East Asian ideograph */ + {"\x85", 0, 0x2D526B}, /* East Asian ideograph */ + {"\xB1", 0, 0x2E506D}, /* East Asian ideograph */ + {"\x94", 0, 0x39526B}, /* East Asian ideograph */ + {"\xBB", 0, 0x706C42}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page145 = { + marc8r_9page145_flat, 0 +}; +/* PAGE 144 */ +struct yaz_iconv_trie_flat marc8r_9page144_flat[] = { + {"\x8C", 0, 0x214940}, /* East Asian ideograph */ + {"\x91", 0, 0x214941}, /* East Asian ideograph */ + {"\x98", 0, 0x214942}, /* East Asian ideograph */ + {"\xA3", 0, 0x214943}, /* East Asian ideograph */ + {"\xA4", 0, 0x214944}, /* East Asian ideograph */ + {"\xAB", 0, 0x214945}, /* East Asian ideograph */ + {"\xB0", 0, 0x214946}, /* East Asian ideograph */ + {"\xB6", 0, 0x214947}, /* East Asian ideograph */ + {"\xBC", 0, 0x214948}, /* East Asian ideograph */ + {"\xB8", 0, 0x214949}, /* East Asian ideograph */ + {"\xBD", 0, 0x21494A}, /* East Asian ideograph */ + {"\x83", 0, 0x224F5D}, /* East Asian ideograph */ + {"\x84", 0, 0x224F61}, /* East Asian ideograph */ + {"\x87", 0, 0x224F67}, /* East Asian ideograph */ + {"\x89", 0, 0x224F69}, /* East Asian ideograph */ + {"\x95", 0, 0x224F6B}, /* East Asian ideograph */ + {"\x92", 0, 0x224F71}, /* East Asian ideograph */ + {"\x9C", 0, 0x224F73}, /* East Asian ideograph */ + {"\x99", 0, 0x224F78}, /* East Asian ideograph */ + {"\x9E", 0, 0x224F7B}, /* East Asian ideograph */ + {"\xA1", 0, 0x224F7C}, /* East Asian ideograph */ + {"\x9D", 0, 0x224F7D}, /* East Asian ideograph */ + {"\xA6", 0, 0x225025}, /* East Asian ideograph */ + {"\xA5", 0, 0x225027}, /* East Asian ideograph */ + {"\xA8", 0, 0x225028}, /* East Asian ideograph */ + {"\x94", 0, 0x225029}, /* East Asian ideograph */ + {"\xB4", 0, 0x225039}, /* East Asian ideograph */ + {"\xBA", 0, 0x22503B}, /* East Asian ideograph */ + {"\xAD", 0, 0x274842}, /* East Asian ideograph */ + {"\xBE", 0, 0x27494A}, /* East Asian ideograph */ + {"\xAF", 0, 0x274A24}, /* East Asian ideograph */ + {"\xBF", 0, 0x274A31}, /* East Asian ideograph */ + {"\xB5", 0, 0x275F6F}, /* East Asian ideograph */ + {"\x8F", 0, 0x284F7D}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D3272}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page144 = { + marc8r_9page144_flat, 0 +}; +/* PAGE 143 */ +struct yaz_iconv_trie_flat marc8r_9page143_flat[] = { + {"\x8B", 0, 0x214931}, /* East Asian ideograph */ + {"\x89", 0, 0x214932}, /* East Asian ideograph */ + {"\x86", 0, 0x214933}, /* East Asian ideograph */ + {"\x91", 0, 0x214935}, /* East Asian ideograph */ + {"\x8F", 0, 0x214937}, /* East Asian ideograph */ + {"\x9B", 0, 0x214938}, /* East Asian ideograph */ + {"\x9A", 0, 0x214939}, /* East Asian ideograph */ + {"\xA8", 0, 0x21493A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21493B}, /* East Asian ideograph */ + {"\x95", 0, 0x21493C}, /* East Asian ideograph */ + {"\x9F", 0, 0x21493D}, /* East Asian ideograph */ + {"\xBE", 0, 0x21493F}, /* East Asian ideograph */ + {"\x85", 0, 0x224E66}, /* East Asian ideograph */ + {"\x8C", 0, 0x224E67}, /* East Asian ideograph */ + {"\x8D", 0, 0x224E6A}, /* East Asian ideograph */ + {"\xA6", 0, 0x224E72}, /* East Asian ideograph */ + {"\xA0", 0, 0x224F24}, /* East Asian ideograph */ + {"\xA7", 0, 0x224F26}, /* East Asian ideograph */ + {"\x9E", 0, 0x224F2B}, /* East Asian ideograph (variant of EACC 4C4F2B) */ + {"\xAE", 0, 0x224F2F}, /* East Asian ideograph */ + {"\xAD", 0, 0x224F31}, /* East Asian ideograph */ + {"\xA1", 0, 0x224F35}, /* East Asian ideograph */ + {"\x98", 0, 0x224F39}, /* East Asian ideograph */ + {"\xA3", 0, 0x224F3A}, /* East Asian ideograph */ + {"\xBC", 0, 0x224F41}, /* East Asian ideograph */ + {"\xB5", 0, 0x224F44}, /* East Asian ideograph */ + {"\xB4", 0, 0x224F51}, /* East Asian ideograph */ + {"\xB9", 0, 0x224F53}, /* East Asian ideograph */ + {"\xBA", 0, 0x224F54}, /* East Asian ideograph */ + {"\x81", 0, 0x2D4853}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D493A}, /* East Asian ideograph */ + {"\xB2", 0, 0x2E4E41}, /* East Asian ideograph */ + {"\xB0", 0, 0x333D4C}, /* East Asian ideograph */ + {"\x9E", 0, 0x4C4F2B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page143 = { + marc8r_9page143_flat, 0 +}; +/* PAGE 142 */ +struct yaz_iconv_trie_dir marc8r_9page142_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {144, 0, 0}, + {145, 0, 0}, + {146, 0, 0}, + {147, 0, 0}, + {148, 0, 0}, + {149, 0, 0}, + {150, 0, 0}, + {151, 0, 0}, + {152, 0, 0}, + {153, 0, 0}, + {154, 0, 0}, + {155, 0, 0}, + {156, 0, 0}, + {157, 0, 0}, + {158, 0, 0}, + {159, 0, 0}, + {160, 0, 0}, + {161, 0, 0}, + {162, 0, 0}, + {163, 0, 0}, + {164, 0, 0}, + {165, 0, 0}, + {166, 0, 0}, + {167, 0, 0}, + {168, 0, 0}, + {169, 0, 0}, + {170, 0, 0}, + {171, 0, 0}, + {172, 0, 0}, + {173, 0, 0}, + {174, 0, 0}, + {175, 0, 0}, + {176, 0, 0}, + {177, 0, 0}, + {178, 0, 0}, + {179, 0, 0}, + {180, 0, 0}, + {181, 0, 0}, + {182, 0, 0}, + {184, 0, 0}, + {185, 0, 0}, + {186, 0, 0}, + {187, 0, 0}, + {188, 0, 0}, + {189, 0, 0}, + {190, 0, 0}, + {191, 0, 0}, + {192, 0, 0}, + {193, 0, 0}, + {194, 0, 0}, + {195, 0, 0}, + {196, 0, 0}, + {197, 0, 0}, + {198, 0, 0}, + {199, 0, 0}, + {200, 0, 0}, + {201, 0, 0}, + {202, 0, 0}, + {203, 0, 0}, + {332, 0, 0}, + {204, 0, 0}, + {205, 0, 0}, + {206, 0, 0}, + {207, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page142 = { + 0, marc8r_9page142_dir +}; +/* PAGE 141 */ +struct yaz_iconv_trie_flat marc8r_9page141_flat[] = { + {"\x82", 0, 0x21487A}, /* East Asian ideograph */ + {"\x83", 0, 0x21487C}, /* East Asian ideograph */ + {"\x81", 0, 0x214922}, /* East Asian ideograph */ + {"\x80", 0, 0x214924}, /* East Asian ideograph */ + {"\x9F", 0, 0x214926}, /* East Asian ideograph */ + {"\x98", 0, 0x214927}, /* East Asian ideograph */ + {"\xB1", 0, 0x214928}, /* East Asian ideograph */ + {"\xA0", 0, 0x214929}, /* East Asian ideograph */ + {"\xAF", 0, 0x21492A}, /* East Asian ideograph */ + {"\xAB", 0, 0x21492B}, /* East Asian ideograph (variant of EACC 4B492B) */ + {"\xA1", 0, 0x21492C}, /* East Asian ideograph */ + {"\xA4", 0, 0x21492D}, /* East Asian ideograph */ + {"\xBA", 0, 0x214934}, /* East Asian ideograph */ + {"\xBE", 0, 0x214936}, /* East Asian ideograph */ + {"\x86", 0, 0x224D7C}, /* East Asian ideograph */ + {"\x87", 0, 0x224E26}, /* East Asian ideograph */ + {"\x89", 0, 0x224E2D}, /* East Asian ideograph */ + {"\x88", 0, 0x224E2F}, /* East Asian ideograph */ + {"\x8A", 0, 0x224E32}, /* East Asian ideograph */ + {"\x99", 0, 0x224E43}, /* East Asian ideograph */ + {"\x9A", 0, 0x224E44}, /* East Asian ideograph */ + {"\x94", 0, 0x224E50}, /* East Asian ideograph */ + {"\xA9", 0, 0x224E56}, /* East Asian ideograph */ + {"\xB8", 0, 0x224E57}, /* East Asian ideograph */ + {"\x9E", 0, 0x224E5D}, /* East Asian ideograph */ + {"\xAE", 0, 0x224E5E}, /* East Asian ideograph */ + {"\xB0", 0, 0x224E62}, /* East Asian ideograph */ + {"\x91", 0, 0x27493A}, /* East Asian ideograph */ + {"\x92", 0, 0x27493C}, /* East Asian ideograph */ + {"\xBC", 0, 0x2D4738}, /* East Asian ideograph */ + {"\x95", 0, 0x2D4844}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D5E61}, /* East Asian ideograph */ + {"\xAC", 0, 0x334755}, /* East Asian ideograph */ + {"\x9B", 0, 0x455564}, /* East Asian ideograph (Version J extension) */ + {"\xB3", 0, 0x4B4874}, /* East Asian ideograph */ + {"\xAB", 0, 0x4B492B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page141 = { + marc8r_9page141_flat, 0 +}; +/* PAGE 140 */ +struct yaz_iconv_trie_flat marc8r_9page140_flat[] = { + {"\x88", 0, 0x21486A}, /* East Asian ideograph */ + {"\x84", 0, 0x21486B}, /* East Asian ideograph */ + {"\x97", 0, 0x21486E}, /* East Asian ideograph */ + {"\x86", 0, 0x214871}, /* East Asian ideograph */ + {"\x8E", 0, 0x214872}, /* East Asian ideograph */ + {"\xB1", 0, 0x21487B}, /* East Asian ideograph */ + {"\xA7", 0, 0x21487D}, /* East Asian ideograph */ + {"\xA1", 0, 0x21487E}, /* East Asian ideograph */ + {"\xA4", 0, 0x214921}, /* East Asian ideograph */ + {"\xB3", 0, 0x214925}, /* East Asian ideograph */ + {"\x80", 0, 0x21492E}, /* East Asian ideograph */ + {"\x95", 0, 0x224C64}, /* East Asian ideograph */ + {"\x9D", 0, 0x224D24}, /* East Asian ideograph */ + {"\x87", 0, 0x224D27}, /* East Asian ideograph */ + {"\x90", 0, 0x224D35}, /* East Asian ideograph */ + {"\x8D", 0, 0x224D37}, /* East Asian ideograph */ + {"\x92", 0, 0x224D39}, /* East Asian ideograph */ + {"\x89", 0, 0x224D3A}, /* East Asian ideograph */ + {"\x8C", 0, 0x224D3C}, /* East Asian ideograph */ + {"\x8B", 0, 0x224D4D}, /* East Asian ideograph */ + {"\xB6", 0, 0x224D73}, /* East Asian ideograph */ + {"\x9F", 0, 0x224D74}, /* East Asian ideograph */ + {"\xA6", 0, 0x224D79}, /* East Asian ideograph */ + {"\xBC", 0, 0x224D7D}, /* East Asian ideograph */ + {"\xAA", 0, 0x224E21}, /* East Asian ideograph */ + {"\xBF", 0, 0x224E25}, /* East Asian ideograph */ + {"\xA0", 0, 0x224E30}, /* East Asian ideograph */ + {"\xB4", 0, 0x224E35}, /* East Asian ideograph */ + {"\xAF", 0, 0x224E37}, /* East Asian ideograph */ + {"\xA8", 0, 0x224E3C}, /* East Asian ideograph */ + {"\xA5", 0, 0x224E40}, /* East Asian ideograph */ + {"\xB0", 0, 0x224E41}, /* East Asian ideograph */ + {"\xAE", 0, 0x224E42}, /* East Asian ideograph */ + {"\x9C", 0, 0x27493F}, /* East Asian ideograph */ + {"\x94", 0, 0x2D4756}, /* East Asian ideograph */ + {"\x82", 0, 0x2D486B}, /* East Asian ideograph */ + {"\x97", 0, 0x2D486E}, /* East Asian ideograph */ + {"\xA3", 0, 0x2E4873}, /* East Asian ideograph */ + {"\xB9", 0, 0x33475E}, /* East Asian ideograph */ + {"\x81", 0, 0x33492E}, /* East Asian ideograph */ + {"\x91", 0, 0x4B484C}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B4925}, /* East Asian ideograph (variant of EACC 214925) */ + {"\x99", 0, 0x4C4D63}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page140 = { + marc8r_9page140_flat, 0 +}; +/* PAGE 139 */ +struct yaz_iconv_trie_flat marc8r_9page139_flat[] = { + {"\xBC", 0, 0x214869}, /* East Asian ideograph */ + {"\x91", 0, 0x21486C}, /* East Asian ideograph */ + {"\xA4", 0, 0x21486D}, /* East Asian ideograph */ + {"\x94", 0, 0x21486F}, /* East Asian ideograph */ + {"\xBA", 0, 0x214870}, /* East Asian ideograph */ + {"\xAD", 0, 0x214873}, /* East Asian ideograph */ + {"\x9B", 0, 0x214874}, /* East Asian ideograph */ + {"\xAE", 0, 0x214875}, /* East Asian ideograph */ + {"\xB8", 0, 0x214876}, /* East Asian ideograph */ + {"\xA6", 0, 0x214877}, /* East Asian ideograph */ + {"\xB0", 0, 0x214878}, /* East Asian ideograph */ + {"\x98", 0, 0x214879}, /* East Asian ideograph */ + {"\xA3", 0, 0x224C3D}, /* East Asian ideograph */ + {"\x81", 0, 0x224C62}, /* East Asian ideograph */ + {"\x89", 0, 0x224C6B}, /* East Asian ideograph */ + {"\xBE", 0, 0x224D23}, /* East Asian ideograph */ + {"\xAF", 0, 0x224D2B}, /* East Asian ideograph */ + {"\x9A", 0, 0x224D2F}, /* East Asian ideograph */ + {"\xA0", 0, 0x224D30}, /* East Asian ideograph */ + {"\xA2", 0, 0x224D3D}, /* East Asian ideograph (variant of EACC 4C4D3D) */ + {"\xAC", 0, 0x224D4B}, /* East Asian ideograph */ + {"\x95", 0, 0x224D5A}, /* East Asian ideograph */ + {"\xB2", 0, 0x224D5F}, /* East Asian ideograph */ + {"\x97", 0, 0x224D62}, /* East Asian ideograph */ + {"\x9F", 0, 0x224D63}, /* East Asian ideograph */ + {"\x9D", 0, 0x224D68}, /* East Asian ideograph */ + {"\x9E", 0, 0x224E2E}, /* East Asian ideograph */ + {"\x87", 0, 0x27493D}, /* East Asian ideograph */ + {"\x8B", 0, 0x284E41}, /* East Asian ideograph */ + {"\x8D", 0, 0x284E62}, /* East Asian ideograph */ + {"\x84", 0, 0x2D485C}, /* East Asian ideograph */ + {"\x9C", 0, 0x2D4874}, /* East Asian ideograph */ + {"\xB4", 0, 0x2E4E72}, /* East Asian ideograph */ + {"\x85", 0, 0x4B4940}, /* East Asian ideograph */ + {"\xA2", 0, 0x4C4D3D}, /* East Asian ideograph */ + {"\x86", 0, 0x4C4F24}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page139 = { + marc8r_9page139_flat, 0 +}; +/* PAGE 138 */ +struct yaz_iconv_trie_flat marc8r_9page138_flat[] = { + {"\xB3", 0, 0x21484D}, /* East Asian ideograph */ + {"\xA9", 0, 0x214851}, /* East Asian ideograph */ + {"\x94", 0, 0x214852}, /* East Asian ideograph */ + {"\xBE", 0, 0x214853}, /* East Asian ideograph */ + {"\xAC", 0, 0x214854}, /* East Asian ideograph */ + {"\xB2", 0, 0x214855}, /* East Asian ideograph */ + {"\x8F", 0, 0x214856}, /* East Asian ideograph */ + {"\xA2", 0, 0x214857}, /* East Asian ideograph (variant of EACC 4B4857) */ + {"\xA3", 0, 0x214859}, /* East Asian ideograph */ + {"\xB8", 0, 0x21485A}, /* East Asian ideograph */ + {"\x95", 0, 0x21485B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21485C}, /* East Asian ideograph */ + {"\x82", 0, 0x21485D}, /* East Asian ideograph */ + {"\x86", 0, 0x21485E}, /* East Asian ideograph */ + {"\xAB", 0, 0x214860}, /* East Asian ideograph */ + {"\xAF", 0, 0x214861}, /* East Asian ideograph */ + {"\xA0", 0, 0x214862}, /* East Asian ideograph */ + {"\xBF", 0, 0x214863}, /* East Asian ideograph */ + {"\x81", 0, 0x214865}, /* East Asian ideograph */ + {"\x91", 0, 0x214866}, /* East Asian ideograph */ + {"\xAA", 0, 0x214868}, /* East Asian ideograph */ + {"\xB7", 0, 0x224C30}, /* East Asian ideograph */ + {"\x89", 0, 0x224C35}, /* East Asian ideograph */ + {"\xBB", 0, 0x224C3C}, /* East Asian ideograph */ + {"\x92", 0, 0x224C3E}, /* East Asian ideograph */ + {"\xA6", 0, 0x224C3F}, /* East Asian ideograph */ + {"\x9A", 0, 0x224C41}, /* East Asian ideograph */ + {"\x99", 0, 0x224C43}, /* East Asian ideograph */ + {"\x80", 0, 0x224C44}, /* East Asian ideograph */ + {"\xA4", 0, 0x224C4B}, /* East Asian ideograph */ + {"\x98", 0, 0x224C51}, /* East Asian ideograph */ + {"\x9F", 0, 0x224C57}, /* East Asian ideograph */ + {"\x8A", 0, 0x224C5A}, /* East Asian ideograph */ + {"\xB6", 0, 0x224C5E}, /* East Asian ideograph */ + {"\xAD", 0, 0x224C65}, /* East Asian ideograph */ + {"\xB4", 0, 0x224C67}, /* East Asian ideograph */ + {"\xB0", 0, 0x224C6D}, /* East Asian ideograph */ + {"\x88", 0, 0x224C78}, /* East Asian ideograph */ + {"\x8E", 0, 0x224C79}, /* East Asian ideograph */ + {"\xB5", 0, 0x224C7B}, /* East Asian ideograph */ + {"\x8B", 0, 0x224D44}, /* East Asian ideograph */ + {"\x93", 0, 0x284F6B}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B4857}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page138 = { + marc8r_9page138_flat, 0 +}; +/* PAGE 137 */ +struct yaz_iconv_trie_flat marc8r_9page137_flat[] = { + {"\xB6", 0, 0x214838}, /* East Asian ideograph */ + {"\xAF", 0, 0x21483B}, /* East Asian ideograph */ + {"\xA2", 0, 0x21483C}, /* East Asian ideograph */ + {"\x9D", 0, 0x21483D}, /* East Asian ideograph */ + {"\xA5", 0, 0x21483F}, /* East Asian ideograph */ + {"\x98", 0, 0x214840}, /* East Asian ideograph */ + {"\x90", 0, 0x214841}, /* East Asian ideograph */ + {"\xBC", 0, 0x214844}, /* East Asian ideograph */ + {"\xAB", 0, 0x214845}, /* East Asian ideograph */ + {"\xAA", 0, 0x21484A}, /* East Asian ideograph */ + {"\x96", 0, 0x21484B}, /* East Asian ideograph */ + {"\x9C", 0, 0x21484C}, /* East Asian ideograph */ + {"\x8A", 0, 0x224A60}, /* East Asian ideograph */ + {"\x84", 0, 0x224B2C}, /* East Asian ideograph */ + {"\x8B", 0, 0x224B3B}, /* East Asian ideograph */ + {"\x9B", 0, 0x224B45}, /* East Asian ideograph */ + {"\x9F", 0, 0x224B46}, /* East Asian ideograph */ + {"\x8F", 0, 0x224B4A}, /* East Asian ideograph */ + {"\x93", 0, 0x224B4D}, /* East Asian ideograph */ + {"\xA0", 0, 0x224B4F}, /* East Asian ideograph */ + {"\xB1", 0, 0x224B51}, /* East Asian ideograph */ + {"\xA8", 0, 0x224B57}, /* East Asian ideograph */ + {"\x92", 0, 0x224B59}, /* East Asian ideograph */ + {"\xA7", 0, 0x224B5A}, /* East Asian ideograph */ + {"\x8E", 0, 0x224B5E}, /* East Asian ideograph */ + {"\xBD", 0, 0x224B61}, /* East Asian ideograph */ + {"\xBB", 0, 0x224B69}, /* East Asian ideograph */ + {"\xB3", 0, 0x224B6C}, /* East Asian ideograph */ + {"\xB7", 0, 0x224B6D}, /* East Asian ideograph */ + {"\xA4", 0, 0x224B75}, /* East Asian ideograph */ + {"\xB4", 0, 0x224C24}, /* East Asian ideograph */ + {"\xB2", 0, 0x224C26}, /* East Asian ideograph */ + {"\xB5", 0, 0x224C29}, /* East Asian ideograph */ + {"\x88", 0, 0x224D58}, /* East Asian ideograph */ + {"\x83", 0, 0x274878}, /* East Asian ideograph */ + {"\x85", 0, 0x274934}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D3B52}, /* East Asian ideograph */ + {"\xA6", 0, 0x2E4A6B}, /* East Asian ideograph */ + {"\x86", 0, 0x2E4C7B}, /* East Asian ideograph */ + {"\x80", 0, 0x4B4858}, /* East Asian ideograph */ + {"\x89", 0, 0x4B4866}, /* East Asian ideograph */ + {"\x82", 0, 0x695E63}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page137 = { + marc8r_9page137_flat, 0 +}; +/* PAGE 136 */ +struct yaz_iconv_trie_flat marc8r_9page136_flat[] = { + {"\x93", 0, 0x214837}, /* East Asian ideograph */ + {"\x82", 0, 0x214839}, /* East Asian ideograph */ + {"\x85", 0, 0x214842}, /* East Asian ideograph */ + {"\x87", 0, 0x214843}, /* East Asian ideograph */ + {"\x91", 0, 0x214846}, /* East Asian ideograph */ + {"\x8B", 0, 0x214847}, /* East Asian ideograph */ + {"\x84", 0, 0x214848}, /* East Asian ideograph */ + {"\x94", 0, 0x214849}, /* East Asian ideograph */ + {"\xB4", 0, 0x21484E}, /* East Asian ideograph */ + {"\xAC", 0, 0x21484F}, /* East Asian ideograph */ + {"\xBE", 0, 0x214850}, /* East Asian ideograph */ + {"\xBF", 0, 0x214858}, /* East Asian ideograph */ + {"\xAF", 0, 0x21485F}, /* East Asian ideograph */ + {"\xB2", 0, 0x214864}, /* East Asian ideograph */ + {"\x8C", 0, 0x214867}, /* East Asian ideograph */ + {"\x8E", 0, 0x224B43}, /* East Asian ideograph */ + {"\x88", 0, 0x224B48}, /* East Asian ideograph */ + {"\x98", 0, 0x224B49}, /* East Asian ideograph */ + {"\x99", 0, 0x224B60}, /* East Asian ideograph */ + {"\x81", 0, 0x224B63}, /* East Asian ideograph */ + {"\x89", 0, 0x224B6A}, /* East Asian ideograph */ + {"\x8F", 0, 0x224B79}, /* East Asian ideograph */ + {"\x8A", 0, 0x224B7C}, /* East Asian ideograph */ + {"\x95", 0, 0x224B7D}, /* East Asian ideograph */ + {"\x83", 0, 0x224C21}, /* East Asian ideograph */ + {"\xB8", 0, 0x224C2E}, /* East Asian ideograph */ + {"\xBD", 0, 0x224C34}, /* East Asian ideograph */ + {"\xB6", 0, 0x224C42}, /* East Asian ideograph */ + {"\xB9", 0, 0x224C60}, /* East Asian ideograph */ + {"\xAE", 0, 0x224C61}, /* East Asian ideograph */ + {"\xBA", 0, 0x224C76}, /* East Asian ideograph */ + {"\xAB", 0, 0x224C77}, /* East Asian ideograph */ + {"\xA1", 0, 0x274858}, /* East Asian ideograph */ + {"\x9E", 0, 0x27485F}, /* East Asian ideograph */ + {"\xA8", 0, 0x274928}, /* East Asian ideograph */ + {"\xA5", 0, 0x27492B}, /* East Asian ideograph */ + {"\xA4", 0, 0x274936}, /* East Asian ideograph */ + {"\xA9", 0, 0x274942}, /* East Asian ideograph */ + {"\xA6", 0, 0x274944}, /* East Asian ideograph */ + {"\x97", 0, 0x284D59}, /* East Asian ideograph */ + {"\xA2", 0, 0x284E66}, /* East Asian ideograph */ + {"\xA0", 0, 0x284F61}, /* East Asian ideograph */ + {"\x9F", 0, 0x285029}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D4850}, /* East Asian ideograph */ + {"\xB7", 0, 0x2F5D3C}, /* East Asian ideograph */ + {"\x9E", 0, 0x4B485F}, /* East Asian ideograph (variant of EACC 27485F) */ + {"\x9D", 0, 0x4C4F26}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page136 = { + marc8r_9page136_flat, 0 +}; +/* PAGE 135 */ +struct yaz_iconv_trie_flat marc8r_9page135_flat[] = { + {"\xA1", 0, 0x21477A}, /* East Asian ideograph */ + {"\xB8", 0, 0x21477B}, /* East Asian ideograph */ + {"\xB2", 0, 0x21477C}, /* East Asian ideograph */ + {"\xA0", 0, 0x21477E}, /* East Asian ideograph */ + {"\x9A", 0, 0x214822}, /* East Asian ideograph */ + {"\xAF", 0, 0x214824}, /* East Asian ideograph */ + {"\xA3", 0, 0x214827}, /* East Asian ideograph */ + {"\xA4", 0, 0x214828}, /* East Asian ideograph */ + {"\x9B", 0, 0x214829}, /* East Asian ideograph */ + {"\xA5", 0, 0x21482A}, /* East Asian ideograph */ + {"\xBA", 0, 0x21482C}, /* East Asian ideograph */ + {"\xAD", 0, 0x21482E}, /* East Asian ideograph */ + {"\xB4", 0, 0x21482F}, /* East Asian ideograph */ + {"\xAC", 0, 0x214830}, /* East Asian ideograph */ + {"\xA6", 0, 0x214831}, /* East Asian ideograph */ + {"\xBE", 0, 0x214833}, /* East Asian ideograph */ + {"\x99", 0, 0x214835}, /* East Asian ideograph */ + {"\x9D", 0, 0x214836}, /* East Asian ideograph */ + {"\x8F", 0, 0x224979}, /* East Asian ideograph */ + {"\x92", 0, 0x224A44}, /* East Asian ideograph */ + {"\x9F", 0, 0x224A4C}, /* East Asian ideograph */ + {"\xA7", 0, 0x224A50}, /* East Asian ideograph */ + {"\xBC", 0, 0x224A58}, /* East Asian ideograph */ + {"\xA8", 0, 0x224B22}, /* East Asian ideograph */ + {"\xB1", 0, 0x224B26}, /* East Asian ideograph */ + {"\xAE", 0, 0x224B2E}, /* East Asian ideograph */ + {"\xB6", 0, 0x224B30}, /* East Asian ideograph */ + {"\xB0", 0, 0x224B33}, /* East Asian ideograph */ + {"\xB9", 0, 0x224B36}, /* East Asian ideograph */ + {"\xAA", 0, 0x224B40}, /* East Asian ideograph */ + {"\xA2", 0, 0x224B42}, /* East Asian ideograph */ + {"\x8A", 0, 0x274774}, /* East Asian ideograph */ + {"\x8D", 0, 0x274854}, /* East Asian ideograph */ + {"\x90", 0, 0x27485A}, /* East Asian ideograph */ + {"\x97", 0, 0x274864}, /* East Asian ideograph */ + {"\x94", 0, 0x274865}, /* East Asian ideograph */ + {"\x8E", 0, 0x274933}, /* East Asian ideograph */ + {"\x91", 0, 0x284E30}, /* East Asian ideograph */ + {"\x87", 0, 0x2D482F}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D4845}, /* East Asian ideograph */ + {"\xAB", 0, 0x334729}, /* East Asian ideograph */ + {"\x88", 0, 0x3F4926}, /* East Asian ideograph */ + {"\x95", 0, 0x454774}, /* East Asian ideograph */ + {"\x85", 0, 0x4B4761}, /* East Asian ideograph */ + {"\x93", 0, 0x4B484A}, /* East Asian ideograph */ + {"\x8B", 0, 0x4B492E}, /* East Asian ideograph */ + {"\x96", 0, 0x4B4931}, /* East Asian ideograph */ + {"\x8C", 0, 0x4C4C35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page135 = { + marc8r_9page135_flat, 0 +}; +/* PAGE 134 */ +struct yaz_iconv_trie_flat marc8r_9page134_flat[] = { + {"\x94", 0, 0x214779}, /* East Asian ideograph */ + {"\xA7", 0, 0x21477D}, /* East Asian ideograph */ + {"\x9B", 0, 0x214821}, /* East Asian ideograph */ + {"\x96", 0, 0x214823}, /* East Asian ideograph */ + {"\xAE", 0, 0x214825}, /* East Asian ideograph */ + {"\x98", 0, 0x214826}, /* East Asian ideograph */ + {"\x8A", 0, 0x21482B}, /* East Asian ideograph */ + {"\xAF", 0, 0x21482D}, /* East Asian ideograph */ + {"\x8D", 0, 0x214832}, /* East Asian ideograph */ + {"\x83", 0, 0x214834}, /* East Asian ideograph */ + {"\x89", 0, 0x224A55}, /* East Asian ideograph */ + {"\x8B", 0, 0x224A62}, /* East Asian ideograph */ + {"\xA2", 0, 0x224A66}, /* East Asian ideograph */ + {"\x91", 0, 0x224A6A}, /* East Asian ideograph */ + {"\x84", 0, 0x224A6B}, /* East Asian ideograph */ + {"\xA3", 0, 0x224A6D}, /* East Asian ideograph */ + {"\xB3", 0, 0x224A71}, /* East Asian ideograph */ + {"\x8F", 0, 0x224A74}, /* East Asian ideograph */ + {"\x8E", 0, 0x224A77}, /* East Asian ideograph */ + {"\x9C", 0, 0x224B24}, /* East Asian ideograph */ + {"\x9E", 0, 0x224B28}, /* East Asian ideograph */ + {"\x9D", 0, 0x224B31}, /* East Asian ideograph */ + {"\xB2", 0, 0x224B32}, /* East Asian ideograph */ + {"\x93", 0, 0x224B34}, /* East Asian ideograph */ + {"\xB1", 0, 0x224B37}, /* East Asian ideograph */ + {"\xA9", 0, 0x224B38}, /* East Asian ideograph */ + {"\xAB", 0, 0x224B39}, /* East Asian ideograph */ + {"\xB6", 0, 0x224B3E}, /* East Asian ideograph */ + {"\x8C", 0, 0x224B41}, /* East Asian ideograph */ + {"\xBF", 0, 0x274844}, /* East Asian ideograph */ + {"\xBE", 0, 0x274943}, /* East Asian ideograph */ + {"\xBC", 0, 0x2E493B}, /* East Asian ideograph */ + {"\x9F", 0, 0x334730}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page134 = { + marc8r_9page134_flat, 0 +}; +/* PAGE 133 */ +struct yaz_iconv_trie_flat marc8r_9page133_flat[] = { + {"\x99", 0, 0x214758}, /* East Asian ideograph */ + {"\x9A", 0, 0x214759}, /* East Asian ideograph */ + {"\xB3", 0, 0x21475A}, /* East Asian ideograph */ + {"\xA4", 0, 0x21475C}, /* East Asian ideograph */ + {"\xA1", 0, 0x21475E}, /* East Asian ideograph */ + {"\x92", 0, 0x21475F}, /* East Asian ideograph */ + {"\xB8", 0, 0x214761}, /* East Asian ideograph */ + {"\x87", 0, 0x214762}, /* East Asian ideograph */ + {"\x8B", 0, 0x214763}, /* East Asian ideograph */ + {"\x85", 0, 0x214764}, /* East Asian ideograph */ + {"\x9E", 0, 0x214765}, /* East Asian ideograph */ + {"\xBA", 0, 0x214768}, /* East Asian ideograph */ + {"\xB9", 0, 0x214769}, /* East Asian ideograph */ + {"\x8C", 0, 0x21476A}, /* East Asian ideograph */ + {"\xB7", 0, 0x21476B}, /* East Asian ideograph */ + {"\x91", 0, 0x21476D}, /* East Asian ideograph */ + {"\xB1", 0, 0x21476E}, /* East Asian ideograph */ + {"\xA8", 0, 0x21476F}, /* East Asian ideograph */ + {"\xAB", 0, 0x214770}, /* East Asian ideograph */ + {"\x98", 0, 0x214771}, /* East Asian ideograph */ + {"\xBB", 0, 0x214772}, /* East Asian ideograph */ + {"\xAE", 0, 0x214773}, /* East Asian ideograph */ + {"\xB5", 0, 0x214774}, /* East Asian ideograph */ + {"\x86", 0, 0x214776}, /* East Asian ideograph */ + {"\xAA", 0, 0x214777}, /* East Asian ideograph */ + {"\x84", 0, 0x214778}, /* East Asian ideograph */ + {"\xAF", 0, 0x224935}, /* East Asian ideograph */ + {"\xAC", 0, 0x224960}, /* East Asian ideograph */ + {"\xA2", 0, 0x22496C}, /* East Asian ideograph */ + {"\x95", 0, 0x22496D}, /* East Asian ideograph */ + {"\xA9", 0, 0x22496E}, /* East Asian ideograph */ + {"\xB6", 0, 0x224971}, /* East Asian ideograph */ + {"\x9F", 0, 0x224A2A}, /* East Asian ideograph */ + {"\x93", 0, 0x224A2D}, /* East Asian ideograph */ + {"\xBC", 0, 0x224A32}, /* East Asian ideograph */ + {"\x9D", 0, 0x224A35}, /* East Asian ideograph */ + {"\x9C", 0, 0x224A36}, /* East Asian ideograph */ + {"\x9B", 0, 0x224A39}, /* East Asian ideograph */ + {"\xB0", 0, 0x224A46}, /* East Asian ideograph */ + {"\xA6", 0, 0x224A4A}, /* East Asian ideograph */ + {"\x80", 0, 0x27487B}, /* East Asian ideograph */ + {"\x96", 0, 0x2D514A}, /* East Asian ideograph */ + {"\xA5", 0, 0x2E4C35}, /* East Asian ideograph */ + {"\xA0", 0, 0x2E4E5D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page133 = { + marc8r_9page133_flat, 0 +}; +/* PAGE 132 */ +struct yaz_iconv_trie_flat marc8r_9page132_flat[] = { + {"\x95", 0, 0x21474A}, /* East Asian ideograph */ + {"\x87", 0, 0x21474E}, /* East Asian ideograph */ + {"\x88", 0, 0x21474F}, /* East Asian ideograph */ + {"\x93", 0, 0x214751}, /* East Asian ideograph */ + {"\x89", 0, 0x214752}, /* East Asian ideograph */ + {"\xBC", 0, 0x21475B}, /* East Asian ideograph */ + {"\xB2", 0, 0x21475D}, /* East Asian ideograph */ + {"\xAE", 0, 0x214760}, /* East Asian ideograph */ + {"\xAF", 0, 0x214766}, /* East Asian ideograph */ + {"\xB5", 0, 0x214767}, /* East Asian ideograph */ + {"\xB8", 0, 0x21476C}, /* East Asian ideograph */ + {"\x8E", 0, 0x214775}, /* East Asian ideograph */ + {"\xA5", 0, 0x224877}, /* East Asian ideograph */ + {"\x92", 0, 0x22487D}, /* East Asian ideograph */ + {"\x91", 0, 0x224929}, /* East Asian ideograph */ + {"\x81", 0, 0x22492C}, /* East Asian ideograph */ + {"\x8A", 0, 0x22492E}, /* East Asian ideograph */ + {"\x85", 0, 0x22493B}, /* East Asian ideograph */ + {"\x94", 0, 0x224943}, /* East Asian ideograph */ + {"\x98", 0, 0x224948}, /* East Asian ideograph */ + {"\x96", 0, 0x22494F}, /* East Asian ideograph */ + {"\xAB", 0, 0x224959}, /* East Asian ideograph */ + {"\xB4", 0, 0x22495A}, /* East Asian ideograph */ + {"\xAA", 0, 0x22495C}, /* East Asian ideograph */ + {"\xAC", 0, 0x22496A}, /* East Asian ideograph */ + {"\xB7", 0, 0x22496B}, /* East Asian ideograph */ + {"\xBF", 0, 0x22497B}, /* East Asian ideograph */ + {"\xA4", 0, 0x224A3D}, /* East Asian ideograph */ + {"\x82", 0, 0x27384D}, /* East Asian ideograph */ + {"\x8C", 0, 0x27477D}, /* East Asian ideograph */ + {"\xA1", 0, 0x274831}, /* East Asian ideograph */ + {"\xA8", 0, 0x274855}, /* East Asian ideograph */ + {"\x9F", 0, 0x274859}, /* East Asian ideograph */ + {"\xA6", 0, 0x27486D}, /* East Asian ideograph */ + {"\xA7", 0, 0x27486E}, /* East Asian ideograph */ + {"\x9B", 0, 0x27492D}, /* East Asian ideograph */ + {"\xA9", 0, 0x27492E}, /* East Asian ideograph */ + {"\x9E", 0, 0x284971}, /* East Asian ideograph */ + {"\x9D", 0, 0x284D27}, /* East Asian ideograph */ + {"\xA0", 0, 0x284D49}, /* East Asian ideograph */ + {"\x99", 0, 0x4B4759}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B4767}, /* East Asian ideograph (variant of EACC 214767) */ + {"\xA3", 0, 0x4B4835}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page132 = { + marc8r_9page132_flat, 0 +}; +/* PAGE 131 */ +struct yaz_iconv_trie_flat marc8r_9page131_flat[] = { + {"\x8B", 0, 0x21473C}, /* East Asian ideograph */ + {"\xB2", 0, 0x21473D}, /* East Asian ideograph */ + {"\xA5", 0, 0x21473E}, /* East Asian ideograph */ + {"\xB1", 0, 0x21473F}, /* East Asian ideograph */ + {"\xAA", 0, 0x214740}, /* East Asian ideograph */ + {"\x8C", 0, 0x214741}, /* East Asian ideograph */ + {"\x9E", 0, 0x214742}, /* East Asian ideograph */ + {"\x97", 0, 0x214743}, /* East Asian ideograph */ + {"\xBB", 0, 0x214744}, /* East Asian ideograph */ + {"\x9B", 0, 0x214745}, /* East Asian ideograph */ + {"\xB6", 0, 0x214746}, /* East Asian ideograph */ + {"\xBD", 0, 0x214747}, /* East Asian ideograph */ + {"\xBE", 0, 0x214748}, /* East Asian ideograph */ + {"\x9D", 0, 0x224837}, /* East Asian ideograph */ + {"\xA8", 0, 0x22483B}, /* East Asian ideograph */ + {"\xB9", 0, 0x224844}, /* East Asian ideograph */ + {"\xA6", 0, 0x22484D}, /* East Asian ideograph */ + {"\xA7", 0, 0x22484E}, /* East Asian ideograph */ + {"\x8F", 0, 0x22484F}, /* East Asian ideograph */ + {"\x8A", 0, 0x224850}, /* East Asian ideograph */ + {"\xBF", 0, 0x224851}, /* East Asian ideograph */ + {"\x87", 0, 0x22485A}, /* East Asian ideograph */ + {"\x84", 0, 0x22485B}, /* East Asian ideograph */ + {"\xAE", 0, 0x224860}, /* East Asian ideograph */ + {"\xB5", 0, 0x224861}, /* East Asian ideograph */ + {"\xBA", 0, 0x224862}, /* East Asian ideograph */ + {"\x99", 0, 0x224864}, /* East Asian ideograph */ + {"\x8E", 0, 0x224867}, /* East Asian ideograph */ + {"\xAB", 0, 0x22486A}, /* East Asian ideograph */ + {"\x91", 0, 0x22486B}, /* East Asian ideograph */ + {"\x80", 0, 0x22486C}, /* East Asian ideograph */ + {"\xA4", 0, 0x22486D}, /* East Asian ideograph */ + {"\xB3", 0, 0x22486F}, /* East Asian ideograph */ + {"\xB4", 0, 0x22492F}, /* East Asian ideograph (variant of EACC 34492F) */ + {"\x81", 0, 0x27486F}, /* East Asian ideograph */ + {"\x92", 0, 0x274941}, /* East Asian ideograph */ + {"\xBC", 0, 0x274F5C}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D4729}, /* East Asian ideograph */ + {"\xB8", 0, 0x2E4D3D}, /* East Asian ideograph */ + {"\x9A", 0, 0x334740}, /* East Asian ideograph */ + {"\x9F", 0, 0x33474A}, /* East Asian ideograph */ + {"\xB4", 0, 0x34492F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page131 = { + marc8r_9page131_flat, 0 +}; +/* PAGE 130 */ +struct yaz_iconv_trie_flat marc8r_9page130_flat[] = { + {"\x81", 0, 0x21473B}, /* East Asian ideograph */ + {"\xAA", 0, 0x214749}, /* East Asian ideograph */ + {"\xB8", 0, 0x21474B}, /* East Asian ideograph */ + {"\xA6", 0, 0x21474C}, /* East Asian ideograph */ + {"\x99", 0, 0x21474D}, /* East Asian ideograph */ + {"\xAC", 0, 0x214750}, /* East Asian ideograph */ + {"\xAE", 0, 0x214753}, /* East Asian ideograph */ + {"\xB4", 0, 0x214754}, /* East Asian ideograph */ + {"\x9A", 0, 0x214755}, /* East Asian ideograph */ + {"\xA9", 0, 0x214756}, /* East Asian ideograph */ + {"\xB7", 0, 0x214757}, /* East Asian ideograph */ + {"\xA3", 0, 0x224873}, /* East Asian ideograph */ + {"\xAD", 0, 0x224925}, /* East Asian ideograph */ + {"\xAF", 0, 0x224926}, /* East Asian ideograph */ + {"\xA1", 0, 0x224928}, /* East Asian ideograph */ + {"\xB9", 0, 0x224934}, /* East Asian ideograph */ + {"\xBF", 0, 0x224939}, /* East Asian ideograph */ + {"\xA5", 0, 0x22493C}, /* East Asian ideograph */ + {"\x9E", 0, 0x22493E}, /* East Asian ideograph */ + {"\xA7", 0, 0x224940}, /* East Asian ideograph */ + {"\xA0", 0, 0x224946}, /* East Asian ideograph */ + {"\xBC", 0, 0x22494B}, /* East Asian ideograph */ + {"\xB0", 0, 0x22494C}, /* East Asian ideograph */ + {"\x85", 0, 0x274768}, /* East Asian ideograph */ + {"\x8B", 0, 0x274830}, /* East Asian ideograph */ + {"\x91", 0, 0x274833}, /* East Asian ideograph */ + {"\x86", 0, 0x274863}, /* East Asian ideograph */ + {"\x87", 0, 0x274871}, /* East Asian ideograph */ + {"\x93", 0, 0x27487C}, /* East Asian ideograph */ + {"\x8A", 0, 0x274922}, /* East Asian ideograph */ + {"\x8E", 0, 0x274926}, /* East Asian ideograph */ + {"\x8F", 0, 0x274937}, /* East Asian ideograph */ + {"\x83", 0, 0x284934}, /* East Asian ideograph */ + {"\x88", 0, 0x284B28}, /* East Asian ideograph */ + {"\x92", 0, 0x284C2E}, /* East Asian ideograph */ + {"\x94", 0, 0x284D2B}, /* East Asian ideograph */ + {"\x8D", 0, 0x284E42}, /* East Asian ideograph */ + {"\x85", 0, 0x2D4768}, /* East Asian ideograph (variant of EACC 274768) */ + {"\xA4", 0, 0x2E4747}, /* East Asian ideograph */ + {"\x84", 0, 0x33476F}, /* East Asian ideograph */ + {"\x9C", 0, 0x394928}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page130 = { + marc8r_9page130_flat, 0 +}; +/* PAGE 129 */ +struct yaz_iconv_trie_flat marc8r_9page129_flat[] = { + {"\xB3", 0, 0x21467E}, /* East Asian ideograph */ + {"\xA3", 0, 0x214721}, /* East Asian ideograph */ + {"\xB0", 0, 0x214722}, /* East Asian ideograph */ + {"\x93", 0, 0x214724}, /* East Asian ideograph */ + {"\xA5", 0, 0x214726}, /* East Asian ideograph */ + {"\x84", 0, 0x214729}, /* East Asian ideograph */ + {"\x95", 0, 0x21472A}, /* East Asian ideograph */ + {"\xA2", 0, 0x21472B}, /* East Asian ideograph */ + {"\xB1", 0, 0x21472F}, /* East Asian ideograph */ + {"\x81", 0, 0x214730}, /* East Asian ideograph */ + {"\x85", 0, 0x214732}, /* East Asian ideograph */ + {"\x97", 0, 0x214733}, /* East Asian ideograph */ + {"\x9B", 0, 0x214735}, /* East Asian ideograph */ + {"\xA1", 0, 0x214736}, /* East Asian ideograph */ + {"\x8A", 0, 0x214738}, /* East Asian ideograph */ + {"\x8C", 0, 0x214739}, /* East Asian ideograph */ + {"\x89", 0, 0x21473A}, /* East Asian ideograph */ + {"\xAB", 0, 0x224762}, /* East Asian ideograph */ + {"\xAE", 0, 0x224763}, /* East Asian ideograph */ + {"\x80", 0, 0x224764}, /* East Asian ideograph */ + {"\xAF", 0, 0x224766}, /* East Asian ideograph */ + {"\xB5", 0, 0x224772}, /* East Asian ideograph */ + {"\x82", 0, 0x22477D}, /* East Asian ideograph */ + {"\x98", 0, 0x224824}, /* East Asian ideograph */ + {"\x86", 0, 0x224826}, /* East Asian ideograph */ + {"\x8E", 0, 0x224828}, /* East Asian ideograph */ + {"\xA9", 0, 0x224829}, /* East Asian ideograph */ + {"\xB2", 0, 0x22482D}, /* East Asian ideograph */ + {"\xA0", 0, 0x22482F}, /* East Asian ideograph */ + {"\x91", 0, 0x224830}, /* East Asian ideograph */ + {"\x92", 0, 0x224832}, /* East Asian ideograph */ + {"\x9A", 0, 0x22485C}, /* East Asian ideograph */ + {"\xBE", 0, 0x27474E}, /* East Asian ideograph */ + {"\xAA", 0, 0x274759}, /* East Asian ideograph */ + {"\xBC", 0, 0x27486C}, /* East Asian ideograph */ + {"\xBD", 0, 0x274921}, /* East Asian ideograph */ + {"\x9E", 0, 0x274927}, /* East Asian ideograph */ + {"\xBB", 0, 0x274932}, /* East Asian ideograph */ + {"\xA8", 0, 0x27584C}, /* East Asian ideograph */ + {"\xB6", 0, 0x284E3E}, /* East Asian ideograph */ + {"\xB7", 0, 0x284F26}, /* East Asian ideograph */ + {"\xB8", 0, 0x284F39}, /* East Asian ideograph */ + {"\x90", 0, 0x2E4670}, /* East Asian ideograph */ + {"\x99", 0, 0x2E492F}, /* East Asian ideograph */ + {"\x94", 0, 0x2E6F35}, /* East Asian ideograph */ + {"\x9D", 0, 0x33483B}, /* East Asian ideograph */ + {"\x96", 0, 0x335461}, /* East Asian ideograph */ + {"\xBA", 0, 0x454738}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page129 = { + marc8r_9page129_flat, 0 +}; +/* PAGE 128 */ +struct yaz_iconv_trie_dir marc8r_9page128_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21466B} /* East Asian ideograph */, + {0, 0, 0x22475A} /* East Asian ideograph */, + {0, 0, 0x21467B} /* East Asian ideograph */, + {0, 0, 0x22473B} /* East Asian ideograph */, + {0, 0, 0x274841} /* East Asian ideograph */, + {0, 0, 0x224732} /* East Asian ideograph */, + {0, 0, 0x224751} /* East Asian ideograph */, + {0, 0, 0x274931} /* East Asian ideograph */, + {0, 0, 0x4B4676} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21466F} /* East Asian ideograph */, + {0, 0, 0x4B6A26} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x224740} /* East Asian ideograph */, + {0, 0, 0x214670} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21467A} /* East Asian ideograph */, + {0, 0, 0x22474D} /* East Asian ideograph */, + {0, 0, 0x22473E} /* East Asian ideograph */, + {0, 0, 0x224756} /* East Asian ideograph */, + {0, 0, 0x214674} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x214677} /* East Asian ideograph */, + {0, 0, 0x22474B} /* East Asian ideograph */, + {0, 0, 0x21466A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x224749} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27483D} /* East Asian ideograph */, + {0, 0, 0x22475C} /* East Asian ideograph */, + {0, 0, 0x33467A} /* East Asian ideograph */, + {0, 0, 0x4B4921} /* East Asian ideograph */, + {0, 0, 0x284F5D} /* East Asian ideograph */, + {0, 0, 0x284C41} /* East Asian ideograph */, + {0, 0, 0x27493B} /* East Asian ideograph */, + {0, 0, 0x274777} /* East Asian ideograph */, + {0, 0, 0x274848} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x284D58} /* East Asian ideograph */, + {0, 0, 0x27484F} /* East Asian ideograph */, + {0, 0, 0x214725} /* East Asian ideograph */, + {0, 0, 0x224767} /* East Asian ideograph */, + {0, 0, 0x22476E} /* East Asian ideograph (variant of EACC 4C476E) */, + {0, 0, 0x21472D} /* East Asian ideograph */, + {0, 0, 0x224770} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21467C} /* East Asian ideograph */, + {0, 0, 0x2D467C} /* East Asian ideograph */, + {0, 0, 0x214728} /* East Asian ideograph */, + {0, 0, 0x224833} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x214723} /* East Asian ideograph */, + {0, 0, 0x21472E} /* East Asian ideograph */, + {0, 0, 0x22477A} /* East Asian ideograph */, + {0, 0, 0x214734} /* East Asian ideograph */, + {0, 0, 0x21472C} /* East Asian ideograph */, + {0, 0, 0x214727} /* East Asian ideograph */, + {0, 0, 0x214731} /* East Asian ideograph */, + {0, 0, 0x214737} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page128 = { + 0, marc8r_9page128_dir +}; +/* PAGE 127 */ +struct yaz_iconv_trie_flat marc8r_9page127_flat[] = { + {"\x81", 0, 0x21465E}, /* East Asian ideograph */ + {"\x80", 0, 0x214660}, /* East Asian ideograph */ + {"\x82", 0, 0x214661}, /* East Asian ideograph */ + {"\x9E", 0, 0x214662}, /* East Asian ideograph */ + {"\x97", 0, 0x214663}, /* East Asian ideograph */ + {"\x9F", 0, 0x214664}, /* East Asian ideograph */ + {"\x99", 0, 0x214665}, /* East Asian ideograph */ + {"\xA0", 0, 0x214666}, /* East Asian ideograph */ + {"\x95", 0, 0x214667}, /* East Asian ideograph */ + {"\x90", 0, 0x214668}, /* East Asian ideograph */ + {"\x9D", 0, 0x214669}, /* East Asian ideograph */ + {"\xBA", 0, 0x21466D}, /* East Asian ideograph */ + {"\xAA", 0, 0x21466E}, /* East Asian ideograph */ + {"\xB2", 0, 0x214671}, /* East Asian ideograph */ + {"\xB0", 0, 0x214672}, /* East Asian ideograph */ + {"\xA8", 0, 0x214673}, /* East Asian ideograph */ + {"\xBE", 0, 0x214678}, /* East Asian ideograph */ + {"\xBD", 0, 0x214679}, /* East Asian ideograph */ + {"\x86", 0, 0x224678}, /* East Asian ideograph */ + {"\x92", 0, 0x22467A}, /* East Asian ideograph */ + {"\xA2", 0, 0x22467B}, /* East Asian ideograph */ + {"\x8A", 0, 0x22467C}, /* East Asian ideograph */ + {"\x9C", 0, 0x224724}, /* East Asian ideograph */ + {"\x9B", 0, 0x224726}, /* East Asian ideograph */ + {"\x8D", 0, 0x224727}, /* East Asian ideograph */ + {"\x8B", 0, 0x22472B}, /* East Asian ideograph */ + {"\x94", 0, 0x22472C}, /* East Asian ideograph */ + {"\xA3", 0, 0x22472D}, /* East Asian ideograph */ + {"\xB8", 0, 0x224730}, /* East Asian ideograph */ + {"\xB4", 0, 0x224731}, /* East Asian ideograph */ + {"\xB6", 0, 0x224733}, /* East Asian ideograph */ + {"\xAC", 0, 0x224738}, /* East Asian ideograph */ + {"\xA7", 0, 0x224739}, /* East Asian ideograph */ + {"\xA5", 0, 0x224742}, /* East Asian ideograph */ + {"\xAF", 0, 0x224747}, /* East Asian ideograph */ + {"\xA9", 0, 0x22474A}, /* East Asian ideograph */ + {"\xAD", 0, 0x22474C}, /* East Asian ideograph */ + {"\xAE", 0, 0x224752}, /* East Asian ideograph */ + {"\x87", 0, 0x273451}, /* East Asian ideograph */ + {"\x87", 0, 0x273D4F}, /* East Asian ideograph (duplicate simplified) */ + {"\xA4", 0, 0x27482D}, /* East Asian ideograph */ + {"\x89", 0, 0x274857}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D4735}, /* East Asian ideograph */ + {"\xB9", 0, 0x2D4746}, /* East Asian ideograph */ + {"\xB3", 0, 0x2E4731}, /* East Asian ideograph */ + {"\xA7", 0, 0x2E4739}, /* East Asian ideograph (variant of EACC 224739) */ + {"\xA1", 0, 0x334665}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page127 = { + marc8r_9page127_flat, 0 +}; +/* PAGE 126 */ +struct yaz_iconv_trie_flat marc8r_9page126_flat[] = { + {"\x8F", 0, 0x21464C}, /* East Asian ideograph */ + {"\x91", 0, 0x21464D}, /* East Asian ideograph */ + {"\x90", 0, 0x21464E}, /* East Asian ideograph */ + {"\x93", 0, 0x21464F}, /* East Asian ideograph */ + {"\x96", 0, 0x214650}, /* East Asian ideograph */ + {"\x9B", 0, 0x214651}, /* East Asian ideograph */ + {"\x9F", 0, 0x214652}, /* East Asian ideograph */ + {"\xA7", 0, 0x214653}, /* East Asian ideograph */ + {"\xA6", 0, 0x214654}, /* East Asian ideograph */ + {"\xA3", 0, 0x214655}, /* East Asian ideograph */ + {"\xA8", 0, 0x214656}, /* East Asian ideograph */ + {"\xA4", 0, 0x214657}, /* East Asian ideograph */ + {"\xAB", 0, 0x214658}, /* East Asian ideograph */ + {"\xAE", 0, 0x214659}, /* East Asian ideograph */ + {"\xB3", 0, 0x21465A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21465B}, /* East Asian ideograph (variant of EACC 45465B) */ + {"\xB4", 0, 0x21465C}, /* East Asian ideograph */ + {"\xB8", 0, 0x21465D}, /* East Asian ideograph */ + {"\xB9", 0, 0x21643F}, /* East Asian ideograph */ + {"\x86", 0, 0x224644}, /* East Asian ideograph */ + {"\x84", 0, 0x224648}, /* East Asian ideograph */ + {"\x85", 0, 0x22464A}, /* East Asian ideograph */ + {"\x88", 0, 0x22464C}, /* East Asian ideograph */ + {"\x8C", 0, 0x224651}, /* East Asian ideograph */ + {"\x8D", 0, 0x224652}, /* East Asian ideograph */ + {"\x95", 0, 0x224659}, /* East Asian ideograph */ + {"\x98", 0, 0x22465A}, /* East Asian ideograph */ + {"\x99", 0, 0x22465B}, /* East Asian ideograph */ + {"\x9A", 0, 0x22465C}, /* East Asian ideograph */ + {"\x9D", 0, 0x22465E}, /* East Asian ideograph */ + {"\xA0", 0, 0x224660}, /* East Asian ideograph */ + {"\xA1", 0, 0x224662}, /* East Asian ideograph */ + {"\xAA", 0, 0x224664}, /* East Asian ideograph */ + {"\xAD", 0, 0x224666}, /* East Asian ideograph */ + {"\xB0", 0, 0x224667}, /* East Asian ideograph */ + {"\xAC", 0, 0x224668}, /* East Asian ideograph */ + {"\xB1", 0, 0x224669}, /* East Asian ideograph */ + {"\xBB", 0, 0x224670}, /* East Asian ideograph */ + {"\xBF", 0, 0x224674}, /* East Asian ideograph */ + {"\x94", 0, 0x274655}, /* East Asian ideograph */ + {"\xA2", 0, 0x274658}, /* East Asian ideograph */ + {"\x87", 0, 0x284651}, /* East Asian ideograph */ + {"\xA9", 0, 0x284668}, /* East Asian ideograph */ + {"\x82", 0, 0x2D4A60}, /* East Asian ideograph */ + {"\xB7", 0, 0x33333C}, /* East Asian ideograph */ + {"\xBE", 0, 0x394735}, /* East Asian ideograph */ + {"\xAF", 0, 0x45465B}, /* East Asian ideograph */ + {"\x97", 0, 0x4B4655}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B465A}, /* East Asian ideograph */ + {"\xBD", 0, 0x513B52}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page126 = { + marc8r_9page126_flat, 0 +}; +/* PAGE 125 */ +struct yaz_iconv_trie_flat marc8r_9page125_flat[] = { + {"\x80", 0, 0x21463D}, /* East Asian ideograph */ + {"\x85", 0, 0x21463F}, /* East Asian ideograph */ + {"\x86", 0, 0x214640}, /* East Asian ideograph */ + {"\x8B", 0, 0x214641}, /* East Asian ideograph */ + {"\x8D", 0, 0x214642}, /* East Asian ideograph */ + {"\x8F", 0, 0x214643}, /* East Asian ideograph */ + {"\x92", 0, 0x214644}, /* East Asian ideograph */ + {"\x94", 0, 0x214646}, /* East Asian ideograph */ + {"\x97", 0, 0x214647}, /* East Asian ideograph */ + {"\x9B", 0, 0x214648}, /* East Asian ideograph */ + {"\xAB", 0, 0x214649}, /* East Asian ideograph */ + {"\xAF", 0, 0x21464A}, /* East Asian ideograph */ + {"\xBD", 0, 0x21464B}, /* East Asian ideograph */ + {"\x88", 0, 0x224554}, /* East Asian ideograph */ + {"\x96", 0, 0x22455B}, /* East Asian ideograph */ + {"\x9A", 0, 0x224560}, /* East Asian ideograph */ + {"\x9C", 0, 0x224562}, /* East Asian ideograph */ + {"\x9D", 0, 0x224563}, /* East Asian ideograph */ + {"\x9F", 0, 0x224565}, /* East Asian ideograph */ + {"\xA7", 0, 0x22456F}, /* East Asian ideograph */ + {"\xAA", 0, 0x224570}, /* East Asian ideograph */ + {"\xA8", 0, 0x224571}, /* East Asian ideograph */ + {"\xB6", 0, 0x22462A}, /* East Asian ideograph */ + {"\xB3", 0, 0x22462C}, /* East Asian ideograph */ + {"\xB8", 0, 0x224633}, /* East Asian ideograph */ + {"\xBA", 0, 0x224637}, /* East Asian ideograph */ + {"\xB9", 0, 0x224638}, /* East Asian ideograph */ + {"\xBF", 0, 0x224642}, /* East Asian ideograph */ + {"\x99", 0, 0x274257}, /* East Asian ideograph */ + {"\x95", 0, 0x274C33}, /* East Asian ideograph */ + {"\x82", 0, 0x275B52}, /* East Asian ideograph */ + {"\xB5", 0, 0x284642}, /* East Asian ideograph */ + {"\xA1", 0, 0x28464C}, /* East Asian ideograph */ + {"\x98", 0, 0x2D4647}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D4B45}, /* East Asian ideograph */ + {"\x93", 0, 0x2D532C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page125 = { + marc8r_9page125_flat, 0 +}; +/* PAGE 124 */ +struct yaz_iconv_trie_flat marc8r_9page124_flat[] = { + {"\x83", 0, 0x21462F}, /* East Asian ideograph */ + {"\x86", 0, 0x214630}, /* East Asian ideograph */ + {"\x8A", 0, 0x214631}, /* East Asian ideograph */ + {"\x89", 0, 0x214632}, /* East Asian ideograph */ + {"\x98", 0, 0x214633}, /* East Asian ideograph */ + {"\x96", 0, 0x214634}, /* East Asian ideograph */ + {"\xA4", 0, 0x214635}, /* East Asian ideograph */ + {"\xAE", 0, 0x214636}, /* East Asian ideograph */ + {"\xAF", 0, 0x214637}, /* East Asian ideograph */ + {"\xB2", 0, 0x214638}, /* East Asian ideograph */ + {"\xB5", 0, 0x214639}, /* East Asian ideograph */ + {"\xB7", 0, 0x21463A}, /* East Asian ideograph */ + {"\xBA", 0, 0x21463B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21463C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21463E}, /* East Asian ideograph */ + {"\x82", 0, 0x224471}, /* East Asian ideograph */ + {"\x84", 0, 0x224473}, /* East Asian ideograph */ + {"\x8D", 0, 0x224479}, /* East Asian ideograph */ + {"\x95", 0, 0x22447B}, /* East Asian ideograph */ + {"\x99", 0, 0x224525}, /* East Asian ideograph */ + {"\x9B", 0, 0x224529}, /* East Asian ideograph */ + {"\xA3", 0, 0x224535}, /* East Asian ideograph */ + {"\xA2", 0, 0x224536}, /* East Asian ideograph */ + {"\xAA", 0, 0x224538}, /* East Asian ideograph */ + {"\xAB", 0, 0x224539}, /* East Asian ideograph */ + {"\xAD", 0, 0x22453B}, /* East Asian ideograph */ + {"\xB0", 0, 0x22453D}, /* East Asian ideograph */ + {"\xB3", 0, 0x22453F}, /* East Asian ideograph */ + {"\xBD", 0, 0x224547}, /* East Asian ideograph */ + {"\x8B", 0, 0x274633}, /* East Asian ideograph */ + {"\x87", 0, 0x274635}, /* East Asian ideograph */ + {"\x93", 0, 0x274636}, /* East Asian ideograph */ + {"\xA1", 0, 0x274637}, /* East Asian ideograph */ + {"\xB4", 0, 0x274640}, /* East Asian ideograph */ + {"\x9A", 0, 0x284539}, /* East Asian ideograph */ + {"\x80", 0, 0x2D3929}, /* East Asian ideograph */ + {"\x8B", 0, 0x334633}, /* East Asian ideograph (variant of EACC 274633) */ + {"\xBB", 0, 0x33463C}, /* East Asian ideograph */ + {"\x96", 0, 0x394634}, /* East Asian ideograph (variant of EACC 214634) */ + {"\x9E", 0, 0x3F5F35}, /* East Asian ideograph */ + {"\x81", 0, 0x4B462E}, /* East Asian ideograph */ + {"\xB1", 0, 0x4B4638}, /* East Asian ideograph */ + {"\x92", 0, 0x4B5F35}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page124 = { + marc8r_9page124_flat, 0 +}; +/* PAGE 123 */ +struct yaz_iconv_trie_flat marc8r_9page123_flat[] = { + {"\x87", 0, 0x214579}, /* East Asian ideograph */ + {"\x89", 0, 0x21457A}, /* East Asian ideograph */ + {"\x8C", 0, 0x21457B}, /* East Asian ideograph */ + {"\x90", 0, 0x21457C}, /* East Asian ideograph */ + {"\x99", 0, 0x21457D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21457E}, /* East Asian ideograph */ + {"\xA1", 0, 0x214621}, /* East Asian ideograph */ + {"\xA3", 0, 0x214623}, /* East Asian ideograph */ + {"\xA4", 0, 0x214624}, /* East Asian ideograph */ + {"\xA5", 0, 0x214625}, /* East Asian ideograph */ + {"\xA6", 0, 0x214627}, /* East Asian ideograph */ + {"\xAA", 0, 0x214628}, /* East Asian ideograph */ + {"\xB2", 0, 0x214629}, /* East Asian ideograph */ + {"\xB7", 0, 0x21462A}, /* East Asian ideograph */ + {"\xB8", 0, 0x21462B}, /* East Asian ideograph */ + {"\xB9", 0, 0x21462C}, /* East Asian ideograph */ + {"\xBB", 0, 0x21462D}, /* East Asian ideograph */ + {"\xBF", 0, 0x21462E}, /* East Asian ideograph */ + {"\x86", 0, 0x224437}, /* East Asian ideograph */ + {"\x81", 0, 0x224438}, /* East Asian ideograph */ + {"\x80", 0, 0x22443A}, /* East Asian ideograph */ + {"\x82", 0, 0x22443B}, /* East Asian ideograph */ + {"\x83", 0, 0x22443C}, /* East Asian ideograph */ + {"\x88", 0, 0x22443E}, /* East Asian ideograph */ + {"\x8A", 0, 0x22443F}, /* East Asian ideograph */ + {"\x8E", 0, 0x224446}, /* East Asian ideograph (variant of EACC 4C4446) */ + {"\x97", 0, 0x22444A}, /* East Asian ideograph */ + {"\x94", 0, 0x22444C}, /* East Asian ideograph */ + {"\x95", 0, 0x22444E}, /* East Asian ideograph */ + {"\x9C", 0, 0x224451}, /* East Asian ideograph */ + {"\x9E", 0, 0x224453}, /* East Asian ideograph */ + {"\xA0", 0, 0x224454}, /* East Asian ideograph */ + {"\xAB", 0, 0x22445B}, /* East Asian ideograph */ + {"\xAC", 0, 0x22445D}, /* East Asian ideograph */ + {"\xAE", 0, 0x22445F}, /* East Asian ideograph */ + {"\xB1", 0, 0x224461}, /* East Asian ideograph */ + {"\xBE", 0, 0x22446B}, /* East Asian ideograph */ + {"\xBC", 0, 0x274638}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D353C}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D462C}, /* East Asian ideograph */ + {"\x9B", 0, 0x334256}, /* East Asian ideograph */ + {"\xAF", 0, 0x336321}, /* East Asian ideograph */ + {"\xA7", 0, 0x4B3B67}, /* East Asian ideograph */ + {"\x93", 0, 0x4B4621}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B462A}, /* East Asian ideograph */ + {"\x8E", 0, 0x4C4446}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page123 = { + marc8r_9page123_flat, 0 +}; +/* PAGE 122 */ +struct yaz_iconv_trie_flat marc8r_9page122_flat[] = { + {"\x84", 0, 0x21456E}, /* East Asian ideograph */ + {"\x8A", 0, 0x214570}, /* East Asian ideograph */ + {"\x96", 0, 0x214571}, /* East Asian ideograph */ + {"\xA1", 0, 0x214573}, /* East Asian ideograph */ + {"\xA3", 0, 0x214574}, /* East Asian ideograph */ + {"\xBE", 0, 0x214576}, /* East Asian ideograph */ + {"\xBA", 0, 0x214577}, /* East Asian ideograph */ + {"\xBD", 0, 0x214578}, /* East Asian ideograph */ + {"\x81", 0, 0x224352}, /* East Asian ideograph */ + {"\x83", 0, 0x224358}, /* East Asian ideograph */ + {"\x8D", 0, 0x22435F}, /* East Asian ideograph */ + {"\x89", 0, 0x224360}, /* East Asian ideograph */ + {"\x8E", 0, 0x224361}, /* East Asian ideograph */ + {"\x91", 0, 0x224367}, /* East Asian ideograph */ + {"\x99", 0, 0x22436D}, /* East Asian ideograph */ + {"\x97", 0, 0x22436E}, /* East Asian ideograph */ + {"\x9E", 0, 0x224372}, /* East Asian ideograph */ + {"\xAC", 0, 0x22437E}, /* East Asian ideograph */ + {"\xB5", 0, 0x22442A}, /* East Asian ideograph */ + {"\xB7", 0, 0x22442C}, /* East Asian ideograph */ + {"\xBB", 0, 0x22442D}, /* East Asian ideograph */ + {"\xB9", 0, 0x224432}, /* East Asian ideograph */ + {"\xBF", 0, 0x224435}, /* East Asian ideograph */ + {"\xB2", 0, 0x273F3C}, /* East Asian ideograph */ + {"\xA0", 0, 0x27457A}, /* East Asian ideograph (duplicate simplified) */ + {"\xA7", 0, 0x27457C}, /* East Asian ideograph */ + {"\xA4", 0, 0x27457E}, /* East Asian ideograph */ + {"\xA2", 0, 0x274621}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D3642}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D616A}, /* East Asian ideograph */ + {"\x92", 0, 0x394944}, /* East Asian ideograph */ + {"\xA0", 0, 0x4B5227}, /* East Asian ideograph */ + {"\x85", 0, 0x4C4359}, /* East Asian ideograph */ + {"\x9F", 0, 0x695D36}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page122 = { + marc8r_9page122_flat, 0 +}; +/* PAGE 121 */ +struct yaz_iconv_trie_flat marc8r_9page121_flat[] = { + {"\x83", 0, 0x214565}, /* East Asian ideograph */ + {"\xA5", 0, 0x214569}, /* East Asian ideograph */ + {"\x9A", 0, 0x21456A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21456B}, /* East Asian ideograph */ + {"\x9B", 0, 0x21456C}, /* East Asian ideograph */ + {"\x93", 0, 0x21456D}, /* East Asian ideograph */ + {"\xBB", 0, 0x21456F}, /* East Asian ideograph */ + {"\x88", 0, 0x224255}, /* East Asian ideograph */ + {"\x8A", 0, 0x224264}, /* East Asian ideograph */ + {"\xA6", 0, 0x224279}, /* East Asian ideograph */ + {"\xAD", 0, 0x22427E}, /* East Asian ideograph */ + {"\x8C", 0, 0x224325}, /* East Asian ideograph */ + {"\x91", 0, 0x224328}, /* East Asian ideograph */ + {"\x9F", 0, 0x224333}, /* East Asian ideograph */ + {"\x8D", 0, 0x224334}, /* East Asian ideograph */ + {"\x9E", 0, 0x224335}, /* East Asian ideograph */ + {"\xAC", 0, 0x224337}, /* East Asian ideograph */ + {"\xB3", 0, 0x224339}, /* East Asian ideograph */ + {"\xA7", 0, 0x22433A}, /* East Asian ideograph */ + {"\xAB", 0, 0x22433F}, /* East Asian ideograph */ + {"\xAA", 0, 0x224340}, /* East Asian ideograph */ + {"\xB1", 0, 0x224344}, /* East Asian ideograph */ + {"\xA8", 0, 0x224345}, /* East Asian ideograph */ + {"\xB5", 0, 0x224348}, /* East Asian ideograph */ + {"\xBD", 0, 0x22434E}, /* East Asian ideograph */ + {"\xBA", 0, 0x224350}, /* East Asian ideograph */ + {"\xB8", 0, 0x224359}, /* East Asian ideograph */ + {"\x89", 0, 0x2D4569}, /* East Asian ideograph */ + {"\x81", 0, 0x2E403D}, /* East Asian ideograph */ + {"\x82", 0, 0x39447D}, /* East Asian ideograph */ + {"\x9B", 0, 0x4B456C}, /* East Asian ideograph (variant of EACC 21456C) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page121 = { + marc8r_9page121_flat, 0 +}; +/* PAGE 120 */ +struct yaz_iconv_trie_flat marc8r_9page120_flat[] = { + {"\x80", 0, 0x21455E}, /* East Asian ideograph */ + {"\x94", 0, 0x21455F}, /* East Asian ideograph */ + {"\x84", 0, 0x214560}, /* East Asian ideograph */ + {"\xA2", 0, 0x214561}, /* East Asian ideograph */ + {"\x9C", 0, 0x214562}, /* East Asian ideograph */ + {"\xB8", 0, 0x214563}, /* East Asian ideograph */ + {"\xB3", 0, 0x214564}, /* East Asian ideograph */ + {"\xBB", 0, 0x214566}, /* East Asian ideograph */ + {"\xAC", 0, 0x214568}, /* East Asian ideograph */ + {"\xAF", 0, 0x223B7D}, /* East Asian ideograph */ + {"\x8D", 0, 0x224173}, /* East Asian ideograph */ + {"\xA8", 0, 0x224175}, /* East Asian ideograph */ + {"\xA5", 0, 0x224177}, /* East Asian ideograph */ + {"\x96", 0, 0x224179}, /* East Asian ideograph */ + {"\x89", 0, 0x224223}, /* East Asian ideograph */ + {"\x91", 0, 0x224224}, /* East Asian ideograph */ + {"\x9F", 0, 0x224226}, /* East Asian ideograph */ + {"\x92", 0, 0x22422A}, /* East Asian ideograph */ + {"\xA3", 0, 0x22422B}, /* East Asian ideograph */ + {"\x99", 0, 0x224234}, /* East Asian ideograph */ + {"\x9D", 0, 0x224235}, /* East Asian ideograph */ + {"\x9B", 0, 0x224237}, /* East Asian ideograph */ + {"\xA0", 0, 0x224242}, /* East Asian ideograph */ + {"\x90", 0, 0x224247}, /* East Asian ideograph */ + {"\x9E", 0, 0x224249}, /* East Asian ideograph */ + {"\x87", 0, 0x22424A}, /* East Asian ideograph */ + {"\x8E", 0, 0x22424B}, /* East Asian ideograph */ + {"\xAB", 0, 0x224251}, /* East Asian ideograph */ + {"\xAE", 0, 0x224257}, /* East Asian ideograph */ + {"\xBF", 0, 0x22425D}, /* East Asian ideograph */ + {"\xB4", 0, 0x224268}, /* East Asian ideograph */ + {"\x97", 0, 0x2D563F}, /* East Asian ideograph */ + {"\xA9", 0, 0x2E4174}, /* East Asian ideograph */ + {"\x98", 0, 0x4B563F}, /* East Asian ideograph */ + {"\xAA", 0, 0x4C4333}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page120 = { + marc8r_9page120_flat, 0 +}; +/* PAGE 119 */ +struct yaz_iconv_trie_flat marc8r_9page119_flat[] = { + {"\x98", 0, 0x214551}, /* East Asian ideograph */ + {"\x99", 0, 0x214552}, /* East Asian ideograph */ + {"\xA2", 0, 0x214553}, /* East Asian ideograph */ + {"\x84", 0, 0x214554}, /* East Asian ideograph */ + {"\xAB", 0, 0x214556}, /* East Asian ideograph */ + {"\x87", 0, 0x214559}, /* East Asian ideograph */ + {"\xA1", 0, 0x21455A}, /* East Asian ideograph */ + {"\x8B", 0, 0x21455B}, /* East Asian ideograph */ + {"\x9F", 0, 0x21455D}, /* East Asian ideograph */ + {"\xA3", 0, 0x224129}, /* East Asian ideograph */ + {"\xA7", 0, 0x224137}, /* East Asian ideograph */ + {"\x83", 0, 0x224139}, /* East Asian ideograph */ + {"\x9A", 0, 0x22413C}, /* East Asian ideograph */ + {"\x88", 0, 0x224140}, /* East Asian ideograph */ + {"\x90", 0, 0x224141}, /* East Asian ideograph */ + {"\x92", 0, 0x224142}, /* East Asian ideograph */ + {"\xB2", 0, 0x224143}, /* East Asian ideograph */ + {"\xB7", 0, 0x224146}, /* East Asian ideograph */ + {"\x9B", 0, 0x224147}, /* East Asian ideograph */ + {"\x9E", 0, 0x22414A}, /* East Asian ideograph */ + {"\x9C", 0, 0x22414B}, /* East Asian ideograph */ + {"\x91", 0, 0x22414F}, /* East Asian ideograph */ + {"\x96", 0, 0x224151}, /* East Asian ideograph */ + {"\xBA", 0, 0x224156}, /* East Asian ideograph */ + {"\xA4", 0, 0x22416D}, /* East Asian ideograph */ + {"\xBD", 0, 0x22417E}, /* East Asian ideograph */ + {"\xBF", 0, 0x224222}, /* East Asian ideograph */ + {"\xBE", 0, 0x224236}, /* East Asian ideograph */ + {"\xB9", 0, 0x27456D}, /* East Asian ideograph */ + {"\xBC", 0, 0x284335}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D3C5F}, /* East Asian ideograph */ + {"\xB1", 0, 0x4B4569}, /* East Asian ideograph */ + {"\xA5", 0, 0x4C433F}, /* East Asian ideograph */ + {"\xB8", 0, 0x695C71}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page119 = { + marc8r_9page119_flat, 0 +}; +/* PAGE 118 */ +struct yaz_iconv_trie_flat marc8r_9page118_flat[] = { + {"\x9F", 0, 0x214542}, /* East Asian ideograph */ + {"\xA3", 0, 0x214544}, /* East Asian ideograph */ + {"\x81", 0, 0x214546}, /* East Asian ideograph */ + {"\x99", 0, 0x214547}, /* East Asian ideograph */ + {"\x9E", 0, 0x214549}, /* East Asian ideograph */ + {"\x93", 0, 0x21454A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21454B}, /* East Asian ideograph */ + {"\x8A", 0, 0x21454D}, /* East Asian ideograph */ + {"\x82", 0, 0x21454E}, /* East Asian ideograph */ + {"\x85", 0, 0x21454F}, /* East Asian ideograph */ + {"\xBD", 0, 0x214550}, /* East Asian ideograph */ + {"\xB9", 0, 0x214555}, /* East Asian ideograph */ + {"\xBA", 0, 0x214557}, /* East Asian ideograph */ + {"\xB8", 0, 0x214558}, /* East Asian ideograph */ + {"\xB5", 0, 0x21455C}, /* East Asian ideograph */ + {"\x92", 0, 0x22403D}, /* East Asian ideograph */ + {"\x91", 0, 0x22403E}, /* East Asian ideograph */ + {"\x80", 0, 0x224041}, /* East Asian ideograph */ + {"\x8B", 0, 0x22404B}, /* East Asian ideograph */ + {"\x97", 0, 0x224054}, /* East Asian ideograph */ + {"\xAB", 0, 0x22405E}, /* East Asian ideograph */ + {"\xA0", 0, 0x224060}, /* East Asian ideograph */ + {"\x9B", 0, 0x224067}, /* East Asian ideograph */ + {"\xAD", 0, 0x224068}, /* East Asian ideograph */ + {"\x98", 0, 0x22406E}, /* East Asian ideograph */ + {"\x9D", 0, 0x224072}, /* East Asian ideograph */ + {"\x8C", 0, 0x224075}, /* East Asian ideograph */ + {"\x8F", 0, 0x224076}, /* East Asian ideograph */ + {"\x94", 0, 0x224128}, /* East Asian ideograph */ + {"\xB3", 0, 0x22413A}, /* East Asian ideograph */ + {"\xB2", 0, 0x22413B}, /* East Asian ideograph */ + {"\xA8", 0, 0x22413F}, /* East Asian ideograph */ + {"\xBE", 0, 0x224145}, /* East Asian ideograph */ + {"\xB6", 0, 0x224153}, /* East Asian ideograph */ + {"\xBF", 0, 0x224158}, /* East Asian ideograph */ + {"\xB1", 0, 0x27456F}, /* East Asian ideograph */ + {"\xAF", 0, 0x28422B}, /* East Asian ideograph */ + {"\xA2", 0, 0x2F252D}, /* East Asian ideograph */ + {"\x90", 0, 0x45456D}, /* East Asian ideograph */ + {"\xAA", 0, 0x4B4556}, /* East Asian ideograph */ + {"\xA9", 0, 0x4B4570}, /* East Asian ideograph */ + {"\xAE", 0, 0x695C53}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page118 = { + marc8r_9page118_flat, 0 +}; +/* PAGE 117 */ +struct yaz_iconv_trie_flat marc8r_9page117_flat[] = { + {"\x81", 0, 0x214535}, /* East Asian ideograph */ + {"\x8B", 0, 0x214539}, /* East Asian ideograph */ + {"\x93", 0, 0x21453A}, /* East Asian ideograph */ + {"\x8C", 0, 0x21453D}, /* East Asian ideograph */ + {"\x90", 0, 0x21453F}, /* East Asian ideograph */ + {"\x8D", 0, 0x214540}, /* East Asian ideograph */ + {"\xA8", 0, 0x214543}, /* East Asian ideograph */ + {"\xAA", 0, 0x214545}, /* East Asian ideograph */ + {"\xBD", 0, 0x214548}, /* East Asian ideograph */ + {"\xB3", 0, 0x21454C}, /* East Asian ideograph */ + {"\x8E", 0, 0x223F50}, /* East Asian ideograph */ + {"\x8A", 0, 0x223F51}, /* East Asian ideograph */ + {"\x99", 0, 0x223F68}, /* East Asian ideograph */ + {"\x96", 0, 0x223F6D}, /* East Asian ideograph */ + {"\x91", 0, 0x223F78}, /* East Asian ideograph */ + {"\xB6", 0, 0x223F7A}, /* East Asian ideograph */ + {"\x95", 0, 0x223F7E}, /* East Asian ideograph */ + {"\x94", 0, 0x224034}, /* East Asian ideograph */ + {"\x83", 0, 0x224038}, /* East Asian ideograph */ + {"\xA6", 0, 0x224046}, /* East Asian ideograph */ + {"\xA5", 0, 0x22404C}, /* East Asian ideograph */ + {"\xA9", 0, 0x22404D}, /* East Asian ideograph */ + {"\xBC", 0, 0x224050}, /* East Asian ideograph */ + {"\xA7", 0, 0x224056}, /* East Asian ideograph */ + {"\xAB", 0, 0x224057}, /* East Asian ideograph */ + {"\xB1", 0, 0x22405B}, /* East Asian ideograph */ + {"\xBF", 0, 0x22405F}, /* East Asian ideograph */ + {"\xAD", 0, 0x224064}, /* East Asian ideograph */ + {"\xAE", 0, 0x22407C}, /* East Asian ideograph */ + {"\xB0", 0, 0x224123}, /* East Asian ideograph */ + {"\xB2", 0, 0x224124}, /* East Asian ideograph */ + {"\xB9", 0, 0x22416C}, /* East Asian ideograph */ + {"\x9F", 0, 0x274564}, /* East Asian ideograph */ + {"\x9B", 0, 0x274566}, /* East Asian ideograph */ + {"\xA0", 0, 0x28433A}, /* East Asian ideograph */ + {"\x85", 0, 0x2D4444}, /* East Asian ideograph */ + {"\xA3", 0, 0x2E3645}, /* East Asian ideograph */ + {"\xBB", 0, 0x395829}, /* East Asian ideograph */ + {"\x98", 0, 0x4B4544}, /* East Asian ideograph */ + {"\x87", 0, 0x4C3F68}, /* East Asian ideograph */ + {"\x9E", 0, 0x4C4339}, /* East Asian ideograph */ + {"\x9D", 0, 0x695C4F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page117 = { + marc8r_9page117_flat, 0 +}; +/* PAGE 116 */ +struct yaz_iconv_trie_flat marc8r_9page116_flat[] = { + {"\x86", 0, 0x214530}, /* East Asian ideograph */ + {"\xA8", 0, 0x214531}, /* East Asian ideograph */ + {"\x95", 0, 0x214532}, /* East Asian ideograph */ + {"\x9C", 0, 0x214533}, /* East Asian ideograph */ + {"\x94", 0, 0x214534}, /* East Asian ideograph */ + {"\xB7", 0, 0x214536}, /* East Asian ideograph */ + {"\xAE", 0, 0x214537}, /* East Asian ideograph */ + {"\x9B", 0, 0x214538}, /* East Asian ideograph */ + {"\xBB", 0, 0x21453B}, /* East Asian ideograph */ + {"\xAB", 0, 0x21453C}, /* East Asian ideograph */ + {"\xAD", 0, 0x21453E}, /* East Asian ideograph */ + {"\xB4", 0, 0x214541}, /* East Asian ideograph */ + {"\x80", 0, 0x223E7D}, /* East Asian ideograph */ + {"\x85", 0, 0x223F2D}, /* East Asian ideograph */ + {"\x8A", 0, 0x223F44}, /* East Asian ideograph */ + {"\xA0", 0, 0x223F45}, /* East Asian ideograph */ + {"\xB1", 0, 0x223F46}, /* East Asian ideograph */ + {"\x8D", 0, 0x223F59}, /* East Asian ideograph */ + {"\x91", 0, 0x223F5A}, /* East Asian ideograph */ + {"\xAA", 0, 0x223F5C}, /* East Asian ideograph */ + {"\xBC", 0, 0x223F60}, /* East Asian ideograph */ + {"\xA7", 0, 0x223F61}, /* East Asian ideograph */ + {"\x9E", 0, 0x223F65}, /* East Asian ideograph */ + {"\x8E", 0, 0x223F6A}, /* East Asian ideograph */ + {"\xA5", 0, 0x223F75}, /* East Asian ideograph */ + {"\xBE", 0, 0x223F77}, /* East Asian ideograph */ + {"\xBF", 0, 0x224027}, /* East Asian ideograph */ + {"\xA3", 0, 0x22402D}, /* East Asian ideograph */ + {"\xA4", 0, 0x22402E}, /* East Asian ideograph */ + {"\x96", 0, 0x22454D}, /* East Asian ideograph */ + {"\x88", 0, 0x27456A}, /* East Asian ideograph */ + {"\x84", 0, 0x274571}, /* East Asian ideograph */ + {"\x87", 0, 0x284337}, /* East Asian ideograph */ + {"\x89", 0, 0x284359}, /* East Asian ideograph */ + {"\x98", 0, 0x2D4E24}, /* East Asian ideograph */ + {"\xB2", 0, 0x2E3F2D}, /* East Asian ideograph */ + {"\xA6", 0, 0x45304C}, /* East Asian ideograph */ + {"\x94", 0, 0x4B4534}, /* East Asian ideograph (variant of EACC 214534) */ + {"\x82", 0, 0x4B4545}, /* East Asian ideograph */ + {"\x81", 0, 0x695C43}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page116 = { + marc8r_9page116_flat, 0 +}; +/* PAGE 115 */ +struct yaz_iconv_trie_flat marc8r_9page115_flat[] = { + {"\x94", 0, 0x214523}, /* East Asian ideograph */ + {"\xB7", 0, 0x214525}, /* East Asian ideograph */ + {"\xB5", 0, 0x214526}, /* East Asian ideograph */ + {"\x9A", 0, 0x214527}, /* East Asian ideograph */ + {"\xA0", 0, 0x214528}, /* East Asian ideograph */ + {"\xAB", 0, 0x214529}, /* East Asian ideograph */ + {"\x8A", 0, 0x21452A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21452B}, /* East Asian ideograph */ + {"\x9E", 0, 0x21452C}, /* East Asian ideograph */ + {"\xAD", 0, 0x21452D}, /* East Asian ideograph */ + {"\xB9", 0, 0x21452E}, /* East Asian ideograph */ + {"\x93", 0, 0x21452F}, /* East Asian ideograph */ + {"\xB4", 0, 0x223E53}, /* East Asian ideograph */ + {"\xA2", 0, 0x223E58}, /* East Asian ideograph */ + {"\x98", 0, 0x223E5D}, /* East Asian ideograph */ + {"\x97", 0, 0x223E5F}, /* East Asian ideograph */ + {"\xB1", 0, 0x223E61}, /* East Asian ideograph */ + {"\x85", 0, 0x223E64}, /* East Asian ideograph */ + {"\x9D", 0, 0x223E65}, /* East Asian ideograph */ + {"\xAE", 0, 0x223E69}, /* East Asian ideograph */ + {"\xA3", 0, 0x223E6A}, /* East Asian ideograph */ + {"\x88", 0, 0x223E6B}, /* East Asian ideograph */ + {"\xAA", 0, 0x223E70}, /* East Asian ideograph */ + {"\xAC", 0, 0x223E7A}, /* East Asian ideograph */ + {"\x8E", 0, 0x223E7B}, /* East Asian ideograph */ + {"\x92", 0, 0x223F21}, /* East Asian ideograph */ + {"\x9B", 0, 0x223F25}, /* East Asian ideograph */ + {"\xB8", 0, 0x223F35}, /* East Asian ideograph */ + {"\xBB", 0, 0x223F37}, /* East Asian ideograph */ + {"\xA9", 0, 0x223F3B}, /* East Asian ideograph */ + {"\x84", 0, 0x223F3D}, /* East Asian ideograph */ + {"\xAF", 0, 0x223F3E}, /* East Asian ideograph */ + {"\xBC", 0, 0x27454A}, /* East Asian ideograph */ + {"\xA6", 0, 0x283F30}, /* East Asian ideograph */ + {"\x82", 0, 0x2D443A}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D4466}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D454E}, /* East Asian ideograph */ + {"\x99", 0, 0x2D5468}, /* East Asian ideograph */ + {"\x95", 0, 0x4B4553}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B533B}, /* East Asian ideograph */ + {"\xBE", 0, 0x695C39}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page115 = { + marc8r_9page115_flat, 0 +}; +/* PAGE 114 */ +struct yaz_iconv_trie_flat marc8r_9page114_flat[] = { + {"\x8D", 0, 0x214474}, /* East Asian ideograph */ + {"\x85", 0, 0x214475}, /* East Asian ideograph */ + {"\x92", 0, 0x21447C}, /* East Asian ideograph */ + {"\x8E", 0, 0x214521}, /* East Asian ideograph */ + {"\xB0", 0, 0x214524}, /* East Asian ideograph */ + {"\xAC", 0, 0x223D50}, /* East Asian ideograph */ + {"\x97", 0, 0x223D51}, /* East Asian ideograph */ + {"\x8C", 0, 0x223D53}, /* East Asian ideograph */ + {"\x8B", 0, 0x223D56}, /* East Asian ideograph */ + {"\x84", 0, 0x223D59}, /* East Asian ideograph */ + {"\x8A", 0, 0x223D5B}, /* East Asian ideograph */ + {"\x89", 0, 0x223D5C}, /* East Asian ideograph */ + {"\xA9", 0, 0x223D5D}, /* East Asian ideograph */ + {"\xAA", 0, 0x223D63}, /* East Asian ideograph */ + {"\x90", 0, 0x223D6A}, /* East Asian ideograph */ + {"\x93", 0, 0x223D7C}, /* East Asian ideograph */ + {"\x87", 0, 0x223E21}, /* East Asian ideograph */ + {"\x9A", 0, 0x223E23}, /* East Asian ideograph */ + {"\x99", 0, 0x223E24}, /* East Asian ideograph */ + {"\x9B", 0, 0x223E2B}, /* East Asian ideograph */ + {"\x88", 0, 0x223E39}, /* East Asian ideograph */ + {"\x91", 0, 0x223E44}, /* East Asian ideograph */ + {"\xB8", 0, 0x223E55}, /* East Asian ideograph */ + {"\xBF", 0, 0x223E60}, /* East Asian ideograph */ + {"\xB2", 0, 0x223E66}, /* East Asian ideograph */ + {"\xB9", 0, 0x223E6E}, /* East Asian ideograph */ + {"\xB7", 0, 0x223E73}, /* East Asian ideograph */ + {"\xB3", 0, 0x223E7E}, /* East Asian ideograph */ + {"\xBD", 0, 0x223F32}, /* East Asian ideograph */ + {"\xB4", 0, 0x223F3A}, /* East Asian ideograph */ + {"\xAD", 0, 0x274553}, /* East Asian ideograph */ + {"\x9F", 0, 0x27456B}, /* East Asian ideograph */ + {"\xA0", 0, 0x284056}, /* East Asian ideograph */ + {"\xA4", 0, 0x284366}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D446B}, /* East Asian ideograph */ + {"\x8D", 0, 0x2D4474}, /* East Asian ideograph (variant of EACC 214474) */ + {"\x81", 0, 0x2D4543}, /* East Asian ideograph */ + {"\xBE", 0, 0x2D502B}, /* East Asian ideograph */ + {"\x8F", 0, 0x2E3B22}, /* East Asian ideograph */ + {"\x98", 0, 0x334527}, /* East Asian ideograph */ + {"\x80", 0, 0x346126}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B4561}, /* East Asian ideograph */ + {"\xA2", 0, 0x4C3F7A}, /* East Asian ideograph */ + {"\xA6", 0, 0x695B7B}, /* East Asian ideograph */ + {"\xA5", 0, 0x695C29}, /* East Asian ideograph */ + {"\xA8", 0, 0x695C2D}, /* East Asian ideograph */ + {"\xA3", 0, 0x695C30}, /* East Asian ideograph */ + {"\xA1", 0, 0x695C31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page114 = { + marc8r_9page114_flat, 0 +}; +/* PAGE 113 */ +struct yaz_iconv_trie_flat marc8r_9page113_flat[] = { + {"\x95", 0, 0x21446B}, /* East Asian ideograph */ + {"\xBA", 0, 0x21446C}, /* East Asian ideograph */ + {"\x84", 0, 0x21446D}, /* East Asian ideograph */ + {"\xB2", 0, 0x21446E}, /* East Asian ideograph */ + {"\x92", 0, 0x21446F}, /* East Asian ideograph */ + {"\xA3", 0, 0x214470}, /* East Asian ideograph */ + {"\x9F", 0, 0x214471}, /* East Asian ideograph */ + {"\x8B", 0, 0x214472}, /* East Asian ideograph */ + {"\xAE", 0, 0x214473}, /* East Asian ideograph */ + {"\xA7", 0, 0x214476}, /* East Asian ideograph */ + {"\xA0", 0, 0x214477}, /* East Asian ideograph */ + {"\xB5", 0, 0x214478}, /* East Asian ideograph */ + {"\x8D", 0, 0x214479}, /* East Asian ideograph */ + {"\x97", 0, 0x21447A}, /* East Asian ideograph */ + {"\x98", 0, 0x21447B}, /* East Asian ideograph */ + {"\xB9", 0, 0x21447D}, /* East Asian ideograph */ + {"\x9A", 0, 0x21447E}, /* East Asian ideograph */ + {"\x89", 0, 0x214522}, /* East Asian ideograph */ + {"\x93", 0, 0x223D58}, /* East Asian ideograph */ + {"\xAC", 0, 0x223D62}, /* East Asian ideograph */ + {"\xAA", 0, 0x223D64}, /* East Asian ideograph */ + {"\x96", 0, 0x223D6E}, /* East Asian ideograph */ + {"\xAB", 0, 0x223D6F}, /* East Asian ideograph */ + {"\xB1", 0, 0x223D73}, /* East Asian ideograph */ + {"\xBD", 0, 0x223D78}, /* East Asian ideograph */ + {"\xBC", 0, 0x223D79}, /* East Asian ideograph */ + {"\xB3", 0, 0x223D7B}, /* East Asian ideograph */ + {"\x9E", 0, 0x223E2A}, /* East Asian ideograph */ + {"\xBB", 0, 0x223E2D}, /* East Asian ideograph */ + {"\xA1", 0, 0x223E33}, /* East Asian ideograph */ + {"\x91", 0, 0x223E37}, /* East Asian ideograph */ + {"\x90", 0, 0x223E38}, /* East Asian ideograph */ + {"\xA8", 0, 0x223E3E}, /* East Asian ideograph */ + {"\xB0", 0, 0x223E3F}, /* East Asian ideograph */ + {"\x83", 0, 0x223E40}, /* East Asian ideograph */ + {"\x94", 0, 0x223E46}, /* East Asian ideograph */ + {"\xAF", 0, 0x223E47}, /* East Asian ideograph */ + {"\x86", 0, 0x223E49}, /* East Asian ideograph */ + {"\x87", 0, 0x223E4B}, /* East Asian ideograph */ + {"\x80", 0, 0x274561}, /* East Asian ideograph */ + {"\x82", 0, 0x284350}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D4472}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page113 = { + marc8r_9page113_flat, 0 +}; +/* PAGE 112 */ +struct yaz_iconv_trie_flat marc8r_9page112_flat[] = { + {"\x81", 0, 0x214457}, /* East Asian ideograph */ + {"\x93", 0, 0x214458}, /* East Asian ideograph */ + {"\xAF", 0, 0x214459}, /* East Asian ideograph */ + {"\xB0", 0, 0x21445B}, /* East Asian ideograph */ + {"\xA7", 0, 0x21445C}, /* East Asian ideograph */ + {"\x97", 0, 0x21445D}, /* East Asian ideograph */ + {"\xB5", 0, 0x21445E}, /* East Asian ideograph */ + {"\xB3", 0, 0x21445F}, /* East Asian ideograph */ + {"\xA2", 0, 0x214460}, /* East Asian ideograph */ + {"\xB1", 0, 0x214462}, /* East Asian ideograph */ + {"\x9D", 0, 0x214463}, /* East Asian ideograph */ + {"\xAD", 0, 0x214464}, /* East Asian ideograph */ + {"\x86", 0, 0x214465}, /* East Asian ideograph */ + {"\x85", 0, 0x214466}, /* East Asian ideograph */ + {"\xA8", 0, 0x214467}, /* East Asian ideograph */ + {"\x9F", 0, 0x214468}, /* East Asian ideograph */ + {"\x94", 0, 0x214469}, /* East Asian ideograph */ + {"\x83", 0, 0x21446A}, /* East Asian ideograph */ + {"\xB2", 0, 0x223C6E}, /* East Asian ideograph */ + {"\x9B", 0, 0x223C71}, /* East Asian ideograph */ + {"\xB6", 0, 0x223C74}, /* East Asian ideograph */ + {"\x82", 0, 0x223C76}, /* East Asian ideograph */ + {"\x90", 0, 0x223C7A}, /* East Asian ideograph */ + {"\x9C", 0, 0x223D22}, /* East Asian ideograph */ + {"\xA9", 0, 0x223D2E}, /* East Asian ideograph */ + {"\x98", 0, 0x223D30}, /* East Asian ideograph */ + {"\x8B", 0, 0x223D32}, /* East Asian ideograph */ + {"\xA0", 0, 0x223D33}, /* East Asian ideograph */ + {"\xA3", 0, 0x223D39}, /* East Asian ideograph */ + {"\x8F", 0, 0x223D40}, /* East Asian ideograph */ + {"\x8E", 0, 0x223D44}, /* East Asian ideograph */ + {"\xB4", 0, 0x223D4B}, /* East Asian ideograph */ + {"\xA5", 0, 0x22697E}, /* East Asian ideograph */ + {"\xA6", 0, 0x273924}, /* East Asian ideograph */ + {"\xBC", 0, 0x284257}, /* East Asian ideograph */ + {"\xB9", 0, 0x2D4564}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B6258}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page112 = { + marc8r_9page112_flat, 0 +}; +/* PAGE 111 */ +struct yaz_iconv_trie_flat marc8r_9page111_flat[] = { + {"\x88", 0, 0x214442}, /* East Asian ideograph */ + {"\x93", 0, 0x214445}, /* East Asian ideograph */ + {"\x86", 0, 0x214446}, /* East Asian ideograph */ + {"\x82", 0, 0x214447}, /* East Asian ideograph */ + {"\x94", 0, 0x214448}, /* East Asian ideograph */ + {"\x91", 0, 0x21444B}, /* East Asian ideograph */ + {"\x90", 0, 0x21444D}, /* East Asian ideograph */ + {"\x83", 0, 0x214451}, /* East Asian ideograph */ + {"\x80", 0, 0x214452}, /* East Asian ideograph */ + {"\x85", 0, 0x214454}, /* East Asian ideograph */ + {"\xB6", 0, 0x21445A}, /* East Asian ideograph */ + {"\xBF", 0, 0x214461}, /* East Asian ideograph */ + {"\x89", 0, 0x223C30}, /* East Asian ideograph */ + {"\x8B", 0, 0x223C37}, /* East Asian ideograph */ + {"\x8E", 0, 0x223C44}, /* East Asian ideograph */ + {"\x8D", 0, 0x223C4A}, /* East Asian ideograph */ + {"\x84", 0, 0x223C4F}, /* East Asian ideograph */ + {"\x9D", 0, 0x223C55}, /* East Asian ideograph */ + {"\x9E", 0, 0x223C56}, /* East Asian ideograph */ + {"\x9A", 0, 0x223C65}, /* East Asian ideograph */ + {"\xAB", 0, 0x223C68}, /* East Asian ideograph */ + {"\xAC", 0, 0x223C69}, /* East Asian ideograph */ + {"\xB9", 0, 0x223C6B}, /* East Asian ideograph */ + {"\xBE", 0, 0x223C72}, /* East Asian ideograph */ + {"\xB2", 0, 0x223D21}, /* East Asian ideograph */ + {"\xAD", 0, 0x223D25}, /* East Asian ideograph */ + {"\xAF", 0, 0x223D34}, /* East Asian ideograph */ + {"\xB4", 0, 0x223D3B}, /* East Asian ideograph */ + {"\xB5", 0, 0x223D3C}, /* East Asian ideograph */ + {"\xB7", 0, 0x223D3F}, /* East Asian ideograph */ + {"\xBB", 0, 0x223D43}, /* East Asian ideograph */ + {"\xA2", 0, 0x27452B}, /* East Asian ideograph */ + {"\xA9", 0, 0x274546}, /* East Asian ideograph */ + {"\xA8", 0, 0x27454C}, /* East Asian ideograph */ + {"\xA6", 0, 0x274557}, /* East Asian ideograph */ + {"\xA5", 0, 0x27455B}, /* East Asian ideograph */ + {"\xA3", 0, 0x27455F}, /* East Asian ideograph */ + {"\xA7", 0, 0x274562}, /* East Asian ideograph */ + {"\xA4", 0, 0x284027}, /* East Asian ideograph */ + {"\xA1", 0, 0x284140}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D4425}, /* East Asian ideograph */ + {"\x92", 0, 0x2D444B}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D447D}, /* East Asian ideograph */ + {"\x81", 0, 0x2D5440}, /* East Asian ideograph */ + {"\x8A", 0, 0x2E3D62}, /* East Asian ideograph */ + {"\x95", 0, 0x3A4034}, /* East Asian ideograph */ + {"\x9F", 0, 0x4B4476}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B456F}, /* East Asian ideograph */ + {"\x99", 0, 0x4C3A5B}, /* East Asian ideograph */ + {"\xA0", 0, 0x4C3B22}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page111 = { + marc8r_9page111_flat, 0 +}; +/* PAGE 110 */ +struct yaz_iconv_trie_flat marc8r_9page110_flat[] = { + {"\x85", 0, 0x21443D}, /* East Asian ideograph */ + {"\xA1", 0, 0x214443}, /* East Asian ideograph */ + {"\xB8", 0, 0x214444}, /* East Asian ideograph */ + {"\x97", 0, 0x214449}, /* East Asian ideograph */ + {"\xBD", 0, 0x21444A}, /* East Asian ideograph */ + {"\xA9", 0, 0x21444C}, /* East Asian ideograph */ + {"\xB9", 0, 0x21444E}, /* East Asian ideograph */ + {"\xAA", 0, 0x214453}, /* East Asian ideograph */ + {"\xBC", 0, 0x214455}, /* East Asian ideograph */ + {"\x93", 0, 0x214456}, /* East Asian ideograph (variant of EACC 4B4456) */ + {"\x90", 0, 0x223B4E}, /* East Asian ideograph */ + {"\x83", 0, 0x223B60}, /* East Asian ideograph */ + {"\x82", 0, 0x223B6D}, /* East Asian ideograph */ + {"\x86", 0, 0x223B78}, /* East Asian ideograph */ + {"\xBE", 0, 0x223C31}, /* East Asian ideograph */ + {"\x94", 0, 0x223C36}, /* East Asian ideograph */ + {"\x9E", 0, 0x223C38}, /* East Asian ideograph */ + {"\xB3", 0, 0x223C3B}, /* East Asian ideograph */ + {"\xB1", 0, 0x223C40}, /* East Asian ideograph */ + {"\xB2", 0, 0x223C41}, /* East Asian ideograph */ + {"\xB5", 0, 0x223C42}, /* East Asian ideograph */ + {"\xBB", 0, 0x223C43}, /* East Asian ideograph */ + {"\xAB", 0, 0x223C47}, /* East Asian ideograph */ + {"\xAD", 0, 0x223C48}, /* East Asian ideograph */ + {"\xB4", 0, 0x223C58}, /* East Asian ideograph */ + {"\x92", 0, 0x223C59}, /* East Asian ideograph */ + {"\x9F", 0, 0x223D65}, /* East Asian ideograph */ + {"\x80", 0, 0x274469}, /* East Asian ideograph */ + {"\x96", 0, 0x27446E}, /* East Asian ideograph */ + {"\x8B", 0, 0x274471}, /* East Asian ideograph */ + {"\x88", 0, 0x274476}, /* East Asian ideograph */ + {"\xB7", 0, 0x274544}, /* East Asian ideograph */ + {"\x87", 0, 0x274547}, /* East Asian ideograph */ + {"\x91", 0, 0x274555}, /* East Asian ideograph */ + {"\x89", 0, 0x27456C}, /* East Asian ideograph */ + {"\x8F", 0, 0x27456E}, /* East Asian ideograph */ + {"\x8E", 0, 0x284333}, /* East Asian ideograph */ + {"\x8A", 0, 0x284339}, /* East Asian ideograph */ + {"\x8C", 0, 0x284345}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D4440}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D4562}, /* East Asian ideograph */ + {"\x93", 0, 0x4B4456}, /* East Asian ideograph */ + {"\x84", 0, 0x4B4537}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page110 = { + marc8r_9page110_flat, 0 +}; +/* PAGE 109 */ +struct yaz_iconv_trie_flat marc8r_9page109_flat[] = { + {"\x93", 0, 0x21442E}, /* East Asian ideograph */ + {"\xB1", 0, 0x21442F}, /* East Asian ideograph */ + {"\xBF", 0, 0x214430}, /* East Asian ideograph */ + {"\x94", 0, 0x214431}, /* East Asian ideograph */ + {"\x84", 0, 0x214432}, /* East Asian ideograph */ + {"\x90", 0, 0x214434}, /* East Asian ideograph */ + {"\x91", 0, 0x214435}, /* East Asian ideograph */ + {"\xAF", 0, 0x214436}, /* East Asian ideograph */ + {"\xA9", 0, 0x214437}, /* East Asian ideograph */ + {"\xAC", 0, 0x214439}, /* East Asian ideograph */ + {"\xA5", 0, 0x21443A}, /* East Asian ideograph */ + {"\xBA", 0, 0x21443B}, /* East Asian ideograph */ + {"\x9A", 0, 0x21443C}, /* East Asian ideograph */ + {"\x9E", 0, 0x21443E}, /* East Asian ideograph */ + {"\x8F", 0, 0x214440}, /* East Asian ideograph */ + {"\xB3", 0, 0x214441}, /* East Asian ideograph */ + {"\xB4", 0, 0x214450}, /* East Asian ideograph */ + {"\xB9", 0, 0x223B44}, /* East Asian ideograph */ + {"\xBC", 0, 0x223B4C}, /* East Asian ideograph */ + {"\x88", 0, 0x223B51}, /* East Asian ideograph */ + {"\x8C", 0, 0x223B54}, /* East Asian ideograph */ + {"\x85", 0, 0x223B58}, /* East Asian ideograph */ + {"\xB8", 0, 0x223B61}, /* East Asian ideograph */ + {"\x98", 0, 0x223B63}, /* East Asian ideograph */ + {"\xA4", 0, 0x223B6F}, /* East Asian ideograph */ + {"\x99", 0, 0x223B70}, /* East Asian ideograph */ + {"\x9B", 0, 0x223B71}, /* East Asian ideograph */ + {"\x9F", 0, 0x223B74}, /* East Asian ideograph */ + {"\xB7", 0, 0x223B75}, /* East Asian ideograph */ + {"\xB6", 0, 0x223B7A}, /* East Asian ideograph */ + {"\xAE", 0, 0x223B7C}, /* East Asian ideograph */ + {"\x82", 0, 0x223C23}, /* East Asian ideograph */ + {"\xA3", 0, 0x223C24}, /* East Asian ideograph */ + {"\x8A", 0, 0x223C26}, /* East Asian ideograph */ + {"\x8E", 0, 0x223C28}, /* East Asian ideograph */ + {"\xA2", 0, 0x223C29}, /* East Asian ideograph */ + {"\xB2", 0, 0x223C2A}, /* East Asian ideograph */ + {"\x83", 0, 0x223C2B}, /* East Asian ideograph */ + {"\x9D", 0, 0x223C2D}, /* East Asian ideograph */ + {"\xA7", 0, 0x223C2F}, /* East Asian ideograph */ + {"\xA0", 0, 0x274563}, /* East Asian ideograph */ + {"\x9C", 0, 0x274565}, /* East Asian ideograph */ + {"\xBD", 0, 0x28405E}, /* East Asian ideograph */ + {"\xB0", 0, 0x2D3931}, /* East Asian ideograph */ + {"\x86", 0, 0x2D4039}, /* East Asian ideograph */ + {"\xBE", 0, 0x2D4437}, /* East Asian ideograph */ + {"\x92", 0, 0x33485E}, /* East Asian ideograph */ + {"\x81", 0, 0x335445}, /* East Asian ideograph */ + {"\x83", 0, 0x4B3C2B}, /* East Asian ideograph (Version J extension) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page109 = { + marc8r_9page109_flat, 0 +}; +/* PAGE 108 */ +struct yaz_iconv_trie_dir marc8r_9page108_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x2D442D} /* East Asian ideograph */, + {0, 0, 0x274526} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x274539} /* East Asian ideograph */, + {0, 0, 0x223A7C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x214421} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21437E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21437C} /* East Asian ideograph */, + {0, 0, 0x223B49} /* East Asian ideograph */, + {0, 0, 0x223B48} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x223B2E} /* East Asian ideograph */, + {0, 0, 0x21442B} /* East Asian ideograph */, + {0, 0, 0x223B25} /* East Asian ideograph */, + {0, 0, 0x223B22} /* East Asian ideograph */, + {0, 0, 0x223A75} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21437D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x214424} /* East Asian ideograph */, + {0, 0, 0x4C3B31} /* East Asian ideograph */, + {0, 0, 0x223B26} /* East Asian ideograph */, + {0, 0, 0x21442A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x214428} /* East Asian ideograph */, + {0, 0, 0x214423} /* East Asian ideograph */, + {0, 0, 0x27454F} /* East Asian ideograph */, + {0, 0, 0x223A7A} /* East Asian ideograph */, + {0, 0, 0x223B3B} /* East Asian ideograph */, + {0, 0, 0x223B3F} /* East Asian ideograph */, + {0, 0, 0x274549} /* East Asian ideograph */, + {0, 0, 0x27447A} /* East Asian ideograph */, + {0, 0, 0x223B28} /* East Asian ideograph */, + {0, 0, 0x284340} /* East Asian ideograph */, + {0, 0, 0x4C4345} /* East Asian ideograph */, + {0, 0, 0x283D30} /* East Asian ideograph */, + {0, 0, 0x283D6E} /* East Asian ideograph */, + {0, 0, 0x4B442D} /* East Asian ideograph */, + {0, 0, 0x274540} /* East Asian ideograph */, + {0, 0, 0x27452F} /* East Asian ideograph */, + {0, 0, 0x223B39} /* East Asian ideograph */, + {0, 0, 0x274468} /* East Asian ideograph */, + {0, 0, 0x223B79} /* East Asian ideograph */, + {0, 0, 0x214433} /* East Asian ideograph */, + {0, 0, 0x223B5F} /* East Asian ideograph */, + {0, 0, 0x3A3B7D} /* East Asian ideograph */, + {0, 0, 0x223B7E} /* East Asian ideograph */, + {0, 0, 0x223B77} /* East Asian ideograph */, + {0, 0, 0x2D4049} /* East Asian ideograph */, + {0, 0, 0x223B72} /* East Asian ideograph */, + {0, 0, 0x214438} /* East Asian ideograph */, + {0, 0, 0x223B64} /* East Asian ideograph */, + {0, 0, 0x21443F} /* East Asian ideograph */, + {0, 0, 0x223C21} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x223B5C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page108 = { + 0, marc8r_9page108_dir +}; +/* PAGE 107 */ +struct yaz_iconv_trie_flat marc8r_9page107_flat[] = { + {"\x9E", 0, 0x214371}, /* East Asian ideograph */ + {"\x91", 0, 0x214372}, /* East Asian ideograph */ + {"\x8E", 0, 0x214373}, /* East Asian ideograph */ + {"\x9C", 0, 0x214374}, /* East Asian ideograph */ + {"\x90", 0, 0x214375}, /* East Asian ideograph */ + {"\x96", 0, 0x214376}, /* East Asian ideograph */ + {"\x9F", 0, 0x214377}, /* East Asian ideograph */ + {"\x8F", 0, 0x214378}, /* East Asian ideograph */ + {"\x89", 0, 0x214379}, /* East Asian ideograph */ + {"\xAD", 0, 0x21437B}, /* East Asian ideograph */ + {"\xB7", 0, 0x214422}, /* East Asian ideograph */ + {"\xAF", 0, 0x214425}, /* East Asian ideograph */ + {"\xB1", 0, 0x214426}, /* East Asian ideograph */ + {"\xB3", 0, 0x214427}, /* East Asian ideograph */ + {"\xB5", 0, 0x214429}, /* East Asian ideograph */ + {"\xBE", 0, 0x21442D}, /* East Asian ideograph */ + {"\x97", 0, 0x223A58}, /* East Asian ideograph */ + {"\x85", 0, 0x223A5B}, /* East Asian ideograph */ + {"\x87", 0, 0x223A5C}, /* East Asian ideograph */ + {"\x9D", 0, 0x223A60}, /* East Asian ideograph */ + {"\x95", 0, 0x223A61}, /* East Asian ideograph */ + {"\x8C", 0, 0x223A66}, /* East Asian ideograph */ + {"\x99", 0, 0x223A67}, /* East Asian ideograph */ + {"\x88", 0, 0x223A68}, /* East Asian ideograph */ + {"\xA3", 0, 0x223A6B}, /* East Asian ideograph */ + {"\x93", 0, 0x223A6E}, /* East Asian ideograph */ + {"\x8A", 0, 0x223A71}, /* East Asian ideograph */ + {"\xBC", 0, 0x223A78}, /* East Asian ideograph */ + {"\xBB", 0, 0x223B21}, /* East Asian ideograph */ + {"\xB6", 0, 0x223B23}, /* East Asian ideograph */ + {"\xB2", 0, 0x223B30}, /* East Asian ideograph */ + {"\xAA", 0, 0x223B32}, /* East Asian ideograph */ + {"\xA5", 0, 0x27314C}, /* East Asian ideograph */ + {"\xB0", 0, 0x273241}, /* East Asian ideograph */ + {"\xA1", 0, 0x274463}, /* East Asian ideograph */ + {"\xA8", 0, 0x27452A}, /* East Asian ideograph */ + {"\x83", 0, 0x274570}, /* East Asian ideograph */ + {"\x80", 0, 0x27463B}, /* East Asian ideograph */ + {"\xBF", 0, 0x275E65}, /* East Asian ideograph */ + {"\x82", 0, 0x275F4B}, /* East Asian ideograph */ + {"\xBE", 0, 0x276163}, /* East Asian ideograph (duplicate simplified) */ + {"\xA9", 0, 0x283F5C}, /* East Asian ideograph */ + {"\x86", 0, 0x2D4461}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D453A}, /* East Asian ideograph */ + {"\x81", 0, 0x4C3A55}, /* East Asian ideograph */ + {"\xA4", 0, 0x4C3B60}, /* East Asian ideograph */ + {"\xA2", 0, 0x694C5D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page107 = { + marc8r_9page107_flat, 0 +}; +/* PAGE 106 */ +struct yaz_iconv_trie_flat marc8r_9page106_flat[] = { + {"\x91", 0, 0x21433A}, /* East Asian ideograph */ + {"\x97", 0, 0x21433E}, /* East Asian ideograph */ + {"\x87", 0, 0x21433F}, /* East Asian ideograph */ + {"\x89", 0, 0x214340}, /* East Asian ideograph */ + {"\x88", 0, 0x214341}, /* East Asian ideograph */ + {"\x96", 0, 0x214342}, /* East Asian ideograph */ + {"\xA2", 0, 0x214343}, /* East Asian ideograph */ + {"\xAB", 0, 0x214344}, /* East Asian ideograph */ + {"\xB4", 0, 0x214345}, /* East Asian ideograph */ + {"\xAE", 0, 0x214346}, /* East Asian ideograph */ + {"\xB9", 0, 0x21434A}, /* East Asian ideograph */ + {"\x84", 0, 0x223870}, /* East Asian ideograph */ + {"\x8C", 0, 0x223871}, /* East Asian ideograph */ + {"\x93", 0, 0x223872}, /* East Asian ideograph */ + {"\x8B", 0, 0x223875}, /* East Asian ideograph */ + {"\x90", 0, 0x223876}, /* East Asian ideograph */ + {"\x94", 0, 0x223879}, /* East Asian ideograph */ + {"\x8A", 0, 0x22387A}, /* East Asian ideograph */ + {"\x98", 0, 0x22387C}, /* East Asian ideograph */ + {"\x8D", 0, 0x22387D}, /* East Asian ideograph */ + {"\xA0", 0, 0x22392A}, /* East Asian ideograph */ + {"\x9D", 0, 0x223932}, /* East Asian ideograph */ + {"\xB2", 0, 0x22393A}, /* East Asian ideograph */ + {"\xB5", 0, 0x223940}, /* East Asian ideograph */ + {"\xAA", 0, 0x223941}, /* East Asian ideograph */ + {"\xAC", 0, 0x223943}, /* East Asian ideograph */ + {"\xB1", 0, 0x223947}, /* East Asian ideograph */ + {"\xBE", 0, 0x22394F}, /* East Asian ideograph */ + {"\xBB", 0, 0x22395A}, /* East Asian ideograph */ + {"\x82", 0, 0x274344}, /* East Asian ideograph */ + {"\xA7", 0, 0x27434B}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D4329}, /* East Asian ideograph */ + {"\x81", 0, 0x2D4348}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D4349}, /* East Asian ideograph */ + {"\xA8", 0, 0x4B4347}, /* East Asian ideograph */ + {"\xB8", 0, 0x4B4D73}, /* East Asian ideograph */ + {"\x83", 0, 0x695A73}, /* East Asian ideograph */ + {"\xBC", 0, 0x695A7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page106 = { + marc8r_9page106_flat, 0 +}; +/* PAGE 105 */ +struct yaz_iconv_trie_flat marc8r_9page105_flat[] = { + {"\x8F", 0, 0x21432C}, /* East Asian ideograph */ + {"\x82", 0, 0x21432D}, /* East Asian ideograph */ + {"\x92", 0, 0x21432E}, /* East Asian ideograph */ + {"\x89", 0, 0x21432F}, /* East Asian ideograph */ + {"\x83", 0, 0x214330}, /* East Asian ideograph */ + {"\x8C", 0, 0x214331}, /* East Asian ideograph */ + {"\x9D", 0, 0x214332}, /* East Asian ideograph */ + {"\xA4", 0, 0x214333}, /* East Asian ideograph */ + {"\xA8", 0, 0x214334}, /* East Asian ideograph */ + {"\xA6", 0, 0x214335}, /* East Asian ideograph */ + {"\x9A", 0, 0x214336}, /* East Asian ideograph */ + {"\xAF", 0, 0x214337}, /* East Asian ideograph */ + {"\xAE", 0, 0x214338}, /* East Asian ideograph */ + {"\xB4", 0, 0x214339}, /* East Asian ideograph (variant of EACC 4B4339) */ + {"\xB0", 0, 0x21433B}, /* East Asian ideograph */ + {"\xB6", 0, 0x21433C}, /* East Asian ideograph */ + {"\xBA", 0, 0x21433D}, /* East Asian ideograph */ + {"\x85", 0, 0x223831}, /* East Asian ideograph */ + {"\x9F", 0, 0x223832}, /* East Asian ideograph */ + {"\xA5", 0, 0x22383D}, /* East Asian ideograph */ + {"\x9C", 0, 0x22383E}, /* East Asian ideograph */ + {"\xA1", 0, 0x22383F}, /* East Asian ideograph */ + {"\x9B", 0, 0x223848}, /* East Asian ideograph */ + {"\x99", 0, 0x223849}, /* East Asian ideograph */ + {"\xA7", 0, 0x22384A}, /* East Asian ideograph */ + {"\x9E", 0, 0x22384C}, /* East Asian ideograph */ + {"\x97", 0, 0x22384D}, /* East Asian ideograph */ + {"\xBE", 0, 0x223850}, /* East Asian ideograph */ + {"\xAC", 0, 0x223851}, /* East Asian ideograph */ + {"\xB8", 0, 0x22385A}, /* East Asian ideograph */ + {"\xB3", 0, 0x223860}, /* East Asian ideograph */ + {"\xAD", 0, 0x223866}, /* East Asian ideograph */ + {"\xB7", 0, 0x223868}, /* East Asian ideograph */ + {"\x96", 0, 0x274340}, /* East Asian ideograph */ + {"\x95", 0, 0x274341}, /* East Asian ideograph */ + {"\x93", 0, 0x274348}, /* East Asian ideograph */ + {"\x94", 0, 0x28395C}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D433B}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D433E}, /* East Asian ideograph */ + {"\x81", 0, 0x2F5E7D}, /* East Asian ideograph */ + {"\x8B", 0, 0x33432F}, /* East Asian ideograph */ + {"\x84", 0, 0x394330}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B4339}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page105 = { + marc8r_9page105_flat, 0 +}; +/* PAGE 104 */ +struct yaz_iconv_trie_flat marc8r_9page104_flat[] = { + {"\x86", 0, 0x21427B}, /* East Asian ideograph */ + {"\x94", 0, 0x21427C}, /* East Asian ideograph */ + {"\x8C", 0, 0x21427D}, /* East Asian ideograph */ + {"\x80", 0, 0x21427E}, /* East Asian ideograph */ + {"\x8E", 0, 0x214321}, /* East Asian ideograph */ + {"\x93", 0, 0x214322}, /* East Asian ideograph */ + {"\x82", 0, 0x214323}, /* East Asian ideograph */ + {"\x8F", 0, 0x214324}, /* East Asian ideograph */ + {"\xA5", 0, 0x214325}, /* East Asian ideograph */ + {"\xA7", 0, 0x214326}, /* East Asian ideograph */ + {"\xAF", 0, 0x214327}, /* East Asian ideograph */ + {"\xAD", 0, 0x214328}, /* East Asian ideograph */ + {"\xA0", 0, 0x214329}, /* East Asian ideograph */ + {"\x9F", 0, 0x21432A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21432B}, /* East Asian ideograph */ + {"\x89", 0, 0x22375A}, /* East Asian ideograph */ + {"\x8A", 0, 0x22375E}, /* East Asian ideograph */ + {"\x83", 0, 0x223764}, /* East Asian ideograph */ + {"\x91", 0, 0x22376A}, /* East Asian ideograph */ + {"\x95", 0, 0x22376B}, /* East Asian ideograph */ + {"\x84", 0, 0x22376D}, /* East Asian ideograph */ + {"\xB1", 0, 0x22376E}, /* East Asian ideograph */ + {"\xA1", 0, 0x223772}, /* East Asian ideograph */ + {"\xAC", 0, 0x223775}, /* East Asian ideograph */ + {"\xB5", 0, 0x223777}, /* East Asian ideograph */ + {"\x9E", 0, 0x22377C}, /* East Asian ideograph */ + {"\xBA", 0, 0x22377D}, /* East Asian ideograph */ + {"\xB3", 0, 0x223827}, /* East Asian ideograph */ + {"\xAB", 0, 0x223828}, /* East Asian ideograph */ + {"\xB4", 0, 0x22382B}, /* East Asian ideograph */ + {"\xA4", 0, 0x22382C}, /* East Asian ideograph */ + {"\xBC", 0, 0x274332}, /* East Asian ideograph */ + {"\xBE", 0, 0x276058}, /* East Asian ideograph */ + {"\x99", 0, 0x283955}, /* East Asian ideograph */ + {"\x87", 0, 0x2D345B}, /* East Asian ideograph */ + {"\x9A", 0, 0x2D3F24}, /* East Asian ideograph */ + {"\xB0", 0, 0x2D4327}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D4343}, /* East Asian ideograph */ + {"\x9C", 0, 0x2D5F2E}, /* East Asian ideograph */ + {"\x9D", 0, 0x2E3A26}, /* East Asian ideograph */ + {"\xBF", 0, 0x4B434D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page104 = { + marc8r_9page104_flat, 0 +}; +/* PAGE 103 */ +struct yaz_iconv_trie_flat marc8r_9page103_flat[] = { + {"\x81", 0, 0x21426A}, /* East Asian ideograph */ + {"\x85", 0, 0x21426B}, /* East Asian ideograph */ + {"\x8E", 0, 0x21426C}, /* East Asian ideograph */ + {"\x8B", 0, 0x21426D}, /* East Asian ideograph */ + {"\x8C", 0, 0x21426E}, /* East Asian ideograph */ + {"\x8F", 0, 0x21426F}, /* East Asian ideograph */ + {"\x97", 0, 0x214270}, /* East Asian ideograph */ + {"\x96", 0, 0x214271}, /* East Asian ideograph */ + {"\xA2", 0, 0x214272}, /* East Asian ideograph */ + {"\xA5", 0, 0x214273}, /* East Asian ideograph */ + {"\xA9", 0, 0x214275}, /* East Asian ideograph */ + {"\xAC", 0, 0x214276}, /* East Asian ideograph */ + {"\xAD", 0, 0x214277}, /* East Asian ideograph */ + {"\xA8", 0, 0x214278}, /* East Asian ideograph */ + {"\xB1", 0, 0x214279}, /* East Asian ideograph */ + {"\xBA", 0, 0x21427A}, /* East Asian ideograph */ + {"\x86", 0, 0x223731}, /* East Asian ideograph */ + {"\x83", 0, 0x223732}, /* East Asian ideograph */ + {"\x84", 0, 0x223733}, /* East Asian ideograph */ + {"\x82", 0, 0x223734}, /* East Asian ideograph */ + {"\x90", 0, 0x22373B}, /* East Asian ideograph */ + {"\x92", 0, 0x22373C}, /* East Asian ideograph */ + {"\x9B", 0, 0x223744}, /* East Asian ideograph */ + {"\x9C", 0, 0x223745}, /* East Asian ideograph */ + {"\x9D", 0, 0x223747}, /* East Asian ideograph */ + {"\x9F", 0, 0x223748}, /* East Asian ideograph */ + {"\xA1", 0, 0x22374A}, /* East Asian ideograph */ + {"\xA4", 0, 0x22374E}, /* East Asian ideograph */ + {"\xB4", 0, 0x223754}, /* East Asian ideograph */ + {"\xB0", 0, 0x223755}, /* East Asian ideograph */ + {"\xBB", 0, 0x22375B}, /* East Asian ideograph */ + {"\xBC", 0, 0x22375C}, /* East Asian ideograph */ + {"\xB6", 0, 0x27432D}, /* East Asian ideograph */ + {"\xB7", 0, 0x27434D}, /* East Asian ideograph */ + {"\xA0", 0, 0x274966}, /* East Asian ideograph */ + {"\xA7", 0, 0x275435}, /* East Asian ideograph */ + {"\xA6", 0, 0x27565A}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D4272}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D4277}, /* East Asian ideograph */ + {"\xAF", 0, 0x334277}, /* East Asian ideograph */ + {"\x99", 0, 0x4C3744}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page103 = { + marc8r_9page103_flat, 0 +}; +/* PAGE 102 */ +struct yaz_iconv_trie_flat marc8r_9page102_flat[] = { + {"\x82", 0, 0x214256}, /* East Asian ideograph */ + {"\x83", 0, 0x214257}, /* East Asian ideograph */ + {"\x87", 0, 0x214258}, /* East Asian ideograph */ + {"\x91", 0, 0x214259}, /* East Asian ideograph */ + {"\x90", 0, 0x21425A}, /* East Asian ideograph */ + {"\x99", 0, 0x21425C}, /* East Asian ideograph */ + {"\x9C", 0, 0x21425D}, /* East Asian ideograph */ + {"\x9F", 0, 0x21425E}, /* East Asian ideograph */ + {"\xA1", 0, 0x21425F}, /* East Asian ideograph */ + {"\xA4", 0, 0x214260}, /* East Asian ideograph */ + {"\xA5", 0, 0x214261}, /* East Asian ideograph */ + {"\xA7", 0, 0x214262}, /* East Asian ideograph */ + {"\xAC", 0, 0x214263}, /* East Asian ideograph */ + {"\xAF", 0, 0x214264}, /* East Asian ideograph */ + {"\xB0", 0, 0x214265}, /* East Asian ideograph */ + {"\xB7", 0, 0x214266}, /* East Asian ideograph */ + {"\xB9", 0, 0x214267}, /* East Asian ideograph */ + {"\xBD", 0, 0x214269}, /* East Asian ideograph */ + {"\xAB", 0, 0x214E2D}, /* East Asian ideograph */ + {"\x85", 0, 0x223664}, /* East Asian ideograph */ + {"\x8C", 0, 0x22366E}, /* East Asian ideograph */ + {"\x92", 0, 0x223670}, /* East Asian ideograph */ + {"\x95", 0, 0x223671}, /* East Asian ideograph */ + {"\x9B", 0, 0x223675}, /* East Asian ideograph */ + {"\x9D", 0, 0x223677}, /* East Asian ideograph */ + {"\xA0", 0, 0x22367A}, /* East Asian ideograph */ + {"\xA8", 0, 0x223722}, /* East Asian ideograph */ + {"\xA6", 0, 0x223723}, /* East Asian ideograph */ + {"\xAE", 0, 0x223727}, /* East Asian ideograph */ + {"\xB6", 0, 0x22372A}, /* East Asian ideograph */ + {"\xB8", 0, 0x22372C}, /* East Asian ideograph */ + {"\xBF", 0, 0x22372F}, /* East Asian ideograph */ + {"\xA9", 0, 0x274263}, /* East Asian ideograph */ + {"\xAD", 0, 0x274266}, /* East Asian ideograph */ + {"\x97", 0, 0x276167}, /* East Asian ideograph */ + {"\x8E", 0, 0x27627E}, /* East Asian ideograph */ + {"\x93", 0, 0x283671}, /* East Asian ideograph */ + {"\x88", 0, 0x2D3A60}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D627E}, /* East Asian ideograph */ + {"\xB5", 0, 0x2E3729}, /* East Asian ideograph */ + {"\x8D", 0, 0x335830}, /* East Asian ideograph */ + {"\x89", 0, 0x33627D}, /* East Asian ideograph */ + {"\xBC", 0, 0x393052}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page102 = { + marc8r_9page102_flat, 0 +}; +/* PAGE 101 */ +struct yaz_iconv_trie_flat marc8r_9page101_flat[] = { + {"\x85", 0, 0x214242}, /* East Asian ideograph */ + {"\x88", 0, 0x214243}, /* East Asian ideograph */ + {"\x8E", 0, 0x214244}, /* East Asian ideograph */ + {"\x96", 0, 0x214245}, /* East Asian ideograph */ + {"\x91", 0, 0x214246}, /* East Asian ideograph */ + {"\x97", 0, 0x214247}, /* East Asian ideograph */ + {"\x9D", 0, 0x214248}, /* East Asian ideograph */ + {"\x98", 0, 0x214249}, /* East Asian ideograph */ + {"\x8F", 0, 0x21424A}, /* East Asian ideograph */ + {"\xA6", 0, 0x21424B}, /* East Asian ideograph */ + {"\xA2", 0, 0x21424C}, /* East Asian ideograph */ + {"\xA3", 0, 0x21424D}, /* East Asian ideograph */ + {"\x9E", 0, 0x21424E}, /* East Asian ideograph */ + {"\xAC", 0, 0x214250}, /* East Asian ideograph */ + {"\xB2", 0, 0x214251}, /* East Asian ideograph */ + {"\xB5", 0, 0x214252}, /* East Asian ideograph */ + {"\xB7", 0, 0x214253}, /* East Asian ideograph */ + {"\xB8", 0, 0x214254}, /* East Asian ideograph */ + {"\xB4", 0, 0x214255}, /* East Asian ideograph */ + {"\x81", 0, 0x22357C}, /* East Asian ideograph */ + {"\x82", 0, 0x223634}, /* East Asian ideograph */ + {"\x89", 0, 0x223636}, /* East Asian ideograph */ + {"\x94", 0, 0x22363E}, /* East Asian ideograph */ + {"\x95", 0, 0x22363F}, /* East Asian ideograph */ + {"\xA7", 0, 0x223645}, /* East Asian ideograph */ + {"\xA1", 0, 0x223647}, /* East Asian ideograph */ + {"\xAD", 0, 0x22364F}, /* East Asian ideograph */ + {"\xBA", 0, 0x223654}, /* East Asian ideograph */ + {"\xAB", 0, 0x226055}, /* East Asian ideograph */ + {"\x8C", 0, 0x274252}, /* East Asian ideograph */ + {"\xB0", 0, 0x274254}, /* East Asian ideograph */ + {"\x9B", 0, 0x274256}, /* East Asian ideograph */ + {"\xBF", 0, 0x2E3654}, /* East Asian ideograph */ + {"\x99", 0, 0x334244}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page101 = { + marc8r_9page101_flat, 0 +}; +/* PAGE 100 */ +struct yaz_iconv_trie_flat marc8r_9page100_flat[] = { + {"\x86", 0, 0x21422C}, /* East Asian ideograph */ + {"\x80", 0, 0x21422D}, /* East Asian ideograph */ + {"\x8F", 0, 0x214231}, /* East Asian ideograph */ + {"\x98", 0, 0x214232}, /* East Asian ideograph */ + {"\x94", 0, 0x214233}, /* East Asian ideograph */ + {"\x99", 0, 0x214234}, /* East Asian ideograph */ + {"\x9D", 0, 0x214235}, /* East Asian ideograph */ + {"\x9C", 0, 0x214236}, /* East Asian ideograph */ + {"\xA3", 0, 0x214237}, /* East Asian ideograph */ + {"\xA4", 0, 0x214238}, /* East Asian ideograph */ + {"\xAB", 0, 0x214239}, /* East Asian ideograph */ + {"\xAA", 0, 0x21423A}, /* East Asian ideograph */ + {"\xAC", 0, 0x21423B}, /* East Asian ideograph */ + {"\xAF", 0, 0x21423C}, /* East Asian ideograph */ + {"\xB6", 0, 0x21423D}, /* East Asian ideograph */ + {"\xB9", 0, 0x21423E}, /* East Asian ideograph */ + {"\xBB", 0, 0x21423F}, /* East Asian ideograph */ + {"\xBE", 0, 0x214240}, /* East Asian ideograph */ + {"\xBF", 0, 0x214241}, /* East Asian ideograph */ + {"\xB5", 0, 0x217874}, /* East Asian ideograph */ + {"\x84", 0, 0x223546}, /* East Asian ideograph */ + {"\x88", 0, 0x22354F}, /* East Asian ideograph */ + {"\x89", 0, 0x223553}, /* East Asian ideograph */ + {"\x9A", 0, 0x223559}, /* East Asian ideograph */ + {"\x96", 0, 0x22355B}, /* East Asian ideograph */ + {"\x9B", 0, 0x223561}, /* East Asian ideograph */ + {"\xA7", 0, 0x223569}, /* East Asian ideograph */ + {"\xA2", 0, 0x22356D}, /* East Asian ideograph */ + {"\xA9", 0, 0x22356F}, /* East Asian ideograph */ + {"\xA5", 0, 0x223572}, /* East Asian ideograph */ + {"\xAE", 0, 0x223577}, /* East Asian ideograph */ + {"\xB8", 0, 0x22362C}, /* East Asian ideograph */ + {"\x92", 0, 0x28356D}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D416E}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D525D}, /* East Asian ideograph */ + {"\x9F", 0, 0x2E3144}, /* East Asian ideograph */ + {"\xA8", 0, 0x2E3328}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page100 = { + marc8r_9page100_flat, 0 +}; +/* PAGE 99 */ +struct yaz_iconv_trie_flat marc8r_9page99_flat[] = { + {"\x85", 0, 0x214173}, /* East Asian ideograph */ + {"\x81", 0, 0x214174}, /* East Asian ideograph */ + {"\x98", 0, 0x214175}, /* East Asian ideograph */ + {"\x8A", 0, 0x214176}, /* East Asian ideograph */ + {"\x82", 0, 0x214178}, /* East Asian ideograph */ + {"\x8B", 0, 0x21417A}, /* East Asian ideograph */ + {"\x8D", 0, 0x21417B}, /* East Asian ideograph */ + {"\x9A", 0, 0x21417C}, /* East Asian ideograph */ + {"\x84", 0, 0x21417D}, /* East Asian ideograph */ + {"\x87", 0, 0x21417E}, /* East Asian ideograph */ + {"\x8E", 0, 0x214221}, /* East Asian ideograph */ + {"\x94", 0, 0x214222}, /* East Asian ideograph */ + {"\x92", 0, 0x214223}, /* East Asian ideograph */ + {"\xA0", 0, 0x214225}, /* East Asian ideograph */ + {"\xB0", 0, 0x214226}, /* East Asian ideograph */ + {"\xA6", 0, 0x214227}, /* East Asian ideograph */ + {"\xAC", 0, 0x214228}, /* East Asian ideograph */ + {"\xB1", 0, 0x214229}, /* East Asian ideograph */ + {"\xB4", 0, 0x21422A}, /* East Asian ideograph */ + {"\xB2", 0, 0x21422B}, /* East Asian ideograph */ + {"\xBE", 0, 0x21422E}, /* East Asian ideograph */ + {"\xBB", 0, 0x21422F}, /* East Asian ideograph */ + {"\xBA", 0, 0x214230}, /* East Asian ideograph */ + {"\x97", 0, 0x22346A}, /* East Asian ideograph */ + {"\x93", 0, 0x22346C}, /* East Asian ideograph */ + {"\x90", 0, 0x223475}, /* East Asian ideograph */ + {"\xAF", 0, 0x22352A}, /* East Asian ideograph */ + {"\xA1", 0, 0x22352D}, /* East Asian ideograph */ + {"\xA5", 0, 0x22352E}, /* East Asian ideograph */ + {"\xAB", 0, 0x223531}, /* East Asian ideograph */ + {"\xA2", 0, 0x223533}, /* East Asian ideograph */ + {"\xAD", 0, 0x223536}, /* East Asian ideograph */ + {"\xA4", 0, 0x223538}, /* East Asian ideograph */ + {"\xB7", 0, 0x223542}, /* East Asian ideograph */ + {"\xBD", 0, 0x22354B}, /* East Asian ideograph */ + {"\x9E", 0, 0x27422F}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D4153}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D5434}, /* East Asian ideograph */ + {"\x80", 0, 0x3A2F7C}, /* East Asian ideograph */ + {"\xB6", 0, 0x695A31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page99 = { + marc8r_9page99_flat, 0 +}; +/* PAGE 98 */ +struct yaz_iconv_trie_flat marc8r_9page98_flat[] = { + {"\x9E", 0, 0x214162}, /* East Asian ideograph */ + {"\xA4", 0, 0x214163}, /* East Asian ideograph */ + {"\x87", 0, 0x214164}, /* East Asian ideograph */ + {"\x88", 0, 0x214165}, /* East Asian ideograph */ + {"\xA5", 0, 0x214166}, /* East Asian ideograph */ + {"\xB0", 0, 0x214167}, /* East Asian ideograph */ + {"\x93", 0, 0x214168}, /* East Asian ideograph */ + {"\x95", 0, 0x214169}, /* East Asian ideograph */ + {"\x92", 0, 0x21416A}, /* East Asian ideograph */ + {"\xA9", 0, 0x21416B}, /* East Asian ideograph */ + {"\x91", 0, 0x21416C}, /* East Asian ideograph */ + {"\xAE", 0, 0x21416D}, /* East Asian ideograph */ + {"\xB2", 0, 0x21416E}, /* East Asian ideograph */ + {"\xAD", 0, 0x21416F}, /* East Asian ideograph */ + {"\x9A", 0, 0x214170}, /* East Asian ideograph */ + {"\xAB", 0, 0x214171}, /* East Asian ideograph */ + {"\xAC", 0, 0x214172}, /* East Asian ideograph */ + {"\xBB", 0, 0x214177}, /* East Asian ideograph */ + {"\xBC", 0, 0x214179}, /* East Asian ideograph */ + {"\xBF", 0, 0x214224}, /* East Asian ideograph */ + {"\x82", 0, 0x223427}, /* East Asian ideograph */ + {"\x9D", 0, 0x22343C}, /* East Asian ideograph */ + {"\x99", 0, 0x22343F}, /* East Asian ideograph */ + {"\x8F", 0, 0x223442}, /* East Asian ideograph */ + {"\x96", 0, 0x22344D}, /* East Asian ideograph */ + {"\xA2", 0, 0x22344E}, /* East Asian ideograph */ + {"\x90", 0, 0x223454}, /* East Asian ideograph */ + {"\xB6", 0, 0x22345B}, /* East Asian ideograph */ + {"\x98", 0, 0x223461}, /* East Asian ideograph */ + {"\x9F", 0, 0x223462}, /* East Asian ideograph */ + {"\xA7", 0, 0x223465}, /* East Asian ideograph */ + {"\xB3", 0, 0x223466}, /* East Asian ideograph */ + {"\xBE", 0, 0x223474}, /* East Asian ideograph */ + {"\xB5", 0, 0x27422C}, /* East Asian ideograph */ + {"\xB7", 0, 0x283542}, /* East Asian ideograph */ + {"\x84", 0, 0x28355B}, /* East Asian ideograph */ + {"\xBA", 0, 0x283561}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D4031}, /* East Asian ideograph */ + {"\x85", 0, 0x2D4122}, /* East Asian ideograph */ + {"\x83", 0, 0x2D4176}, /* East Asian ideograph */ + {"\xB9", 0, 0x4B423A}, /* East Asian ideograph */ + {"\xB8", 0, 0x4C354A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page98 = { + marc8r_9page98_flat, 0 +}; +/* PAGE 97 */ +struct yaz_iconv_trie_flat marc8r_9page97_flat[] = { + {"\x98", 0, 0x214157}, /* East Asian ideograph */ + {"\xA9", 0, 0x214158}, /* East Asian ideograph */ + {"\x94", 0, 0x214159}, /* East Asian ideograph */ + {"\x92", 0, 0x21415A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21415B}, /* East Asian ideograph */ + {"\xB8", 0, 0x21415C}, /* East Asian ideograph */ + {"\xB9", 0, 0x21415D}, /* East Asian ideograph */ + {"\xBA", 0, 0x21415E}, /* East Asian ideograph */ + {"\x9F", 0, 0x21415F}, /* East Asian ideograph */ + {"\x91", 0, 0x214160}, /* East Asian ideograph */ + {"\xA7", 0, 0x214161}, /* East Asian ideograph */ + {"\x81", 0, 0x223345}, /* East Asian ideograph */ + {"\x80", 0, 0x223353}, /* East Asian ideograph */ + {"\x9B", 0, 0x223368}, /* East Asian ideograph */ + {"\x8F", 0, 0x22336A}, /* East Asian ideograph */ + {"\xAB", 0, 0x22336C}, /* East Asian ideograph */ + {"\xB6", 0, 0x22336F}, /* East Asian ideograph */ + {"\xB4", 0, 0x223376}, /* East Asian ideograph */ + {"\xBD", 0, 0x223378}, /* East Asian ideograph */ + {"\xB3", 0, 0x22337B}, /* East Asian ideograph */ + {"\x8E", 0, 0x223423}, /* East Asian ideograph */ + {"\xA4", 0, 0x223424}, /* East Asian ideograph */ + {"\x9E", 0, 0x223428}, /* East Asian ideograph */ + {"\xBB", 0, 0x22342C}, /* East Asian ideograph */ + {"\x9C", 0, 0x22342E}, /* East Asian ideograph */ + {"\x86", 0, 0x274230}, /* East Asian ideograph */ + {"\x84", 0, 0x274235}, /* East Asian ideograph */ + {"\x8A", 0, 0x274238}, /* East Asian ideograph */ + {"\x88", 0, 0x28352A}, /* East Asian ideograph */ + {"\x85", 0, 0x283546}, /* East Asian ideograph */ + {"\x87", 0, 0x2D4152}, /* East Asian ideograph */ + {"\x83", 0, 0x394022}, /* East Asian ideograph */ + {"\xAD", 0, 0x394042}, /* East Asian ideograph */ + {"\x82", 0, 0x4B4235}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page97 = { + marc8r_9page97_flat, 0 +}; +/* PAGE 96 */ +struct yaz_iconv_trie_flat marc8r_9page96_flat[] = { + {"\x9E", 0, 0x214149}, /* East Asian ideograph */ + {"\xAA", 0, 0x21414A}, /* East Asian ideograph */ + {"\xBE", 0, 0x21414B}, /* East Asian ideograph */ + {"\x93", 0, 0x21414C}, /* East Asian ideograph */ + {"\x8F", 0, 0x21414D}, /* East Asian ideograph */ + {"\x94", 0, 0x21414E}, /* East Asian ideograph */ + {"\x8D", 0, 0x21414F}, /* East Asian ideograph */ + {"\xAD", 0, 0x214150}, /* East Asian ideograph */ + {"\xBD", 0, 0x214151}, /* East Asian ideograph */ + {"\x96", 0, 0x214152}, /* East Asian ideograph */ + {"\x97", 0, 0x214153}, /* East Asian ideograph */ + {"\x9C", 0, 0x214154}, /* East Asian ideograph */ + {"\xB6", 0, 0x214155}, /* East Asian ideograph */ + {"\xAC", 0, 0x214156}, /* East Asian ideograph */ + {"\x92", 0, 0x22327E}, /* East Asian ideograph */ + {"\x90", 0, 0x223322}, /* East Asian ideograph */ + {"\xB4", 0, 0x223324}, /* East Asian ideograph */ + {"\x9B", 0, 0x223329}, /* East Asian ideograph */ + {"\xA0", 0, 0x22332B}, /* East Asian ideograph */ + {"\xA4", 0, 0x22332C}, /* East Asian ideograph */ + {"\xA6", 0, 0x22332F}, /* East Asian ideograph */ + {"\x8C", 0, 0x223331}, /* East Asian ideograph */ + {"\x95", 0, 0x223336}, /* East Asian ideograph */ + {"\x98", 0, 0x223337}, /* East Asian ideograph */ + {"\x8E", 0, 0x223338}, /* East Asian ideograph */ + {"\x8E", 0, 0x223339}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\xA2", 0, 0x22333B}, /* East Asian ideograph */ + {"\xA1", 0, 0x22333D}, /* East Asian ideograph */ + {"\xB0", 0, 0x223344}, /* East Asian ideograph */ + {"\xB5", 0, 0x223348}, /* East Asian ideograph */ + {"\x89", 0, 0x22334C}, /* East Asian ideograph */ + {"\x8A", 0, 0x223351}, /* East Asian ideograph */ + {"\x87", 0, 0x223359}, /* East Asian ideograph */ + {"\xBB", 0, 0x22335B}, /* East Asian ideograph */ + {"\xBF", 0, 0x22335D}, /* East Asian ideograph */ + {"\x82", 0, 0x27415F}, /* East Asian ideograph */ + {"\x81", 0, 0x274229}, /* East Asian ideograph */ + {"\x80", 0, 0x274234}, /* East Asian ideograph */ + {"\x85", 0, 0x27423A}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D4132}, /* East Asian ideograph */ + {"\xA8", 0, 0x2D4150}, /* East Asian ideograph */ + {"\x86", 0, 0x2D4539}, /* East Asian ideograph */ + {"\x8B", 0, 0x2E3028}, /* East Asian ideograph */ + {"\xA5", 0, 0x334131}, /* East Asian ideograph */ + {"\x83", 0, 0x3F516D}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B4236}, /* East Asian ideograph */ + {"\xA7", 0, 0x4B4975}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page96 = { + marc8r_9page96_flat, 0 +}; +/* PAGE 95 */ +struct yaz_iconv_trie_flat marc8r_9page95_flat[] = { + {"\x86", 0, 0x214138}, /* East Asian ideograph */ + {"\x89", 0, 0x214139}, /* East Asian ideograph */ + {"\x8D", 0, 0x21413A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21413B}, /* East Asian ideograph */ + {"\x80", 0, 0x21413C}, /* East Asian ideograph */ + {"\xA9", 0, 0x21413D}, /* East Asian ideograph */ + {"\x90", 0, 0x21413E}, /* East Asian ideograph */ + {"\x9A", 0, 0x21413F}, /* East Asian ideograph */ + {"\x96", 0, 0x214140}, /* East Asian ideograph */ + {"\xAD", 0, 0x214141}, /* East Asian ideograph */ + {"\xAE", 0, 0x214142}, /* East Asian ideograph */ + {"\x8F", 0, 0x214143}, /* East Asian ideograph */ + {"\xA3", 0, 0x214144}, /* East Asian ideograph */ + {"\xB4", 0, 0x214145}, /* East Asian ideograph */ + {"\x9B", 0, 0x214146}, /* East Asian ideograph (variant of EACC 454146) */ + {"\x92", 0, 0x214147}, /* East Asian ideograph */ + {"\xAA", 0, 0x214148}, /* East Asian ideograph */ + {"\x9E", 0, 0x223243}, /* East Asian ideograph */ + {"\xA5", 0, 0x223244}, /* East Asian ideograph */ + {"\x93", 0, 0x223247}, /* East Asian ideograph */ + {"\x83", 0, 0x223250}, /* East Asian ideograph */ + {"\xB5", 0, 0x223252}, /* East Asian ideograph */ + {"\xA6", 0, 0x223258}, /* East Asian ideograph */ + {"\xA0", 0, 0x22325B}, /* East Asian ideograph */ + {"\x95", 0, 0x22325C}, /* East Asian ideograph */ + {"\xB6", 0, 0x22325D}, /* East Asian ideograph */ + {"\xB2", 0, 0x22325E}, /* East Asian ideograph */ + {"\xB8", 0, 0x22325F}, /* East Asian ideograph */ + {"\x85", 0, 0x223266}, /* East Asian ideograph */ + {"\xB9", 0, 0x22326A}, /* East Asian ideograph */ + {"\xAB", 0, 0x223272}, /* East Asian ideograph */ + {"\x9D", 0, 0x223273}, /* East Asian ideograph */ + {"\x91", 0, 0x223276}, /* East Asian ideograph */ + {"\x84", 0, 0x223279}, /* East Asian ideograph */ + {"\x9C", 0, 0x22327A}, /* East Asian ideograph */ + {"\x97", 0, 0x22327B}, /* East Asian ideograph */ + {"\xBD", 0, 0x27423B}, /* East Asian ideograph */ + {"\xBF", 0, 0x283466}, /* East Asian ideograph */ + {"\x8E", 0, 0x2D4066}, /* East Asian ideograph */ + {"\x9B", 0, 0x454146}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page95 = { + marc8r_9page95_flat, 0 +}; +/* PAGE 94 */ +struct yaz_iconv_trie_flat marc8r_9page94_flat[] = { + {"\xA5", 0, 0x214076}, /* East Asian ideograph */ + {"\xA0", 0, 0x214078}, /* East Asian ideograph */ + {"\x96", 0, 0x214079}, /* East Asian ideograph */ + {"\xA7", 0, 0x21407A}, /* East Asian ideograph */ + {"\x83", 0, 0x21407D}, /* East Asian ideograph */ + {"\x98", 0, 0x214122}, /* East Asian ideograph */ + {"\x9B", 0, 0x214123}, /* East Asian ideograph */ + {"\xAA", 0, 0x214124}, /* East Asian ideograph */ + {"\xA9", 0, 0x214126}, /* East Asian ideograph */ + {"\x8C", 0, 0x214127}, /* East Asian ideograph */ + {"\x89", 0, 0x214128}, /* East Asian ideograph */ + {"\xA2", 0, 0x214129}, /* East Asian ideograph */ + {"\x99", 0, 0x21412A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21412B}, /* East Asian ideograph */ + {"\x88", 0, 0x21412C}, /* East Asian ideograph */ + {"\xAC", 0, 0x21412D}, /* East Asian ideograph */ + {"\x92", 0, 0x21412F}, /* East Asian ideograph */ + {"\xA3", 0, 0x214130}, /* East Asian ideograph */ + {"\x8F", 0, 0x214132}, /* East Asian ideograph */ + {"\xA8", 0, 0x214133}, /* East Asian ideograph */ + {"\x84", 0, 0x214136}, /* East Asian ideograph */ + {"\x80", 0, 0x214137}, /* East Asian ideograph */ + {"\xB6", 0, 0x22316A}, /* East Asian ideograph */ + {"\x82", 0, 0x22316B}, /* East Asian ideograph */ + {"\x9F", 0, 0x22316E}, /* East Asian ideograph */ + {"\x9E", 0, 0x223172}, /* East Asian ideograph */ + {"\x81", 0, 0x223179}, /* East Asian ideograph */ + {"\x97", 0, 0x22317B}, /* East Asian ideograph */ + {"\xAB", 0, 0x22317D}, /* East Asian ideograph */ + {"\x87", 0, 0x223225}, /* East Asian ideograph */ + {"\x8E", 0, 0x223227}, /* East Asian ideograph */ + {"\x86", 0, 0x22322A}, /* East Asian ideograph */ + {"\xAF", 0, 0x223230}, /* East Asian ideograph */ + {"\xB1", 0, 0x223237}, /* East Asian ideograph */ + {"\xB0", 0, 0x223238}, /* East Asian ideograph */ + {"\xAE", 0, 0x223239}, /* East Asian ideograph */ + {"\x90", 0, 0x22323B}, /* East Asian ideograph */ + {"\xAD", 0, 0x22323D}, /* East Asian ideograph */ + {"\xBD", 0, 0x22324F}, /* East Asian ideograph */ + {"\xBE", 0, 0x223270}, /* East Asian ideograph */ + {"\xB4", 0, 0x274160}, /* East Asian ideograph */ + {"\xB3", 0, 0x27417D}, /* East Asian ideograph */ + {"\xB7", 0, 0x27422B}, /* East Asian ideograph */ + {"\xBA", 0, 0x28342C}, /* East Asian ideograph */ + {"\xBC", 0, 0x28342E}, /* East Asian ideograph */ + {"\xB8", 0, 0x283457}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D4141}, /* East Asian ideograph */ + {"\x8A", 0, 0x3F404F}, /* East Asian ideograph */ + {"\xB5", 0, 0x69595E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page94 = { + marc8r_9page94_flat, 0 +}; +/* PAGE 93 */ +struct yaz_iconv_trie_flat marc8r_9page93_flat[] = { + {"\x82", 0, 0x214069}, /* East Asian ideograph */ + {"\x95", 0, 0x21406B}, /* East Asian ideograph */ + {"\x8E", 0, 0x21406E}, /* East Asian ideograph */ + {"\x8F", 0, 0x21406F}, /* East Asian ideograph */ + {"\x90", 0, 0x214070}, /* East Asian ideograph */ + {"\x89", 0, 0x214071}, /* East Asian ideograph */ + {"\xA9", 0, 0x214077}, /* East Asian ideograph */ + {"\xB2", 0, 0x21407B}, /* East Asian ideograph */ + {"\xB7", 0, 0x21407C}, /* East Asian ideograph */ + {"\xAB", 0, 0x21407E}, /* East Asian ideograph */ + {"\xA7", 0, 0x214121}, /* East Asian ideograph */ + {"\xB1", 0, 0x214125}, /* East Asian ideograph */ + {"\xB6", 0, 0x214131}, /* East Asian ideograph */ + {"\xBB", 0, 0x214134}, /* East Asian ideograph */ + {"\xA8", 0, 0x214135}, /* East Asian ideograph (variant of EACC 4B4135) */ + {"\xA0", 0, 0x223132}, /* East Asian ideograph */ + {"\x85", 0, 0x223142}, /* East Asian ideograph */ + {"\x83", 0, 0x223144}, /* East Asian ideograph */ + {"\x93", 0, 0x223147}, /* East Asian ideograph */ + {"\xA4", 0, 0x223148}, /* East Asian ideograph */ + {"\x84", 0, 0x22314A}, /* East Asian ideograph */ + {"\x97", 0, 0x223158}, /* East Asian ideograph */ + {"\x98", 0, 0x22315B}, /* East Asian ideograph */ + {"\x8B", 0, 0x22315C}, /* East Asian ideograph */ + {"\x94", 0, 0x22315F}, /* East Asian ideograph */ + {"\xBD", 0, 0x223168}, /* East Asian ideograph */ + {"\xAC", 0, 0x22316C}, /* East Asian ideograph */ + {"\xBF", 0, 0x223173}, /* East Asian ideograph */ + {"\xBA", 0, 0x223226}, /* East Asian ideograph */ + {"\xB5", 0, 0x22322F}, /* East Asian ideograph */ + {"\xBC", 0, 0x22323A}, /* East Asian ideograph */ + {"\xAD", 0, 0x223241}, /* East Asian ideograph */ + {"\x9F", 0, 0x27414F}, /* East Asian ideograph */ + {"\xA3", 0, 0x274153}, /* East Asian ideograph */ + {"\x9E", 0, 0x274165}, /* East Asian ideograph */ + {"\xAE", 0, 0x27417C}, /* East Asian ideograph */ + {"\xA1", 0, 0x274224}, /* East Asian ideograph */ + {"\x86", 0, 0x27513D}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D3324}, /* East Asian ideograph */ + {"\x9C", 0, 0x2D4154}, /* East Asian ideograph */ + {"\x8D", 0, 0x2E2F7C}, /* East Asian ideograph */ + {"\xB4", 0, 0x33516D}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B3324}, /* East Asian ideograph (variant of EACC 2D3324) */ + {"\xA8", 0, 0x4B4135}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B4146}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page93 = { + marc8r_9page93_flat, 0 +}; +/* PAGE 92 */ +struct yaz_iconv_trie_flat marc8r_9page92_flat[] = { + {"\x89", 0, 0x214057}, /* East Asian ideograph */ + {"\x96", 0, 0x214058}, /* East Asian ideograph */ + {"\x88", 0, 0x21405B}, /* East Asian ideograph */ + {"\x81", 0, 0x21405D}, /* East Asian ideograph */ + {"\x87", 0, 0x214061}, /* East Asian ideograph */ + {"\x91", 0, 0x214064}, /* East Asian ideograph */ + {"\xAA", 0, 0x21406A}, /* East Asian ideograph */ + {"\xBE", 0, 0x21406C}, /* East Asian ideograph */ + {"\xAF", 0, 0x21406D}, /* East Asian ideograph */ + {"\xAB", 0, 0x214073}, /* East Asian ideograph */ + {"\xA8", 0, 0x214074}, /* East Asian ideograph */ + {"\xBA", 0, 0x214075}, /* East Asian ideograph */ + {"\xBD", 0, 0x21412E}, /* East Asian ideograph */ + {"\x8D", 0, 0x223072}, /* East Asian ideograph */ + {"\x8C", 0, 0x223131}, /* East Asian ideograph */ + {"\xB1", 0, 0x22313A}, /* East Asian ideograph */ + {"\xB5", 0, 0x223145}, /* East Asian ideograph */ + {"\xB6", 0, 0x223149}, /* East Asian ideograph */ + {"\xB9", 0, 0x223154}, /* East Asian ideograph */ + {"\xBC", 0, 0x22315A}, /* East Asian ideograph */ + {"\x9F", 0, 0x27406C}, /* East Asian ideograph */ + {"\x82", 0, 0x274123}, /* East Asian ideograph */ + {"\xA5", 0, 0x274142}, /* East Asian ideograph */ + {"\x9A", 0, 0x27415B}, /* East Asian ideograph */ + {"\xA0", 0, 0x274168}, /* East Asian ideograph */ + {"\x9E", 0, 0x274177}, /* East Asian ideograph */ + {"\xA1", 0, 0x27417A}, /* East Asian ideograph */ + {"\xA4", 0, 0x274225}, /* East Asian ideograph */ + {"\x9B", 0, 0x274237}, /* East Asian ideograph */ + {"\xA2", 0, 0x283462}, /* East Asian ideograph */ + {"\xB2", 0, 0x2E313A}, /* East Asian ideograph */ + {"\x8E", 0, 0x2E337B}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B412A}, /* East Asian ideograph */ + {"\xBF", 0, 0x4B4147}, /* East Asian ideograph */ + {"\x99", 0, 0x4B5434}, /* East Asian ideograph */ + {"\x9D", 0, 0x4C3474}, /* East Asian ideograph */ + {"\xA7", 0, 0x69594B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page92 = { + marc8r_9page92_flat, 0 +}; +/* PAGE 91 */ +struct yaz_iconv_trie_dir marc8r_9page91_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21403F} /* East Asian ideograph */, + {0, 0, 0x22306A} /* East Asian ideograph */, + {0, 0, 0x21403A} /* East Asian ideograph */, + {0, 0, 0x274222} /* East Asian ideograph */, + {0, 0, 0x214056} /* East Asian ideograph */, + {0, 0, 0x21404E} /* East Asian ideograph */, + {0, 0, 0x21404A} /* East Asian ideograph */, + {0, 0, 0x214039} /* East Asian ideograph */, + {0, 0, 0x2D4171} /* East Asian ideograph */, + {0, 0, 0x214045} /* East Asian ideograph */, + {0, 0, 0x21403B} /* East Asian ideograph */, + {0, 0, 0x214052} /* East Asian ideograph */, + {0, 0, 0x214054} /* East Asian ideograph */, + {0, 0, 0x2D4067} /* East Asian ideograph */, + {0, 0, 0x214049} /* East Asian ideograph (variant of EACC 4B4049) */, + {0, 0, 0x223057} /* East Asian ideograph */, + {0, 0, 0x214041} /* East Asian ideograph */, + {0, 0, 0x214042} /* East Asian ideograph */, + {0, 0, 0x214046} /* East Asian ideograph */, + {0, 0, 0x334050} /* East Asian ideograph */, + {0, 0, 0x214050} /* East Asian ideograph */, + {0, 0, 0x214055} /* East Asian ideograph */, + {0, 0, 0x214051} /* East Asian ideograph */, + {0, 0, 0x21404B} /* East Asian ideograph */, + {0, 0, 0x21404C} /* East Asian ideograph */, + {0, 0, 0x214043} /* East Asian ideograph */, + {0, 0, 0x21403D} /* East Asian ideograph */, + {0, 0, 0x4B403D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x274228} /* East Asian ideograph */, + {0, 0, 0x39417C} /* East Asian ideograph */, + {0, 0, 0x33422A} /* East Asian ideograph */, + {0, 0, 0x274231} /* East Asian ideograph */, + {0, 0, 0x27413C} /* East Asian ideograph */, + {0, 0, 0x223061} /* East Asian ideograph */, + {0, 0, 0x274174} /* East Asian ideograph */, + {0, 0, 0x274233} /* East Asian ideograph */, + {0, 0, 0x274226} /* East Asian ideograph */, + {0, 0, 0x274166} /* East Asian ideograph */, + {0, 0, 0x27417E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x214065} /* East Asian ideograph */, + {0, 0, 0x21405C} /* East Asian ideograph */, + {0, 0, 0x21405E} /* East Asian ideograph */, + {0, 0, 0x21405F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x214062} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21405A} /* East Asian ideograph */, + {0, 0, 0x214066} /* East Asian ideograph (variant of EACC 4B4066) */, + {0, 0, 0x223125} /* East Asian ideograph */, + {0, 0, 0x223137} /* East Asian ideograph */, + {0, 0, 0x214060} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x214059} /* East Asian ideograph */, + {0, 0, 0x214063} /* East Asian ideograph */, + {0, 0, 0x2D3457} /* East Asian ideograph */, + {0, 0, 0x214067} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page91 = { + 0, marc8r_9page91_dir +}; +/* PAGE 90 */ +struct yaz_iconv_trie_flat marc8r_9page90_flat[] = { + {"\x96", 0, 0x214025}, /* East Asian ideograph */ + {"\x97", 0, 0x214026}, /* East Asian ideograph */ + {"\x92", 0, 0x214027}, /* East Asian ideograph */ + {"\x89", 0, 0x214029}, /* East Asian ideograph */ + {"\x80", 0, 0x21402C}, /* East Asian ideograph */ + {"\x8A", 0, 0x21402D}, /* East Asian ideograph */ + {"\x84", 0, 0x214032}, /* East Asian ideograph */ + {"\x95", 0, 0x214033}, /* East Asian ideograph */ + {"\x91", 0, 0x214034}, /* East Asian ideograph */ + {"\x98", 0, 0x214035}, /* East Asian ideograph */ + {"\x93", 0, 0x214038}, /* East Asian ideograph */ + {"\xA8", 0, 0x21403C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21403E}, /* East Asian ideograph */ + {"\xB9", 0, 0x214040}, /* East Asian ideograph */ + {"\xAB", 0, 0x214044}, /* East Asian ideograph */ + {"\xBD", 0, 0x214047}, /* East Asian ideograph */ + {"\xBC", 0, 0x214048}, /* East Asian ideograph */ + {"\xAC", 0, 0x21404D}, /* East Asian ideograph */ + {"\xB1", 0, 0x21404F}, /* East Asian ideograph */ + {"\xB5", 0, 0x214053}, /* East Asian ideograph */ + {"\x86", 0, 0x223031}, /* East Asian ideograph */ + {"\x8E", 0, 0x223032}, /* East Asian ideograph */ + {"\xA3", 0, 0x223041}, /* East Asian ideograph */ + {"\x82", 0, 0x223043}, /* East Asian ideograph */ + {"\x85", 0, 0x223046}, /* East Asian ideograph */ + {"\x9D", 0, 0x22304B}, /* East Asian ideograph */ + {"\xA6", 0, 0x223056}, /* East Asian ideograph */ + {"\xB6", 0, 0x223069}, /* East Asian ideograph */ + {"\xA5", 0, 0x273844}, /* East Asian ideograph */ + {"\xA1", 0, 0x274136}, /* East Asian ideograph */ + {"\xA2", 0, 0x274155}, /* East Asian ideograph */ + {"\x9A", 0, 0x274171}, /* East Asian ideograph */ + {"\xA4", 0, 0x275948}, /* East Asian ideograph */ + {"\x9F", 0, 0x28336F}, /* East Asian ideograph */ + {"\xA0", 0, 0x28337B}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D313A}, /* East Asian ideograph */ + {"\x83", 0, 0x2D404C}, /* East Asian ideograph */ + {"\x94", 0, 0x2D404F}, /* East Asian ideograph */ + {"\x9B", 0, 0x334045}, /* East Asian ideograph */ + {"\x9E", 0, 0x33417E}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B4046}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page90 = { + marc8r_9page90_flat, 0 +}; +/* PAGE 89 */ +struct yaz_iconv_trie_flat marc8r_9page89_flat[] = { + {"\x80", 0, 0x213F75}, /* East Asian ideograph */ + {"\x81", 0, 0x213F76}, /* East Asian ideograph */ + {"\x88", 0, 0x213F78}, /* East Asian ideograph */ + {"\x89", 0, 0x213F79}, /* East Asian ideograph */ + {"\x8B", 0, 0x213F7A}, /* East Asian ideograph */ + {"\x93", 0, 0x213F7D}, /* East Asian ideograph */ + {"\x94", 0, 0x213F7E}, /* East Asian ideograph */ + {"\x92", 0, 0x214021}, /* East Asian ideograph */ + {"\x9B", 0, 0x214022}, /* East Asian ideograph */ + {"\xA3", 0, 0x214023}, /* East Asian ideograph */ + {"\x98", 0, 0x214024}, /* East Asian ideograph */ + {"\xB6", 0, 0x214028}, /* East Asian ideograph */ + {"\xBF", 0, 0x21402A}, /* East Asian ideograph */ + {"\xB9", 0, 0x21402B}, /* East Asian ideograph */ + {"\xAD", 0, 0x21402E}, /* East Asian ideograph */ + {"\xBC", 0, 0x21402F}, /* East Asian ideograph */ + {"\xBE", 0, 0x214030}, /* East Asian ideograph */ + {"\xAF", 0, 0x214031}, /* East Asian ideograph */ + {"\xAE", 0, 0x214036}, /* East Asian ideograph */ + {"\xB3", 0, 0x214037}, /* East Asian ideograph */ + {"\x83", 0, 0x222F75}, /* East Asian ideograph */ + {"\x86", 0, 0x222F77}, /* East Asian ideograph */ + {"\x85", 0, 0x222F78}, /* East Asian ideograph */ + {"\x8A", 0, 0x222F79}, /* East Asian ideograph */ + {"\x90", 0, 0x222F7A}, /* East Asian ideograph */ + {"\x9E", 0, 0x222F7C}, /* East Asian ideograph */ + {"\xA8", 0, 0x223026}, /* East Asian ideograph */ + {"\xA0", 0, 0x223028}, /* East Asian ideograph */ + {"\x9A", 0, 0x22302B}, /* East Asian ideograph */ + {"\xA2", 0, 0x22302C}, /* East Asian ideograph */ + {"\xA6", 0, 0x22302D}, /* East Asian ideograph */ + {"\xA7", 0, 0x27383B}, /* East Asian ideograph */ + {"\xAB", 0, 0x27407D}, /* East Asian ideograph */ + {"\xAA", 0, 0x27407E}, /* East Asian ideograph */ + {"\xAC", 0, 0x27413F}, /* East Asian ideograph */ + {"\x91", 0, 0x27416E}, /* East Asian ideograph */ + {"\xA9", 0, 0x27422A}, /* East Asian ideograph */ + {"\xB0", 0, 0x27422E}, /* East Asian ideograph */ + {"\x87", 0, 0x274975}, /* East Asian ideograph */ + {"\x8E", 0, 0x275129}, /* East Asian ideograph */ + {"\x8D", 0, 0x28736D}, /* East Asian ideograph */ + {"\x95", 0, 0x2D403F}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D4147}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B3052}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B4053}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page89 = { + marc8r_9page89_flat, 0 +}; +/* PAGE 88 */ +struct yaz_iconv_trie_flat marc8r_9page88_flat[] = { + {"\x80", 0, 0x213F5C}, /* East Asian ideograph */ + {"\x88", 0, 0x213F5D}, /* East Asian ideograph */ + {"\x8A", 0, 0x213F5E}, /* East Asian ideograph */ + {"\x8E", 0, 0x213F5F}, /* East Asian ideograph */ + {"\x8D", 0, 0x213F60}, /* East Asian ideograph */ + {"\x8C", 0, 0x213F61}, /* East Asian ideograph */ + {"\x90", 0, 0x213F62}, /* East Asian ideograph */ + {"\x92", 0, 0x213F63}, /* East Asian ideograph */ + {"\x91", 0, 0x213F64}, /* East Asian ideograph */ + {"\x96", 0, 0x213F65}, /* East Asian ideograph */ + {"\x95", 0, 0x213F66}, /* East Asian ideograph */ + {"\x9B", 0, 0x213F67}, /* East Asian ideograph */ + {"\x9A", 0, 0x213F68}, /* East Asian ideograph */ + {"\x9F", 0, 0x213F69}, /* East Asian ideograph */ + {"\xA1", 0, 0x213F6A}, /* East Asian ideograph */ + {"\xA2", 0, 0x213F6B}, /* East Asian ideograph */ + {"\xAA", 0, 0x213F6C}, /* East Asian ideograph */ + {"\xAE", 0, 0x213F6D}, /* East Asian ideograph */ + {"\xB0", 0, 0x213F6E}, /* East Asian ideograph */ + {"\xB2", 0, 0x213F6F}, /* East Asian ideograph */ + {"\xB4", 0, 0x213F70}, /* East Asian ideograph */ + {"\xB3", 0, 0x213F71}, /* East Asian ideograph */ + {"\xB6", 0, 0x213F72}, /* East Asian ideograph */ + {"\xBF", 0, 0x213F73}, /* East Asian ideograph */ + {"\xBE", 0, 0x213F74}, /* East Asian ideograph */ + {"\x81", 0, 0x222F3D}, /* East Asian ideograph */ + {"\x84", 0, 0x222F41}, /* East Asian ideograph */ + {"\x87", 0, 0x222F43}, /* East Asian ideograph */ + {"\x89", 0, 0x222F44}, /* East Asian ideograph */ + {"\x94", 0, 0x222F47}, /* East Asian ideograph */ + {"\xA3", 0, 0x222F56}, /* East Asian ideograph */ + {"\xA5", 0, 0x222F5B}, /* East Asian ideograph */ + {"\xA4", 0, 0x222F5D}, /* East Asian ideograph */ + {"\xA9", 0, 0x222F61}, /* East Asian ideograph */ + {"\xAD", 0, 0x222F67}, /* East Asian ideograph */ + {"\xB9", 0, 0x222F6E}, /* East Asian ideograph */ + {"\xBA", 0, 0x222F6F}, /* East Asian ideograph */ + {"\xBD", 0, 0x222F70}, /* East Asian ideograph */ + {"\x98", 0, 0x273F6E}, /* East Asian ideograph */ + {"\x8F", 0, 0x273F6F}, /* East Asian ideograph */ + {"\x86", 0, 0x282F43}, /* East Asian ideograph */ + {"\x8B", 0, 0x282F47}, /* East Asian ideograph */ + {"\x97", 0, 0x282F66}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D3F67}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D3F6E}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D3F6F}, /* East Asian ideograph */ + {"\xBB", 0, 0x4B3F74}, /* East Asian ideograph */ + {"\x9D", 0, 0x4B5A23}, /* East Asian ideograph */ + {"\xAC", 0, 0x4C2F61}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page88 = { + marc8r_9page88_flat, 0 +}; +/* PAGE 87 */ +struct yaz_iconv_trie_flat marc8r_9page87_flat[] = { + {"\x8D", 0, 0x213F49}, /* East Asian ideograph */ + {"\x89", 0, 0x213F4A}, /* East Asian ideograph */ + {"\x82", 0, 0x213F4D}, /* East Asian ideograph */ + {"\x87", 0, 0x213F4E}, /* East Asian ideograph */ + {"\x88", 0, 0x213F4F}, /* East Asian ideograph */ + {"\x8A", 0, 0x213F50}, /* East Asian ideograph */ + {"\xA3", 0, 0x213F51}, /* East Asian ideograph */ + {"\xA6", 0, 0x213F52}, /* East Asian ideograph */ + {"\xB2", 0, 0x213F53}, /* East Asian ideograph (variant of EACC 4B3F53) */ + {"\xB7", 0, 0x213F54}, /* East Asian ideograph */ + {"\xB6", 0, 0x213F55}, /* East Asian ideograph */ + {"\xB8", 0, 0x213F56}, /* East Asian ideograph */ + {"\xB5", 0, 0x213F57}, /* East Asian ideograph */ + {"\xBA", 0, 0x213F58}, /* East Asian ideograph */ + {"\xBE", 0, 0x213F59}, /* East Asian ideograph */ + {"\xBF", 0, 0x213F5A}, /* East Asian ideograph */ + {"\xBC", 0, 0x213F5B}, /* East Asian ideograph */ + {"\x8B", 0, 0x222E5A}, /* East Asian ideograph */ + {"\x8C", 0, 0x222E5C}, /* East Asian ideograph */ + {"\x86", 0, 0x222E5D}, /* East Asian ideograph */ + {"\xA0", 0, 0x222E71}, /* East Asian ideograph */ + {"\xA5", 0, 0x222E77}, /* East Asian ideograph */ + {"\x9C", 0, 0x222E7D}, /* East Asian ideograph */ + {"\x9F", 0, 0x222E7E}, /* East Asian ideograph */ + {"\xB3", 0, 0x222F29}, /* East Asian ideograph */ + {"\x92", 0, 0x273F55}, /* East Asian ideograph */ + {"\x90", 0, 0x2D3F54}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D4621}, /* East Asian ideograph */ + {"\xB4", 0, 0x333F58}, /* East Asian ideograph */ + {"\x83", 0, 0x393439}, /* East Asian ideograph */ + {"\x9E", 0, 0x3F5564}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B3F50}, /* East Asian ideograph (variant of EACC 213F50) */ + {"\x91", 0, 0x4B3F51}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B3F53}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page87 = { + marc8r_9page87_flat, 0 +}; +/* PAGE 86 */ +struct yaz_iconv_trie_flat marc8r_9page86_flat[] = { + {"\x82", 0, 0x213F33}, /* East Asian ideograph */ + {"\xA7", 0, 0x213F3D}, /* East Asian ideograph */ + {"\xB2", 0, 0x213F3E}, /* East Asian ideograph */ + {"\x91", 0, 0x213F3F}, /* East Asian ideograph */ + {"\x8E", 0, 0x213F40}, /* East Asian ideograph */ + {"\xAB", 0, 0x213F41}, /* East Asian ideograph */ + {"\xA4", 0, 0x213F42}, /* East Asian ideograph */ + {"\xAC", 0, 0x213F43}, /* East Asian ideograph */ + {"\x9A", 0, 0x213F44}, /* East Asian ideograph */ + {"\xA9", 0, 0x213F45}, /* East Asian ideograph */ + {"\x94", 0, 0x213F46}, /* East Asian ideograph */ + {"\x8A", 0, 0x213F47}, /* East Asian ideograph */ + {"\xB6", 0, 0x213F48}, /* East Asian ideograph */ + {"\x90", 0, 0x213F4B}, /* East Asian ideograph */ + {"\xBE", 0, 0x213F4C}, /* East Asian ideograph */ + {"\x83", 0, 0x222D6B}, /* East Asian ideograph */ + {"\x8B", 0, 0x222E23}, /* East Asian ideograph */ + {"\x9D", 0, 0x222E32}, /* East Asian ideograph */ + {"\xA6", 0, 0x222E33}, /* East Asian ideograph */ + {"\xA2", 0, 0x222E3D}, /* East Asian ideograph */ + {"\xA8", 0, 0x222E40}, /* East Asian ideograph */ + {"\x9C", 0, 0x222E42}, /* East Asian ideograph */ + {"\xAF", 0, 0x222E43}, /* East Asian ideograph */ + {"\x96", 0, 0x222E45}, /* East Asian ideograph */ + {"\x97", 0, 0x222E46}, /* East Asian ideograph */ + {"\xAD", 0, 0x222E47}, /* East Asian ideograph */ + {"\x92", 0, 0x222E4C}, /* East Asian ideograph */ + {"\xAE", 0, 0x222E52}, /* East Asian ideograph */ + {"\x8D", 0, 0x222E55}, /* East Asian ideograph */ + {"\xBA", 0, 0x222E68}, /* East Asian ideograph */ + {"\xB8", 0, 0x222E6A}, /* East Asian ideograph */ + {"\x87", 0, 0x273F45}, /* East Asian ideograph */ + {"\x99", 0, 0x2D3661}, /* East Asian ideograph */ + {"\x85", 0, 0x2D3F3A}, /* East Asian ideograph */ + {"\x8E", 0, 0x4B3F40}, /* East Asian ideograph (variant of EACC 213F40) */ + {"\xB7", 0, 0x706340}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page86 = { + marc8r_9page86_flat, 0 +}; +/* PAGE 85 */ +struct yaz_iconv_trie_flat marc8r_9page85_flat[] = { + {"\x88", 0, 0x213F21}, /* East Asian ideograph */ + {"\xA8", 0, 0x213F22}, /* East Asian ideograph */ + {"\x8C", 0, 0x213F26}, /* East Asian ideograph */ + {"\x8D", 0, 0x213F27}, /* East Asian ideograph */ + {"\x8B", 0, 0x213F28}, /* East Asian ideograph */ + {"\x87", 0, 0x213F2C}, /* East Asian ideograph */ + {"\xB7", 0, 0x213F2D}, /* East Asian ideograph */ + {"\xB6", 0, 0x213F2E}, /* East Asian ideograph */ + {"\xA7", 0, 0x213F2F}, /* East Asian ideograph */ + {"\xB0", 0, 0x213F30}, /* East Asian ideograph */ + {"\x9A", 0, 0x213F31}, /* East Asian ideograph */ + {"\x9D", 0, 0x213F32}, /* East Asian ideograph */ + {"\xBC", 0, 0x213F34}, /* East Asian ideograph */ + {"\xA2", 0, 0x213F35}, /* East Asian ideograph */ + {"\xAE", 0, 0x213F36}, /* East Asian ideograph */ + {"\x95", 0, 0x213F37}, /* East Asian ideograph */ + {"\x98", 0, 0x213F38}, /* East Asian ideograph */ + {"\xA3", 0, 0x213F39}, /* East Asian ideograph */ + {"\x9F", 0, 0x213F3A}, /* East Asian ideograph */ + {"\xAB", 0, 0x213F3B}, /* East Asian ideograph */ + {"\xBE", 0, 0x213F3C}, /* East Asian ideograph */ + {"\x89", 0, 0x222D48}, /* East Asian ideograph */ + {"\x8A", 0, 0x222D4A}, /* East Asian ideograph */ + {"\x90", 0, 0x222D51}, /* East Asian ideograph */ + {"\x81", 0, 0x222D5B}, /* East Asian ideograph */ + {"\x86", 0, 0x222D61}, /* East Asian ideograph */ + {"\x9E", 0, 0x222D66}, /* East Asian ideograph */ + {"\xB5", 0, 0x222D67}, /* East Asian ideograph */ + {"\xB4", 0, 0x222D68}, /* East Asian ideograph */ + {"\xB1", 0, 0x222D70}, /* East Asian ideograph */ + {"\xAA", 0, 0x222D74}, /* East Asian ideograph */ + {"\xB3", 0, 0x222D77}, /* East Asian ideograph */ + {"\xA4", 0, 0x222D79}, /* East Asian ideograph */ + {"\x93", 0, 0x222D7B}, /* East Asian ideograph */ + {"\xAF", 0, 0x222E2C}, /* East Asian ideograph */ + {"\xA5", 0, 0x222E2D}, /* East Asian ideograph */ + {"\x9C", 0, 0x222E2F}, /* East Asian ideograph */ + {"\x91", 0, 0x273F59}, /* East Asian ideograph */ + {"\x99", 0, 0x2D3F31}, /* East Asian ideograph */ + {"\xA8", 0, 0x333F22}, /* East Asian ideograph (variant of EACC 213F22) */ + {"\x84", 0, 0x334449}, /* East Asian ideograph */ + {"\x82", 0, 0x393E4C}, /* East Asian ideograph */ + {"\x8E", 0, 0x3F3F24}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page85 = { + marc8r_9page85_flat, 0 +}; +/* PAGE 84 */ +struct yaz_iconv_trie_flat marc8r_9page84_flat[] = { + {"\x8F", 0, 0x213E6B}, /* East Asian ideograph */ + {"\x9C", 0, 0x213E6C}, /* East Asian ideograph */ + {"\x9F", 0, 0x213E6E}, /* East Asian ideograph */ + {"\x9A", 0, 0x213E72}, /* East Asian ideograph */ + {"\x95", 0, 0x213E73}, /* East Asian ideograph */ + {"\xA3", 0, 0x213E75}, /* East Asian ideograph */ + {"\x9B", 0, 0x213E77}, /* East Asian ideograph */ + {"\x8E", 0, 0x213E78}, /* East Asian ideograph */ + {"\x80", 0, 0x213E79}, /* East Asian ideograph */ + {"\x81", 0, 0x213E7A}, /* East Asian ideograph */ + {"\x89", 0, 0x213E7C}, /* East Asian ideograph */ + {"\x88", 0, 0x213E7D}, /* East Asian ideograph */ + {"\xBC", 0, 0x213F24}, /* East Asian ideograph */ + {"\xBE", 0, 0x213F29}, /* East Asian ideograph */ + {"\xA7", 0, 0x213F2A}, /* East Asian ideograph */ + {"\xB4", 0, 0x213F2B}, /* East Asian ideograph */ + {"\x94", 0, 0x222C70}, /* East Asian ideograph */ + {"\x83", 0, 0x222C73}, /* East Asian ideograph */ + {"\x99", 0, 0x222C75}, /* East Asian ideograph */ + {"\x8D", 0, 0x222C7D}, /* East Asian ideograph */ + {"\x8A", 0, 0x222D2A}, /* East Asian ideograph */ + {"\x90", 0, 0x222D2C}, /* East Asian ideograph */ + {"\x92", 0, 0x222D32}, /* East Asian ideograph */ + {"\xA5", 0, 0x222D37}, /* East Asian ideograph */ + {"\xA1", 0, 0x222D3F}, /* East Asian ideograph */ + {"\x86", 0, 0x222D43}, /* East Asian ideograph */ + {"\xAB", 0, 0x222D4E}, /* East Asian ideograph */ + {"\xA9", 0, 0x222D50}, /* East Asian ideograph */ + {"\xB0", 0, 0x222D58}, /* East Asian ideograph */ + {"\xB7", 0, 0x222D5E}, /* East Asian ideograph */ + {"\xA4", 0, 0x273F42}, /* East Asian ideograph */ + {"\xBF", 0, 0x276055}, /* East Asian ideograph */ + {"\xA6", 0, 0x282E4C}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D3464}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D3F27}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D5856}, /* East Asian ideograph */ + {"\xA8", 0, 0x2E2D79}, /* East Asian ideograph */ + {"\xB3", 0, 0x333F5B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page84 = { + marc8r_9page84_flat, 0 +}; +/* PAGE 83 */ +struct yaz_iconv_trie_flat marc8r_9page83_flat[] = { + {"\xA6", 0, 0x213E58}, /* East Asian ideograph */ + {"\x8B", 0, 0x213E59}, /* East Asian ideograph */ + {"\x8B", 0, 0x213E59}, /* East Asian ideograph */ + {"\x85", 0, 0x213E5B}, /* East Asian ideograph (variant of EACC 4B3E5B) */ + {"\x91", 0, 0x213E5D}, /* East Asian ideograph */ + {"\xA0", 0, 0x213E60}, /* East Asian ideograph */ + {"\xA1", 0, 0x213E61}, /* East Asian ideograph */ + {"\x9C", 0, 0x213E62}, /* East Asian ideograph */ + {"\x98", 0, 0x213E63}, /* East Asian ideograph */ + {"\x95", 0, 0x213E64}, /* East Asian ideograph */ + {"\x86", 0, 0x213E67}, /* East Asian ideograph */ + {"\x9A", 0, 0x213E69}, /* East Asian ideograph */ + {"\x9F", 0, 0x213E6A}, /* East Asian ideograph */ + {"\xB3", 0, 0x213E6D}, /* East Asian ideograph */ + {"\xB0", 0, 0x213E6F}, /* East Asian ideograph */ + {"\xBB", 0, 0x213E70}, /* East Asian ideograph */ + {"\xBA", 0, 0x213E71}, /* East Asian ideograph */ + {"\xB9", 0, 0x213E74}, /* East Asian ideograph */ + {"\xB4", 0, 0x213E76}, /* East Asian ideograph */ + {"\xB6", 0, 0x213E7B}, /* East Asian ideograph */ + {"\xB1", 0, 0x213E7E}, /* East Asian ideograph */ + {"\x87", 0, 0x222C3E}, /* East Asian ideograph */ + {"\x93", 0, 0x222C47}, /* East Asian ideograph */ + {"\x94", 0, 0x222C48}, /* East Asian ideograph */ + {"\x8E", 0, 0x222C4E}, /* East Asian ideograph */ + {"\x8F", 0, 0x222C51}, /* East Asian ideograph */ + {"\x99", 0, 0x222C53}, /* East Asian ideograph */ + {"\x9D", 0, 0x222C56}, /* East Asian ideograph */ + {"\x84", 0, 0x222C5D}, /* East Asian ideograph */ + {"\xA3", 0, 0x222C62}, /* East Asian ideograph */ + {"\xA2", 0, 0x222C66}, /* East Asian ideograph */ + {"\xA5", 0, 0x222C67}, /* East Asian ideograph */ + {"\x9B", 0, 0x222C69}, /* East Asian ideograph */ + {"\xA9", 0, 0x222C6E}, /* East Asian ideograph */ + {"\xBD", 0, 0x222C7C}, /* East Asian ideograph */ + {"\xB2", 0, 0x222D34}, /* East Asian ideograph */ + {"\xB8", 0, 0x222D3B}, /* East Asian ideograph */ + {"\xBC", 0, 0x222D41}, /* East Asian ideograph */ + {"\xAC", 0, 0x273E6C}, /* East Asian ideograph */ + {"\xAD", 0, 0x273F31}, /* East Asian ideograph */ + {"\xA8", 0, 0x273F38}, /* East Asian ideograph */ + {"\xAF", 0, 0x273F39}, /* East Asian ideograph */ + {"\xAE", 0, 0x273F44}, /* East Asian ideograph */ + {"\xAB", 0, 0x273F47}, /* East Asian ideograph */ + {"\xA7", 0, 0x273F5B}, /* East Asian ideograph */ + {"\x8A", 0, 0x27614B}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D3D75}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D573B}, /* East Asian ideograph */ + {"\x85", 0, 0x4B3E5B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page83 = { + marc8r_9page83_flat, 0 +}; +/* PAGE 82 */ +struct yaz_iconv_trie_flat marc8r_9page82_flat[] = { + {"\x8C", 0, 0x213E4A}, /* East Asian ideograph */ + {"\xA6", 0, 0x213E4B}, /* East Asian ideograph */ + {"\x9F", 0, 0x213E4D}, /* East Asian ideograph */ + {"\x9A", 0, 0x213E4E}, /* East Asian ideograph */ + {"\x96", 0, 0x213E4F}, /* East Asian ideograph */ + {"\x84", 0, 0x213E50}, /* East Asian ideograph */ + {"\x8D", 0, 0x213E51}, /* East Asian ideograph */ + {"\xA3", 0, 0x213E52}, /* East Asian ideograph */ + {"\x89", 0, 0x213E53}, /* East Asian ideograph */ + {"\x94", 0, 0x213E54}, /* East Asian ideograph */ + {"\xA0", 0, 0x213E55}, /* East Asian ideograph */ + {"\xA8", 0, 0x213E56}, /* East Asian ideograph */ + {"\xB4", 0, 0x213E57}, /* East Asian ideograph */ + {"\xB6", 0, 0x213E5C}, /* East Asian ideograph */ + {"\xB5", 0, 0x213E5E}, /* East Asian ideograph */ + {"\xBB", 0, 0x213E5F}, /* East Asian ideograph */ + {"\xBC", 0, 0x213E65}, /* East Asian ideograph */ + {"\xB2", 0, 0x213E66}, /* East Asian ideograph */ + {"\xB8", 0, 0x213E68}, /* East Asian ideograph */ + {"\x8A", 0, 0x222C24}, /* East Asian ideograph */ + {"\x92", 0, 0x222C2B}, /* East Asian ideograph */ + {"\x9D", 0, 0x222C2C}, /* East Asian ideograph */ + {"\x81", 0, 0x222C2D}, /* East Asian ideograph */ + {"\x9E", 0, 0x222C2F}, /* East Asian ideograph */ + {"\x83", 0, 0x222C30}, /* East Asian ideograph */ + {"\x97", 0, 0x222C32}, /* East Asian ideograph */ + {"\xA7", 0, 0x222C34}, /* East Asian ideograph */ + {"\x95", 0, 0x222C3A}, /* East Asian ideograph */ + {"\xB0", 0, 0x222C42}, /* East Asian ideograph */ + {"\xBE", 0, 0x222C46}, /* East Asian ideograph */ + {"\xB3", 0, 0x222C54}, /* East Asian ideograph */ + {"\xB1", 0, 0x222C60}, /* East Asian ideograph */ + {"\xAF", 0, 0x273F41}, /* East Asian ideograph */ + {"\xAC", 0, 0x273F56}, /* East Asian ideograph */ + {"\xAD", 0, 0x282D77}, /* East Asian ideograph */ + {"\xAB", 0, 0x282D79}, /* East Asian ideograph */ + {"\x9B", 0, 0x2E2B74}, /* East Asian ideograph */ + {"\x8B", 0, 0x33354E}, /* East Asian ideograph */ + {"\xBD", 0, 0x33475F}, /* East Asian ideograph */ + {"\xAA", 0, 0x393E61}, /* East Asian ideograph */ + {"\xA4", 0, 0x396C6B}, /* East Asian ideograph */ + {"\xA9", 0, 0x4B3E7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page82 = { + marc8r_9page82_flat, 0 +}; +/* PAGE 81 */ +struct yaz_iconv_trie_flat marc8r_9page81_flat[] = { + {"\x99", 0, 0x213E38}, /* East Asian ideograph */ + {"\xA3", 0, 0x213E39}, /* East Asian ideograph */ + {"\xA8", 0, 0x213E3A}, /* East Asian ideograph */ + {"\x83", 0, 0x213E3B}, /* East Asian ideograph */ + {"\xA5", 0, 0x213E3C}, /* East Asian ideograph */ + {"\x90", 0, 0x213E3D}, /* East Asian ideograph */ + {"\xAD", 0, 0x213E3E}, /* East Asian ideograph */ + {"\xA2", 0, 0x213E3F}, /* East Asian ideograph */ + {"\x86", 0, 0x213E40}, /* East Asian ideograph (variant of EACC 4B3E40) */ + {"\x8D", 0, 0x213E41}, /* East Asian ideograph */ + {"\xAB", 0, 0x213E42}, /* East Asian ideograph */ + {"\xA9", 0, 0x213E43}, /* East Asian ideograph */ + {"\xAC", 0, 0x213E44}, /* East Asian ideograph */ + {"\xAF", 0, 0x213E45}, /* East Asian ideograph */ + {"\xAA", 0, 0x213E46}, /* East Asian ideograph */ + {"\xA4", 0, 0x213E47}, /* East Asian ideograph */ + {"\xB0", 0, 0x213E48}, /* East Asian ideograph */ + {"\x95", 0, 0x213E49}, /* East Asian ideograph */ + {"\xBF", 0, 0x213E4C}, /* East Asian ideograph */ + {"\x94", 0, 0x222B53}, /* East Asian ideograph */ + {"\x9D", 0, 0x222B57}, /* East Asian ideograph */ + {"\x87", 0, 0x222B5A}, /* East Asian ideograph */ + {"\x89", 0, 0x222B5E}, /* East Asian ideograph */ + {"\x93", 0, 0x222B5F}, /* East Asian ideograph */ + {"\xA7", 0, 0x222B68}, /* East Asian ideograph */ + {"\x8C", 0, 0x222B6F}, /* East Asian ideograph */ + {"\x81", 0, 0x222B71}, /* East Asian ideograph */ + {"\xB7", 0, 0x222B72}, /* East Asian ideograph */ + {"\x82", 0, 0x222B74}, /* East Asian ideograph */ + {"\x9F", 0, 0x222B76}, /* East Asian ideograph */ + {"\xA1", 0, 0x222B7A}, /* East Asian ideograph */ + {"\xB6", 0, 0x273E61}, /* East Asian ideograph */ + {"\xBB", 0, 0x273E70}, /* East Asian ideograph */ + {"\xBC", 0, 0x273E7E}, /* East Asian ideograph */ + {"\xB8", 0, 0x273F3A}, /* East Asian ideograph */ + {"\xB3", 0, 0x273F4E}, /* East Asian ideograph */ + {"\x8B", 0, 0x273F5C}, /* East Asian ideograph */ + {"\xB6", 0, 0x277258}, /* East Asian ideograph (duplicate simplified) */ + {"\xBD", 0, 0x282D34}, /* East Asian ideograph */ + {"\xBA", 0, 0x282D5E}, /* East Asian ideograph */ + {"\xB9", 0, 0x282E79}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D3E2B}, /* East Asian ideograph */ + {"\x92", 0, 0x2D3E40}, /* East Asian ideograph */ + {"\xB5", 0, 0x2D3E60}, /* East Asian ideograph */ + {"\x9A", 0, 0x2E2B5B}, /* East Asian ideograph */ + {"\x8A", 0, 0x393460}, /* East Asian ideograph */ + {"\x86", 0, 0x4B3E40}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page81 = { + marc8r_9page81_flat, 0 +}; +/* PAGE 80 */ +struct yaz_iconv_trie_flat marc8r_9page80_flat[] = { + {"\x94", 0, 0x213E29}, /* East Asian ideograph */ + {"\xB5", 0, 0x213E2A}, /* East Asian ideograph (variant of EACC 4B3E2A) */ + {"\xAA", 0, 0x213E2B}, /* East Asian ideograph */ + {"\xAF", 0, 0x213E2C}, /* East Asian ideograph */ + {"\x96", 0, 0x213E2D}, /* East Asian ideograph */ + {"\x9D", 0, 0x213E2E}, /* East Asian ideograph */ + {"\x8F", 0, 0x213E2F}, /* East Asian ideograph */ + {"\xA1", 0, 0x213E30}, /* East Asian ideograph */ + {"\xA0", 0, 0x213E31}, /* East Asian ideograph */ + {"\xA8", 0, 0x213E32}, /* East Asian ideograph */ + {"\xA5", 0, 0x213E33}, /* East Asian ideograph */ + {"\xA7", 0, 0x213E34}, /* East Asian ideograph */ + {"\x8E", 0, 0x213E35}, /* East Asian ideograph */ + {"\x95", 0, 0x213E36}, /* East Asian ideograph */ + {"\x92", 0, 0x213E37}, /* East Asian ideograph */ + {"\xA6", 0, 0x222B2A}, /* East Asian ideograph */ + {"\xA9", 0, 0x222B2C}, /* East Asian ideograph */ + {"\xAB", 0, 0x222B2D}, /* East Asian ideograph */ + {"\x99", 0, 0x222B30}, /* East Asian ideograph */ + {"\x88", 0, 0x222B31}, /* East Asian ideograph */ + {"\x8A", 0, 0x222B36}, /* East Asian ideograph */ + {"\x8C", 0, 0x222B37}, /* East Asian ideograph */ + {"\x9B", 0, 0x222B38}, /* East Asian ideograph */ + {"\x97", 0, 0x222B3C}, /* East Asian ideograph */ + {"\xB3", 0, 0x222B3D}, /* East Asian ideograph */ + {"\x8D", 0, 0x222B45}, /* East Asian ideograph */ + {"\x90", 0, 0x222B46}, /* East Asian ideograph */ + {"\xB9", 0, 0x222B4B}, /* East Asian ideograph */ + {"\x93", 0, 0x222B50}, /* East Asian ideograph */ + {"\x85", 0, 0x273E5E}, /* East Asian ideograph */ + {"\x81", 0, 0x273F28}, /* East Asian ideograph */ + {"\x86", 0, 0x273F2B}, /* East Asian ideograph */ + {"\x82", 0, 0x273F3B}, /* East Asian ideograph */ + {"\x9C", 0, 0x273F4B}, /* East Asian ideograph */ + {"\x80", 0, 0x273F54}, /* East Asian ideograph */ + {"\xBB", 0, 0x27516D}, /* East Asian ideograph */ + {"\x84", 0, 0x282D74}, /* East Asian ideograph */ + {"\x83", 0, 0x282E52}, /* East Asian ideograph */ + {"\xBF", 0, 0x282E5C}, /* East Asian ideograph */ + {"\xBC", 0, 0x282E7E}, /* East Asian ideograph */ + {"\xB1", 0, 0x336C6B}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B3E2A}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B3F4B}, /* East Asian ideograph (variant of EACC 273F4B) */ + {"\xBA", 0, 0x69576A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page80 = { + marc8r_9page80_flat, 0 +}; +/* PAGE 79 */ +struct yaz_iconv_trie_flat marc8r_9page79_flat[] = { + {"\xBC", 0, 0x21352A}, /* East Asian ideograph */ + {"\x81", 0, 0x214347}, /* East Asian ideograph */ + {"\x89", 0, 0x214348}, /* East Asian ideograph */ + {"\x86", 0, 0x214349}, /* East Asian ideograph */ + {"\x96", 0, 0x21434B}, /* East Asian ideograph */ + {"\x99", 0, 0x21434C}, /* East Asian ideograph */ + {"\xA0", 0, 0x21434D}, /* East Asian ideograph */ + {"\x9D", 0, 0x21434E}, /* East Asian ideograph */ + {"\xA6", 0, 0x21434F}, /* East Asian ideograph */ + {"\xB0", 0, 0x214350}, /* East Asian ideograph */ + {"\xB2", 0, 0x214351}, /* East Asian ideograph */ + {"\xB3", 0, 0x214352}, /* East Asian ideograph */ + {"\xB4", 0, 0x214353}, /* East Asian ideograph */ + {"\xB7", 0, 0x214354}, /* East Asian ideograph */ + {"\xB8", 0, 0x214355}, /* East Asian ideograph */ + {"\xB9", 0, 0x214356}, /* East Asian ideograph */ + {"\xBE", 0, 0x214358}, /* East Asian ideograph */ + {"\xBF", 0, 0x214359}, /* East Asian ideograph */ + {"\x88", 0, 0x22394E}, /* East Asian ideograph */ + {"\x80", 0, 0x223954}, /* East Asian ideograph */ + {"\x87", 0, 0x223955}, /* East Asian ideograph */ + {"\x84", 0, 0x22395C}, /* East Asian ideograph */ + {"\x8F", 0, 0x223960}, /* East Asian ideograph */ + {"\x9A", 0, 0x223971}, /* East Asian ideograph */ + {"\x9B", 0, 0x223972}, /* East Asian ideograph */ + {"\xA2", 0, 0x223973}, /* East Asian ideograph */ + {"\xA1", 0, 0x223976}, /* East Asian ideograph */ + {"\xA8", 0, 0x223978}, /* East Asian ideograph */ + {"\xA9", 0, 0x22397C}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D432E}, /* East Asian ideograph */ + {"\x8D", 0, 0x2E3936}, /* East Asian ideograph */ + {"\x9C", 0, 0x39525B}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B4352}, /* East Asian ideograph */ + {"\xBD", 0, 0x4B4358}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B525B}, /* East Asian ideograph (variant of EACC 39525B) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page79 = { + marc8r_9page79_flat, 0 +}; +/* PAGE 78 */ +struct yaz_iconv_trie_flat marc8r_9page78_flat[] = { + {"\x80", 0, 0x213335}, /* East Asian ideograph */ + {"\x83", 0, 0x21435A}, /* East Asian ideograph */ + {"\x88", 0, 0x21435B}, /* East Asian ideograph */ + {"\x89", 0, 0x21435C}, /* East Asian ideograph */ + {"\x8D", 0, 0x21435D}, /* East Asian ideograph */ + {"\x8B", 0, 0x21435E}, /* East Asian ideograph */ + {"\x97", 0, 0x21435F}, /* East Asian ideograph */ + {"\x95", 0, 0x214360}, /* East Asian ideograph */ + {"\x94", 0, 0x214361}, /* East Asian ideograph */ + {"\x9B", 0, 0x214362}, /* East Asian ideograph */ + {"\x9D", 0, 0x214363}, /* East Asian ideograph */ + {"\x9F", 0, 0x214364}, /* East Asian ideograph */ + {"\xA7", 0, 0x214366}, /* East Asian ideograph */ + {"\xA8", 0, 0x214367}, /* East Asian ideograph */ + {"\xAC", 0, 0x214369}, /* East Asian ideograph */ + {"\xAB", 0, 0x21436A}, /* East Asian ideograph */ + {"\xAA", 0, 0x21436B}, /* East Asian ideograph */ + {"\xBD", 0, 0x21436D}, /* East Asian ideograph */ + {"\xB1", 0, 0x21436F}, /* East Asian ideograph */ + {"\xB5", 0, 0x214370}, /* East Asian ideograph */ + {"\x86", 0, 0x216C7B}, /* East Asian ideograph */ + {"\x85", 0, 0x223A28}, /* East Asian ideograph */ + {"\x8F", 0, 0x223A30}, /* East Asian ideograph */ + {"\x90", 0, 0x223A31}, /* East Asian ideograph */ + {"\x92", 0, 0x223A33}, /* East Asian ideograph */ + {"\x93", 0, 0x223A34}, /* East Asian ideograph */ + {"\x99", 0, 0x223A38}, /* East Asian ideograph */ + {"\x98", 0, 0x223A39}, /* East Asian ideograph */ + {"\xA3", 0, 0x223A47}, /* East Asian ideograph */ + {"\xBE", 0, 0x223A4C}, /* East Asian ideograph */ + {"\xBF", 0, 0x223A4E}, /* East Asian ideograph */ + {"\x8A", 0, 0x22775C}, /* East Asian ideograph */ + {"\x91", 0, 0x227775}, /* East Asian ideograph */ + {"\xA0", 0, 0x22792E}, /* East Asian ideograph */ + {"\xA5", 0, 0x22797E}, /* East Asian ideograph */ + {"\xB4", 0, 0x274558}, /* East Asian ideograph */ + {"\xBA", 0, 0x27455D}, /* East Asian ideograph */ + {"\xAE", 0, 0x275746}, /* East Asian ideograph */ + {"\xAD", 0, 0x276B5F}, /* East Asian ideograph */ + {"\x96", 0, 0x2D435F}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D4362}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D4364}, /* East Asian ideograph */ + {"\xB6", 0, 0x2D4370}, /* East Asian ideograph */ + {"\xB8", 0, 0x2E2F7A}, /* East Asian ideograph */ + {"\x82", 0, 0x334357}, /* East Asian ideograph */ + {"\xA6", 0, 0x395564}, /* East Asian ideograph */ + {"\xAF", 0, 0x455746}, /* East Asian ideograph */ + {"\xB7", 0, 0x695B37}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page78 = { + marc8r_9page78_flat, 0 +}; +/* PAGE 77 */ +struct yaz_iconv_trie_flat marc8r_9page77_flat[] = { + {"\x83", 0, 0x213D78}, /* East Asian ideograph */ + {"\x85", 0, 0x213D79}, /* East Asian ideograph */ + {"\x99", 0, 0x213D7A}, /* East Asian ideograph */ + {"\x98", 0, 0x213D7B}, /* East Asian ideograph */ + {"\x8C", 0, 0x213D7C}, /* East Asian ideograph */ + {"\x96", 0, 0x213D7D}, /* East Asian ideograph */ + {"\x8D", 0, 0x213E21}, /* East Asian ideograph */ + {"\xAB", 0, 0x213E22}, /* East Asian ideograph */ + {"\xA0", 0, 0x213E23}, /* East Asian ideograph */ + {"\xB1", 0, 0x213E24}, /* East Asian ideograph */ + {"\xBD", 0, 0x213E25}, /* East Asian ideograph */ + {"\x9D", 0, 0x213E26}, /* East Asian ideograph */ + {"\xB5", 0, 0x213E27}, /* East Asian ideograph */ + {"\xBF", 0, 0x213E28}, /* East Asian ideograph */ + {"\x89", 0, 0x222A57}, /* East Asian ideograph */ + {"\x91", 0, 0x222A5F}, /* East Asian ideograph */ + {"\x92", 0, 0x222A61}, /* East Asian ideograph */ + {"\x90", 0, 0x222A63}, /* East Asian ideograph */ + {"\x8E", 0, 0x222A67}, /* East Asian ideograph */ + {"\xAD", 0, 0x222A68}, /* East Asian ideograph */ + {"\xAE", 0, 0x222A72}, /* East Asian ideograph */ + {"\xB8", 0, 0x222A73}, /* East Asian ideograph */ + {"\xA1", 0, 0x222A78}, /* East Asian ideograph */ + {"\xA4", 0, 0x222A7B}, /* East Asian ideograph */ + {"\xAA", 0, 0x222B24}, /* East Asian ideograph */ + {"\xB0", 0, 0x273E57}, /* East Asian ideograph */ + {"\xBE", 0, 0x273F29}, /* East Asian ideograph */ + {"\xA7", 0, 0x273F33}, /* East Asian ideograph */ + {"\x86", 0, 0x273F48}, /* East Asian ideograph */ + {"\x8F", 0, 0x273F58}, /* East Asian ideograph */ + {"\x97", 0, 0x27586D}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D4574}, /* East Asian ideograph */ + {"\x88", 0, 0x333066}, /* East Asian ideograph */ + {"\x9E", 0, 0x343875}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B3F4A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page77 = { + marc8r_9page77_flat, 0 +}; +/* PAGE 76 */ +struct yaz_iconv_trie_flat marc8r_9page76_flat[] = { + {"\x80", 0, 0x213D5C}, /* East Asian ideograph */ + {"\x85", 0, 0x213D60}, /* East Asian ideograph */ + {"\x88", 0, 0x213D61}, /* East Asian ideograph */ + {"\x8B", 0, 0x213D62}, /* East Asian ideograph */ + {"\x8A", 0, 0x213D63}, /* East Asian ideograph */ + {"\x87", 0, 0x213D64}, /* East Asian ideograph */ + {"\x8C", 0, 0x213D65}, /* East Asian ideograph */ + {"\x92", 0, 0x213D66}, /* East Asian ideograph */ + {"\x91", 0, 0x213D67}, /* East Asian ideograph */ + {"\x90", 0, 0x213D68}, /* East Asian ideograph */ + {"\x98", 0, 0x213D69}, /* East Asian ideograph */ + {"\x97", 0, 0x213D6A}, /* East Asian ideograph */ + {"\x99", 0, 0x213D6B}, /* East Asian ideograph */ + {"\x9E", 0, 0x213D6C}, /* East Asian ideograph */ + {"\xA9", 0, 0x213D6F}, /* East Asian ideograph */ + {"\xAA", 0, 0x213D71}, /* East Asian ideograph */ + {"\xAC", 0, 0x213D72}, /* East Asian ideograph */ + {"\xAE", 0, 0x213D73}, /* East Asian ideograph */ + {"\xB9", 0, 0x213D74}, /* East Asian ideograph */ + {"\xB7", 0, 0x213D75}, /* East Asian ideograph */ + {"\xB5", 0, 0x213D76}, /* East Asian ideograph */ + {"\xBD", 0, 0x213D77}, /* East Asian ideograph */ + {"\x82", 0, 0x222A23}, /* East Asian ideograph */ + {"\x89", 0, 0x222A27}, /* East Asian ideograph */ + {"\x94", 0, 0x222A2B}, /* East Asian ideograph */ + {"\x94", 0, 0x222A34}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\x9C", 0, 0x222A39}, /* East Asian ideograph */ + {"\x9A", 0, 0x222A3D}, /* East Asian ideograph */ + {"\xAF", 0, 0x222A46}, /* East Asian ideograph */ + {"\xBC", 0, 0x222A50}, /* East Asian ideograph */ + {"\x84", 0, 0x273D67}, /* East Asian ideograph */ + {"\x81", 0, 0x273D76}, /* East Asian ideograph */ + {"\x93", 0, 0x2D3D6C}, /* East Asian ideograph */ + {"\xB4", 0, 0x2D3D76}, /* East Asian ideograph */ + {"\xA1", 0, 0x2D4E79}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D5C3F}, /* East Asian ideograph */ + {"\xA8", 0, 0x2D5C40}, /* East Asian ideograph */ + {"\xAD", 0, 0x2E7328}, /* East Asian ideograph */ + {"\x8F", 0, 0x2F4A4A}, /* East Asian ideograph */ + {"\xA0", 0, 0x33314C}, /* East Asian ideograph */ + {"\xBA", 0, 0x333251}, /* East Asian ideograph */ + {"\xB3", 0, 0x333D75}, /* East Asian ideograph */ + {"\x95", 0, 0x4B314C}, /* East Asian ideograph */ + {"\x83", 0, 0x4B3D5C}, /* East Asian ideograph */ + {"\x84", 0, 0x4B3D67}, /* East Asian ideograph (variant of EACC 273D67) */ + {"\xAD", 0, 0x4C7328}, /* East Asian ideograph (variant of EACC 2E7328) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page76 = { + marc8r_9page76_flat, 0 +}; +/* PAGE 75 */ +struct yaz_iconv_trie_flat marc8r_9page75_flat[] = { + {"\x86", 0, 0x213D4A}, /* East Asian ideograph */ + {"\x88", 0, 0x213D4B}, /* East Asian ideograph */ + {"\x8C", 0, 0x213D4C}, /* East Asian ideograph */ + {"\x8E", 0, 0x213D4D}, /* East Asian ideograph */ + {"\x97", 0, 0x213D4E}, /* East Asian ideograph */ + {"\x99", 0, 0x213D4F}, /* East Asian ideograph */ + {"\x9D", 0, 0x213D50}, /* East Asian ideograph */ + {"\xA2", 0, 0x213D51}, /* East Asian ideograph */ + {"\xA4", 0, 0x213D52}, /* East Asian ideograph */ + {"\xA5", 0, 0x213D53}, /* East Asian ideograph */ + {"\xAC", 0, 0x213D54}, /* East Asian ideograph */ + {"\xA9", 0, 0x213D55}, /* East Asian ideograph */ + {"\xAD", 0, 0x213D57}, /* East Asian ideograph */ + {"\xB0", 0, 0x213D58}, /* East Asian ideograph */ + {"\xB1", 0, 0x213D59}, /* East Asian ideograph */ + {"\xB9", 0, 0x213D5B}, /* East Asian ideograph */ + {"\xBF", 0, 0x213D5E}, /* East Asian ideograph */ + {"\xBC", 0, 0x213D5F}, /* East Asian ideograph */ + {"\xAA", 0, 0x215646}, /* East Asian ideograph */ + {"\x80", 0, 0x22295C}, /* East Asian ideograph */ + {"\x84", 0, 0x22295F}, /* East Asian ideograph */ + {"\x8D", 0, 0x222962}, /* East Asian ideograph */ + {"\x90", 0, 0x222968}, /* East Asian ideograph */ + {"\x94", 0, 0x222969}, /* East Asian ideograph */ + {"\x96", 0, 0x22296A}, /* East Asian ideograph */ + {"\x98", 0, 0x22296C}, /* East Asian ideograph */ + {"\xA0", 0, 0x222970}, /* East Asian ideograph */ + {"\xA1", 0, 0x222971}, /* East Asian ideograph */ + {"\xA3", 0, 0x222972}, /* East Asian ideograph */ + {"\xA7", 0, 0x222974}, /* East Asian ideograph */ + {"\xB2", 0, 0x222978}, /* East Asian ideograph */ + {"\xB3", 0, 0x222979}, /* East Asian ideograph */ + {"\xB4", 0, 0x22297C}, /* East Asian ideograph */ + {"\x93", 0, 0x273746}, /* East Asian ideograph (duplicate simplified) */ + {"\xBB", 0, 0x273D74}, /* East Asian ideograph */ + {"\x92", 0, 0x27462B}, /* East Asian ideograph */ + {"\x93", 0, 0x274C39}, /* East Asian ideograph */ + {"\x95", 0, 0x275D74}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D3D48}, /* East Asian ideograph */ + {"\x9C", 0, 0x2D3D50}, /* East Asian ideograph */ + {"\x91", 0, 0x2E2968}, /* East Asian ideograph */ + {"\xB7", 0, 0x333078}, /* East Asian ideograph */ + {"\xAB", 0, 0x395F49}, /* East Asian ideograph */ + {"\xA6", 0, 0x453D53}, /* East Asian ideograph */ + {"\x8D", 0, 0x4C2962}, /* East Asian ideograph (variant of EACC 222962) */ + {"\x81", 0, 0x69573B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page75 = { + marc8r_9page75_flat, 0 +}; +/* PAGE 74 */ +struct yaz_iconv_trie_flat marc8r_9page74_flat[] = { + {"\x84", 0, 0x213D36}, /* East Asian ideograph */ + {"\x88", 0, 0x213D37}, /* East Asian ideograph */ + {"\x8A", 0, 0x213D38}, /* East Asian ideograph */ + {"\x8F", 0, 0x213D39}, /* East Asian ideograph */ + {"\x92", 0, 0x213D3A}, /* East Asian ideograph */ + {"\x93", 0, 0x213D3B}, /* East Asian ideograph */ + {"\x95", 0, 0x213D3C}, /* East Asian ideograph */ + {"\x94", 0, 0x213D3D}, /* East Asian ideograph */ + {"\x98", 0, 0x213D3E}, /* East Asian ideograph */ + {"\x97", 0, 0x213D3F}, /* East Asian ideograph */ + {"\x9B", 0, 0x213D40}, /* East Asian ideograph */ + {"\x9F", 0, 0x213D41}, /* East Asian ideograph */ + {"\xA6", 0, 0x213D42}, /* East Asian ideograph */ + {"\xA7", 0, 0x213D43}, /* East Asian ideograph */ + {"\xA9", 0, 0x213D44}, /* East Asian ideograph */ + {"\xAD", 0, 0x213D45}, /* East Asian ideograph */ + {"\xB1", 0, 0x213D46}, /* East Asian ideograph */ + {"\xB5", 0, 0x213D47}, /* East Asian ideograph */ + {"\xB7", 0, 0x213D48}, /* East Asian ideograph */ + {"\xBC", 0, 0x213D49}, /* East Asian ideograph */ + {"\x87", 0, 0x222935}, /* East Asian ideograph */ + {"\x8B", 0, 0x22293A}, /* East Asian ideograph */ + {"\xA8", 0, 0x22294A}, /* East Asian ideograph */ + {"\xA2", 0, 0x22294B}, /* East Asian ideograph */ + {"\xA3", 0, 0x22294C}, /* East Asian ideograph */ + {"\xA4", 0, 0x22294D}, /* East Asian ideograph */ + {"\xB3", 0, 0x222951}, /* East Asian ideograph */ + {"\xB0", 0, 0x222952}, /* East Asian ideograph */ + {"\xB8", 0, 0x222958}, /* East Asian ideograph */ + {"\xA0", 0, 0x273D47}, /* East Asian ideograph */ + {"\xB9", 0, 0x273D4B}, /* East Asian ideograph */ + {"\xA5", 0, 0x273D4C}, /* East Asian ideograph */ + {"\xAF", 0, 0x273D4D}, /* East Asian ideograph */ + {"\x83", 0, 0x27446D}, /* East Asian ideograph */ + {"\x82", 0, 0x274C34}, /* East Asian ideograph */ + {"\x80", 0, 0x275E53}, /* East Asian ideograph */ + {"\xAA", 0, 0x282951}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D3021}, /* East Asian ideograph */ + {"\x8D", 0, 0x2D3051}, /* East Asian ideograph */ + {"\xBA", 0, 0x333D48}, /* East Asian ideograph */ + {"\x90", 0, 0x4B3051}, /* East Asian ideograph */ + {"\x89", 0, 0x4B393A}, /* East Asian ideograph */ + {"\xBE", 0, 0x4B3D4B}, /* East Asian ideograph */ + {"\xA5", 0, 0x4B3D4C}, /* East Asian ideograph (variant of EACC 273D4C) */ + {"\x81", 0, 0x4B5B5E}, /* East Asian ideograph */ + {"\x96", 0, 0x695737}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page74 = { + marc8r_9page74_flat, 0 +}; +/* PAGE 73 */ +struct yaz_iconv_trie_dir marc8r_9page73_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {272, 0, 0}, + {273, 0, 0}, + {274, 0, 0}, + {275, 0, 0}, + {276, 0, 0}, + {277, 0, 0}, + {278, 0, 0}, + {279, 0, 0}, + {280, 0, 0}, + {281, 0, 0}, + {282, 0, 0}, + {283, 0, 0}, + {284, 0, 0}, + {285, 0, 0}, + {286, 0, 0}, + {287, 0, 0}, + {288, 0, 0}, + {289, 0, 0}, + {331, 0, 0}, + {334, 0, 0}, + {335, 0, 0}, + {290, 0, 0}, + {291, 0, 0}, + {292, 0, 0}, + {293, 0, 0}, + {294, 0, 0}, + {295, 0, 0}, + {296, 0, 0}, + {297, 0, 0}, + {298, 0, 0}, + {299, 0, 0}, + {300, 0, 0}, + {301, 0, 0}, + {302, 0, 0}, + {303, 0, 0}, + {304, 0, 0}, + {305, 0, 0}, + {306, 0, 0}, + {307, 0, 0}, + {308, 0, 0}, + {309, 0, 0}, + {310, 0, 0}, + {311, 0, 0}, + {312, 0, 0}, + {313, 0, 0}, + {314, 0, 0}, + {315, 0, 0}, + {316, 0, 0}, + {317, 0, 0}, + {318, 0, 0}, + {336, 0, 0}, + {319, 0, 0}, + {320, 0, 0}, + {321, 0, 0}, + {322, 0, 0}, + {323, 0, 0}, + {324, 0, 0}, + {325, 0, 0}, + {326, 0, 0}, + {327, 0, 0}, + {328, 0, 0}, + {329, 0, 0}, + {271, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page73 = { + 0, marc8r_9page73_dir +}; +/* PAGE 72 */ +struct yaz_iconv_trie_flat marc8r_9page72_flat[] = { + {"\x82", 0, 0x213C7D}, /* East Asian ideograph */ + {"\x81", 0, 0x213C7E}, /* East Asian ideograph */ + {"\x8A", 0, 0x213D22}, /* East Asian ideograph */ + {"\x89", 0, 0x213D23}, /* East Asian ideograph */ + {"\x88", 0, 0x213D24}, /* East Asian ideograph */ + {"\x93", 0, 0x213D25}, /* East Asian ideograph */ + {"\x96", 0, 0x213D26}, /* East Asian ideograph */ + {"\xA2", 0, 0x213D27}, /* East Asian ideograph */ + {"\x9A", 0, 0x213D28}, /* East Asian ideograph */ + {"\x9D", 0, 0x213D29}, /* East Asian ideograph */ + {"\xA3", 0, 0x213D2A}, /* East Asian ideograph (variant of EACC 4B3D2A) */ + {"\x9F", 0, 0x213D2B}, /* East Asian ideograph */ + {"\xA0", 0, 0x213D2C}, /* East Asian ideograph */ + {"\xAC", 0, 0x213D2E}, /* East Asian ideograph */ + {"\xB3", 0, 0x213D2F}, /* East Asian ideograph */ + {"\xB7", 0, 0x213D30}, /* East Asian ideograph */ + {"\xB6", 0, 0x213D32}, /* East Asian ideograph */ + {"\xBA", 0, 0x213D33}, /* East Asian ideograph */ + {"\xBF", 0, 0x213D34}, /* East Asian ideograph */ + {"\x84", 0, 0x22284C}, /* East Asian ideograph */ + {"\x8C", 0, 0x222851}, /* East Asian ideograph */ + {"\x8B", 0, 0x222855}, /* East Asian ideograph */ + {"\x8D", 0, 0x222857}, /* East Asian ideograph */ + {"\x92", 0, 0x22285A}, /* East Asian ideograph */ + {"\x91", 0, 0x22285B}, /* East Asian ideograph */ + {"\x95", 0, 0x22285C}, /* East Asian ideograph */ + {"\x94", 0, 0x22285F}, /* East Asian ideograph */ + {"\x99", 0, 0x222860}, /* East Asian ideograph */ + {"\x8E", 0, 0x222861}, /* East Asian ideograph */ + {"\xA1", 0, 0x222868}, /* East Asian ideograph */ + {"\xA7", 0, 0x22286D}, /* East Asian ideograph */ + {"\xA8", 0, 0x222871}, /* East Asian ideograph */ + {"\xAD", 0, 0x22287C}, /* East Asian ideograph */ + {"\xB1", 0, 0x222921}, /* East Asian ideograph */ + {"\xB4", 0, 0x222923}, /* East Asian ideograph */ + {"\xBE", 0, 0x2D3D34}, /* East Asian ideograph */ + {"\xB5", 0, 0x2D5B69}, /* East Asian ideograph */ + {"\x8F", 0, 0x2E284C}, /* East Asian ideograph */ + {"\xA9", 0, 0x334F37}, /* East Asian ideograph */ + {"\xB8", 0, 0x335B70}, /* East Asian ideograph */ + {"\xBC", 0, 0x39303A}, /* East Asian ideograph */ + {"\xBB", 0, 0x453768}, /* East Asian ideograph */ + {"\x90", 0, 0x46284C}, /* East Asian ideograph */ + {"\x83", 0, 0x4B3D27}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B3D2A}, /* East Asian ideograph */ + {"\xB0", 0, 0x4B3D2F}, /* East Asian ideograph */ + {"\x9B", 0, 0x4C2867}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page72 = { + marc8r_9page72_flat, 0 +}; +/* PAGE 71 */ +struct yaz_iconv_trie_flat marc8r_9page71_flat[] = { + {"\x8F", 0, 0x213C6C}, /* East Asian ideograph */ + {"\x87", 0, 0x213C6D}, /* East Asian ideograph */ + {"\x8A", 0, 0x213C6E}, /* East Asian ideograph */ + {"\x9A", 0, 0x213C6F}, /* East Asian ideograph */ + {"\x97", 0, 0x213C70}, /* East Asian ideograph */ + {"\x96", 0, 0x213C71}, /* East Asian ideograph */ + {"\x9C", 0, 0x213C72}, /* East Asian ideograph */ + {"\x95", 0, 0x213C73}, /* East Asian ideograph */ + {"\xA0", 0, 0x213C74}, /* East Asian ideograph */ + {"\xA6", 0, 0x213C75}, /* East Asian ideograph */ + {"\xAB", 0, 0x213C76}, /* East Asian ideograph */ + {"\xA7", 0, 0x213C77}, /* East Asian ideograph */ + {"\xAD", 0, 0x213C78}, /* East Asian ideograph */ + {"\xB7", 0, 0x213C79}, /* East Asian ideograph */ + {"\xB8", 0, 0x213C7A}, /* East Asian ideograph */ + {"\xB6", 0, 0x213C7B}, /* East Asian ideograph */ + {"\xB5", 0, 0x213C7C}, /* East Asian ideograph */ + {"\xBE", 0, 0x213D21}, /* East Asian ideograph */ + {"\x80", 0, 0x222777}, /* East Asian ideograph */ + {"\x8B", 0, 0x22277E}, /* East Asian ideograph */ + {"\xA4", 0, 0x22282F}, /* East Asian ideograph */ + {"\xA5", 0, 0x222835}, /* East Asian ideograph */ + {"\xAF", 0, 0x222836}, /* East Asian ideograph */ + {"\xB9", 0, 0x222842}, /* East Asian ideograph */ + {"\xB3", 0, 0x22284B}, /* East Asian ideograph */ + {"\x93", 0, 0x273C76}, /* East Asian ideograph */ + {"\x9F", 0, 0x273D27}, /* East Asian ideograph */ + {"\x99", 0, 0x273D2B}, /* East Asian ideograph */ + {"\x9E", 0, 0x273D2D}, /* East Asian ideograph */ + {"\x90", 0, 0x273D2E}, /* East Asian ideograph */ + {"\x86", 0, 0x273F2E}, /* East Asian ideograph */ + {"\x94", 0, 0x273F4A}, /* East Asian ideograph */ + {"\x84", 0, 0x27552D}, /* East Asian ideograph */ + {"\x91", 0, 0x282868}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D3B2A}, /* East Asian ideograph */ + {"\xBF", 0, 0x2D3D2B}, /* East Asian ideograph */ + {"\x85", 0, 0x2D6260}, /* East Asian ideograph */ + {"\x83", 0, 0x333D2A}, /* East Asian ideograph */ + {"\x81", 0, 0x333D2F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page71 = { + marc8r_9page71_flat, 0 +}; +/* PAGE 70 */ +struct yaz_iconv_trie_flat marc8r_9page70_flat[] = { + {"\x85", 0, 0x213C56}, /* East Asian ideograph */ + {"\x80", 0, 0x213C58}, /* East Asian ideograph */ + {"\x8C", 0, 0x213C59}, /* East Asian ideograph */ + {"\x9B", 0, 0x213C5A}, /* East Asian ideograph */ + {"\x94", 0, 0x213C5B}, /* East Asian ideograph */ + {"\x97", 0, 0x213C5C}, /* East Asian ideograph */ + {"\x95", 0, 0x213C5D}, /* East Asian ideograph */ + {"\xA3", 0, 0x213C5E}, /* East Asian ideograph */ + {"\xA2", 0, 0x213C5F}, /* East Asian ideograph */ + {"\x9F", 0, 0x213C60}, /* East Asian ideograph */ + {"\xAB", 0, 0x213C61}, /* East Asian ideograph */ + {"\xB3", 0, 0x213C63}, /* East Asian ideograph */ + {"\xB4", 0, 0x213C65}, /* East Asian ideograph */ + {"\xBB", 0, 0x213C68}, /* East Asian ideograph */ + {"\xBC", 0, 0x213C69}, /* East Asian ideograph */ + {"\xBD", 0, 0x213C6A}, /* East Asian ideograph */ + {"\xBE", 0, 0x213C6B}, /* East Asian ideograph */ + {"\x84", 0, 0x222735}, /* East Asian ideograph */ + {"\x83", 0, 0x222736}, /* East Asian ideograph */ + {"\x82", 0, 0x222739}, /* East Asian ideograph */ + {"\x8E", 0, 0x22273F}, /* East Asian ideograph */ + {"\x98", 0, 0x222747}, /* East Asian ideograph */ + {"\x88", 0, 0x222748}, /* East Asian ideograph */ + {"\x9E", 0, 0x222757}, /* East Asian ideograph */ + {"\xA1", 0, 0x222758}, /* East Asian ideograph */ + {"\xA8", 0, 0x22275D}, /* East Asian ideograph */ + {"\xAC", 0, 0x22275F}, /* East Asian ideograph */ + {"\xAA", 0, 0x222760}, /* East Asian ideograph */ + {"\xAE", 0, 0x222763}, /* East Asian ideograph */ + {"\xAD", 0, 0x222764}, /* East Asian ideograph */ + {"\xB0", 0, 0x222765}, /* East Asian ideograph */ + {"\xB5", 0, 0x22276D}, /* East Asian ideograph */ + {"\xB6", 0, 0x273032}, /* East Asian ideograph */ + {"\xB2", 0, 0x27304C}, /* East Asian ideograph */ + {"\xB2", 0, 0x273C67}, /* East Asian ideograph (Version J extension) */ + {"\xBF", 0, 0x273D2A}, /* East Asian ideograph */ + {"\xB8", 0, 0x2D3177}, /* East Asian ideograph */ + {"\x87", 0, 0x2D3C61}, /* East Asian ideograph */ + {"\xB9", 0, 0x3F304C}, /* East Asian ideograph */ + {"\xBA", 0, 0x456260}, /* East Asian ideograph */ + {"\xA4", 0, 0x4B3C5E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page70 = { + marc8r_9page70_flat, 0 +}; +/* PAGE 69 */ +struct yaz_iconv_trie_flat marc8r_9page69_flat[] = { + {"\x82", 0, 0x213C44}, /* East Asian ideograph */ + {"\x86", 0, 0x213C46}, /* East Asian ideograph */ + {"\x9A", 0, 0x213C49}, /* East Asian ideograph */ + {"\x96", 0, 0x213C4A}, /* East Asian ideograph */ + {"\x95", 0, 0x213C4B}, /* East Asian ideograph */ + {"\x9B", 0, 0x213C4C}, /* East Asian ideograph */ + {"\x91", 0, 0x213C4D}, /* East Asian ideograph */ + {"\x9D", 0, 0x213C4E}, /* East Asian ideograph */ + {"\xA5", 0, 0x213C4F}, /* East Asian ideograph */ + {"\xAB", 0, 0x213C51}, /* East Asian ideograph */ + {"\xB3", 0, 0x213C52}, /* East Asian ideograph */ + {"\xB6", 0, 0x213C53}, /* East Asian ideograph */ + {"\xB8", 0, 0x213C54}, /* East Asian ideograph */ + {"\xB7", 0, 0x213C55}, /* East Asian ideograph */ + {"\xBD", 0, 0x213C57}, /* East Asian ideograph */ + {"\x80", 0, 0x222662}, /* East Asian ideograph */ + {"\x94", 0, 0x222672}, /* East Asian ideograph */ + {"\x97", 0, 0x222673}, /* East Asian ideograph */ + {"\x99", 0, 0x222676}, /* East Asian ideograph */ + {"\x92", 0, 0x222677}, /* East Asian ideograph */ + {"\x9F", 0, 0x222678}, /* East Asian ideograph */ + {"\xA3", 0, 0x22267A}, /* East Asian ideograph */ + {"\xA1", 0, 0x22267B}, /* East Asian ideograph */ + {"\xA2", 0, 0x222722}, /* East Asian ideograph */ + {"\xA8", 0, 0x222724}, /* East Asian ideograph */ + {"\x83", 0, 0x273138}, /* East Asian ideograph */ + {"\x85", 0, 0x273C4F}, /* East Asian ideograph */ + {"\x88", 0, 0x273C51}, /* East Asian ideograph */ + {"\x90", 0, 0x273C52}, /* East Asian ideograph */ + {"\xA6", 0, 0x273C53}, /* East Asian ideograph */ + {"\xA7", 0, 0x273C58}, /* East Asian ideograph */ + {"\xBC", 0, 0x273C5C}, /* East Asian ideograph */ + {"\x81", 0, 0x273C5E}, /* East Asian ideograph */ + {"\x9C", 0, 0x273C60}, /* East Asian ideograph */ + {"\xAE", 0, 0x273C61}, /* East Asian ideograph */ + {"\x8C", 0, 0x274F36}, /* East Asian ideograph */ + {"\x98", 0, 0x275048}, /* East Asian ideograph */ + {"\xAD", 0, 0x27555D}, /* East Asian ideograph */ + {"\x8F", 0, 0x282736}, /* East Asian ideograph */ + {"\xBB", 0, 0x282747}, /* East Asian ideograph */ + {"\xB1", 0, 0x28275F}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D5124}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D5760}, /* East Asian ideograph */ + {"\xB2", 0, 0x2F3B63}, /* East Asian ideograph */ + {"\xB0", 0, 0x3F462B}, /* East Asian ideograph */ + {"\xAF", 0, 0x4B3C53}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page69 = { + marc8r_9page69_flat, 0 +}; +/* PAGE 68 */ +struct yaz_iconv_trie_flat marc8r_9page68_flat[] = { + {"\x8D", 0, 0x213C30}, /* East Asian ideograph */ + {"\x92", 0, 0x213C31}, /* East Asian ideograph */ + {"\x94", 0, 0x213C32}, /* East Asian ideograph */ + {"\x96", 0, 0x213C33}, /* East Asian ideograph */ + {"\x9D", 0, 0x213C34}, /* East Asian ideograph */ + {"\x9E", 0, 0x213C35}, /* East Asian ideograph */ + {"\xA2", 0, 0x213C36}, /* East Asian ideograph */ + {"\xA5", 0, 0x213C37}, /* East Asian ideograph */ + {"\xA8", 0, 0x213C38}, /* East Asian ideograph */ + {"\xA7", 0, 0x213C39}, /* East Asian ideograph */ + {"\xA6", 0, 0x213C3A}, /* East Asian ideograph */ + {"\xAB", 0, 0x213C3B}, /* East Asian ideograph */ + {"\xAE", 0, 0x213C3C}, /* East Asian ideograph */ + {"\xB1", 0, 0x213C3D}, /* East Asian ideograph */ + {"\xB2", 0, 0x213C3E}, /* East Asian ideograph */ + {"\xB3", 0, 0x213C3F}, /* East Asian ideograph */ + {"\xB4", 0, 0x213C40}, /* East Asian ideograph */ + {"\xB7", 0, 0x213C41}, /* East Asian ideograph */ + {"\xBD", 0, 0x213C42}, /* East Asian ideograph */ + {"\xBE", 0, 0x213C43}, /* East Asian ideograph */ + {"\xA1", 0, 0x215B69}, /* East Asian ideograph */ + {"\x83", 0, 0x22263E}, /* East Asian ideograph */ + {"\x87", 0, 0x222644}, /* East Asian ideograph */ + {"\x89", 0, 0x222646}, /* East Asian ideograph */ + {"\x8B", 0, 0x222647}, /* East Asian ideograph */ + {"\x98", 0, 0x22264E}, /* East Asian ideograph */ + {"\x9B", 0, 0x222650}, /* East Asian ideograph */ + {"\x9C", 0, 0x222652}, /* East Asian ideograph */ + {"\xA4", 0, 0x222656}, /* East Asian ideograph */ + {"\x85", 0, 0x273C32}, /* East Asian ideograph */ + {"\xB4", 0, 0x274F70}, /* East Asian ideograph (duplicate simplified) */ + {"\xB4", 0, 0x275458}, /* East Asian ideograph (duplicate simplified) */ + {"\xA9", 0, 0x276023}, /* East Asian ideograph */ + {"\xAF", 0, 0x282659}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D3C36}, /* East Asian ideograph */ + {"\xB5", 0, 0x4B346B}, /* East Asian ideograph */ + {"\x93", 0, 0x4B3C32}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B3C33}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page68 = { + marc8r_9page68_flat, 0 +}; +/* PAGE 67 */ +struct yaz_iconv_trie_flat marc8r_9page67_flat[] = { + {"\x84", 0, 0x213C2A}, /* East Asian ideograph */ + {"\x87", 0, 0x213C2B}, /* East Asian ideograph */ + {"\x9D", 0, 0x213C2C}, /* East Asian ideograph */ + {"\xBC", 0, 0x213C2D}, /* East Asian ideograph */ + {"\xBD", 0, 0x213C2E}, /* East Asian ideograph */ + {"\xBA", 0, 0x213C2F}, /* East Asian ideograph (variant of EACC 4B3C2F) */ + {"\x82", 0, 0x22254D}, /* East Asian ideograph */ + {"\x8E", 0, 0x222551}, /* East Asian ideograph */ + {"\x81", 0, 0x22255A}, /* East Asian ideograph */ + {"\x92", 0, 0x222566}, /* East Asian ideograph */ + {"\x99", 0, 0x222568}, /* East Asian ideograph */ + {"\x97", 0, 0x222569}, /* East Asian ideograph */ + {"\xA2", 0, 0x22256A}, /* East Asian ideograph */ + {"\xA1", 0, 0x222573}, /* East Asian ideograph */ + {"\x93", 0, 0x222575}, /* East Asian ideograph */ + {"\xA0", 0, 0x222577}, /* East Asian ideograph */ + {"\x94", 0, 0x22257B}, /* East Asian ideograph */ + {"\xAC", 0, 0x22257E}, /* East Asian ideograph */ + {"\xA7", 0, 0x222626}, /* East Asian ideograph */ + {"\xB0", 0, 0x22262A}, /* East Asian ideograph */ + {"\xB4", 0, 0x22262E}, /* East Asian ideograph */ + {"\xAE", 0, 0x22262F}, /* East Asian ideograph */ + {"\xB6", 0, 0x222630}, /* East Asian ideograph */ + {"\xB8", 0, 0x222632}, /* East Asian ideograph */ + {"\xBF", 0, 0x222634}, /* East Asian ideograph */ + {"\xB7", 0, 0x222636}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D3B79}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B3B79}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B3C2F}, /* East Asian ideograph */ + {"\x90", 0, 0x695657}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page67 = { + marc8r_9page67_flat, 0 +}; +/* PAGE 66 */ +struct yaz_iconv_trie_flat marc8r_9page66_flat[] = { + {"\x8C", 0, 0x213C27}, /* East Asian ideograph */ + {"\x90", 0, 0x213C28}, /* East Asian ideograph */ + {"\xA9", 0, 0x213C29}, /* East Asian ideograph */ + {"\x8B", 0, 0x222474}, /* East Asian ideograph */ + {"\x97", 0, 0x222476}, /* East Asian ideograph */ + {"\x92", 0, 0x222526}, /* East Asian ideograph */ + {"\x8E", 0, 0x222528}, /* East Asian ideograph */ + {"\x99", 0, 0x22252C}, /* East Asian ideograph */ + {"\x87", 0, 0x22252D}, /* East Asian ideograph */ + {"\x82", 0, 0x222531}, /* East Asian ideograph */ + {"\xB4", 0, 0x222534}, /* East Asian ideograph */ + {"\xAF", 0, 0x222539}, /* East Asian ideograph */ + {"\xAB", 0, 0x22253A}, /* East Asian ideograph */ + {"\xB5", 0, 0x22253F}, /* East Asian ideograph */ + {"\x8A", 0, 0x222544}, /* East Asian ideograph */ + {"\xAC", 0, 0x222549}, /* East Asian ideograph */ + {"\xA2", 0, 0x22254A}, /* East Asian ideograph */ + {"\xB9", 0, 0x222550}, /* East Asian ideograph */ + {"\xBE", 0, 0x222560}, /* East Asian ideograph */ + {"\x9D", 0, 0x28255A}, /* East Asian ideograph */ + {"\x98", 0, 0x282632}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B3C21}, /* East Asian ideograph */ + {"\x9B", 0, 0x4C2532}, /* East Asian ideograph */ + {"\xB3", 0, 0x4C2539}, /* East Asian ideograph */ + {"\xB6", 0, 0x69564E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page66 = { + marc8r_9page66_flat, 0 +}; +/* PAGE 65 */ +struct yaz_iconv_trie_flat marc8r_9page65_flat[] = { + {"\x81", 0, 0x213B73}, /* East Asian ideograph */ + {"\x87", 0, 0x213B7B}, /* East Asian ideograph */ + {"\x86", 0, 0x213B7C}, /* East Asian ideograph */ + {"\x9B", 0, 0x213B7D}, /* East Asian ideograph */ + {"\x96", 0, 0x213B7E}, /* East Asian ideograph */ + {"\x8E", 0, 0x213C21}, /* East Asian ideograph */ + {"\x91", 0, 0x213C22}, /* East Asian ideograph */ + {"\xA2", 0, 0x213C23}, /* East Asian ideograph */ + {"\xA9", 0, 0x213C24}, /* East Asian ideograph */ + {"\x94", 0, 0x213C25}, /* East Asian ideograph */ + {"\x99", 0, 0x213C26}, /* East Asian ideograph */ + {"\x80", 0, 0x222434}, /* East Asian ideograph */ + {"\x9E", 0, 0x222449}, /* East Asian ideograph */ + {"\x92", 0, 0x22244A}, /* East Asian ideograph */ + {"\x9A", 0, 0x222450}, /* East Asian ideograph */ + {"\x8C", 0, 0x222452}, /* East Asian ideograph */ + {"\xA0", 0, 0x222453}, /* East Asian ideograph */ + {"\xA1", 0, 0x222454}, /* East Asian ideograph */ + {"\xA7", 0, 0x222457}, /* East Asian ideograph */ + {"\x8D", 0, 0x222458}, /* East Asian ideograph */ + {"\xA6", 0, 0x22245A}, /* East Asian ideograph */ + {"\xAE", 0, 0x22245D}, /* East Asian ideograph */ + {"\xA4", 0, 0x222469}, /* East Asian ideograph */ + {"\xB6", 0, 0x222471}, /* East Asian ideograph */ + {"\xBE", 0, 0x222472}, /* East Asian ideograph */ + {"\xB4", 0, 0x222477}, /* East Asian ideograph */ + {"\xBF", 0, 0x222525}, /* East Asian ideograph */ + {"\xBD", 0, 0x222527}, /* East Asian ideograph */ + {"\xB2", 0, 0x22252F}, /* East Asian ideograph */ + {"\xAD", 0, 0x273C2A}, /* East Asian ideograph */ + {"\x83", 0, 0x282458}, /* East Asian ideograph */ + {"\x82", 0, 0x282569}, /* East Asian ideograph */ + {"\x97", 0, 0x2D3B6E}, /* East Asian ideograph */ + {"\x88", 0, 0x2D3B7B}, /* East Asian ideograph */ + {"\x90", 0, 0x2D3C22}, /* East Asian ideograph */ + {"\x98", 0, 0x2D3C26}, /* East Asian ideograph */ + {"\x9F", 0, 0x2E257B}, /* East Asian ideograph */ + {"\x8B", 0, 0x39553C}, /* East Asian ideograph */ + {"\x95", 0, 0x4B3B7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page65 = { + marc8r_9page65_flat, 0 +}; +/* PAGE 64 */ +struct yaz_iconv_trie_flat marc8r_9page64_flat[] = { + {"\x99", 0, 0x213B72}, /* East Asian ideograph */ + {"\xBD", 0, 0x213B74}, /* East Asian ideograph */ + {"\xAD", 0, 0x213B75}, /* East Asian ideograph */ + {"\xBB", 0, 0x213B76}, /* East Asian ideograph */ + {"\xA8", 0, 0x213B77}, /* East Asian ideograph */ + {"\xB0", 0, 0x213B78}, /* East Asian ideograph */ + {"\xB6", 0, 0x213B79}, /* East Asian ideograph */ + {"\xAA", 0, 0x213B7A}, /* East Asian ideograph */ + {"\x81", 0, 0x22236D}, /* East Asian ideograph */ + {"\x95", 0, 0x222370}, /* East Asian ideograph */ + {"\x93", 0, 0x222378}, /* East Asian ideograph */ + {"\xA0", 0, 0x222426}, /* East Asian ideograph */ + {"\x92", 0, 0x222428}, /* East Asian ideograph */ + {"\x9D", 0, 0x222429}, /* East Asian ideograph */ + {"\x8B", 0, 0x22242B}, /* East Asian ideograph */ + {"\x87", 0, 0x222430}, /* East Asian ideograph */ + {"\x9C", 0, 0x222431}, /* East Asian ideograph */ + {"\xBF", 0, 0x22243B}, /* East Asian ideograph */ + {"\xAB", 0, 0x22243C}, /* East Asian ideograph */ + {"\xB4", 0, 0x222441}, /* East Asian ideograph */ + {"\xB1", 0, 0x222446}, /* East Asian ideograph */ + {"\xA1", 0, 0x273B74}, /* East Asian ideograph */ + {"\xA6", 0, 0x273C31}, /* East Asian ideograph */ + {"\xA4", 0, 0x282577}, /* East Asian ideograph */ + {"\x84", 0, 0x282626}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D3B77}, /* East Asian ideograph */ + {"\xAF", 0, 0x2D3B78}, /* East Asian ideograph */ + {"\x84", 0, 0x393B78}, /* East Asian ideograph (duplicate simplified) */ + {"\xA5", 0, 0x4B3C23}, /* East Asian ideograph */ + {"\xBA", 0, 0x4B4E39}, /* East Asian ideograph */ + {"\x85", 0, 0x695632}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page64 = { + marc8r_9page64_flat, 0 +}; +/* PAGE 63 */ +struct yaz_iconv_trie_flat marc8r_9page63_flat[] = { + {"\x90", 0, 0x213B67}, /* East Asian ideograph */ + {"\x8C", 0, 0x213B68}, /* East Asian ideograph */ + {"\x91", 0, 0x213B69}, /* East Asian ideograph */ + {"\x94", 0, 0x213B6A}, /* East Asian ideograph */ + {"\xB7", 0, 0x213B6B}, /* East Asian ideograph */ + {"\xB8", 0, 0x213B6C}, /* East Asian ideograph */ + {"\xA1", 0, 0x213B6E}, /* East Asian ideograph */ + {"\xAB", 0, 0x213B6F}, /* East Asian ideograph */ + {"\xB1", 0, 0x213B71}, /* East Asian ideograph */ + {"\x8F", 0, 0x222346}, /* East Asian ideograph */ + {"\x88", 0, 0x222349}, /* East Asian ideograph */ + {"\x8D", 0, 0x22234B}, /* East Asian ideograph */ + {"\x99", 0, 0x22234D}, /* East Asian ideograph */ + {"\xA6", 0, 0x222355}, /* East Asian ideograph */ + {"\xA0", 0, 0x222357}, /* East Asian ideograph */ + {"\xA2", 0, 0x22235C}, /* East Asian ideograph */ + {"\xB5", 0, 0x222360}, /* East Asian ideograph */ + {"\xA7", 0, 0x222361}, /* East Asian ideograph */ + {"\xA8", 0, 0x222366}, /* East Asian ideograph */ + {"\xAC", 0, 0x222367}, /* East Asian ideograph */ + {"\xA3", 0, 0x22236B}, /* East Asian ideograph */ + {"\xB6", 0, 0x22236C}, /* East Asian ideograph */ + {"\xAD", 0, 0x22236F}, /* East Asian ideograph */ + {"\x8D", 0, 0x222379}, /* East Asian ideograph */ + {"\x9B", 0, 0x273B79}, /* East Asian ideograph */ + {"\x9A", 0, 0x273C28}, /* East Asian ideograph */ + {"\x96", 0, 0x273C2B}, /* East Asian ideograph */ + {"\xB3", 0, 0x273C2E}, /* East Asian ideograph */ + {"\xA9", 0, 0x273C33}, /* East Asian ideograph */ + {"\x81", 0, 0x274629}, /* East Asian ideograph */ + {"\x82", 0, 0x275954}, /* East Asian ideograph */ + {"\x98", 0, 0x282441}, /* East Asian ideograph */ + {"\xBF", 0, 0x282647}, /* East Asian ideograph */ + {"\xBD", 0, 0x342453}, /* East Asian ideograph */ + {"\x97", 0, 0x393B6E}, /* East Asian ideograph */ + {"\xBB", 0, 0x69562E}, /* East Asian ideograph */ + {"\xBC", 0, 0x695630}, /* East Asian ideograph */ + {"\xBE", 0, 0x695633}, /* East Asian ideograph */ + {"\x9C", 0, 0x706131}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page63 = { + marc8r_9page63_flat, 0 +}; +/* PAGE 62 */ +struct yaz_iconv_trie_flat marc8r_9page62_flat[] = { + {"\x80", 0, 0x213B50}, /* East Asian ideograph */ + {"\x81", 0, 0x213B51}, /* East Asian ideograph */ + {"\x86", 0, 0x213B54}, /* East Asian ideograph */ + {"\x85", 0, 0x213B55}, /* East Asian ideograph */ + {"\x88", 0, 0x213B56}, /* East Asian ideograph */ + {"\x8E", 0, 0x213B57}, /* East Asian ideograph */ + {"\x8B", 0, 0x213B58}, /* East Asian ideograph */ + {"\x8D", 0, 0x213B59}, /* East Asian ideograph */ + {"\x95", 0, 0x213B5A}, /* East Asian ideograph */ + {"\x91", 0, 0x213B5B}, /* East Asian ideograph */ + {"\x90", 0, 0x213B5C}, /* East Asian ideograph */ + {"\x9B", 0, 0x213B5D}, /* East Asian ideograph */ + {"\xA0", 0, 0x213B5E}, /* East Asian ideograph */ + {"\x9C", 0, 0x213B5F}, /* East Asian ideograph */ + {"\xA2", 0, 0x213B60}, /* East Asian ideograph */ + {"\xA4", 0, 0x213B61}, /* East Asian ideograph (variant of EACC 4B3B61) */ + {"\xA5", 0, 0x213B62}, /* East Asian ideograph */ + {"\xAC", 0, 0x213B63}, /* East Asian ideograph */ + {"\xAF", 0, 0x213B64}, /* East Asian ideograph */ + {"\xB1", 0, 0x213B65}, /* East Asian ideograph */ + {"\xB9", 0, 0x213B66}, /* East Asian ideograph */ + {"\x98", 0, 0x217E27}, /* East Asian ideograph */ + {"\x97", 0, 0x222235}, /* East Asian ideograph */ + {"\x84", 0, 0x222265}, /* East Asian ideograph */ + {"\x89", 0, 0x222267}, /* East Asian ideograph */ + {"\x99", 0, 0x222279}, /* East Asian ideograph */ + {"\x9D", 0, 0x22227B}, /* East Asian ideograph */ + {"\x9F", 0, 0x22227C}, /* East Asian ideograph */ + {"\xA3", 0, 0x222323}, /* East Asian ideograph */ + {"\xA7", 0, 0x222329}, /* East Asian ideograph */ + {"\xA8", 0, 0x22232B}, /* East Asian ideograph */ + {"\xAD", 0, 0x222330}, /* East Asian ideograph */ + {"\xAE", 0, 0x222331}, /* East Asian ideograph */ + {"\xB4", 0, 0x222337}, /* East Asian ideograph */ + {"\xB3", 0, 0x222339}, /* East Asian ideograph */ + {"\xB7", 0, 0x22233B}, /* East Asian ideograph */ + {"\xBA", 0, 0x22233C}, /* East Asian ideograph */ + {"\xBC", 0, 0x222340}, /* East Asian ideograph */ + {"\xA1", 0, 0x273B60}, /* East Asian ideograph */ + {"\x82", 0, 0x273B61}, /* East Asian ideograph */ + {"\x9E", 0, 0x273B63}, /* East Asian ideograph */ + {"\xBF", 0, 0x273C2D}, /* East Asian ideograph */ + {"\x8F", 0, 0x27415A}, /* East Asian ideograph */ + {"\xA6", 0, 0x28232B}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D3B54}, /* East Asian ideograph */ + {"\xA4", 0, 0x4B3B61}, /* East Asian ideograph */ + {"\xA9", 0, 0x4B5A7E}, /* East Asian ideograph */ + {"\x93", 0, 0x4C2330}, /* East Asian ideograph */ + {"\xB6", 0, 0x4C233F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page62 = { + marc8r_9page62_flat, 0 +}; +/* PAGE 61 */ +struct yaz_iconv_trie_flat marc8r_9page61_flat[] = { + {"\x86", 0, 0x213B21}, /* East Asian ideograph */ + {"\x87", 0, 0x213B22}, /* East Asian ideograph */ + {"\x85", 0, 0x213B23}, /* East Asian ideograph */ + {"\x84", 0, 0x213B24}, /* East Asian ideograph */ + {"\x82", 0, 0x213B25}, /* East Asian ideograph */ + {"\x8C", 0, 0x213B27}, /* East Asian ideograph */ + {"\x92", 0, 0x213B28}, /* East Asian ideograph */ + {"\x90", 0, 0x213B29}, /* East Asian ideograph */ + {"\x93", 0, 0x213B2A}, /* East Asian ideograph */ + {"\xA1", 0, 0x213B2B}, /* East Asian ideograph */ + {"\xA5", 0, 0x213B2C}, /* East Asian ideograph */ + {"\xA8", 0, 0x213B2D}, /* East Asian ideograph */ + {"\xA2", 0, 0x213B2E}, /* East Asian ideograph */ + {"\xA4", 0, 0x213B2F}, /* East Asian ideograph */ + {"\x9E", 0, 0x213B30}, /* East Asian ideograph */ + {"\xA6", 0, 0x213B31}, /* East Asian ideograph */ + {"\xA7", 0, 0x213B32}, /* East Asian ideograph */ + {"\x9F", 0, 0x213B33}, /* East Asian ideograph */ + {"\xAE", 0, 0x213B34}, /* East Asian ideograph */ + {"\xAC", 0, 0x213B35}, /* East Asian ideograph */ + {"\xA9", 0, 0x213B36}, /* East Asian ideograph */ + {"\xAB", 0, 0x213B37}, /* East Asian ideograph */ + {"\xB5", 0, 0x213B38}, /* East Asian ideograph */ + {"\xB6", 0, 0x213B39}, /* East Asian ideograph */ + {"\xB8", 0, 0x213B3A}, /* East Asian ideograph */ + {"\xBA", 0, 0x213B3B}, /* East Asian ideograph */ + {"\x81", 0, 0x217E59}, /* East Asian ideograph */ + {"\x89", 0, 0x217E60}, /* East Asian ideograph */ + {"\x94", 0, 0x217E68}, /* East Asian ideograph */ + {"\x83", 0, 0x217E6A}, /* East Asian ideograph */ + {"\x96", 0, 0x217E6E}, /* East Asian ideograph */ + {"\x97", 0, 0x217E75}, /* East Asian ideograph */ + {"\xA0", 0, 0x217E79}, /* East Asian ideograph */ + {"\xAA", 0, 0x217E7E}, /* East Asian ideograph */ + {"\xB0", 0, 0x222224}, /* East Asian ideograph */ + {"\xAF", 0, 0x222225}, /* East Asian ideograph */ + {"\xBF", 0, 0x273877}, /* East Asian ideograph */ + {"\x9D", 0, 0x273B2E}, /* East Asian ideograph */ + {"\xBB", 0, 0x273B42}, /* East Asian ideograph */ + {"\xB9", 0, 0x273B43}, /* East Asian ideograph */ + {"\xBC", 0, 0x273B44}, /* East Asian ideograph */ + {"\xB3", 0, 0x393B39}, /* East Asian ideograph */ + {"\x98", 0, 0x395230}, /* East Asian ideograph */ + {"\xBE", 0, 0x4B3B43}, /* East Asian ideograph */ + {"\x83", 0, 0x4B7E6A}, /* East Asian ideograph (variant of EACC 217E6A) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page61 = { + marc8r_9page61_flat, 0 +}; +/* PAGE 60 */ +struct yaz_iconv_trie_flat marc8r_9page60_flat[] = { + {"\x87", 0, 0x213A65}, /* East Asian ideograph */ + {"\x88", 0, 0x213A66}, /* East Asian ideograph */ + {"\x89", 0, 0x213A67}, /* East Asian ideograph */ + {"\x85", 0, 0x213A68}, /* East Asian ideograph */ + {"\x8C", 0, 0x213A69}, /* East Asian ideograph */ + {"\x8B", 0, 0x213A6A}, /* East Asian ideograph */ + {"\x8F", 0, 0x213A6B}, /* East Asian ideograph */ + {"\x97", 0, 0x213A6C}, /* East Asian ideograph */ + {"\x9A", 0, 0x213A6D}, /* East Asian ideograph */ + {"\x9C", 0, 0x213A6E}, /* East Asian ideograph */ + {"\x98", 0, 0x213A6F}, /* East Asian ideograph */ + {"\x99", 0, 0x213A70}, /* East Asian ideograph */ + {"\x9B", 0, 0x213A71}, /* East Asian ideograph */ + {"\xA5", 0, 0x213A72}, /* East Asian ideograph */ + {"\xA3", 0, 0x213A73}, /* East Asian ideograph */ + {"\xA6", 0, 0x213A74}, /* East Asian ideograph */ + {"\xA4", 0, 0x213A75}, /* East Asian ideograph */ + {"\xA2", 0, 0x213A76}, /* East Asian ideograph */ + {"\xB0", 0, 0x213A77}, /* East Asian ideograph */ + {"\xB8", 0, 0x213A78}, /* East Asian ideograph */ + {"\xB5", 0, 0x213A7A}, /* East Asian ideograph */ + {"\xB4", 0, 0x213A7B}, /* East Asian ideograph */ + {"\xAE", 0, 0x213A7C}, /* East Asian ideograph */ + {"\xB9", 0, 0x213A7D}, /* East Asian ideograph */ + {"\xB3", 0, 0x213A7E}, /* East Asian ideograph */ + {"\xBF", 0, 0x213B26}, /* East Asian ideograph */ + {"\x80", 0, 0x217E32}, /* East Asian ideograph */ + {"\x84", 0, 0x217E34}, /* East Asian ideograph */ + {"\x82", 0, 0x217E35}, /* East Asian ideograph */ + {"\x95", 0, 0x217E40}, /* East Asian ideograph */ + {"\x93", 0, 0x217E43}, /* East Asian ideograph */ + {"\xAC", 0, 0x217E49}, /* East Asian ideograph */ + {"\xA7", 0, 0x217E52}, /* East Asian ideograph */ + {"\xB7", 0, 0x217E55}, /* East Asian ideograph */ + {"\xB6", 0, 0x27323E}, /* East Asian ideograph */ + {"\x9E", 0, 0x273B31}, /* East Asian ideograph */ + {"\x81", 0, 0x273B32}, /* East Asian ideograph */ + {"\xBD", 0, 0x273B35}, /* East Asian ideograph */ + {"\xA1", 0, 0x273B36}, /* East Asian ideograph */ + {"\xA0", 0, 0x273B38}, /* East Asian ideograph */ + {"\x9D", 0, 0x273B39}, /* East Asian ideograph */ + {"\xAA", 0, 0x273F3E}, /* East Asian ideograph */ + {"\x83", 0, 0x274A53}, /* East Asian ideograph */ + {"\xBE", 0, 0x275A29}, /* East Asian ideograph */ + {"\x8D", 0, 0x2D5323}, /* East Asian ideograph */ + {"\x82", 0, 0x453336}, /* East Asian ideograph */ + {"\x9F", 0, 0x4B3B31}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page60 = { + marc8r_9page60_flat, 0 +}; +/* PAGE 59 */ +struct yaz_iconv_trie_flat marc8r_9page59_flat[] = { + {"\x80", 0, 0x213A4C}, /* East Asian ideograph */ + {"\x90", 0, 0x213A4D}, /* East Asian ideograph */ + {"\x91", 0, 0x213A4E}, /* East Asian ideograph */ + {"\x93", 0, 0x213A4F}, /* East Asian ideograph */ + {"\x94", 0, 0x213A50}, /* East Asian ideograph */ + {"\x95", 0, 0x213A51}, /* East Asian ideograph */ + {"\x97", 0, 0x213A52}, /* East Asian ideograph */ + {"\x98", 0, 0x213A53}, /* East Asian ideograph */ + {"\x9D", 0, 0x213A54}, /* East Asian ideograph */ + {"\x9C", 0, 0x213A55}, /* East Asian ideograph */ + {"\x9F", 0, 0x213A57}, /* East Asian ideograph */ + {"\xA3", 0, 0x213A58}, /* East Asian ideograph */ + {"\xA4", 0, 0x213A59}, /* East Asian ideograph */ + {"\xA9", 0, 0x213A5A}, /* East Asian ideograph */ + {"\xAB", 0, 0x213A5B}, /* East Asian ideograph */ + {"\xB0", 0, 0x213A5C}, /* East Asian ideograph */ + {"\xB3", 0, 0x213A5D}, /* East Asian ideograph */ + {"\xB1", 0, 0x213A5E}, /* East Asian ideograph */ + {"\xB5", 0, 0x213A5F}, /* East Asian ideograph */ + {"\xB8", 0, 0x213A60}, /* East Asian ideograph */ + {"\xBA", 0, 0x213A61}, /* East Asian ideograph */ + {"\xBD", 0, 0x213A62}, /* East Asian ideograph */ + {"\xBF", 0, 0x213A63}, /* East Asian ideograph */ + {"\x85", 0, 0x217D6E}, /* East Asian ideograph */ + {"\x8C", 0, 0x217D74}, /* East Asian ideograph */ + {"\x8B", 0, 0x217D76}, /* East Asian ideograph */ + {"\x96", 0, 0x217D7C}, /* East Asian ideograph */ + {"\x9B", 0, 0x217E21}, /* East Asian ideograph */ + {"\xA2", 0, 0x217E23}, /* East Asian ideograph */ + {"\xA5", 0, 0x217E24}, /* East Asian ideograph */ + {"\xA7", 0, 0x217E25}, /* East Asian ideograph */ + {"\xAC", 0, 0x217E28}, /* East Asian ideograph */ + {"\xAE", 0, 0x217E2A}, /* East Asian ideograph */ + {"\xBB", 0, 0x217E30}, /* East Asian ideograph */ + {"\xBC", 0, 0x217E31}, /* East Asian ideograph */ + {"\x99", 0, 0x273A5B}, /* East Asian ideograph */ + {"\x9A", 0, 0x273A5F}, /* East Asian ideograph */ + {"\xA6", 0, 0x273A60}, /* East Asian ideograph */ + {"\xAA", 0, 0x273A63}, /* East Asian ideograph */ + {"\x83", 0, 0x2D3974}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page59 = { + marc8r_9page59_flat, 0 +}; +/* PAGE 58 */ +struct yaz_iconv_trie_flat marc8r_9page58_flat[] = { + {"\x89", 0, 0x213A42}, /* East Asian ideograph */ + {"\x8B", 0, 0x213A43}, /* East Asian ideograph */ + {"\x8C", 0, 0x213A44}, /* East Asian ideograph */ + {"\xB4", 0, 0x213A46}, /* East Asian ideograph */ + {"\x9D", 0, 0x213A47}, /* East Asian ideograph */ + {"\xAA", 0, 0x213A48}, /* East Asian ideograph */ + {"\xA4", 0, 0x213A49}, /* East Asian ideograph */ + {"\xB0", 0, 0x213A4A}, /* East Asian ideograph */ + {"\xB8", 0, 0x213A4B}, /* East Asian ideograph */ + {"\x88", 0, 0x217D2B}, /* East Asian ideograph */ + {"\x8D", 0, 0x217D2E}, /* East Asian ideograph */ + {"\x83", 0, 0x217D38}, /* East Asian ideograph */ + {"\x97", 0, 0x217D3D}, /* East Asian ideograph */ + {"\x96", 0, 0x217D3E}, /* East Asian ideograph */ + {"\x99", 0, 0x217D40}, /* East Asian ideograph */ + {"\x9B", 0, 0x217D47}, /* East Asian ideograph */ + {"\xA1", 0, 0x217D48}, /* East Asian ideograph */ + {"\xAC", 0, 0x217D52}, /* East Asian ideograph */ + {"\xB2", 0, 0x217D59}, /* East Asian ideograph */ + {"\xBF", 0, 0x217D63}, /* East Asian ideograph */ + {"\xAD", 0, 0x333944}, /* East Asian ideograph */ + {"\xBE", 0, 0x333F55}, /* East Asian ideograph */ + {"\xA2", 0, 0x4B3974}, /* East Asian ideograph */ + {"\xB7", 0, 0x4B3A49}, /* East Asian ideograph */ + {"\xB6", 0, 0x69554E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page58 = { + marc8r_9page58_flat, 0 +}; +/* PAGE 57 */ +struct yaz_iconv_trie_flat marc8r_9page57_flat[] = { + {"\x8C", 0, 0x213A32}, /* East Asian ideograph */ + {"\x81", 0, 0x213A33}, /* East Asian ideograph */ + {"\x89", 0, 0x213A34}, /* East Asian ideograph */ + {"\x82", 0, 0x213A38}, /* East Asian ideograph */ + {"\xA1", 0, 0x213A3A}, /* East Asian ideograph */ + {"\x97", 0, 0x213A3B}, /* East Asian ideograph */ + {"\x96", 0, 0x213A3C}, /* East Asian ideograph */ + {"\xA3", 0, 0x213A3D}, /* East Asian ideograph */ + {"\xA9", 0, 0x213A3E}, /* East Asian ideograph */ + {"\x98", 0, 0x213A3F}, /* East Asian ideograph */ + {"\xA6", 0, 0x213A40}, /* East Asian ideograph */ + {"\xBB", 0, 0x213A41}, /* East Asian ideograph */ + {"\xB5", 0, 0x213A45}, /* East Asian ideograph */ + {"\x8F", 0, 0x217B69}, /* East Asian ideograph */ + {"\x88", 0, 0x217C39}, /* East Asian ideograph */ + {"\x84", 0, 0x217C41}, /* East Asian ideograph */ + {"\x91", 0, 0x217C49}, /* East Asian ideograph */ + {"\x93", 0, 0x217C59}, /* East Asian ideograph */ + {"\x9C", 0, 0x217C60}, /* East Asian ideograph */ + {"\xA5", 0, 0x217C6D}, /* East Asian ideograph */ + {"\xA0", 0, 0x217C6E}, /* East Asian ideograph */ + {"\xAA", 0, 0x217C72}, /* East Asian ideograph */ + {"\x9A", 0, 0x217C7B}, /* East Asian ideograph */ + {"\xAB", 0, 0x217C7C}, /* East Asian ideograph */ + {"\xBF", 0, 0x217D26}, /* East Asian ideograph */ + {"\xBD", 0, 0x217D2A}, /* East Asian ideograph */ + {"\x94", 0, 0x273A48}, /* East Asian ideograph */ + {"\xB1", 0, 0x277D40}, /* East Asian ideograph */ + {"\x92", 0, 0x277D48}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D3A41}, /* East Asian ideograph */ + {"\x8B", 0, 0x2D3A47}, /* East Asian ideograph */ + {"\x90", 0, 0x453666}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page57 = { + marc8r_9page57_flat, 0 +}; +/* PAGE 56 */ +struct yaz_iconv_trie_flat marc8r_9page56_flat[] = { + {"\x9A", 0, 0x213A2D}, /* East Asian ideograph */ + {"\x92", 0, 0x213A2E}, /* East Asian ideograph */ + {"\xBC", 0, 0x213A30}, /* East Asian ideograph */ + {"\x9B", 0, 0x213A31}, /* East Asian ideograph */ + {"\xBE", 0, 0x213A35}, /* East Asian ideograph */ + {"\xBD", 0, 0x213A36}, /* East Asian ideograph */ + {"\xB2", 0, 0x213A37}, /* East Asian ideograph */ + {"\xB3", 0, 0x213A39}, /* East Asian ideograph */ + {"\x8A", 0, 0x217B65}, /* East Asian ideograph */ + {"\x9F", 0, 0x217B71}, /* East Asian ideograph */ + {"\xA0", 0, 0x217B75}, /* East Asian ideograph */ + {"\xA6", 0, 0x217C21}, /* East Asian ideograph */ + {"\x8C", 0, 0x217C22}, /* East Asian ideograph */ + {"\xA7", 0, 0x217C24}, /* East Asian ideograph */ + {"\x9E", 0, 0x217C25}, /* East Asian ideograph */ + {"\xA2", 0, 0x217C26}, /* East Asian ideograph */ + {"\x9C", 0, 0x217C27}, /* East Asian ideograph */ + {"\x96", 0, 0x217C29}, /* East Asian ideograph */ + {"\x93", 0, 0x217C30}, /* East Asian ideograph */ + {"\xAC", 0, 0x217C31}, /* East Asian ideograph */ + {"\xAE", 0, 0x217C34}, /* East Asian ideograph */ + {"\x95", 0, 0x217C35}, /* East Asian ideograph */ + {"\xAF", 0, 0x217C36}, /* East Asian ideograph */ + {"\xB5", 0, 0x217C3E}, /* East Asian ideograph */ + {"\xB7", 0, 0x217C45}, /* East Asian ideograph */ + {"\x90", 0, 0x217C4A}, /* East Asian ideograph */ + {"\xB8", 0, 0x217C4F}, /* East Asian ideograph */ + {"\xBA", 0, 0x217C50}, /* East Asian ideograph */ + {"\xAA", 0, 0x217C52}, /* East Asian ideograph */ + {"\xB1", 0, 0x217C5B}, /* East Asian ideograph */ + {"\xBF", 0, 0x2D3F2A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page56 = { + marc8r_9page56_flat, 0 +}; +/* PAGE 55 */ +struct yaz_iconv_trie_flat marc8r_9page55_flat[] = { + {"\x86", 0, 0x213A21}, /* East Asian ideograph */ + {"\x89", 0, 0x213A22}, /* East Asian ideograph */ + {"\xAA", 0, 0x213A23}, /* East Asian ideograph */ + {"\x8A", 0, 0x213A25}, /* East Asian ideograph */ + {"\x80", 0, 0x213A26}, /* East Asian ideograph */ + {"\xA6", 0, 0x213A27}, /* East Asian ideograph */ + {"\x81", 0, 0x213A28}, /* East Asian ideograph */ + {"\xA2", 0, 0x213A2A}, /* East Asian ideograph */ + {"\x9A", 0, 0x213A2B}, /* East Asian ideograph */ + {"\xB7", 0, 0x213A2C}, /* East Asian ideograph */ + {"\xBF", 0, 0x213A2F}, /* East Asian ideograph */ + {"\xA0", 0, 0x217B2C}, /* East Asian ideograph */ + {"\xA7", 0, 0x217B31}, /* East Asian ideograph */ + {"\x9E", 0, 0x217B3B}, /* East Asian ideograph */ + {"\xAD", 0, 0x217B3C}, /* East Asian ideograph */ + {"\x95", 0, 0x217B3E}, /* East Asian ideograph */ + {"\x90", 0, 0x217B48}, /* East Asian ideograph */ + {"\xA5", 0, 0x217B49}, /* East Asian ideograph */ + {"\xA4", 0, 0x217B52}, /* East Asian ideograph */ + {"\xBA", 0, 0x217B6A}, /* East Asian ideograph */ + {"\xBC", 0, 0x217C28}, /* East Asian ideograph */ + {"\xB5", 0, 0x273A43}, /* East Asian ideograph */ + {"\xB4", 0, 0x273A4A}, /* East Asian ideograph */ + {"\xB6", 0, 0x273A4B}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D3970}, /* East Asian ideograph */ + {"\xAC", 0, 0x334770}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page55 = { + marc8r_9page55_flat, 0 +}; +/* PAGE 54 */ +struct yaz_iconv_trie_flat marc8r_9page54_flat[] = { + {"\x83", 0, 0x21396B}, /* East Asian ideograph */ + {"\x81", 0, 0x21396F}, /* East Asian ideograph */ + {"\x91", 0, 0x213973}, /* East Asian ideograph */ + {"\x98", 0, 0x213974}, /* East Asian ideograph */ + {"\xA3", 0, 0x213975}, /* East Asian ideograph */ + {"\x9C", 0, 0x213976}, /* East Asian ideograph */ + {"\x93", 0, 0x213977}, /* East Asian ideograph */ + {"\xA0", 0, 0x213979}, /* East Asian ideograph */ + {"\x9F", 0, 0x21397A}, /* East Asian ideograph */ + {"\x9B", 0, 0x21397B}, /* East Asian ideograph */ + {"\x8C", 0, 0x21397C}, /* East Asian ideograph */ + {"\xA9", 0, 0x21397D}, /* East Asian ideograph */ + {"\xA5", 0, 0x21397E}, /* East Asian ideograph */ + {"\xB6", 0, 0x213A24}, /* East Asian ideograph */ + {"\xBC", 0, 0x213A29}, /* East Asian ideograph */ + {"\x80", 0, 0x217A51}, /* East Asian ideograph */ + {"\xAA", 0, 0x217A6E}, /* East Asian ideograph */ + {"\x96", 0, 0x217A75}, /* East Asian ideograph */ + {"\x89", 0, 0x217A78}, /* East Asian ideograph */ + {"\x92", 0, 0x217A7E}, /* East Asian ideograph */ + {"\xB8", 0, 0x217B3A}, /* East Asian ideograph */ + {"\xB5", 0, 0x217B3D}, /* East Asian ideograph */ + {"\xAC", 0, 0x217B41}, /* East Asian ideograph */ + {"\x84", 0, 0x273A28}, /* East Asian ideograph */ + {"\xB4", 0, 0x273A41}, /* East Asian ideograph */ + {"\x87", 0, 0x273A44}, /* East Asian ideograph */ + {"\x85", 0, 0x277B3C}, /* East Asian ideograph */ + {"\xB2", 0, 0x277C24}, /* East Asian ideograph */ + {"\x86", 0, 0x277D2B}, /* East Asian ideograph */ + {"\x88", 0, 0x277D74}, /* East Asian ideograph */ + {"\xB1", 0, 0x2D397B}, /* East Asian ideograph */ + {"\xBF", 0, 0x2D3A26}, /* East Asian ideograph */ + {"\x9A", 0, 0x4B3666}, /* East Asian ideograph */ + {"\xAF", 0, 0x4B397B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page54 = { + marc8r_9page54_flat, 0 +}; +/* PAGE 53 */ +struct yaz_iconv_trie_flat marc8r_9page53_flat[] = { + {"\x91", 0, 0x21395B}, /* East Asian ideograph */ + {"\x86", 0, 0x21395D}, /* East Asian ideograph */ + {"\x90", 0, 0x21395E}, /* East Asian ideograph */ + {"\x97", 0, 0x21395F}, /* East Asian ideograph */ + {"\x92", 0, 0x213961}, /* East Asian ideograph */ + {"\x93", 0, 0x213962}, /* East Asian ideograph */ + {"\x8A", 0, 0x213963}, /* East Asian ideograph */ + {"\x8B", 0, 0x213965}, /* East Asian ideograph */ + {"\x94", 0, 0x213966}, /* East Asian ideograph */ + {"\xA3", 0, 0x213967}, /* East Asian ideograph */ + {"\xBF", 0, 0x213969}, /* East Asian ideograph */ + {"\x98", 0, 0x21396A}, /* East Asian ideograph */ + {"\xA8", 0, 0x21396C}, /* East Asian ideograph */ + {"\xA5", 0, 0x21396D}, /* East Asian ideograph */ + {"\xAA", 0, 0x21396E}, /* East Asian ideograph */ + {"\xBB", 0, 0x213970}, /* East Asian ideograph */ + {"\xA6", 0, 0x213971}, /* East Asian ideograph */ + {"\x9A", 0, 0x213972}, /* East Asian ideograph */ + {"\xAC", 0, 0x213978}, /* East Asian ideograph */ + {"\x85", 0, 0x217A24}, /* East Asian ideograph */ + {"\x8F", 0, 0x217A28}, /* East Asian ideograph */ + {"\x81", 0, 0x217A3E}, /* East Asian ideograph */ + {"\xB9", 0, 0x217A43}, /* East Asian ideograph */ + {"\xB8", 0, 0x217A44}, /* East Asian ideograph */ + {"\xAE", 0, 0x217A4F}, /* East Asian ideograph */ + {"\xB1", 0, 0x217A50}, /* East Asian ideograph */ + {"\x9E", 0, 0x217A52}, /* East Asian ideograph */ + {"\xBD", 0, 0x217A56}, /* East Asian ideograph */ + {"\xB6", 0, 0x217A5D}, /* East Asian ideograph */ + {"\x9D", 0, 0x217A5E}, /* East Asian ideograph */ + {"\xBA", 0, 0x217A5F}, /* East Asian ideograph */ + {"\xA4", 0, 0x217A61}, /* East Asian ideograph */ + {"\x9C", 0, 0x275624}, /* East Asian ideograph */ + {"\x99", 0, 0x2D3956}, /* East Asian ideograph */ + {"\x89", 0, 0x333963}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page53 = { + marc8r_9page53_flat, 0 +}; +/* PAGE 52 */ +struct yaz_iconv_trie_flat marc8r_9page52_flat[] = { + {"\x84", 0, 0x213945}, /* East Asian ideograph */ + {"\x83", 0, 0x213946}, /* East Asian ideograph */ + {"\x82", 0, 0x21394A}, /* East Asian ideograph */ + {"\x81", 0, 0x21394B}, /* East Asian ideograph */ + {"\xA8", 0, 0x21394C}, /* East Asian ideograph */ + {"\x92", 0, 0x21394D}, /* East Asian ideograph */ + {"\xA4", 0, 0x21394F}, /* East Asian ideograph */ + {"\xA3", 0, 0x213950}, /* East Asian ideograph */ + {"\x93", 0, 0x213951}, /* East Asian ideograph */ + {"\x9E", 0, 0x213952}, /* East Asian ideograph */ + {"\x9D", 0, 0x213953}, /* East Asian ideograph */ + {"\x99", 0, 0x213954}, /* East Asian ideograph */ + {"\xA5", 0, 0x213955}, /* East Asian ideograph */ + {"\x8A", 0, 0x213956}, /* East Asian ideograph */ + {"\x96", 0, 0x213957}, /* East Asian ideograph */ + {"\xBE", 0, 0x213958}, /* East Asian ideograph */ + {"\xBB", 0, 0x213959}, /* East Asian ideograph */ + {"\xAE", 0, 0x21395A}, /* East Asian ideograph */ + {"\xB9", 0, 0x21395C}, /* East Asian ideograph */ + {"\xAF", 0, 0x213960}, /* East Asian ideograph */ + {"\xA7", 0, 0x217969}, /* East Asian ideograph */ + {"\x98", 0, 0x21796B}, /* East Asian ideograph */ + {"\x9A", 0, 0x21796F}, /* East Asian ideograph */ + {"\xA0", 0, 0x217971}, /* East Asian ideograph */ + {"\x97", 0, 0x21797C}, /* East Asian ideograph */ + {"\x90", 0, 0x217A21}, /* East Asian ideograph */ + {"\xB5", 0, 0x217A25}, /* East Asian ideograph */ + {"\xBA", 0, 0x217A2A}, /* East Asian ideograph */ + {"\xB8", 0, 0x217A2C}, /* East Asian ideograph */ + {"\xB2", 0, 0x217A35}, /* East Asian ideograph */ + {"\xB7", 0, 0x217A3A}, /* East Asian ideograph */ + {"\x86", 0, 0x273953}, /* East Asian ideograph */ + {"\x87", 0, 0x273A27}, /* East Asian ideograph */ + {"\x88", 0, 0x273A36}, /* East Asian ideograph */ + {"\xAA", 0, 0x273A3B}, /* East Asian ideograph */ + {"\xA9", 0, 0x273A45}, /* East Asian ideograph */ + {"\xAB", 0, 0x277C36}, /* East Asian ideograph */ + {"\xAC", 0, 0x2D394D}, /* East Asian ideograph */ + {"\x8D", 0, 0x2D7A44}, /* East Asian ideograph */ + {"\xB3", 0, 0x393944}, /* East Asian ideograph */ + {"\x9B", 0, 0x69562C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page52 = { + marc8r_9page52_flat, 0 +}; +/* PAGE 51 */ +struct yaz_iconv_trie_flat marc8r_9page51_flat[] = { + {"\x94", 0, 0x21392F}, /* East Asian ideograph */ + {"\x89", 0, 0x213930}, /* East Asian ideograph */ + {"\x88", 0, 0x213931}, /* East Asian ideograph */ + {"\x87", 0, 0x213932}, /* East Asian ideograph */ + {"\x84", 0, 0x213933}, /* East Asian ideograph */ + {"\x95", 0, 0x213934}, /* East Asian ideograph */ + {"\x91", 0, 0x213935}, /* East Asian ideograph */ + {"\x8E", 0, 0x213936}, /* East Asian ideograph */ + {"\x8F", 0, 0x213937}, /* East Asian ideograph */ + {"\x90", 0, 0x213938}, /* East Asian ideograph */ + {"\x97", 0, 0x213939}, /* East Asian ideograph */ + {"\x98", 0, 0x21393A}, /* East Asian ideograph */ + {"\x9A", 0, 0x21393B}, /* East Asian ideograph */ + {"\xA0", 0, 0x21393C}, /* East Asian ideograph */ + {"\xA2", 0, 0x21393D}, /* East Asian ideograph */ + {"\xA7", 0, 0x21393E}, /* East Asian ideograph */ + {"\xA9", 0, 0x21393F}, /* East Asian ideograph */ + {"\xAA", 0, 0x213940}, /* East Asian ideograph */ + {"\xAE", 0, 0x213941}, /* East Asian ideograph */ + {"\xB3", 0, 0x213942}, /* East Asian ideograph */ + {"\xB4", 0, 0x213943}, /* East Asian ideograph */ + {"\xB6", 0, 0x213944}, /* East Asian ideograph */ + {"\xB8", 0, 0x213947}, /* East Asian ideograph */ + {"\xBD", 0, 0x213948}, /* East Asian ideograph */ + {"\xB9", 0, 0x213949}, /* East Asian ideograph */ + {"\x80", 0, 0x217933}, /* East Asian ideograph */ + {"\x8D", 0, 0x217938}, /* East Asian ideograph */ + {"\x93", 0, 0x217943}, /* East Asian ideograph */ + {"\x9C", 0, 0x21794B}, /* East Asian ideograph */ + {"\xA1", 0, 0x21794F}, /* East Asian ideograph */ + {"\xAC", 0, 0x217954}, /* East Asian ideograph */ + {"\xAD", 0, 0x217955}, /* East Asian ideograph */ + {"\xBC", 0, 0x217965}, /* East Asian ideograph */ + {"\x81", 0, 0x27393F}, /* East Asian ideograph */ + {"\x8B", 0, 0x273941}, /* East Asian ideograph */ + {"\x96", 0, 0x277954}, /* East Asian ideograph */ + {"\x82", 0, 0x4B3938}, /* East Asian ideograph */ + {"\xA5", 0, 0x4B393E}, /* East Asian ideograph */ + {"\xA8", 0, 0x4B7954}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page51 = { + marc8r_9page51_flat, 0 +}; +/* PAGE 50 */ +struct yaz_iconv_trie_flat marc8r_9page50_flat[] = { + {"\x8F", 0, 0x213878}, /* East Asian ideograph */ + {"\x94", 0, 0x213879}, /* East Asian ideograph */ + {"\x95", 0, 0x21387A}, /* East Asian ideograph */ + {"\x96", 0, 0x21387B}, /* East Asian ideograph */ + {"\x99", 0, 0x21387C}, /* East Asian ideograph */ + {"\x9A", 0, 0x21387D}, /* East Asian ideograph */ + {"\x9C", 0, 0x21387E}, /* East Asian ideograph */ + {"\xA0", 0, 0x213921}, /* East Asian ideograph */ + {"\xA4", 0, 0x213922}, /* East Asian ideograph */ + {"\xA5", 0, 0x213923}, /* East Asian ideograph */ + {"\xA2", 0, 0x213924}, /* East Asian ideograph */ + {"\xA7", 0, 0x213925}, /* East Asian ideograph */ + {"\xAA", 0, 0x213926}, /* East Asian ideograph */ + {"\xAB", 0, 0x213927}, /* East Asian ideograph */ + {"\xA9", 0, 0x213928}, /* East Asian ideograph */ + {"\xAD", 0, 0x213929}, /* East Asian ideograph */ + {"\xAE", 0, 0x21392A}, /* East Asian ideograph */ + {"\xB1", 0, 0x21392B}, /* East Asian ideograph */ + {"\xB7", 0, 0x21392C}, /* East Asian ideograph */ + {"\xBE", 0, 0x21392E}, /* East Asian ideograph */ + {"\x82", 0, 0x217870}, /* East Asian ideograph */ + {"\x86", 0, 0x217873}, /* East Asian ideograph */ + {"\x90", 0, 0x21787A}, /* East Asian ideograph */ + {"\xAC", 0, 0x217928}, /* East Asian ideograph */ + {"\xAF", 0, 0x21792B}, /* East Asian ideograph */ + {"\xBC", 0, 0x217930}, /* East Asian ideograph */ + {"\x91", 0, 0x22545C}, /* East Asian ideograph */ + {"\x87", 0, 0x273240}, /* East Asian ideograph */ + {"\xB9", 0, 0x27392E}, /* East Asian ideograph */ + {"\xBA", 0, 0x273940}, /* East Asian ideograph */ + {"\x8D", 0, 0x273D6F}, /* East Asian ideograph */ + {"\x84", 0, 0x275647}, /* East Asian ideograph */ + {"\xB8", 0, 0x275861}, /* East Asian ideograph */ + {"\xB4", 0, 0x276046}, /* East Asian ideograph */ + {"\x98", 0, 0x2D346A}, /* East Asian ideograph */ + {"\x80", 0, 0x2D3877}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D3921}, /* East Asian ideograph */ + {"\xB2", 0, 0x334369}, /* East Asian ideograph */ + {"\x9B", 0, 0x4B387D}, /* East Asian ideograph */ + {"\x89", 0, 0x4B594B}, /* East Asian ideograph */ + {"\x8A", 0, 0x4B7874}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page50 = { + marc8r_9page50_flat, 0 +}; +/* PAGE 49 */ +struct yaz_iconv_trie_flat marc8r_9page49_flat[] = { + {"\x87", 0, 0x213864}, /* East Asian ideograph (variant of EACC 4B3864) */ + {"\x85", 0, 0x213865}, /* East Asian ideograph */ + {"\x81", 0, 0x213866}, /* East Asian ideograph */ + {"\x95", 0, 0x213868}, /* East Asian ideograph */ + {"\x93", 0, 0x213869}, /* East Asian ideograph */ + {"\x91", 0, 0x21386A}, /* East Asian ideograph */ + {"\x99", 0, 0x21386B}, /* East Asian ideograph */ + {"\x98", 0, 0x21386C}, /* East Asian ideograph */ + {"\x9F", 0, 0x21386D}, /* East Asian ideograph */ + {"\x9E", 0, 0x21386E}, /* East Asian ideograph */ + {"\xA2", 0, 0x21386F}, /* East Asian ideograph */ + {"\xA4", 0, 0x213870}, /* East Asian ideograph */ + {"\xA9", 0, 0x213871}, /* East Asian ideograph */ + {"\xAB", 0, 0x213872}, /* East Asian ideograph */ + {"\xAC", 0, 0x213873}, /* East Asian ideograph */ + {"\xAF", 0, 0x213874}, /* East Asian ideograph */ + {"\xBA", 0, 0x213876}, /* East Asian ideograph */ + {"\xBD", 0, 0x213877}, /* East Asian ideograph */ + {"\x88", 0, 0x21783A}, /* East Asian ideograph */ + {"\x86", 0, 0x21784B}, /* East Asian ideograph */ + {"\x96", 0, 0x217850}, /* East Asian ideograph */ + {"\x92", 0, 0x217854}, /* East Asian ideograph */ + {"\x8E", 0, 0x217856}, /* East Asian ideograph */ + {"\xA0", 0, 0x21785A}, /* East Asian ideograph */ + {"\x9A", 0, 0x21785E}, /* East Asian ideograph */ + {"\xBC", 0, 0x21786C}, /* East Asian ideograph */ + {"\xAE", 0, 0x273874}, /* East Asian ideograph */ + {"\xB6", 0, 0x273876}, /* East Asian ideograph */ + {"\xB3", 0, 0x27463C}, /* East Asian ideograph */ + {"\xB0", 0, 0x275274}, /* East Asian ideograph */ + {"\x8A", 0, 0x2D386E}, /* East Asian ideograph */ + {"\xB7", 0, 0x2D3876}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D3A2F}, /* East Asian ideograph */ + {"\xB9", 0, 0x333021}, /* East Asian ideograph */ + {"\x9C", 0, 0x347431}, /* East Asian ideograph */ + {"\xB2", 0, 0x395A2F}, /* East Asian ideograph */ + {"\xB1", 0, 0x4B3021}, /* East Asian ideograph */ + {"\x87", 0, 0x4B3864}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B3870}, /* East Asian ideograph */ + {"\x97", 0, 0x69545C}, /* East Asian ideograph */ + {"\xA5", 0, 0x69545F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page49 = { + marc8r_9page49_flat, 0 +}; +/* PAGE 48 */ +struct yaz_iconv_trie_flat marc8r_9page48_flat[] = { + {"\x83", 0, 0x213857}, /* East Asian ideograph */ + {"\x8A", 0, 0x21385A}, /* East Asian ideograph */ + {"\x85", 0, 0x21385C}, /* East Asian ideograph */ + {"\x93", 0, 0x21385D}, /* East Asian ideograph */ + {"\x9E", 0, 0x21385E}, /* East Asian ideograph */ + {"\x80", 0, 0x21385F}, /* East Asian ideograph */ + {"\xB3", 0, 0x213860}, /* East Asian ideograph */ + {"\x9C", 0, 0x213861}, /* East Asian ideograph */ + {"\xAE", 0, 0x213862}, /* East Asian ideograph */ + {"\x9F", 0, 0x213863}, /* East Asian ideograph */ + {"\xBE", 0, 0x213867}, /* East Asian ideograph */ + {"\xA8", 0, 0x216267}, /* East Asian ideograph */ + {"\x9A", 0, 0x217755}, /* East Asian ideograph */ + {"\x92", 0, 0x217758}, /* East Asian ideograph */ + {"\x8E", 0, 0x21775A}, /* East Asian ideograph */ + {"\x89", 0, 0x21775C}, /* East Asian ideograph */ + {"\x9B", 0, 0x217760}, /* East Asian ideograph */ + {"\x88", 0, 0x217763}, /* East Asian ideograph */ + {"\x90", 0, 0x217765}, /* East Asian ideograph */ + {"\x98", 0, 0x217768}, /* East Asian ideograph */ + {"\x81", 0, 0x217770}, /* East Asian ideograph */ + {"\xA9", 0, 0x21777B}, /* East Asian ideograph */ + {"\xA1", 0, 0x21777E}, /* East Asian ideograph */ + {"\xB1", 0, 0x217824}, /* East Asian ideograph */ + {"\xAD", 0, 0x21782B}, /* East Asian ideograph */ + {"\xA0", 0, 0x21782E}, /* East Asian ideograph */ + {"\xA3", 0, 0x217830}, /* East Asian ideograph */ + {"\xA6", 0, 0x217832}, /* East Asian ideograph */ + {"\xBC", 0, 0x217841}, /* East Asian ideograph */ + {"\xBF", 0, 0x217849}, /* East Asian ideograph */ + {"\xBA", 0, 0x21784C}, /* East Asian ideograph */ + {"\x99", 0, 0x274A46}, /* East Asian ideograph */ + {"\x96", 0, 0x2D3854}, /* East Asian ideograph */ + {"\xAB", 0, 0x2D4550}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D4A46}, /* East Asian ideograph */ + {"\x9D", 0, 0x346622}, /* East Asian ideograph */ + {"\x97", 0, 0x4B385E}, /* East Asian ideograph */ + {"\xB9", 0, 0x695451}, /* East Asian ideograph */ + {"\xB8", 0, 0x695457}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page48 = { + marc8r_9page48_flat, 0 +}; +/* PAGE 47 */ +struct yaz_iconv_trie_flat marc8r_9page47_flat[] = { + {"\x9E", 0, 0x21384C}, /* East Asian ideograph */ + {"\x97", 0, 0x21384D}, /* East Asian ideograph */ + {"\x98", 0, 0x21384E}, /* East Asian ideograph */ + {"\x91", 0, 0x21384F}, /* East Asian ideograph */ + {"\xAB", 0, 0x213850}, /* East Asian ideograph */ + {"\x8C", 0, 0x213851}, /* East Asian ideograph */ + {"\x9A", 0, 0x213852}, /* East Asian ideograph */ + {"\xAD", 0, 0x213853}, /* East Asian ideograph */ + {"\x94", 0, 0x213854}, /* East Asian ideograph */ + {"\xA2", 0, 0x213855}, /* East Asian ideograph */ + {"\x8A", 0, 0x213856}, /* East Asian ideograph */ + {"\xBE", 0, 0x213858}, /* East Asian ideograph */ + {"\xB5", 0, 0x213859}, /* East Asian ideograph */ + {"\xB9", 0, 0x21385B}, /* East Asian ideograph */ + {"\x87", 0, 0x21765F}, /* East Asian ideograph */ + {"\x84", 0, 0x21767D}, /* East Asian ideograph */ + {"\x88", 0, 0x217721}, /* East Asian ideograph */ + {"\x8E", 0, 0x217730}, /* East Asian ideograph */ + {"\x9D", 0, 0x217733}, /* East Asian ideograph */ + {"\x99", 0, 0x217735}, /* East Asian ideograph */ + {"\x8B", 0, 0x217737}, /* East Asian ideograph */ + {"\xA5", 0, 0x21773D}, /* East Asian ideograph */ + {"\xAC", 0, 0x217740}, /* East Asian ideograph */ + {"\x92", 0, 0x217742}, /* East Asian ideograph */ + {"\xA4", 0, 0x217745}, /* East Asian ideograph */ + {"\x93", 0, 0x217747}, /* East Asian ideograph */ + {"\x8F", 0, 0x217748}, /* East Asian ideograph */ + {"\x8D", 0, 0x21774D}, /* East Asian ideograph */ + {"\x96", 0, 0x21774E}, /* East Asian ideograph */ + {"\x80", 0, 0x21775F}, /* East Asian ideograph */ + {"\xBC", 0, 0x217761}, /* East Asian ideograph */ + {"\xBD", 0, 0x21776B}, /* East Asian ideograph */ + {"\xBF", 0, 0x21776F}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D384A}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D5550}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D6251}, /* East Asian ideograph */ + {"\xA1", 0, 0x4B3850}, /* East Asian ideograph (variant of EACC 213850) */ + {"\xAD", 0, 0x4B3853}, /* East Asian ideograph */ + {"\x81", 0, 0x4B386C}, /* East Asian ideograph */ + {"\xB0", 0, 0x69544B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page47 = { + marc8r_9page47_flat, 0 +}; +/* PAGE 46 */ +struct yaz_iconv_trie_flat marc8r_9page46_flat[] = { + {"\x8A", 0, 0x21383E}, /* East Asian ideograph */ + {"\x85", 0, 0x21383F}, /* East Asian ideograph */ + {"\x82", 0, 0x213840}, /* East Asian ideograph */ + {"\x86", 0, 0x213841}, /* East Asian ideograph */ + {"\xB1", 0, 0x213844}, /* East Asian ideograph */ + {"\xAF", 0, 0x213845}, /* East Asian ideograph */ + {"\xB5", 0, 0x213846}, /* East Asian ideograph */ + {"\xAA", 0, 0x213847}, /* East Asian ideograph */ + {"\xB0", 0, 0x213848}, /* East Asian ideograph */ + {"\xA4", 0, 0x213849}, /* East Asian ideograph */ + {"\xB4", 0, 0x21384A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21384B}, /* East Asian ideograph */ + {"\x89", 0, 0x21756A}, /* East Asian ideograph */ + {"\x83", 0, 0x21762B}, /* East Asian ideograph */ + {"\x80", 0, 0x217633}, /* East Asian ideograph */ + {"\x87", 0, 0x217636}, /* East Asian ideograph */ + {"\x8E", 0, 0x217639}, /* East Asian ideograph */ + {"\x8F", 0, 0x21763B}, /* East Asian ideograph */ + {"\x90", 0, 0x21763E}, /* East Asian ideograph */ + {"\x8D", 0, 0x217640}, /* East Asian ideograph */ + {"\x81", 0, 0x217648}, /* East Asian ideograph */ + {"\x92", 0, 0x217649}, /* East Asian ideograph */ + {"\x8C", 0, 0x217650}, /* East Asian ideograph */ + {"\x93", 0, 0x217651}, /* East Asian ideograph */ + {"\x8B", 0, 0x217656}, /* East Asian ideograph */ + {"\x84", 0, 0x217659}, /* East Asian ideograph */ + {"\x9B", 0, 0x217667}, /* East Asian ideograph */ + {"\x99", 0, 0x217669}, /* East Asian ideograph */ + {"\xB3", 0, 0x21766A}, /* East Asian ideograph */ + {"\x9E", 0, 0x21766C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21766D}, /* East Asian ideograph */ + {"\xA7", 0, 0x217671}, /* East Asian ideograph */ + {"\xA8", 0, 0x217676}, /* East Asian ideograph */ + {"\xAE", 0, 0x217678}, /* East Asian ideograph */ + {"\x9D", 0, 0x21767A}, /* East Asian ideograph */ + {"\x98", 0, 0x217723}, /* East Asian ideograph */ + {"\xAD", 0, 0x217729}, /* East Asian ideograph */ + {"\xA0", 0, 0x21772B}, /* East Asian ideograph */ + {"\xBD", 0, 0x217749}, /* East Asian ideograph */ + {"\x91", 0, 0x27385B}, /* East Asian ideograph */ + {"\x95", 0, 0x273862}, /* East Asian ideograph */ + {"\xBA", 0, 0x2D4C2C}, /* East Asian ideograph */ + {"\xA6", 0, 0x2D5F2C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page46 = { + marc8r_9page46_flat, 0 +}; +/* PAGE 45 */ +struct yaz_iconv_trie_flat marc8r_9page45_flat[] = { + {"\x94", 0, 0x213835}, /* East Asian ideograph */ + {"\x82", 0, 0x213836}, /* East Asian ideograph */ + {"\x8E", 0, 0x213837}, /* East Asian ideograph */ + {"\x8B", 0, 0x213838}, /* East Asian ideograph */ + {"\x83", 0, 0x213839}, /* East Asian ideograph */ + {"\xB9", 0, 0x21383A}, /* East Asian ideograph */ + {"\xB7", 0, 0x21383B}, /* East Asian ideograph */ + {"\xBA", 0, 0x21383C}, /* East Asian ideograph */ + {"\x9F", 0, 0x21383D}, /* East Asian ideograph */ + {"\xA4", 0, 0x213842}, /* East Asian ideograph */ + {"\xA0", 0, 0x213843}, /* East Asian ideograph */ + {"\x87", 0, 0x217560}, /* East Asian ideograph */ + {"\x9B", 0, 0x217571}, /* East Asian ideograph */ + {"\x95", 0, 0x217573}, /* East Asian ideograph */ + {"\x92", 0, 0x217577}, /* East Asian ideograph */ + {"\x86", 0, 0x21757E}, /* East Asian ideograph */ + {"\x84", 0, 0x217622}, /* East Asian ideograph */ + {"\xA3", 0, 0x217629}, /* East Asian ideograph */ + {"\xBB", 0, 0x21762A}, /* East Asian ideograph */ + {"\xB6", 0, 0x21762C}, /* East Asian ideograph */ + {"\xA6", 0, 0x21762D}, /* East Asian ideograph */ + {"\xAD", 0, 0x217631}, /* East Asian ideograph */ + {"\xAC", 0, 0x217635}, /* East Asian ideograph */ + {"\xB4", 0, 0x21763D}, /* East Asian ideograph */ + {"\xAF", 0, 0x217643}, /* East Asian ideograph */ + {"\xBD", 0, 0x21764D}, /* East Asian ideograph */ + {"\xB8", 0, 0x21764E}, /* East Asian ideograph */ + {"\xB0", 0, 0x217652}, /* East Asian ideograph */ + {"\xB3", 0, 0x217658}, /* East Asian ideograph */ + {"\x8F", 0, 0x21765A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21765B}, /* East Asian ideograph */ + {"\xB5", 0, 0x217726}, /* East Asian ideograph */ + {"\x9A", 0, 0x27767A}, /* East Asian ideograph */ + {"\x98", 0, 0x277742}, /* East Asian ideograph */ + {"\x99", 0, 0x277745}, /* East Asian ideograph */ + {"\xBC", 0, 0x2D3C21}, /* East Asian ideograph */ + {"\x9C", 0, 0x335D3B}, /* East Asian ideograph */ + {"\x80", 0, 0x4B382E}, /* East Asian ideograph */ + {"\x93", 0, 0x4B7577}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B763D}, /* East Asian ideograph (variant of EACC 21763D) */ + {"\x96", 0, 0x695442}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page45 = { + marc8r_9page45_flat, 0 +}; +/* PAGE 44 */ +struct yaz_iconv_trie_flat marc8r_9page44_flat[] = { + {"\x83", 0, 0x213827}, /* East Asian ideograph */ + {"\x82", 0, 0x21382E}, /* East Asian ideograph */ + {"\xA0", 0, 0x213830}, /* East Asian ideograph */ + {"\x8B", 0, 0x213831}, /* East Asian ideograph */ + {"\xA3", 0, 0x213832}, /* East Asian ideograph */ + {"\xAE", 0, 0x213833}, /* East Asian ideograph */ + {"\xA2", 0, 0x213834}, /* East Asian ideograph */ + {"\x8A", 0, 0x217475}, /* East Asian ideograph */ + {"\x89", 0, 0x21752E}, /* East Asian ideograph */ + {"\x88", 0, 0x217533}, /* East Asian ideograph */ + {"\x9F", 0, 0x217538}, /* East Asian ideograph */ + {"\x90", 0, 0x217539}, /* East Asian ideograph */ + {"\x93", 0, 0x21753A}, /* East Asian ideograph */ + {"\x9E", 0, 0x21753F}, /* East Asian ideograph */ + {"\xB5", 0, 0x217540}, /* East Asian ideograph */ + {"\x9A", 0, 0x217543}, /* East Asian ideograph */ + {"\x94", 0, 0x217545}, /* East Asian ideograph */ + {"\xA4", 0, 0x217547}, /* East Asian ideograph */ + {"\x99", 0, 0x217548}, /* East Asian ideograph */ + {"\x8C", 0, 0x217549}, /* East Asian ideograph */ + {"\x97", 0, 0x21754B}, /* East Asian ideograph */ + {"\x9D", 0, 0x21754E}, /* East Asian ideograph */ + {"\x9C", 0, 0x217552}, /* East Asian ideograph */ + {"\xA7", 0, 0x217554}, /* East Asian ideograph */ + {"\xA1", 0, 0x217557}, /* East Asian ideograph */ + {"\xA1", 0, 0x217559}, /* East Asian ideograph (Unicode CJK Extension B) */ + {"\x95", 0, 0x21755B}, /* East Asian ideograph */ + {"\xB8", 0, 0x21755F}, /* East Asian ideograph */ + {"\xBE", 0, 0x21756C}, /* East Asian ideograph */ + {"\xA9", 0, 0x27383E}, /* East Asian ideograph */ + {"\xAB", 0, 0x27385A}, /* East Asian ideograph */ + {"\xA6", 0, 0x273867}, /* East Asian ideograph */ + {"\x92", 0, 0x27386C}, /* East Asian ideograph */ + {"\x84", 0, 0x27386D}, /* East Asian ideograph */ + {"\xAD", 0, 0x277638}, /* East Asian ideograph */ + {"\xB2", 0, 0x277748}, /* East Asian ideograph */ + {"\x85", 0, 0x27785A}, /* East Asian ideograph */ + {"\x86", 0, 0x27785E}, /* East Asian ideograph */ + {"\x9B", 0, 0x2D7552}, /* East Asian ideograph */ + {"\xBB", 0, 0x4B3871}, /* East Asian ideograph */ + {"\xB3", 0, 0x695438}, /* East Asian ideograph */ + {"\xAA", 0, 0x69543A}, /* East Asian ideograph */ + {"\xB0", 0, 0x69543B}, /* East Asian ideograph */ + {"\xB4", 0, 0x705B71}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page44 = { + marc8r_9page44_flat, 0 +}; +/* PAGE 43 */ +struct yaz_iconv_trie_flat marc8r_9page43_flat[] = { + {"\x91", 0, 0x21377C}, /* East Asian ideograph */ + {"\x8A", 0, 0x21377D}, /* East Asian ideograph */ + {"\x80", 0, 0x213821}, /* East Asian ideograph */ + {"\x87", 0, 0x213822}, /* East Asian ideograph */ + {"\x8D", 0, 0x213823}, /* East Asian ideograph */ + {"\x8E", 0, 0x213825}, /* East Asian ideograph */ + {"\xAA", 0, 0x213828}, /* East Asian ideograph */ + {"\xA9", 0, 0x213829}, /* East Asian ideograph */ + {"\xB7", 0, 0x21382A}, /* East Asian ideograph */ + {"\xA1", 0, 0x21382B}, /* East Asian ideograph */ + {"\xA4", 0, 0x21382C}, /* East Asian ideograph */ + {"\xA6", 0, 0x21382D}, /* East Asian ideograph */ + {"\xBC", 0, 0x21382F}, /* East Asian ideograph */ + {"\x89", 0, 0x217463}, /* East Asian ideograph */ + {"\x85", 0, 0x217465}, /* East Asian ideograph */ + {"\x8B", 0, 0x217468}, /* East Asian ideograph */ + {"\x8C", 0, 0x217469}, /* East Asian ideograph */ + {"\xA8", 0, 0x217470}, /* East Asian ideograph */ + {"\xAD", 0, 0x217477}, /* East Asian ideograph */ + {"\xB4", 0, 0x217479}, /* East Asian ideograph */ + {"\xA7", 0, 0x21747A}, /* East Asian ideograph */ + {"\xB0", 0, 0x217526}, /* East Asian ideograph */ + {"\xB1", 0, 0x217528}, /* East Asian ideograph */ + {"\xAE", 0, 0x21752A}, /* East Asian ideograph */ + {"\xB6", 0, 0x21752D}, /* East Asian ideograph */ + {"\xBF", 0, 0x217530}, /* East Asian ideograph */ + {"\xB5", 0, 0x217531}, /* East Asian ideograph */ + {"\xBB", 0, 0x217532}, /* East Asian ideograph */ + {"\xB3", 0, 0x217535}, /* East Asian ideograph */ + {"\x9E", 0, 0x273855}, /* East Asian ideograph */ + {"\x97", 0, 0x273856}, /* East Asian ideograph */ + {"\x9F", 0, 0x273860}, /* East Asian ideograph */ + {"\xA0", 0, 0x273861}, /* East Asian ideograph */ + {"\x9B", 0, 0x273864}, /* East Asian ideograph */ + {"\x8F", 0, 0x27386E}, /* East Asian ideograph */ + {"\x9C", 0, 0x27386F}, /* East Asian ideograph */ + {"\x9D", 0, 0x273871}, /* East Asian ideograph */ + {"\x90", 0, 0x273C77}, /* East Asian ideograph */ + {"\x9B", 0, 0x287431}, /* East Asian ideograph (duplicate simplified) */ + {"\x9A", 0, 0x2D383F}, /* East Asian ideograph */ + {"\xAB", 0, 0x2D3C70}, /* East Asian ideograph */ + {"\xAF", 0, 0x33386E}, /* East Asian ideograph */ + {"\x82", 0, 0x395E71}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page43 = { + marc8r_9page43_flat, 0 +}; +/* PAGE 42 */ +struct yaz_iconv_trie_flat marc8r_9page42_flat[] = { + {"\x83", 0, 0x21376D}, /* East Asian ideograph */ + {"\x88", 0, 0x21376E}, /* East Asian ideograph */ + {"\x8B", 0, 0x21376F}, /* East Asian ideograph */ + {"\x8D", 0, 0x213770}, /* East Asian ideograph */ + {"\x92", 0, 0x213771}, /* East Asian ideograph */ + {"\x93", 0, 0x213772}, /* East Asian ideograph */ + {"\x98", 0, 0x213773}, /* East Asian ideograph */ + {"\x96", 0, 0x213774}, /* East Asian ideograph */ + {"\x9F", 0, 0x213775}, /* East Asian ideograph */ + {"\xAD", 0, 0x213777}, /* East Asian ideograph */ + {"\xAF", 0, 0x213778}, /* East Asian ideograph */ + {"\xB0", 0, 0x213779}, /* East Asian ideograph */ + {"\xA8", 0, 0x21377A}, /* East Asian ideograph */ + {"\xB3", 0, 0x21377B}, /* East Asian ideograph */ + {"\xBE", 0, 0x213824}, /* East Asian ideograph */ + {"\x85", 0, 0x217427}, /* East Asian ideograph */ + {"\x84", 0, 0x217428}, /* East Asian ideograph */ + {"\x82", 0, 0x217429}, /* East Asian ideograph */ + {"\x8A", 0, 0x21742C}, /* East Asian ideograph */ + {"\x89", 0, 0x21742D}, /* East Asian ideograph */ + {"\x87", 0, 0x21742E}, /* East Asian ideograph */ + {"\x8C", 0, 0x217430}, /* East Asian ideograph */ + {"\x95", 0, 0x217431}, /* East Asian ideograph */ + {"\x94", 0, 0x217432}, /* East Asian ideograph */ + {"\x9A", 0, 0x217435}, /* East Asian ideograph */ + {"\x9B", 0, 0x217436}, /* East Asian ideograph */ + {"\x9C", 0, 0x217437}, /* East Asian ideograph */ + {"\x9D", 0, 0x217439}, /* East Asian ideograph */ + {"\x9E", 0, 0x21743A}, /* East Asian ideograph */ + {"\xA4", 0, 0x217441}, /* East Asian ideograph */ + {"\xAE", 0, 0x217442}, /* East Asian ideograph */ + {"\xA9", 0, 0x217443}, /* East Asian ideograph */ + {"\xB8", 0, 0x217448}, /* East Asian ideograph */ + {"\xAA", 0, 0x21744C}, /* East Asian ideograph */ + {"\xBF", 0, 0x21746A}, /* East Asian ideograph */ + {"\x86", 0, 0x273772}, /* East Asian ideograph */ + {"\xBA", 0, 0x27384A}, /* East Asian ideograph */ + {"\xB9", 0, 0x27386B}, /* East Asian ideograph */ + {"\xA3", 0, 0x27526F}, /* East Asian ideograph */ + {"\x80", 0, 0x2D376F}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D3830}, /* East Asian ideograph */ + {"\xAC", 0, 0x343A5B}, /* East Asian ideograph */ + {"\xA7", 0, 0x4B3869}, /* East Asian ideograph */ + {"\xA6", 0, 0x695429}, /* East Asian ideograph */ + {"\xB7", 0, 0x69542A}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page42 = { + marc8r_9page42_flat, 0 +}; +/* PAGE 41 */ +struct yaz_iconv_trie_flat marc8r_9page41_flat[] = { + {"\x80", 0, 0x21375C}, /* East Asian ideograph */ + {"\x81", 0, 0x21375D}, /* East Asian ideograph */ + {"\x82", 0, 0x21375E}, /* East Asian ideograph */ + {"\x8A", 0, 0x213760}, /* East Asian ideograph */ + {"\x89", 0, 0x213761}, /* East Asian ideograph */ + {"\x88", 0, 0x213762}, /* East Asian ideograph */ + {"\x91", 0, 0x213764}, /* East Asian ideograph */ + {"\x9B", 0, 0x213765}, /* East Asian ideograph */ + {"\x9A", 0, 0x213766}, /* East Asian ideograph */ + {"\xA0", 0, 0x213767}, /* East Asian ideograph */ + {"\x9E", 0, 0x213768}, /* East Asian ideograph */ + {"\xA4", 0, 0x213769}, /* East Asian ideograph */ + {"\xB1", 0, 0x21376B}, /* East Asian ideograph */ + {"\xBA", 0, 0x21376C}, /* East Asian ideograph */ + {"\x83", 0, 0x21735B}, /* East Asian ideograph */ + {"\x85", 0, 0x217360}, /* East Asian ideograph */ + {"\x8F", 0, 0x217362}, /* East Asian ideograph */ + {"\x8D", 0, 0x217367}, /* East Asian ideograph */ + {"\x94", 0, 0x21736A}, /* East Asian ideograph */ + {"\x97", 0, 0x21736B}, /* East Asian ideograph */ + {"\x9D", 0, 0x21736D}, /* East Asian ideograph */ + {"\xA1", 0, 0x21736F}, /* East Asian ideograph */ + {"\x9F", 0, 0x217370}, /* East Asian ideograph */ + {"\xAB", 0, 0x217375}, /* East Asian ideograph */ + {"\xAE", 0, 0x217376}, /* East Asian ideograph */ + {"\xA7", 0, 0x217377}, /* East Asian ideograph */ + {"\xBB", 0, 0x217379}, /* East Asian ideograph */ + {"\xB7", 0, 0x21737E}, /* East Asian ideograph */ + {"\xB9", 0, 0x217421}, /* East Asian ideograph */ + {"\xBF", 0, 0x217424}, /* East Asian ideograph */ + {"\xAF", 0, 0x27376F}, /* East Asian ideograph */ + {"\xB4", 0, 0x273770}, /* East Asian ideograph */ + {"\xAD", 0, 0x273771}, /* East Asian ideograph */ + {"\xA2", 0, 0x273773}, /* East Asian ideograph */ + {"\xBE", 0, 0x273774}, /* East Asian ideograph */ + {"\xB0", 0, 0x274D57}, /* East Asian ideograph */ + {"\xB5", 0, 0x27742E}, /* East Asian ideograph */ + {"\xA2", 0, 0x28702E}, /* East Asian ideograph (duplicate simplified) */ + {"\xAC", 0, 0x2D3768}, /* East Asian ideograph */ + {"\x93", 0, 0x2D7345}, /* East Asian ideograph */ + {"\xB2", 0, 0x393770}, /* East Asian ideograph */ + {"\x8C", 0, 0x39563C}, /* East Asian ideograph */ + {"\x98", 0, 0x4B3768}, /* East Asian ideograph */ + {"\xBD", 0, 0x4B376F}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B3773}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B3774}, /* East Asian ideograph */ + {"\xB9", 0, 0x4B7421}, /* East Asian ideograph (variant of EACC 217421) */ + {"\x8E", 0, 0x695375}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page41 = { + marc8r_9page41_flat, 0 +}; +/* PAGE 40 */ +struct yaz_iconv_trie_flat marc8r_9page40_flat[] = { + {"\x80", 0, 0x21374E}, /* East Asian ideograph */ + {"\x8E", 0, 0x21374F}, /* East Asian ideograph */ + {"\x85", 0, 0x213750}, /* East Asian ideograph */ + {"\x87", 0, 0x213751}, /* East Asian ideograph */ + {"\x90", 0, 0x213752}, /* East Asian ideograph */ + {"\x8F", 0, 0x213753}, /* East Asian ideograph */ + {"\x95", 0, 0x213754}, /* East Asian ideograph */ + {"\xAE", 0, 0x213755}, /* East Asian ideograph (variant of EACC 453755) */ + {"\xA8", 0, 0x213756}, /* East Asian ideograph */ + {"\xB0", 0, 0x213757}, /* East Asian ideograph */ + {"\xA5", 0, 0x213758}, /* East Asian ideograph */ + {"\xB7", 0, 0x213759}, /* East Asian ideograph */ + {"\xB4", 0, 0x21375A}, /* East Asian ideograph */ + {"\xB6", 0, 0x21375B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21375F}, /* East Asian ideograph */ + {"\x93", 0, 0x217325}, /* East Asian ideograph */ + {"\x8C", 0, 0x217328}, /* East Asian ideograph */ + {"\xBA", 0, 0x217332}, /* East Asian ideograph */ + {"\x86", 0, 0x217334}, /* East Asian ideograph */ + {"\x84", 0, 0x217335}, /* East Asian ideograph */ + {"\x91", 0, 0x217336}, /* East Asian ideograph */ + {"\x8A", 0, 0x217337}, /* East Asian ideograph */ + {"\x9E", 0, 0x21733E}, /* East Asian ideograph */ + {"\x9C", 0, 0x217341}, /* East Asian ideograph */ + {"\x9A", 0, 0x217342}, /* East Asian ideograph */ + {"\x99", 0, 0x217345}, /* East Asian ideograph */ + {"\xAD", 0, 0x21734B}, /* East Asian ideograph */ + {"\xA6", 0, 0x21734C}, /* East Asian ideograph */ + {"\xAC", 0, 0x21734E}, /* East Asian ideograph */ + {"\xB2", 0, 0x217353}, /* East Asian ideograph */ + {"\xB3", 0, 0x21735A}, /* East Asian ideograph */ + {"\xA3", 0, 0x27375E}, /* East Asian ideograph */ + {"\xAE", 0, 0x453755}, /* East Asian ideograph */ + {"\xA5", 0, 0x4B3758}, /* East Asian ideograph (variant of EACC 213758) */ + {"\xA0", 0, 0x4B4937}, /* East Asian ideograph */ + {"\xAF", 0, 0x4D3359}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page40 = { + marc8r_9page40_flat, 0 +}; +/* PAGE 39 */ +struct yaz_iconv_trie_flat marc8r_9page39_flat[] = { + {"\x8E", 0, 0x213734}, /* East Asian ideograph */ + {"\x97", 0, 0x213739}, /* East Asian ideograph */ + {"\x93", 0, 0x21373B}, /* East Asian ideograph */ + {"\x99", 0, 0x21373F}, /* East Asian ideograph */ + {"\xAB", 0, 0x213741}, /* East Asian ideograph */ + {"\xA4", 0, 0x213742}, /* East Asian ideograph */ + {"\xA9", 0, 0x213743}, /* East Asian ideograph */ + {"\xB8", 0, 0x213744}, /* East Asian ideograph */ + {"\xB4", 0, 0x213745}, /* East Asian ideograph */ + {"\xB9", 0, 0x213746}, /* East Asian ideograph */ + {"\xA5", 0, 0x213747}, /* East Asian ideograph */ + {"\xAA", 0, 0x213748}, /* East Asian ideograph */ + {"\xA8", 0, 0x213749}, /* East Asian ideograph */ + {"\xB1", 0, 0x21374A}, /* East Asian ideograph */ + {"\xAF", 0, 0x21374B}, /* East Asian ideograph */ + {"\xA2", 0, 0x21374C}, /* East Asian ideograph (variant of EACC 4B374C) */ + {"\xAC", 0, 0x21374D}, /* East Asian ideograph */ + {"\x82", 0, 0x217247}, /* East Asian ideograph */ + {"\x8C", 0, 0x217248}, /* East Asian ideograph */ + {"\x8B", 0, 0x21724B}, /* East Asian ideograph */ + {"\x80", 0, 0x217252}, /* East Asian ideograph */ + {"\x89", 0, 0x217257}, /* East Asian ideograph */ + {"\x81", 0, 0x217258}, /* East Asian ideograph */ + {"\x98", 0, 0x21725C}, /* East Asian ideograph */ + {"\x94", 0, 0x21725E}, /* East Asian ideograph */ + {"\x8D", 0, 0x217269}, /* East Asian ideograph */ + {"\x8F", 0, 0x21726C}, /* East Asian ideograph */ + {"\xB0", 0, 0x21726E}, /* East Asian ideograph */ + {"\x9F", 0, 0x21726F}, /* East Asian ideograph */ + {"\xBC", 0, 0x217270}, /* East Asian ideograph */ + {"\xA0", 0, 0x217272}, /* East Asian ideograph */ + {"\xB6", 0, 0x217278}, /* East Asian ideograph */ + {"\xA6", 0, 0x21727A}, /* East Asian ideograph */ + {"\xB3", 0, 0x21727B}, /* East Asian ideograph */ + {"\xAD", 0, 0x21727C}, /* East Asian ideograph */ + {"\xB2", 0, 0x21727E}, /* East Asian ideograph */ + {"\x9C", 0, 0x273754}, /* East Asian ideograph */ + {"\x90", 0, 0x2D3749}, /* East Asian ideograph */ + {"\xA8", 0, 0x4B3749}, /* East Asian ideograph (variant of EACC 213749) */ + {"\xA2", 0, 0x4B374C}, /* East Asian ideograph */ + {"\xBA", 0, 0x694838}, /* East Asian ideograph */ + {"\xBB", 0, 0x706067}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page39 = { + marc8r_9page39_flat, 0 +}; +/* PAGE 38 */ +struct yaz_iconv_trie_flat marc8r_9page38_flat[] = { + {"\x80", 0, 0x213724}, /* East Asian ideograph */ + {"\x9B", 0, 0x213725}, /* East Asian ideograph */ + {"\x96", 0, 0x213727}, /* East Asian ideograph */ + {"\x88", 0, 0x213729}, /* East Asian ideograph */ + {"\x9F", 0, 0x21372A}, /* East Asian ideograph */ + {"\x86", 0, 0x21372C}, /* East Asian ideograph (variant of EACC 4B372C) */ + {"\x89", 0, 0x21372D}, /* East Asian ideograph */ + {"\x94", 0, 0x21372E}, /* East Asian ideograph */ + {"\x8E", 0, 0x21372F}, /* East Asian ideograph */ + {"\x97", 0, 0x213730}, /* East Asian ideograph */ + {"\x8D", 0, 0x213731}, /* East Asian ideograph */ + {"\xAE", 0, 0x213732}, /* East Asian ideograph */ + {"\xAF", 0, 0x213733}, /* East Asian ideograph */ + {"\xB6", 0, 0x213735}, /* East Asian ideograph */ + {"\xB2", 0, 0x213736}, /* East Asian ideograph */ + {"\xBB", 0, 0x213737}, /* East Asian ideograph */ + {"\xB9", 0, 0x213738}, /* East Asian ideograph */ + {"\xBF", 0, 0x21373C}, /* East Asian ideograph */ + {"\xB4", 0, 0x21373D}, /* East Asian ideograph */ + {"\xB7", 0, 0x21373E}, /* East Asian ideograph */ + {"\xB0", 0, 0x213740}, /* East Asian ideograph */ + {"\x85", 0, 0x21712A}, /* East Asian ideograph */ + {"\xA7", 0, 0x21717E}, /* East Asian ideograph */ + {"\x92", 0, 0x217225}, /* East Asian ideograph */ + {"\x8F", 0, 0x217228}, /* East Asian ideograph */ + {"\x9E", 0, 0x21722E}, /* East Asian ideograph */ + {"\x8C", 0, 0x217231}, /* East Asian ideograph */ + {"\x9C", 0, 0x217234}, /* East Asian ideograph */ + {"\x90", 0, 0x217235}, /* East Asian ideograph */ + {"\x81", 0, 0x217236}, /* East Asian ideograph */ + {"\x93", 0, 0x217238}, /* East Asian ideograph */ + {"\x82", 0, 0x21723C}, /* East Asian ideograph */ + {"\x9D", 0, 0x217242}, /* East Asian ideograph */ + {"\xB5", 0, 0x217255}, /* East Asian ideograph */ + {"\xA0", 0, 0x21725D}, /* East Asian ideograph */ + {"\xAA", 0, 0x217260}, /* East Asian ideograph */ + {"\xBD", 0, 0x217261}, /* East Asian ideograph */ + {"\xAC", 0, 0x217264}, /* East Asian ideograph */ + {"\xB8", 0, 0x217267}, /* East Asian ideograph */ + {"\xAB", 0, 0x21726B}, /* East Asian ideograph */ + {"\xA4", 0, 0x27375B}, /* East Asian ideograph */ + {"\xB1", 0, 0x273764}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D5941}, /* East Asian ideograph */ + {"\x91", 0, 0x393573}, /* East Asian ideograph */ + {"\x86", 0, 0x4B372C}, /* East Asian ideograph */ + {"\xA3", 0, 0x706054}, /* East Asian ideograph */ + {"\xAD", 0, 0x706058}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page38 = { + marc8r_9page38_flat, 0 +}; +/* PAGE 37 */ +struct yaz_iconv_trie_dir marc8r_9page37_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x217178} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21715E} /* East Asian ideograph */, + {0, 0, 0x217165} /* East Asian ideograph */, + {0, 0, 0x21367E} /* East Asian ideograph */, + {0, 0, 0x213722} /* East Asian ideograph */, + {0, 0, 0x213678} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21715F} /* East Asian ideograph */, + {0, 0, 0x217161} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x217158} /* East Asian ideograph */, + {0, 0, 0x21715B} /* East Asian ideograph */, + {0, 0, 0x21367A} /* East Asian ideograph */, + {0, 0, 0x21716F} /* East Asian ideograph */, + {0, 0, 0x217159} /* East Asian ideograph */, + {0, 0, 0x213675} /* East Asian ideograph */, + {0, 0, 0x217170} /* East Asian ideograph */, + {0, 0, 0x213679} /* East Asian ideograph */, + {0, 0, 0x2D7164} /* East Asian ideograph (variant of EACC 217164) */, + {0, 0, 0}, + {0, 0, 0x217177} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21715D} /* East Asian ideograph */, + {0, 0, 0x213721} /* East Asian ideograph */, + {0, 0, 0x21715A} /* East Asian ideograph */, + {0, 0, 0x213676} /* East Asian ideograph */, + {0, 0, 0x217162} /* East Asian ideograph */, + {0, 0, 0x21715C} /* East Asian ideograph */, + {0, 0, 0x213674} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213723} /* East Asian ideograph */, + {0, 0, 0x2D7143} /* East Asian ideograph */, + {0, 0, 0x21367B} /* East Asian ideograph */, + {0, 0, 0x21367D} /* East Asian ideograph */, + {0, 0, 0x217175} /* East Asian ideograph */, + {0, 0, 0x213677} /* East Asian ideograph */, + {0, 0, 0x216C50} /* East Asian ideograph */, + {0, 0, 0x213673} /* East Asian ideograph */, + {0, 0, 0x217169} /* East Asian ideograph */, + {0, 0, 0x70603A} /* East Asian ideograph */, + {0, 0, 0x27375D} /* East Asian ideograph */, + {0, 0, 0x4B356A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21367C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x217179} /* East Asian ideograph */, + {0, 0, 0x27374B} /* East Asian ideograph */, + {0, 0, 0x217156} /* East Asian ideograph */, + {0, 0, 0x70604C} /* East Asian ideograph */, + {0, 0, 0x217239} /* East Asian ideograph */, + {0, 0, 0x213728} /* East Asian ideograph */, + {0, 0, 0x217227} /* East Asian ideograph */, + {0, 0, 0x21722B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x217224} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21372B} /* East Asian ideograph */, + {0, 0, 0x213726} /* East Asian ideograph */, + {0, 0, 0x217244} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page37 = { + 0, marc8r_9page37_dir +}; +/* PAGE 36 */ +struct yaz_iconv_trie_flat marc8r_9page36_flat[] = { + {"\xA7", 0, 0x21365A}, /* East Asian ideograph */ + {"\x80", 0, 0x21365B}, /* East Asian ideograph */ + {"\x94", 0, 0x21365F}, /* East Asian ideograph */ + {"\x87", 0, 0x213660}, /* East Asian ideograph */ + {"\x9C", 0, 0x213661}, /* East Asian ideograph */ + {"\x8B", 0, 0x213662}, /* East Asian ideograph */ + {"\xAA", 0, 0x213663}, /* East Asian ideograph */ + {"\xB3", 0, 0x213664}, /* East Asian ideograph */ + {"\x8A", 0, 0x213665}, /* East Asian ideograph */ + {"\x83", 0, 0x213666}, /* East Asian ideograph */ + {"\xB1", 0, 0x213667}, /* East Asian ideograph */ + {"\xAE", 0, 0x213668}, /* East Asian ideograph */ + {"\x82", 0, 0x213669}, /* East Asian ideograph */ + {"\x9F", 0, 0x21366A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21366B}, /* East Asian ideograph */ + {"\x98", 0, 0x21366C}, /* East Asian ideograph */ + {"\x9A", 0, 0x21366D}, /* East Asian ideograph */ + {"\xAC", 0, 0x21366F}, /* East Asian ideograph */ + {"\x89", 0, 0x213670}, /* East Asian ideograph */ + {"\xB2", 0, 0x213671}, /* East Asian ideograph */ + {"\xBB", 0, 0x213672}, /* East Asian ideograph */ + {"\x84", 0, 0x21523F}, /* East Asian ideograph */ + {"\x91", 0, 0x217123}, /* East Asian ideograph */ + {"\xA8", 0, 0x217126}, /* East Asian ideograph */ + {"\xAD", 0, 0x217127}, /* East Asian ideograph */ + {"\x93", 0, 0x21712D}, /* East Asian ideograph */ + {"\x86", 0, 0x21712F}, /* East Asian ideograph */ + {"\x88", 0, 0x217134}, /* East Asian ideograph */ + {"\xB4", 0, 0x217136}, /* East Asian ideograph */ + {"\x81", 0, 0x217144}, /* East Asian ideograph */ + {"\x8E", 0, 0x217145}, /* East Asian ideograph */ + {"\xB5", 0, 0x217147}, /* East Asian ideograph */ + {"\x8F", 0, 0x217149}, /* East Asian ideograph */ + {"\xA4", 0, 0x217150}, /* East Asian ideograph */ + {"\x92", 0, 0x217151}, /* East Asian ideograph */ + {"\x99", 0, 0x217152}, /* East Asian ideograph */ + {"\xBD", 0, 0x273731}, /* East Asian ideograph */ + {"\xB7", 0, 0x273745}, /* East Asian ideograph */ + {"\xBE", 0, 0x27735A}, /* East Asian ideograph */ + {"\xAB", 0, 0x2D3547}, /* East Asian ideograph */ + {"\x9E", 0, 0x39365E}, /* East Asian ideograph */ + {"\xB0", 0, 0x396074}, /* East Asian ideograph */ + {"\xB6", 0, 0x4B4A2E}, /* East Asian ideograph */ + {"\xB9", 0, 0x70602D}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page36 = { + marc8r_9page36_flat, 0 +}; +/* PAGE 35 */ +struct yaz_iconv_trie_flat marc8r_9page35_flat[] = { + {"\x96", 0, 0x213644}, /* East Asian ideograph */ + {"\x86", 0, 0x213646}, /* East Asian ideograph */ + {"\x8F", 0, 0x213648}, /* East Asian ideograph */ + {"\x9E", 0, 0x213649}, /* East Asian ideograph */ + {"\xA6", 0, 0x21364A}, /* East Asian ideograph */ + {"\xAA", 0, 0x21364B}, /* East Asian ideograph */ + {"\x8A", 0, 0x21364C}, /* East Asian ideograph */ + {"\x84", 0, 0x21364D}, /* East Asian ideograph */ + {"\x9C", 0, 0x21364E}, /* East Asian ideograph */ + {"\x83", 0, 0x213650}, /* East Asian ideograph */ + {"\xA1", 0, 0x213652}, /* East Asian ideograph */ + {"\xA3", 0, 0x213654}, /* East Asian ideograph */ + {"\x95", 0, 0x213655}, /* East Asian ideograph */ + {"\xA4", 0, 0x213658}, /* East Asian ideograph */ + {"\xBB", 0, 0x21365C}, /* East Asian ideograph */ + {"\xBC", 0, 0x21365D}, /* East Asian ideograph */ + {"\xBE", 0, 0x21366E}, /* East Asian ideograph */ + {"\x93", 0, 0x21424F}, /* East Asian ideograph */ + {"\xB5", 0, 0x21704B}, /* East Asian ideograph */ + {"\xB3", 0, 0x21704D}, /* East Asian ideograph */ + {"\x8C", 0, 0x21704E}, /* East Asian ideograph */ + {"\xB6", 0, 0x21704F}, /* East Asian ideograph */ + {"\x8D", 0, 0x217050}, /* East Asian ideograph */ + {"\x9A", 0, 0x217051}, /* East Asian ideograph */ + {"\x90", 0, 0x217055}, /* East Asian ideograph */ + {"\x88", 0, 0x217058}, /* East Asian ideograph */ + {"\x91", 0, 0x21705A}, /* East Asian ideograph */ + {"\xA2", 0, 0x217060}, /* East Asian ideograph */ + {"\x89", 0, 0x217064}, /* East Asian ideograph */ + {"\x80", 0, 0x21706A}, /* East Asian ideograph */ + {"\x85", 0, 0x217070}, /* East Asian ideograph */ + {"\x81", 0, 0x21707B}, /* East Asian ideograph */ + {"\xA5", 0, 0x21707D}, /* East Asian ideograph */ + {"\xB7", 0, 0x217125}, /* East Asian ideograph */ + {"\x99", 0, 0x21714B}, /* East Asian ideograph */ + {"\xAC", 0, 0x273678}, /* East Asian ideograph */ + {"\xA7", 0, 0x273727}, /* East Asian ideograph */ + {"\xB8", 0, 0x273733}, /* East Asian ideograph */ + {"\xAD", 0, 0x27375C}, /* East Asian ideograph */ + {"\xAE", 0, 0x277345}, /* East Asian ideograph */ + {"\x97", 0, 0x2D3644}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D424F}, /* East Asian ideograph */ + {"\x94", 0, 0x39424F}, /* East Asian ideograph */ + {"\x9D", 0, 0x69533B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page35 = { + marc8r_9page35_flat, 0 +}; +/* PAGE 34 */ +struct yaz_iconv_trie_flat marc8r_9page34_flat[] = { + {"\x81", 0, 0x213634}, /* East Asian ideograph */ + {"\x90", 0, 0x213636}, /* East Asian ideograph */ + {"\x94", 0, 0x213638}, /* East Asian ideograph */ + {"\x86", 0, 0x213641}, /* East Asian ideograph */ + {"\x89", 0, 0x213642}, /* East Asian ideograph */ + {"\xB3", 0, 0x213645}, /* East Asian ideograph */ + {"\xB7", 0, 0x213647}, /* East Asian ideograph (Version J extension) */ + {"\xB1", 0, 0x21364F}, /* East Asian ideograph */ + {"\xAC", 0, 0x213651}, /* East Asian ideograph */ + {"\xBE", 0, 0x213653}, /* East Asian ideograph */ + {"\xAF", 0, 0x213656}, /* East Asian ideograph */ + {"\xAE", 0, 0x213657}, /* East Asian ideograph */ + {"\xB8", 0, 0x213659}, /* East Asian ideograph */ + {"\xA7", 0, 0x21365E}, /* East Asian ideograph */ + {"\x9A", 0, 0x216F7B}, /* East Asian ideograph */ + {"\x87", 0, 0x216F7D}, /* East Asian ideograph */ + {"\x97", 0, 0x217023}, /* East Asian ideograph */ + {"\x8A", 0, 0x21702B}, /* East Asian ideograph */ + {"\x98", 0, 0x21702E}, /* East Asian ideograph */ + {"\x84", 0, 0x217030}, /* East Asian ideograph */ + {"\x88", 0, 0x217034}, /* East Asian ideograph */ + {"\x8E", 0, 0x21703E}, /* East Asian ideograph */ + {"\xA3", 0, 0x217044}, /* East Asian ideograph */ + {"\x8F", 0, 0x217046}, /* East Asian ideograph */ + {"\x91", 0, 0x217047}, /* East Asian ideograph */ + {"\xBC", 0, 0x217053}, /* East Asian ideograph */ + {"\xB9", 0, 0x217057}, /* East Asian ideograph */ + {"\xAD", 0, 0x217059}, /* East Asian ideograph */ + {"\xAA", 0, 0x21705D}, /* East Asian ideograph */ + {"\xB6", 0, 0x217061}, /* East Asian ideograph */ + {"\xB0", 0, 0x217068}, /* East Asian ideograph */ + {"\xB5", 0, 0x21706B}, /* East Asian ideograph */ + {"\xBF", 0, 0x217079}, /* East Asian ideograph */ + {"\xA4", 0, 0x27366D}, /* East Asian ideograph */ + {"\xA0", 0, 0x273732}, /* East Asian ideograph */ + {"\xA2", 0, 0x277169}, /* East Asian ideograph */ + {"\x9B", 0, 0x277234}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page34 = { + marc8r_9page34_flat, 0 +}; +/* PAGE 33 */ +struct yaz_iconv_trie_flat marc8r_9page33_flat[] = { + {"\x80", 0, 0x213624}, /* East Asian ideograph */ + {"\x87", 0, 0x213628}, /* East Asian ideograph */ + {"\x89", 0, 0x213629}, /* East Asian ideograph */ + {"\x84", 0, 0x21362A}, /* East Asian ideograph */ + {"\x82", 0, 0x21362B}, /* East Asian ideograph */ + {"\x81", 0, 0x21362D}, /* East Asian ideograph */ + {"\x8E", 0, 0x21362F}, /* East Asian ideograph */ + {"\x88", 0, 0x213633}, /* East Asian ideograph */ + {"\xBC", 0, 0x213635}, /* East Asian ideograph */ + {"\xAA", 0, 0x213637}, /* East Asian ideograph */ + {"\xBA", 0, 0x213639}, /* East Asian ideograph */ + {"\xA5", 0, 0x21363A}, /* East Asian ideograph */ + {"\xAE", 0, 0x21363B}, /* East Asian ideograph */ + {"\xB2", 0, 0x21363C}, /* East Asian ideograph */ + {"\xA8", 0, 0x21363D}, /* East Asian ideograph */ + {"\xA1", 0, 0x21363E}, /* East Asian ideograph */ + {"\xA9", 0, 0x21363F}, /* East Asian ideograph */ + {"\xAD", 0, 0x213640}, /* East Asian ideograph */ + {"\xA6", 0, 0x213643}, /* East Asian ideograph */ + {"\x8F", 0, 0x216F5C}, /* East Asian ideograph */ + {"\x9E", 0, 0x216F6B}, /* East Asian ideograph */ + {"\x96", 0, 0x216F6C}, /* East Asian ideograph */ + {"\x86", 0, 0x216F74}, /* East Asian ideograph */ + {"\xA2", 0, 0x216F7C}, /* East Asian ideograph */ + {"\xBD", 0, 0x217024}, /* East Asian ideograph */ + {"\xA7", 0, 0x217025}, /* East Asian ideograph */ + {"\xB3", 0, 0x217027}, /* East Asian ideograph */ + {"\xA4", 0, 0x21702A}, /* East Asian ideograph */ + {"\xBF", 0, 0x21702D}, /* East Asian ideograph */ + {"\xAF", 0, 0x217032}, /* East Asian ideograph */ + {"\xB6", 0, 0x217038}, /* East Asian ideograph */ + {"\xB7", 0, 0x217039}, /* East Asian ideograph */ + {"\x91", 0, 0x273649}, /* East Asian ideograph */ + {"\x9F", 0, 0x273671}, /* East Asian ideograph */ + {"\x9D", 0, 0x273747}, /* East Asian ideograph */ + {"\x8D", 0, 0x276036}, /* East Asian ideograph */ + {"\x94", 0, 0x277239}, /* East Asian ideograph */ + {"\x93", 0, 0x277255}, /* East Asian ideograph */ + {"\x92", 0, 0x277272}, /* East Asian ideograph */ + {"\x95", 0, 0x27727A}, /* East Asian ideograph */ + {"\x99", 0, 0x27727E}, /* East Asian ideograph */ + {"\x9C", 0, 0x277328}, /* East Asian ideograph */ + {"\x97", 0, 0x335941}, /* East Asian ideograph */ + {"\x8C", 0, 0x4B357B}, /* East Asian ideograph */ + {"\x98", 0, 0x695326}, /* East Asian ideograph */ + {"\x90", 0, 0x705F51}, /* East Asian ideograph */ + {"\x9A", 0, 0x705F61}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page33 = { + marc8r_9page33_flat, 0 +}; +/* PAGE 32 */ +struct yaz_iconv_trie_flat marc8r_9page32_flat[] = { + {"\x95", 0, 0x21356B}, /* East Asian ideograph */ + {"\x96", 0, 0x21356D}, /* East Asian ideograph */ + {"\x92", 0, 0x213571}, /* East Asian ideograph */ + {"\x84", 0, 0x213572}, /* East Asian ideograph */ + {"\x86", 0, 0x213575}, /* East Asian ideograph */ + {"\x8B", 0, 0x213576}, /* East Asian ideograph */ + {"\x8C", 0, 0x213577}, /* East Asian ideograph */ + {"\x90", 0, 0x213578}, /* East Asian ideograph */ + {"\x9A", 0, 0x21357C}, /* East Asian ideograph */ + {"\x8E", 0, 0x21357D}, /* East Asian ideograph */ + {"\xA9", 0, 0x21357E}, /* East Asian ideograph */ + {"\xAA", 0, 0x213621}, /* East Asian ideograph */ + {"\xA8", 0, 0x213622}, /* East Asian ideograph */ + {"\xAC", 0, 0x213623}, /* East Asian ideograph */ + {"\xB3", 0, 0x213625}, /* East Asian ideograph */ + {"\xA6", 0, 0x213626}, /* East Asian ideograph */ + {"\xAB", 0, 0x213627}, /* East Asian ideograph */ + {"\xB1", 0, 0x213630}, /* East Asian ideograph */ + {"\xBB", 0, 0x213631}, /* East Asian ideograph */ + {"\xAF", 0, 0x213632}, /* East Asian ideograph */ + {"\x9C", 0, 0x216F2F}, /* East Asian ideograph */ + {"\x88", 0, 0x216F35}, /* East Asian ideograph */ + {"\x82", 0, 0x216F39}, /* East Asian ideograph */ + {"\x91", 0, 0x216F3B}, /* East Asian ideograph */ + {"\x94", 0, 0x216F42}, /* East Asian ideograph */ + {"\x8D", 0, 0x216F49}, /* East Asian ideograph */ + {"\xA4", 0, 0x216F55}, /* East Asian ideograph */ + {"\xA1", 0, 0x216F58}, /* East Asian ideograph */ + {"\xAD", 0, 0x216F5A}, /* East Asian ideograph */ + {"\xBA", 0, 0x216F5B}, /* East Asian ideograph */ + {"\xBE", 0, 0x216F5E}, /* East Asian ideograph */ + {"\xA5", 0, 0x216F60}, /* East Asian ideograph */ + {"\xA7", 0, 0x216F63}, /* East Asian ideograph */ + {"\xB5", 0, 0x216F64}, /* East Asian ideograph */ + {"\xA2", 0, 0x216F66}, /* East Asian ideograph */ + {"\xBC", 0, 0x216F69}, /* East Asian ideograph */ + {"\xB7", 0, 0x216F6A}, /* East Asian ideograph */ + {"\xAE", 0, 0x216F6D}, /* East Asian ideograph */ + {"\xBF", 0, 0x216F71}, /* East Asian ideograph */ + {"\x80", 0, 0x27373D}, /* East Asian ideograph */ + {"\x9B", 0, 0x27374E}, /* East Asian ideograph */ + {"\x99", 0, 0x273756}, /* East Asian ideograph */ + {"\xB8", 0, 0x276250}, /* East Asian ideograph */ + {"\xBD", 0, 0x2D3758}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D584D}, /* East Asian ideograph */ + {"\xB2", 0, 0x334F71}, /* East Asian ideograph */ + {"\x9D", 0, 0x705F50}, /* East Asian ideograph */ + {"\xB4", 0, 0x705F54}, /* East Asian ideograph */ + {"\xA3", 0, 0x705F5B}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page32 = { + marc8r_9page32_flat, 0 +}; +/* PAGE 31 */ +struct yaz_iconv_trie_flat marc8r_9page31_flat[] = { + {"\x8E", 0, 0x213551}, /* East Asian ideograph */ + {"\x80", 0, 0x213554}, /* East Asian ideograph */ + {"\x86", 0, 0x213556}, /* East Asian ideograph */ + {"\x83", 0, 0x213558}, /* East Asian ideograph */ + {"\x8A", 0, 0x21355F}, /* East Asian ideograph */ + {"\x88", 0, 0x213560}, /* East Asian ideograph */ + {"\x82", 0, 0x213564}, /* East Asian ideograph */ + {"\xB3", 0, 0x213568}, /* East Asian ideograph */ + {"\xA2", 0, 0x213569}, /* East Asian ideograph */ + {"\xB5", 0, 0x21356A}, /* East Asian ideograph */ + {"\xB8", 0, 0x21356C}, /* East Asian ideograph */ + {"\xB7", 0, 0x21356E}, /* East Asian ideograph */ + {"\xBB", 0, 0x21356F}, /* East Asian ideograph */ + {"\xBC", 0, 0x213573}, /* East Asian ideograph */ + {"\xA8", 0, 0x213574}, /* East Asian ideograph */ + {"\xBD", 0, 0x213579}, /* East Asian ideograph */ + {"\xB6", 0, 0x21357A}, /* East Asian ideograph */ + {"\xB1", 0, 0x21357B}, /* East Asian ideograph */ + {"\x8C", 0, 0x216E6C}, /* East Asian ideograph */ + {"\x85", 0, 0x216E6D}, /* East Asian ideograph */ + {"\x94", 0, 0x216E79}, /* East Asian ideograph */ + {"\x8F", 0, 0x216F21}, /* East Asian ideograph */ + {"\x9F", 0, 0x216F2E}, /* East Asian ideograph */ + {"\xBF", 0, 0x216F37}, /* East Asian ideograph */ + {"\xAD", 0, 0x216F3A}, /* East Asian ideograph */ + {"\xAB", 0, 0x216F43}, /* East Asian ideograph */ + {"\xA3", 0, 0x216F4A}, /* East Asian ideograph */ + {"\xB4", 0, 0x216F4B}, /* East Asian ideograph */ + {"\xA6", 0, 0x216F52}, /* East Asian ideograph */ + {"\xA4", 0, 0x216F53}, /* East Asian ideograph */ + {"\xB2", 0, 0x216F67}, /* East Asian ideograph */ + {"\xB0", 0, 0x216F68}, /* East Asian ideograph */ + {"\x98", 0, 0x27363E}, /* East Asian ideograph */ + {"\x9C", 0, 0x273721}, /* East Asian ideograph */ + {"\x9B", 0, 0x273722}, /* East Asian ideograph */ + {"\x95", 0, 0x27372E}, /* East Asian ideograph */ + {"\x93", 0, 0x273762}, /* East Asian ideograph */ + {"\x99", 0, 0x276F69}, /* East Asian ideograph */ + {"\x97", 0, 0x277030}, /* East Asian ideograph */ + {"\x92", 0, 0x277267}, /* East Asian ideograph */ + {"\x96", 0, 0x27734C}, /* East Asian ideograph */ + {"\xAA", 0, 0x2D3571}, /* East Asian ideograph */ + {"\x89", 0, 0x33355C}, /* East Asian ideograph */ + {"\x8B", 0, 0x4D386F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page31 = { + marc8r_9page31_flat, 0 +}; +/* PAGE 30 */ +struct yaz_iconv_trie_dir marc8r_9page30_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x275055} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213547} /* East Asian ideograph */, + {0, 0, 0x213546} /* East Asian ideograph */, + {0, 0, 0x33365A} /* East Asian ideograph */, + {0, 0, 0x216E68} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275E5D} /* East Asian ideograph */, + {0, 0, 0x213540} /* East Asian ideograph */, + {0, 0, 0x213544} /* East Asian ideograph */, + {0, 0, 0x21353F} /* East Asian ideograph */, + {0, 0, 0x213543} /* East Asian ideograph */, + {0, 0, 0x213545} /* East Asian ideograph */, + {0, 0, 0x273D65} /* East Asian ideograph */, + {0, 0, 0x213542} /* East Asian ideograph */, + {0, 0, 0x213541} /* East Asian ideograph */, + {0, 0, 0x273755} /* East Asian ideograph */, + {0, 0, 0x213548} /* East Asian ideograph */, + {0, 0, 0x273751} /* East Asian ideograph */, + {0, 0, 0x216E61} /* East Asian ideograph */, + {0, 0, 0x333564} /* East Asian ideograph */, + {0, 0, 0x705F39} /* East Asian ideograph */, + {0, 0, 0x27367A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x216E6F} /* East Asian ideograph */, + {0, 0, 0x213550} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21354E} /* East Asian ideograph */, + {0, 0, 0x21354F} /* East Asian ideograph */, + {0, 0, 0x213566} /* East Asian ideograph */, + {0, 0, 0x21355A} /* East Asian ideograph */, + {0, 0, 0x216E76} /* East Asian ideograph */, + {0, 0, 0x216F26} /* East Asian ideograph */, + {0, 0, 0x216F27} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x213559} /* East Asian ideograph */, + {0, 0, 0x213553} /* East Asian ideograph */, + {0, 0, 0x273744} /* East Asian ideograph */, + {0, 0, 0x213567} /* East Asian ideograph */, + {0, 0, 0x216F24} /* East Asian ideograph */, + {0, 0, 0x213565} /* East Asian ideograph */, + {0, 0, 0x27527B} /* East Asian ideograph */, + {0, 0, 0x21354D} /* East Asian ideograph */, + {0, 0, 0x21355E} /* East Asian ideograph */, + {0, 0, 0x27424F} /* East Asian ideograph */, + {0, 0, 0x216E78} /* East Asian ideograph */, + {0, 0, 0x213555} /* East Asian ideograph */, + {0, 0, 0x216E70} /* East Asian ideograph */, + {0, 0, 0x21355C} /* East Asian ideograph */, + {0, 0, 0x2D355C} /* East Asian ideograph */, + {0, 0, 0x21355D} /* East Asian ideograph */, + {0, 0, 0x21355B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213562} /* East Asian ideograph */, + {0, 0, 0x213563} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213561} /* East Asian ideograph */, + {0, 0, 0x213557} /* East Asian ideograph */, + {0, 0, 0x216E7D} /* East Asian ideograph */, + {0, 0, 0x213552} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page30 = { + 0, marc8r_9page30_dir +}; +/* PAGE 29 */ +struct yaz_iconv_trie_flat marc8r_9page29_flat[] = { + {"\x84", 0, 0x213475}, /* East Asian ideograph */ + {"\x9A", 0, 0x213476}, /* East Asian ideograph */ + {"\x9D", 0, 0x213477}, /* East Asian ideograph */ + {"\x9F", 0, 0x213478}, /* East Asian ideograph */ + {"\xA5", 0, 0x213479}, /* East Asian ideograph */ + {"\xAD", 0, 0x21347A}, /* East Asian ideograph */ + {"\xB2", 0, 0x21347B}, /* East Asian ideograph */ + {"\xBB", 0, 0x21347C}, /* East Asian ideograph */ + {"\x80", 0, 0x216D5D}, /* East Asian ideograph */ + {"\x8E", 0, 0x216D64}, /* East Asian ideograph */ + {"\x93", 0, 0x216D66}, /* East Asian ideograph */ + {"\x94", 0, 0x216D67}, /* East Asian ideograph */ + {"\x99", 0, 0x216D6D}, /* East Asian ideograph */ + {"\xA4", 0, 0x216D7A}, /* East Asian ideograph */ + {"\xAB", 0, 0x216D7B}, /* East Asian ideograph */ + {"\xB5", 0, 0x216E2C}, /* East Asian ideograph */ + {"\xB9", 0, 0x216E2E}, /* East Asian ideograph */ + {"\xAF", 0, 0x222D56}, /* East Asian ideograph */ + {"\x8C", 0, 0x27347A}, /* East Asian ideograph */ + {"\x89", 0, 0x27347B}, /* East Asian ideograph */ + {"\x8B", 0, 0x273869}, /* East Asian ideograph */ + {"\x95", 0, 0x273C7E}, /* East Asian ideograph */ + {"\x82", 0, 0x273D2C}, /* East Asian ideograph */ + {"\x85", 0, 0x273D2F}, /* East Asian ideograph */ + {"\x86", 0, 0x274349}, /* East Asian ideograph (duplicate simplified) */ + {"\x86", 0, 0x27462A}, /* East Asian ideograph */ + {"\xB6", 0, 0x274F25}, /* East Asian ideograph */ + {"\xBF", 0, 0x275164}, /* East Asian ideograph (variant of EACC 455164) */ + {"\x98", 0, 0x275D3D}, /* East Asian ideograph */ + {"\x8D", 0, 0x276D6D}, /* East Asian ideograph */ + {"\xA3", 0, 0x276E2A}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D3C7D}, /* East Asian ideograph */ + {"\xA0", 0, 0x2D3C7E}, /* East Asian ideograph */ + {"\xAE", 0, 0x2D3D29}, /* East Asian ideograph */ + {"\x96", 0, 0x2D3D2D}, /* East Asian ideograph */ + {"\x9B", 0, 0x2D3D2F}, /* East Asian ideograph */ + {"\xA8", 0, 0x333D28}, /* East Asian ideograph */ + {"\xA9", 0, 0x3A284C}, /* East Asian ideograph (variant of EACC 4C284C) */ + {"\xBF", 0, 0x455164}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B375A}, /* East Asian ideograph */ + {"\xA6", 0, 0x4B3D24}, /* East Asian ideograph */ + {"\xB0", 0, 0x4B3D2C}, /* East Asian ideograph */ + {"\xA9", 0, 0x4C284C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page29 = { + marc8r_9page29_flat, 0 +}; +/* PAGE 28 */ +struct yaz_iconv_trie_dir marc8r_9page28_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x213455} /* East Asian ideograph */, + {0, 0, 0x213457} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213458} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213459} /* East Asian ideograph */, + {0, 0, 0x27345F} /* East Asian ideograph */, + {0, 0, 0x21345B} /* East Asian ideograph */, + {0, 0, 0x21345A} /* East Asian ideograph */, + {0, 0, 0x2D345D} /* East Asian ideograph */, + {0, 0, 0x21345C} /* East Asian ideograph */, + {0, 0, 0x39302D} /* East Asian ideograph */, + {0, 0, 0x216D41} /* East Asian ideograph */, + {0, 0, 0x216D42} /* East Asian ideograph */, + {0, 0, 0x27553C} /* East Asian ideograph */, + {0, 0, 0x273460} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213462} /* East Asian ideograph */, + {0, 0, 0x21345F} /* East Asian ideograph */, + {0, 0, 0x213461} /* East Asian ideograph */, + {0, 0, 0x213460} /* East Asian ideograph */, + {0, 0, 0x273668} /* East Asian ideograph */, + {0, 0, 0x275A2F} /* East Asian ideograph */, + {0, 0, 0x213463} /* East Asian ideograph */, + {0, 0, 0x4B3668} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213464} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275573} /* East Asian ideograph */, + {0, 0, 0x216D4B} /* East Asian ideograph */, + {0, 0, 0x213466} /* East Asian ideograph */, + {0, 0, 0x216E58} /* East Asian ideograph */, + {0, 0, 0x27313C} /* East Asian ideograph */, + {0, 0, 0x213467} /* East Asian ideograph */, + {0, 0, 0x274D3F} /* East Asian ideograph */, + {0, 0, 0x216D4C} /* East Asian ideograph */, + {0, 0, 0x295D3C} /* East Asian ideograph */, + {0, 0, 0x216D4E} /* East Asian ideograph */, + {0, 0, 0x213469} /* East Asian ideograph */, + {0, 0, 0x2D5424} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275C6B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275749} /* East Asian ideograph */, + {0, 0, 0x216D53} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21346B} /* East Asian ideograph */, + {0, 0, 0x21346A} /* East Asian ideograph */, + {0, 0, 0x21346C} /* East Asian ideograph */, + {0, 0, 0x21346D} /* East Asian ideograph */, + {0, 0, 0x216D57} /* East Asian ideograph */, + {0, 0, 0x2D346E} /* East Asian ideograph */, + {0, 0, 0x2D3473} /* East Asian ideograph */, + {0, 0, 0x21346F} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27407B} /* East Asian ideograph */, + {0, 0, 0x213471} /* East Asian ideograph */, + {0, 0, 0x3F3E47} /* East Asian ideograph */, + {0, 0, 0x216D58} /* East Asian ideograph */, + {0, 0, 0x213473} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21346E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213474} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page28 = { + 0, marc8r_9page28_dir +}; +/* PAGE 27 */ +struct yaz_iconv_trie_dir marc8r_9page27_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x33347D} /* East Asian ideograph */, + {0, 0, 0x27347D} /* East Asian ideograph */, + {0, 0, 0x21347D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21347E} /* East Asian ideograph */, + {0, 0, 0x213521} /* East Asian ideograph */, + {0, 0, 0x213523} /* East Asian ideograph */, + {0, 0, 0x213522} /* East Asian ideograph */, + {0, 0, 0x275F4E} /* East Asian ideograph */, + {0, 0, 0x213524} /* East Asian ideograph */, + {0, 0, 0x33423D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x216E3E} /* East Asian ideograph */, + {0, 0, 0x27615F} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x213526} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213525} /* East Asian ideograph */, + {0, 0, 0x213527} /* East Asian ideograph */, + {0, 0, 0x27594B} /* East Asian ideograph */, + {0, 0, 0x2D4249} /* East Asian ideograph */, + {0, 0, 0x216E48} /* East Asian ideograph */, + {0, 0, 0x213528} /* East Asian ideograph */, + {0, 0, 0x333529} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x213529} /* East Asian ideograph */, + {0, 0, 0x2D4C3C} /* East Asian ideograph */, + {0, 0, 0x2D4D65} /* East Asian ideograph */, + {0, 0, 0x21352B} /* East Asian ideograph */, + {0, 0, 0x21352C} /* East Asian ideograph */, + {0, 0, 0x21352E} /* East Asian ideograph */, + {0, 0, 0x213539} /* East Asian ideograph */, + {0, 0, 0x213535} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213534} /* East Asian ideograph */, + {0, 0, 0x213531} /* East Asian ideograph */, + {0, 0, 0x275F3E} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x213537} /* East Asian ideograph */, + {0, 0, 0x213536} /* East Asian ideograph */, + {0, 0, 0x21353B} /* East Asian ideograph */, + {0, 0, 0x21352F} /* East Asian ideograph */, + {0, 0, 0x213530} /* East Asian ideograph */, + {0, 0, 0x283B7D} /* East Asian ideograph (duplicate simplified) */, + {0, 0, 0x21353A} /* East Asian ideograph */, + {0, 0, 0x21353D} /* East Asian ideograph */, + {0, 0, 0x213532} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21344B} /* East Asian ideograph */, + {0, 0, 0x27554F} /* East Asian ideograph */, + {0, 0, 0x27564A} /* East Asian ideograph */, + {0, 0, 0x21352D} /* East Asian ideograph */, + {0, 0, 0x27372C} /* East Asian ideograph */, + {0, 0, 0x69525D} /* East Asian ideograph */, + {0, 0, 0x216E57} /* East Asian ideograph */, + {0, 0, 0x213533} /* East Asian ideograph */, + {0, 0, 0x273740} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page27 = { + 0, marc8r_9page27_dir +}; +/* PAGE 26 */ +struct yaz_iconv_trie_flat marc8r_9page26_flat[] = { + {"\x85", 0, 0x213441}, /* East Asian ideograph */ + {"\x86", 0, 0x213442}, /* East Asian ideograph */ + {"\x88", 0, 0x213443}, /* East Asian ideograph */ + {"\x8D", 0, 0x213444}, /* East Asian ideograph */ + {"\x90", 0, 0x213445}, /* East Asian ideograph */ + {"\x8F", 0, 0x213446}, /* East Asian ideograph */ + {"\x95", 0, 0x213447}, /* East Asian ideograph */ + {"\x96", 0, 0x213448}, /* East Asian ideograph */ + {"\x97", 0, 0x213449}, /* East Asian ideograph */ + {"\x99", 0, 0x21344A}, /* East Asian ideograph */ + {"\x9D", 0, 0x21344C}, /* East Asian ideograph */ + {"\xA1", 0, 0x21344D}, /* East Asian ideograph */ + {"\xA0", 0, 0x21344E}, /* East Asian ideograph */ + {"\xA3", 0, 0x21344F}, /* East Asian ideograph */ + {"\xAA", 0, 0x213450}, /* East Asian ideograph */ + {"\xAF", 0, 0x213451}, /* East Asian ideograph */ + {"\xB1", 0, 0x213452}, /* East Asian ideograph */ + {"\xB9", 0, 0x213453}, /* East Asian ideograph */ + {"\xBE", 0, 0x213454}, /* East Asian ideograph */ + {"\xBF", 0, 0x213456}, /* East Asian ideograph */ + {"\x87", 0, 0x216C69}, /* East Asian ideograph */ + {"\x83", 0, 0x216C6A}, /* East Asian ideograph */ + {"\x86", 0, 0x216C6B}, /* East Asian ideograph */ + {"\x8A", 0, 0x216C6E}, /* East Asian ideograph */ + {"\x8B", 0, 0x216C6F}, /* East Asian ideograph */ + {"\x91", 0, 0x216C77}, /* East Asian ideograph */ + {"\x9A", 0, 0x216D23}, /* East Asian ideograph */ + {"\x9C", 0, 0x216D24}, /* East Asian ideograph */ + {"\x9F", 0, 0x216D25}, /* East Asian ideograph */ + {"\xAD", 0, 0x216D2E}, /* East Asian ideograph */ + {"\xB0", 0, 0x216D33}, /* East Asian ideograph */ + {"\xB5", 0, 0x216D36}, /* East Asian ideograph */ + {"\xB8", 0, 0x216D3A}, /* East Asian ideograph */ + {"\xBD", 0, 0x216D3E}, /* East Asian ideograph */ + {"\xAE", 0, 0x273452}, /* East Asian ideograph */ + {"\xBA", 0, 0x273455}, /* East Asian ideograph */ + {"\xBB", 0, 0x275D31}, /* East Asian ideograph */ + {"\xA6", 0, 0x276D2E}, /* East Asian ideograph */ + {"\xB3", 0, 0x4B393F}, /* East Asian ideograph */ + {"\x82", 0, 0x694677}, /* East Asian ideograph */ + {"\x81", 0, 0x694C68}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page26 = { + marc8r_9page26_flat, 0 +}; +/* PAGE 25 */ +struct yaz_iconv_trie_flat marc8r_9page25_flat[] = { + {"\x87", 0, 0x21342D}, /* East Asian ideograph */ + {"\x83", 0, 0x21342E}, /* East Asian ideograph */ + {"\x81", 0, 0x21342F}, /* East Asian ideograph */ + {"\x89", 0, 0x213430}, /* East Asian ideograph */ + {"\x98", 0, 0x213431}, /* East Asian ideograph */ + {"\x92", 0, 0x213432}, /* East Asian ideograph */ + {"\x99", 0, 0x213433}, /* East Asian ideograph */ + {"\x95", 0, 0x213434}, /* East Asian ideograph */ + {"\x9E", 0, 0x213435}, /* East Asian ideograph */ + {"\x9B", 0, 0x213436}, /* East Asian ideograph */ + {"\x9D", 0, 0x213437}, /* East Asian ideograph */ + {"\xA2", 0, 0x213438}, /* East Asian ideograph */ + {"\xA4", 0, 0x213439}, /* East Asian ideograph */ + {"\x9F", 0, 0x21343A}, /* East Asian ideograph */ + {"\xB5", 0, 0x21343C}, /* East Asian ideograph */ + {"\xB8", 0, 0x21343D}, /* East Asian ideograph */ + {"\xBB", 0, 0x21343E}, /* East Asian ideograph */ + {"\xBF", 0, 0x213440}, /* East Asian ideograph */ + {"\x97", 0, 0x214357}, /* East Asian ideograph */ + {"\x8A", 0, 0x216C3C}, /* East Asian ideograph */ + {"\x8D", 0, 0x216C3D}, /* East Asian ideograph */ + {"\x90", 0, 0x216C40}, /* East Asian ideograph */ + {"\x91", 0, 0x216C41}, /* East Asian ideograph */ + {"\x94", 0, 0x216C46}, /* East Asian ideograph */ + {"\x96", 0, 0x216C48}, /* East Asian ideograph */ + {"\xA3", 0, 0x216C4C}, /* East Asian ideograph */ + {"\xA1", 0, 0x216C4E}, /* East Asian ideograph */ + {"\xA9", 0, 0x216C53}, /* East Asian ideograph */ + {"\xB0", 0, 0x216C58}, /* East Asian ideograph */ + {"\xB1", 0, 0x216C5A}, /* East Asian ideograph */ + {"\xB7", 0, 0x216C5E}, /* East Asian ideograph */ + {"\xB9", 0, 0x216C61}, /* East Asian ideograph */ + {"\xBA", 0, 0x216C62}, /* East Asian ideograph */ + {"\xBC", 0, 0x216C64}, /* East Asian ideograph */ + {"\x8B", 0, 0x273436}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D3436}, /* East Asian ideograph */ + {"\xA7", 0, 0x2D343D}, /* East Asian ideograph */ + {"\xBE", 0, 0x2D3539}, /* East Asian ideograph */ + {"\x85", 0, 0x2E363F}, /* East Asian ideograph */ + {"\xA6", 0, 0x33337B}, /* East Asian ideograph */ + {"\xA0", 0, 0x453F6D}, /* East Asian ideograph */ + {"\xB2", 0, 0x4B3436}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page25 = { + marc8r_9page25_flat, 0 +}; +/* PAGE 24 */ +struct yaz_iconv_trie_flat marc8r_9page24_flat[] = { + {"\x83", 0, 0x21337C}, /* East Asian ideograph */ + {"\x88", 0, 0x21337D}, /* East Asian ideograph */ + {"\x87", 0, 0x21337E}, /* East Asian ideograph */ + {"\x8D", 0, 0x213421}, /* East Asian ideograph */ + {"\x89", 0, 0x213422}, /* East Asian ideograph */ + {"\x91", 0, 0x213423}, /* East Asian ideograph */ + {"\x9B", 0, 0x213424}, /* East Asian ideograph */ + {"\x9F", 0, 0x213425}, /* East Asian ideograph */ + {"\xA0", 0, 0x213426}, /* East Asian ideograph */ + {"\xA3", 0, 0x213427}, /* East Asian ideograph */ + {"\xAB", 0, 0x213428}, /* East Asian ideograph */ + {"\xA9", 0, 0x213429}, /* East Asian ideograph */ + {"\xAC", 0, 0x21342A}, /* East Asian ideograph */ + {"\xAA", 0, 0x21342B}, /* East Asian ideograph */ + {"\xBE", 0, 0x21342C}, /* East Asian ideograph */ + {"\x82", 0, 0x216B74}, /* East Asian ideograph */ + {"\x81", 0, 0x216B75}, /* East Asian ideograph */ + {"\x8C", 0, 0x216B79}, /* East Asian ideograph */ + {"\x8A", 0, 0x216B7A}, /* East Asian ideograph */ + {"\x90", 0, 0x216B7C}, /* East Asian ideograph */ + {"\x93", 0, 0x216C21}, /* East Asian ideograph */ + {"\x96", 0, 0x216C27}, /* East Asian ideograph */ + {"\x98", 0, 0x216C29}, /* East Asian ideograph */ + {"\x9A", 0, 0x216C2B}, /* East Asian ideograph */ + {"\x99", 0, 0x216C2C}, /* East Asian ideograph */ + {"\xA6", 0, 0x216C2E}, /* East Asian ideograph */ + {"\xAD", 0, 0x216C31}, /* East Asian ideograph */ + {"\xAE", 0, 0x216C33}, /* East Asian ideograph */ + {"\xBB", 0, 0x216C37}, /* East Asian ideograph */ + {"\xBC", 0, 0x216C38}, /* East Asian ideograph */ + {"\xB2", 0, 0x27342F}, /* East Asian ideograph */ + {"\xA1", 0, 0x273433}, /* East Asian ideograph */ + {"\xA8", 0, 0x273434}, /* East Asian ideograph */ + {"\xB3", 0, 0x273435}, /* East Asian ideograph */ + {"\xBF", 0, 0x273438}, /* East Asian ideograph */ + {"\xB1", 0, 0x27343C}, /* East Asian ideograph */ + {"\x9D", 0, 0x27343D}, /* East Asian ideograph */ + {"\x9E", 0, 0x275B5F}, /* East Asian ideograph */ + {"\xB5", 0, 0x2D335F}, /* East Asian ideograph */ + {"\x94", 0, 0x2D3421}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D343C}, /* East Asian ideograph */ + {"\xB9", 0, 0x334243}, /* East Asian ideograph */ + {"\xB4", 0, 0x4B3435}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page24 = { + marc8r_9page24_flat, 0 +}; +/* PAGE 23 */ +struct yaz_iconv_trie_flat marc8r_9page23_flat[] = { + {"\x81", 0, 0x213366}, /* East Asian ideograph */ + {"\x83", 0, 0x213368}, /* East Asian ideograph */ + {"\x8D", 0, 0x213369}, /* East Asian ideograph */ + {"\x8C", 0, 0x21336A}, /* East Asian ideograph */ + {"\x8B", 0, 0x21336B}, /* East Asian ideograph */ + {"\x8A", 0, 0x21336C}, /* East Asian ideograph */ + {"\x87", 0, 0x21336D}, /* East Asian ideograph */ + {"\x9C", 0, 0x21336E}, /* East Asian ideograph */ + {"\x96", 0, 0x21336F}, /* East Asian ideograph */ + {"\x9B", 0, 0x213370}, /* East Asian ideograph */ + {"\x94", 0, 0x213371}, /* East Asian ideograph */ + {"\x9D", 0, 0x213372}, /* East Asian ideograph */ + {"\xAA", 0, 0x213373}, /* East Asian ideograph */ + {"\xAF", 0, 0x213374}, /* East Asian ideograph */ + {"\xB2", 0, 0x213375}, /* East Asian ideograph */ + {"\xB4", 0, 0x213376}, /* East Asian ideograph */ + {"\xA9", 0, 0x213377}, /* East Asian ideograph */ + {"\xB5", 0, 0x213378}, /* East Asian ideograph */ + {"\xBD", 0, 0x21337A}, /* East Asian ideograph */ + {"\xBF", 0, 0x21337B}, /* East Asian ideograph */ + {"\x84", 0, 0x216B3E}, /* East Asian ideograph */ + {"\x89", 0, 0x216B43}, /* East Asian ideograph */ + {"\xA0", 0, 0x216B47}, /* East Asian ideograph */ + {"\x9A", 0, 0x216B4B}, /* East Asian ideograph */ + {"\x92", 0, 0x216B4C}, /* East Asian ideograph */ + {"\x9E", 0, 0x216B4D}, /* East Asian ideograph */ + {"\x9F", 0, 0x216B50}, /* East Asian ideograph */ + {"\x95", 0, 0x216B53}, /* East Asian ideograph */ + {"\xAE", 0, 0x216B5B}, /* East Asian ideograph */ + {"\xA8", 0, 0x216B5E}, /* East Asian ideograph */ + {"\xB8", 0, 0x216B6B}, /* East Asian ideograph */ + {"\x80", 0, 0x273376}, /* East Asian ideograph */ + {"\xA7", 0, 0x27337E}, /* East Asian ideograph */ + {"\x91", 0, 0x273421}, /* East Asian ideograph */ + {"\x82", 0, 0x273423}, /* East Asian ideograph */ + {"\x90", 0, 0x276B5B}, /* East Asian ideograph */ + {"\xA5", 0, 0x2D3372}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D6B5F}, /* East Asian ideograph */ + {"\xA1", 0, 0x2E3172}, /* East Asian ideograph */ + {"\xB0", 0, 0x333377}, /* East Asian ideograph */ + {"\xA4", 0, 0x333423}, /* East Asian ideograph */ + {"\x97", 0, 0x335E2F}, /* East Asian ideograph */ + {"\x8F", 0, 0x336B33}, /* East Asian ideograph */ + {"\xB7", 0, 0x395E2F}, /* East Asian ideograph */ + {"\x99", 0, 0x396B33}, /* East Asian ideograph */ + {"\xB1", 0, 0x453421}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B3421}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page23 = { + marc8r_9page23_flat, 0 +}; +/* PAGE 22 */ +struct yaz_iconv_trie_dir marc8r_9page22_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21334F} /* East Asian ideograph */, + {0, 0, 0x213350} /* East Asian ideograph */, + {0, 0, 0x2D334F} /* East Asian ideograph */, + {0, 0, 0x213351} /* East Asian ideograph */, + {0, 0, 0x4B3351} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213353} /* East Asian ideograph */, + {0, 0, 0x213352} /* East Asian ideograph */, + {0, 0, 0x213354} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213355} /* East Asian ideograph */, + {0, 0, 0x4B3355} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27545C} /* East Asian ideograph */, + {0, 0, 0x213359} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x2D3356} /* East Asian ideograph */, + {0, 0, 0x27337C} /* East Asian ideograph */, + {0, 0, 0x216B24} /* East Asian ideograph */, + {0, 0, 0x2D4029} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x216B26} /* East Asian ideograph */, + {0, 0, 0x213357} /* East Asian ideograph */, + {0, 0, 0x273422} /* East Asian ideograph */, + {0, 0, 0x27336D} /* East Asian ideograph */, + {0, 0, 0x273370} /* East Asian ideograph */, + {0, 0, 0x273378} /* East Asian ideograph */, + {0, 0, 0x216B2A} /* East Asian ideograph */, + {0, 0, 0x21574E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x396B2F} /* East Asian ideograph */, + {0, 0, 0x21335C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21335A} /* East Asian ideograph */, + {0, 0, 0x21335B} /* East Asian ideograph */, + {0, 0, 0x2D3428} /* East Asian ideograph */, + {0, 0, 0x393428} /* East Asian ideograph */, + {0, 0, 0x21335D} /* East Asian ideograph */, + {0, 0, 0x21335E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x4B335B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x276B3E} /* East Asian ideograph */, + {0, 0, 0x27605E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213362} /* East Asian ideograph */, + {0, 0, 0x2D6B33} /* East Asian ideograph */, + {0, 0, 0x216B37} /* East Asian ideograph */, + {0, 0, 0x216B39} /* East Asian ideograph */, + {0, 0, 0x2D3366} /* East Asian ideograph */, + {0, 0, 0x216B36} /* East Asian ideograph */, + {0, 0, 0x27576C} /* East Asian ideograph */, + {0, 0, 0x213361} /* East Asian ideograph */, + {0, 0, 0x21335F} /* East Asian ideograph */, + {0, 0, 0x213367} /* East Asian ideograph */, + {0, 0, 0x213363} /* East Asian ideograph */, + {0, 0, 0x213360} /* East Asian ideograph */, + {0, 0, 0x333428} /* East Asian ideograph */, + {0, 0, 0x276B7A} /* East Asian ideograph */, + {0, 0, 0x4B576C} /* East Asian ideograph */, + {0, 0, 0x276B79} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page22 = { + 0, marc8r_9page22_dir +}; +/* PAGE 21 */ +struct yaz_iconv_trie_dir marc8r_9page21_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {81, 0, 0}, + {82, 0, 0}, + {83, 0, 0}, + {84, 0, 0}, + {85, 0, 0}, + {86, 0, 0}, + {87, 0, 0}, + {88, 0, 0}, + {89, 0, 0}, + {90, 0, 0}, + {91, 0, 0}, + {92, 0, 0}, + {93, 0, 0}, + {94, 0, 0}, + {95, 0, 0}, + {96, 0, 0}, + {97, 0, 0}, + {98, 0, 0}, + {99, 0, 0}, + {100, 0, 0}, + {101, 0, 0}, + {102, 0, 0}, + {103, 0, 0}, + {104, 0, 0}, + {105, 0, 0}, + {106, 0, 0}, + {107, 0, 0}, + {80, 0, 0}, + {79, 0, 0}, + {108, 0, 0}, + {109, 0, 0}, + {110, 0, 0}, + {111, 0, 0}, + {112, 0, 0}, + {113, 0, 0}, + {114, 0, 0}, + {115, 0, 0}, + {116, 0, 0}, + {117, 0, 0}, + {118, 0, 0}, + {119, 0, 0}, + {120, 0, 0}, + {121, 0, 0}, + {122, 0, 0}, + {123, 0, 0}, + {124, 0, 0}, + {125, 0, 0}, + {126, 0, 0}, + {127, 0, 0}, + {128, 0, 0}, + {129, 0, 0}, + {130, 0, 0}, + {132, 0, 0}, + {131, 0, 0}, + {133, 0, 0}, + {134, 0, 0}, + {136, 0, 0}, + {135, 0, 0}, + {138, 0, 0}, + {137, 0, 0}, + {139, 0, 0}, + {140, 0, 0}, + {141, 0, 0}, + {142, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page21 = { + 0, marc8r_9page21_dir +}; +/* PAGE 20 */ +struct yaz_iconv_trie_flat marc8r_9page20_flat[] = { + {"\x80", 0, 0x21332E}, /* East Asian ideograph */ + {"\x89", 0, 0x21332F}, /* East Asian ideograph */ + {"\x8C", 0, 0x213330}, /* East Asian ideograph */ + {"\x8D", 0, 0x213331}, /* East Asian ideograph */ + {"\x92", 0, 0x213332}, /* East Asian ideograph */ + {"\x91", 0, 0x213333}, /* East Asian ideograph */ + {"\x95", 0, 0x213334}, /* East Asian ideograph */ + {"\x97", 0, 0x213336}, /* East Asian ideograph */ + {"\xA0", 0, 0x213337}, /* East Asian ideograph */ + {"\xA5", 0, 0x213339}, /* East Asian ideograph */ + {"\xB0", 0, 0x21333C}, /* East Asian ideograph */ + {"\xB6", 0, 0x21333D}, /* East Asian ideograph */ + {"\xB7", 0, 0x21333E}, /* East Asian ideograph */ + {"\x87", 0, 0x216425}, /* East Asian ideograph */ + {"\x82", 0, 0x216967}, /* East Asian ideograph */ + {"\x84", 0, 0x216969}, /* East Asian ideograph */ + {"\x8F", 0, 0x21696E}, /* East Asian ideograph */ + {"\x94", 0, 0x216970}, /* East Asian ideograph */ + {"\x93", 0, 0x216971}, /* East Asian ideograph */ + {"\x96", 0, 0x216975}, /* East Asian ideograph */ + {"\xA1", 0, 0x21697B}, /* East Asian ideograph */ + {"\xA3", 0, 0x21697C}, /* East Asian ideograph */ + {"\xAA", 0, 0x216A22}, /* East Asian ideograph */ + {"\xAB", 0, 0x216A23}, /* East Asian ideograph */ + {"\xB1", 0, 0x216A26}, /* East Asian ideograph */ + {"\xBC", 0, 0x216A35}, /* East Asian ideograph */ + {"\xBB", 0, 0x273340}, /* East Asian ideograph */ + {"\x99", 0, 0x273B37}, /* East Asian ideograph */ + {"\x88", 0, 0x273B6E}, /* East Asian ideograph */ + {"\xB2", 0, 0x27574A}, /* East Asian ideograph (duplicate simplified) */ + {"\x9B", 0, 0x275B34}, /* East Asian ideograph */ + {"\x9C", 0, 0x275B64}, /* East Asian ideograph */ + {"\xAF", 0, 0x27612D}, /* East Asian ideograph */ + {"\xAC", 0, 0x276276}, /* East Asian ideograph */ + {"\x81", 0, 0x277360}, /* East Asian ideograph */ + {"\x90", 0, 0x2D3332}, /* East Asian ideograph */ + {"\xA2", 0, 0x2D3852}, /* East Asian ideograph */ + {"\xA8", 0, 0x2D3B27}, /* East Asian ideograph */ + {"\xB3", 0, 0x2D466D}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D4674}, /* East Asian ideograph */ + {"\xB5", 0, 0x2D4730}, /* East Asian ideograph */ + {"\xA4", 0, 0x2D7E6A}, /* East Asian ideograph */ + {"\x8A", 0, 0x333330}, /* East Asian ideograph */ + {"\x85", 0, 0x4B3321}, /* East Asian ideograph */ + {"\xB7", 0, 0x4B333E}, /* East Asian ideograph (variant of EACC 21333E) */ + {"\x86", 0, 0x4B3772}, /* East Asian ideograph */ + {"\xA6", 0, 0x4B3B22}, /* East Asian ideograph */ + {"\xA9", 0, 0x4B3B37}, /* East Asian ideograph */ + {"\xBD", 0, 0x4B4741}, /* East Asian ideograph */ + {"\xB4", 0, 0x516A26}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page20 = { + marc8r_9page20_flat, 0 +}; +/* PAGE 19 */ +struct yaz_iconv_trie_dir marc8r_9page19_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x21326C} /* East Asian ideograph */, + {0, 0, 0x21326E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21326D} /* East Asian ideograph */, + {0, 0, 0x213270} /* East Asian ideograph */, + {0, 0, 0x21326F} /* East Asian ideograph */, + {0, 0, 0x213271} /* East Asian ideograph */, + {0, 0, 0x213273} /* East Asian ideograph */, + {0, 0, 0x213274} /* East Asian ideograph */, + {0, 0, 0x213272} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27336B} /* East Asian ideograph */, + {0, 0, 0x213275} /* East Asian ideograph */, + {0, 0, 0x213277} /* East Asian ideograph */, + {0, 0, 0x2D3279} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x33327A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21327A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213279} /* East Asian ideograph */, + {0, 0, 0x213278} /* East Asian ideograph */, + {0, 0, 0x27327B} /* East Asian ideograph */, + {0, 0, 0x21327B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x216951} /* East Asian ideograph */, + {0, 0, 0x27626F} /* East Asian ideograph */, + {0, 0, 0x216952} /* East Asian ideograph */, + {0, 0, 0x21327C} /* East Asian ideograph */, + {0, 0, 0x216955} /* East Asian ideograph */, + {0, 0, 0x216956} /* East Asian ideograph */, + {0, 0, 0x216958} /* East Asian ideograph */, + {0, 0, 0x216A73} /* East Asian ideograph */, + {0, 0, 0x216959} /* East Asian ideograph */, + {0, 0, 0x21327D} /* East Asian ideograph */, + {0, 0, 0x21695C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21327E} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213321} /* East Asian ideograph */, + {0, 0, 0x213322} /* East Asian ideograph */, + {0, 0, 0x213323} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213324} /* East Asian ideograph */, + {0, 0, 0x213327} /* East Asian ideograph */, + {0, 0, 0x213325} /* East Asian ideograph */, + {0, 0, 0x213326} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27563E} /* East Asian ideograph */, + {0, 0, 0x213328} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275E69} /* East Asian ideograph */, + {0, 0, 0x275433} /* East Asian ideograph */, + {0, 0, 0x213329} /* East Asian ideograph */, + {0, 0, 0x21332A} /* East Asian ideograph */, + {0, 0, 0x21332B} /* East Asian ideograph */, + {0, 0, 0x21332C} /* East Asian ideograph */, + {0, 0, 0x215521} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x276071} /* East Asian ideograph */, + {0, 0, 0x21332D} /* East Asian ideograph */, + {0, 0, 0x274B2B} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x3F5631} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page19 = { + 0, marc8r_9page19_dir +}; +/* PAGE 18 */ +struct yaz_iconv_trie_flat marc8r_9page18_flat[] = { + {"\x80", 0, 0x213259}, /* East Asian ideograph */ + {"\x84", 0, 0x21325A}, /* East Asian ideograph */ + {"\x82", 0, 0x21325E}, /* East Asian ideograph */ + {"\x8D", 0, 0x21325F}, /* East Asian ideograph */ + {"\x88", 0, 0x213260}, /* East Asian ideograph */ + {"\x89", 0, 0x213261}, /* East Asian ideograph */ + {"\x90", 0, 0x213262}, /* East Asian ideograph */ + {"\x98", 0, 0x213263}, /* East Asian ideograph */ + {"\x92", 0, 0x213264}, /* East Asian ideograph */ + {"\x94", 0, 0x213265}, /* East Asian ideograph */ + {"\xAA", 0, 0x213266}, /* East Asian ideograph */ + {"\x9F", 0, 0x213267}, /* East Asian ideograph */ + {"\xA1", 0, 0x213268}, /* East Asian ideograph */ + {"\xB2", 0, 0x213269}, /* East Asian ideograph */ + {"\xB7", 0, 0x21326A}, /* East Asian ideograph */ + {"\xBC", 0, 0x21326B}, /* East Asian ideograph */ + {"\x8E", 0, 0x21685B}, /* East Asian ideograph */ + {"\x85", 0, 0x21685F}, /* East Asian ideograph */ + {"\x86", 0, 0x216865}, /* East Asian ideograph */ + {"\x87", 0, 0x216866}, /* East Asian ideograph */ + {"\x8F", 0, 0x216867}, /* East Asian ideograph */ + {"\x8B", 0, 0x216869}, /* East Asian ideograph */ + {"\x81", 0, 0x21686D}, /* East Asian ideograph */ + {"\x95", 0, 0x216871}, /* East Asian ideograph */ + {"\x93", 0, 0x216872}, /* East Asian ideograph */ + {"\x9A", 0, 0x216878}, /* East Asian ideograph */ + {"\xA6", 0, 0x21687E}, /* East Asian ideograph */ + {"\xA4", 0, 0x216929}, /* East Asian ideograph */ + {"\xA9", 0, 0x21692B}, /* East Asian ideograph */ + {"\xB1", 0, 0x216930}, /* East Asian ideograph */ + {"\xB5", 0, 0x21693E}, /* East Asian ideograph */ + {"\xB3", 0, 0x216940}, /* East Asian ideograph */ + {"\xBA", 0, 0x216944}, /* East Asian ideograph */ + {"\xB9", 0, 0x216947}, /* East Asian ideograph */ + {"\xBB", 0, 0x216948}, /* East Asian ideograph */ + {"\xBF", 0, 0x27327A}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D3251}, /* East Asian ideograph */ + {"\x9E", 0, 0x2D3944}, /* East Asian ideograph */ + {"\x97", 0, 0x2D4228}, /* East Asian ideograph */ + {"\x96", 0, 0x695130}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page18 = { + marc8r_9page18_flat, 0 +}; +/* PAGE 17 */ +struct yaz_iconv_trie_flat marc8r_9page17_flat[] = { + {"\x85", 0, 0x213249}, /* East Asian ideograph */ + {"\xA7", 0, 0x21324E}, /* East Asian ideograph */ + {"\xAE", 0, 0x21324F}, /* East Asian ideograph */ + {"\xB1", 0, 0x213250}, /* East Asian ideograph */ + {"\xA5", 0, 0x213251}, /* East Asian ideograph */ + {"\x96", 0, 0x213252}, /* East Asian ideograph */ + {"\xAD", 0, 0x213253}, /* East Asian ideograph */ + {"\x9A", 0, 0x213254}, /* East Asian ideograph */ + {"\x95", 0, 0x213255}, /* East Asian ideograph */ + {"\x8F", 0, 0x213257}, /* East Asian ideograph */ + {"\x91", 0, 0x213258}, /* East Asian ideograph */ + {"\xBB", 0, 0x21325B}, /* East Asian ideograph */ + {"\xB5", 0, 0x21325C}, /* East Asian ideograph */ + {"\xB9", 0, 0x21325D}, /* East Asian ideograph */ + {"\x87", 0, 0x216771}, /* East Asian ideograph */ + {"\x89", 0, 0x216775}, /* East Asian ideograph */ + {"\x8A", 0, 0x21677B}, /* East Asian ideograph */ + {"\x82", 0, 0x216822}, /* East Asian ideograph */ + {"\x8D", 0, 0x21682E}, /* East Asian ideograph */ + {"\x94", 0, 0x216832}, /* East Asian ideograph */ + {"\xAF", 0, 0x216834}, /* East Asian ideograph */ + {"\xA6", 0, 0x216835}, /* East Asian ideograph */ + {"\xB4", 0, 0x21683A}, /* East Asian ideograph */ + {"\x8E", 0, 0x21683B}, /* East Asian ideograph */ + {"\x9D", 0, 0x21683C}, /* East Asian ideograph */ + {"\xB3", 0, 0x216841}, /* East Asian ideograph */ + {"\xA8", 0, 0x216842}, /* East Asian ideograph */ + {"\xB0", 0, 0x216844}, /* East Asian ideograph */ + {"\x99", 0, 0x216846}, /* East Asian ideograph */ + {"\xAC", 0, 0x216855}, /* East Asian ideograph */ + {"\xBC", 0, 0x216861}, /* East Asian ideograph */ + {"\xBE", 0, 0x216868}, /* East Asian ideograph */ + {"\xBD", 0, 0x21686A}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D3253}, /* East Asian ideograph */ + {"\xA7", 0, 0x4B324E}, /* East Asian ideograph (variant of EACC 21324E) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page17 = { + marc8r_9page17_flat, 0 +}; +/* PAGE 16 */ +struct yaz_iconv_trie_flat marc8r_9page16_flat[] = { + {"\x8D", 0, 0x21323D}, /* East Asian ideograph */ + {"\xA2", 0, 0x21323E}, /* East Asian ideograph */ + {"\x85", 0, 0x21323F}, /* East Asian ideograph */ + {"\x99", 0, 0x213240}, /* East Asian ideograph */ + {"\x91", 0, 0x213241}, /* East Asian ideograph */ + {"\x80", 0, 0x213242}, /* East Asian ideograph */ + {"\x96", 0, 0x213243}, /* East Asian ideograph */ + {"\x98", 0, 0x213244}, /* East Asian ideograph */ + {"\xAD", 0, 0x213245}, /* East Asian ideograph */ + {"\xB3", 0, 0x213246}, /* East Asian ideograph */ + {"\xB5", 0, 0x213247}, /* East Asian ideograph */ + {"\xB5", 0, 0x213247}, /* East Asian ideograph */ + {"\xB2", 0, 0x213248}, /* East Asian ideograph */ + {"\xBE", 0, 0x21324A}, /* East Asian ideograph */ + {"\xAC", 0, 0x21324B}, /* East Asian ideograph */ + {"\xB7", 0, 0x21324C}, /* East Asian ideograph */ + {"\xAF", 0, 0x21324D}, /* East Asian ideograph */ + {"\x94", 0, 0x21674E}, /* East Asian ideograph */ + {"\x9E", 0, 0x216750}, /* East Asian ideograph */ + {"\x9B", 0, 0x216752}, /* East Asian ideograph */ + {"\x9A", 0, 0x216753}, /* East Asian ideograph */ + {"\xA3", 0, 0x216757}, /* East Asian ideograph */ + {"\x8C", 0, 0x21675A}, /* East Asian ideograph */ + {"\x88", 0, 0x21675C}, /* East Asian ideograph */ + {"\x8E", 0, 0x216762}, /* East Asian ideograph */ + {"\x95", 0, 0x216764}, /* East Asian ideograph */ + {"\xA6", 0, 0x216767}, /* East Asian ideograph */ + {"\x92", 0, 0x21676A}, /* East Asian ideograph */ + {"\x9C", 0, 0x21676C}, /* East Asian ideograph */ + {"\xB4", 0, 0x21677C}, /* East Asian ideograph */ + {"\xBA", 0, 0x21682C}, /* East Asian ideograph */ + {"\xA7", 0, 0x273262}, /* East Asian ideograph */ + {"\xA8", 0, 0x273269}, /* East Asian ideograph */ + {"\xA9", 0, 0x276944}, /* East Asian ideograph */ + {"\xA5", 0, 0x276948}, /* East Asian ideograph */ + {"\xBB", 0, 0x2D325F}, /* East Asian ideograph (variant of EACC 4B325F) */ + {"\xB2", 0, 0x4B3248}, /* East Asian ideograph */ + {"\xBB", 0, 0x4B325F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page16 = { + marc8r_9page16_flat, 0 +}; +/* PAGE 15 */ +struct yaz_iconv_trie_flat marc8r_9page15_flat[] = { + {"\x9C", 0, 0x21322E}, /* East Asian ideograph */ + {"\x8F", 0, 0x21322F}, /* East Asian ideograph */ + {"\xA5", 0, 0x213230}, /* East Asian ideograph */ + {"\x87", 0, 0x213231}, /* East Asian ideograph */ + {"\x9A", 0, 0x213232}, /* East Asian ideograph */ + {"\x89", 0, 0x213233}, /* East Asian ideograph */ + {"\x83", 0, 0x213234}, /* East Asian ideograph */ + {"\xB4", 0, 0x213235}, /* East Asian ideograph */ + {"\xB6", 0, 0x213236}, /* East Asian ideograph */ + {"\x8E", 0, 0x213237}, /* East Asian ideograph */ + {"\xB5", 0, 0x213238}, /* East Asian ideograph */ + {"\x8C", 0, 0x213239}, /* East Asian ideograph */ + {"\x95", 0, 0x21323A}, /* East Asian ideograph */ + {"\xB7", 0, 0x21323C}, /* East Asian ideograph */ + {"\xBD", 0, 0x213256}, /* East Asian ideograph */ + {"\xAF", 0, 0x216722}, /* East Asian ideograph */ + {"\x90", 0, 0x216723}, /* East Asian ideograph */ + {"\xB0", 0, 0x216725}, /* East Asian ideograph */ + {"\x93", 0, 0x216729}, /* East Asian ideograph */ + {"\xAA", 0, 0x21672A}, /* East Asian ideograph */ + {"\x96", 0, 0x21672C}, /* East Asian ideograph */ + {"\xAD", 0, 0x216731}, /* East Asian ideograph */ + {"\x9D", 0, 0x216738}, /* East Asian ideograph */ + {"\x88", 0, 0x216739}, /* East Asian ideograph */ + {"\x98", 0, 0x21673B}, /* East Asian ideograph */ + {"\xB2", 0, 0x21673C}, /* East Asian ideograph */ + {"\x81", 0, 0x216741}, /* East Asian ideograph */ + {"\xBA", 0, 0x216748}, /* East Asian ideograph */ + {"\xAC", 0, 0x21674A}, /* East Asian ideograph */ + {"\x9F", 0, 0x21674B}, /* East Asian ideograph */ + {"\xAB", 0, 0x21674D}, /* East Asian ideograph */ + {"\xBF", 0, 0x273267}, /* East Asian ideograph */ + {"\xBB", 0, 0x276822}, /* East Asian ideograph */ + {"\xBE", 0, 0x276842}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page15 = { + marc8r_9page15_flat, 0 +}; +/* PAGE 14 */ +struct yaz_iconv_trie_flat marc8r_9page14_flat[] = { + {"\x89", 0, 0x21316C}, /* East Asian ideograph */ + {"\x8D", 0, 0x21316E}, /* East Asian ideograph */ + {"\xA6", 0, 0x213170}, /* East Asian ideograph */ + {"\x8C", 0, 0x213171}, /* East Asian ideograph */ + {"\xA5", 0, 0x213172}, /* East Asian ideograph */ + {"\x91", 0, 0x213173}, /* East Asian ideograph */ + {"\xA8", 0, 0x213175}, /* East Asian ideograph */ + {"\x94", 0, 0x213176}, /* East Asian ideograph */ + {"\x96", 0, 0x213177}, /* East Asian ideograph */ + {"\xA9", 0, 0x213178}, /* East Asian ideograph */ + {"\x86", 0, 0x213179}, /* East Asian ideograph */ + {"\x92", 0, 0x21317B}, /* East Asian ideograph */ + {"\xBC", 0, 0x21317C}, /* East Asian ideograph */ + {"\x9A", 0, 0x21317D}, /* East Asian ideograph */ + {"\x98", 0, 0x213221}, /* East Asian ideograph */ + {"\xA1", 0, 0x213223}, /* East Asian ideograph */ + {"\x8B", 0, 0x213224}, /* East Asian ideograph */ + {"\x99", 0, 0x213225}, /* East Asian ideograph */ + {"\x80", 0, 0x213226}, /* East Asian ideograph */ + {"\xAD", 0, 0x213229}, /* East Asian ideograph */ + {"\x83", 0, 0x21322A}, /* East Asian ideograph */ + {"\xAA", 0, 0x21322C}, /* East Asian ideograph */ + {"\xAB", 0, 0x21322D}, /* East Asian ideograph */ + {"\x8F", 0, 0x21323B}, /* East Asian ideograph */ + {"\x9E", 0, 0x216646}, /* East Asian ideograph */ + {"\xBF", 0, 0x216648}, /* East Asian ideograph */ + {"\x85", 0, 0x216649}, /* East Asian ideograph */ + {"\x87", 0, 0x21664C}, /* East Asian ideograph */ + {"\x93", 0, 0x21664D}, /* East Asian ideograph */ + {"\xA2", 0, 0x21664E}, /* East Asian ideograph */ + {"\xB7", 0, 0x21665B}, /* East Asian ideograph */ + {"\xAE", 0, 0x21665E}, /* East Asian ideograph */ + {"\x9C", 0, 0x216662}, /* East Asian ideograph */ + {"\xAC", 0, 0x216666}, /* East Asian ideograph */ + {"\x90", 0, 0x216669}, /* East Asian ideograph */ + {"\xBD", 0, 0x216679}, /* East Asian ideograph */ + {"\x95", 0, 0x216746}, /* East Asian ideograph */ + {"\xBA", 0, 0x273247}, /* East Asian ideograph */ + {"\xBE", 0, 0x27324A}, /* East Asian ideograph */ + {"\x9F", 0, 0x27562E}, /* East Asian ideograph */ + {"\x82", 0, 0x2D3147}, /* East Asian ideograph */ + {"\x88", 0, 0x2D314C}, /* East Asian ideograph */ + {"\xB9", 0, 0x2D3261}, /* East Asian ideograph */ + {"\xA3", 0, 0x3F3078}, /* East Asian ideograph */ + {"\xA9", 0, 0x4B3178}, /* East Asian ideograph (variant of EACC 213178) */ + {"\xA4", 0, 0x4B317C}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page14 = { + marc8r_9page14_flat, 0 +}; +/* PAGE 13 */ +struct yaz_iconv_trie_flat marc8r_9page13_flat[] = { + {"\xB9", 0, 0x21303E}, /* East Asian ideograph */ + {"\x81", 0, 0x213B3C}, /* East Asian ideograph */ + {"\x84", 0, 0x213B3D}, /* East Asian ideograph */ + {"\x89", 0, 0x213B3E}, /* East Asian ideograph */ + {"\x88", 0, 0x213B3F}, /* East Asian ideograph */ + {"\x87", 0, 0x213B40}, /* East Asian ideograph */ + {"\x8A", 0, 0x213B41}, /* East Asian ideograph */ + {"\x8B", 0, 0x213B42}, /* East Asian ideograph */ + {"\x8D", 0, 0x213B43}, /* East Asian ideograph */ + {"\x8E", 0, 0x213B44}, /* East Asian ideograph */ + {"\x8F", 0, 0x213B45}, /* East Asian ideograph */ + {"\x91", 0, 0x213B46}, /* East Asian ideograph */ + {"\x96", 0, 0x213B47}, /* East Asian ideograph */ + {"\x9A", 0, 0x213B48}, /* East Asian ideograph */ + {"\xA4", 0, 0x213B49}, /* East Asian ideograph */ + {"\xAC", 0, 0x213B4A}, /* East Asian ideograph */ + {"\xB1", 0, 0x213B4B}, /* East Asian ideograph */ + {"\xB7", 0, 0x213B4C}, /* East Asian ideograph */ + {"\xB8", 0, 0x213B4D}, /* East Asian ideograph */ + {"\xBA", 0, 0x213B4E}, /* East Asian ideograph */ + {"\xBC", 0, 0x213B4F}, /* East Asian ideograph */ + {"\xBF", 0, 0x213B52}, /* East Asian ideograph */ + {"\xBE", 0, 0x213B53}, /* East Asian ideograph */ + {"\x80", 0, 0x222233}, /* East Asian ideograph */ + {"\x95", 0, 0x22223C}, /* East Asian ideograph */ + {"\xA2", 0, 0x222246}, /* East Asian ideograph */ + {"\xA5", 0, 0x222248}, /* East Asian ideograph */ + {"\xAA", 0, 0x22224B}, /* East Asian ideograph */ + {"\xAF", 0, 0x222252}, /* East Asian ideograph */ + {"\xB2", 0, 0x22225B}, /* East Asian ideograph */ + {"\xBB", 0, 0x222263}, /* East Asian ideograph */ + {"\xA1", 0, 0x223930}, /* East Asian ideograph */ + {"\xBD", 0, 0x273263}, /* East Asian ideograph (duplicate simplified) */ + {"\x9D", 0, 0x273730}, /* East Asian ideograph */ + {"\xA7", 0, 0x273845}, /* East Asian ideograph */ + {"\x98", 0, 0x273859}, /* East Asian ideograph */ + {"\x86", 0, 0x273B40}, /* East Asian ideograph */ + {"\xB4", 0, 0x273B4C}, /* East Asian ideograph */ + {"\x94", 0, 0x274A45}, /* East Asian ideograph */ + {"\xBD", 0, 0x274D3C}, /* East Asian ideograph */ + {"\x85", 0, 0x2D336B}, /* East Asian ideograph */ + {"\x82", 0, 0x2D3B3F}, /* East Asian ideograph */ + {"\x86", 0, 0x2D3B40}, /* East Asian ideograph (variant of EACC 273B40) */ + {"\x92", 0, 0x2D4A45}, /* East Asian ideograph */ + {"\xA8", 0, 0x2D632B}, /* East Asian ideograph */ + {"\xA0", 0, 0x396179}, /* East Asian ideograph */ + {"\x9F", 0, 0x3F6179}, /* East Asian ideograph */ + {"\x9C", 0, 0x4B372F}, /* East Asian ideograph */ + {"\x93", 0, 0x4B4A45}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page13 = { + marc8r_9page13_flat, 0 +}; +/* PAGE 12 */ +struct yaz_iconv_trie_flat marc8r_9page12_flat[] = { + {"\xA1", 0, 0x213036}, /* East Asian ideograph */ + {"\x8D", 0, 0x213340}, /* East Asian ideograph */ + {"\x8C", 0, 0x213341}, /* East Asian ideograph */ + {"\x9C", 0, 0x213344}, /* East Asian ideograph */ + {"\x9D", 0, 0x213345}, /* East Asian ideograph */ + {"\xB0", 0, 0x213347}, /* East Asian ideograph */ + {"\xB1", 0, 0x213348}, /* East Asian ideograph */ + {"\xB3", 0, 0x213349}, /* East Asian ideograph */ + {"\xBA", 0, 0x21334B}, /* East Asian ideograph */ + {"\xB9", 0, 0x21334C}, /* East Asian ideograph */ + {"\xB8", 0, 0x21334D}, /* East Asian ideograph */ + {"\xBD", 0, 0x21334E}, /* East Asian ideograph */ + {"\x8A", 0, 0x216A43}, /* East Asian ideograph */ + {"\x87", 0, 0x216A46}, /* East Asian ideograph */ + {"\x91", 0, 0x216A4E}, /* East Asian ideograph */ + {"\x90", 0, 0x216A4F}, /* East Asian ideograph */ + {"\x93", 0, 0x216A54}, /* East Asian ideograph */ + {"\x99", 0, 0x216A63}, /* East Asian ideograph */ + {"\x9F", 0, 0x216A66}, /* East Asian ideograph */ + {"\xA2", 0, 0x216A68}, /* East Asian ideograph */ + {"\xB5", 0, 0x216A78}, /* East Asian ideograph */ + {"\xB7", 0, 0x216A79}, /* East Asian ideograph */ + {"\xA7", 0, 0x222664}, /* East Asian ideograph */ + {"\xB6", 0, 0x273273}, /* East Asian ideograph */ + {"\xAF", 0, 0x273348}, /* East Asian ideograph */ + {"\xA0", 0, 0x273C6B}, /* East Asian ideograph */ + {"\xAD", 0, 0x273F3F}, /* East Asian ideograph */ + {"\xBB", 0, 0x274176}, /* East Asian ideograph */ + {"\x86", 0, 0x27484B}, /* East Asian ideograph */ + {"\xBF", 0, 0x275E4B}, /* East Asian ideograph */ + {"\xA4", 0, 0x276233}, /* East Asian ideograph */ + {"\xBC", 0, 0x2D3C6A}, /* East Asian ideograph */ + {"\x89", 0, 0x2D475B}, /* East Asian ideograph */ + {"\x84", 0, 0x2D475F}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D4829}, /* East Asian ideograph */ + {"\x9B", 0, 0x333344}, /* East Asian ideograph */ + {"\xBE", 0, 0x33334E}, /* East Asian ideograph */ + {"\xB4", 0, 0x333F3F}, /* East Asian ideograph */ + {"\x80", 0, 0x39476F}, /* East Asian ideograph */ + {"\x88", 0, 0x3F476F}, /* East Asian ideograph */ + {"\x85", 0, 0x4B476C}, /* East Asian ideograph */ + {"\x96", 0, 0x4B484B}, /* East Asian ideograph */ + {"\xA6", 0, 0x4B5647}, /* East Asian ideograph */ + {"\x8B", 0, 0x4B5F49}, /* East Asian ideograph */ + {"\xAB", 0, 0x4D5973}, /* East Asian ideograph */ + {"\x83", 0, 0x51384D}, /* East Asian ideograph */ + {"\xAA", 0, 0x694664}, /* East Asian ideograph */ + {"\xA9", 0, 0x69515E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page12 = { + marc8r_9page12_flat, 0 +}; +/* PAGE 11 */ +struct yaz_iconv_trie_flat marc8r_9page11_flat[] = { + {"\xA1", 0, 0x213157}, /* East Asian ideograph */ + {"\x91", 0, 0x213158}, /* East Asian ideograph */ + {"\x9E", 0, 0x21315C}, /* East Asian ideograph */ + {"\xA0", 0, 0x21315D}, /* East Asian ideograph */ + {"\x8F", 0, 0x21315E}, /* East Asian ideograph */ + {"\x9A", 0, 0x213160}, /* East Asian ideograph */ + {"\x9D", 0, 0x213161}, /* East Asian ideograph */ + {"\x83", 0, 0x213162}, /* East Asian ideograph */ + {"\x98", 0, 0x213163}, /* East Asian ideograph */ + {"\x9F", 0, 0x213164}, /* East Asian ideograph */ + {"\x8A", 0, 0x213165}, /* East Asian ideograph */ + {"\x90", 0, 0x213167}, /* East Asian ideograph */ + {"\x84", 0, 0x213168}, /* East Asian ideograph */ + {"\x82", 0, 0x213169}, /* East Asian ideograph */ + {"\x8E", 0, 0x21316A}, /* East Asian ideograph */ + {"\x97", 0, 0x21316B}, /* East Asian ideograph */ + {"\xAF", 0, 0x21316F}, /* East Asian ideograph */ + {"\xB8", 0, 0x213174}, /* East Asian ideograph */ + {"\xBA", 0, 0x21317E}, /* East Asian ideograph */ + {"\xB1", 0, 0x213222}, /* East Asian ideograph */ + {"\xAE", 0, 0x213227}, /* East Asian ideograph */ + {"\xB3", 0, 0x213228}, /* East Asian ideograph */ + {"\xBE", 0, 0x21322B}, /* East Asian ideograph */ + {"\x8D", 0, 0x21657C}, /* East Asian ideograph */ + {"\xA4", 0, 0x216622}, /* East Asian ideograph */ + {"\x85", 0, 0x216627}, /* East Asian ideograph */ + {"\x89", 0, 0x216629}, /* East Asian ideograph */ + {"\xA5", 0, 0x21662A}, /* East Asian ideograph */ + {"\xA7", 0, 0x21662C}, /* East Asian ideograph */ + {"\x9C", 0, 0x216633}, /* East Asian ideograph */ + {"\x94", 0, 0x216635}, /* East Asian ideograph */ + {"\x81", 0, 0x216637}, /* East Asian ideograph */ + {"\x9B", 0, 0x21663B}, /* East Asian ideograph */ + {"\x86", 0, 0x21663E}, /* East Asian ideograph */ + {"\xB5", 0, 0x216652}, /* East Asian ideograph */ + {"\xB4", 0, 0x216659}, /* East Asian ideograph */ + {"\xB6", 0, 0x216661}, /* East Asian ideograph */ + {"\xA9", 0, 0x273179}, /* East Asian ideograph */ + {"\xAD", 0, 0x273261}, /* East Asian ideograph */ + {"\xA6", 0, 0x273265}, /* East Asian ideograph */ + {"\xAA", 0, 0x27326A}, /* East Asian ideograph */ + {"\xA8", 0, 0x27326B}, /* East Asian ideograph */ + {"\xBB", 0, 0x333240}, /* East Asian ideograph */ + {"\xB2", 0, 0x394243}, /* East Asian ideograph */ + {"\xA3", 0, 0x4B6637}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page11 = { + marc8r_9page11_flat, 0 +}; +/* PAGE 10 */ +struct yaz_iconv_trie_flat marc8r_9page10_flat[] = { + {"\x9D", 0, 0x213145}, /* East Asian ideograph */ + {"\x8D", 0, 0x213148}, /* East Asian ideograph */ + {"\x9B", 0, 0x21314B}, /* East Asian ideograph */ + {"\x86", 0, 0x21314C}, /* East Asian ideograph */ + {"\x8B", 0, 0x21314E}, /* East Asian ideograph */ + {"\x96", 0, 0x21314F}, /* East Asian ideograph */ + {"\x83", 0, 0x213151}, /* East Asian ideograph */ + {"\x88", 0, 0x213153}, /* East Asian ideograph */ + {"\x8F", 0, 0x213155}, /* East Asian ideograph */ + {"\xB5", 0, 0x213159}, /* East Asian ideograph */ + {"\xAF", 0, 0x21315A}, /* East Asian ideograph */ + {"\xBF", 0, 0x21315B}, /* East Asian ideograph */ + {"\xB6", 0, 0x21315F}, /* East Asian ideograph */ + {"\xAE", 0, 0x213166}, /* East Asian ideograph */ + {"\x82", 0, 0x216556}, /* East Asian ideograph */ + {"\x98", 0, 0x21655A}, /* East Asian ideograph */ + {"\x92", 0, 0x21655B}, /* East Asian ideograph */ + {"\x80", 0, 0x216560}, /* East Asian ideograph */ + {"\xA2", 0, 0x216564}, /* East Asian ideograph */ + {"\x91", 0, 0x216566}, /* East Asian ideograph */ + {"\x95", 0, 0x216567}, /* East Asian ideograph */ + {"\x97", 0, 0x21656D}, /* East Asian ideograph */ + {"\x94", 0, 0x21656E}, /* East Asian ideograph */ + {"\x9A", 0, 0x216571}, /* East Asian ideograph */ + {"\x81", 0, 0x216572}, /* East Asian ideograph */ + {"\x9C", 0, 0x216576}, /* East Asian ideograph */ + {"\x90", 0, 0x216577}, /* East Asian ideograph */ + {"\xB7", 0, 0x216626}, /* East Asian ideograph */ + {"\xB9", 0, 0x216643}, /* East Asian ideograph */ + {"\xA0", 0, 0x27315D}, /* East Asian ideograph */ + {"\xA7", 0, 0x273235}, /* East Asian ideograph */ + {"\xA6", 0, 0x273238}, /* East Asian ideograph */ + {"\xA5", 0, 0x273251}, /* East Asian ideograph */ + {"\xA8", 0, 0x273258}, /* East Asian ideograph */ + {"\xAC", 0, 0x27325E}, /* East Asian ideograph */ + {"\xA9", 0, 0x273260}, /* East Asian ideograph */ + {"\xAA", 0, 0x276871}, /* East Asian ideograph */ + {"\xA3", 0, 0x2D315F}, /* East Asian ideograph */ + {"\xAD", 0, 0x2D3263}, /* East Asian ideograph */ + {"\x84", 0, 0x2D396E}, /* East Asian ideograph */ + {"\xA1", 0, 0x33325D}, /* East Asian ideograph */ + {"\xAB", 0, 0x4B3130}, /* East Asian ideograph */ + {"\x89", 0, 0x4B5861}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page10 = { + marc8r_9page10_flat, 0 +}; +/* PAGE 9 */ +struct yaz_iconv_trie_flat marc8r_9page9_flat[] = { + {"\x8F", 0, 0x21312A}, /* East Asian ideograph */ + {"\x8D", 0, 0x21312B}, /* East Asian ideograph */ + {"\x87", 0, 0x21312D}, /* East Asian ideograph */ + {"\x97", 0, 0x21312E}, /* East Asian ideograph */ + {"\x9E", 0, 0x213130}, /* East Asian ideograph */ + {"\x9B", 0, 0x213132}, /* East Asian ideograph */ + {"\x95", 0, 0x213133}, /* East Asian ideograph */ + {"\x90", 0, 0x213135}, /* East Asian ideograph */ + {"\x91", 0, 0x213136}, /* East Asian ideograph */ + {"\x88", 0, 0x213138}, /* East Asian ideograph */ + {"\x86", 0, 0x213139}, /* East Asian ideograph */ + {"\x83", 0, 0x21313B}, /* East Asian ideograph */ + {"\x94", 0, 0x21313C}, /* East Asian ideograph */ + {"\xA3", 0, 0x21313E}, /* East Asian ideograph */ + {"\x9C", 0, 0x21313F}, /* East Asian ideograph */ + {"\xA0", 0, 0x213140}, /* East Asian ideograph */ + {"\x8E", 0, 0x213142}, /* East Asian ideograph */ + {"\x9D", 0, 0x213143}, /* East Asian ideograph */ + {"\xAF", 0, 0x213146}, /* East Asian ideograph */ + {"\xB5", 0, 0x213147}, /* East Asian ideograph */ + {"\xB3", 0, 0x213149}, /* East Asian ideograph */ + {"\xBF", 0, 0x21314A}, /* East Asian ideograph */ + {"\xAC", 0, 0x21314D}, /* East Asian ideograph */ + {"\xBB", 0, 0x213152}, /* East Asian ideograph */ + {"\xA9", 0, 0x213154}, /* East Asian ideograph */ + {"\xBE", 0, 0x213156}, /* East Asian ideograph */ + {"\x98", 0, 0x216536}, /* East Asian ideograph */ + {"\xA2", 0, 0x216537}, /* East Asian ideograph */ + {"\xA4", 0, 0x216539}, /* East Asian ideograph */ + {"\x89", 0, 0x21653A}, /* East Asian ideograph */ + {"\xA6", 0, 0x216540}, /* East Asian ideograph */ + {"\xA7", 0, 0x216544}, /* East Asian ideograph */ + {"\xA8", 0, 0x21654D}, /* East Asian ideograph */ + {"\x9A", 0, 0x21654E}, /* East Asian ideograph */ + {"\x9F", 0, 0x21654F}, /* East Asian ideograph */ + {"\xBC", 0, 0x216557}, /* East Asian ideograph */ + {"\xBD", 0, 0x21655C}, /* East Asian ideograph */ + {"\xB4", 0, 0x216561}, /* East Asian ideograph */ + {"\xB6", 0, 0x216562}, /* East Asian ideograph */ + {"\x8C", 0, 0x21656C}, /* East Asian ideograph */ + {"\xB9", 0, 0x216570}, /* East Asian ideograph */ + {"\xB8", 0, 0x216573}, /* East Asian ideograph */ + {"\xBA", 0, 0x21657B}, /* East Asian ideograph */ + {"\x99", 0, 0x276076}, /* East Asian ideograph */ + {"\x93", 0, 0x27615A}, /* East Asian ideograph */ + {"\xA5", 0, 0x276775}, /* East Asian ideograph */ + {"\xB0", 0, 0x2D4C7E}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page9 = { + marc8r_9page9_flat, 0 +}; +/* PAGE 8 */ +struct yaz_iconv_trie_flat marc8r_9page8_flat[] = { + {"\x89", 0, 0x213079}, /* East Asian ideograph */ + {"\x8A", 0, 0x21307D}, /* East Asian ideograph */ + {"\x95", 0, 0x21307E}, /* East Asian ideograph */ + {"\x91", 0, 0x213121}, /* East Asian ideograph */ + {"\x90", 0, 0x213122}, /* East Asian ideograph */ + {"\x8F", 0, 0x213123}, /* East Asian ideograph */ + {"\x81", 0, 0x213125}, /* East Asian ideograph */ + {"\xB4", 0, 0x21312C}, /* East Asian ideograph */ + {"\xBA", 0, 0x21312F}, /* East Asian ideograph */ + {"\xB0", 0, 0x213134}, /* East Asian ideograph */ + {"\xBD", 0, 0x213137}, /* East Asian ideograph */ + {"\xB8", 0, 0x21313A}, /* East Asian ideograph */ + {"\xBC", 0, 0x21313D}, /* East Asian ideograph */ + {"\xAF", 0, 0x213141}, /* East Asian ideograph */ + {"\xB6", 0, 0x213144}, /* East Asian ideograph */ + {"\x88", 0, 0x216472}, /* East Asian ideograph */ + {"\x8E", 0, 0x216473}, /* East Asian ideograph */ + {"\x83", 0, 0x216475}, /* East Asian ideograph */ + {"\xA2", 0, 0x21647C}, /* East Asian ideograph */ + {"\x87", 0, 0x216528}, /* East Asian ideograph */ + {"\x80", 0, 0x21652A}, /* East Asian ideograph */ + {"\x8B", 0, 0x21652C}, /* East Asian ideograph */ + {"\xBB", 0, 0x216532}, /* East Asian ideograph */ + {"\xBE", 0, 0x21653F}, /* East Asian ideograph */ + {"\xA5", 0, 0x273226}, /* East Asian ideograph */ + {"\xA6", 0, 0x27322D}, /* East Asian ideograph */ + {"\x9F", 0, 0x273233}, /* East Asian ideograph */ + {"\xA7", 0, 0x273243}, /* East Asian ideograph */ + {"\x9E", 0, 0x273244}, /* East Asian ideograph */ + {"\xA0", 0, 0x273246}, /* East Asian ideograph */ + {"\xA4", 0, 0x27324C}, /* East Asian ideograph */ + {"\xAA", 0, 0x273256}, /* East Asian ideograph */ + {"\x98", 0, 0x273266}, /* East Asian ideograph */ + {"\x99", 0, 0x273923}, /* East Asian ideograph */ + {"\x9A", 0, 0x27435A}, /* East Asian ideograph */ + {"\x97", 0, 0x274D56}, /* East Asian ideograph */ + {"\x9C", 0, 0x276649}, /* East Asian ideograph */ + {"\x9B", 0, 0x27677C}, /* East Asian ideograph */ + {"\xB2", 0, 0x2D3140}, /* East Asian ideograph */ + {"\x8D", 0, 0x393054}, /* East Asian ideograph */ + {"\x9D", 0, 0x393246}, /* East Asian ideograph */ + {"\xAB", 0, 0x4B312D}, /* East Asian ideograph */ + {"\xB6", 0, 0x4B3144}, /* East Asian ideograph (variant of EACC 213144) */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page8 = { + marc8r_9page8_flat, 0 +}; +/* PAGE 7 */ +struct yaz_iconv_trie_flat marc8r_9page7_flat[] = { + {"\x8A", 0, 0x213065}, /* East Asian ideograph */ + {"\x81", 0, 0x213066}, /* East Asian ideograph */ + {"\x83", 0, 0x213068}, /* East Asian ideograph */ + {"\x84", 0, 0x213069}, /* East Asian ideograph */ + {"\x8D", 0, 0x21306B}, /* East Asian ideograph */ + {"\x87", 0, 0x21306C}, /* East Asian ideograph */ + {"\x8B", 0, 0x21306D}, /* East Asian ideograph */ + {"\xA4", 0, 0x21306E}, /* East Asian ideograph */ + {"\x98", 0, 0x21306F}, /* East Asian ideograph */ + {"\x95", 0, 0x213070}, /* East Asian ideograph */ + {"\x96", 0, 0x213071}, /* East Asian ideograph */ + {"\x9E", 0, 0x213072}, /* East Asian ideograph */ + {"\xA3", 0, 0x213073}, /* East Asian ideograph */ + {"\x94", 0, 0x213074}, /* East Asian ideograph */ + {"\x97", 0, 0x213075}, /* East Asian ideograph */ + {"\x99", 0, 0x213076}, /* East Asian ideograph */ + {"\xA5", 0, 0x213077}, /* East Asian ideograph */ + {"\xBF", 0, 0x213078}, /* East Asian ideograph */ + {"\xBB", 0, 0x21307C}, /* East Asian ideograph */ + {"\xB2", 0, 0x213124}, /* East Asian ideograph */ + {"\xB3", 0, 0x213126}, /* East Asian ideograph */ + {"\xB6", 0, 0x213127}, /* East Asian ideograph */ + {"\xB0", 0, 0x213128}, /* East Asian ideograph */ + {"\x89", 0, 0x21645E}, /* East Asian ideograph */ + {"\x88", 0, 0x216461}, /* East Asian ideograph */ + {"\x8E", 0, 0x216462}, /* East Asian ideograph */ + {"\xA8", 0, 0x216463}, /* East Asian ideograph */ + {"\xA1", 0, 0x21646B}, /* East Asian ideograph */ + {"\xB5", 0, 0x216527}, /* East Asian ideograph */ + {"\x91", 0, 0x27314F}, /* East Asian ideograph */ + {"\x93", 0, 0x27316C}, /* East Asian ideograph */ + {"\xAC", 0, 0x273173}, /* East Asian ideograph */ + {"\x83", 0, 0x27322E}, /* East Asian ideograph (duplicate simplified) */ + {"\x85", 0, 0x273249}, /* East Asian ideograph */ + {"\x86", 0, 0x273255}, /* East Asian ideograph */ + {"\xAA", 0, 0x273259}, /* East Asian ideograph */ + {"\xB7", 0, 0x27325D}, /* East Asian ideograph */ + {"\x8E", 0, 0x273D6C}, /* East Asian ideograph */ + {"\x8F", 0, 0x2D3132}, /* East Asian ideograph */ + {"\x9F", 0, 0x2D3458}, /* East Asian ideograph */ + {"\x9D", 0, 0x2D3543}, /* East Asian ideograph */ + {"\xBD", 0, 0x333D54}, /* East Asian ideograph */ + {"\xA4", 0, 0x4B306E}, /* East Asian ideograph (variant of EACC 21306E) */ + {"\xAD", 0, 0x4B3072}, /* East Asian ideograph */ + {"\xAE", 0, 0x4B3231}, /* East Asian ideograph */ + {"\x80", 0, 0x4B4B77}, /* East Asian ideograph */ + {"\x82", 0, 0x4B682E}, /* East Asian ideograph */ + {"\xAB", 0, 0x70586F}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page7 = { + marc8r_9page7_flat, 0 +}; +/* PAGE 6 */ +struct yaz_iconv_trie_dir marc8r_9page6_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x2D632D} /* East Asian ideograph */, + {0, 0, 0x39304C} /* East Asian ideograph */, + {0, 0, 0x21304D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x216446} /* East Asian ideograph */, + {0, 0, 0x274D73} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27595E} /* East Asian ideograph */, + {0, 0, 0x2D4A3B} /* East Asian ideograph */, + {0, 0, 0x4B3050} /* East Asian ideograph */, + {0, 0, 0x213050} /* East Asian ideograph */, + {0, 0, 0x213051} /* East Asian ideograph */, + {0, 0, 0x275747} /* East Asian ideograph */, + {0, 0, 0x213052} /* East Asian ideograph */, + {0, 0, 0x27564C} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275F54} /* East Asian ideograph */, + {0, 0, 0x213055} /* East Asian ideograph */, + {0, 0, 0x33332A} /* East Asian ideograph */, + {0, 0, 0x213054} /* East Asian ideograph */, + {0, 0, 0x213053} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x3F4629} /* East Asian ideograph */, + {0, 0, 0x513057} /* East Asian ideograph */, + {0, 0, 0x213057} /* East Asian ideograph (variant of EACC 4B3057) */, + {0, 0, 0x273058} /* East Asian ideograph */, + {0, 0, 0x213059} /* East Asian ideograph */, + {0, 0, 0x2D3058} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213058} /* East Asian ideograph */, + {0, 0, 0x21305A} /* East Asian ideograph */, + {0, 0, 0x216450} /* East Asian ideograph */, + {0, 0, 0x21305B} /* East Asian ideograph */, + {0, 0, 0x216451} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21305E} /* East Asian ideograph */, + {0, 0, 0x21305D} /* East Asian ideograph */, + {0, 0, 0x21305C} /* East Asian ideograph */, + {0, 0, 0x274B7A} /* East Asian ideograph */, + {0, 0, 0x21305F} /* East Asian ideograph */, + {0, 0, 0x274C2D} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x213060} /* East Asian ideograph */, + {0, 0, 0x213061} /* East Asian ideograph */, + {0, 0, 0x213062} /* East Asian ideograph */, + {0, 0, 0x213063} /* East Asian ideograph */, + {0, 0, 0x333060} /* East Asian ideograph */, + {0, 0, 0x2D3061} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x27582C} /* East Asian ideograph */, + {0, 0, 0x216452} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x275777} /* East Asian ideograph */, + {0, 0, 0x216455} /* East Asian ideograph (variant of EACC 4B6455) */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0x216458} /* East Asian ideograph */, + {0, 0, 0x213064} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x21645A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0x2D305B} /* East Asian ideograph */, + {0, 0, 0x27325A} /* East Asian ideograph */, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page6 = { + 0, marc8r_9page6_dir +}; +/* PAGE 5 */ +struct yaz_iconv_trie_flat marc8r_9page5_flat[] = { + {"\x83", 0, 0x21303A}, /* East Asian ideograph */ + {"\x85", 0, 0x21303B}, /* East Asian ideograph */ + {"\x8B", 0, 0x21303D}, /* East Asian ideograph */ + {"\x8F", 0, 0x21303F}, /* East Asian ideograph */ + {"\x8E", 0, 0x213040}, /* East Asian ideograph */ + {"\x8D", 0, 0x213041}, /* East Asian ideograph */ + {"\x92", 0, 0x213042}, /* East Asian ideograph */ + {"\x93", 0, 0x213043}, /* East Asian ideograph */ + {"\x96", 0, 0x213044}, /* East Asian ideograph */ + {"\x98", 0, 0x213045}, /* East Asian ideograph */ + {"\x99", 0, 0x213046}, /* East Asian ideograph */ + {"\x9D", 0, 0x213047}, /* East Asian ideograph */ + {"\x9F", 0, 0x213048}, /* East Asian ideograph */ + {"\x9E", 0, 0x213049}, /* East Asian ideograph */ + {"\xB3", 0, 0x21304B}, /* East Asian ideograph */ + {"\xBE", 0, 0x21304C}, /* East Asian ideograph */ + {"\x82", 0, 0x216434}, /* East Asian ideograph */ + {"\x9C", 0, 0x21643C}, /* East Asian ideograph */ + {"\xB1", 0, 0x27304D}, /* East Asian ideograph */ + {"\x94", 0, 0x27366F}, /* East Asian ideograph */ + {"\xA6", 0, 0x274355}, /* East Asian ideograph */ + {"\x90", 0, 0x27454E}, /* East Asian ideograph */ + {"\x8C", 0, 0x27495D}, /* East Asian ideograph */ + {"\x89", 0, 0x275242}, /* East Asian ideograph */ + {"\xA0", 0, 0x27524D}, /* East Asian ideograph */ + {"\x87", 0, 0x275644}, /* East Asian ideograph */ + {"\xB0", 0, 0x27597A}, /* East Asian ideograph */ + {"\xA1", 0, 0x275C70}, /* East Asian ideograph */ + {"\x88", 0, 0x276260}, /* East Asian ideograph */ + {"\x97", 0, 0x2D3045}, /* East Asian ideograph */ + {"\xA9", 0, 0x2D4F41}, /* East Asian ideograph */ + {"\xB9", 0, 0x33304C}, /* East Asian ideograph */ + {"\x95", 0, 0x395643}, /* East Asian ideograph */ + {"\xA2", 0, 0x695626}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page5 = { + marc8r_9page5_flat, 0 +}; +/* PAGE 4 */ +struct yaz_iconv_trie_flat marc8r_9page4_flat[] = { + {"\x80", 0, 0x213021}, /* East Asian ideograph */ + {"\x81", 0, 0x213022}, /* East Asian ideograph */ + {"\x83", 0, 0x213023}, /* East Asian ideograph */ + {"\x89", 0, 0x213024}, /* East Asian ideograph */ + {"\x8B", 0, 0x213025}, /* East Asian ideograph */ + {"\x8A", 0, 0x213026}, /* East Asian ideograph */ + {"\x88", 0, 0x213027}, /* East Asian ideograph */ + {"\x90", 0, 0x213029}, /* East Asian ideograph */ + {"\x8D", 0, 0x21302A}, /* East Asian ideograph */ + {"\x94", 0, 0x21302B}, /* East Asian ideograph */ + {"\x99", 0, 0x21302C}, /* East Asian ideograph */ + {"\x96", 0, 0x21302D}, /* East Asian ideograph */ + {"\x95", 0, 0x21302E}, /* East Asian ideograph */ + {"\x98", 0, 0x21302F}, /* East Asian ideograph */ + {"\xA2", 0, 0x213030}, /* East Asian ideograph */ + {"\x9E", 0, 0x213031}, /* East Asian ideograph */ + {"\xA6", 0, 0x213032}, /* East Asian ideograph */ + {"\xAD", 0, 0x213034}, /* East Asian ideograph */ + {"\xB2", 0, 0x213035}, /* East Asian ideograph */ + {"\xB8", 0, 0x213037}, /* East Asian ideograph */ + {"\xB9", 0, 0x213038}, /* East Asian ideograph */ + {"\xBB", 0, 0x213039}, /* East Asian ideograph */ + {"\x8F", 0, 0x216424}, /* East Asian ideograph */ + {"\xA8", 0, 0x216429}, /* East Asian ideograph */ + {"\xB1", 0, 0x21642E}, /* East Asian ideograph */ + {"\xB6", 0, 0x216431}, /* East Asian ideograph */ + {"\xBF", 0, 0x216433}, /* East Asian ideograph */ + {"\xAA", 0, 0x273224}, /* East Asian ideograph */ + {"\xA4", 0, 0x273323}, /* East Asian ideograph */ + {"\x9B", 0, 0x27352B}, /* East Asian ideograph */ + {"\xA7", 0, 0x273663}, /* East Asian ideograph */ + {"\xA5", 0, 0x27375A}, /* East Asian ideograph */ + {"\x93", 0, 0x273B3F}, /* East Asian ideograph */ + {"\x9C", 0, 0x274426}, /* East Asian ideograph */ + {"\x9A", 0, 0x27452D}, /* East Asian ideograph */ + {"\xBA", 0, 0x274951}, /* East Asian ideograph */ + {"\x87", 0, 0x274F22}, /* East Asian ideograph */ + {"\x9D", 0, 0x27513B}, /* East Asian ideograph */ + {"\xB4", 0, 0x275425}, /* East Asian ideograph */ + {"\x8E", 0, 0x275432}, /* East Asian ideograph */ + {"\xBE", 0, 0x275434}, /* East Asian ideograph */ + {"\xB0", 0, 0x275958}, /* East Asian ideograph */ + {"\x91", 0, 0x275D30}, /* East Asian ideograph */ + {"\xBD", 0, 0x276256}, /* East Asian ideograph */ + {"\xAB", 0, 0x283B22}, /* East Asian ideograph */ + {"\x97", 0, 0x2D302D}, /* East Asian ideograph */ + {"\xBC", 0, 0x2D3053}, /* East Asian ideograph */ + {"\x8C", 0, 0x2D332A}, /* East Asian ideograph */ + {"\xA1", 0, 0x333323}, /* East Asian ideograph */ + {"\xAC", 0, 0x4C5541}, /* East Asian ideograph */ + {"", 0} +}; +struct yaz_iconv_trie marc8r_9page4 = { + marc8r_9page4_flat, 0 +}; +/* PAGE 3 */ +struct yaz_iconv_trie_dir marc8r_9page3_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {15, 0, 0}, + {16, 0, 0}, + {17, 0, 0}, + {18, 0, 0}, + {19, 0, 0}, + {20, 0, 0}, + {21, 0, 0}, + {13, 0, 0}, + {23, 0, 0}, + {24, 0, 0}, + {25, 0, 0}, + {26, 0, 0}, + {27, 0, 0}, + {29, 0, 0}, + {30, 0, 0}, + {28, 0, 0}, + {31, 0, 0}, + {32, 0, 0}, + {33, 0, 0}, + {34, 0, 0}, + {35, 0, 0}, + {36, 0, 0}, + {37, 0, 0}, + {38, 0, 0}, + {39, 0, 0}, + {40, 0, 0}, + {41, 0, 0}, + {42, 0, 0}, + {43, 0, 0}, + {44, 0, 0}, + {45, 0, 0}, + {46, 0, 0}, + {47, 0, 0}, + {48, 0, 0}, + {49, 0, 0}, + {50, 0, 0}, + {51, 0, 0}, + {52, 0, 0}, + {53, 0, 0}, + {54, 0, 0}, + {55, 0, 0}, + {56, 0, 0}, + {57, 0, 0}, + {58, 0, 0}, + {59, 0, 0}, + {60, 0, 0}, + {61, 0, 0}, + {62, 0, 0}, + {14, 0, 0}, + {63, 0, 0}, + {64, 0, 0}, + {65, 0, 0}, + {66, 0, 0}, + {67, 0, 0}, + {68, 0, 0}, + {69, 0, 0}, + {70, 0, 0}, + {71, 0, 0}, + {72, 0, 0}, + {73, 0, 0}, + {75, 0, 0}, + {76, 0, 0}, + {77, 0, 0}, + {78, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page3 = { + 0, marc8r_9page3_dir +}; +/* PAGE 2 */ +struct yaz_iconv_trie_dir marc8r_9page2_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {330, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {5, 0, 0}, + {6, 0, 0}, + {7, 0, 0}, + {8, 0, 0}, + {9, 0, 0}, + {10, 0, 0}, + {11, 0, 0}, + {12, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page2 = { + 0, marc8r_9page2_dir +}; +/* PAGE 1 */ +struct yaz_iconv_trie_dir marc8r_9page1_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {337, 0, 0}, + {341, 0, 0}, + {342, 0, 0}, + {340, 0, 0}, + {343, 0, 0}, + {344, 0, 0}, + {523, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {339, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {338, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page1 = { + 0, marc8r_9page1_dir +}; +/* PAGE 0 */ +struct yaz_iconv_trie_dir marc8r_9page0_dir[256] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {2, 0, 0}, + {3, 0, 0}, + {4, 0, 0}, + {22, 0, 0}, + {143, 0, 0}, + {183, 0, 0}, + {74, 0, 0}, + {345, 0, 0}, + {362, 0, 0}, + {427, 0, 0}, + {491, 0, 0}, + {524, 0, 0}, + {525, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; +struct yaz_iconv_trie marc8r_9page0 = { + 0, marc8r_9page0_dir +}; +struct yaz_iconv_trie *marc8r_9ptrs [] = { + &marc8r_9page0, + &marc8r_9page1, + &marc8r_9page2, + &marc8r_9page3, + &marc8r_9page4, + &marc8r_9page5, + &marc8r_9page6, + &marc8r_9page7, + &marc8r_9page8, + &marc8r_9page9, + &marc8r_9page10, + &marc8r_9page11, + &marc8r_9page12, + &marc8r_9page13, + &marc8r_9page14, + &marc8r_9page15, + &marc8r_9page16, + &marc8r_9page17, + &marc8r_9page18, + &marc8r_9page19, + &marc8r_9page20, + &marc8r_9page21, + &marc8r_9page22, + &marc8r_9page23, + &marc8r_9page24, + &marc8r_9page25, + &marc8r_9page26, + &marc8r_9page27, + &marc8r_9page28, + &marc8r_9page29, + &marc8r_9page30, + &marc8r_9page31, + &marc8r_9page32, + &marc8r_9page33, + &marc8r_9page34, + &marc8r_9page35, + &marc8r_9page36, + &marc8r_9page37, + &marc8r_9page38, + &marc8r_9page39, + &marc8r_9page40, + &marc8r_9page41, + &marc8r_9page42, + &marc8r_9page43, + &marc8r_9page44, + &marc8r_9page45, + &marc8r_9page46, + &marc8r_9page47, + &marc8r_9page48, + &marc8r_9page49, + &marc8r_9page50, + &marc8r_9page51, + &marc8r_9page52, + &marc8r_9page53, + &marc8r_9page54, + &marc8r_9page55, + &marc8r_9page56, + &marc8r_9page57, + &marc8r_9page58, + &marc8r_9page59, + &marc8r_9page60, + &marc8r_9page61, + &marc8r_9page62, + &marc8r_9page63, + &marc8r_9page64, + &marc8r_9page65, + &marc8r_9page66, + &marc8r_9page67, + &marc8r_9page68, + &marc8r_9page69, + &marc8r_9page70, + &marc8r_9page71, + &marc8r_9page72, + &marc8r_9page73, + &marc8r_9page74, + &marc8r_9page75, + &marc8r_9page76, + &marc8r_9page77, + &marc8r_9page78, + &marc8r_9page79, + &marc8r_9page80, + &marc8r_9page81, + &marc8r_9page82, + &marc8r_9page83, + &marc8r_9page84, + &marc8r_9page85, + &marc8r_9page86, + &marc8r_9page87, + &marc8r_9page88, + &marc8r_9page89, + &marc8r_9page90, + &marc8r_9page91, + &marc8r_9page92, + &marc8r_9page93, + &marc8r_9page94, + &marc8r_9page95, + &marc8r_9page96, + &marc8r_9page97, + &marc8r_9page98, + &marc8r_9page99, + &marc8r_9page100, + &marc8r_9page101, + &marc8r_9page102, + &marc8r_9page103, + &marc8r_9page104, + &marc8r_9page105, + &marc8r_9page106, + &marc8r_9page107, + &marc8r_9page108, + &marc8r_9page109, + &marc8r_9page110, + &marc8r_9page111, + &marc8r_9page112, + &marc8r_9page113, + &marc8r_9page114, + &marc8r_9page115, + &marc8r_9page116, + &marc8r_9page117, + &marc8r_9page118, + &marc8r_9page119, + &marc8r_9page120, + &marc8r_9page121, + &marc8r_9page122, + &marc8r_9page123, + &marc8r_9page124, + &marc8r_9page125, + &marc8r_9page126, + &marc8r_9page127, + &marc8r_9page128, + &marc8r_9page129, + &marc8r_9page130, + &marc8r_9page131, + &marc8r_9page132, + &marc8r_9page133, + &marc8r_9page134, + &marc8r_9page135, + &marc8r_9page136, + &marc8r_9page137, + &marc8r_9page138, + &marc8r_9page139, + &marc8r_9page140, + &marc8r_9page141, + &marc8r_9page142, + &marc8r_9page143, + &marc8r_9page144, + &marc8r_9page145, + &marc8r_9page146, + &marc8r_9page147, + &marc8r_9page148, + &marc8r_9page149, + &marc8r_9page150, + &marc8r_9page151, + &marc8r_9page152, + &marc8r_9page153, + &marc8r_9page154, + &marc8r_9page155, + &marc8r_9page156, + &marc8r_9page157, + &marc8r_9page158, + &marc8r_9page159, + &marc8r_9page160, + &marc8r_9page161, + &marc8r_9page162, + &marc8r_9page163, + &marc8r_9page164, + &marc8r_9page165, + &marc8r_9page166, + &marc8r_9page167, + &marc8r_9page168, + &marc8r_9page169, + &marc8r_9page170, + &marc8r_9page171, + &marc8r_9page172, + &marc8r_9page173, + &marc8r_9page174, + &marc8r_9page175, + &marc8r_9page176, + &marc8r_9page177, + &marc8r_9page178, + &marc8r_9page179, + &marc8r_9page180, + &marc8r_9page181, + &marc8r_9page182, + &marc8r_9page183, + &marc8r_9page184, + &marc8r_9page185, + &marc8r_9page186, + &marc8r_9page187, + &marc8r_9page188, + &marc8r_9page189, + &marc8r_9page190, + &marc8r_9page191, + &marc8r_9page192, + &marc8r_9page193, + &marc8r_9page194, + &marc8r_9page195, + &marc8r_9page196, + &marc8r_9page197, + &marc8r_9page198, + &marc8r_9page199, + &marc8r_9page200, + &marc8r_9page201, + &marc8r_9page202, + &marc8r_9page203, + &marc8r_9page204, + &marc8r_9page205, + &marc8r_9page206, + &marc8r_9page207, + &marc8r_9page208, + &marc8r_9page209, + &marc8r_9page210, + &marc8r_9page211, + &marc8r_9page212, + &marc8r_9page213, + &marc8r_9page214, + &marc8r_9page215, + &marc8r_9page216, + &marc8r_9page217, + &marc8r_9page218, + &marc8r_9page219, + &marc8r_9page220, + &marc8r_9page221, + &marc8r_9page222, + &marc8r_9page223, + &marc8r_9page224, + &marc8r_9page225, + &marc8r_9page226, + &marc8r_9page227, + &marc8r_9page228, + &marc8r_9page229, + &marc8r_9page230, + &marc8r_9page231, + &marc8r_9page232, + &marc8r_9page233, + &marc8r_9page234, + &marc8r_9page235, + &marc8r_9page236, + &marc8r_9page237, + &marc8r_9page238, + &marc8r_9page239, + &marc8r_9page240, + &marc8r_9page241, + &marc8r_9page242, + &marc8r_9page243, + &marc8r_9page244, + &marc8r_9page245, + &marc8r_9page246, + &marc8r_9page247, + &marc8r_9page248, + &marc8r_9page249, + &marc8r_9page250, + &marc8r_9page251, + &marc8r_9page252, + &marc8r_9page253, + &marc8r_9page254, + &marc8r_9page255, + &marc8r_9page256, + &marc8r_9page257, + &marc8r_9page258, + &marc8r_9page259, + &marc8r_9page260, + &marc8r_9page261, + &marc8r_9page262, + &marc8r_9page263, + &marc8r_9page264, + &marc8r_9page265, + &marc8r_9page266, + &marc8r_9page267, + &marc8r_9page268, + &marc8r_9page269, + &marc8r_9page270, + &marc8r_9page271, + &marc8r_9page272, + &marc8r_9page273, + &marc8r_9page274, + &marc8r_9page275, + &marc8r_9page276, + &marc8r_9page277, + &marc8r_9page278, + &marc8r_9page279, + &marc8r_9page280, + &marc8r_9page281, + &marc8r_9page282, + &marc8r_9page283, + &marc8r_9page284, + &marc8r_9page285, + &marc8r_9page286, + &marc8r_9page287, + &marc8r_9page288, + &marc8r_9page289, + &marc8r_9page290, + &marc8r_9page291, + &marc8r_9page292, + &marc8r_9page293, + &marc8r_9page294, + &marc8r_9page295, + &marc8r_9page296, + &marc8r_9page297, + &marc8r_9page298, + &marc8r_9page299, + &marc8r_9page300, + &marc8r_9page301, + &marc8r_9page302, + &marc8r_9page303, + &marc8r_9page304, + &marc8r_9page305, + &marc8r_9page306, + &marc8r_9page307, + &marc8r_9page308, + &marc8r_9page309, + &marc8r_9page310, + &marc8r_9page311, + &marc8r_9page312, + &marc8r_9page313, + &marc8r_9page314, + &marc8r_9page315, + &marc8r_9page316, + &marc8r_9page317, + &marc8r_9page318, + &marc8r_9page319, + &marc8r_9page320, + &marc8r_9page321, + &marc8r_9page322, + &marc8r_9page323, + &marc8r_9page324, + &marc8r_9page325, + &marc8r_9page326, + &marc8r_9page327, + &marc8r_9page328, + &marc8r_9page329, + &marc8r_9page330, + &marc8r_9page331, + &marc8r_9page332, + &marc8r_9page333, + &marc8r_9page334, + &marc8r_9page335, + &marc8r_9page336, + &marc8r_9page337, + &marc8r_9page338, + &marc8r_9page339, + &marc8r_9page340, + &marc8r_9page341, + &marc8r_9page342, + &marc8r_9page343, + &marc8r_9page344, + &marc8r_9page345, + &marc8r_9page346, + &marc8r_9page347, + &marc8r_9page348, + &marc8r_9page349, + &marc8r_9page350, + &marc8r_9page351, + &marc8r_9page352, + &marc8r_9page353, + &marc8r_9page354, + &marc8r_9page355, + &marc8r_9page356, + &marc8r_9page357, + &marc8r_9page358, + &marc8r_9page359, + &marc8r_9page360, + &marc8r_9page361, + &marc8r_9page362, + &marc8r_9page363, + &marc8r_9page364, + &marc8r_9page365, + &marc8r_9page366, + &marc8r_9page367, + &marc8r_9page368, + &marc8r_9page369, + &marc8r_9page370, + &marc8r_9page371, + &marc8r_9page372, + &marc8r_9page373, + &marc8r_9page374, + &marc8r_9page375, + &marc8r_9page376, + &marc8r_9page377, + &marc8r_9page378, + &marc8r_9page379, + &marc8r_9page380, + &marc8r_9page381, + &marc8r_9page382, + &marc8r_9page383, + &marc8r_9page384, + &marc8r_9page385, + &marc8r_9page386, + &marc8r_9page387, + &marc8r_9page388, + &marc8r_9page389, + &marc8r_9page390, + &marc8r_9page391, + &marc8r_9page392, + &marc8r_9page393, + &marc8r_9page394, + &marc8r_9page395, + &marc8r_9page396, + &marc8r_9page397, + &marc8r_9page398, + &marc8r_9page399, + &marc8r_9page400, + &marc8r_9page401, + &marc8r_9page402, + &marc8r_9page403, + &marc8r_9page404, + &marc8r_9page405, + &marc8r_9page406, + &marc8r_9page407, + &marc8r_9page408, + &marc8r_9page409, + &marc8r_9page410, + &marc8r_9page411, + &marc8r_9page412, + &marc8r_9page413, + &marc8r_9page414, + &marc8r_9page415, + &marc8r_9page416, + &marc8r_9page417, + &marc8r_9page418, + &marc8r_9page419, + &marc8r_9page420, + &marc8r_9page421, + &marc8r_9page422, + &marc8r_9page423, + &marc8r_9page424, + &marc8r_9page425, + &marc8r_9page426, + &marc8r_9page427, + &marc8r_9page428, + &marc8r_9page429, + &marc8r_9page430, + &marc8r_9page431, + &marc8r_9page432, + &marc8r_9page433, + &marc8r_9page434, + &marc8r_9page435, + &marc8r_9page436, + &marc8r_9page437, + &marc8r_9page438, + &marc8r_9page439, + &marc8r_9page440, + &marc8r_9page441, + &marc8r_9page442, + &marc8r_9page443, + &marc8r_9page444, + &marc8r_9page445, + &marc8r_9page446, + &marc8r_9page447, + &marc8r_9page448, + &marc8r_9page449, + &marc8r_9page450, + &marc8r_9page451, + &marc8r_9page452, + &marc8r_9page453, + &marc8r_9page454, + &marc8r_9page455, + &marc8r_9page456, + &marc8r_9page457, + &marc8r_9page458, + &marc8r_9page459, + &marc8r_9page460, + &marc8r_9page461, + &marc8r_9page462, + &marc8r_9page463, + &marc8r_9page464, + &marc8r_9page465, + &marc8r_9page466, + &marc8r_9page467, + &marc8r_9page468, + &marc8r_9page469, + &marc8r_9page470, + &marc8r_9page471, + &marc8r_9page472, + &marc8r_9page473, + &marc8r_9page474, + &marc8r_9page475, + &marc8r_9page476, + &marc8r_9page477, + &marc8r_9page478, + &marc8r_9page479, + &marc8r_9page480, + &marc8r_9page481, + &marc8r_9page482, + &marc8r_9page483, + &marc8r_9page484, + &marc8r_9page485, + &marc8r_9page486, + &marc8r_9page487, + &marc8r_9page488, + &marc8r_9page489, + &marc8r_9page490, + &marc8r_9page491, + &marc8r_9page492, + &marc8r_9page493, + &marc8r_9page494, + &marc8r_9page495, + &marc8r_9page496, + &marc8r_9page497, + &marc8r_9page498, + &marc8r_9page499, + &marc8r_9page500, + &marc8r_9page501, + &marc8r_9page502, + &marc8r_9page503, + &marc8r_9page504, + &marc8r_9page505, + &marc8r_9page506, + &marc8r_9page507, + &marc8r_9page508, + &marc8r_9page509, + &marc8r_9page510, + &marc8r_9page511, + &marc8r_9page512, + &marc8r_9page513, + &marc8r_9page514, + &marc8r_9page515, + &marc8r_9page516, + &marc8r_9page517, + &marc8r_9page518, + &marc8r_9page519, + &marc8r_9page520, + &marc8r_9page521, + &marc8r_9page522, + &marc8r_9page523, + &marc8r_9page524, + &marc8r_9page525, + &marc8r_9page526, +0, }; + +unsigned long yaz_marc8r_9_conv + (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) + { + unsigned long code; + + code = lookup(marc8r_9ptrs, 1, inp, inbytesleft, no_read, combining); + if (!code) + { + *no_read = 1; + } + return code; + } + diff --git a/dependencies/yaz-2.1.28/src/marcdisp.c b/dependencies/yaz-2.1.28/src/marcdisp.c new file mode 100644 index 0000000..5620990 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/marcdisp.c @@ -0,0 +1,1288 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: marcdisp.c,v 1.34 2006/08/28 14:18:22 adam Exp $ + */ + +/** + * \file marcdisp.c + * \brief Implements MARC conversion utilities + */ + +#if HAVE_CONFIG_H +#include +#endif + +#ifdef WIN32 +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#include +#endif + +static void yaz_marc_reset(yaz_marc_t mt); + +/** \brief node types for yaz_marc_node */ +enum YAZ_MARC_NODE_TYPE +{ + YAZ_MARC_DATAFIELD, + YAZ_MARC_CONTROLFIELD, + YAZ_MARC_COMMENT, + YAZ_MARC_LEADER +}; + +/** \brief represets a data field */ +struct yaz_marc_datafield { + char *tag; + char *indicator; + struct yaz_marc_subfield *subfields; +}; + +/** \brief represents a control field */ +struct yaz_marc_controlfield { + char *tag; + char *data; +}; + +/** \brief a comment node */ +struct yaz_marc_comment { + char *comment; +}; + +/** \brief MARC node */ +struct yaz_marc_node { + enum YAZ_MARC_NODE_TYPE which; + union { + struct yaz_marc_datafield datafield; + struct yaz_marc_controlfield controlfield; + char *comment; + char *leader; + } u; + struct yaz_marc_node *next; +}; + +/** \brief represents a subfield */ +struct yaz_marc_subfield { + char *code_data; + struct yaz_marc_subfield *next; +}; + +/** \brief the internals of a yaz_marc_t handle */ +struct yaz_marc_t_ { + WRBUF m_wr; + NMEM nmem; + int xml; + int debug; + yaz_iconv_t iconv_cd; + char subfield_str[8]; + char endline_str[8]; + char *leader_spec; + struct yaz_marc_node *nodes; + struct yaz_marc_node **nodes_pp; + struct yaz_marc_subfield **subfield_pp; +}; + +yaz_marc_t yaz_marc_create(void) +{ + yaz_marc_t mt = (yaz_marc_t) xmalloc(sizeof(*mt)); + mt->xml = YAZ_MARC_LINE; + mt->debug = 0; + mt->m_wr = wrbuf_alloc(); + mt->iconv_cd = 0; + mt->leader_spec = 0; + strcpy(mt->subfield_str, " $"); + strcpy(mt->endline_str, "\n"); + + mt->nmem = nmem_create(); + yaz_marc_reset(mt); + return mt; +} + +void yaz_marc_destroy(yaz_marc_t mt) +{ + if (!mt) + return ; + nmem_destroy(mt->nmem); + wrbuf_free(mt->m_wr, 1); + xfree(mt->leader_spec); + xfree(mt); +} + +static int marc_exec_leader(const char *leader_spec, char *leader, + size_t size); + + +struct yaz_marc_node *yaz_marc_add_node(yaz_marc_t mt) +{ + struct yaz_marc_node *n = nmem_malloc(mt->nmem, sizeof(*n)); + n->next = 0; + *mt->nodes_pp = n; + mt->nodes_pp = &n->next; + return n; +} + +void yaz_marc_add_comment(yaz_marc_t mt, char *comment) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_COMMENT; + n->u.comment = nmem_strdup(mt->nmem, comment); +} + +void yaz_marc_cprintf(yaz_marc_t mt, const char *fmt, ...) +{ + va_list ap; + char buf[200]; + va_start(ap, fmt); + +#ifdef WIN32 + _vsnprintf(buf, sizeof(buf)-1, fmt, ap); +#else +/* !WIN32 */ +#if HAVE_VSNPRINTF + vsnprintf(buf, sizeof(buf), fmt, ap); +#else + vsprintf(buf, fmt, ap); +#endif +#endif +/* WIN32 */ + yaz_marc_add_comment(mt, buf); + va_end (ap); +} + +void yaz_marc_add_leader(yaz_marc_t mt, const char *leader, size_t leader_len) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_LEADER; + n->u.leader = nmem_strdupn(mt->nmem, leader, leader_len); + marc_exec_leader(mt->leader_spec, n->u.leader, leader_len); +} + +void yaz_marc_add_controlfield(yaz_marc_t mt, const char *tag, + const char *data, size_t data_len) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_CONTROLFIELD; + n->u.controlfield.tag = nmem_strdup(mt->nmem, tag); + n->u.controlfield.data = nmem_strdupn(mt->nmem, data, data_len); + if (mt->debug) + { + size_t i; + char msg[80]; + + sprintf(msg, "controlfield:"); + for (i = 0; i < 16 && i < data_len; i++) + sprintf(msg + strlen(msg), " %02X", data[i] & 0xff); + if (i < data_len) + sprintf(msg + strlen(msg), " .."); + yaz_marc_add_comment(mt, msg); + } +} + +#if YAZ_HAVE_XML2 +void yaz_marc_add_controlfield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, + const xmlNode *ptr_data) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_CONTROLFIELD; + n->u.controlfield.tag = nmem_text_node_cdata(ptr_tag, mt->nmem); + n->u.controlfield.data = nmem_text_node_cdata(ptr_data, mt->nmem); +} +#endif + +void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag, + const char *indicator, size_t indicator_len) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_DATAFIELD; + n->u.datafield.tag = nmem_strdup(mt->nmem, tag); + n->u.datafield.indicator = + nmem_strdupn(mt->nmem, indicator, indicator_len); + n->u.datafield.subfields = 0; + + /* make subfield_pp the current (last one) */ + mt->subfield_pp = &n->u.datafield.subfields; +} + +#if YAZ_HAVE_XML2 +void yaz_marc_add_datafield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, + const char *indicator, size_t indicator_len) +{ + struct yaz_marc_node *n = yaz_marc_add_node(mt); + n->which = YAZ_MARC_DATAFIELD; + n->u.datafield.tag = nmem_text_node_cdata(ptr_tag, mt->nmem); + n->u.datafield.indicator = + nmem_strdupn(mt->nmem, indicator, indicator_len); + n->u.datafield.subfields = 0; + + /* make subfield_pp the current (last one) */ + mt->subfield_pp = &n->u.datafield.subfields; +} +#endif + +void yaz_marc_add_subfield(yaz_marc_t mt, + const char *code_data, size_t code_data_len) +{ + if (mt->debug) + { + size_t i; + char msg[80]; + + sprintf(msg, "subfield:"); + for (i = 0; i < 16 && i < code_data_len; i++) + sprintf(msg + strlen(msg), " %02X", code_data[i] & 0xff); + if (i < code_data_len) + sprintf(msg + strlen(msg), " .."); + yaz_marc_add_comment(mt, msg); + } + + if (mt->subfield_pp) + { + struct yaz_marc_subfield *n = nmem_malloc(mt->nmem, sizeof(*n)); + n->code_data = nmem_strdupn(mt->nmem, code_data, code_data_len); + n->next = 0; + /* mark subfield_pp to point to this one, so we append here next */ + *mt->subfield_pp = n; + mt->subfield_pp = &n->next; + } +} + +static int atoi_n_check(const char *buf, int size, int *val) +{ + if (!isdigit(*(const unsigned char *) buf)) + return 0; + *val = atoi_n(buf, size); + return 1; +} + +/** \brief reads the MARC 24 bytes leader and checks content + \param mt handle + \param leader of the 24 byte leader + \param indicator_length indicator length + \param identifier_length identifier length + \param base_address base address + \param length_data_entry length of data entry + \param length_starting length of starting + \param length_implementation length of implementation defined data +*/ +static void yaz_marc_read_leader(yaz_marc_t mt, const char *leader_c, + int *indicator_length, + int *identifier_length, + int *base_address, + int *length_data_entry, + int *length_starting, + int *length_implementation) +{ + char leader[24]; + + memcpy(leader, leader_c, 24); + + if (!atoi_n_check(leader+10, 1, indicator_length)) + { + yaz_marc_cprintf(mt, + "Indicator length at offset 10 should hold a digit." + " Assuming 2"); + leader[10] = '2'; + *indicator_length = 2; + } + if (!atoi_n_check(leader+11, 1, identifier_length)) + { + yaz_marc_cprintf(mt, + "Identifier length at offset 11 should hold a digit." + " Assuming 2"); + leader[11] = '2'; + *identifier_length = 2; + } + if (!atoi_n_check(leader+12, 5, base_address)) + { + yaz_marc_cprintf(mt, + "Base address at offsets 12..16 should hold a number." + " Assuming 0"); + *base_address = 0; + } + if (!atoi_n_check(leader+20, 1, length_data_entry)) + { + yaz_marc_cprintf(mt, + "Length data entry at offset 20 should hold a digit." + " Assuming 4"); + *length_data_entry = 4; + leader[20] = '4'; + } + if (!atoi_n_check(leader+21, 1, length_starting)) + { + yaz_marc_cprintf(mt, + "Length starting at offset 21 should hold a digit." + " Assuming 5"); + *length_starting = 5; + leader[21] = '5'; + } + if (!atoi_n_check(leader+22, 1, length_implementation)) + { + yaz_marc_cprintf(mt, + "Length implementation at offset 22 should hold a digit." + " Assuming 0"); + *length_implementation = 0; + leader[22] = '0'; + } + + if (mt->debug) + { + yaz_marc_cprintf(mt, "Indicator length %5d", *indicator_length); + yaz_marc_cprintf(mt, "Identifier length %5d", *identifier_length); + yaz_marc_cprintf(mt, "Base address %5d", *base_address); + yaz_marc_cprintf(mt, "Length data entry %5d", *length_data_entry); + yaz_marc_cprintf(mt, "Length starting %5d", *length_starting); + yaz_marc_cprintf(mt, "Length implementation %5d", *length_implementation); + } + yaz_marc_add_leader(mt, leader, 24); +} + +void yaz_marc_subfield_str(yaz_marc_t mt, const char *s) +{ + strncpy(mt->subfield_str, s, sizeof(mt->subfield_str)-1); + mt->subfield_str[sizeof(mt->subfield_str)-1] = '\0'; +} + +void yaz_marc_endline_str(yaz_marc_t mt, const char *s) +{ + strncpy(mt->endline_str, s, sizeof(mt->endline_str)-1); + mt->endline_str[sizeof(mt->endline_str)-1] = '\0'; +} + +/* try to guess how many bytes the identifier really is! */ +static size_t cdata_one_character(yaz_marc_t mt, const char *buf) +{ + if (mt->iconv_cd) + { + size_t i; + for (i = 1; i<5; i++) + { + char outbuf[12]; + size_t outbytesleft = sizeof(outbuf); + char *outp = outbuf; + const char *inp = buf; + + size_t inbytesleft = i; + size_t r = yaz_iconv(mt->iconv_cd, (char**) &inp, &inbytesleft, + &outp, &outbytesleft); + if (r != (size_t) (-1)) + return i; /* got a complete sequence */ + } + return 1; /* giving up */ + } + return 1; /* we don't know */ +} + +static void yaz_marc_reset(yaz_marc_t mt) +{ + nmem_reset(mt->nmem); + mt->nodes = 0; + mt->nodes_pp = &mt->nodes; + mt->subfield_pp = 0; +} + +int yaz_marc_write_line(yaz_marc_t mt, WRBUF wr) +{ + struct yaz_marc_node *n; + int identifier_length; + const char *leader = 0; + + for (n = mt->nodes; n; n = n->next) + if (n->which == YAZ_MARC_LEADER) + { + leader = n->u.leader; + break; + } + + if (!leader) + return -1; + if (!atoi_n_check(leader+11, 1, &identifier_length)) + return -1; + + for (n = mt->nodes; n; n = n->next) + { + struct yaz_marc_subfield *s; + switch(n->which) + { + case YAZ_MARC_DATAFIELD: + wrbuf_printf(wr, "%s %s", n->u.datafield.tag, + n->u.datafield.indicator); + for (s = n->u.datafield.subfields; s; s = s->next) + { + /* if identifier length is 2 (most MARCs), + the code is a single character .. However we've + seen multibyte codes, so see how big it really is */ + size_t using_code_len = + (identifier_length != 2) ? identifier_length - 1 + : + cdata_one_character(mt, s->code_data); + + wrbuf_puts (wr, mt->subfield_str); + wrbuf_iconv_write(wr, mt->iconv_cd, s->code_data, + using_code_len); + wrbuf_iconv_puts(wr, mt->iconv_cd, " "); + wrbuf_iconv_puts(wr, mt->iconv_cd, + s->code_data + using_code_len); + wrbuf_iconv_puts(wr, mt->iconv_cd, " "); + wr->pos--; + } + wrbuf_puts (wr, mt->endline_str); + break; + case YAZ_MARC_CONTROLFIELD: + wrbuf_printf(wr, "%s", n->u.controlfield.tag); + wrbuf_iconv_puts(wr, mt->iconv_cd, " "); + wrbuf_iconv_puts(wr, mt->iconv_cd, n->u.controlfield.data); + wrbuf_iconv_puts(wr, mt->iconv_cd, " "); + wr->pos--; + wrbuf_puts (wr, mt->endline_str); + break; + case YAZ_MARC_COMMENT: + wrbuf_puts(wr, "("); + wrbuf_iconv_write(wr, mt->iconv_cd, + n->u.comment, strlen(n->u.comment)); + wrbuf_puts(wr, ")\n"); + break; + case YAZ_MARC_LEADER: + wrbuf_printf(wr, "%s\n", n->u.leader); + } + } + return 0; +} + +int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wr) +{ + switch(mt->xml) + { + case YAZ_MARC_LINE: + return yaz_marc_write_line(mt, wr); + case YAZ_MARC_MARCXML: + return yaz_marc_write_marcxml(mt, wr); + case YAZ_MARC_XCHANGE: + return yaz_marc_write_marcxchange(mt, wr, 0, 0); /* no format, type */ + case YAZ_MARC_ISO2709: + return yaz_marc_write_iso2709(mt, wr); + } + return -1; +} + +/** \brief common MARC XML/Xchange writer + \param mt handle + \param wr WRBUF output + \param ns XMLNS for the elements + \param format record format (e.g. "MARC21") + \param type record type (e.g. "Bibliographic") +*/ +static int yaz_marc_write_marcxml_ns(yaz_marc_t mt, WRBUF wr, + const char *ns, + const char *format, + const char *type) +{ + struct yaz_marc_node *n; + int identifier_length; + const char *leader = 0; + + for (n = mt->nodes; n; n = n->next) + if (n->which == YAZ_MARC_LEADER) + { + leader = n->u.leader; + break; + } + + if (!leader) + return -1; + if (!atoi_n_check(leader+11, 1, &identifier_length)) + return -1; + + wrbuf_printf(wr, "\n"); + for (n = mt->nodes; n; n = n->next) + { + struct yaz_marc_subfield *s; + + switch(n->which) + { + case YAZ_MARC_DATAFIELD: + wrbuf_printf(wr, " iconv_cd, n->u.datafield.tag, + strlen(n->u.datafield.tag)); + wrbuf_printf(wr, "\""); + if (n->u.datafield.indicator) + { + int i; + for (i = 0; n->u.datafield.indicator[i]; i++) + { + wrbuf_printf(wr, " ind%d=\"", i+1); + wrbuf_iconv_write_cdata(wr, mt->iconv_cd, + n->u.datafield.indicator+i, 1); + wrbuf_iconv_puts(wr, mt->iconv_cd, "\""); + } + } + wrbuf_printf(wr, ">\n"); + for (s = n->u.datafield.subfields; s; s = s->next) + { + /* if identifier length is 2 (most MARCs), + the code is a single character .. However we've + seen multibyte codes, so see how big it really is */ + size_t using_code_len = + (identifier_length != 2) ? identifier_length - 1 + : + cdata_one_character(mt, s->code_data); + + wrbuf_iconv_puts(wr, mt->iconv_cd, " iconv_cd, + s->code_data, using_code_len); + wrbuf_iconv_puts(wr, mt->iconv_cd, "\">"); + wrbuf_iconv_write_cdata(wr, mt->iconv_cd, + s->code_data + using_code_len, + strlen(s->code_data + using_code_len)); + wrbuf_iconv_puts(wr, mt->iconv_cd, ""); + wrbuf_puts(wr, "\n"); + } + wrbuf_printf(wr, " \n"); + break; + case YAZ_MARC_CONTROLFIELD: + wrbuf_printf(wr, " iconv_cd, n->u.controlfield.tag, + strlen(n->u.controlfield.tag)); + wrbuf_iconv_puts(wr, mt->iconv_cd, "\">"); + wrbuf_iconv_puts(wr, mt->iconv_cd, n->u.controlfield.data); + wrbuf_iconv_puts(wr, mt->iconv_cd, ""); + wrbuf_puts(wr, "\n"); + break; + case YAZ_MARC_COMMENT: + wrbuf_printf(wr, "\n"); + break; + case YAZ_MARC_LEADER: + wrbuf_printf(wr, " "); + wrbuf_iconv_write_cdata(wr, + 0 /* no charset conversion for leader */, + n->u.leader, strlen(n->u.leader)); + wrbuf_printf(wr, "\n"); + } + } + wrbuf_puts(wr, "\n"); + return 0; +} + +int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wr) +{ + if (!mt->leader_spec) + yaz_marc_modify_leader(mt, 9, "a"); + return yaz_marc_write_marcxml_ns(mt, wr, "http://www.loc.gov/MARC21/slim", + 0, 0); +} + +int yaz_marc_write_marcxchange(yaz_marc_t mt, WRBUF wr, + const char *format, + const char *type) +{ + return yaz_marc_write_marcxml_ns(mt, wr, + "http://www.bs.dk/standards/MarcXchange", + 0, 0); +} + +int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wr) +{ + struct yaz_marc_node *n; + int indicator_length; + int identifier_length; + int length_data_entry; + int length_starting; + int length_implementation; + int data_offset = 0; + const char *leader = 0; + WRBUF wr_dir, wr_head, wr_data_tmp; + int base_address; + + for (n = mt->nodes; n; n = n->next) + if (n->which == YAZ_MARC_LEADER) + leader = n->u.leader; + + if (!leader) + return -1; + if (!atoi_n_check(leader+10, 1, &indicator_length)) + return -1; + if (!atoi_n_check(leader+11, 1, &identifier_length)) + return -1; + if (!atoi_n_check(leader+20, 1, &length_data_entry)) + return -1; + if (!atoi_n_check(leader+21, 1, &length_starting)) + return -1; + if (!atoi_n_check(leader+22, 1, &length_implementation)) + return -1; + + wr_data_tmp = wrbuf_alloc(); + wr_dir = wrbuf_alloc(); + for (n = mt->nodes; n; n = n->next) + { + int data_length = 0; + struct yaz_marc_subfield *s; + + switch(n->which) + { + case YAZ_MARC_DATAFIELD: + wrbuf_printf(wr_dir, "%.3s", n->u.datafield.tag); + data_length += indicator_length; + wrbuf_rewind(wr_data_tmp); + for (s = n->u.datafield.subfields; s; s = s->next) + { + /* write dummy IDFS + content */ + wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' '); + wrbuf_iconv_puts(wr_data_tmp, mt->iconv_cd, s->code_data); + } + /* write dummy FS (makes MARC-8 to become ASCII) */ + wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' '); + data_length += wrbuf_len(wr_data_tmp); + break; + case YAZ_MARC_CONTROLFIELD: + wrbuf_printf(wr_dir, "%.3s", n->u.controlfield.tag); + + wrbuf_rewind(wr_data_tmp); + wrbuf_iconv_puts(wr_data_tmp, mt->iconv_cd, + n->u.controlfield.data); + wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' ');/* field sep */ + data_length += wrbuf_len(wr_data_tmp); + break; + case YAZ_MARC_COMMENT: + break; + case YAZ_MARC_LEADER: + break; + } + if (data_length) + { + wrbuf_printf(wr_dir, "%0*d", length_data_entry, data_length); + wrbuf_printf(wr_dir, "%0*d", length_starting, data_offset); + data_offset += data_length; + } + } + /* mark end of directory */ + wrbuf_putc(wr_dir, ISO2709_FS); + + /* base address of data (comes after leader+directory) */ + base_address = 24 + wrbuf_len(wr_dir); + + wr_head = wrbuf_alloc(); + + /* write record length */ + wrbuf_printf(wr_head, "%05d", base_address + data_offset + 1); + /* from "original" leader */ + wrbuf_write(wr_head, leader+5, 7); + /* base address of data */ + wrbuf_printf(wr_head, "%05d", base_address); + /* from "original" leader */ + wrbuf_write(wr_head, leader+17, 7); + + wrbuf_write(wr, wrbuf_buf(wr_head), 24); + wrbuf_write(wr, wrbuf_buf(wr_dir), wrbuf_len(wr_dir)); + wrbuf_free(wr_head, 1); + wrbuf_free(wr_dir, 1); + wrbuf_free(wr_data_tmp, 1); + + for (n = mt->nodes; n; n = n->next) + { + struct yaz_marc_subfield *s; + + switch(n->which) + { + case YAZ_MARC_DATAFIELD: + wrbuf_printf(wr, "%.*s", indicator_length, + n->u.datafield.indicator); + for (s = n->u.datafield.subfields; s; s = s->next) + { + wrbuf_putc(wr, ISO2709_IDFS); + wrbuf_iconv_puts(wr, mt->iconv_cd, s->code_data); + /* write dummy blank - makes MARC-8 to become ASCII */ + wrbuf_iconv_putchar(wr, mt->iconv_cd, ' '); + wr->pos--; + } + wrbuf_putc(wr, ISO2709_FS); + break; + case YAZ_MARC_CONTROLFIELD: + wrbuf_iconv_puts(wr, mt->iconv_cd, n->u.controlfield.data); + /* write dummy blank - makes MARC-8 to become ASCII */ + wrbuf_iconv_putchar(wr, mt->iconv_cd, ' '); + wr->pos--; + wrbuf_putc(wr, ISO2709_FS); + break; + case YAZ_MARC_COMMENT: + break; + case YAZ_MARC_LEADER: + break; + } + } + wrbuf_printf(wr, "%c", ISO2709_RS); + return 0; +} + +#if YAZ_HAVE_XML2 +int yaz_marc_read_xml_subfields(yaz_marc_t mt, const xmlNode *ptr) +{ + for (; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE) + { + if (!strcmp((const char *) ptr->name, "subfield")) + { + size_t ctrl_data_len = 0; + char *ctrl_data_buf = 0; + const xmlNode *p = 0, *ptr_code = 0; + struct _xmlAttr *attr; + for (attr = ptr->properties; attr; attr = attr->next) + if (!strcmp((const char *)attr->name, "code")) + ptr_code = attr->children; + else + { + yaz_marc_cprintf( + mt, "Bad attribute '%.80s' for 'subfield'", + attr->name); + return -1; + } + if (!ptr_code) + { + yaz_marc_cprintf( + mt, "Missing attribute 'code' for 'subfield'" ); + return -1; + } + if (ptr_code->type == XML_TEXT_NODE) + { + ctrl_data_len = + strlen((const char *)ptr_code->content); + } + else + { + yaz_marc_cprintf( + mt, "Missing value for 'code' in 'subfield'" ); + return -1; + } + for (p = ptr->children; p ; p = p->next) + if (p->type == XML_TEXT_NODE) + ctrl_data_len += strlen((const char *)p->content); + ctrl_data_buf = nmem_malloc(mt->nmem, ctrl_data_len+1); + strcpy(ctrl_data_buf, (const char *)ptr_code->content); + for (p = ptr->children; p ; p = p->next) + if (p->type == XML_TEXT_NODE) + strcat(ctrl_data_buf, (const char *)p->content); + yaz_marc_add_subfield(mt, ctrl_data_buf, ctrl_data_len); + } + else + { + yaz_marc_cprintf( + mt, "Expected element 'subfield', got '%.80s'", ptr->name); + return -1; + } + } + } + return 0; +} + +static int yaz_marc_read_xml_leader(yaz_marc_t mt, const xmlNode **ptr_p) +{ + int indicator_length; + int identifier_length; + int base_address; + int length_data_entry; + int length_starting; + int length_implementation; + const char *leader = 0; + const xmlNode *ptr = *ptr_p; + + for(; ptr; ptr = ptr->next) + if (ptr->type == XML_ELEMENT_NODE) + { + if (!strcmp((const char *) ptr->name, "leader")) + { + xmlNode *p = ptr->children; + for(; p; p = p->next) + if (p->type == XML_TEXT_NODE) + leader = (const char *) p->content; + break; + } + else + { + yaz_marc_cprintf( + mt, "Expected element 'leader', got '%.80s'", ptr->name); + return -1; + } + } + if (!leader) + { + yaz_marc_cprintf(mt, "Missing element 'leader'"); + return -1; + } + if (strlen(leader) != 24) + { + yaz_marc_cprintf(mt, "Bad length %d of leader data." + " Must have length of 24 characters", strlen(leader)); + return -1; + } + yaz_marc_read_leader(mt, leader, + &indicator_length, + &identifier_length, + &base_address, + &length_data_entry, + &length_starting, + &length_implementation); + *ptr_p = ptr; + return 0; +} + +static int yaz_marc_read_xml_fields(yaz_marc_t mt, const xmlNode *ptr) +{ + for(; ptr; ptr = ptr->next) + if (ptr->type == XML_ELEMENT_NODE) + { + if (!strcmp((const char *) ptr->name, "controlfield")) + { + const xmlNode *ptr_tag = 0; + struct _xmlAttr *attr; + for (attr = ptr->properties; attr; attr = attr->next) + if (!strcmp((const char *)attr->name, "tag")) + ptr_tag = attr->children; + else + { + yaz_marc_cprintf( + mt, "Bad attribute '%.80s' for 'controlfield'", + attr->name); + return -1; + } + if (!ptr_tag) + { + yaz_marc_cprintf( + mt, "Missing attribute 'tag' for 'controlfield'" ); + return -1; + } + yaz_marc_add_controlfield_xml(mt, ptr_tag, ptr->children); + } + else if (!strcmp((const char *) ptr->name, "datafield")) + { + char indstr[11]; /* 0(unused), 1,....9, + zero term */ + const xmlNode *ptr_tag = 0; + struct _xmlAttr *attr; + int i; + for (i = 0; i<11; i++) + indstr[i] = '\0'; + for (attr = ptr->properties; attr; attr = attr->next) + if (!strcmp((const char *)attr->name, "tag")) + ptr_tag = attr->children; + else if (strlen((const char *)attr->name) == 4 && + !memcmp(attr->name, "ind", 3)) + { + int no = atoi((const char *)attr->name+3); + if (attr->children + && attr->children->type == XML_TEXT_NODE) + indstr[no] = attr->children->content[0]; + } + else + { + yaz_marc_cprintf( + mt, "Bad attribute '%.80s' for 'datafield'", + attr->name); + return -1; + } + if (!ptr_tag) + { + yaz_marc_cprintf( + mt, "Missing attribute 'tag' for 'datafield'" ); + return -1; + } + /* note that indstr[0] is unused so we use indstr[1..] */ + yaz_marc_add_datafield_xml(mt, ptr_tag, + indstr+1, strlen(indstr+1)); + + if (yaz_marc_read_xml_subfields(mt, ptr->children)) + return -1; + } + else + { + yaz_marc_cprintf(mt, + "Expected element controlfield or datafield," + " got %.80s", ptr->name); + return -1; + } + } + return 0; +} + +int yaz_marc_read_xml(yaz_marc_t mt, const void *xmlnode) +{ + const xmlNode *ptr = xmlnode; + for(; ptr; ptr = ptr->next) + if (ptr->type == XML_ELEMENT_NODE) + { + if (!strcmp((const char *) ptr->name, "record")) + break; + else + { + yaz_marc_cprintf( + mt, "Unknown element '%.80s' in MARC XML reader", + ptr->name); + return -1; + } + } + if (!ptr) + { + yaz_marc_cprintf(mt, "Missing element 'record' in MARC XML record"); + return -1; + } + /* ptr points to record node now */ + ptr = ptr->children; + if (yaz_marc_read_xml_leader(mt, &ptr)) + return -1; + return yaz_marc_read_xml_fields(mt, ptr->next); +} +#else +int yaz_marc_read_xml(yaz_marc_t mt, const void *xmlnode) +{ + return -1; +} +#endif + +int yaz_marc_read_iso2709(yaz_marc_t mt, const char *buf, int bsize) +{ + int entry_p; + int record_length; + int indicator_length; + int identifier_length; + int end_of_directory; + int base_address; + int length_data_entry; + int length_starting; + int length_implementation; + + yaz_marc_reset(mt); + + record_length = atoi_n (buf, 5); + if (record_length < 25) + { + yaz_marc_cprintf(mt, "Record length %d < 24", record_length); + return -1; + } + /* ballout if bsize is known and record_length is less than that */ + if (bsize != -1 && record_length > bsize) + { + yaz_marc_cprintf(mt, "Record appears to be larger than buffer %d < %d", + record_length, bsize); + return -1; + } + if (mt->debug) + yaz_marc_cprintf(mt, "Record length %5d", record_length); + + yaz_marc_read_leader(mt, buf, + &indicator_length, + &identifier_length, + &base_address, + &length_data_entry, + &length_starting, + &length_implementation); + + /* First pass. determine length of directory & base of data */ + for (entry_p = 24; buf[entry_p] != ISO2709_FS; ) + { + /* length of directory entry */ + int l = 3 + length_data_entry + length_starting; + if (entry_p + l >= record_length) + { + yaz_marc_cprintf(mt, "Directory offset %d: end of record." + " Missing FS char", entry_p); + return -1; + } + if (mt->debug) + { + yaz_marc_cprintf(mt, "Directory offset %d: Tag %.3s", + entry_p, buf+entry_p); + } + /* Check for digits in length info */ + while (--l >= 3) + if (!isdigit(*(const unsigned char *) (buf + entry_p+l))) + break; + if (l >= 3) + { + /* Not all digits, so stop directory scan */ + yaz_marc_cprintf(mt, "Directory offset %d: Bad value for data" + " length and/or length starting", entry_p); + break; + } + entry_p += 3 + length_data_entry + length_starting; + } + end_of_directory = entry_p; + if (base_address != entry_p+1) + { + yaz_marc_cprintf(mt, "Base address not at end of directory," + " base %d, end %d", base_address, entry_p+1); + } + + /* Second pass. parse control - and datafields */ + for (entry_p = 24; entry_p != end_of_directory; ) + { + int data_length; + int data_offset; + int end_offset; + int i; + char tag[4]; + int identifier_flag = 0; + int entry_p0 = entry_p; + + memcpy (tag, buf+entry_p, 3); + entry_p += 3; + tag[3] = '\0'; + data_length = atoi_n(buf+entry_p, length_data_entry); + entry_p += length_data_entry; + data_offset = atoi_n(buf+entry_p, length_starting); + entry_p += length_starting; + i = data_offset + base_address; + end_offset = i+data_length-1; + + if (data_length <= 0 || data_offset < 0) + break; + + if (mt->debug) + { + yaz_marc_cprintf(mt, "Tag: %s. Directory offset %d: data-length %d," + " data-offset %d", + tag, entry_p0, data_length, data_offset); + } + if (end_offset >= record_length) + { + yaz_marc_cprintf(mt, "Directory offset %d: Data out of bounds %d >= %d", + entry_p0, end_offset, record_length); + break; + } + + if (memcmp (tag, "00", 2)) + identifier_flag = 1; /* if not 00X assume subfields */ + else if (indicator_length < 4 && indicator_length > 0) + { + /* Danmarc 00X have subfields */ + if (buf[i + indicator_length] == ISO2709_IDFS) + identifier_flag = 1; + else if (buf[i + indicator_length + 1] == ISO2709_IDFS) + identifier_flag = 2; + } + + if (identifier_flag) + { + /* datafield */ + i += identifier_flag-1; + yaz_marc_add_datafield(mt, tag, buf+i, indicator_length); + i += indicator_length; + + while (i < end_offset && + buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) + { + int code_offset = i+1; + + i ++; + while (i < end_offset && + buf[i] != ISO2709_RS && buf[i] != ISO2709_IDFS && + buf[i] != ISO2709_FS) + i++; + yaz_marc_add_subfield(mt, buf+code_offset, i - code_offset); + } + } + else + { + /* controlfield */ + int i0 = i; + while (i < end_offset && + buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) + i++; + yaz_marc_add_controlfield(mt, tag, buf+i0, i-i0); + } + if (i < end_offset) + { + yaz_marc_cprintf(mt, "Separator but not at end of field length=%d", + data_length); + } + if (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) + { + yaz_marc_cprintf(mt, "No separator at end of field length=%d", + data_length); + } + } + return record_length; +} + +int yaz_marc_decode_wrbuf(yaz_marc_t mt, const char *buf, int bsize, WRBUF wr) +{ + int s, r = yaz_marc_read_iso2709(mt, buf, bsize); + if (r <= 0) + return r; + s = yaz_marc_write_mode(mt, wr); /* returns 0 for OK, -1 otherwise */ + if (s != 0) + return -1; /* error */ + return r; /* OK, return length > 0 */ +} + +int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize, + char **result, int *rsize) +{ + int r; + + wrbuf_rewind(mt->m_wr); + r = yaz_marc_decode_wrbuf(mt, buf, bsize, mt->m_wr); + if (result) + *result = wrbuf_buf(mt->m_wr); + if (rsize) + *rsize = wrbuf_len(mt->m_wr); + return r; +} + +void yaz_marc_xml(yaz_marc_t mt, int xmlmode) +{ + if (mt) + mt->xml = xmlmode; +} + +void yaz_marc_debug(yaz_marc_t mt, int level) +{ + if (mt) + mt->debug = level; +} + +void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd) +{ + mt->iconv_cd = cd; +} + +void yaz_marc_modify_leader(yaz_marc_t mt, size_t off, const char *str) +{ + struct yaz_marc_node *n; + char *leader = 0; + for (n = mt->nodes; n; n = n->next) + if (n->which == YAZ_MARC_LEADER) + { + leader = n->u.leader; + memcpy(leader+off, str, strlen(str)); + break; + } +} + +/* deprecated */ +int yaz_marc_decode(const char *buf, WRBUF wr, int debug, int bsize, int xml) +{ + yaz_marc_t mt = yaz_marc_create(); + int r; + + mt->debug = debug; + mt->xml = xml; + r = yaz_marc_decode_wrbuf(mt, buf, bsize, wr); + yaz_marc_destroy(mt); + return r; +} + +/* deprecated */ +int marc_display_wrbuf (const char *buf, WRBUF wr, int debug, int bsize) +{ + return yaz_marc_decode(buf, wr, debug, bsize, 0); +} + +/* deprecated */ +int marc_display_exl (const char *buf, FILE *outf, int debug, int bsize) +{ + yaz_marc_t mt = yaz_marc_create(); + int r; + + mt->debug = debug; + r = yaz_marc_decode_wrbuf (mt, buf, bsize, mt->m_wr); + if (!outf) + outf = stdout; + if (r > 0) + fwrite (wrbuf_buf(mt->m_wr), 1, wrbuf_len(mt->m_wr), outf); + yaz_marc_destroy(mt); + return r; +} + +/* deprecated */ +int marc_display_ex (const char *buf, FILE *outf, int debug) +{ + return marc_display_exl (buf, outf, debug, -1); +} + +/* deprecated */ +int marc_display (const char *buf, FILE *outf) +{ + return marc_display_ex (buf, outf, 0); +} + +int yaz_marc_leader_spec(yaz_marc_t mt, const char *leader_spec) +{ + xfree(mt->leader_spec); + mt->leader_spec = 0; + if (leader_spec) + { + char dummy_leader[24]; + if (marc_exec_leader(leader_spec, dummy_leader, 24)) + return -1; + mt->leader_spec = xstrdup(leader_spec); + } + return 0; +} + +static int marc_exec_leader(const char *leader_spec, char *leader, size_t size) +{ + const char *cp = leader_spec; + while (cp) + { + char val[21]; + int pos; + int no_read = 0, no = 0; + + no = sscanf(cp, "%d=%20[^,]%n", &pos, val, &no_read); + if (no < 2 || no_read < 3) + return -1; + if (pos < 0 || pos >= size) + return -1; + + if (*val == '\'') + { + const char *vp = strchr(val+1, '\''); + size_t len; + + if (!vp) + return -1; + len = vp-val-1; + if (len + pos > size) + return -1; + memcpy(leader + pos, val+1, len); + } + else if (*val >= '0' && *val <= '9') + { + int ch = atoi(val); + leader[pos] = ch; + } + else + return -1; + cp += no_read; + if (*cp != ',') + break; + + cp++; + } + return 0; +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/matchstr.c b/dependencies/yaz-2.1.28/src/matchstr.c new file mode 100644 index 0000000..6674c9d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/matchstr.c @@ -0,0 +1,91 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: matchstr.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file matchstr.c + * \brief Implements loose string matching + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include + +/* + * Match strings, independently of case and occurences of '-'. + * fairly inefficient - will be replaced with an indexing scheme for + * the various subsystems if we get a bottleneck here. + */ + +int yaz_matchstr(const char *s1, const char *s2) +{ + while (*s1 && *s2) + { + unsigned char c1 = *s1; + unsigned char c2 = *s2; + + if (c2 == '?') + return 0; + if (c1 == '-') + c1 = *++s1; + if (c2 == '-') + c2 = *++s2; + if (!c1 || !c2) + break; + if (c2 != '.') + { + if (isupper(c1)) + c1 = tolower(c1); + if (isupper(c2)) + c2 = tolower(c2); + if (c1 != c2) + break; + } + s1++; + s2++; + } + return *s1 || *s2; +} + +int yaz_strcmp_del(const char *a, const char *b, const char *b_del) +{ + while (*a && *b) + { + if (*a != *b) + return *a - *b; + a++; + b++; + } + if (b_del && strchr(b_del, *b)) + return *a; + return *a - *b; +} + +#ifdef __GNUC__ +#ifdef __CHECKER__ +void __assert_fail (const char *assertion, const char *file, + unsigned int line, const char *function) +{ + fprintf (stderr, "%s in file %s line %d func %s\n", + assertion, file, line, function); + abort (); +} +#endif +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/mime.c b/dependencies/yaz-2.1.28/src/mime.c new file mode 100644 index 0000000..ebfcc33 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/mime.c @@ -0,0 +1,90 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: mime.c,v 1.2 2006/04/20 20:50:51 adam Exp $ + */ + +/** \file mime.c + \brief Small utility to manage MIME types +*/ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include "mime.h" + +struct yaz_mime_entry { + char *suffix; + char *mime_type; + struct yaz_mime_entry *next; +}; + +struct yaz_mime_info { + struct yaz_mime_entry *table; +}; + +yaz_mime_types yaz_mime_types_create() +{ + yaz_mime_types p = xmalloc(sizeof(*p)); + p->table = 0; + return p; +} + +void yaz_mime_types_add(yaz_mime_types t, const char *suffix, + const char *mime_type) +{ + struct yaz_mime_entry *e = xmalloc(sizeof(*e)); + e->mime_type = xstrdup(mime_type); + e->suffix = xstrdup(suffix); + e->next = t->table; + t->table = e; +} + +const char *yaz_mime_lookup_suffix(yaz_mime_types t, const char *suffix) +{ + struct yaz_mime_entry *e = t->table; + for (; e; e = e->next) + { + if (!strcmp(e->suffix, suffix)) + return e->mime_type; + } + return 0; +} + +const char *yaz_mime_lookup_fname(yaz_mime_types t, const char *fname) +{ + const char *cp = strrchr(fname, '.'); + if (!cp) /* if no . return now */ + return 0; + return yaz_mime_lookup_suffix(t, cp+1); /* skip . */ +} + +void yaz_mime_types_destroy(yaz_mime_types t) +{ + struct yaz_mime_entry *e = t->table; + while (e) + { + struct yaz_mime_entry *e_next = e->next; + xfree(e->suffix); + xfree(e->mime_type); + xfree(e); + e = e_next; + } + xfree(t); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/mime.h b/dependencies/yaz-2.1.28/src/mime.h new file mode 100644 index 0000000..3aa8f00 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/mime.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: mime.h,v 1.2 2006/04/20 20:50:51 adam Exp $ + */ + +/** \file mime.h + \brief Small utility to manage MIME types +*/ + +#ifndef MIME_H +#define MIME_H + +typedef struct yaz_mime_info *yaz_mime_types; + +yaz_mime_types yaz_mime_types_create(); +void yaz_mime_types_add(yaz_mime_types t, const char *suffix, + const char *mime_type); +const char *yaz_mime_lookup_suffix(yaz_mime_types t, const char *suffix); +const char *yaz_mime_lookup_fname(yaz_mime_types t, const char *fname); +void yaz_mime_types_destroy(yaz_mime_types t); + +#endif + diff --git a/dependencies/yaz-2.1.28/src/mterm2.asn b/dependencies/yaz-2.1.28/src/mterm2.asn new file mode 100644 index 0000000..6ec951d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/mterm2.asn @@ -0,0 +1,10 @@ +UserInfoFormat-multipleSearchTerms-2 +{Z39-50-userInfoFormat MultipleSearchTerms-2 (5)} DEFINITIONS ::= +BEGIN +IMPORTS Term FROM Z39-50-APDU-1995; + +MultipleSearchTerms-2 ::= SEQUENCE OF SEQUENCE{ + term [1] Term, + flag [2] IMPLICIT BOOLEAN OPTIONAL} + +END diff --git a/dependencies/yaz-2.1.28/src/nfa.c b/dependencies/yaz-2.1.28/src/nfa.c new file mode 100644 index 0000000..e9a5690 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/nfa.c @@ -0,0 +1,797 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nfa.c,v 1.12 2006/07/14 13:06:38 heikki Exp $ + */ + +/** + * \file nfa.c + * \brief NFA for character set normalizing + * + * This is a simple NFA-based system for character set normalizing + * in yaz and zebra. Unlike standard NFA's, this operates on ranges of + * characters at a time, so as to keep the size small. + * + * All characters are internally handled as unsigned 32-bit ints, so + * this works well with unicode. Translating to and from utf-8 is trivial, if + * need be. + * + * The NFA stores a translation-thing in the terminal nodes. It does not + * concern itself with what that thing is, for us it is juts a void* + * + * The module consists of two parts: Building the NFA, and translating + * strings with it. + */ + + +#include +#include +#include +#include + +/* * * * * * * * * * + * Data structures + * * * * * * * * * */ + +typedef struct yaz_nfa_backref_info yaz_backref_info; + +struct yaz_nfa_backref_info { + yaz_nfa_char *start; + yaz_nfa_char *end; +}; + +struct yaz_nfa { + NMEM nmem; + int nstates; /* how many states do we have */ + int nbackrefs; /* how many backrefs do we have */ + yaz_nfa_state *laststate; /* points to the last in the circular list */ + yaz_nfa_state *firststate; /* the initial state */ + yaz_backref_info *curr_backrefs; /* the backrefs we are matching */ + yaz_backref_info *best_backrefs; /* backrefs of the best match so far*/ + int lastmatch; /* the result of last match */ +}; + +struct yaz_nfa_state { + int num; /* state number. used for resoving ambiguities, and for dumping */ + void *result; /* signals a terminal state, and gives the result */ + yaz_nfa_transition *lasttrans; /* circular list of transitions */ + yaz_nfa_state *next; /* Circular linked list */ + int backref_start; /* which backreference starts here. 0 if none */ + int backref_end; /* which backreference ends here. 0 if none */ +} ; + +struct yaz_nfa_transition { + yaz_nfa_state *to_state; /* where to */ + yaz_nfa_char range_start; + yaz_nfa_char range_end; + yaz_nfa_transition *next; /* a linked list of them */ +} ; + +/* a range from 1 down to 0 is impossible, and is used to denote an */ +/* empty (epsilon) transition */ +#define EMPTY_START 1 +#define EMPTY_END 0 + +/* a limit for the number of empty transitions we can have in a row before */ +/* we declare this a loop */ +#define LOOP_LIMIT 100 + + +typedef enum { + conv_none, + conv_string, + conv_backref, + conv_range +} yaz_nfa_converter_type; + +struct yaz_nfa_converter { + yaz_nfa_converter *next; + yaz_nfa_converter_type type; + yaz_nfa_char *string; + size_t strlen; + int backref_no; + int char_diff; +}; + + +/* * * * * * * + * Initializing and destroying whole nfa's + * * * * * * */ + +yaz_nfa *yaz_nfa_init() { + NMEM my_nmem = nmem_create(); + yaz_nfa *n = nmem_malloc(my_nmem, sizeof(yaz_nfa)); + n->nmem = my_nmem; + n->nbackrefs = 1; /* we always have #0, last range match */ + n->curr_backrefs = 0; + n->best_backrefs = 0; + n->lastmatch = YAZ_NFA_NOMATCH; + n->nstates = 0; + n->laststate = 0; + n->firststate = n->laststate ; + return n; +} + +void yaz_nfa_destroy(yaz_nfa *n) { + if (n && n->nmem) + nmem_destroy(n->nmem); +} + + +/* * * * * * + * Low-level interface to building the NFA + * * * * * */ + +yaz_nfa_state *yaz_nfa_add_state(yaz_nfa *n) { + yaz_nfa_state *s = nmem_malloc(n->nmem, sizeof(yaz_nfa_state)); + s->num = (n->nstates)++; + s->result = 0; + s->lasttrans = 0; + s->backref_start = 0; + s->backref_end = 0; + if (n->laststate) { + s->next = n->laststate->next; + n->laststate->next = s; + n->laststate = s; + } else { /* first state */ + n->laststate = s; + n->firststate = s; + s->next = s; + } + return s; +} + +int yaz_nfa_set_result(yaz_nfa *n, yaz_nfa_state *s, void *result) { + if ((s->result)&&result) + return YAZ_NFA_ALREADY; + s->result = result; + return 0; +} + +void *yaz_nfa_get_result(yaz_nfa *n, yaz_nfa_state *s) { + if (!s) + return 0; + return s->result; +} + +int yaz_nfa_set_backref_point(yaz_nfa *n, yaz_nfa_state *s, + int backref_number, + int is_start ){ + if (is_start) { + if (s->backref_start) + return YAZ_NFA_ALREADY; + s->backref_start = backref_number; + if (n->nbackrefs<=backref_number) { + n->nbackrefs = backref_number+1; + n->curr_backrefs = 0; + n->best_backrefs = 0; + /* clear them just in case we have already matched on */ + /* with this nfa, and created a too small backref table */ + /* we will reallocate when matching. */ + } + } else { + if (s->backref_end) + return YAZ_NFA_ALREADY; + if (n->nbackrefs<=backref_number) + return YAZ_NFA_NOSTART; + s->backref_end = backref_number; + } + return 0; /* ok */ +} + +int yaz_nfa_get_backref_point(yaz_nfa *n, yaz_nfa_state *s, + int is_start ) { + if (!s) + return 0; + if (is_start) + return s->backref_start; + else + return s->backref_end; +} + +void yaz_nfa_add_transition(yaz_nfa *n, + yaz_nfa_state *from_state, + yaz_nfa_state *to_state, + yaz_nfa_char range_start, + yaz_nfa_char range_end) { + yaz_nfa_transition *t = nmem_malloc(n->nmem, sizeof(yaz_nfa_transition)); + if (!from_state) + from_state = n->firststate; + t->range_start = range_start; + t->range_end = range_end; + t->to_state = to_state; + if (from_state->lasttrans) { + t->next= from_state->lasttrans->next; + from_state->lasttrans->next = t; + from_state->lasttrans = t; + } else { /* first trans */ + from_state->lasttrans = t; + t->next = t; + } +} + +void yaz_nfa_add_empty_transition( yaz_nfa *n, + yaz_nfa_state *from_state, + yaz_nfa_state *to_state) { + yaz_nfa_add_transition(n, from_state, to_state, + EMPTY_START, EMPTY_END); +} + +/* * * * * * * * + * Medium-level interface + * * * * * * * */ + +/* Finds a transition from s where the range is exactly c..c */ +/* There should only be one such transition */ +static yaz_nfa_state *find_single_trans( + yaz_nfa_state *s, + yaz_nfa_char range_start, + yaz_nfa_char range_end) { + yaz_nfa_transition *t = s->lasttrans; + if (!t) + return 0; + do { + t = t->next; + if ( ( t->range_start == range_start ) && ( t->range_end == range_end) ) + return t->to_state; + } while (t != s->lasttrans ); + return 0; +} + + +yaz_nfa_state *yaz_nfa_add_range(yaz_nfa *n, + yaz_nfa_state *s, + yaz_nfa_char range_start, + yaz_nfa_char range_end) { + yaz_nfa_state *nextstate=0; + if (!s) /* default to top-level of the nfa */ + s = n->firststate; + if (s) + nextstate = find_single_trans(s, range_start, range_end); + else + s = yaz_nfa_add_state(n); /* create initial state */ + if (!nextstate) { + nextstate = yaz_nfa_add_state(n); + yaz_nfa_add_transition(n, s, nextstate, range_start, range_end); + } + return nextstate; +} + +yaz_nfa_state *yaz_nfa_add_sequence(yaz_nfa *n, + yaz_nfa_state *s, + yaz_nfa_char *seq, + size_t seq_len){ + yaz_nfa_state *nextstate=0; + if (!s) /* default to top-level of the nfa */ + s = n->firststate; + if (s) + nextstate = find_single_trans(s, *seq, *seq); + if (nextstate) { + seq++; + seq_len--; + if (!seq_len) /* whole sequence matched */ + return nextstate; + else + return yaz_nfa_add_sequence(n, nextstate, seq,seq_len); + } else { /* no next state, build the rest */ + while (seq_len) { + s = yaz_nfa_add_range(n, s, *seq, *seq); + seq++; + seq_len--; + } + return s; + } + return 0; /* compiler shut up, we return somewhere above */ +} + + + +/* * * * * * * + * Searching the NFA + * * * * * * */ + +struct matcher { + yaz_nfa *n; + yaz_nfa_char *longest; + int bestnode; + void *result; + int errorcode; + int empties; /* count how many consecutive empty transitions */ +}; + +/* Finds the longest match. In case of ties, chooses the one with the + * lowest numbered state. Keep track of the back references. Recursively + * traverses the NFA. Keeps track of the best hit it has found. */ + +static void match_state( + yaz_nfa_state *s, + yaz_nfa_char *prevmatch, + yaz_nfa_char *inchar, + size_t incharsleft, + struct matcher *m ) { + yaz_nfa_transition *t = s->lasttrans; + if (s->backref_start) + m->n->curr_backrefs[s->backref_start].start = inchar; + if (s->backref_end) + m->n->curr_backrefs[s->backref_end].end = prevmatch; + if (t) { + if (incharsleft) { + do { + t = t->next; + if ( (( t->range_start <= *inchar ) && + ( t->range_end >= *inchar )) ){ + m->empties = 0; + if (t->range_start!=t->range_end){ + /* backref 0 is special: the last range operation */ + m->n->curr_backrefs[0].start = inchar; + m->n->curr_backrefs[0].end = inchar; + } + match_state(t->to_state, inchar, + inchar+1, incharsleft-1, m); + } else if (( t->range_start==EMPTY_START) && + (t->range_end==EMPTY_END)) { + if ( m->empties++ > LOOP_LIMIT ) + m->errorcode= YAZ_NFA_LOOP; + else + match_state(t->to_state, prevmatch, + inchar, incharsleft, m); + } + } while (t != s->lasttrans ); + } else { + m->errorcode = YAZ_NFA_OVERRUN; + } + } + if (s->result) { /* terminal node */ + if ( (m->longest < inchar) || /* longer result */ + ((m->longest == inchar)&&(m->bestnodenum)) ){ + /* or as long, but with lower node number. Still better */ + int i; + m->longest = inchar; + m->bestnode = s->num; + m->result = s->result; + if (m->n->curr_backrefs) + for (i = 0; in->nbackrefs; i++) { + m->n->best_backrefs[i]=m->n->curr_backrefs[i]; + } + } + } + if (s->backref_start) + m->n->curr_backrefs[s->backref_start].start = 0; + if (s->backref_end) + m->n->curr_backrefs[s->backref_end].end = 0; + m->n->curr_backrefs[0].start = 0; + m->n->curr_backrefs[0].end = 0; +} /* match_state */ + +int yaz_nfa_match(yaz_nfa *n, + yaz_nfa_char **inbuff, + size_t *incharsleft, + void **result ){ + struct matcher m; + int sz; + int i; + if (!n->firststate) { + n->lastmatch = YAZ_NFA_NOMATCH; + return n->lastmatch; + } + m.n = n; + m.longest=*inbuff; + m.bestnode = n->nstates; + m.result = 0; + m.errorcode = YAZ_NFA_SUCCESS; + m.empties = 0; + sz = sizeof( struct yaz_nfa_backref_info) * n->nbackrefs; + if (!n->curr_backrefs) { + n->curr_backrefs = nmem_malloc( n->nmem, sz); + n->best_backrefs = nmem_malloc( n->nmem, sz); + } + for (i = 0; inbackrefs; i++) { + n->curr_backrefs[i].start = 0; + n->curr_backrefs[i].end = 0; + n->best_backrefs[i].start = 0; + n->best_backrefs[i].end = 0; + } + + match_state(n->firststate, *inbuff, *inbuff, *incharsleft, &m); + if (m.errorcode==YAZ_NFA_SUCCESS) { + if (!m.result) + m.errorcode=YAZ_NFA_NOMATCH; + else { + *incharsleft -= (m.longest-*inbuff); + *result = m.result; + *inbuff = m.longest; + } + } + n->lastmatch=m.errorcode; + return m.errorcode; +} + + +int yaz_nfa_get_backref( yaz_nfa *n, + int backref_no, + yaz_nfa_char **start, + yaz_nfa_char **end) { + if (backref_no >= n->nbackrefs) + return YAZ_NFA_NOSUCHBACKREF; + if (backref_no < 0) + return YAZ_NFA_NOSUCHBACKREF; + if (n->lastmatch != YAZ_NFA_SUCCESS) + return YAZ_NFA_NOMATCH; + + *start = n->best_backrefs[backref_no].start; + *end = n->best_backrefs[backref_no].end; + return 0; +} + +/* * * * * * * * * * * * * * + * Converters + * * * * * * * * * * * * * */ + +static yaz_nfa_converter *create_null_converter ( yaz_nfa *n) { + yaz_nfa_converter *c; + c=nmem_malloc(n->nmem, sizeof(yaz_nfa_converter)); + c->next=0; + c->type=conv_none; + c->string=0; + c->strlen=0; + c->backref_no=0; + c->char_diff=0; + return c; +} + +yaz_nfa_converter *yaz_nfa_create_string_converter ( + yaz_nfa *n, + yaz_nfa_char *string, + size_t length){ + yaz_nfa_converter *c; + size_t i; + c=create_null_converter(n); + c->type=conv_string; + c->string=nmem_malloc(n->nmem, length*sizeof(yaz_nfa_char)); + for (i=0;istring[i]=string[i]; + c->strlen=length; + return c; +} + +yaz_nfa_converter *yaz_nfa_create_backref_converter ( + yaz_nfa *n, int backref_no ) { + yaz_nfa_converter *c; + c=create_null_converter(n); + c->type=conv_backref; + c->backref_no=backref_no; + return c; +} + +yaz_nfa_converter *yaz_nfa_create_range_converter ( + yaz_nfa *n, int backref_no, + yaz_nfa_char from_char, + yaz_nfa_char to_char){ + yaz_nfa_converter *c; + c=create_null_converter(n); + c->type=conv_range; + c->backref_no=backref_no; + c->char_diff=to_char - from_char; + return c; + +} + + +void yaz_nfa_append_converter ( + yaz_nfa *n, + yaz_nfa_converter *startpoint, + yaz_nfa_converter *newconverter) { + while (startpoint->next) + startpoint=startpoint->next; + startpoint->next=newconverter; +} + +static int string_convert ( + yaz_nfa *n, + yaz_nfa_converter *c, + yaz_nfa_char **outbuff, + size_t *outcharsleft){ + size_t sz=c->strlen; + yaz_nfa_char *p=c->string; + while (sz--) { + if ((*outcharsleft)-- <= 0) + return YAZ_NFA_NOSPACE; + **outbuff=*p++; + (*outbuff)++; + } + return YAZ_NFA_SUCCESS; +} +static int backref_convert ( + yaz_nfa *n, + yaz_nfa_converter *c, + yaz_nfa_char **outbuff, + size_t *outcharsleft){ + yaz_nfa_char *cp1,*cp2; + int i; + i = yaz_nfa_get_backref(n,c->backref_no, &cp1, &cp2); + if ( i == YAZ_NFA_NOSUCHBACKREF) /* no backref, produce no output */ + return YAZ_NFA_SUCCESS; + if ( i == YAZ_NFA_NOMATCH ) /* no match in dfa */ + return 1; /* should not happen */ + while (cp2 >= cp1) { + if ((*outcharsleft)-- <= 0) + return YAZ_NFA_NOSPACE; + **outbuff=*cp1++; + (*outbuff)++; + } + return YAZ_NFA_SUCCESS; +} + +static int range_convert ( + yaz_nfa *n, + yaz_nfa_converter *c, + yaz_nfa_char **outbuff, + size_t *outcharsleft){ + yaz_nfa_char *cp1=0, *cp2=0; + int i; + i = yaz_nfa_get_backref(n,c->backref_no, &cp1, &cp2); + if (i == YAZ_NFA_NOSUCHBACKREF) /* no backref, produce no output, not ok */ + return YAZ_NFA_NOSUCHBACKREF; /* should not happen */ + if (i == YAZ_NFA_NOMATCH) /* no match in dfa */ + return YAZ_NFA_NOMATCH; /* should not happen */ + while (cp2 >= cp1) { + if ((*outcharsleft)-- <= 0) + return YAZ_NFA_NOSPACE; + **outbuff=(*cp1++) + c->char_diff ; + (*outbuff)++; + } + return YAZ_NFA_SUCCESS; +} + + +int yaz_nfa_run_converters( + yaz_nfa *n, + yaz_nfa_converter *c, + yaz_nfa_char **outbuff, + size_t *outcharsleft){ + int rc=0; + while (c && !rc) { + switch(c->type) { + case conv_string: + rc=string_convert(n,c,outbuff,outcharsleft); + break; + case conv_backref: + rc=backref_convert(n,c,outbuff,outcharsleft); + break; + case conv_range: + rc=range_convert(n,c,outbuff,outcharsleft); + break; + default: + rc=YAZ_NFA_INTERNAL; /* should never happen */ + } + c=c->next; + } + return rc; +} + +/* * * * * * * * + * High-level interface + * These routines build the nfa and add converters, all + * in one go. + * * * * * * * */ + +int yaz_nfa_add_string_rule( yaz_nfa *n, + yaz_nfa_char *from_string, + size_t from_length, + yaz_nfa_char *to_string, + size_t to_length ) { + yaz_nfa_state *s= + yaz_nfa_add_sequence(n, 0, from_string,from_length); + yaz_nfa_converter *c= + yaz_nfa_create_string_converter(n,to_string,to_length); + return yaz_nfa_set_result(n,s,c); +} + +int yaz_nfa_add_ascii_string_rule( yaz_nfa *n, + char *from_string, + char *to_string) { + size_t from_len = strlen(from_string); + size_t to_len = strlen(to_string); + yaz_nfa_char *from_buf= + nmem_malloc(n->nmem, from_len*sizeof(yaz_nfa_char)); + yaz_nfa_char *to_buf= + nmem_malloc(n->nmem, to_len*sizeof(yaz_nfa_char)); + size_t i; + for (i=0;ifirststate; +} + +yaz_nfa_state *yaz_nfa_get_next(yaz_nfa *n, yaz_nfa_state *s){ + if (n && s) { + if (s==n->laststate) + return 0; + return s->next; + } + return 0; +} + + +static void dump_trans(FILE *F, yaz_nfa_transition *t ) { + char c1; + char c2; + char *e; + c1 = t->range_start; + c2 = t->range_end; + e = ""; + if ( (t->range_start <= ' ') || (t->range_start>'z')) + c1 = '?'; + if ( (t->range_end <= ' ') || (t->range_end>'z')) + c2 = '?'; + if ((t->range_start==EMPTY_START) && (t->range_end==EMPTY_END)) { + e = "(empty)"; + } + fprintf(F, " -> [%d] %s '%c' %x - '%c' %x \n", + t->to_state->num, e, + c1, t->range_start, + c2, t->range_end ); +} + +static void dump_state(FILE *F, yaz_nfa_state *s, + char *(*strfunc)(void *) ) { + yaz_nfa_transition *t; + char *resultstring = ""; + if (s->result) { + if (strfunc) { + resultstring = (*strfunc)(s->result); + } + else + resultstring = s->result; + } + fprintf(F, " state [%d] %s %s", + s->num, s->result?"(final)":"", resultstring ); + if (s->backref_start) { + fprintf(F, " start-%d", s->backref_start); + } + if (s->backref_end) { + fprintf(F, " end-%d", s->backref_end); + } + fprintf(F, "\n"); + t = s->lasttrans; + if (!t) { + fprintf(F, " (no transitions)\n"); + } else { + do { + t = t->next; + dump_trans(F, t); + } while (t != s->lasttrans); + } + +} + +void yaz_nfa_dump(FILE *F, yaz_nfa *n, + char *(*strfunc)(void *) ) { + yaz_nfa_state *s; + if (!F) /* lazy programmers can just pass 0 for F */ + F = stdout; + fprintf(F, "The NFA has %d states and %d backrefs\n", + n->nstates, n->nbackrefs); + s = n->laststate; + if (s) { + do { + s = s->next; + dump_state(F, s, strfunc); + } while (s != n->laststate); + } +} + +static char buf[5000]=""; +char *yaz_nfa_dump_converter(void *conv) +{ + char onebuf[500]=""; + yaz_nfa_converter *c=conv; + yaz_nfa_char *cp; + size_t len; + *buf=0; + while (c) { + switch(c->type) { + case conv_none: + sprintf(onebuf,"(none)" ); + break; + case conv_string: + sprintf(onebuf,"(string '" ); + strcat(buf,onebuf); + cp=c->string; + len=c->strlen; + while (len--) { + onebuf[0]=*cp++; + onebuf[1]=0; + strcat(buf,onebuf); + } + strcat(buf,"')"); + onebuf[0]=0; + break; + case conv_backref: + sprintf(onebuf,"(backref %d) ",c->backref_no); + break; + case conv_range: + sprintf(onebuf,"(range %d) ",c->char_diff); + break; + } + strcat(buf,onebuf); + c=c->next; + } /* while */ + return buf; +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/src/nfaxml.c b/dependencies/yaz-2.1.28/src/nfaxml.c new file mode 100644 index 0000000..d2bed8a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/nfaxml.c @@ -0,0 +1,325 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nfaxml.c,v 1.10 2006/08/04 14:35:40 adam Exp $ + */ + +/** + * \file nfaxml.c + * \brief Routines for reading a NFA spec from an XML file + * + */ + +#if YAZ_HAVE_XML2 + +#include + +/* #include */ +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/** \brief How long strings we are willing to handle here */ +#define MAXDATALEN 200 + +/** \brief Get content of a node, in utf16, for yaz_nfa */ +static int utf16_content(xmlNodePtr node, yaz_nfa_char *buf, int maxlen, + const char *filename, int rulenumber) +{ + int bufidx=0; + xmlChar *content = xmlNodeGetContent(node); + xmlChar *cp = content; + size_t conlen = strlen((char *)content); + while (*cp && bufidxchildren; node; node = node->next) + { + if (node->type != XML_ELEMENT_NODE) + continue; + clauses++; + if (!strcmp((const char *) node->name, "fromstring")) + { + state = parse_fromstring(nfa, node, filename, rulenumber ); + if (!state) + return 0; + } else if (!strcmp((const char *) node->name, "tostring")) + { + conv = parse_tostring(nfa, node, filename, rulenumber ); + if (!conv) + return 0; + } else if (!strcmp((const char *) node->name, "fromrange")) + { + state = parse_fromrange(nfa, node, + &range_begin, &range_end, filename, rulenumber ); + if (!state) + return 0; + } else if (!strcmp((const char *) node->name, "torange")) + { + conv = parse_torange(nfa, node, + range_begin, range_end, filename, rulenumber ); + if (!conv) + return 0; + } else { + yaz_log(YLOG_FATAL,"Unknown clause '%s' in %s rule %d", + node->name, filename,rulenumber); + return 0; + } + } /* for child */ + if (!state) { + yaz_log(YLOG_FATAL,"No 'from' clause in a rule %d in %s", + rulenumber,filename); + return 0; + } + if (!conv) { + yaz_log(YLOG_FATAL,"No 'to' clause in a rule %d in %s", + rulenumber,filename); + return 0; + } + if (clauses != 2) { + yaz_log(YLOG_FATAL,"Must have exactly one 'from' and one 'to' clause " + "in rule %d in %s", rulenumber,filename); + return 0; + } + if ( YAZ_NFA_SUCCESS == yaz_nfa_set_result(nfa,state,conv)) + return 1; + yaz_log(YLOG_FATAL,"Conflicting rules in %s rule %d", + filename, rulenumber); + return 0; +} /* parse_rule */ + + +/** \brief Parse the NFA from a XML document + */ +yaz_nfa *yaz_nfa_parse_xml_doc(xmlDocPtr doc, const char *filename) +{ + xmlNodePtr node; + yaz_nfa *nfa; + int rulenumber=0; + + if (!doc) + return 0; + libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_doc"); + node = xmlDocGetRootElement(doc); + if (!node || node->type != XML_ELEMENT_NODE || + strcmp((const char *) node->name, "ruleset")) + { + yaz_log(YLOG_FATAL,"nfa_parse_xml: Could not find root element 'ruleset' " + "in %s", filename); + return 0; + } + nfa= yaz_nfa_init(); + if (!nfa) + { + yaz_log(YLOG_FATAL,"nfa_parse_xml: Creating nfa failed, can't parse %s", + filename); + return 0; + } + + for (node = node->children; node; node = node->next) + { + if (node->type != XML_ELEMENT_NODE) + continue; + if (!strcmp((const char *) node->name, "rule")) { + if (!parse_rule(nfa,node,filename,rulenumber++)) + return 0; + } else { + yaz_log(YLOG_FATAL,"nfa_parse_xml: " + "expected 'rule', found '%s' in %s", + (const char *) node->name,filename); + return 0; + } + } /* for */ + return nfa; +} /* yaz_nfa_parse_xml_doc */ + + +/** \brief Parse the NFA from a file + */ +yaz_nfa *yaz_nfa_parse_xml_file(const char *filepath) +{ + int nSubst; + xmlDocPtr doc; + if (!filepath) + { + yaz_log(YLOG_FATAL,"yaz_nfa_parse_xml_file called with NULL"); + return 0; + } + libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_xml_file"); + + doc = xmlParseFile(filepath); + if (!doc) { + return 0; + } + nSubst=xmlXIncludeProcess(doc); + if (nSubst==-1) { + return 0; + } + return yaz_nfa_parse_xml_doc(doc, filepath); +} + +/** \brief Parse the NFA from a memory buffer + */ +yaz_nfa *yaz_nfa_parse_xml_memory(const char *xmlbuff, const char *filename) { + xmlDocPtr doc; + if (!xmlbuff) + { + yaz_log(YLOG_FATAL,"yaz_nfa_parse_memroy called with NULL"); + return 0; + } + libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_xml_memory"); + doc = xmlParseMemory(xmlbuff, strlen(xmlbuff)); + return yaz_nfa_parse_xml_doc(doc,filename); +} + + + +#endif /* YAZ_HAVE_XML2 */ + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/src/nmem.c b/dependencies/yaz-2.1.28/src/nmem.c new file mode 100644 index 0000000..27310f4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/nmem.c @@ -0,0 +1,607 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nmem.c,v 1.25 2006/08/11 13:10:27 adam Exp $ + */ + +/** + * \file nmem.c + * \brief Implements Nibble Memory + * + * This is a simple and fairly wasteful little module for nibble memory + * allocation. Evemtually we'll put in something better. + * + * FIXME - it also has some semaphore stuff, and stuff to handle errno. + * These should be moved to some other place! + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef WIN32 +#include +#endif + +#if YAZ_POSIX_THREADS +#include +#endif + +#if YAZ_GNU_THREADS +#include +#endif + +#define NMEM_CHUNK (4*1024) + +struct nmem_block +{ + char *buf; /* memory allocated in this block */ + size_t size; /* size of buf */ + size_t top; /* top of buffer */ + struct nmem_block *next; +}; + +struct nmem_control +{ + int total; + struct nmem_block *blocks; + struct nmem_control *next; +}; + +struct align { + char x; + union { + char c; + short s; + int i; + long l; +#if HAVE_LONG_LONG + long long ll; +#endif + float f; + double d; + } u; +}; + +#define NMEM_ALIGN (offsetof(struct align, u)) + +static int log_level = 0; +static int log_level_initialized = 0; + +#ifdef WIN32 +static CRITICAL_SECTION critical_section; +#define NMEM_ENTER EnterCriticalSection(&critical_section) +#define NMEM_LEAVE LeaveCriticalSection(&critical_section) +struct nmem_mutex { + CRITICAL_SECTION m_handle; +}; +#elif YAZ_POSIX_THREADS +static pthread_mutex_t nmem_mutex = PTHREAD_MUTEX_INITIALIZER; +#define NMEM_ENTER pthread_mutex_lock(&nmem_mutex); +#define NMEM_LEAVE pthread_mutex_unlock(&nmem_mutex); +struct nmem_mutex { + pthread_mutex_t m_handle; +}; +#elif YAZ_GNU_THREADS +static pth_mutex_t nmem_mutex = PTH_MUTEX_INIT; +#define NMEM_ENTER pth_mutex_acquire(&nmem_mutex, 0, 0) +#define NMEM_LEAVE pth_mutex_release(&nmem_mutex) +struct nmem_mutex { + pth_mutex_t m_handle; +}; +#else +#define NMEM_ENTER +#define NMEM_LEAVE +struct nmem_mutex { + int dummy; +}; +#endif + +size_t nmem_memory_in_use = 0; +size_t nmem_memory_free = 0; + +YAZ_EXPORT void nmem_mutex_create(NMEM_MUTEX *p) +{ + NMEM_ENTER; + if (!*p) + { + *p = (NMEM_MUTEX) malloc(sizeof(**p)); +#ifdef WIN32 + InitializeCriticalSection(&(*p)->m_handle); +#elif YAZ_POSIX_THREADS + pthread_mutex_init(&(*p)->m_handle, 0); +#elif YAZ_GNU_THREADS + pth_mutex_init(&(*p)->m_handle); +#endif + } + NMEM_LEAVE; + if (!log_level_initialized) + { + log_level_initialized = 1; + log_level = yaz_log_module_level("nmem"); + } + +} + +YAZ_EXPORT void nmem_mutex_enter(NMEM_MUTEX p) +{ + if (p) + { +#ifdef WIN32 + EnterCriticalSection(&p->m_handle); +#elif YAZ_POSIX_THREADS + pthread_mutex_lock(&p->m_handle); +#endif + } +} + +YAZ_EXPORT void nmem_mutex_leave(NMEM_MUTEX p) +{ + if (p) + { +#ifdef WIN32 + LeaveCriticalSection(&p->m_handle); +#elif YAZ_POSIX_THREADS + pthread_mutex_unlock(&p->m_handle); +#endif + } +} + +YAZ_EXPORT void nmem_mutex_destroy(NMEM_MUTEX *p) +{ + if (*p) + { +#ifdef WIN32 + DeleteCriticalSection(&(*p)->m_handle); +#endif + free(*p); + *p = 0; + } +} + +/** \brief free NMEM memory blocks . Reused in get_block */ +static struct nmem_block *freelist = NULL; + +/** \brief free NMEM control blocks. Reused in nmem_create */ +static struct nmem_control *cfreelist = NULL; + +/** \brief number NMEM's in use (number of nmem_controls not in free list) */ +static int nmem_active_no = 0; + +/** \brief NMEM usage counter */ +static int nmem_init_flag = 0; + +/** \brief whether nmem blocks should be reassigned to heap */ +static int nmem_release_in_heap = 0; + +#if NMEM_DEBUG +struct nmem_debug_info { + void *p; + char file[40]; + int line; + struct nmem_debug_info *next; +}; + +struct nmem_debug_info *nmem_debug_list = 0; +#endif + +static void free_block(struct nmem_block *p) +{ + nmem_memory_in_use -= p->size; + if (nmem_release_in_heap) + { + xfree(p->buf); + xfree(p); + } + else + { + memset(p->buf, 'Y', p->size); + p->next = freelist; + freelist = p; + nmem_memory_free += p->size; + } + if (log_level) + yaz_log (log_level, "nmem free_block p=%p", p); +} + +#if NMEM_DEBUG +void nmem_print_list (void) +{ + if (log_level) + nmem_print_list_l(log_level); +} + +void nmem_print_list_l (int level) +{ + struct nmem_debug_info *p; + + yaz_log (level, "nmem print list"); + NMEM_ENTER; + for (p = nmem_debug_list; p; p = p->next) + yaz_log (level, " %s:%d p=%p size=%d", p->file, p->line, p->p, + nmem_total(p->p)); + NMEM_LEAVE; +} +#endif +/* + * acquire a block with a minimum of size free bytes. + */ +static struct nmem_block *get_block(size_t size) +{ + struct nmem_block *r, *l; + + if (log_level) + yaz_log (log_level, "nmem get_block size=%ld", (long) size); + + for (r = freelist, l = 0; r; l = r, r = r->next) + if (r->size >= size) + break; + if (r) + { + if (log_level) + yaz_log (log_level, "nmem get_block found free block p=%p", r); + if (l) + l->next = r->next; + else + freelist = r->next; + nmem_memory_free -= r->size; + } + else + { + size_t get = NMEM_CHUNK; + + if (get < size) + get = size; + if(log_level) + yaz_log (log_level, "nmem get_block alloc new block size=%ld", + (long) get); + + r = (struct nmem_block *) xmalloc(sizeof(*r)); + r->buf = (char *)xmalloc(r->size = get); + } + nmem_memory_in_use += r->size; + r->top = 0; + return r; +} + +void nmem_reset(NMEM n) +{ + struct nmem_block *t; + + yaz_log (log_level, "nmem_reset p=%p", n); + if (!n) + return; + NMEM_ENTER; + while (n->blocks) + { + t = n->blocks; + n->blocks = n->blocks->next; + free_block(t); + } + n->total = 0; + NMEM_LEAVE; +} + +#if NMEM_DEBUG +void *nmem_malloc_f (const char *file, int line, NMEM n, int size) +#else +void *nmem_malloc(NMEM n, int size) +#endif +{ + struct nmem_block *p; + char *r; + +#if NMEM_DEBUG + if (log_level) + yaz_log (log_level, "%s:%d: nmem_malloc p=%p size=%d", + file, line, n, size); +#endif + if (!n) + { + yaz_log (YLOG_FATAL, "calling nmem_malloc with an null pointer"); + abort (); + } +#ifdef WIN32 + assert (nmem_init_flag); +#endif + NMEM_ENTER; + p = n->blocks; + if (!p || p->size < size + p->top) + { + p = get_block(size); + p->next = n->blocks; + n->blocks = p; + } + r = p->buf + p->top; + /* align size */ + p->top += (size + (NMEM_ALIGN - 1)) & ~(NMEM_ALIGN - 1); + n->total += size; + NMEM_LEAVE; + return r; +} + +int nmem_total(NMEM n) +{ + return n->total; +} + +#if NMEM_DEBUG +NMEM nmem_create_f(const char *file, int line) +#else +NMEM nmem_create(void) +#endif +{ + NMEM r; +#if NMEM_DEBUG + struct nmem_debug_info *debug_p; +#endif + if (!log_level_initialized) + { + log_level = yaz_log_module_level("nmem"); + log_level_initialized = 1; + } + + NMEM_ENTER; + nmem_active_no++; + r = cfreelist; + if (r) + cfreelist = cfreelist->next; + else + r = (struct nmem_control *)xmalloc(sizeof(*r)); + NMEM_LEAVE; + +#if NMEM_DEBUG + yaz_log (YLOG_DEBUG, "%s:%d: nmem_create %d p=%p", file, line, + nmem_active_no, r); +#endif + r->blocks = 0; + r->total = 0; + r->next = 0; + +#if NMEM_DEBUG + for (debug_p = nmem_debug_list; debug_p; debug_p = debug_p->next) + if (debug_p->p == r) + { + yaz_log (YLOG_FATAL, "multi used block in nmem"); + abort (); + } + debug_p = xmalloc (sizeof(*debug_p)); + strncpy (debug_p->file, file, sizeof(debug_p->file)-1); + debug_p->file[sizeof(debug_p->file)-1] = '\0'; + debug_p->line = line; + debug_p->p = r; + debug_p->next = nmem_debug_list; + nmem_debug_list = debug_p; + + nmem_print_list(); +#endif + return r; +} + +#if NMEM_DEBUG +void nmem_destroy_f(const char *file, int line, NMEM n) +#else +void nmem_destroy(NMEM n) +#endif +{ +#if NMEM_DEBUG + struct nmem_debug_info **debug_p; + int ok = 0; +#endif + if (!n) + return; + +#if NMEM_DEBUG + yaz_log (log_level, "%s:%d: nmem_destroy %d p=%p", file, line, + nmem_active_no-1, n); + NMEM_ENTER; + for (debug_p = &nmem_debug_list; *debug_p; debug_p = &(*debug_p)->next) + if ((*debug_p)->p == n) + { + struct nmem_debug_info *debug_save = *debug_p; + *debug_p = (*debug_p)->next; + xfree (debug_save); + ok = 1; + break; + } + NMEM_LEAVE; + nmem_print_list(); + if (!ok) + { + yaz_log (YLOG_WARN, "%s:%d destroying unallocated nmem block p=%p", + file, line, n); + return; + } +#endif + nmem_reset(n); + NMEM_ENTER; + nmem_active_no--; + if (nmem_release_in_heap) + { + xfree(n); + } + else + { + n->next = cfreelist; + cfreelist = n; + } + NMEM_LEAVE; +} + +void nmem_transfer (NMEM dst, NMEM src) +{ + struct nmem_block *t; + while ((t = src->blocks)) + { + src->blocks = t->next; + t->next = dst->blocks; + dst->blocks = t; + } + dst->total += src->total; + src->total = 0; +} + +void nmem_get_memory_in_use(size_t *p) +{ + NMEM_ENTER; + *p = nmem_memory_in_use; + NMEM_LEAVE; +} + +void nmem_get_memory_free(size_t *p) +{ + NMEM_ENTER; + *p = nmem_memory_free; + NMEM_LEAVE; +} + +void nmem_critical_enter (void) +{ + NMEM_ENTER; +} + +void nmem_critical_leave (void) +{ + NMEM_LEAVE; +} + +void nmem_init (void) +{ + if (++nmem_init_flag == 1) + { +#ifdef WIN32 + InitializeCriticalSection(&critical_section); +#elif YAZ_GNU_THREADS + pth_init (); +#endif + nmem_active_no = 0; + freelist = NULL; + cfreelist = NULL; + } + if (!log_level_initialized) + { + log_level = yaz_log_module_level("nmem"); + log_level_initialized = 1; + } +} + +void nmem_exit (void) +{ + if (--nmem_init_flag == 0) + { + oid_exit(); + while (freelist) + { + struct nmem_block *fl = freelist; + nmem_memory_free -= fl->size; + freelist = freelist->next; + xfree (fl->buf); + xfree (fl); + } + while (cfreelist) + { + struct nmem_control *cfl = cfreelist; + cfreelist = cfreelist->next; + xfree (cfl); + } +#ifdef WIN32 + DeleteCriticalSection(&critical_section); +#endif + } +} + + +#ifdef WIN32 +BOOL WINAPI DllMain (HINSTANCE hinstDLL, + DWORD reason, + LPVOID reserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + nmem_init (); + break; + case DLL_PROCESS_DETACH: + nmem_exit (); + } + return TRUE; +} +#endif + +int yaz_errno(void) +{ + return errno; +} + +void yaz_set_errno(int v) +{ + errno = v; +} + +void yaz_strerror(char *buf, int max) +{ +#ifdef WIN32 + DWORD err; +#endif + char *cp; + if (!log_level_initialized) + { + log_level = yaz_log_module_level("nmem"); + log_level_initialized = 1; + } + +#ifdef WIN32 + err = GetLastError(); + if (err) + { + FormatMessage( + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + err, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default lang */ + (LPTSTR) buf, + max-1, + NULL); + } + else + *buf = '\0'; +#else +/* UNIX */ +#if HAVE_STRERROR_R +#if YAZ_POSIX_THREADS + *buf = '\0'; + strerror_r(errno, buf, max); + /* if buffer is unset - use strerror anyway (GLIBC bug) */ + if (*buf == '\0') + strcpy(buf, strerror(yaz_errno())); +#else + strcpy(buf, strerror(yaz_errno())); +#endif +#else + strcpy(buf, strerror(yaz_errno())); +#endif +/* UNIX */ +#endif + if ((cp = strrchr(buf, '\n'))) + *cp = '\0'; + if ((cp = strrchr(buf, '\r'))) + *cp = '\0'; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/nmemsdup.c b/dependencies/yaz-2.1.28/src/nmemsdup.c new file mode 100644 index 0000000..af46edc --- /dev/null +++ b/dependencies/yaz-2.1.28/src/nmemsdup.c @@ -0,0 +1,118 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nmemsdup.c,v 1.9 2006/08/11 12:50:23 adam Exp $ + */ + +/** + * \file nmemsdup.c + * \brief Implements NMEM dup utilities + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#if YAZ_HAVE_XML2 +#include +#endif + +char *nmem_strdup (NMEM mem, const char *src) +{ + char *dst = (char *)nmem_malloc (mem, strlen(src)+1); + strcpy (dst, src); + return dst; +} + +char *nmem_strdup_null(NMEM mem, const char *src) +{ + if (!src) + return 0; + else + return nmem_strdup(mem, src); +} + +char *nmem_strdupn (NMEM mem, const char *src, size_t n) +{ + char *dst = (char *)nmem_malloc (mem, n+1); + memcpy (dst, src, n); + dst[n] = '\0'; + return dst; +} + +int *nmem_intdup(NMEM mem, int v) +{ + int *dst = (int*) nmem_malloc (mem, sizeof(int)); + *dst = v; + return dst; +} + +void nmem_strsplit_blank(NMEM nmem, const char *dstr, char ***darray, int *num) +{ + nmem_strsplit(nmem, " ", dstr, darray, num); +} + +void nmem_strsplit(NMEM nmem, const char *delim, const char *dstr, + char ***darray, int *num) +{ + const char *cp = dstr; + for (*num = 0; *cp; (*num)++) + { + while (*cp && strchr(delim, *cp)) + cp++; + if (!*cp) + break; + while (*cp && !strchr(delim, *cp)) + cp++; + } + if (!*num) + *darray = 0; + else + { + size_t i = 0; + *darray = nmem_malloc(nmem, *num * sizeof(**darray)); + for (cp = dstr; *cp; ) + { + const char *cp0; + while (*cp && strchr(delim, *cp)) + cp++; + if (!*cp) + break; + cp0 = cp; + while (*cp && !strchr(delim, *cp)) + cp++; + (*darray)[i++] = nmem_strdupn(nmem, cp0, cp - cp0); + } + } +} + +#if YAZ_HAVE_XML2 +char *nmem_text_node_cdata(const xmlNode *ptr_cdata, NMEM nmem) +{ + char *cdata; + int len = 0; + const xmlNode *ptr; + + for (ptr = ptr_cdata; ptr; ptr = ptr->next) + if (ptr->type == XML_TEXT_NODE) + len += xmlStrlen(ptr->content); + cdata = (char *) nmem_malloc(nmem, len+1); + *cdata = '\0'; + for (ptr = ptr_cdata; ptr; ptr = ptr->next) + if (ptr->type == XML_TEXT_NODE) + strcat(cdata, (const char *) ptr->content); + return cdata; +} +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/oclcui.asn b/dependencies/yaz-2.1.28/src/oclcui.asn new file mode 100644 index 0000000..45fb276 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/oclcui.asn @@ -0,0 +1,33 @@ +UserInfoFormat-oclcUserInformation +{Z39-50-userInfoFormat OCLCUserInformation (7)} DEFINITIONS ::= +BEGIN + +-- $Id: oclcui.asn,v 1.1 2003/10/27 12:21:33 adam Exp $ +-- +-- This format is returned from the server at +-- fsz3950test.oclc.org:210 +-- I found the definition at +-- http://www.oclc.org/firstsearch/documentation/z3950/config_guide.htm +-- +-- I have added OPTIONAL modifiers to the `dblist' and and `code' +-- elements because they appear to be admitted from the APDU returned +-- as an Init diagnostic from fsz3950test.oclc.org:210. Adam further +-- removed the SEQUENCE structure, changed failReason to a BOOLEAN and +-- deleted diagnosticSetId altogether, to make the ASN.1 conform to +-- what's actually returned on the wire. Finally, I removed the +-- OPTIONAL on failReason on the advice of OCLC's Keith Neibarger +-- (although he'd also advised me, wrongly, that I +-- could remove the OPTIONAL on dblist). + +OCLC-UserInformation ::= SEQUENCE { + motd [1] IMPLICIT VisibleString OPTIONAL, + dblist SEQUENCE OF DBName OPTIONAL, + failReason [3] IMPLICIT BOOLEAN OPTIONAL, + code [1] IMPLICIT INTEGER OPTIONAL, + text [2] IMPLICIT VisibleString OPTIONAL +} + +DBName ::= [2] IMPLICIT VisibleString + +END + diff --git a/dependencies/yaz-2.1.28/src/odr-priv.h b/dependencies/yaz-2.1.28/src/odr-priv.h new file mode 100644 index 0000000..3fb9c01 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr-priv.h @@ -0,0 +1,154 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + * + * $Id: odr-priv.h,v 1.8 2005/09/09 10:30:35 adam Exp $ + */ + +/** + * \file odr-priv.h + * \brief Internal ODR definitions + */ + +#ifndef ODR_PRIV_H + +#define ODR_PRIV_H + +#include +#include + +/** \brief Utility structure used by ber_tag */ +struct Odr_ber_tag { + int lclass; + int ltag; + int br; + int lcons; +}; + +#define odr_max(o) ((o)->size - ((o)->bp - (o)->buf)) +#define odr_offset(o) ((o)->bp - (o)->buf) + +/** + * \brief stack for BER constructed items + * + * data structure for con stack.. a little peculiar. Since we can't + * deallocate memory we reuse stack items (popped items gets reused) + * + *\verbatim + * +---+ +---+ +---+ +---+ + * NULL -|p n|-----|p n|-----|p n|-----|p n|-- NULL + * +---+ +---+ +---+ +---+ + * | | + * stack_first stack_top reused item + *\endverbatim + */ +struct odr_constack +{ + const unsigned char *base; /** starting point of data */ + int base_offset; + int len; /** length of data, if known, else -1 + (decoding only) */ + const unsigned char *lenb; /** where to encode length */ + int len_offset; + int lenlen; /** length of length-field */ + const char *name; /** name of stack entry */ + + struct odr_constack *prev; /** pointer back in stack */ + struct odr_constack *next; /** pointer forward */ +}; + +#define ODR_MAX_STACK 2000 + +/** + * \brief ODR private data + */ +struct Odr_private { + /* stack for constructed types (we above) */ + struct odr_constack *stack_first; /** first member of allocated stack */ + struct odr_constack *stack_top; /** top of stack */ + + + const char **tmp_names_buf; /** array returned by odr_get_element_path */ + int tmp_names_sz; /** size of tmp_names_buf */ + + struct Odr_ber_tag odr_ber_tag; /** used by ber_tag */ + + yaz_iconv_t iconv_handle; + int error_id; + char element[80]; + void (*stream_write)(ODR o, void *handle, int type, + const char *buf, int len); + void (*stream_close)(void *handle); +}; + +#define ODR_STACK_POP(x) (x)->op->stack_top = (x)->op->stack_top->prev +#define ODR_STACK_EMPTY(x) (!(x)->op->stack_top) +#define ODR_STACK_NOT_EMPTY(x) ((x)->op->stack_top) + +/* Private macro. + * write a single character at the current position - grow buffer if + * necessary. + * (no, we're not usually this anal about our macros, but this baby is + * next to unreadable without some indentation :) + */ +#define odr_putc(o, c) \ +( \ + ( \ + (o)->pos < (o)->size ? \ + ( \ + (o)->buf[(o)->pos++] = (c), \ + 0 \ + ) : \ + ( \ + odr_grow_block((o), 1) == 0 ? \ + ( \ + (o)->buf[(o)->pos++] = (c), \ + 0 \ + ) : \ + ( \ + (o)->error = OSPACE, \ + -1 \ + ) \ + ) \ + ) == 0 ? \ + ( \ + (o)->pos > (o)->top ? \ + ( \ + (o)->top = (o)->pos, \ + 0 \ + ) : \ + 0 \ + ) : \ + -1 \ +) + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr.c b/dependencies/yaz-2.1.28/src/odr.c new file mode 100644 index 0000000..49beb09 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr.c @@ -0,0 +1,317 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr.c,v 1.13 2005/08/11 14:21:55 adam Exp $ + * + */ + +/** + * \file odr.c + * \brief Implements fundamental ODR functionality + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include "odr-priv.h" + +static int log_level=0; +static int log_level_initialized=0; + +Odr_null *ODR_NULLVAL = (Odr_null *) "NULL"; /* the presence of a null value */ + +Odr_null *odr_nullval (void) +{ + return ODR_NULLVAL; +} + +char *odr_errlist[] = +{ + "No (unknown) error", + "Memory allocation failed", + "System error", + "No space in buffer", + "Required data element missing", + "Unexpected tag", + "Other error", + "Protocol error", + "Malformed data", + "Stack overflow", + "Length of constructed type different from sum of members", + "Overflow writing definite length of constructed type", + "Bad HTTP Request" +}; + +char *odr_errmsg(int n) +{ + return odr_errlist[n]; +} + +void odr_perror(ODR o, const char *message) +{ + const char *e = odr_getelement(o); + const char **element_path = odr_get_element_path(o); + int err, x; + + err = odr_geterrorx(o, &x); + fprintf(stderr, "%s: %s (code %d:%d)", message, odr_errlist[err], err, x); + if (e && *e) + fprintf(stderr, " element %s", e); + + fprintf(stderr, "\n"); + if (element_path) + { + fprintf(stderr, "Element path:"); + while (*element_path) + fprintf(stderr, " %s", *element_path++); + fprintf(stderr, "\n"); + } +} + +int odr_geterror(ODR o) +{ + return o->error; +} + +int odr_geterrorx(ODR o, int *x) +{ + if (x) + *x = o->op->error_id; + return o->error; +} + +const char *odr_getelement(ODR o) +{ + return o->op->element; +} + +const char **odr_get_element_path(ODR o) +{ + int cur_sz = 0; + struct odr_constack *st; + + for (st = o->op->stack_top; st; st = st->prev) + cur_sz++; + if (o->op->tmp_names_sz < cur_sz + 1) + { + o->op->tmp_names_sz = 2 * cur_sz + 5; + o->op->tmp_names_buf = (const char **) + odr_malloc(o, o->op->tmp_names_sz * sizeof(char*)); + } + o->op->tmp_names_buf[cur_sz] = 0; + for (st = o->op->stack_top; st; st = st->prev) + { + cur_sz--; + o->op->tmp_names_buf[cur_sz] = st->name; + } + assert(cur_sz == 0); + return o->op->tmp_names_buf; +} + +void odr_seterror(ODR o, int error, int id) +{ + o->error = error; + o->op->error_id = id; + o->op->element[0] = '\0'; +} + +void odr_setelement(ODR o, const char *element) +{ + if (element) + { + strncpy(o->op->element, element, sizeof(o->op->element)-1); + o->op->element[sizeof(o->op->element)-1] = '\0'; + } +} + +void odr_FILE_write(ODR o, void *handle, int type, + const char *buf, int len) +{ + int i; +#if 0 + if (type == ODR_OCTETSTRING) + { + const char **stack_names = odr_get_element_path(o); + for (i = 0; stack_names[i]; i++) + fprintf((FILE*) handle, "[%s]", stack_names[i]); + fputs("\n", (FILE*) handle); + } +#endif + for (i = 0; i 3100) + { + fputs(" ..... ", (FILE*) handle); + i = len - 1000; + } + if (strchr("\r\n\f\t", c) || (c >= ' ' && c <= 126)) + putc(c, (FILE*) handle); + else + { + char x[5]; + sprintf(x, "\\X%02X", c); + fputs(x, (FILE*) handle); + } + } +} + +void odr_FILE_close(void *handle) +{ + FILE *f = (FILE *) handle; + if (f && f != stderr && f != stdout) + fclose(f); +} + +void odr_setprint(ODR o, FILE *file) +{ + odr_set_stream(o, file, odr_FILE_write, odr_FILE_close); +} + +void odr_set_stream(ODR o, void *handle, + void (*stream_write)(ODR o, + void *handle, int type, + const char *buf, int len), + void (*stream_close)(void *handle)) +{ + o->print = (FILE*) handle; + o->op->stream_write = stream_write; + o->op->stream_close = stream_close; +} + +int odr_set_charset(ODR o, const char *to, const char *from) +{ + if (o->op->iconv_handle) + yaz_iconv_close (o->op->iconv_handle); + o->op->iconv_handle = 0; + if (to && from) + { + o->op->iconv_handle = yaz_iconv_open (to, from); + if (o->op->iconv_handle == 0) + return -1; + } + return 0; +} + + +ODR odr_createmem(int direction) +{ + ODR o; + if (!log_level_initialized) + { + log_level=yaz_log_module_level("odr"); + log_level_initialized=1; + } + + if (!(o = (ODR)xmalloc(sizeof(*o)))) + return 0; + o->direction = direction; + o->buf = 0; + o->size = o->pos = o->top = 0; + o->can_grow = 1; + o->mem = nmem_create(); + o->enable_bias = 1; + o->op = (struct Odr_private *) xmalloc (sizeof(*o->op)); + o->op->odr_ber_tag.lclass = -1; + o->op->iconv_handle = 0; + odr_setprint(o, stderr); + odr_reset(o); + yaz_log (log_level, "odr_createmem dir=%d o=%p", direction, o); + return o; +} + +void odr_reset(ODR o) +{ + if (!log_level_initialized) + { + log_level=yaz_log_module_level("odr"); + log_level_initialized=1; + } + + odr_seterror(o, ONONE, 0); + o->bp = o->buf; + odr_seek(o, ODR_S_SET, 0); + o->top = 0; + o->t_class = -1; + o->t_tag = -1; + o->indent = 0; + o->op->stack_first = 0; + o->op->stack_top = 0; + o->op->tmp_names_sz = 0; + o->op->tmp_names_buf = 0; + nmem_reset(o->mem); + o->choice_bias = -1; + o->lenlen = 1; + if (o->op->iconv_handle != 0) + yaz_iconv(o->op->iconv_handle, 0, 0, 0, 0); + yaz_log (log_level, "odr_reset o=%p", o); +} + +void odr_destroy(ODR o) +{ + nmem_destroy(o->mem); + if (o->buf && o->can_grow) + xfree(o->buf); + if (o->op->stream_close) + o->op->stream_close(o->print); + if (o->op->iconv_handle != 0) + yaz_iconv_close (o->op->iconv_handle); + xfree(o->op); + xfree(o); + yaz_log (log_level, "odr_destroy o=%p", o); +} + +void odr_setbuf(ODR o, char *buf, int len, int can_grow) +{ + odr_seterror(o, ONONE, 0); + o->bp = (unsigned char *) buf; + + o->buf = (unsigned char *) buf; + o->can_grow = can_grow; + o->top = o->pos = 0; + o->size = len; +} + +char *odr_getbuf(ODR o, int *len, int *size) +{ + *len = o->top; + if (size) + *size = o->size; + return (char*) o->buf; +} + +void odr_printf(ODR o, const char *fmt, ...) +{ + va_list ap; + char buf[4096]; + + va_start(ap, fmt); +#ifdef WIN32 + _vsnprintf(buf, sizeof(buf)-1, fmt, ap); +#else +#if HAVE_VSNPRINTF + vsnprintf(buf, sizeof(buf), fmt, ap); +#else + vsprintf(buf, fmt, ap); +#endif +#endif + o->op->stream_write(o, o->print, ODR_VISIBLESTRING, buf, strlen(buf)); + va_end(ap); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_any.c b/dependencies/yaz-2.1.28/src/odr_any.c new file mode 100644 index 0000000..14e812d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_any.c @@ -0,0 +1,49 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_any.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file odr_any.c + * \brief Implements ODR ANY codec + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/** + * This is a catch-all type. It stuffs a random ostring (assumed to be properly + * encoded) into the stream, or reads a full data element. Implicit tagging + * does not work, and neither does the optional flag, unless the element + * is the last in a sequence. + */ +int odr_any(ODR o, Odr_any **p, int opt, const char *name) +{ + if (o->error) + return 0; + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "ANY (len=%d)\n", (*p)->len); + return 1; + } + if (o->direction == ODR_DECODE) + *p = (Odr_oct *)odr_malloc(o, sizeof(**p)); + if (ber_any(o, p)) + return 1; + *p = 0; + return odr_missing(o, opt, name); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_bit.c b/dependencies/yaz-2.1.28/src/odr_bit.c new file mode 100644 index 0000000..617a5d4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_bit.c @@ -0,0 +1,67 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_bit.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file odr_bit.c + * \brief Implements ODR BITSTRING codec + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +/* + * Top level bitstring string en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_bitstring(ODR o, Odr_bitmask **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_BITSTRING; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "BITSTRING(len=%d)\n",(*p)->top + 1); + return 1; + } + if (o->direction == ODR_DECODE) + { + *p = (Odr_bitmask *)odr_malloc(o, sizeof(Odr_bitmask)); + memset((*p)->bits, 0, ODR_BITMASK_SIZE); + (*p)->top = -1; + } +#if 0 + /* ignoring the cons helps with at least one target. + * http://bugzilla.indexdata.dk/cgi-bin/bugzilla/show_bug.cgi?id=24 + */ + return ber_bitstring(o, *p, 0); +#else + return ber_bitstring(o, *p, cons); +#endif +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_bool.c b/dependencies/yaz-2.1.28/src/odr_bool.c new file mode 100644 index 0000000..bbfc531 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_bool.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_bool.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file odr_bool.c + * \brief Implements ODR BOOLEAN codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" + +/* + * Top level boolean en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_bool(ODR o, int **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_BOOLEAN; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "%s\n", (**p ? "TRUE" : "FALSE")); + return 1; + } + if (cons) + return 0; + if (o->direction == ODR_DECODE) + *p = (int *)odr_malloc(o, sizeof(int)); + return ber_boolean(o, *p); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_choice.c b/dependencies/yaz-2.1.28/src/odr_choice.c new file mode 100644 index 0000000..87825f7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_choice.c @@ -0,0 +1,109 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_choice.c,v 1.6 2005/08/11 14:21:55 adam Exp $ + */ + +/** + * \file odr_choice.c + * \brief Implements ODR CHOICE codec + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, + const char *name) +{ + int i, cl = -1, tg, cn, *which = (int *)whichp, bias = o->choice_bias; + + if (o->error) + return 0; + if (o->direction != ODR_DECODE && !*(char**)p) + return 0; + + if (o->direction == ODR_DECODE) + { + *which = -1; + *(char**)p = 0; + } + o->choice_bias = -1; + + if (o->direction == ODR_PRINT) + { + if (name) + { + odr_prname(o, name); + odr_printf(o, "choice\n"); + } + } + for (i = 0; arm[i].fun; i++) + { + if (o->direction == ODR_DECODE) + { + if (bias >= 0 && bias != arm[i].which) + continue; + *which = arm[i].which; + } + else if (*which != arm[i].which) + continue; + + if (arm[i].tagmode != ODR_NONE) + { + if (o->direction == ODR_DECODE && cl < 0) + { + if (o->op->stack_top && !odr_constructed_more(o)) + return 0; + if (ber_dectag(o->bp, &cl, &tg, &cn, odr_max(o)) <= 0) + return 0; + } + else if (o->direction != ODR_DECODE) + { + cl = arm[i].zclass; + tg = arm[i].tag; + } + if (tg == arm[i].tag && cl == arm[i].zclass) + { + if (arm[i].tagmode == ODR_IMPLICIT) + { + odr_implicit_settag(o, cl, tg); + return (*arm[i].fun)(o, (char **)p, 0, arm[i].name); + } + /* explicit */ + if (!odr_constructed_begin(o, p, cl, tg, 0)) + return 0; + return (*arm[i].fun)(o, (char **)p, 0, arm[i].name) && + odr_constructed_end(o); + } + } + else /* no tagging. Have to poll type */ + { + if ((*arm[i].fun)(o, (char **)p, 1, arm[i].name) && *(char**)p) + return 1; + } + } + return 0; +} + +void odr_choice_bias(ODR o, int what) +{ + if (o->enable_bias) + o->choice_bias = what; +} + +void odr_choice_enable_bias (ODR o, int mode) +{ + o->enable_bias = mode; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_cons.c b/dependencies/yaz-2.1.28/src/odr_cons.c new file mode 100644 index 0000000..bd9ea9d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_cons.c @@ -0,0 +1,221 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_cons.c,v 1.7 2005/08/11 14:21:55 adam Exp $ + * + */ + +/** + * \file odr_cons.c + * \brief Implements ODR constructed codec. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include + +#include "odr-priv.h" + +void odr_setlenlen(ODR o, int len) +{ + o->lenlen = len; +} + +int odr_constructed_begin(ODR o, void *xxp, int zclass, int tag, + const char *name) +{ + int res; + int cons = 1; + int lenlen = o->lenlen; + + if (o->error) + return 0; + o->lenlen = 1; /* reset lenlen */ + if (o->t_class < 0) + { + o->t_class = zclass; + o->t_tag = tag; + } + if ((res = ber_tag(o, xxp, o->t_class, o->t_tag, &cons, 1, name)) < 0) + return 0; + if (!res || !cons) + return 0; + + /* push the odr_constack */ + if (o->op->stack_top && o->op->stack_top->next) + { + /* reuse old entry */ + o->op->stack_top = o->op->stack_top->next; + } + else if (o->op->stack_top && !o->op->stack_top->next) + { + /* must allocate new entry (not first) */ + int sz = 0; + struct odr_constack *st; + /* check size first */ + for (st = o->op->stack_top; st; st = st->prev) + sz++; + + if (sz >= ODR_MAX_STACK) + { + odr_seterror(o, OSTACK, 30); + return 0; + } + o->op->stack_top->next = (struct odr_constack *) + odr_malloc(o, sizeof(*o->op->stack_top)); + o->op->stack_top->next->prev = o->op->stack_top; + o->op->stack_top->next->next = 0; + + o->op->stack_top = o->op->stack_top->next; + } + else if (!o->op->stack_top) + { + /* stack empty */ + if (!o->op->stack_first) + { + /* first item must be allocated */ + o->op->stack_first = (struct odr_constack *) + odr_malloc(o, sizeof(*o->op->stack_top)); + o->op->stack_first->prev = 0; + o->op->stack_first->next = 0; + } + o->op->stack_top = o->op->stack_first; + assert(o->op->stack_top->prev == 0); + } + o->op->stack_top->lenb = o->bp; + o->op->stack_top->len_offset = odr_tell(o); + o->op->stack_top->name = name ? name : "?"; + if (o->direction == ODR_ENCODE) + { + static unsigned char dummy[sizeof(int)+1]; + + o->op->stack_top->lenlen = lenlen; + + if (odr_write(o, dummy, lenlen) < 0) /* dummy */ + { + ODR_STACK_POP(o); + return 0; + } + } + else if (o->direction == ODR_DECODE) + { + if ((res = ber_declen(o->bp, &o->op->stack_top->len, + odr_max(o))) < 0) + { + odr_seterror(o, OOTHER, 31); + ODR_STACK_POP(o); + return 0; + } + o->op->stack_top->lenlen = res; + o->bp += res; + if (o->op->stack_top->len > odr_max(o)) + { + odr_seterror(o, OOTHER, 32); + ODR_STACK_POP(o); + return 0; + } + } + else if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "{\n"); + o->indent++; + } + else + { + odr_seterror(o, OOTHER, 33); + ODR_STACK_POP(o); + return 0; + } + o->op->stack_top->base = o->bp; + o->op->stack_top->base_offset = odr_tell(o); + return 1; +} + +int odr_constructed_more(ODR o) +{ + if (o->error) + return 0; + if (ODR_STACK_EMPTY(o)) + return 0; + if (o->op->stack_top->len >= 0) + return o->bp - o->op->stack_top->base < o->op->stack_top->len; + else + return (!(*o->bp == 0 && *(o->bp + 1) == 0)); +} + +int odr_constructed_end(ODR o) +{ + int res; + int pos; + + if (o->error) + return 0; + if (ODR_STACK_EMPTY(o)) + { + odr_seterror(o, OOTHER, 34); + return 0; + } + switch (o->direction) + { + case ODR_DECODE: + if (o->op->stack_top->len < 0) + { + if (*o->bp++ == 0 && *(o->bp++) == 0) + { + ODR_STACK_POP(o); + return 1; + } + else + { + odr_seterror(o, OOTHER, 35); + return 0; + } + } + else if (o->bp - o->op->stack_top->base != + o->op->stack_top->len) + { + odr_seterror(o, OCONLEN, 36); + return 0; + } + ODR_STACK_POP(o); + return 1; + case ODR_ENCODE: + pos = odr_tell(o); + odr_seek(o, ODR_S_SET, o->op->stack_top->len_offset); + if ((res = ber_enclen(o, pos - o->op->stack_top->base_offset, + o->op->stack_top->lenlen, 1)) < 0) + { + odr_seterror(o, OLENOV, 37); + return 0; + } + odr_seek(o, ODR_S_END, 0); + if (res == 0) /* indefinite encoding */ + { + if (odr_putc(o, 0) < 0 || odr_putc(o, 0) < 0) + return 0; + } + ODR_STACK_POP(o); + return 1; + case ODR_PRINT: + ODR_STACK_POP(o); + o->indent--; + odr_prname(o, 0); + odr_printf(o, "}\n"); + return 1; + default: + odr_seterror(o, OOTHER, 38); + return 0; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_enum.c b/dependencies/yaz-2.1.28/src/odr_enum.c new file mode 100644 index 0000000..947bb84 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_enum.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_enum.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_enum.c + * \brief Implements ODR ENUM codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/* + * Top level enum en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_enum(ODR o, int **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_ENUM; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "%d\n", **p); + return 1; + } + if (cons) + { + odr_seterror(o, OPROTO, 54); + return 0; + } + if (o->direction == ODR_DECODE) + *p = (int *)odr_malloc(o, sizeof(int)); + return ber_integer(o, *p); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_int.c b/dependencies/yaz-2.1.28/src/odr_int.c new file mode 100644 index 0000000..aba10bf --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_int.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_int.c,v 1.5 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_int.c + * \brief Implements ODR INTEGER codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/* + * Top level integer en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_integer(ODR o, int **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_INTEGER; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "%d\n", **p); + return 1; + } + if (cons) + { + odr_seterror(o, OPROTO, 1); + return 0; + } + if (o->direction == ODR_DECODE) + *p = (int *)odr_malloc(o, sizeof(int)); + return ber_integer(o, *p); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_mem.c b/dependencies/yaz-2.1.28/src/odr_mem.c new file mode 100644 index 0000000..172ae17 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_mem.c @@ -0,0 +1,132 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_mem.c,v 1.7 2006/02/19 18:33:09 adam Exp $ + */ +/** + * \file odr_mem.c + * \brief Implements ODR memory management + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include "odr-priv.h" +#include + +/* ------------------------ NIBBLE MEMORY ---------------------- */ + +/* + * Extract the memory control block from o. + */ +NMEM odr_extract_mem(ODR o) +{ + NMEM r = o->mem; + + o->mem = 0; + return r; +} + +void *odr_malloc(ODR o, int size) +{ + if (o && !o->mem) + o->mem = nmem_create(); + return nmem_malloc(o ? o->mem : 0, size); +} + +char *odr_strdup(ODR o, const char *str) +{ + if (o && !o->mem) + o->mem = nmem_create(); + return nmem_strdup(o->mem, str); +} + +char *odr_strdupn(ODR o, const char *str, size_t n) +{ + return nmem_strdupn(o->mem, str, n); +} + +int *odr_intdup(ODR o, int v) +{ + if (o && !o->mem) + o->mem = nmem_create(); + return nmem_intdup(o->mem, v); +} + +int odr_total(ODR o) +{ + return o->mem ? nmem_total(o->mem) : 0; +} + +Odr_oct *odr_create_Odr_oct(ODR o, const unsigned char *buf, int sz) +{ + Odr_oct *p = (Odr_oct *) odr_malloc(o, sizeof(Odr_oct)); + p->buf = odr_malloc(o, sz); + memcpy(p->buf, buf, sz); + p->size = sz; + p->len = sz; + return p; +} + +/* ---------- memory management for data encoding ----------*/ + + +int odr_grow_block(ODR b, int min_bytes) +{ + int togrow; + + if (!b->can_grow) + return -1; + if (!b->size) + togrow = 1024; + else + togrow = b->size; + if (togrow < min_bytes) + togrow = min_bytes; + if (b->size && !(b->buf = + (unsigned char *) xrealloc(b->buf, b->size += togrow))) + abort(); + else if (!b->size && !(b->buf = (unsigned char *) + xmalloc(b->size = togrow))) + abort(); + return 0; +} + +int odr_write(ODR o, unsigned char *buf, int bytes) +{ + if (o->pos + bytes >= o->size && odr_grow_block(o, bytes)) + { + odr_seterror(o, OSPACE, 40); + return -1; + } + memcpy(o->buf + o->pos, buf, bytes); + o->pos += bytes; + if (o->pos > o->top) + o->top = o->pos; + return 0; +} + +int odr_seek(ODR o, int whence, int offset) +{ + if (whence == ODR_S_CUR) + offset += o->pos; + else if (whence == ODR_S_END) + offset += o->top; + if (offset > o->size && odr_grow_block(o, offset - o->size)) + { + odr_seterror(o, OSPACE, 41); + return -1; + } + o->pos = offset; + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_null.c b/dependencies/yaz-2.1.28/src/odr_null.c new file mode 100644 index 0000000..7e164e2 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_null.c @@ -0,0 +1,62 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_null.c,v 1.6 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_null.c + * \brief Implements ODR NULL codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/* + * Top level null en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_null(ODR o, Odr_null **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_NULL; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "NULL\n"); + return 1; + } + if (cons) + { +#ifdef ODR_STRICT_NULL + odr_seterror(OPROTO, 42); + return 0; +#else + /* Warning: Bad NULL */ +#endif + } + if (o->direction == ODR_DECODE) + *p = odr_nullval(); + return ber_null(o); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_oct.c b/dependencies/yaz-2.1.28/src/odr_oct.c new file mode 100644 index 0000000..1de673a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_oct.c @@ -0,0 +1,209 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_oct.c,v 1.9 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_oct.c + * \brief Implements ODR OCTET codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +/* + * Top level octet string en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_OCTETSTRING; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "OCTETSTRING(len=%d) ", (*p)->len); + + o->op->stream_write(o, o->print, ODR_OCTETSTRING, + (char*) (*p)->buf, (*p)->len); + odr_printf(o, "\n"); + return 1; + } + if (o->direction == ODR_DECODE) + { + *p = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); + (*p)->size= 0; + (*p)->len = 0; + (*p)->buf = 0; + } + if (ber_octetstring(o, *p, cons)) + return 1; + odr_seterror(o, OOTHER, 43); + return 0; +} + +/* + * Friendlier interface to octetstring. + */ +int odr_cstring(ODR o, char **p, int opt, const char *name) +{ + int cons = 0, res; + Odr_oct *t; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_OCTETSTRING; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "'%s'\n", *p); + return 1; + } + t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */ + if (o->direction == ODR_ENCODE) + { + t->buf = (unsigned char *) *p; + t->size = t->len = strlen(*p); + } + else + { + t->size= 0; + t->len = 0; + t->buf = 0; + } + if (!ber_octetstring(o, t, cons)) + return 0; + if (o->direction == ODR_DECODE) + { + *p = (char *) t->buf; + *(*p + t->len) = '\0'; /* ber_octs reserves space for this */ + } + return 1; +} + +/* + * iconv interface to octetstring. + */ +int odr_iconv_string(ODR o, char **p, int opt, const char *name) +{ + int cons = 0, res; + Odr_oct *t; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_OCTETSTRING; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (o->direction == ODR_PRINT) + { + odr_prname(o, name); + odr_printf(o, "'%s'\n", *p); + return 1; + } + t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */ + if (o->direction == ODR_ENCODE) + { + t->buf = 0; + + if (o->op->iconv_handle != 0) + { + size_t inleft = strlen(*p); + char *inbuf = *p; + size_t outleft = 4 * inleft + 2; + char *outbuf = (char *) odr_malloc (o, outleft); + size_t ret; + + t->buf = (unsigned char *) outbuf; + + ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft, + &outbuf, &outleft); + if (ret == (size_t)(-1)) + { + odr_seterror(o, ODATA, 44); + return 0; + } + t->size = t->len = outbuf - (char*) t->buf; + } + if (!t->buf) + { + t->buf = (unsigned char *) *p; + t->size = t->len = strlen(*p); + } + } + else + { + t->size= 0; + t->len = 0; + t->buf = 0; + } + if (!ber_octetstring(o, t, cons)) + return 0; + if (o->direction == ODR_DECODE) + { + *p = 0; + + if (o->op->iconv_handle != 0) + { + size_t inleft = t->len; + char *inbuf = (char *) t->buf; + size_t outleft = 4 * inleft + 2; + char *outbuf = (char *) odr_malloc (o, outleft); + size_t ret; + + *p = outbuf; + + ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft, + &outbuf, &outleft); + if (ret == (size_t)(-1)) + { + odr_seterror(o, ODATA, 45); + return 0; + } + inleft = outbuf - (char*) *p; + + (*p)[inleft] = '\0'; /* null terminate it */ + } + if (!*p) + { + *p = (char *) t->buf; + *(*p + t->len) = '\0'; /* ber_octs reserves space for this */ + } + } + return 1; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_oid.c b/dependencies/yaz-2.1.28/src/odr_oid.c new file mode 100644 index 0000000..253ba4c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_oid.c @@ -0,0 +1,64 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_oid.c,v 1.7 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_oid.c + * \brief Implements ODR OID codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" +#include + +/* + * Top level oid en/decoder. + * Returns 1 on success, 0 on error. + */ +int odr_oid(ODR o, Odr_oid **p, int opt, const char *name) +{ + int res, cons = 0; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_OID; + } + if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + return 0; + if (!res) + return odr_missing(o, opt, name); + if (cons) + { + odr_seterror(o, OPROTO, 46); + return 0; + } + if (o->direction == ODR_PRINT) + { + int i; + + odr_prname(o, name); + odr_printf(o, "OID:"); + for (i = 0; (*p)[i] > -1; i++) + odr_printf(o, " %d", (*p)[i]); + odr_printf(o, "\n"); + return 1; + } + if (o->direction == ODR_DECODE) + *p = (int *)odr_malloc(o, OID_SIZE * sizeof(**p)); + return ber_oidc(o, *p, OID_SIZE); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_seq.c b/dependencies/yaz-2.1.28/src/odr_seq.c new file mode 100644 index 0000000..0978182 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_seq.c @@ -0,0 +1,154 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_seq.c,v 1.5 2005/08/11 14:21:55 adam Exp $ + */ +/** + * \file odr_seq.c + * \brief Implements ODR SEQUENCE codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int odr_sequence_begin(ODR o, void *p, int size, const char *name) +{ + char **pp = (char**) p; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_SEQUENCE; + } + if (o->direction == ODR_DECODE) + *pp = 0; + if (odr_constructed_begin(o, p, o->t_class, o->t_tag, name)) + { + if (o->direction == ODR_DECODE && size) + *pp = (char *)odr_malloc(o, size); + return 1; + } + else + return 0; +} + +int odr_set_begin(ODR o, void *p, int size, const char *name) +{ + char **pp = (char**) p; + + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = ODR_UNIVERSAL; + o->t_tag = ODR_SET; + } + if (o->direction == ODR_DECODE) + *pp = 0; + if (odr_constructed_begin(o, p, o->t_class, o->t_tag, name)) + { + if (o->direction == ODR_DECODE && size) + *pp = (char *)odr_malloc(o, size); + return 1; + } + else + return 0; +} + +int odr_sequence_end(ODR o) +{ + return odr_constructed_end(o); +} + +int odr_set_end(ODR o) +{ + return odr_constructed_end(o); +} + +static int odr_sequence_more(ODR o) +{ + return odr_constructed_more(o); +} + +static int odr_sequence_x (ODR o, Odr_fun type, void *p, int *num) +{ + char ***pp = (char***) p; /* for dereferencing */ + char **tmp = 0; + int size = 0, i; + + switch (o->direction) + { + case ODR_DECODE: + *num = 0; + *pp = (char **)odr_nullval(); + while (odr_sequence_more(o)) + { + /* outgrown array? */ + if (*num * (int) sizeof(void*) >= size) + { + /* double the buffer size */ + tmp = (char **)odr_malloc(o, sizeof(void*) * + (size += size ? size : 128)); + if (*num) + { + memcpy(tmp, *pp, *num * sizeof(void*)); + /* + * For now, we just throw the old *p away, since we use + * nibble memory anyway (disgusting, isn't it?). + */ + } + *pp = tmp; + } + if (!(*type)(o, (*pp) + *num, 0, 0)) + return 0; + (*num)++; + } + break; + case ODR_ENCODE: case ODR_PRINT: + for (i = 0; i < *num; i++) + { + if (!(*type)(o, *pp + i, 0, 0)) + return 0; + } + break; + default: + odr_seterror(o, OOTHER, 47); + return 0; + } + return odr_sequence_end(o); +} + +int odr_set_of(ODR o, Odr_fun type, void *p, int *num, const char *name) +{ + if (!odr_set_begin(o, p, 0, name)) { + if (o->direction == ODR_DECODE) + *num = 0; + return 0; + } + return odr_sequence_x (o, type, p, num); +} + +int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num, + const char *name) +{ + if (!odr_sequence_begin(o, p, 0, name)) { + if (o->direction == ODR_DECODE) + *num = 0; + return 0; + } + return odr_sequence_x (o, type, p, num); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_tag.c b/dependencies/yaz-2.1.28/src/odr_tag.c new file mode 100644 index 0000000..de5a689 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_tag.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_tag.c,v 1.5 2005/08/11 14:21:55 adam Exp $ + */ +/** + * \file odr_tag.c + * \brief Implements ODR IMPLICIT tagging codec + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int odr_peektag(ODR o, int *zclass, int *tag, int *cons) +{ + if (o->direction != ODR_DECODE) + { + odr_seterror(o, OOTHER, 48); + return 0; + } + if (ODR_STACK_NOT_EMPTY(o) && !odr_constructed_more(o)) + return 0; + if (ber_dectag(o->bp, zclass, tag, cons, odr_max(o)) <= 0) + { + odr_seterror(o, OREQUIRED, 49); + return 0; + } + return 1; +} + +int odr_implicit_settag(ODR o, int zclass, int tag) +{ + if (o->error) + return 0; + if (o->t_class < 0) + { + o->t_class = zclass; + o->t_tag = tag; + } + return 1; +} + +int odr_initmember(ODR o, void *p, int size) +{ + char **pp = (char **) p; + + if (o->error) + return 0; + if (o->direction == ODR_DECODE) + *pp = (char *)odr_malloc(o, size); + else if (!*pp) + { + o->t_class = -1; + return 0; + } + return 1; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_use.c b/dependencies/yaz-2.1.28/src/odr_use.c new file mode 100644 index 0000000..081e69a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_use.c @@ -0,0 +1,77 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_use.c,v 1.4 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_use.c + * \brief Implements misc ODR types. + */ +#if HAVE_CONFIG_H +#include +#endif + +#include "odr-priv.h" + +int odr_external(ODR o, Odr_external **p, int opt, const char *name) +{ + Odr_external *pp; + static Odr_arm arm[] = + { + {ODR_EXPLICIT, ODR_CONTEXT, 0, ODR_EXTERNAL_single, + (Odr_fun)odr_any, "single"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, ODR_EXTERNAL_octet, + (Odr_fun)odr_octetstring, "octet"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, ODR_EXTERNAL_arbitrary, + (Odr_fun)odr_bitstring, "arbitrary"}, + {-1, -1, -1, -1, 0, 0} + }; + + odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL); + if (!odr_sequence_begin(o, p, sizeof(Odr_external), name)) + return odr_missing(o, opt, name); + pp = *p; + return + odr_oid(o, &pp->direct_reference, 1, "direct") && + odr_integer(o, &pp->indirect_reference, 1, "indirect") && + odr_graphicstring(o, &pp->descriptor, 1, "descriptor") && + odr_choice(o, arm, &pp->u, &pp->which, 0) && + odr_sequence_end(o); +} + +int odr_visiblestring(ODR o, char **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, + ODR_VISIBLESTRING, opt, name); +} + +/* + * a char may not be sufficient to hold a general string, but we'll deal + * with that once we start looking more closely at UniCode & co. + */ +int odr_generalstring(ODR o, char **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_iconv_string, p, ODR_UNIVERSAL, + ODR_GENERALSTRING,opt, name); +} + +int odr_graphicstring(ODR o, char **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, + ODR_GRAPHICSTRING, opt, name); +} + +int odr_generalizedtime(ODR o, char **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, + ODR_GENERALIZEDTIME, opt, name); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/odr_util.c b/dependencies/yaz-2.1.28/src/odr_util.c new file mode 100644 index 0000000..15e2059 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/odr_util.c @@ -0,0 +1,136 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: odr_util.c,v 1.8 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file odr_util.c + * \brief Implements various ODR utilities + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include "odr-priv.h" +#include + +void odr_prname(ODR o, const char *name) +{ + if (name) + odr_printf(o, "%*s%s ", o->indent*4, "", name); + else + odr_printf(o, "%*s", o->indent*4, ""); +} + +int odp_more_chunks(ODR o, const unsigned char *base, int len) +{ + if (!len) + return 0; + if (len < 0) /* indefinite length */ + { + if (*o->bp == 0 && *(o->bp + 1) == 0) + { + o->bp += 2; + return 0; + } + else + return 1; + } + else + return o->bp - base < len; +} + +Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o) +{ + Odr_oid *r; + + if (!o) + return 0; + if (!(r = (int *)nmem_malloc(nmem, (oid_oidlen(o) + 1) * sizeof(int)))) + return 0; + oid_oidcpy(r, o); + return r; +} + +Odr_oid *odr_oiddup(ODR odr, Odr_oid *o) +{ + if (!odr->mem) + odr->mem = nmem_create(); + return odr_oiddup_nmem (odr->mem, o); +} + +Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) +{ + int num = 1, i = 0; + const char *p = str; + Odr_oid *ret; + + if (!isdigit(*(const unsigned char *) str)) + return 0; + while ((p = strchr(p, '.'))) + num++, p++; + ret = (int *)nmem_malloc(nmem, sizeof(*ret)*(num + 1)); + p = str; + do + ret[i++] = atoi(p); + while ((p = strchr(p, '.')) && *++p); + ret[i] = -1; + return ret; +} + +Odr_oid *odr_getoidbystr(ODR o, const char *str) +{ + if (!o->mem) + o->mem = nmem_create(); + return odr_getoidbystr_nmem (o->mem, str); +} + +int odr_missing(ODR o, int opt, const char *name) +{ + if (o->error) + return 0; + if (!opt) + { + odr_seterror(o, OREQUIRED, 53); + odr_setelement(o, name); + } + return opt; +} + +/* + * Reallocate the buffer `old', using the ODR memory pool `o' to be + * big enough to hold its existing value (if any) plus `prefix' (if + * any) and a separator character. Copy `prefix', a forward slash and + * the old value into the new area and return its address. Can be + * used as follows: + * initRequest->implementationName = odr_prepend(o, + * initRequest->implementationName, "ZOOM-C"); + */ +char *odr_prepend(ODR o, const char *prefix, const char *old) +{ + int plen = (prefix == 0) ? 0 : strlen(prefix); + int olen = (old == 0) ? 0 : strlen(old); + char *res = (char*) odr_malloc (o, olen + plen + 2); + + *res = '\0'; + if (prefix != 0) + strcpy (res, prefix); + if (prefix != 0 && old != 0) + strcat (res, "/"); + if (old !=0) + strcat (res, old); + + return res; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/oid.c b/dependencies/yaz-2.1.28/src/oid.c new file mode 100644 index 0000000..561d4e1 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/oid.c @@ -0,0 +1,649 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: oid.c,v 1.12 2006/05/08 19:45:29 adam Exp $ + */ + +/** + * \file oid.c + * \brief Implements OID database + * + * More or less protocol-transparent OID database. + * We could (and should?) extend this so that the user app can add new + * entries to the list at initialization. + */ +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include +#include + +static int z3950_prefix[] = { 1, 2, 840, 10003, -1 }; +static int sr_prefix[] = { 1, 0, 10163, -1 }; + +struct oident_list { + struct oident oident; + struct oident_list *next; +}; + +static struct oident_list *oident_table = NULL; +static int oid_value_dynamic = VAL_DYNAMIC; +static int oid_init_flag = 0; +static NMEM_MUTEX oid_mutex = 0; +static NMEM oid_nmem = 0; + +/* + * OID database + */ +static oident standard_oids[] = +{ + /* General definitions */ + {PROTO_GENERAL, CLASS_TRANSYN, VAL_BER, {2,1,1,-1}, + "BER" }, + {PROTO_GENERAL, CLASS_TRANSYN, VAL_ISO2709, {1,0,2709,1,1,-1}, + "ISO2709"}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_ISO_ILL_1, {1,0,10161,2,1,-1}, + "ISOILL-1"}, + /* Z39.50v3 definitions */ + {PROTO_Z3950, CLASS_ABSYN, VAL_APDU, {2,1,-1}, + "Z-APDU"}, + {PROTO_Z3950, CLASS_APPCTX, VAL_BASIC_CTX, {1,1,-1}, + "Z-BASIC"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_BIB1, {3,1,-1}, + "Bib-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_EXP1, {3,2,-1}, + "Exp-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_EXT1, {3,3,-1}, + "Ext-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_CCL1, {3,4,-1}, + "CCL-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1}, + "GILS-attset"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_GILS, {3,5,-1}, + "GILS"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_STAS, {3,6,-1}, + "STAS-attset"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_COLLECT1, {3,7,-1}, + "Collections-attset"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_CIMI1, {3,8,-1}, + "CIMI-attset"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_GEO, {3,9,-1}, + "Geo-attset"}, + + {PROTO_Z3950, CLASS_ATTSET, VAL_ZBIG, {3,10,-1}, + "ZBIG"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_UTIL, {3,11,-1}, + "Util"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_XD1, {3,12,-1}, + "XD-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_ZTHES, {3,13,-1}, + "Zthes"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_FIN1, {3,14,-1}, + "Fin-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_DAN1, {3,15,-1}, + "Dan-1"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_HOLDINGS, {3,16,-1}, + "Holdings"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_USMARC, {3,17,-1}, + "MARC"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_BIB2, {3,18,-1}, + "Bib-2"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_ZEEREX, {3,19,-1}, + "ZeeRex"}, + /* New applications should use Zthes-1 instead of this Satan-spawn */ + {PROTO_Z3950, CLASS_ATTSET, VAL_THESAURUS, {3,1000,81,1,-1}, + "Thesaurus-attset"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_IDXPATH, {3,1000,81,2,-1}, + "IDXPATH"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_EXTLITE, {3,1000,81,3,-1}, + "EXTLITE"}, + {PROTO_Z3950, CLASS_DIAGSET, VAL_BIB1, {4,1,-1}, + "Bib-1"}, + {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG1, {4,2,-1}, + "Diag-1"}, + {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG_ES, {4,3,-1}, + "Diag-ES"}, + {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG_GENERAL, {4,3,-1}, + "Diag-General"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_UNIMARC, {5,1,-1}, + "Unimarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_INTERMARC, {5,2,-1}, + "Intermarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_CCF, {5,3,-1}, + "CCF"}, + /* MARC21 is just an alias for the original USmarc */ + {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, + "MARC21"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, + "USmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_UKMARC, {5,11,-1}, + "UKmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_NORMARC, {5,12,-1}, + "Normarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_LIBRISMARC, {5,13,-1}, + "Librismarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_DANMARC, {5,14,-1}, + "Danmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC, {5,15,-1}, + "Finmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_MAB, {5,16,-1}, + "MAB"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_CANMARC, {5,17,-1}, + "Canmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SBN, {5,18,-1}, + "SBN"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_PICAMARC, {5,19,-1}, + "Picamarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_AUSMARC, {5,20,-1}, + "Ausmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_IBERMARC, {5,21,-1}, + "Ibermarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_CATMARC, {5,22,-1}, + "Carmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_MALMARC, {5,23,-1}, + "Malmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_JPMARC, {5,24,-1}, + "JPmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SWEMARC, {5,25,-1}, + "SWEmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SIGLEMARC, {5,26,-1}, + "SIGLEmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_ISDSMARC, {5,27,-1}, + "ISDSmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_RUSMARC, {5,28,-1}, + "RUSmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_HUNMARC, {5,29,-1}, + "Hunmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_NACSISCATP, {5,30,-1}, + "NACSIS-CATP"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC2000, {5,31,-1}, + "FINMARC2000"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_MARC21FIN, {5,32,-1}, + "MARC21-fin"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_EXPLAIN, {5,100,-1}, + "Explain"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SUTRS, {5,101,-1}, + "SUTRS"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_OPAC, {5,102,-1}, + "OPAC"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SUMMARY, {5,103,-1}, + "Summary"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_GRS0, {5,104,-1}, + "GRS-0"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_GRS1, {5,105,-1}, + "GRS-1"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_EXTENDED, {5,106,-1}, + "Extended"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_FRAGMENT, {5,107,-1}, + "Fragment"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_PDF, {5,109,1,-1}, + "pdf"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_POSTSCRIPT, {5,109,2,-1}, + "postscript"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_HTML, {5,109,3,-1}, + "html"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_TIFF, {5,109,4,-1}, + "tiff"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_GIF, {5,109,5,-1}, + "gif"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_JPEG, {5,109,6,-1}, + "jpeg"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_PNG, {5,109,7,-1}, + "png"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_MPEG, {5,109,8,-1}, + "mpeg"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SGML, {5,109,9,-1}, + "sgml"}, + + {PROTO_Z3950, CLASS_RECSYN, VAL_TIFFB, {5,110,1,-1}, + "tiff-b"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_WAV, {5,110,2,-1}, + "wav"}, + + {PROTO_Z3950, CLASS_RECSYN, VAL_SQLRS, {5,111,-1}, + "SQL-RS"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_SOIF, {5,1000,81,2,-1}, + "SOIF" }, + {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, + "text-XML" }, + {PROTO_Z3950, CLASS_RECSYN, VAL_TEXT_XML, {5,109,10,-1}, + "XML" }, + {PROTO_Z3950, CLASS_RECSYN, VAL_APPLICATION_XML, {5,109,11,-1}, + "application-XML" }, + {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1}, + "Resource-1"}, + {PROTO_Z3950, CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1}, + "Resource-2"}, + {PROTO_Z3950, CLASS_RESFORM, VAL_UNIVERSE_REPORT, {7,1000,81,1,-1}, + "UNIverse-Resource-Report"}, + + {PROTO_Z3950, CLASS_ACCFORM, VAL_PROMPT1, {8,1,-1}, + "Prompt-1"}, + {PROTO_Z3950, CLASS_ACCFORM, VAL_DES1, {8,2,-1}, + "Des-1"}, + {PROTO_Z3950, CLASS_ACCFORM, VAL_KRB1, {8,3,-1}, + "Krb-1"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_PRESSET, {9,1,-1}, + "Pers. set"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_PQUERY, {9,2,-1}, + "Pers. query"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_PCQUERY, {9,3,-1}, + "Per'd query"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_ITEMORDER, {9,4,-1}, + "Item order"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE0, {9,5,-1}, + "DB. Update (first version)"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE1, {9,5,1,-1}, + "DB. Update (second version)"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_DBUPDATE, {9,5,1,1,-1}, + "DB. Update"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTSPEC, {9,6,-1}, + "exp. spec."}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1}, + "exp. inv."}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_ADMINSERVICE, {9,1000,81,1,-1}, + "Admin"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_SEARCHRES1, {10,1,-1}, + "searchResult-1"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_CHARLANG, {10,2,-1}, + "CharSetandLanguageNegotiation"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_USERINFO1, {10,3,-1}, + "UserInfo-1"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH1, {10,4,-1}, + "MultipleSearchTerms-1"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_MULTISRCH2, {10,5,-1}, + "MultipleSearchTerms-2"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_DATETIME, {10,6,-1}, + "DateTime"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_PROXY, {10,1000,81,1,-1}, + "Proxy" }, + {PROTO_Z3950, CLASS_USERINFO,VAL_COOKIE, {10,1000,81,2,-1}, + "Cookie" }, + {PROTO_Z3950, CLASS_USERINFO,VAL_CLIENT_IP, {10,1000,81,3,-1}, + "Client-IP" }, + {PROTO_Z3950, CLASS_ELEMSPEC,VAL_ESPEC1, {11,1,-1}, + "Espec-1"}, + {PROTO_Z3950, CLASS_VARSET, VAL_VAR1, {12,1,-1}, + "Variant-1"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_WAIS, {13,1,-1}, + "WAIS-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_GILS, {13,2,-1}, + "GILS-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_COLLECT1, {13,3,-1}, + "Collections-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_GEO, {13,4,-1}, + "Geo-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_CIMI1, {13,5,-1}, + "CIMI-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_UPDATEES, {13,6,-1}, + "Update ES"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_HOLDINGS, {13,7,-1}, + "Holdings"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_ZTHES, {13,8,-1}, + "Zthes"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_THESAURUS, {13,1000,81,1,-1}, + "thesaurus-schema"}, + {PROTO_Z3950, CLASS_SCHEMA, VAL_EXPLAIN, {13,1000,81,2,-1}, + "Explain-schema"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_SETM, {14,1,-1}, + "TagsetM"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_SETG, {14,2,-1}, + "TagsetG"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_STAS, {14,3,-1}, + "STAS-tagset"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_GILS, {14,4,-1}, + "GILS-tagset"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_COLLECT1, {14,5,-1}, + "Collections-tagset"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_CIMI1, {14,6,-1}, + "CIMI-tagset"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_THESAURUS, {14,1000,81,1,-1}, + "thesaurus-tagset"}, /* What is this Satan-spawn doing here? */ + {PROTO_Z3950, CLASS_TAGSET, VAL_EXPLAIN, {14,1000,81,2,-1}, + "Explain-tagset"}, + {PROTO_Z3950, CLASS_TAGSET, VAL_ZTHES, {14,8,-1}, + "Zthes-tagset"}, + {PROTO_Z3950, CLASS_NEGOT, VAL_CHARNEG3, {15,3,-1}, + "CharSetandLanguageNegotiation-3"}, + {PROTO_Z3950, CLASS_NEGOT, VAL_CHARNEG4, {15,4,-1}, + "CharSetandLanguageNegotiation-4"}, + {PROTO_Z3950, CLASS_NEGOT, VAL_ID_CHARSET, {15,1000,81,1,-1}, + "ID-Charset" }, + {PROTO_Z3950, CLASS_USERINFO,VAL_CQL, {16, 2, -1}, + "CQL"}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS2, {1,0,10646,1,0,2,-1}, + "UCS-2"}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS4, {1,0,10646,1,0,4,-1}, + "UCS-4"}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF16, {1,0,10646,1,0,5,-1}, + "UTF-16"}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF8, {1,0,10646,1,0,8,-1}, + "UTF-8"}, + {PROTO_Z3950, CLASS_USERINFO,VAL_OCLCUI, {10, 1000, 17, 1, -1}, + "OCLC-userInfo"}, + {PROTO_Z3950, CLASS_EXTSERV, VAL_XMLES, {9,1000,105,4,-1}, + "XML-ES"}, + {PROTO_NOP, CLASS_NOP, VAL_NOP, {-1}, 0 } +}; + +/* OID utilities */ + +void oid_oidcpy(int *t, int *s) +{ + while ((*(t++) = *(s++)) > -1); +} + +void oid_oidcat(int *t, int *s) +{ + while (*t > -1) + t++; + while ((*(t++) = *(s++)) > -1); +} + +int oid_oidcmp(int *o1, int *o2) +{ + while (*o1 == *o2 && *o1 > -1) + { + o1++; + o2++; + } + if (*o1 == *o2) + return 0; + else if (*o1 > *o2) + return 1; + else + return -1; +} + +int oid_oidlen(int *o) +{ + int len = 0; + + while (*(o++) >= 0) + len++; + return len; +} + + +static int match_prefix(int *look, int *prefix) +{ + int len; + + for (len = 0; *look == *prefix; look++, prefix++, len++); + if (*prefix < 0) /* did we reach the end of the prefix? */ + return len; + return 0; +} + +void oid_transfer (struct oident *oidentp) +{ + while (*oidentp->oidsuffix >= 0) + { + oid_addent (oidentp->oidsuffix, oidentp->proto, + oidentp->oclass, + oidentp->desc, oidentp->value); + oidentp++; + } +} + +void oid_init (void) +{ + if (oid_init_flag == 0) + { + /* oid_transfer is thread safe, so there's nothing wrong in having + two threads calling it simultaniously. On the other hand + no thread may exit oid_init before all OID's bave been + transferred - which is why checked is set after oid_transfer... + */ + nmem_mutex_create (&oid_mutex); + nmem_mutex_enter (oid_mutex); + if (!oid_nmem) + oid_nmem = nmem_create (); + nmem_mutex_leave (oid_mutex); + oid_transfer (standard_oids); + oid_init_flag = 1; + } +} + +void oid_exit (void) +{ + if (oid_init_flag) + { + oid_init_flag = 0; + nmem_mutex_destroy (&oid_mutex); + nmem_destroy (oid_nmem); + oid_nmem = 0; + } +} + +static struct oident *oid_getentbyoid_x(int *o) +{ + enum oid_proto proto; + int prelen; + struct oident_list *ol; + + /* determine protocol type */ + if ((prelen = match_prefix(o, z3950_prefix)) != 0) + proto = PROTO_Z3950; + else if ((prelen = match_prefix(o, sr_prefix)) != 0) + proto = PROTO_SR; + else + proto = PROTO_GENERAL; + for (ol = oident_table; ol; ol = ol->next) + { + struct oident *p = &ol->oident; + if (p->proto == proto && !oid_oidcmp(o + prelen, p->oidsuffix)) + return p; + if (p->proto == PROTO_GENERAL && !oid_oidcmp (o, p->oidsuffix)) + return p; + } + return 0; +} + +/* + * To query, fill out proto, class, and value of the ent parameter. + */ +int *oid_ent_to_oid(struct oident *ent, int *ret) +{ + struct oident_list *ol; + + oid_init (); + for (ol = oident_table; ol; ol = ol->next) + { + struct oident *p = &ol->oident; + if (ent->value == p->value && + (p->proto == PROTO_GENERAL || (ent->proto == p->proto && + (ent->oclass == p->oclass || ent->oclass == CLASS_GENERAL)))) + { + if (p->proto == PROTO_Z3950) + oid_oidcpy(ret, z3950_prefix); + else if (p->proto == PROTO_SR) + oid_oidcpy(ret, sr_prefix); + else + ret[0] = -1; + oid_oidcat(ret, p->oidsuffix); + ent->desc = p->desc; + return ret; + } + } + ret[0] = -1; + return 0; +} + +/* + * To query, fill out proto, class, and value of the ent parameter. + */ +int *oid_getoidbyent(struct oident *ent) +{ + static int ret[OID_SIZE]; + + return oid_ent_to_oid (ent, ret); +} + +struct oident *oid_addent (int *oid, enum oid_proto proto, + enum oid_class oclass, + const char *desc, int value) +{ + struct oident *oident = 0; + + nmem_mutex_enter (oid_mutex); + if (!oident) + { + struct oident_list *oident_list; + oident_list = (struct oident_list *) + nmem_malloc (oid_nmem, sizeof(*oident_list)); + oident = &oident_list->oident; + oident->proto = proto; + oident->oclass = oclass; + + if (!desc) + { + char desc_str[OID_STR_MAX]; + int i; + + *desc_str = '\0'; + if (*oid >= 0) + { + sprintf (desc_str, "%d", *oid); + for (i = 1; i < OID_SIZE && oid[i] >= 0; i++) + sprintf (desc_str+strlen(desc_str), ".%d", oid[i]); + } + oident->desc = nmem_strdup(oid_nmem, desc_str); + } + else + oident->desc = nmem_strdup(oid_nmem, desc); + if (value == VAL_DYNAMIC) + oident->value = (enum oid_value) (++oid_value_dynamic); + else + oident->value = (enum oid_value) value; + oid_oidcpy (oident->oidsuffix, oid); + oident_list->next = oident_table; + oident_table = oident_list; + } + nmem_mutex_leave (oid_mutex); + return oident; +} + +struct oident *oid_getentbyoid(int *oid) +{ + struct oident *oident; + + if (!oid) + return 0; + oid_init (); + oident = oid_getentbyoid_x (oid); + if (!oident) + oident = oid_addent (oid, PROTO_GENERAL, CLASS_GENERAL, + NULL, VAL_DYNAMIC); + return oident; +} + +static oid_value oid_getval_raw(const char *name) +{ + int val = 0, i = 0, oid[OID_SIZE]; + struct oident *oident; + + while (isdigit (*(const unsigned char *) name)) + { + val = val*10 + (*name - '0'); + name++; + if (*name == '.') + { + if (i < OID_SIZE-1) + oid[i++] = val; + val = 0; + name++; + } + } + oid[i] = val; + oid[i+1] = -1; + oident = oid_getentbyoid_x (oid); + if (!oident) + oident = oid_addent (oid, PROTO_GENERAL, CLASS_GENERAL, NULL, + VAL_DYNAMIC); + return oident->value; +} + +oid_value oid_getvalbyname(const char *name) +{ + struct oident_list *ol; + + oid_init (); + if (isdigit (*(const unsigned char *) name)) + return oid_getval_raw (name); + for (ol = oident_table; ol; ol = ol->next) + if (!yaz_matchstr(ol->oident.desc, name)) + { + return ol->oident.value; + } + return VAL_NONE; +} + +void oid_setprivateoids(oident *list) +{ + oid_transfer (list); +} + +void oid_trav (void (*func)(struct oident *oidinfo, void *vp), void *vp) +{ + struct oident_list *ol; + + oid_init (); + for (ol = oident_table; ol; ol = ol->next) + (*func)(&ol->oident, vp); +} + +int *oid_name_to_oid(oid_class oclass, const char *name, int *oid) +{ + struct oident ent; + + /* Translate syntax to oid_val */ + oid_value value = oid_getvalbyname(name); + + /* Build it into an oident */ + ent.proto = PROTO_Z3950; + ent.oclass = oclass; + ent.value = value; + + /* Translate to an array of int */ + return oid_ent_to_oid(&ent, oid); +} + +char *oid_to_dotstring(const int *oid, char *oidbuf) +{ + char tmpbuf[20]; + int i; + + oidbuf[0] = '\0'; + for (i = 0; oid[i] != -1 && i < OID_SIZE; i++) + { + sprintf(tmpbuf, "%d", oid[i]); + if (i > 0) + strcat(oidbuf, "."); + strcat(oidbuf, tmpbuf); + } + return oidbuf; +} + +char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf) +{ + int oid[OID_SIZE]; + + (void) oid_name_to_oid(oclass, name, oid); + return oid_to_dotstring(oid, oidbuf); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/opacdisp.c b/dependencies/yaz-2.1.28/src/opacdisp.c new file mode 100644 index 0000000..fc91551 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/opacdisp.c @@ -0,0 +1,179 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: opacdisp.c,v 1.8 2005/08/22 20:34:21 adam Exp $ + */ +/** + * \file opacdisp.c + * \brief Implements OPAC record display + */ + +#include +#include +#include +#include + +#include +#include + +static void opac_element_str(WRBUF wrbuf, int l, const char *elem, + const char *data) +{ + if (data) + { + while (--l >= 0) + wrbuf_puts(wrbuf, " "); + wrbuf_puts(wrbuf, "<"); + wrbuf_puts(wrbuf, elem); + wrbuf_puts(wrbuf, ">"); + wrbuf_xmlputs(wrbuf, data); + wrbuf_puts(wrbuf, "\n"); + } +} + +static void opac_element_bool(WRBUF wrbuf, int l, const char *elem, int *data) +{ + if (data) + { + while (--l >= 0) + wrbuf_puts(wrbuf, " "); + wrbuf_puts(wrbuf, "<"); + wrbuf_puts(wrbuf, elem); + if (*data) + wrbuf_puts(wrbuf, " value=\"1\""); + else + wrbuf_puts(wrbuf, " value=\"0\""); + wrbuf_puts(wrbuf, "/>\n"); + } +} + +void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf) +{ + int i; + + wrbuf_puts(wrbuf, "\n"); + if (r->bibliographicRecord) + { + Z_External *ext = r->bibliographicRecord; + + wrbuf_puts (wrbuf, " \n"); + if (ext->which == Z_External_octet) + yaz_marc_decode_wrbuf(mt, (const char *) ext->u.octet_aligned->buf, + ext->u.octet_aligned->len, wrbuf); + wrbuf_puts (wrbuf, " \n"); + } + wrbuf_puts(wrbuf, "\n"); + + for (i = 0; i < r->num_holdingsData; i++) + { + Z_HoldingsRecord *h = r->holdingsData[i]; + wrbuf_puts(wrbuf, " \n"); + + if (h->which == Z_HoldingsRecord_marcHoldingsRecord) + { + Z_External *ext = h->u.marcHoldingsRecord; + + wrbuf_puts (wrbuf, " \n"); + if (ext->which == Z_External_octet) + yaz_marc_decode_wrbuf(mt, (const char *) + ext->u.octet_aligned->buf, + ext->u.octet_aligned->len, wrbuf); + wrbuf_puts (wrbuf, " \n"); + } + else if (h->which == Z_HoldingsRecord_holdingsAndCirc) + { + int j; + + Z_HoldingsAndCircData *d = h->u.holdingsAndCirc; + + opac_element_str(wrbuf, 2, "typeOfRecord", d->typeOfRecord); + opac_element_str(wrbuf, 2, "encodingLevel", d->encodingLevel); + opac_element_str(wrbuf, 2, "format", d->format); + opac_element_str(wrbuf, 2, "receiptAcqStatus", d->receiptAcqStatus); + opac_element_str (wrbuf, 2, "generalRetention", d->generalRetention); + opac_element_str (wrbuf, 2, "completeness", d->completeness); + opac_element_str (wrbuf, 2, "dateOfReport", d->dateOfReport); + opac_element_str (wrbuf, 2, "nucCode", d->nucCode); + opac_element_str (wrbuf, 2, "localLocation", d->localLocation); + opac_element_str (wrbuf, 2, "shelvingLocation", d->shelvingLocation); + opac_element_str (wrbuf, 2, "callNumber", d->callNumber); + opac_element_str (wrbuf, 2, "shelvingData", d->shelvingData); + + opac_element_str (wrbuf, 2, "copyNumber", d->copyNumber); + opac_element_str (wrbuf, 2, "publicNote", d->publicNote); + opac_element_str (wrbuf, 2, "reproductionNote", d->reproductionNote); + opac_element_str (wrbuf, 2, "termsUseRepro", d->termsUseRepro); + opac_element_str (wrbuf, 2, "enumAndChron", d->enumAndChron); + if (d->num_volumes) + { + wrbuf_puts (wrbuf, " \n"); + for (j = 0; jnum_volumes; j++) + { + wrbuf_puts (wrbuf, " \n"); + opac_element_str (wrbuf, 4, "enumeration", + d->volumes[j]->enumeration); + opac_element_str (wrbuf, 4, "chronology", + d->volumes[j]->chronology); + opac_element_str (wrbuf, 4, "enumAndChron", + d->volumes[j]->enumAndChron); + wrbuf_puts (wrbuf, " \n"); + } + wrbuf_puts (wrbuf, " \n"); + } + if (d->num_circulationData) + { + wrbuf_puts (wrbuf, " \n"); + for (j = 0; jnum_circulationData; j++) + { + wrbuf_puts (wrbuf," \n"); + opac_element_bool (wrbuf, 4, "availableNow", + d->circulationData[j]->availableNow); + opac_element_str (wrbuf, 4, "availabiltyDate", + d->circulationData[j]->availablityDate); + opac_element_str (wrbuf, 4, "availableThru", + d->circulationData[j]->availableThru); + opac_element_str (wrbuf, 4, "restrictions", + d->circulationData[j]->restrictions); + opac_element_str (wrbuf, 4, "itemId", + d->circulationData[j]->itemId); + opac_element_bool (wrbuf, 4, "renewable", + d->circulationData[j]->renewable); + opac_element_bool (wrbuf, 4, "onHold", + d->circulationData[j]->onHold); + opac_element_str (wrbuf, 4, "enumAndChron", + d->circulationData[j]->enumAndChron); + opac_element_str (wrbuf, 4, "midspine", + d->circulationData[j]->midspine); + opac_element_str (wrbuf, 4, "temporaryLocation", + d->circulationData[j]->temporaryLocation); + wrbuf_puts (wrbuf, " \n"); + } + wrbuf_puts (wrbuf, " \n"); + } + } + wrbuf_puts(wrbuf, " \n"); + } + wrbuf_puts(wrbuf, "\n"); + wrbuf_puts(wrbuf, "\n"); +} + +void yaz_display_OPAC(WRBUF wrbuf, Z_OPACRecord *opac_rec, int flags) +{ + yaz_marc_t mt = yaz_marc_create(); + + yaz_marc_xml(mt, YAZ_MARC_MARCXML); + yaz_opac_decode_wrbuf(mt, opac_rec, wrbuf); + yaz_marc_destroy(mt); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/options.c b/dependencies/yaz-2.1.28/src/options.c new file mode 100644 index 0000000..f81c389 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/options.c @@ -0,0 +1,97 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: options.c,v 1.4 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file options.c + * \brief Implements command line options parsing + */ +#if HAVE_CONFIG_H +#include +#endif + +#include + +#include + +static int arg_no = 1; +static int arg_off = 0; + +int options (const char *desc, char **argv, int argc, char **arg) +{ + int ch, i = 0; + + if (arg_no >= argc) + return -2; + if (arg_off == 0) + { + while (argv[arg_no][0] == '\0') + { + arg_no++; + if (arg_no >= argc) + return -2; + } + if (argv[arg_no][0] != '-' || argv[arg_no][1] == '\0') + { + *arg = argv[arg_no++]; + return 0; + } + arg_off++; + } + ch = argv[arg_no][arg_off++]; + while (desc[i]) + { + int desc_char = desc[i++]; + int type = 0; + if (desc[i] == ':') + { /* string argument */ + type = desc[i++]; + } + if (desc_char == ch) + { /* option with argument */ + if (type) + { + if (argv[arg_no][arg_off]) + { + *arg = argv[arg_no]+arg_off; + arg_no++; + arg_off = 0; + } + else + { + arg_no++; + arg_off = 0; + if (arg_no < argc) + *arg = argv[arg_no++]; + else + *arg = ""; + } + } + else /* option with no argument */ + { + if (argv[arg_no][arg_off]) + arg_off++; + else + { + arg_off = 0; + arg_no++; + } + } + return ch; + } + } + *arg = argv[arg_no]+arg_off-1; + arg_no = arg_no + 1; + arg_off = 0; + return -1; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/otherinfo.c b/dependencies/yaz-2.1.28/src/otherinfo.c new file mode 100644 index 0000000..b93c248 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/otherinfo.c @@ -0,0 +1,222 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: otherinfo.c,v 1.5 2006/01/16 15:53:28 adam Exp $ + */ +/** + * \file otherinfo.c + * \brief Implements Z39.50 OtherInfo utilities + */ +#include +#include + +#include + +void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip) +{ + switch (apdu->which) + { + case Z_APDU_initRequest: + *oip = &apdu->u.initRequest->otherInfo; + break; + case Z_APDU_searchRequest: + *oip = &apdu->u.searchRequest->otherInfo; + break; + case Z_APDU_presentRequest: + *oip = &apdu->u.presentRequest->otherInfo; + break; + case Z_APDU_sortRequest: + *oip = &apdu->u.sortRequest->otherInfo; + break; + case Z_APDU_scanRequest: + *oip = &apdu->u.scanRequest->otherInfo; + break; + case Z_APDU_extendedServicesRequest: + *oip = &apdu->u.extendedServicesRequest->otherInfo; + break; + case Z_APDU_deleteResultSetRequest: + *oip = &apdu->u.deleteResultSetRequest->otherInfo; + break; + case Z_APDU_initResponse: + *oip = &apdu->u.initResponse->otherInfo; + break; + case Z_APDU_searchResponse: + *oip = &apdu->u.searchResponse->otherInfo; + break; + case Z_APDU_presentResponse: + *oip = &apdu->u.presentResponse->otherInfo; + break; + case Z_APDU_sortResponse: + *oip = &apdu->u.sortResponse->otherInfo; + break; + case Z_APDU_scanResponse: + *oip = &apdu->u.scanResponse->otherInfo; + break; + case Z_APDU_extendedServicesResponse: + *oip = &apdu->u.extendedServicesResponse->otherInfo; + break; + case Z_APDU_deleteResultSetResponse: + *oip = &apdu->u.deleteResultSetResponse->otherInfo; + break; + case Z_APDU_duplicateDetectionRequest: + *oip = &apdu->u.duplicateDetectionRequest->otherInfo; + break; + case Z_APDU_duplicateDetectionResponse: + *oip = &apdu->u.duplicateDetectionResponse->otherInfo; + break; + default: + *oip = 0; + break; + } +} + +Z_OtherInformationUnit *yaz_oi_update ( + Z_OtherInformation **otherInformationP, ODR odr, + int *oid, int categoryValue, int delete_flag) +{ + int i; + Z_OtherInformation *otherInformation; + + if (!otherInformationP) + return 0; + otherInformation = *otherInformationP; + if (!otherInformation) + { + if (!odr) + return 0; + otherInformation = *otherInformationP = (Z_OtherInformation *) + odr_malloc (odr, sizeof(*otherInformation)); + otherInformation->num_elements = 0; + otherInformation->list = 0; + } + for (i = 0; inum_elements; i++) + { + if (!oid) + { + if (!otherInformation->list[i]->category) + return otherInformation->list[i]; + } + else + { + if (otherInformation->list[i]->category && + categoryValue == + *otherInformation->list[i]->category->categoryValue && + !oid_oidcmp (oid, otherInformation->list[i]->category-> + categoryTypeId)) + { + Z_OtherInformationUnit *this_list = otherInformation->list[i]; + + if (delete_flag) + { + (otherInformation->num_elements)--; + while (i < otherInformation->num_elements) + { + otherInformation->list[i] = + otherInformation->list[i+1]; + i++; + } + } + return this_list; + } + } + } + if (!odr) + return 0; + else + { + Z_OtherInformationUnit **newlist = (Z_OtherInformationUnit**) + odr_malloc(odr, (otherInformation->num_elements+1) * + sizeof(*newlist)); + for (i = 0; inum_elements; i++) + newlist[i] = otherInformation->list[i]; + otherInformation->list = newlist; + + otherInformation->list[i] = (Z_OtherInformationUnit*) + odr_malloc (odr, sizeof(Z_OtherInformationUnit)); + if (oid) + { + otherInformation->list[i]->category = (Z_InfoCategory*) + odr_malloc (odr, sizeof(Z_InfoCategory)); + otherInformation->list[i]->category->categoryTypeId = (int*) + odr_oiddup (odr, oid); + otherInformation->list[i]->category->categoryValue = (int*) + odr_malloc (odr, sizeof(int)); + *otherInformation->list[i]->category->categoryValue = + categoryValue; + } + else + otherInformation->list[i]->category = 0; + otherInformation->list[i]->which = Z_OtherInfo_characterInfo; + otherInformation->list[i]->information.characterInfo = 0; + + otherInformation->num_elements = i+1; + return otherInformation->list[i]; + } +} + +void yaz_oi_set_string_oid ( + Z_OtherInformation **otherInformation, ODR odr, + int *oid, int categoryValue, + const char *str) +{ + Z_OtherInformationUnit *oi = + yaz_oi_update(otherInformation, odr, oid, categoryValue, 0); + if (!oi) + return; + oi->which = Z_OtherInfo_characterInfo; + oi->information.characterInfo = odr_strdup (odr, str); +} + +void yaz_oi_set_string_oidval ( + Z_OtherInformation **otherInformation, ODR odr, + int oidval, int categoryValue, + const char *str) +{ + int oid[OID_SIZE]; + struct oident ent; + ent.proto = PROTO_Z3950; + ent.oclass = CLASS_USERINFO; + ent.value = (oid_value) oidval; + if (!oid_ent_to_oid (&ent, oid)) + return ; + yaz_oi_set_string_oid(otherInformation, + odr, oid, categoryValue, str); +} + +char *yaz_oi_get_string_oid ( + Z_OtherInformation **otherInformation, + int *oid, int categoryValue, int delete_flag) +{ + Z_OtherInformationUnit *oi; + + if ((oi = yaz_oi_update(otherInformation, 0, oid, categoryValue, + delete_flag)) && + oi->which == Z_OtherInfo_characterInfo) + return oi->information.characterInfo; + return 0; +} + +char *yaz_oi_get_string_oidval(Z_OtherInformation **otherInformation, + int oidval, int categoryValue, int delete_flag) +{ + int oid[OID_SIZE]; + struct oident ent; + ent.proto = PROTO_Z3950; + ent.oclass = CLASS_USERINFO; + ent.value = (oid_value) oidval; + + if (!oid_ent_to_oid (&ent, oid)) + return 0; + return yaz_oi_get_string_oid (otherInformation, oid, categoryValue, + delete_flag); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/pquery.c b/dependencies/yaz-2.1.28/src/pquery.c new file mode 100644 index 0000000..84f0bd4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/pquery.c @@ -0,0 +1,864 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: pquery.c,v 1.8 2006/04/01 11:45:23 adam Exp $ + */ +/** + * \file pquery.c + * \brief Implements PQF parsing + */ +#include +#include +#include +#include + +#include +#include +#include + +static oid_value p_query_dfset = VAL_NONE; + +struct yaz_pqf_parser { + const char *query_buf; + const char *query_ptr; + const char *lex_buf; + size_t lex_len; + int query_look; + char *left_sep; + char *right_sep; + int escape_char; + int term_type; + int external_type; + int error; +}; + +static Z_RPNStructure *rpn_structure (struct yaz_pqf_parser *li, ODR o, + oid_proto, + int num_attr, int max_attr, + int *attr_list, char **attr_clist, + oid_value *attr_set); + +static enum oid_value query_oid_getvalbyname (struct yaz_pqf_parser *li) +{ + enum oid_value value; + char buf[32]; + + if (li->lex_len > 31) + return VAL_NONE; + memcpy (buf, li->lex_buf, li->lex_len); + buf[li->lex_len] = '\0'; + value = oid_getvalbyname (buf); + return value; +} + +static int compare_term (struct yaz_pqf_parser *li, const char *src, + size_t off) +{ + size_t len=strlen(src); + + if (li->lex_len == len+off && !memcmp (li->lex_buf+off, src, len-off)) + return 1; + return 0; +} + +static int query_token (struct yaz_pqf_parser *li) +{ + int sep_char = ' '; + const char *sep_match; + const char **qptr = &li->query_ptr; + + while (**qptr == ' ') + (*qptr)++; + if (**qptr == '\0') + return 0; + li->lex_len = 0; + if ((sep_match = strchr (li->left_sep, **qptr))) + { + sep_char = li->right_sep[sep_match - li->left_sep]; + ++(*qptr); + } + li->lex_buf = *qptr; + + if (**qptr == li->escape_char && isdigit (((const unsigned char *) *qptr)[1])) + { + ++(li->lex_len); + ++(*qptr); + return 'l'; + } + while (**qptr && **qptr != sep_char) + { + if (**qptr == '\\') + { + ++(li->lex_len); + ++(*qptr); + } + ++(li->lex_len); + ++(*qptr); + } + if (**qptr) + ++(*qptr); + if (sep_char == ' ' && + li->lex_len >= 1 && li->lex_buf[0] == li->escape_char) + { + if (compare_term (li, "and", 1)) + return 'a'; + if (compare_term (li, "or", 1)) + return 'o'; + if (compare_term (li, "not", 1)) + return 'n'; + if (compare_term (li, "attr", 1)) + return 'l'; + if (compare_term (li, "set", 1)) + return 's'; + if (compare_term (li, "attrset", 1)) + return 'r'; + if (compare_term (li, "prox", 1)) + return 'p'; + if (compare_term (li, "term", 1)) + return 'y'; + } + return 't'; +} + +static int lex (struct yaz_pqf_parser *li) +{ + return li->query_look = query_token (li); +} + +static int escape_string(char *out_buf, const char *in, int len) +{ + + char *out = out_buf; + while (--len >= 0) + if (*in == '\\' && len > 0) + { + --len; + switch (*++in) + { + case 't': + *out++ = '\t'; + break; + case 'n': + *out++ = '\n'; + break; + case 'r': + *out++ = '\r'; + break; + case 'f': + *out++ = '\f'; + break; + case 'x': + if (len > 1) + { + char s[4]; + int n = 0; + s[0] = *++in; + s[1] = *++in; + s[2] = '\0'; + len = len - 2; + sscanf (s, "%x", &n); + *out++ = n; + } + break; + case '0': + case '1': + case '2': + case '3': + if (len > 1) + { + char s[4]; + int n = 0; + s[0] = *in; + s[1] = *++in; + s[2] = *++in; + s[3] = '\0'; + len = len - 2; + sscanf (s, "%o", &n); + *out++ = n; + } + break; + default: + *out++ = *in; + break; + } + in++; + } + else + *out++ = *in++; + return out - out_buf; +} + +static int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o, + int num_attr, int *attr_list, + char **attr_clist, oid_value *attr_set) +{ + const char *cp; + + if (!(cp = strchr (li->lex_buf, '=')) || + (size_t) (cp-li->lex_buf) > li->lex_len) + { + attr_set[num_attr] = query_oid_getvalbyname (li); + if (attr_set[num_attr] == VAL_NONE) + { + li->error = YAZ_PQF_ERROR_ATTSET; + return 0; + } + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + if (!(cp = strchr (li->lex_buf, '='))) + { + li->error = YAZ_PQF_ERROR_BADATTR; + return 0; + } + } + else + { + if (num_attr > 0) + attr_set[num_attr] = attr_set[num_attr-1]; + else + attr_set[num_attr] = VAL_NONE; + } + if (*li->lex_buf < '0' || *li->lex_buf > '9') + { + li->error = YAZ_PQF_ERROR_BAD_INTEGER; + return 0; + } + attr_list[2*num_attr] = atoi(li->lex_buf); + cp++; + if (*cp >= '0' && *cp <= '9') + { + attr_list[2*num_attr+1] = atoi (cp); + attr_clist[num_attr] = 0; + } + else + { + int len = li->lex_len - (cp - li->lex_buf); + attr_list[2*num_attr+1] = 0; + attr_clist[num_attr] = (char *) odr_malloc (o, len+1); + len = escape_string(attr_clist[num_attr], cp, len); + attr_clist[num_attr][len] = '\0'; + } + return 1; +} + +static Z_AttributesPlusTerm *rpn_term (struct yaz_pqf_parser *li, ODR o, + oid_proto proto, + int num_attr, int *attr_list, + char **attr_clist, oid_value *attr_set) +{ + Z_AttributesPlusTerm *zapt; + Odr_oct *term_octet; + Z_Term *term; + Z_AttributeElement **elements; + + zapt = (Z_AttributesPlusTerm *)odr_malloc (o, sizeof(*zapt)); + term_octet = (Odr_oct *)odr_malloc (o, sizeof(*term_octet)); + term = (Z_Term *)odr_malloc (o, sizeof(*term)); + + if (!num_attr) + elements = (Z_AttributeElement**)odr_nullval(); + else + { + int i, k = 0; + int *attr_tmp; + + elements = (Z_AttributeElement**) + odr_malloc (o, num_attr * sizeof(*elements)); + + attr_tmp = (int *)odr_malloc (o, num_attr * 2 * sizeof(int)); + memcpy (attr_tmp, attr_list, num_attr * 2 * sizeof(int)); + for (i = num_attr; --i >= 0; ) + { + int j; + for (j = i+1; jattributeType = &attr_tmp[2*i]; + elements[k]->attributeSet = + yaz_oidval_to_z3950oid(o, CLASS_ATTSET, attr_set[i]); + + if (attr_clist[i]) + { + elements[k]->which = Z_AttributeValue_complex; + elements[k]->value.complex = (Z_ComplexAttribute *) + odr_malloc (o, sizeof(Z_ComplexAttribute)); + elements[k]->value.complex->num_list = 1; + elements[k]->value.complex->list = + (Z_StringOrNumeric **) + odr_malloc (o, 1 * sizeof(Z_StringOrNumeric *)); + elements[k]->value.complex->list[0] = + (Z_StringOrNumeric *) + odr_malloc (o, sizeof(Z_StringOrNumeric)); + elements[k]->value.complex->list[0]->which = + Z_StringOrNumeric_string; + elements[k]->value.complex->list[0]->u.string = + attr_clist[i]; + elements[k]->value.complex->semanticAction = (int **) + odr_nullval(); + elements[k]->value.complex->num_semanticAction = 0; + } + else + { + elements[k]->which = Z_AttributeValue_numeric; + elements[k]->value.numeric = &attr_tmp[2*i+1]; + } + k++; + } + num_attr = k; + } + zapt->attributes = (Z_AttributeList *) + odr_malloc (o, sizeof(*zapt->attributes)); + zapt->attributes->num_attributes = num_attr; + zapt->attributes->attributes = elements; + + zapt->term = term; + + term_octet->buf = (unsigned char *)odr_malloc (o, 1 + li->lex_len); + term_octet->size = term_octet->len = + escape_string ((char *) (term_octet->buf), li->lex_buf, li->lex_len); + term_octet->buf[term_octet->size] = 0; /* null terminate */ + + switch (li->term_type) + { + case Z_Term_general: + term->which = Z_Term_general; + term->u.general = term_octet; + break; + case Z_Term_characterString: + term->which = Z_Term_characterString; + term->u.characterString = (char*) term_octet->buf; + /* null terminated above */ + break; + case Z_Term_numeric: + term->which = Z_Term_numeric; + term->u.numeric = odr_intdup (o, atoi((char*) (term_octet->buf))); + break; + case Z_Term_null: + term->which = Z_Term_null; + term->u.null = odr_nullval(); + break; + case Z_Term_external: + term->which = Z_Term_external; + term->u.external = 0; + break; + default: + term->which = Z_Term_null; + term->u.null = odr_nullval(); + break; + } + return zapt; +} + +static Z_Operand *rpn_simple (struct yaz_pqf_parser *li, ODR o, oid_proto proto, + int num_attr, int *attr_list, char **attr_clist, + oid_value *attr_set) +{ + Z_Operand *zo; + + zo = (Z_Operand *)odr_malloc (o, sizeof(*zo)); + switch (li->query_look) + { + case 't': + zo->which = Z_Operand_APT; + if (!(zo->u.attributesPlusTerm = + rpn_term (li, o, proto, num_attr, attr_list, attr_clist, + attr_set))) + return 0; + lex (li); + break; + case 's': + lex (li); + if (!li->query_look) + { + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + zo->which = Z_Operand_resultSetId; + zo->u.resultSetId = (char *)odr_malloc (o, li->lex_len+1); + memcpy (zo->u.resultSetId, li->lex_buf, li->lex_len); + zo->u.resultSetId[li->lex_len] = '\0'; + lex (li); + break; + default: + /* we're only called if one of the above types are seens so + this shouldn't happen */ + li->error = YAZ_PQF_ERROR_INTERNAL; + return 0; + } + return zo; +} + +static Z_ProximityOperator *rpn_proximity (struct yaz_pqf_parser *li, ODR o) +{ + Z_ProximityOperator *p = (Z_ProximityOperator *)odr_malloc (o, sizeof(*p)); + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf == '1') + p->exclusion = odr_intdup (o, 1); + else if (*li->lex_buf == '0') + p->exclusion = odr_intdup (o, 0); + else if (*li->lex_buf == 'v' || *li->lex_buf == 'n') + p->exclusion = NULL; + else + { + li->error = YAZ_PQF_ERROR_PROXIMITY; + return NULL; + } + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf >= '0' && *li->lex_buf <= '9') + p->distance = odr_intdup (o, atoi (li->lex_buf)); + else + { + li->error = YAZ_PQF_ERROR_BAD_INTEGER; + return NULL; + } + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf == '1') + p->ordered = odr_intdup (o, 1); + else if (*li->lex_buf == '0') + p->ordered = odr_intdup (o, 0); + else + { + li->error = YAZ_PQF_ERROR_PROXIMITY; + return NULL; + } + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf >= '0' && *li->lex_buf <= '9') + p->relationType = odr_intdup (o, atoi (li->lex_buf)); + else + { + li->error = YAZ_PQF_ERROR_BAD_INTEGER; + return NULL; + } + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf == 'k') + p->which = Z_ProximityOperator_known; + else if (*li->lex_buf == 'p') + p->which = Z_ProximityOperator_private; + else + p->which = atoi (li->lex_buf); + + if (p->which != Z_ProximityOperator_known + && p->which != Z_ProximityOperator_private) + { + li->error = YAZ_PQF_ERROR_PROXIMITY; + return NULL; + } + + if (!lex (li)) + { + li->error = YAZ_PQF_ERROR_MISSING; + return NULL; + } + if (*li->lex_buf >= '0' && *li->lex_buf <= '9') + p->u.known = odr_intdup (o, atoi(li->lex_buf)); + else + { + li->error = YAZ_PQF_ERROR_BAD_INTEGER; + return NULL; + } + return p; +} + +static Z_Complex *rpn_complex (struct yaz_pqf_parser *li, ODR o, oid_proto proto, + int num_attr, int max_attr, + int *attr_list, char **attr_clist, + oid_value *attr_set) +{ + Z_Complex *zc; + Z_Operator *zo; + + zc = (Z_Complex *)odr_malloc (o, sizeof(*zc)); + zo = (Z_Operator *)odr_malloc (o, sizeof(*zo)); + zc->roperator = zo; + switch (li->query_look) + { + case 'a': + zo->which = Z_Operator_and; + zo->u.op_and = odr_nullval(); + break; + case 'o': + zo->which = Z_Operator_or; + zo->u.op_or = odr_nullval(); + break; + case 'n': + zo->which = Z_Operator_and_not; + zo->u.and_not = odr_nullval(); + break; + case 'p': + zo->which = Z_Operator_prox; + zo->u.prox = rpn_proximity (li, o); + if (!zo->u.prox) + return NULL; + break; + default: + /* we're only called if one of the above types are seens so + this shouldn't happen */ + li->error = YAZ_PQF_ERROR_INTERNAL; + return NULL; + } + lex (li); + if (!(zc->s1 = + rpn_structure (li, o, proto, num_attr, max_attr, attr_list, + attr_clist, attr_set))) + return NULL; + if (!(zc->s2 = + rpn_structure (li, o, proto, num_attr, max_attr, attr_list, + attr_clist, attr_set))) + return NULL; + return zc; +} + +static void rpn_term_type (struct yaz_pqf_parser *li, ODR o) +{ + if (!li->query_look) + return ; + if (compare_term (li, "general", 0)) + li->term_type = Z_Term_general; + else if (compare_term (li, "numeric", 0)) + li->term_type = Z_Term_numeric; + else if (compare_term (li, "string", 0)) + li->term_type = Z_Term_characterString; + else if (compare_term (li, "oid", 0)) + li->term_type = Z_Term_oid; + else if (compare_term (li, "datetime", 0)) + li->term_type = Z_Term_dateTime; + else if (compare_term (li, "null", 0)) + li->term_type = Z_Term_null; + else if (compare_term(li, "range", 0)) + { + /* prepare for external: range search .. */ + li->term_type = Z_Term_external; + li->external_type = VAL_MULTISRCH2; + } + lex (li); +} + +static Z_RPNStructure *rpn_structure (struct yaz_pqf_parser *li, ODR o, + oid_proto proto, + int num_attr, int max_attr, + int *attr_list, + char **attr_clist, + oid_value *attr_set) +{ + Z_RPNStructure *sz; + + sz = (Z_RPNStructure *)odr_malloc (o, sizeof(*sz)); + switch (li->query_look) + { + case 'a': + case 'o': + case 'n': + case 'p': + sz->which = Z_RPNStructure_complex; + if (!(sz->u.complex = + rpn_complex (li, o, proto, num_attr, max_attr, attr_list, + attr_clist, attr_set))) + return NULL; + break; + case 't': + case 's': + sz->which = Z_RPNStructure_simple; + if (!(sz->u.simple = + rpn_simple (li, o, proto, num_attr, attr_list, + attr_clist, attr_set))) + return NULL; + break; + case 'l': + lex (li); + if (!li->query_look) + { + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + if (num_attr >= max_attr) + { + li->error = YAZ_PQF_ERROR_TOOMANY; + return 0; + } + if (!p_query_parse_attr(li, o, num_attr, attr_list, + attr_clist, attr_set)) + return 0; + num_attr++; + lex (li); + return + rpn_structure (li, o, proto, num_attr, max_attr, attr_list, + attr_clist, attr_set); + case 'y': + lex (li); + rpn_term_type (li, o); + return + rpn_structure (li, o, proto, num_attr, max_attr, attr_list, + attr_clist, attr_set); + case 0: /* operator/operand expected! */ + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + return sz; +} + +Z_RPNQuery *p_query_rpn_mk (ODR o, struct yaz_pqf_parser *li, oid_proto proto, + const char *qbuf) +{ + Z_RPNQuery *zq; + int attr_array[1024]; + char *attr_clist[512]; + oid_value attr_set[512]; + oid_value topSet = VAL_NONE; + + zq = (Z_RPNQuery *)odr_malloc (o, sizeof(*zq)); + lex (li); + if (li->query_look == 'r') + { + lex (li); + topSet = query_oid_getvalbyname (li); + if (topSet == VAL_NONE) + { + li->error = YAZ_PQF_ERROR_ATTSET; + return NULL; + } + + lex (li); + } + if (topSet == VAL_NONE) + topSet = p_query_dfset; + if (topSet == VAL_NONE) + topSet = VAL_BIB1; + + zq->attributeSetId = yaz_oidval_to_z3950oid(o, CLASS_ATTSET, topSet); + + if (!zq->attributeSetId) + { + li->error = YAZ_PQF_ERROR_ATTSET; + return 0; + } + + if (!(zq->RPNStructure = rpn_structure (li, o, proto, 0, 512, + attr_array, attr_clist, attr_set))) + return 0; + if (li->query_look) + { + li->error = YAZ_PQF_ERROR_EXTRA; + return 0; + } + return zq; +} + +Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf) +{ + struct yaz_pqf_parser li; + + li.error = 0; + li.left_sep = "{\""; + li.right_sep = "}\""; + li.escape_char = '@'; + li.term_type = Z_Term_general; + li.query_buf = li.query_ptr = qbuf; + li.lex_buf = 0; + return p_query_rpn_mk (o, &li, proto, qbuf); +} + + +Z_AttributesPlusTerm *p_query_scan_mk (struct yaz_pqf_parser *li, + ODR o, oid_proto proto, + Odr_oid **attributeSetP, + const char *qbuf) +{ + int attr_list[1024]; + char *attr_clist[512]; + oid_value attr_set[512]; + int num_attr = 0; + int max_attr = 512; + oid_value topSet = VAL_NONE; + Z_AttributesPlusTerm *apt; + + lex (li); + if (li->query_look == 'r') + { + lex (li); + topSet = query_oid_getvalbyname (li); + + lex (li); + } + if (topSet == VAL_NONE) + topSet = p_query_dfset; + if (topSet == VAL_NONE) + topSet = VAL_BIB1; + + *attributeSetP = yaz_oidval_to_z3950oid (o, CLASS_ATTSET, topSet); + + while (1) + { + if (li->query_look == 'l') + { + lex (li); + if (!li->query_look) + { + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + if (num_attr >= max_attr) + { + li->error = YAZ_PQF_ERROR_TOOMANY; + return 0; + } + if (!p_query_parse_attr(li, o, num_attr, attr_list, + attr_clist, attr_set)) + return 0; + num_attr++; + lex (li); + } + else if (li->query_look == 'y') + { + lex (li); + rpn_term_type (li, o); + } + else + break; + } + if (!li->query_look) + { + li->error = YAZ_PQF_ERROR_MISSING; + return 0; + } + apt = rpn_term (li, o, proto, num_attr, attr_list, attr_clist, attr_set); + + lex (li); + + if (li->query_look != 0) + { + li->error = YAZ_PQF_ERROR_EXTRA; + return 0; + } + return apt; +} + +Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto, + Odr_oid **attributeSetP, + const char *qbuf) +{ + struct yaz_pqf_parser li; + + li.error = 0; + li.left_sep = "{\""; + li.right_sep = "}\""; + li.escape_char = '@'; + li.term_type = Z_Term_general; + li.query_buf = li.query_ptr = qbuf; + li.lex_buf = 0; + + return p_query_scan_mk (&li, o, proto, attributeSetP, qbuf); +} + +int p_query_attset (const char *arg) +{ + p_query_dfset = oid_getvalbyname (arg); + return (p_query_dfset == VAL_NONE) ? -1 : 0; +} + +YAZ_PQF_Parser yaz_pqf_create (void) +{ + YAZ_PQF_Parser p = (YAZ_PQF_Parser) xmalloc (sizeof(*p)); + + p->error = 0; + p->left_sep = "{\""; + p->right_sep = "}\""; + p->escape_char = '@'; + p->term_type = Z_Term_general; + + return p; +} + +void yaz_pqf_destroy (YAZ_PQF_Parser p) +{ + xfree (p); +} + +Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, const char *qbuf) +{ + if (!p) + return 0; + p->query_buf = p->query_ptr = qbuf; + p->lex_buf = 0; + return p_query_rpn_mk (o, p, PROTO_Z3950, qbuf); +} + +Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o, + Odr_oid **attributeSetP, + const char *qbuf) +{ + if (!p) + return 0; + p->query_buf = p->query_ptr = qbuf; + p->lex_buf = 0; + return p_query_scan_mk (p, o, PROTO_Z3950, attributeSetP, qbuf); +} + +int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off) +{ + switch (p->error) + { + case YAZ_PQF_ERROR_NONE: + *msg = "no error"; break; + case YAZ_PQF_ERROR_EXTRA: + *msg = "extra token"; break; + case YAZ_PQF_ERROR_MISSING: + *msg = "missing token"; break; + case YAZ_PQF_ERROR_ATTSET: + *msg = "unknown attribute set"; break; + case YAZ_PQF_ERROR_TOOMANY: + *msg = "too many attributes"; break; + case YAZ_PQF_ERROR_BADATTR: + *msg = "bad attribute specification"; break; + case YAZ_PQF_ERROR_INTERNAL: + *msg = "internal error"; break; + case YAZ_PQF_ERROR_PROXIMITY: + *msg = "proximity error"; break; + case YAZ_PQF_ERROR_BAD_INTEGER: + *msg = "bad integer"; break; + default: + *msg = "unknown error"; break; + } + *off = p->query_ptr - p->query_buf; + return p->error; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/prt-ext.c b/dependencies/yaz-2.1.28/src/prt-ext.c new file mode 100644 index 0000000..580f6d9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/prt-ext.c @@ -0,0 +1,322 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: prt-ext.c,v 1.6 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file prt-ext.c + * \brief Implements handling of various Z39.50 Externals + */ + +#include + +#define PRT_EXT_DEBUG 0 + +#if PRT_EXT_DEBUG +#include +#endif + +/* + * The table below should be moved to the ODR structure itself and + * be an image of the association context: To help + * map indirect references when they show up. + */ +static Z_ext_typeent type_table[] = +{ + {VAL_SUTRS, Z_External_sutrs, (Odr_fun) z_SUTRS}, + {VAL_EXPLAIN, Z_External_explainRecord, (Odr_fun)z_ExplainRecord}, + {VAL_RESOURCE1, Z_External_resourceReport1, (Odr_fun)z_ResourceReport1}, + {VAL_RESOURCE2, Z_External_resourceReport2, (Odr_fun)z_ResourceReport2}, + {VAL_PROMPT1, Z_External_promptObject1, (Odr_fun)z_PromptObject1 }, + {VAL_GRS1, Z_External_grs1, (Odr_fun)z_GenericRecord}, + {VAL_EXTENDED, Z_External_extendedService, (Odr_fun)z_TaskPackage}, + {VAL_ITEMORDER, Z_External_itemOrder, (Odr_fun)z_IOItemOrder}, + {VAL_DIAG1, Z_External_diag1, (Odr_fun)z_DiagnosticFormat}, + {VAL_ESPEC1, Z_External_espec1, (Odr_fun)z_Espec1}, + {VAL_SUMMARY, Z_External_summary, (Odr_fun)z_BriefBib}, + {VAL_OPAC, Z_External_OPAC, (Odr_fun)z_OPACRecord}, + {VAL_SEARCHRES1, Z_External_searchResult1, (Odr_fun)z_SearchInfoReport}, + {VAL_DBUPDATE, Z_External_update, (Odr_fun)z_IUUpdate}, + {VAL_DBUPDATE0, Z_External_update0, (Odr_fun)z_IU0Update}, + {VAL_DBUPDATE1, Z_External_update0, (Odr_fun)z_IU0Update}, + {VAL_DATETIME, Z_External_dateTime, (Odr_fun)z_DateTime}, + {VAL_UNIVERSE_REPORT, Z_External_universeReport,(Odr_fun)z_UniverseReport}, + {VAL_ADMINSERVICE, Z_External_ESAdmin, (Odr_fun)z_Admin}, + {VAL_USERINFO1, Z_External_userInfo1, (Odr_fun) z_OtherInformation}, + {VAL_CHARNEG3, Z_External_charSetandLanguageNegotiation, (Odr_fun) + z_CharSetandLanguageNegotiation}, + {VAL_PROMPT1, Z_External_acfPrompt1, (Odr_fun) z_PromptObject1}, + {VAL_DES1, Z_External_acfDes1, (Odr_fun) z_DES_RN_Object}, + {VAL_KRB1, Z_External_acfKrb1, (Odr_fun) z_KRBObject}, + {VAL_MULTISRCH2, Z_External_multisrch2, (Odr_fun) z_MultipleSearchTerms_2}, + {VAL_CQL, Z_External_CQL, (Odr_fun) z_InternationalString}, + {VAL_NONE, 0, 0} +}; + +Z_ext_typeent *z_ext_getentbyref(oid_value val) +{ + Z_ext_typeent *i; + + for (i = type_table; i->dref != VAL_NONE; i++) + if (i->dref == val) + return i; + return 0; +} + +/** + This routine is the BER codec for the EXTERNAL type. + It handles information in single-ASN1-type and octet-aligned + for known structures. + +
+    [UNIVERSAL 8] IMPLICIT SEQUENCE {
+    direct-reference      OBJECT IDENTIFIER OPTIONAL,
+    indirect-reference    INTEGER OPTIONAL,
+    data-value-descriptor ObjectDescriptor OPTIONAL,
+    encoding              CHOICE {
+      single-ASN1-type   [0] ABSTRACT_SYNTAX.&Type,
+      octet-aligned      [1] IMPLICIT OCTET STRING,
+      arbitrary          [2] IMPLICIT BIT STRING 
+      }
+    }
+  
+ arbitrary BIT STRING not handled yet. +*/ +int z_External(ODR o, Z_External **p, int opt, const char *name) +{ + oident *oid; + Z_ext_typeent *type; + + static Odr_arm arm[] = + { + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_single, + (Odr_fun)odr_any, 0}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_External_octet, + (Odr_fun)odr_octetstring, 0}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_External_arbitrary, + (Odr_fun)odr_bitstring, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_sutrs, + (Odr_fun)z_SUTRS, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_explainRecord, + (Odr_fun)z_ExplainRecord, 0}, + + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport1, + (Odr_fun)z_ResourceReport1, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport2, + (Odr_fun)z_ResourceReport2, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_promptObject1, + (Odr_fun)z_PromptObject1, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1, + (Odr_fun)z_GenericRecord, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_extendedService, + (Odr_fun)z_TaskPackage, 0}, + + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder, + (Odr_fun)z_IOItemOrder, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_diag1, + (Odr_fun)z_DiagnosticFormat, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_espec1, + (Odr_fun)z_Espec1, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_summary, + (Odr_fun)z_BriefBib, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OPAC, + (Odr_fun)z_OPACRecord, 0}, + + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_searchResult1, + (Odr_fun)z_SearchInfoReport, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update, + (Odr_fun)z_IUUpdate, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_dateTime, + (Odr_fun)z_DateTime, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_universeReport, + (Odr_fun)z_UniverseReport, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_ESAdmin, + (Odr_fun)z_Admin, 0}, + + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update0, + (Odr_fun)z_IU0Update, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_userInfo1, + (Odr_fun)z_OtherInformation, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_charSetandLanguageNegotiation, + (Odr_fun)z_CharSetandLanguageNegotiation, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfPrompt1, + (Odr_fun)z_PromptObject1, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfDes1, + (Odr_fun)z_DES_RN_Object, 0}, + + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfKrb1, + (Odr_fun)z_KRBObject, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_multisrch2, + (Odr_fun)z_MultipleSearchTerms_2, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_CQL, + (Odr_fun)z_InternationalString, 0}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OCLCUserInfo, + (Odr_fun)z_OCLC_UserInformation, 0}, + {-1, -1, -1, -1, 0, 0} + }; + + odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL); + if (!odr_sequence_begin(o, p, sizeof(**p), name)) + return opt && odr_ok(o); + if (!(odr_oid(o, &(*p)->direct_reference, 1, 0) && + odr_integer(o, &(*p)->indirect_reference, 1, 0) && + odr_graphicstring(o, &(*p)->descriptor, 1, 0))) + return 0; +#if PRT_EXT_DEBUG + /* debugging purposes only */ + if (o->direction == ODR_DECODE) + { + yaz_log(YLOG_LOG, "z_external decode"); + if ((*p)->direct_reference) + { + yaz_log(YLOG_LOG, "direct reference"); + if ((oid = oid_getentbyoid((*p)->direct_reference))) + { + yaz_log(YLOG_LOG, "oid %s", oid->desc); + if ((type = z_ext_getentbyref(oid->value))) + yaz_log(YLOG_LOG, "type"); + } + } + } +#endif + /* Do we know this beast? */ + if (o->direction == ODR_DECODE && (*p)->direct_reference && + (oid = oid_getentbyoid((*p)->direct_reference)) && + (type = z_ext_getentbyref(oid->value))) + { + int zclass, tag, cons; + /* OID is present and we know it */ + + if (!odr_peektag(o, &zclass, &tag, &cons)) + return opt && odr_ok(o); +#if PRT_EXT_DEBUG + yaz_log(YLOG_LOG, "odr_peektag OK tag=%d cons=%d zclass=%d what=%d", + tag, cons, zclass, type->what); +#endif + if (zclass == ODR_CONTEXT && tag == 1 && cons == 0) + { + /* we have an OCTET STRING. decode BER contents from it */ + const unsigned char *o_bp; + unsigned char *o_buf; + int o_size; + char *voidp = 0; + Odr_oct *oct; + int r; + if (!odr_implicit_tag(o, odr_octetstring, &oct, + ODR_CONTEXT, 1, 0, "octetaligned")) + return 0; + + /* Save our decoding ODR members */ + o_bp = o->bp; + o_buf = o->buf; + o_size = o->size; + + /* Set up the OCTET STRING buffer */ + o->bp = o->buf = oct->buf; + o->size = oct->len; + + /* and decode that */ + r = (*type->fun)(o, &voidp, 0, 0); + (*p)->which = type->what; + (*p)->u.single_ASN1_type = (Odr_any*) voidp; + + /* Restore our decoding ODR member */ + o->bp = o_bp; + o->buf = o_buf; + o->size = o_size; + + return r && odr_sequence_end(o); + } + if (zclass == ODR_CONTEXT && tag == 0 && cons == 1) + { + /* It's single ASN.1 type, bias the CHOICE. */ + odr_choice_bias(o, type->what); + } + } + return + odr_choice(o, arm, &(*p)->u, &(*p)->which, name) && + odr_sequence_end(o); +} + +Z_External *z_ext_record(ODR o, int format, const char *buf, int len) +{ + Z_External *thisext; + + thisext = (Z_External *) odr_malloc(o, sizeof(*thisext)); + thisext->descriptor = 0; + thisext->indirect_reference = 0; + + thisext->direct_reference = + yaz_oidval_to_z3950oid (o, CLASS_RECSYN, format); + if (!thisext->direct_reference) + return 0; + + if (len < 0) /* Structured data */ + { + /* + * We cheat on the pointers here. Obviously, the record field + * of the backend-fetch structure should have been a union for + * correctness, but we're stuck with this for backwards + * compatibility. + */ + thisext->u.grs1 = (Z_GenericRecord*) buf; + + switch (format) + { + case VAL_SUTRS: + thisext->which = Z_External_sutrs; + break; + case VAL_GRS1: + thisext->which = Z_External_grs1; + break; + case VAL_EXPLAIN: + thisext->which = Z_External_explainRecord; + break; + case VAL_SUMMARY: + thisext->which = Z_External_summary; + break; + case VAL_OPAC: + thisext->which = Z_External_OPAC; + break; + case VAL_EXTENDED: + thisext->which = Z_External_extendedService; + break; + default: + return 0; + } + } + else if (format == VAL_SUTRS) /* SUTRS is a single-ASN.1-type */ + { + Odr_oct *sutrs = (Odr_oct *)odr_malloc(o, sizeof(*sutrs)); + + thisext->which = Z_External_sutrs; + thisext->u.sutrs = sutrs; + sutrs->buf = (unsigned char *)odr_malloc(o, len); + sutrs->len = sutrs->size = len; + memcpy(sutrs->buf, buf, len); + } + else + { + thisext->which = Z_External_octet; + if (!(thisext->u.octet_aligned = (Odr_oct *) + odr_malloc(o, sizeof(Odr_oct)))) + return 0; + if (!(thisext->u.octet_aligned->buf = (unsigned char *) + odr_malloc(o, len))) + return 0; + memcpy(thisext->u.octet_aligned->buf, buf, len); + thisext->u.octet_aligned->len = thisext->u.octet_aligned->size = len; + } + return thisext; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/querytowrbuf.c b/dependencies/yaz-2.1.28/src/querytowrbuf.c new file mode 100644 index 0000000..07cafed --- /dev/null +++ b/dependencies/yaz-2.1.28/src/querytowrbuf.c @@ -0,0 +1,251 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * All rights reserved. + * + * $Id: querytowrbuf.c,v 1.5 2006/07/07 12:09:05 marc Exp $ + */ + +/** \file querytowrbuf.c + \brief Query to WRBUF (to strings) + */ + +#include +#include + +#include +#include + +static void yaz_term_to_wrbuf(WRBUF b, const char *term, int len) +{ + int i; + for (i = 0; i < len; i++) + if (strchr(" \"{", term[i])) + break; + if (i == len && i) + wrbuf_printf(b, "%.*s ", len, term); + else + { + wrbuf_putc(b, '"'); + for (i = 0; iattributeSet) + { + oident *attrset; + attrset = oid_getentbyoid (element->attributeSet); + setname = attrset->desc; + sep = " "; + } + switch (element->which) + { + case Z_AttributeValue_numeric: + wrbuf_printf(b,"@attr %s%s%d=%d ", setname, sep, + *element->attributeType, *element->value.numeric); + break; + case Z_AttributeValue_complex: + wrbuf_printf(b,"@attr %s%s\"%d=", setname, sep, + *element->attributeType); + for (i = 0; ivalue.complex->num_list; i++) + { + if (i) + wrbuf_printf(b,","); + if (element->value.complex->list[i]->which == + Z_StringOrNumeric_string) + wrbuf_printf (b, "%s", + element->value.complex->list[i]->u.string); + else if (element->value.complex->list[i]->which == + Z_StringOrNumeric_numeric) + wrbuf_printf (b, "%d", + *element->value.complex->list[i]->u.numeric); + } + wrbuf_printf(b, "\" "); + break; + default: + wrbuf_printf (b, "@attr 1=unknown "); + } +} + +static const char *complex_op_name(const Z_Operator *op) +{ + switch (op->which) + { + case Z_Operator_and: + return "and"; + case Z_Operator_or: + return "or"; + case Z_Operator_and_not: + return "not"; + case Z_Operator_prox: + return "prox"; + default: + return "unknown complex operator"; + } +} + +static void yaz_apt_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt) +{ + int num_attributes = zapt->attributes->num_attributes; + int i; + for (i = 0; iattributes->attributes[i]); + + switch (zapt->term->which) + { + case Z_Term_general: + yaz_term_to_wrbuf(b, (const char *)zapt->term->u.general->buf, + zapt->term->u.general->len); + break; + case Z_Term_characterString: + wrbuf_printf(b, "@term string "); + yaz_term_to_wrbuf(b, zapt->term->u.characterString, + strlen(zapt->term->u.characterString)); + break; + case Z_Term_numeric: + wrbuf_printf(b, "@term numeric %d ", *zapt->term->u.numeric); + break; + case Z_Term_null: + wrbuf_printf(b, "@term null x"); + break; + default: + wrbuf_printf(b, "@term null unknown%d ", zapt->term->which); + } +} + +static void yaz_rpnstructure_to_wrbuf(WRBUF b, const Z_RPNStructure *zs) +{ + if (zs->which == Z_RPNStructure_complex) + { + Z_Operator *op = zs->u.complex->roperator; + wrbuf_printf(b, "@%s ", complex_op_name(op) ); + if (op->which== Z_Operator_prox) + { + if (!op->u.prox->exclusion) + wrbuf_putc(b, 'n'); + else if (*op->u.prox->exclusion) + wrbuf_putc(b, '1'); + else + wrbuf_putc(b, '0'); + + wrbuf_printf(b, " %d %d %d ", *op->u.prox->distance, + *op->u.prox->ordered, + *op->u.prox->relationType); + + switch(op->u.prox->which) + { + case Z_ProximityOperator_known: + wrbuf_putc(b, 'k'); + break; + case Z_ProximityOperator_private: + wrbuf_putc(b, 'p'); + break; + default: + wrbuf_printf(b, "%d", op->u.prox->which); + } + if (op->u.prox->u.known) + wrbuf_printf(b, " %d ", *op->u.prox->u.known); + else + wrbuf_printf(b, " 0 "); + } + yaz_rpnstructure_to_wrbuf(b,zs->u.complex->s1); + yaz_rpnstructure_to_wrbuf(b,zs->u.complex->s2); + } + else if (zs->which == Z_RPNStructure_simple) + { + if (zs->u.simple->which == Z_Operand_APT) + yaz_apt_to_wrbuf(b, zs->u.simple->u.attributesPlusTerm); + else if (zs->u.simple->which == Z_Operand_resultSetId) + { + wrbuf_printf(b, "@set "); + yaz_term_to_wrbuf(b, zs->u.simple->u.resultSetId, + strlen(zs->u.simple->u.resultSetId)); + } + else + wrbuf_printf (b, "(unknown simple structure)"); + } + else + wrbuf_puts(b, "(unknown structure)"); +} + +void yaz_rpnquery_to_wrbuf(WRBUF b, const Z_RPNQuery *rpn) +{ + oident *attrset; + enum oid_value ast; + + attrset = oid_getentbyoid (rpn->attributeSetId); + if (attrset) + { + ast = attrset->value; + wrbuf_printf(b, "@attrset %s ", attrset->desc); + } + yaz_rpnstructure_to_wrbuf(b, rpn->RPNStructure); + wrbuf_chop_right(b); +} + +void yaz_query_to_wrbuf(WRBUF b, const Z_Query *q) +{ + assert(q); + assert(b); + switch (q->which) + { + case Z_Query_type_1: + case Z_Query_type_101: + wrbuf_printf(b,"RPN "); + yaz_rpnquery_to_wrbuf(b, q->u.type_1); + break; + case Z_Query_type_2: + wrbuf_printf(b, "CCL %.*s", q->u.type_2->len, q->u.type_2->buf); + break; + case Z_Query_type_100: + wrbuf_printf(b, "Z39.58 %.*s", q->u.type_100->len, + q->u.type_100->buf); + break; + case Z_Query_type_104: + if (q->u.type_104->which == Z_External_CQL) + wrbuf_printf(b, "CQL %s", q->u.type_104->u.cql); + else + wrbuf_printf(b,"UNKNOWN type 104 query %d", q->u.type_104->which); + } +} + +void yaz_scan_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt, + oid_value ast) +{ + /* should print attr set here */ + wrbuf_printf(b, "RPN "); + yaz_apt_to_wrbuf(b, zapt); +} + +/* obsolete */ +void wrbuf_scan_term(WRBUF b, const Z_AttributesPlusTerm *zapt, oid_value ast) +{ + yaz_apt_to_wrbuf(b, zapt); +} + +/* obsolete */ +void wrbuf_put_zquery(WRBUF b, const Z_Query *q) +{ + yaz_query_to_wrbuf(b, q); +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/readconf.c b/dependencies/yaz-2.1.28/src/readconf.c new file mode 100644 index 0000000..c786986 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/readconf.c @@ -0,0 +1,99 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * All rights reserved. + * + * $Id: readconf.c,v 1.6 2005/06/25 15:46:04 adam Exp $ + */ + +/** + * \file readconf.c + * \brief Implements config file reading + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include + +#define l_isspace(c) ((c) == '\t' || (c) == ' ' || (c) == '\n' || (c) == '\r') + +int readconf_line(FILE *f, int *lineno, char *line, int len, + char *argv[], int num) +{ + char *p; + int argc; + + while ((p = fgets(line, len, f))) + { + (*lineno)++; + while (*p && l_isspace(*p)) + p++; + if (*p && *p != '#') + break; + } + if (!p) + return 0; + + for (argc = 0; *p ; argc++) + { + if (*p == '#') /* trailing comment */ + break; + argv[argc] = p; + while (*p && !l_isspace(*p)) + p++; + if (*p) + { + *(p++) = '\0'; + while (*p && l_isspace(*p)) + p++; + } + } + return argc; +} + +/* + * Read lines of a configuration file. + */ +int readconf(char *name, void *rprivate, + int (*fun)(char *name, void *rprivate, int argc, char *argv[])) +{ + FILE *f; + char line[512], *m_argv[50]; + int m_argc; + int lineno = 0; + + if (!(f = fopen(name, "r"))) + { + yaz_log(YLOG_WARN|YLOG_ERRNO, "readconf: %s", name); + return -1; + } + for (;;) + { + int res; + + if (!(m_argc = readconf_line(f, &lineno, line, 512, m_argv, 50))) + { + fclose(f); + return 0; + } + + if ((res = (*fun)(name, rprivate, m_argc, m_argv))) + { + fclose(f); + return res; + } + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/record_conv.c b/dependencies/yaz-2.1.28/src/record_conv.c new file mode 100644 index 0000000..2febd47 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/record_conv.c @@ -0,0 +1,501 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: record_conv.c,v 1.11 2006/07/06 10:17:53 adam Exp $ + */ +/** + * \file record_conv.c + * \brief Record Conversions utility + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#include +#include +#if YAZ_HAVE_XSLT +#include +#include +#endif +#if YAZ_HAVE_EXSLT +#include +#endif + +/** \brief The internal structure for yaz_record_conv_t */ +struct yaz_record_conv_struct { + /** \brief memory for configuration */ + NMEM nmem; + + /** \brief conversion rules (allocated using NMEM) */ + struct yaz_record_conv_rule *rules; + + /** \brief pointer to last conversion rule pointer in chain */ + struct yaz_record_conv_rule **rules_p; + + /** \brief string buffer for error messages */ + WRBUF wr_error; + + /** \brief path for opening files */ + char *path; +}; + +/** \brief tranformation types (rule types) */ +enum YAZ_RECORD_CONV_RULE +{ + YAZ_RECORD_CONV_RULE_XSLT, + YAZ_RECORD_CONV_RULE_MARC +}; + + +/** \brief tranformation info (rule info) */ +struct yaz_record_conv_rule { + enum YAZ_RECORD_CONV_RULE which; + union { +#if YAZ_HAVE_XSLT + struct { + xsltStylesheetPtr xsp; + } xslt; +#endif + struct { + yaz_iconv_t iconv_t; + int input_format; + int output_format; + } marc; + } u; + struct yaz_record_conv_rule *next; +}; + +/** \brief reset rules+configuration */ +static void yaz_record_conv_reset(yaz_record_conv_t p) +{ + struct yaz_record_conv_rule *r; + for (r = p->rules; r; r = r->next) + { + if (r->which == YAZ_RECORD_CONV_RULE_MARC) + { + if (r->u.marc.iconv_t) + yaz_iconv_close(r->u.marc.iconv_t); + } +#if YAZ_HAVE_XSLT + else if (r->which == YAZ_RECORD_CONV_RULE_XSLT) + { + xsltFreeStylesheet(r->u.xslt.xsp); + } +#endif + } + wrbuf_rewind(p->wr_error); + nmem_reset(p->nmem); + + p->rules = 0; + + p->rules_p = &p->rules; +} + +yaz_record_conv_t yaz_record_conv_create() +{ + yaz_record_conv_t p = xmalloc(sizeof(*p)); + p->nmem = nmem_create(); + p->wr_error = wrbuf_alloc(); + p->rules = 0; + p->path = 0; + +#if YAZ_HAVE_EXSLT + exsltRegisterAll(); +#endif + yaz_record_conv_reset(p); + return p; +} + +void yaz_record_conv_destroy(yaz_record_conv_t p) +{ + if (p) + { + yaz_record_conv_reset(p); + nmem_destroy(p->nmem); + wrbuf_free(p->wr_error, 1); + xfree(p->path); + xfree(p); + } +} + +/** \brief adds a rule */ +static struct yaz_record_conv_rule *add_rule(yaz_record_conv_t p, + enum YAZ_RECORD_CONV_RULE type) +{ + struct yaz_record_conv_rule *r = nmem_malloc(p->nmem, sizeof(*r)); + r->which = type; + r->next = 0; + *p->rules_p = r; + p->rules_p = &r->next; + return r; +} + +/** \brief parse 'xslt' conversion node */ +static int conv_xslt(yaz_record_conv_t p, const xmlNode *ptr) +{ +#if YAZ_HAVE_XSLT + struct _xmlAttr *attr; + const char *stylesheet = 0; + + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "stylesheet") && + attr->children && attr->children->type == XML_TEXT_NODE) + stylesheet = (const char *) attr->children->content; + else + { + wrbuf_printf(p->wr_error, "Bad attribute '%s'" + "Expected stylesheet.", attr->name); + return -1; + } + } + if (!stylesheet) + { + wrbuf_printf(p->wr_error, "Missing attribute 'stylesheet'"); + return -1; + } + else + { + char fullpath[1024]; + xsltStylesheetPtr xsp; + if (!yaz_filepath_resolve(stylesheet, p->path, 0, fullpath)) + { + wrbuf_printf(p->wr_error, "could not locate '%s'. Path=%s", + stylesheet, p->path); + return -1; + } + xsp = xsltParseStylesheetFile((xmlChar*) fullpath); + if (!xsp) + { + wrbuf_printf(p->wr_error, "xsltParseStylesheetFile failed'"); + return -1; + } + else + { + struct yaz_record_conv_rule *r = + add_rule(p, YAZ_RECORD_CONV_RULE_XSLT); + r->u.xslt.xsp = xsp; + } + } + return 0; +#else + wrbuf_printf(p->wr_error, "xslt unsupported." + " YAZ compiled without XSLT support"); + return -1; +#endif +} + +/** \brief parse 'marc' conversion node */ +static int conv_marc(yaz_record_conv_t p, const xmlNode *ptr) +{ + struct _xmlAttr *attr; + const char *input_charset = 0; + const char *output_charset = 0; + const char *input_format = 0; + const char *output_format = 0; + int input_format_mode = 0; + int output_format_mode = 0; + struct yaz_record_conv_rule *r; + yaz_iconv_t cd = 0; + + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "inputcharset") && + attr->children && attr->children->type == XML_TEXT_NODE) + input_charset = (const char *) attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "outputcharset") && + attr->children && attr->children->type == XML_TEXT_NODE) + output_charset = (const char *) attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "inputformat") && + attr->children && attr->children->type == XML_TEXT_NODE) + input_format = (const char *) attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "outputformat") && + attr->children && attr->children->type == XML_TEXT_NODE) + output_format = (const char *) attr->children->content; + else + { + wrbuf_printf(p->wr_error, "Bad attribute '%s'", attr->name); + return -1; + } + } + if (!input_format) + { + wrbuf_printf(p->wr_error, "Attribute 'inputformat' required"); + return -1; + } + else if (!strcmp(input_format, "marc")) + { + input_format_mode = YAZ_MARC_ISO2709; + } + else if (!strcmp(input_format, "xml")) + { + input_format_mode = YAZ_MARC_MARCXML; + /** Libxml2 generates UTF-8 encoding by default . + So we convert from UTF-8 to outputcharset (if defined) + */ + if (!input_charset && output_charset) + input_charset = "utf-8"; + } + else + { + wrbuf_printf(p->wr_error, "Bad inputformat: '%s'", input_format); + return -1; + } + + if (!output_format) + { + wrbuf_printf(p->wr_error, "Attribute 'outputformat' required"); + return -1; + } + else if (!strcmp(output_format, "line")) + { + output_format_mode = YAZ_MARC_LINE; + } + else if (!strcmp(output_format, "marcxml")) + { + output_format_mode = YAZ_MARC_MARCXML; + if (input_charset && !output_charset) + output_charset = "utf-8"; + } + else if (!strcmp(output_format, "marc")) + { + output_format_mode = YAZ_MARC_ISO2709; + } + else if (!strcmp(output_format, "marcxchange")) + { + output_format_mode = YAZ_MARC_XCHANGE; + if (input_charset && !output_charset) + output_charset = "utf-8"; + } + else + { + wrbuf_printf(p->wr_error, "Bad outputformat: '%s'", input_format); + return -1; + } + if (input_charset && output_charset) + { + cd = yaz_iconv_open(output_charset, input_charset); + if (!cd) + { + wrbuf_printf(p->wr_error, "Unsupported character set mamping" + " inputcharset=%s outputcharset=%s", + input_charset, output_charset); + return -1; + } + } + else if (input_charset) + { + wrbuf_printf(p->wr_error, "Attribute 'outputcharset' missing"); + return -1; + } + else if (output_charset) + { + wrbuf_printf(p->wr_error, "Attribute 'inputcharset' missing"); + return -1; + } + r = add_rule(p, YAZ_RECORD_CONV_RULE_MARC); + r->u.marc.iconv_t = cd; + + r->u.marc.input_format = input_format_mode; + r->u.marc.output_format = output_format_mode; + return 0; +} + +int yaz_record_conv_configure(yaz_record_conv_t p, const void *ptr_v) +{ + const xmlNode *ptr = ptr_v; + + yaz_record_conv_reset(p); + + if (ptr && ptr->type == XML_ELEMENT_NODE && + !strcmp((const char *) ptr->name, "convert")) + { + for (ptr = ptr->children; ptr; ptr = ptr->next) + { + if (ptr->type != XML_ELEMENT_NODE) + continue; + if (!strcmp((const char *) ptr->name, "xslt")) + { + if (conv_xslt(p, ptr)) + return -1; + } + else if (!strcmp((const char *) ptr->name, "exslt")) + { +#if YAZ_HAVE_EXSLT + if (conv_xslt(p, ptr)) + return -1; +#else + wrbuf_printf(p->wr_error, "exslt unsupported." + " YAZ compiled without EXSLT support"); + return -1; +#endif + } + else if (!strcmp((const char *) ptr->name, "marc")) + { + if (conv_marc(p, ptr)) + return -1; + } + else + { + wrbuf_printf(p->wr_error, "Bad element '%s'." + "Expected marc, xslt, ..", ptr->name); + return -1; + } + } + } + else + { + wrbuf_printf(p->wr_error, "Missing 'convert' element"); + return -1; + } + return 0; +} + +int yaz_record_conv_record(yaz_record_conv_t p, + const char *input_record_buf, + size_t input_record_len, + WRBUF output_record) +{ + int ret = 0; + WRBUF record = output_record; /* pointer transfer */ + struct yaz_record_conv_rule *r = p->rules; + wrbuf_rewind(p->wr_error); + + wrbuf_write(record, input_record_buf, input_record_len); + for (; ret == 0 && r; r = r->next) + { + if (r->which == YAZ_RECORD_CONV_RULE_MARC) + { + yaz_marc_t mt = yaz_marc_create(); + + yaz_marc_xml(mt, r->u.marc.output_format); + + if (r->u.marc.iconv_t) + yaz_marc_iconv(mt, r->u.marc.iconv_t); + if (r->u.marc.input_format == YAZ_MARC_ISO2709) + { + int sz = yaz_marc_read_iso2709(mt, wrbuf_buf(record), + wrbuf_len(record)); + if (sz > 0) + ret = 0; + else + ret = -1; + } + else if (r->u.marc.input_format == YAZ_MARC_MARCXML) + { + xmlDocPtr doc = xmlParseMemory(wrbuf_buf(record), + wrbuf_len(record)); + if (!doc) + { + wrbuf_printf(p->wr_error, "xmlParseMemory failed"); + ret = -1; + } + else + { + ret = yaz_marc_read_xml(mt, xmlDocGetRootElement(doc)); + if (ret) + wrbuf_printf(p->wr_error, "yaz_marc_read_xml failed"); + } + xmlFreeDoc(doc); + } + else + { + wrbuf_printf(p->wr_error, "unsupported input format"); + ret = -1; + } + if (ret == 0) + { + wrbuf_rewind(record); + ret = yaz_marc_write_mode(mt, record); + if (ret) + wrbuf_printf(p->wr_error, "yaz_marc_write_mode failed"); + } + yaz_marc_destroy(mt); + } +#if YAZ_HAVE_XSLT + else if (r->which == YAZ_RECORD_CONV_RULE_XSLT) + { + xmlDocPtr doc = xmlParseMemory(wrbuf_buf(record), + wrbuf_len(record)); + if (!doc) + { + wrbuf_printf(p->wr_error, "xmlParseMemory failed"); + ret = -1; + } + else + { + xmlDocPtr res = xsltApplyStylesheet(r->u.xslt.xsp, doc, 0); + if (res) + { + xmlChar *out_buf = 0; + int out_len; + +#if YAZ_HAVE_XSLTSAVERESULTTOSTRING + xsltSaveResultToString(&out_buf, &out_len, res, + r->u.xslt.xsp); +#else + xmlDocDumpFormatMemory (res, &out_buf, &out_len, 1); +#endif + if (!out_buf) + { + wrbuf_printf(p->wr_error, + "xsltSaveResultToString failed"); + ret = -1; + } + else + { + wrbuf_rewind(record); + wrbuf_write(record, (const char *) out_buf, out_len); + + xmlFree(out_buf); + } + xmlFreeDoc(res); + } + else + { + wrbuf_printf(p->wr_error, "xsltApplyStylesheet failed"); + ret = -1; + } + xmlFreeDoc(doc); + } + } +#endif + } + return ret; +} + +const char *yaz_record_conv_get_error(yaz_record_conv_t p) +{ + return wrbuf_buf(p->wr_error); +} + +void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path) +{ + xfree(p->path); + p->path = 0; + if (path) + p->path = xstrdup(path); +} +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/requestq.c b/dependencies/yaz-2.1.28/src/requestq.c new file mode 100644 index 0000000..b3abdcc --- /dev/null +++ b/dependencies/yaz-2.1.28/src/requestq.c @@ -0,0 +1,106 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: requestq.c,v 1.4 2005/06/25 15:46:04 adam Exp $ + */ +/** + * \file requestq.c + * \brief Implements Simple queue management for GFS. + * + * We also use the request-freelist to store encoding buffers, rather than + * freeing and xmalloc'ing them on each cycle. + */ + +#include + +#include +#include "session.h" + +void request_enq(request_q *q, request *r) +{ + if (q->tail) + q->tail->next = r; + else + q->head = r; + q->tail = r; + q->num++; +} + +request *request_head(request_q *q) +{ + return q->head; +} + +request *request_deq(request_q *q) +{ + request *r = q->head; + + if (!r) + return 0; + q->head = q->head->next; + if (!q->head) + q->tail = 0; + q->num--; + return r; +} + +void request_initq(request_q *q) +{ + q->head = q->tail = q->list = 0; + q->num = 0; +} + +void request_delq(request_q *q) +{ + request *r1, *r = q->list; + while (r) + { + xfree (r->response); + r1 = r; + r = r->next; + xfree (r1); + } +} + +request *request_get(request_q *q) +{ + request *r = q->list; + + if (r) + q->list = r->next; + else + { + if (!(r = (request *)xmalloc(sizeof(*r)))) + abort(); + r->response = 0; + r->size_response = 0; + } + r->q = q; + r->len_refid = 0; + r->refid = 0; + r->gdu_request = 0; + r->apdu_request = 0; + r->request_mem = 0; + r->len_response = 0; + r->clientData = 0; + r->state = REQUEST_IDLE; + r->next = 0; + return r; +} + +void request_release(request *r) +{ + request_q *q = r->q; + r->next = q->list; + q->list = r; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/retrieval.c b/dependencies/yaz-2.1.28/src/retrieval.c new file mode 100644 index 0000000..2bdb47a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/retrieval.c @@ -0,0 +1,339 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: retrieval.c,v 1.11 2006/07/06 10:17:53 adam Exp $ + */ +/** + * \file retrieval.c + * \brief Retrieval utility + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#include +#include + +/** \brief The internal structure for yaz_retrieval_t */ +struct yaz_retrieval_struct { + /** \brief ODR memory for configuration */ + ODR odr; + + /** \brief odr's NMEM memory (odr->mem) */ + NMEM nmem; + + /** \brief string buffer for error messages */ + WRBUF wr_error; + + /** \brief path for opening files */ + char *path; + + /** \brief retrieval list */ + struct yaz_retrieval_elem *list; + + /** \brief last pointer in retrieval list */ + struct yaz_retrieval_elem **list_p; +}; + +/** \brief information per 'retrieval' construct */ +struct yaz_retrieval_elem { + /** \brief schema identifier */ + const char *identifier; + /** \brief schema name , short-hand such sa "dc" */ + const char *name; + /** \brief record syntax */ + int *syntax; + /** \brief backend name */ + const char *backend_name; + /** \brief backend syntax */ + int *backend_syntax; + + /** \brief record conversion */ + yaz_record_conv_t record_conv; + + /** \brief next element in list */ + struct yaz_retrieval_elem *next; +}; + +static void yaz_retrieval_reset(yaz_retrieval_t p); + +yaz_retrieval_t yaz_retrieval_create() +{ + yaz_retrieval_t p = xmalloc(sizeof(*p)); + p->odr = odr_createmem(ODR_ENCODE); + p->nmem = p->odr->mem; + p->wr_error = wrbuf_alloc(); + p->list = 0; + p->path = 0; + yaz_retrieval_reset(p); + return p; +} + +void yaz_retrieval_destroy(yaz_retrieval_t p) +{ + if (p) + { + yaz_retrieval_reset(p); + odr_destroy(p->odr); + wrbuf_free(p->wr_error, 1); + xfree(p->path); + xfree(p); + } +} + +void yaz_retrieval_reset(yaz_retrieval_t p) +{ + struct yaz_retrieval_elem *el = p->list; + for(; el; el = el->next) + yaz_record_conv_destroy(el->record_conv); + + wrbuf_rewind(p->wr_error); + odr_reset(p->odr); + + p->list = 0; + p->list_p = &p->list; +} + +/** \brief parse retrieval XML config */ +static int conf_retrieval(yaz_retrieval_t p, const xmlNode *ptr) +{ + + struct _xmlAttr *attr; + struct yaz_retrieval_elem *el = nmem_malloc(p->nmem, sizeof(*el)); + + el->syntax = 0; + el->identifier = 0; + el->name = 0; + el->backend_name = 0; + el->backend_syntax = 0; + + el->next = 0; + + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "syntax") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + el->syntax = yaz_str_to_z3950oid( + p->odr, CLASS_RECSYN, + (const char *) attr->children->content); + if (!el->syntax) + { + wrbuf_printf(p->wr_error, "Bad syntax '%s'", + (const char *) attr->children->content); + return -1; + } + } + else if (!xmlStrcmp(attr->name, BAD_CAST "identifier") && + attr->children && attr->children->type == XML_TEXT_NODE) + el->identifier = + nmem_strdup(p->nmem, (const char *) attr->children->content); + else if (!xmlStrcmp(attr->name, BAD_CAST "schema") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + wrbuf_printf(p->wr_error, "Bad attribute 'schema'. " + "Use 'name' instead"); + return -1; + } + else if (!xmlStrcmp(attr->name, BAD_CAST "name") && + attr->children && attr->children->type == XML_TEXT_NODE) + el->name = + nmem_strdup(p->nmem, (const char *) attr->children->content); + else if (!xmlStrcmp(attr->name, BAD_CAST "backendschema") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + wrbuf_printf(p->wr_error, "Bad attribute 'backendschema'. " + "Use 'backendname' instead"); + return -1; + } + else if (!xmlStrcmp(attr->name, BAD_CAST "backendname") && + attr->children && attr->children->type == XML_TEXT_NODE) + el->backend_name = + nmem_strdup(p->nmem, (const char *) attr->children->content); + else if (!xmlStrcmp(attr->name, BAD_CAST "backendsyntax") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + el->backend_syntax = yaz_str_to_z3950oid( + p->odr, CLASS_RECSYN, + (const char *) attr->children->content); + if (!el->backend_syntax) + { + wrbuf_printf(p->wr_error, "Bad backendsyntax '%s'", + (const char *) attr->children->content); + return -1; + } + } + else + { + wrbuf_printf(p->wr_error, "Bad attribute '%s'.", attr->name); + return -1; + } + } + if (!el->syntax) + { + wrbuf_printf(p->wr_error, "Missing 'syntax' attribute"); + return -1; + } + + el->record_conv = 0; /* OK to have no 'convert' sub content */ + for (ptr = ptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE) + { + el->record_conv = yaz_record_conv_create(); + + yaz_record_conv_set_path(el->record_conv, p->path); + + if (yaz_record_conv_configure(el->record_conv, ptr)) + { + wrbuf_printf(p->wr_error, "%s", + yaz_record_conv_get_error(el->record_conv)); + yaz_record_conv_destroy(el->record_conv); + return -1; + } + } + } + + *p->list_p = el; + p->list_p = &el->next; + return 0; +} + +int yaz_retrieval_configure(yaz_retrieval_t p, const void *ptr_v) +{ + const xmlNode *ptr = ptr_v; + + yaz_retrieval_reset(p); + + if (ptr && ptr->type == XML_ELEMENT_NODE && + !strcmp((const char *) ptr->name, "retrievalinfo")) + { + for (ptr = ptr->children; ptr; ptr = ptr->next) + { + if (ptr->type != XML_ELEMENT_NODE) + continue; + if (!strcmp((const char *) ptr->name, "retrieval")) + { + if (conf_retrieval(p, ptr)) + return -1; + } + else + { + wrbuf_printf(p->wr_error, "Bad element '%s'." + " Expected 'retrieval'", ptr->name); + return -1; + } + } + } + else + { + wrbuf_printf(p->wr_error, "Missing 'retrievalinfo' element"); + return -1; + } + return 0; +} + +int yaz_retrieval_request(yaz_retrieval_t p, + const char *schema, int *syntax, + const char **match_schema, int **match_syntax, + yaz_record_conv_t *rc, + const char **backend_schema, + int **backend_syntax) +{ + struct yaz_retrieval_elem *el = p->list; + int syntax_matches = 0; + int schema_matches = 0; + + wrbuf_rewind(p->wr_error); + if (!el) + return 0; + for(; el; el = el->next) + { + int schema_ok = 0; + int syntax_ok = 0; + + if (!schema) + schema_ok = 1; + else + { + if (el->name && !strcmp(schema, el->name)) + schema_ok = 1; + if (el->identifier && !strcmp(schema, el->identifier)) + schema_ok = 1; + if (!el->name && !el->identifier) + schema_ok = 1; + } + + if (syntax && el->syntax && !oid_oidcmp(syntax, el->syntax)) + syntax_ok = 1; + if (!syntax) + syntax_ok = 1; + + if (syntax_ok) + syntax_matches++; + if (schema_ok) + schema_matches++; + if (syntax_ok && schema_ok) + { + *match_syntax = el->syntax; + if (el->identifier) + *match_schema = el->identifier; + else + *match_schema = 0; + if (backend_schema) + *backend_schema = el->backend_name; + if (backend_syntax) + *backend_syntax = el->backend_syntax; + if (rc) + *rc = el->record_conv; + return 0; + } + } + if (!syntax_matches && syntax) + { + char buf[OID_STR_MAX]; + wrbuf_printf(p->wr_error, "%s", oid_to_dotstring(syntax, buf)); + return 2; + } + if (schema) + wrbuf_printf(p->wr_error, "%s", schema); + if (!schema_matches) + return 1; + return 3; +} + +const char *yaz_retrieval_get_error(yaz_retrieval_t p) +{ + return wrbuf_buf(p->wr_error); +} + +void yaz_retrieval_set_path(yaz_retrieval_t p, const char *path) +{ + xfree(p->path); + p->path = 0; + if (path) + p->path = xstrdup(path); +} + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/service.c b/dependencies/yaz-2.1.28/src/service.c new file mode 100644 index 0000000..6b3d242 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/service.c @@ -0,0 +1,474 @@ +/* + * NT Service interface Utility. + * Based on code written by + * Chas Woodfield, Fretwell Downing Informatics. + * $Id: service.c,v 1.4 2006/05/07 20:32:56 adam Exp $ + */ + +/** + * \file service.c + * \brief Implements NT service handling for GFS. + */ + +#ifdef WIN32 + +#include +#include +#include +#include + +#include "service.h" + +static AppService *pService = NULL; +static BOOL bRunAsService = TRUE; +static void *pAppHandle = NULL; + +/* Private functions to this module */ +void Service_Create(LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies, int argc, char **argv); +void Service_Delete(); +void Service_Initialize(); +BOOL NotifyServiceController(); +BOOL UpdateServiceStatus(DWORD Status); +void FailServiceStart(DWORD Win32Code, DWORD PrivateCode); +void CmdInstallService(int argc, char *argv[], BOOL bAutoStart); +void CmdRemoveService(); +LPTSTR GetLastErrorText(LPTSTR lpszBuf, DWORD dwSize); +BOOL CheckServiceArguments(int argc, char *argv[]); + +/* Callback functions for thee service manager */ +void WINAPI ServiceMain(DWORD argc, LPTSTR argv[]); +void WINAPI ServiceControlHandler(DWORD fdwControl); + +/* Function to handle Ctrl + C etc... */ +BOOL EventHandlerRoutine(DWORD dwCtrlType); + +void Service_Create(LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies, int argc, char **argv) +{ + pService = malloc(sizeof(AppService)); + pService->pAppName = pAppName; + pService->pServiceName = pServiceName; + pService->pServiceDisplayName = pServiceDisplayName; + pService->pDependancies = pDependancies; + pService->hService = 0; + pService->ServiceTable[0].lpServiceName = pServiceName; + pService->ServiceTable[0].lpServiceProc = ServiceMain; + pService->ServiceTable[1].lpServiceName = NULL; + pService->ServiceTable[1].lpServiceProc = NULL; + pService->argc = argc; + pService->argv = argv; +} + +void Service_Delete() +{ + if (pService != NULL) + { + /* Mark the service as stopping */ + UpdateServiceStatus(SERVICE_STOP_PENDING); + + /* Stop the service */ + StopAppService(pAppHandle); + + /* Service has now stopped */ + UpdateServiceStatus(SERVICE_STOPPED); + + /* Free the memory */ + free(pService); + pService = NULL; + } +} + +void Service_Initialize() +{ + if (pService != NULL) + { + /* Register ourselves with the control dispatcher */ + StartServiceCtrlDispatcher(pService->ServiceTable); + } +} + +void WINAPI ServiceMain(DWORD argc, LPTSTR argv[]) +{ + if (pService != NULL) + { + if (NotifyServiceController()) + { + /* Set the status to pending */ + UpdateServiceStatus(SERVICE_START_PENDING); + + /* Lets attempt to start the service */ + if (StartAppService(pAppHandle, pService->argc, pService->argv)) + { + /* Service is now up and running */ + UpdateServiceStatus(SERVICE_RUNNING); + + /* Lets wait for our clients */ + RunAppService(pAppHandle); + } + else + { + FailServiceStart(GetLastError(), 0); + Service_Delete(); + } + } + } +} + +BOOL NotifyServiceController() +{ + if (pService == NULL) + { + return(FALSE); + } + else + { + if (bRunAsService) + { + pService->ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; + pService->ServiceStatus.dwCurrentState = SERVICE_STOPPED; + pService->ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP; + pService->ServiceStatus.dwWin32ExitCode = 0; + pService->ServiceStatus.dwServiceSpecificExitCode = 0; + pService->ServiceStatus.dwCheckPoint = 0; + pService->ServiceStatus.dwWaitHint = 0; + pService->hService = RegisterServiceCtrlHandler(pService->pServiceName, ServiceControlHandler); + + if (pService->hService) + UpdateServiceStatus(SERVICE_START_PENDING); + else + return(FALSE); + } + return(TRUE); + } +} + +void WINAPI ServiceControlHandler(DWORD fdwControl) +{ + if (pService != NULL) + { + switch (fdwControl) + { + case SERVICE_CONTROL_STOP: + /* Update the service status to be pending */ + Service_Delete(); + break; + + case SERVICE_CONTROL_INTERROGATE: + UpdateServiceStatus(pService->ServiceStatus.dwCurrentState); + break; + + default: + break; + } + } +} + +BOOL UpdateServiceStatus(DWORD Status) +{ + if (pService != NULL) + { + if (pService->hService) + { + pService->ServiceStatus.dwCurrentState = Status; + if ((Status == SERVICE_START_PENDING) || (Status == SERVICE_STOP_PENDING)) + { + pService->ServiceStatus.dwCheckPoint ++; + pService->ServiceStatus.dwWaitHint = 5000; /* 5 sec.*/ + } + else + { + pService->ServiceStatus.dwCheckPoint = 0; + pService->ServiceStatus.dwWaitHint = 0; + } + + return(SetServiceStatus(pService->hService, &pService->ServiceStatus)); + } + } + + return(FALSE); +} + +void FailServiceStart(DWORD Win32Code, DWORD PrivateCode) +{ + if (pService != NULL) + { + pService->ServiceStatus.dwWin32ExitCode = Win32Code; + pService->ServiceStatus.dwServiceSpecificExitCode = PrivateCode; + UpdateServiceStatus(SERVICE_STOPPED); + } +} + +void CmdInstallService(int argc, char *argv[], BOOL bAutoStart) +{ + if (pService != NULL) + { + SC_HANDLE schService; + SC_HANDLE schSCManager; + + TCHAR szPath[2048]; + + if (GetModuleFileName(NULL, szPath, 512) == 0) + { + _tprintf(TEXT("Unable to install %s - %s\n"), TEXT(pService->pServiceDisplayName), GetLastErrorText(pService->szErr, 256)); + } + else + { + int i; + char cwdstr[_MAX_PATH]; + + if (!_getcwd(cwdstr, sizeof(cwdstr))) + strcpy (cwdstr, "."); + + strcat (szPath, TEXT(" -runservice \"")); + strcat (szPath, cwdstr); + strcat (szPath, "\""); + + for (i = 1; i < argc; i++) + { + /* We will add the given command line arguments to the command */ + /* We are not interested in the install and remove options */ + if ((strcmp("-install", argv[i]) != 0) && + (strcmp("-installa", argv[i]) != 0) && + (strcmp("-remove", argv[i]) != 0)) + { + strcat(szPath, TEXT(" ")); + strcat(szPath, argv[i]); + } + } + + schSCManager = OpenSCManager(NULL, /* machine (NULL == local) */ + NULL, /* database (NULL == default) */ + SC_MANAGER_ALL_ACCESS); /* access required */ + if (schSCManager) + { + schService = CreateService(schSCManager, /* SCManager database */ + TEXT(pService->pServiceName), /* name of service */ + TEXT(pService->pServiceDisplayName), /* name to display */ + SERVICE_ALL_ACCESS, /* desired access */ + SERVICE_WIN32_OWN_PROCESS, /* service type */ + bAutoStart ? SERVICE_AUTO_START : + SERVICE_DEMAND_START, /* start type */ + SERVICE_ERROR_NORMAL, /* error control type */ + szPath, /* service's binary */ + NULL, /* no load ordering group */ + NULL, /* no tag identifier */ + TEXT(pService->pDependancies), /* dependencies */ + NULL, /* LocalSystem account */ + NULL); /* no password */ + + if (schService) + { + _tprintf(TEXT("%s installed.\n"), TEXT(pService->pServiceDisplayName)); + CloseServiceHandle(schService); + } + else + { + _tprintf(TEXT("CreateService failed - %s\n"), GetLastErrorText(pService->szErr, 256)); + } + + CloseServiceHandle(schSCManager); + } + else + _tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(pService->szErr,256)); + } + } +} + +void CmdRemoveService() +{ + if (pService != NULL) + { + SC_HANDLE schService; + SC_HANDLE schSCManager; + + schSCManager = OpenSCManager(NULL, /* machine (NULL == local) */ + NULL, /* database (NULL == default) */ + SC_MANAGER_ALL_ACCESS); /* access required */ + if (schSCManager) + { + schService = OpenService(schSCManager, TEXT(pService->pServiceName), SERVICE_ALL_ACCESS); + + if (schService) + { + /* try to stop the service */ + if (ControlService(schService, SERVICE_CONTROL_STOP, &pService->ServiceStatus)) + { + _tprintf(TEXT("Stopping %s."), TEXT(pService->pServiceDisplayName)); + Sleep(1000); + + while (QueryServiceStatus(schService, &pService->ServiceStatus)) + { + if (pService->ServiceStatus.dwCurrentState == SERVICE_STOP_PENDING) + { + _tprintf(TEXT(".")); + Sleep( 1000 ); + } + else + break; + } + + if (pService->ServiceStatus.dwCurrentState == SERVICE_STOPPED) + _tprintf(TEXT("\n%s stopped.\n"), TEXT(pService->pServiceDisplayName)); + else + _tprintf(TEXT("\n%s failed to stop.\n"), TEXT(pService->pServiceDisplayName)); + + } + + /* now remove the service */ + if(DeleteService(schService)) + _tprintf(TEXT("%s removed.\n"), TEXT(pService->pServiceDisplayName)); + else + _tprintf(TEXT("DeleteService failed - %s\n"), GetLastErrorText(pService->szErr,256)); + + CloseServiceHandle(schService); + } + else + _tprintf(TEXT("OpenService failed - %s\n"), GetLastErrorText(pService->szErr,256)); + + CloseServiceHandle(schSCManager); + } + else + _tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(pService->szErr,256)); + } +} + +LPTSTR GetLastErrorText(LPTSTR lpszBuf, DWORD dwSize) +{ + DWORD dwRet; + LPTSTR lpszTemp = NULL; + + dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ARGUMENT_ARRAY, + NULL, + GetLastError(), + LANG_NEUTRAL, + (LPTSTR)&lpszTemp, + 0, + NULL); + + /* supplied buffer is not long enough */ + if (!dwRet || ((long)dwSize < (long)dwRet + 14)) + lpszBuf[0] = TEXT('\0'); + else + { + lpszTemp[lstrlen(lpszTemp)-2] = TEXT('\0'); /* remove cr and newline character */ + _stprintf(lpszBuf, TEXT("%s (0x%x)"), lpszTemp, GetLastError()); + } + + if (lpszTemp) + LocalFree((HLOCAL)lpszTemp); + + return(lpszBuf); +} + +BOOL CheckServiceArguments(int argc, char *argv[]) +{ + int i; + + /* Lets process the arguments */ + for (i = 1; i < argc; i++) + { + if (stricmp("-install", argv[i]) == 0) + { + /* They want to install the service */ + CmdInstallService(argc, argv, FALSE); + + /* We don't carry on, after we have installed the service */ + return(FALSE); + } + else if (stricmp("-installa", argv[i]) == 0) + { + /* They want to install the service */ + CmdInstallService(argc, argv, TRUE); + + /* We don't carry on, after we have installed the service */ + return(FALSE); + } + else if (stricmp("-remove", argv[i]) == 0) + { + /* Here they want to remove it */ + CmdRemoveService(); + + /* We don't carry on, after we have removed the service */ + return(FALSE); + } + else if (stricmp ("-runservice", argv[i]) == 0) + { + /* We can carry on, if we reached here */ + chdir(argv[i+1]); + argv[i] = ""; + argv[i+1] = ""; + return(TRUE); + } + } + bRunAsService = FALSE; + return(TRUE); +} + +BOOL SetupService(int argc, char *argv[], void *pHandle, LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies) +{ + BOOL bDeleteService = TRUE; + BOOL bResult = FALSE; + + /* Save the handle for later use */ + pAppHandle = pHandle; + + /* Create our service class */ + Service_Create(pAppName, pServiceName, pServiceDisplayName, pDependancies, argc, argv); + + if (CheckServiceArguments(argc, argv)) + { + if (bRunAsService) + { + /* No need to set the console control handler, as the service manager handles all this for us */ + Service_Initialize(); + bDeleteService = FALSE; + } + else + { + /* Set the console control handler for exiting the program */ + SetConsoleCtrlHandler((PHANDLER_ROUTINE)EventHandlerRoutine, TRUE); + + /* Now do the main work */ + ServiceMain(argc, argv); + } + + /* We have been successful initializing, so let the caller know */ + bResult = TRUE; + } + + if (bDeleteService) + { + /* Finished with the service now */ + Service_Delete(); + } + return(bResult); +} + +BOOL EventHandlerRoutine(DWORD dwCtrlType) +{ + /* This routine dosn't seem to get called all the time, Why ??? */ + switch (dwCtrlType) + { + case CTRL_C_EVENT: /* A CTRL+C signal was received, either from keyboard input or from a signal generated by the GenerateConsoleCtrlEvent function.*/ + case CTRL_BREAK_EVENT: /* A CTRL+BREAK signal was received, either from keyboard input or from a signal generated by GenerateConsoleCtrlEvent.*/ + case CTRL_CLOSE_EVENT: /* A signal that the system sends to all processes attached to a console when the user closes the console (either by choosing the Close command from the console window's System menu, or by choosing the End Task command from the Task List).*/ + case CTRL_LOGOFF_EVENT: /* A signal that the system sends to all console processes when a user is logging off. This signal does not indicate which user is logging off, so no assumptions can be made.*/ + case CTRL_SHUTDOWN_EVENT: /* A signal that the system sends to all console processes when the system */ + /* We are basically shutting down, so call Service_Delete */ + Service_Delete(); + return(FALSE); + break; + + default: + /* we are not handling this one, so return FALSE */ + return(FALSE); + } +} +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/service.h b/dependencies/yaz-2.1.28/src/service.h new file mode 100644 index 0000000..656f1af --- /dev/null +++ b/dependencies/yaz-2.1.28/src/service.h @@ -0,0 +1,56 @@ +/* + * NT Service interface Utility. + * Based on code written by + * Chas Woodfield, Fretwell Downing Datasystems. + * $Id: service.h,v 1.3 2005/06/25 15:46:05 adam Exp $ + */ +/** + * \file service.h + * \brief Header for NT service handling. + */ + +#ifndef SERVICE_INCLUDED +#define SERVICE_INCLUDED + +#ifdef WIN32 + +#include + +typedef struct _Service +{ + LPTSTR pAppName; + LPTSTR pServiceName; + LPTSTR pServiceDisplayName; + LPTSTR pDependancies; + TCHAR szErr[256]; + SERVICE_STATUS_HANDLE hService; + SERVICE_STATUS ServiceStatus; + SERVICE_TABLE_ENTRY ServiceTable[2]; + int argc; + char **argv; +} AppService; + +/* Called by the app to initialize the service */ +BOOL SetupService(int argc, char *argv[], void *pHandle, LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies); + +#endif /* WIN32 */ + +/* Functions that must be in the main application */ +/* Initializes the app */ +int StartAppService(void *pHandle, int argc, char **argv); + +/* Now we wait for any connections */ +void RunAppService(void *pHandle); + +/* Time to tidyup and stop the service */ +void StopAppService(void *pHandle); + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/seshigh.c b/dependencies/yaz-2.1.28/src/seshigh.c new file mode 100644 index 0000000..1e6c840 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/seshigh.c @@ -0,0 +1,3513 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: seshigh.c,v 1.97 2006/09/01 12:40:44 adam Exp $ + */ +/** + * \file seshigh.c + * \brief Implements GFS session logic. + * + * Frontend server logic. + * + * This code receives incoming APDUs, and handles client requests by means + * of the backend API. + * + * Some of the code is getting quite involved, compared to simpler servers - + * primarily because it is asynchronous both in the communication with + * the user and the backend. We think the complexity will pay off in + * the form of greater flexibility when more asynchronous facilities + * are implemented. + * + * Memory management has become somewhat involved. In the simple case, where + * only one PDU is pending at a time, it will simply reuse the same memory, + * once it has found its working size. When we enable multiple concurrent + * operations, perhaps even with multiple parallel calls to the backend, it + * will maintain a pool of buffers for encoding and decoding, trying to + * minimize memory allocation/deallocation during normal operation. + * + */ + +#include +#include +#include +#include + +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_STAT_H +#include +#endif + +#ifdef WIN32 +#include +#define S_ISREG(x) (x & _S_IFREG) +#include +#endif + +#if HAVE_UNISTD_H +#include +#endif + +#if YAZ_HAVE_XML2 +#include +#include +#endif + +#include +#include +#include +#include "eventl.h" +#include "session.h" +#include "mime.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static void process_gdu_request(association *assoc, request *req); +static int process_z_request(association *assoc, request *req, char **msg); +void backend_response(IOCHAN i, int event); +static int process_gdu_response(association *assoc, request *req, Z_GDU *res); +static int process_z_response(association *assoc, request *req, Z_APDU *res); +static Z_APDU *process_initRequest(association *assoc, request *reqb); +static Z_External *init_diagnostics(ODR odr, int errcode, + const char *errstring); +static Z_APDU *process_searchRequest(association *assoc, request *reqb, + int *fd); +static Z_APDU *response_searchRequest(association *assoc, request *reqb, + bend_search_rr *bsrr, int *fd); +static Z_APDU *process_presentRequest(association *assoc, request *reqb, + int *fd); +static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd); +static Z_APDU *process_sortRequest(association *assoc, request *reqb, int *fd); +static void process_close(association *assoc, request *reqb); +void save_referenceId (request *reqb, Z_ReferenceId *refid); +static Z_APDU *process_deleteRequest(association *assoc, request *reqb, + int *fd); +static Z_APDU *process_segmentRequest (association *assoc, request *reqb); + +static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd); + +/* dynamic logging levels */ +static int logbits_set = 0; +static int log_session = 0; /* one-line logs for session */ +static int log_sessiondetail = 0; /* more detailed stuff */ +static int log_request = 0; /* one-line logs for requests */ +static int log_requestdetail = 0; /* more detailed stuff */ + +/** get_logbits sets global loglevel bits */ +static void get_logbits() +{ /* needs to be called after parsing cmd-line args that can set loglevels!*/ + if (!logbits_set) + { + logbits_set = 1; + log_session = yaz_log_module_level("session"); + log_sessiondetail = yaz_log_module_level("sessiondetail"); + log_request = yaz_log_module_level("request"); + log_requestdetail = yaz_log_module_level("requestdetail"); + } +} + + + +static void wr_diag(WRBUF w, int error, const char *addinfo) +{ + wrbuf_printf(w, "ERROR %d+", error); + wrbuf_puts_replace_char(w, diagbib1_str(error), ' ', '_'); + if (addinfo){ + wrbuf_puts(w, "+"); + wrbuf_puts_replace_char(w, addinfo, ' ', '_'); + } + + wrbuf_puts(w, " "); +} + + +/* + * Create and initialize a new association-handle. + * channel : iochannel for the current line. + * link : communications channel. + * Returns: 0 or a new association handle. + */ +association *create_association(IOCHAN channel, COMSTACK link, + const char *apdufile) +{ + association *anew; + + if (!logbits_set) + get_logbits(); + if (!(anew = (association *)xmalloc(sizeof(*anew)))) + return 0; + anew->init = 0; + anew->version = 0; + anew->last_control = 0; + anew->client_chan = channel; + anew->client_link = link; + anew->cs_get_mask = 0; + anew->cs_put_mask = 0; + anew->cs_accept_mask = 0; + if (!(anew->decode = odr_createmem(ODR_DECODE)) || + !(anew->encode = odr_createmem(ODR_ENCODE))) + return 0; + if (apdufile && *apdufile) + { + FILE *f; + + if (!(anew->print = odr_createmem(ODR_PRINT))) + return 0; + if (*apdufile == '@') + { + odr_setprint(anew->print, yaz_log_file()); + } + else if (*apdufile != '-') + { + char filename[256]; + sprintf(filename, "%.200s.%ld", apdufile, (long)getpid()); + if (!(f = fopen(filename, "w"))) + { + yaz_log(YLOG_WARN|YLOG_ERRNO, "%s", filename); + return 0; + } + setvbuf(f, 0, _IONBF, 0); + odr_setprint(anew->print, f); + } + } + else + anew->print = 0; + anew->input_buffer = 0; + anew->input_buffer_len = 0; + anew->backend = 0; + anew->state = ASSOC_NEW; + request_initq(&anew->incoming); + request_initq(&anew->outgoing); + anew->proto = cs_getproto(link); + anew->server = 0; + return anew; +} + +/* + * Free association and release resources. + */ +void destroy_association(association *h) +{ + statserv_options_block *cb = statserv_getcontrol(); + request *req; + + xfree(h->init); + odr_destroy(h->decode); + odr_destroy(h->encode); + if (h->print) + odr_destroy(h->print); + if (h->input_buffer) + xfree(h->input_buffer); + if (h->backend) + (*cb->bend_close)(h->backend); + while ((req = request_deq(&h->incoming))) + request_release(req); + while ((req = request_deq(&h->outgoing))) + request_release(req); + request_delq(&h->incoming); + request_delq(&h->outgoing); + xfree(h); + xmalloc_trav("session closed"); + if (cb && cb->one_shot) + { + exit (0); + } +} + +static void do_close_req(association *a, int reason, char *message, + request *req) +{ + Z_APDU apdu; + Z_Close *cls = zget_Close(a->encode); + + /* Purge request queue */ + while (request_deq(&a->incoming)); + while (request_deq(&a->outgoing)); + if (a->version >= 3) + { + yaz_log(log_requestdetail, "Sending Close PDU, reason=%d, message=%s", + reason, message ? message : "none"); + apdu.which = Z_APDU_close; + apdu.u.close = cls; + *cls->closeReason = reason; + cls->diagnosticInformation = message; + process_z_response(a, req, &apdu); + iochan_settimeout(a->client_chan, 20); + } + else + { + request_release(req); + yaz_log(log_requestdetail, "v2 client. No Close PDU"); + iochan_setevent(a->client_chan, EVENT_TIMEOUT); /* force imm close */ + a->cs_put_mask = 0; + } + a->state = ASSOC_DEAD; +} + +static void do_close(association *a, int reason, char *message) +{ + request *req = request_get(&a->outgoing); + do_close_req (a, reason, message, req); +} + +/* + * This is where PDUs from the client are read and the further + * processing is initiated. Flow of control moves down through the + * various process_* functions below, until the encoded result comes back up + * to the output handler in here. + * + * h : the I/O channel that has an outstanding event. + * event : the current outstanding event. + */ +void ir_session(IOCHAN h, int event) +{ + int res; + association *assoc = (association *)iochan_getdata(h); + COMSTACK conn = assoc->client_link; + request *req; + + assert(h && conn && assoc); + if (event == EVENT_TIMEOUT) + { + if (assoc->state != ASSOC_UP) + { + yaz_log(YLOG_DEBUG, "Final timeout - closing connection."); + /* do we need to lod this at all */ + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + } + else + { + yaz_log(log_sessiondetail, + "Session idle too long. Sending close."); + do_close(assoc, Z_Close_lackOfActivity, 0); + } + return; + } + if (event & assoc->cs_accept_mask) + { + if (!cs_accept (conn)) + { + yaz_log (YLOG_WARN, "accept failed"); + destroy_association(assoc); + iochan_destroy(h); + } + iochan_clearflag (h, EVENT_OUTPUT); + if (conn->io_pending) + { /* cs_accept didn't complete */ + assoc->cs_accept_mask = + ((conn->io_pending & CS_WANT_WRITE) ? EVENT_OUTPUT : 0) | + ((conn->io_pending & CS_WANT_READ) ? EVENT_INPUT : 0); + + iochan_setflag (h, assoc->cs_accept_mask); + } + else + { /* cs_accept completed. Prepare for reading (cs_get) */ + assoc->cs_accept_mask = 0; + assoc->cs_get_mask = EVENT_INPUT; + iochan_setflag (h, assoc->cs_get_mask); + } + return; + } + if ((event & assoc->cs_get_mask) || (event & EVENT_WORK)) /* input */ + { + if ((assoc->cs_put_mask & EVENT_INPUT) == 0 && (event & assoc->cs_get_mask)) + { + yaz_log(YLOG_DEBUG, "ir_session (input)"); + /* We aren't speaking to this fellow */ + if (assoc->state == ASSOC_DEAD) + { + yaz_log(log_sessiondetail, "Connection closed - end of session"); + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + return; + } + assoc->cs_get_mask = EVENT_INPUT; + res = cs_get(conn, &assoc->input_buffer, + &assoc->input_buffer_len); + if (res < 0 && cs_errno(conn) == CSBUFSIZE) + { + yaz_log(log_session, "Connection error: %s res=%d", + cs_errmsg(cs_errno(conn)), res); + req = request_get(&assoc->incoming); /* get a new request */ + do_close_req(assoc, Z_Close_protocolError, + "Incoming package too large", req); + return; + } + else if (res <= 0) + { + yaz_log(log_sessiondetail, "Connection closed by client"); + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + return; + } + else if (res == 1) /* incomplete read - wait for more */ + { + if (conn->io_pending & CS_WANT_WRITE) + assoc->cs_get_mask |= EVENT_OUTPUT; + iochan_setflag(h, assoc->cs_get_mask); + return; + } + if (cs_more(conn)) /* more stuff - call us again later, please */ + iochan_setevent(h, EVENT_INPUT); + + /* we got a complete PDU. Let's decode it */ + yaz_log(YLOG_DEBUG, "Got PDU, %d bytes: lead=%02X %02X %02X", res, + assoc->input_buffer[0] & 0xff, + assoc->input_buffer[1] & 0xff, + assoc->input_buffer[2] & 0xff); + req = request_get(&assoc->incoming); /* get a new request */ + odr_reset(assoc->decode); + odr_setbuf(assoc->decode, assoc->input_buffer, res, 0); + if (!z_GDU(assoc->decode, &req->gdu_request, 0, 0)) + { + yaz_log(YLOG_WARN, "ODR error on incoming PDU: %s [element %s] " + "[near byte %ld] ", + odr_errmsg(odr_geterror(assoc->decode)), + odr_getelement(assoc->decode), + (long) odr_offset(assoc->decode)); + if (assoc->decode->error != OHTTP) + { + yaz_log(YLOG_WARN, "PDU dump:"); + odr_dumpBER(yaz_log_file(), assoc->input_buffer, res); + request_release(req); + do_close(assoc, Z_Close_protocolError, "Malformed package"); + } + else + { + Z_GDU *p = z_get_HTTP_Response(assoc->encode, 400); + assoc->state = ASSOC_DEAD; + process_gdu_response(assoc, req, p); + } + return; + } + req->request_mem = odr_extract_mem(assoc->decode); + if (assoc->print) + { + if (!z_GDU(assoc->print, &req->gdu_request, 0, 0)) + yaz_log(YLOG_WARN, "ODR print error: %s", + odr_errmsg(odr_geterror(assoc->print))); + odr_reset(assoc->print); + } + request_enq(&assoc->incoming, req); + } + + /* can we do something yet? */ + req = request_head(&assoc->incoming); + if (req->state == REQUEST_IDLE) + { + request_deq(&assoc->incoming); + process_gdu_request(assoc, req); + } + } + if (event & assoc->cs_put_mask) + { + request *req = request_head(&assoc->outgoing); + + assoc->cs_put_mask = 0; + yaz_log(YLOG_DEBUG, "ir_session (output)"); + req->state = REQUEST_PENDING; + switch (res = cs_put(conn, req->response, req->len_response)) + { + case -1: + yaz_log(log_sessiondetail, "Connection closed by client"); + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + break; + case 0: /* all sent - release the request structure */ + yaz_log(YLOG_DEBUG, "Wrote PDU, %d bytes", req->len_response); +#if 0 + yaz_log(YLOG_DEBUG, "HTTP out:\n%.*s", req->len_response, + req->response); +#endif + nmem_destroy(req->request_mem); + request_deq(&assoc->outgoing); + request_release(req); + if (!request_head(&assoc->outgoing)) + { /* restore mask for cs_get operation ... */ + iochan_clearflag(h, EVENT_OUTPUT|EVENT_INPUT); + iochan_setflag(h, assoc->cs_get_mask); + if (assoc->state == ASSOC_DEAD) + iochan_setevent(assoc->client_chan, EVENT_TIMEOUT); + } + else + { + assoc->cs_put_mask = EVENT_OUTPUT; + } + break; + default: + if (conn->io_pending & CS_WANT_WRITE) + assoc->cs_put_mask |= EVENT_OUTPUT; + if (conn->io_pending & CS_WANT_READ) + assoc->cs_put_mask |= EVENT_INPUT; + iochan_setflag(h, assoc->cs_put_mask); + } + } + if (event & EVENT_EXCEPT) + { + yaz_log(YLOG_WARN, "ir_session (exception)"); + cs_close(conn); + destroy_association(assoc); + iochan_destroy(h); + } +} + +static int process_z_request(association *assoc, request *req, char **msg); + + +static void assoc_init_reset(association *assoc) +{ + xfree (assoc->init); + assoc->init = (bend_initrequest *) xmalloc (sizeof(*assoc->init)); + + assoc->init->stream = assoc->encode; + assoc->init->print = assoc->print; + assoc->init->auth = 0; + assoc->init->referenceId = 0; + assoc->init->implementation_version = 0; + assoc->init->implementation_id = 0; + assoc->init->implementation_name = 0; + assoc->init->bend_sort = NULL; + assoc->init->bend_search = NULL; + assoc->init->bend_present = NULL; + assoc->init->bend_esrequest = NULL; + assoc->init->bend_delete = NULL; + assoc->init->bend_scan = NULL; + assoc->init->bend_segment = NULL; + assoc->init->bend_fetch = NULL; + assoc->init->bend_explain = NULL; + assoc->init->bend_srw_scan = NULL; + assoc->init->bend_srw_update = NULL; + + assoc->init->charneg_request = NULL; + assoc->init->charneg_response = NULL; + + assoc->init->decode = assoc->decode; + assoc->init->peer_name = + odr_strdup (assoc->encode, cs_addrstr(assoc->client_link)); + + yaz_log(log_requestdetail, "peer %s", assoc->init->peer_name); +} + +static int srw_bend_init(association *assoc, Z_SRW_diagnostic **d, int *num, Z_SRW_PDU *sr) +{ + statserv_options_block *cb = statserv_getcontrol(); + if (!assoc->init) + { + const char *encoding = "UTF-8"; + Z_External *ce; + bend_initresult *binitres; + + yaz_log(log_requestdetail, "srw_bend_init config=%s", cb->configname); + assoc_init_reset(assoc); + + assoc->maximumRecordSize = 3000000; + assoc->preferredMessageSize = 3000000; + + if (sr->username) + { + Z_IdAuthentication *auth = odr_malloc(assoc->decode, sizeof(*auth)); + int len; + + len = strlen(sr->username) + 1; + if (sr->password) + len += strlen(sr->password) + 2; + auth->which = Z_IdAuthentication_open; + auth->u.open = odr_malloc(assoc->decode, len); + strcpy(auth->u.open, sr->username); + if (sr->password && *sr->password) + { + strcat(auth->u.open, "/"); + strcat(auth->u.open, sr->password); + } + assoc->init->auth = auth; + } + +#if 1 + ce = yaz_set_proposal_charneg(assoc->decode, &encoding, 1, 0, 0, 1); + assoc->init->charneg_request = ce->u.charNeg3; +#endif + assoc->backend = 0; + if (!(binitres = (*cb->bend_init)(assoc->init))) + { + assoc->state = ASSOC_DEAD; + yaz_add_srw_diagnostic(assoc->encode, d, num, + YAZ_SRW_AUTHENTICATION_ERROR, 0); + return 0; + } + assoc->backend = binitres->handle; + assoc->init->auth = 0; + if (binitres->errcode) + { + int srw_code = yaz_diag_bib1_to_srw(binitres->errcode); + assoc->state = ASSOC_DEAD; + yaz_add_srw_diagnostic(assoc->encode, d, num, srw_code, + binitres->errstring); + return 0; + } + return 1; + } + return 1; +} + +static const char *get_esn(Z_RecordComposition *comp) +{ + if (comp && comp->which == Z_RecordComp_complex) + { + if (comp->u.complex->generic + && comp->u.complex->generic->elementSpec + && (comp->u.complex->generic->elementSpec->which == + Z_ElementSpec_elementSetName)) + return comp->u.complex->generic->elementSpec->u.elementSetName; + } + else if (comp && comp->which == Z_RecordComp_simple && + comp->u.simple->which == Z_ElementSetNames_generic) + return comp->u.simple->u.generic; + return 0; +} + +static void set_esn(Z_RecordComposition **comp_p, const char *esn, NMEM nmem) +{ + Z_RecordComposition *comp = nmem_malloc(nmem, sizeof(*comp)); + + comp->which = Z_RecordComp_simple; + comp->u.simple = nmem_malloc(nmem, sizeof(*comp->u.simple)); + comp->u.simple->which = Z_ElementSetNames_generic; + comp->u.simple->u.generic = nmem_strdup(nmem, esn); + *comp_p = comp; +} + +static int retrieve_fetch(association *assoc, bend_fetch_rr *rr) +{ +#if YAZ_HAVE_XML2 + yaz_record_conv_t rc = 0; + const char *match_schema = 0; + int *match_syntax = 0; + + if (assoc->server) + { + int r; + const char *input_schema = get_esn(rr->comp); + Odr_oid *input_syntax_raw = rr->request_format_raw; + + const char *backend_schema = 0; + Odr_oid *backend_syntax = 0; + + r = yaz_retrieval_request(assoc->server->retrieval, + input_schema, + input_syntax_raw, + &match_schema, + &match_syntax, + &rc, + &backend_schema, + &backend_syntax); + if (r == -1) /* error ? */ + { + const char *details = yaz_retrieval_get_error( + assoc->server->retrieval); + + rr->errcode = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS; + if (details) + rr->errstring = odr_strdup(rr->stream, details); + return -1; + } + else if (r == 1 || r == 3) + { + const char *details = input_schema; + rr->errcode = YAZ_BIB1_ELEMENT_SET_NAMES_UNSUPP; + if (details) + rr->errstring = odr_strdup(rr->stream, details); + return -1; + } + else if (r == 2) + { + rr->errcode = YAZ_BIB1_RECORD_SYNTAX_UNSUPP; + if (input_syntax_raw) + { + char oidbuf[OID_STR_MAX]; + oid_to_dotstring(input_syntax_raw, oidbuf); + rr->errstring = odr_strdup(rr->stream, oidbuf); + } + return -1; + } + if (backend_schema) + { + set_esn(&rr->comp, backend_schema, rr->stream->mem); + } + if (backend_syntax) + { + oident *oident_syntax = oid_getentbyoid(backend_syntax); + + rr->request_format_raw = backend_syntax; + + if (oident_syntax) + rr->request_format = oident_syntax->value; + else + rr->request_format = VAL_NONE; + } + } + (*assoc->init->bend_fetch)(assoc->backend, rr); + if (rc && rr->record && rr->errcode == 0 && rr->len > 0) + { /* post conversion must take place .. */ + WRBUF output_record = wrbuf_alloc(); + int r = yaz_record_conv_record(rc, rr->record, rr->len, output_record); + if (r) + { + const char *details = yaz_record_conv_get_error(rc); + rr->errcode = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS; + if (details) + rr->errstring = odr_strdup(rr->stream, details); + } + else + { + rr->len = wrbuf_len(output_record); + rr->record = odr_malloc(rr->stream, rr->len); + memcpy(rr->record, wrbuf_buf(output_record), rr->len); + } + wrbuf_free(output_record, 1); + } + if (match_syntax) + { + struct oident *oi = oid_getentbyoid(match_syntax); + rr->output_format = oi ? oi->value : VAL_NONE; + rr->output_format_raw = match_syntax; + } + if (match_schema) + rr->schema = odr_strdup(rr->stream, match_schema); + return 0; +#else + (*assoc->init->bend_fetch)(assoc->backend, rr); +#endif +} + +static int srw_bend_fetch(association *assoc, int pos, + Z_SRW_searchRetrieveRequest *srw_req, + Z_SRW_record *record, + const char **addinfo) +{ + bend_fetch_rr rr; + ODR o = assoc->encode; + + rr.setname = "default"; + rr.number = pos; + rr.referenceId = 0; + rr.request_format = VAL_TEXT_XML; + rr.request_format_raw = yaz_oidval_to_z3950oid(assoc->decode, + CLASS_RECSYN, + VAL_TEXT_XML); + rr.comp = (Z_RecordComposition *) + odr_malloc(assoc->decode, sizeof(*rr.comp)); + rr.comp->which = Z_RecordComp_complex; + rr.comp->u.complex = (Z_CompSpec *) + odr_malloc(assoc->decode, sizeof(Z_CompSpec)); + rr.comp->u.complex->selectAlternativeSyntax = (bool_t *) + odr_malloc(assoc->encode, sizeof(bool_t)); + *rr.comp->u.complex->selectAlternativeSyntax = 0; + rr.comp->u.complex->num_dbSpecific = 0; + rr.comp->u.complex->dbSpecific = 0; + rr.comp->u.complex->num_recordSyntax = 0; + rr.comp->u.complex->recordSyntax = 0; + + rr.comp->u.complex->generic = (Z_Specification *) + odr_malloc(assoc->decode, sizeof(Z_Specification)); + + /* schema uri = recordSchema (or NULL if recordSchema is not given) */ + rr.comp->u.complex->generic->which = Z_Schema_uri; + rr.comp->u.complex->generic->schema.uri = srw_req->recordSchema; + + /* ESN = recordSchema if recordSchema is present */ + rr.comp->u.complex->generic->elementSpec = 0; + if (srw_req->recordSchema) + { + rr.comp->u.complex->generic->elementSpec = + (Z_ElementSpec *) odr_malloc(assoc->encode, sizeof(Z_ElementSpec)); + rr.comp->u.complex->generic->elementSpec->which = + Z_ElementSpec_elementSetName; + rr.comp->u.complex->generic->elementSpec->u.elementSetName = + srw_req->recordSchema; + } + + rr.stream = assoc->encode; + rr.print = assoc->print; + + rr.basename = 0; + rr.len = 0; + rr.record = 0; + rr.last_in_set = 0; + rr.errcode = 0; + rr.errstring = 0; + rr.surrogate_flag = 0; + rr.schema = srw_req->recordSchema; + + if (!assoc->init->bend_fetch) + return 1; + + retrieve_fetch(assoc, &rr); + + if (rr.errcode && rr.surrogate_flag) + { + int code = yaz_diag_bib1_to_srw(rr.errcode); + const char *message = yaz_diag_srw_str(code); + int len = 200; + if (message) + len += strlen(message); + if (rr.errstring) + len += strlen(rr.errstring); + + record->recordData_buf = odr_malloc(o, len); + + sprintf(record->recordData_buf, "\n" + " info:srw/diagnostic/1/%d\n", code); + if (rr.errstring) + sprintf(record->recordData_buf + strlen(record->recordData_buf), + "
%s
\n", rr.errstring); + if (message) + sprintf(record->recordData_buf + strlen(record->recordData_buf), + " %s\n", message); + sprintf(record->recordData_buf + strlen(record->recordData_buf), + "
\n"); + record->recordData_len = strlen(record->recordData_buf); + record->recordPosition = odr_intdup(o, pos); + record->recordSchema = "info:srw/schema/1/diagnostics-v1.1"; + return 0; + } + else if (rr.len >= 0) + { + record->recordData_buf = rr.record; + record->recordData_len = rr.len; + record->recordPosition = odr_intdup(o, pos); + if (rr.schema) + record->recordSchema = odr_strdup(o, rr.schema); + else + record->recordSchema = 0; + } + if (rr.errcode) + { + *addinfo = rr.errstring; + return rr.errcode; + } + return 0; +} + +static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct, + Z_Query *query_result) +{ + /* have a CQL query and CQL to PQF transform .. */ + CQL_parser cp = cql_parser_create(); + int r; + int srw_errcode = 0; + const char *add = 0; + char rpn_buf[5120]; + + r = cql_parser_string(cp, cql); + if (r) + { + /* CQL syntax error */ + srw_errcode = 10; + } + if (!r) + { + /* Syntax OK */ + r = cql_transform_buf(ct, + cql_parser_result(cp), + rpn_buf, sizeof(rpn_buf)-1); + if (r) + srw_errcode = cql_transform_error(ct, &add); + } + if (!r) + { + /* Syntax & transform OK. */ + /* Convert PQF string to Z39.50 to RPN query struct */ + YAZ_PQF_Parser pp = yaz_pqf_create(); + Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, rpn_buf); + if (!rpnquery) + { + size_t off; + const char *pqf_msg; + int code = yaz_pqf_error(pp, &pqf_msg, &off); + yaz_log(YLOG_WARN, "PQF Parser Error %s (code %d)", + pqf_msg, code); + srw_errcode = 10; + } + else + { + query_result->which = Z_Query_type_1; + query_result->u.type_1 = rpnquery; + } + yaz_pqf_destroy(pp); + } + cql_parser_destroy(cp); + return srw_errcode; +} + +static int cql2pqf_scan(ODR odr, const char *cql, cql_transform_t ct, + Z_AttributesPlusTerm *result) +{ + Z_Query query; + Z_RPNQuery *rpn; + int srw_error = cql2pqf(odr, cql, ct, &query); + if (srw_error) + return srw_error; + if (query.which != Z_Query_type_1 && query.which != Z_Query_type_101) + return 10; /* bad query type */ + rpn = query.u.type_1; + if (!rpn->RPNStructure) + return 10; /* must be structure */ + if (rpn->RPNStructure->which != Z_RPNStructure_simple) + return 10; /* must be simple */ + if (rpn->RPNStructure->u.simple->which != Z_Operand_APT) + return 10; /* must be attributes plus term node .. */ + memcpy(result, rpn->RPNStructure->u.simple->u.attributesPlusTerm, + sizeof(*result)); + return 0; +} + +static void srw_bend_search(association *assoc, request *req, + Z_SRW_PDU *sr, + Z_SRW_searchRetrieveResponse *srw_res, + int *http_code) +{ + int srw_error = 0; + Z_External *ext; + Z_SRW_searchRetrieveRequest *srw_req = sr->u.request; + + *http_code = 200; + yaz_log(log_requestdetail, "Got SRW SearchRetrieveRequest"); + srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); + if (srw_res->num_diagnostics == 0 && assoc->init) + { + bend_search_rr rr; + rr.setname = "default"; + rr.replace_set = 1; + rr.num_bases = 1; + rr.basenames = &srw_req->database; + rr.referenceId = 0; + rr.srw_sortKeys = 0; + rr.srw_setname = 0; + rr.srw_setnameIdleTime = 0; + rr.query = (Z_Query *) odr_malloc (assoc->decode, sizeof(*rr.query)); + rr.query->u.type_1 = 0; + + if (srw_req->query_type == Z_SRW_query_type_cql) + { + if (assoc->server && assoc->server->cql_transform) + { + int srw_errcode = cql2pqf(assoc->encode, srw_req->query.cql, + assoc->server->cql_transform, + rr.query); + if (srw_errcode) + { + yaz_add_srw_diagnostic(assoc->encode, + &srw_res->diagnostics, + &srw_res->num_diagnostics, + srw_errcode, 0); + } + } + else + { + /* CQL query to backend. Wrap it - Z39.50 style */ + ext = (Z_External *) odr_malloc(assoc->decode, sizeof(*ext)); + ext->direct_reference = odr_getoidbystr(assoc->decode, + "1.2.840.10003.16.2"); + ext->indirect_reference = 0; + ext->descriptor = 0; + ext->which = Z_External_CQL; + ext->u.cql = srw_req->query.cql; + + rr.query->which = Z_Query_type_104; + rr.query->u.type_104 = ext; + } + } + else if (srw_req->query_type == Z_SRW_query_type_pqf) + { + Z_RPNQuery *RPNquery; + YAZ_PQF_Parser pqf_parser; + + pqf_parser = yaz_pqf_create (); + + RPNquery = yaz_pqf_parse (pqf_parser, assoc->decode, + srw_req->query.pqf); + if (!RPNquery) + { + const char *pqf_msg; + size_t off; + int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); + yaz_log(log_requestdetail, "Parse error %d %s near offset %ld", + code, pqf_msg, (long) off); + srw_error = YAZ_SRW_QUERY_SYNTAX_ERROR; + } + + rr.query->which = Z_Query_type_1; + rr.query->u.type_1 = RPNquery; + + yaz_pqf_destroy (pqf_parser); + } + else + { + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + YAZ_SRW_UNSUPP_QUERY_TYPE, 0); + } + if (rr.query->u.type_1) + { + rr.stream = assoc->encode; + rr.decode = assoc->decode; + rr.print = assoc->print; + rr.request = req; + if ( srw_req->sort.sortKeys ) + rr.srw_sortKeys = odr_strdup(assoc->encode, + srw_req->sort.sortKeys ); + rr.association = assoc; + rr.fd = 0; + rr.hits = 0; + rr.errcode = 0; + rr.errstring = 0; + rr.search_info = 0; + yaz_log_zquery_level(log_requestdetail,rr.query); + + (assoc->init->bend_search)(assoc->backend, &rr); + if (rr.errcode) + { + if (rr.errcode == YAZ_BIB1_DATABASE_UNAVAILABLE) + { + *http_code = 404; + } + else + { + srw_error = yaz_diag_bib1_to_srw (rr.errcode); + yaz_add_srw_diagnostic(assoc->encode, + &srw_res->diagnostics, + &srw_res->num_diagnostics, + srw_error, rr.errstring); + } + } + else + { + int number = srw_req->maximumRecords ? *srw_req->maximumRecords : 0; + int start = srw_req->startRecord ? *srw_req->startRecord : 1; + + yaz_log(log_requestdetail, "Request to pack %d+%d out of %d", + start, number, rr.hits); + + srw_res->numberOfRecords = odr_intdup(assoc->encode, rr.hits); + if (rr.srw_setname) + { + srw_res->resultSetId = + odr_strdup(assoc->encode, rr.srw_setname ); + srw_res->resultSetIdleTime = + odr_intdup(assoc->encode, *rr.srw_setnameIdleTime ); + } + if (number > 0) + { + int i; + + if (start > rr.hits) + { + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + YAZ_SRW_FIRST_RECORD_POSITION_OUT_OF_RANGE, 0); + } + else + { + int ok = 1; + if (start + number > rr.hits) + number = rr.hits - start + 1; + + /* Call bend_present if defined */ + if (assoc->init->bend_present) + { + bend_present_rr *bprr = (bend_present_rr*) + odr_malloc (assoc->decode, sizeof(*bprr)); + bprr->setname = "default"; + bprr->start = start; + bprr->number = number; + bprr->format = VAL_TEXT_XML; + if (srw_req->recordSchema) + { + bprr->comp = (Z_RecordComposition *) odr_malloc(assoc->decode, + sizeof(*bprr->comp)); + bprr->comp->which = Z_RecordComp_simple; + bprr->comp->u.simple = (Z_ElementSetNames *) + odr_malloc(assoc->decode, sizeof(Z_ElementSetNames)); + bprr->comp->u.simple->which = Z_ElementSetNames_generic; + bprr->comp->u.simple->u.generic = srw_req->recordSchema; + } + else + { + bprr->comp = 0; + } + bprr->stream = assoc->encode; + bprr->referenceId = 0; + bprr->print = assoc->print; + bprr->request = req; + bprr->association = assoc; + bprr->errcode = 0; + bprr->errstring = NULL; + (*assoc->init->bend_present)(assoc->backend, bprr); + + if (!bprr->request) + return; + if (bprr->errcode) + { + srw_error = yaz_diag_bib1_to_srw (bprr->errcode); + yaz_add_srw_diagnostic(assoc->encode, + &srw_res->diagnostics, + &srw_res->num_diagnostics, + srw_error, bprr->errstring); + ok = 0; + } + } + + if (ok) + { + int j = 0; + int packing = Z_SRW_recordPacking_string; + if (srw_req->recordPacking){ + if (!strcmp(srw_req->recordPacking, "xml")) + packing = Z_SRW_recordPacking_XML; + if (!strcmp(srw_req->recordPacking, "url")) + packing = Z_SRW_recordPacking_URL; + } + srw_res->records = (Z_SRW_record *) + odr_malloc(assoc->encode, + number * sizeof(*srw_res->records)); + + srw_res->extra_records = (Z_SRW_extra_record **) + odr_malloc(assoc->encode, + number*sizeof(*srw_res->extra_records)); + + for (i = 0; irecords[j].recordPacking = packing; + srw_res->records[j].recordData_buf = 0; + srw_res->extra_records[j] = 0; + yaz_log(YLOG_DEBUG, "srw_bend_fetch %d", i+start); + errcode = srw_bend_fetch(assoc, i+start, srw_req, + srw_res->records + j, + &addinfo); + if (errcode) + { + yaz_add_srw_diagnostic(assoc->encode, + &srw_res->diagnostics, + &srw_res->num_diagnostics, + yaz_diag_bib1_to_srw (errcode), + addinfo); + + break; + } + if (srw_res->records[j].recordData_buf) + j++; + } + srw_res->num_records = j; + if (!j) + srw_res->records = 0; + } + } + } + } + } + } + if (log_request) + { + const char *querystr = "?"; + const char *querytype = "?"; + WRBUF wr = wrbuf_alloc(); + + switch (srw_req->query_type) + { + case Z_SRW_query_type_cql: + querytype = "CQL"; + querystr = srw_req->query.cql; + break; + case Z_SRW_query_type_pqf: + querytype = "PQF"; + querystr = srw_req->query.pqf; + break; + } + wrbuf_printf(wr, "SRWSearch "); + wrbuf_printf(wr, srw_req->database); + wrbuf_printf(wr, " "); + if (srw_res->num_diagnostics) + wrbuf_printf(wr, "ERROR %s", srw_res->diagnostics[0].uri); + else if (*http_code != 200) + wrbuf_printf(wr, "ERROR info:http/%d", *http_code); + else if (srw_res->numberOfRecords) + { + wrbuf_printf(wr, "OK %d", + (srw_res->numberOfRecords ? + *srw_res->numberOfRecords : 0)); + } + wrbuf_printf(wr, " %s %d+%d", + (srw_res->resultSetId ? + srw_res->resultSetId : "-"), + (srw_req->startRecord ? *srw_req->startRecord : 1), + srw_res->num_records); + yaz_log(log_request, "%s %s: %s", wrbuf_buf(wr), querytype, querystr); + wrbuf_free(wr, 1); + } +} + +static char *srw_bend_explain_default(void *handle, bend_explain_rr *rr) +{ +#if YAZ_HAVE_XML2 + xmlNodePtr ptr = rr->server_node_ptr; + if (!ptr) + return 0; + for (ptr = ptr->children; ptr; ptr = ptr->next) + { + if (ptr->type != XML_ELEMENT_NODE) + continue; + if (!strcmp((const char *) ptr->name, "explain")) + { + int len; + xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); + xmlChar *buf_out; + char *content; + + ptr = xmlCopyNode(ptr, 1); + + xmlDocSetRootElement(doc, ptr); + + xmlDocDumpMemory(doc, &buf_out, &len); + content = (char*) odr_malloc(rr->stream, 1+len); + memcpy(content, buf_out, len); + content[len] = '\0'; + + xmlFree(buf_out); + xmlFreeDoc(doc); + rr->explain_buf = content; + return 0; + } + } +#endif + return 0; +} + +static void srw_bend_explain(association *assoc, request *req, + Z_SRW_PDU *sr, + Z_SRW_explainResponse *srw_res, + int *http_code) +{ + Z_SRW_explainRequest *srw_req = sr->u.explain_request; + yaz_log(log_requestdetail, "Got SRW ExplainRequest"); + *http_code = 404; + srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); + if (assoc->init) + { + bend_explain_rr rr; + + rr.stream = assoc->encode; + rr.decode = assoc->decode; + rr.print = assoc->print; + rr.explain_buf = 0; + rr.database = srw_req->database; + if (assoc->server) + rr.server_node_ptr = assoc->server->server_node_ptr; + else + rr.server_node_ptr = 0; + rr.schema = "http://explain.z3950.org/dtd/2.0/"; + if (assoc->init->bend_explain) + (*assoc->init->bend_explain)(assoc->backend, &rr); + else + srw_bend_explain_default(assoc->backend, &rr); + + if (rr.explain_buf) + { + int packing = Z_SRW_recordPacking_string; + if (srw_req->recordPacking) + { + if (!strcmp(srw_req->recordPacking, "xml")) + packing = Z_SRW_recordPacking_XML; + else if (!strcmp(srw_req->recordPacking, "url")) + packing = Z_SRW_recordPacking_URL; + } + srw_res->record.recordSchema = rr.schema; + srw_res->record.recordPacking = packing; + srw_res->record.recordData_buf = rr.explain_buf; + srw_res->record.recordData_len = strlen(rr.explain_buf); + srw_res->record.recordPosition = 0; + *http_code = 200; + } + } +} + +static void srw_bend_scan(association *assoc, request *req, + Z_SRW_PDU *sr, + Z_SRW_scanResponse *srw_res, + int *http_code) +{ + Z_SRW_scanRequest *srw_req = sr->u.scan_request; + yaz_log(log_requestdetail, "Got SRW ScanRequest"); + + *http_code = 200; + srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); + if (srw_res->num_diagnostics == 0 && assoc->init) + { + struct scan_entry *save_entries; + + bend_scan_rr *bsrr = (bend_scan_rr *) + odr_malloc (assoc->encode, sizeof(*bsrr)); + bsrr->num_bases = 1; + bsrr->basenames = &srw_req->database; + + bsrr->num_entries = srw_req->maximumTerms ? + *srw_req->maximumTerms : 10; + bsrr->term_position = srw_req->responsePosition ? + *srw_req->responsePosition : 1; + + bsrr->errcode = 0; + bsrr->errstring = 0; + bsrr->referenceId = 0; + bsrr->stream = assoc->encode; + bsrr->print = assoc->print; + bsrr->step_size = odr_intdup(assoc->decode, 0); + bsrr->entries = 0; + + if (bsrr->num_entries > 0) + { + int i; + bsrr->entries = odr_malloc(assoc->decode, sizeof(*bsrr->entries) * + bsrr->num_entries); + for (i = 0; inum_entries; i++) + { + bsrr->entries[i].term = 0; + bsrr->entries[i].occurrences = 0; + bsrr->entries[i].errcode = 0; + bsrr->entries[i].errstring = 0; + bsrr->entries[i].display_term = 0; + } + } + save_entries = bsrr->entries; /* save it so we can compare later */ + + if (srw_req->query_type == Z_SRW_query_type_pqf && + assoc->init->bend_scan) + { + Odr_oid *scan_attributeSet = 0; + oident *attset; + YAZ_PQF_Parser pqf_parser = yaz_pqf_create(); + + bsrr->term = yaz_pqf_scan(pqf_parser, assoc->decode, + &scan_attributeSet, + srw_req->scanClause.pqf); + if (scan_attributeSet && + (attset = oid_getentbyoid(scan_attributeSet)) && + (attset->oclass == CLASS_ATTSET || + attset->oclass == CLASS_GENERAL)) + bsrr->attributeset = attset->value; + else + bsrr->attributeset = VAL_NONE; + yaz_pqf_destroy(pqf_parser); + bsrr->scanClause = 0; + ((int (*)(void *, bend_scan_rr *)) + (*assoc->init->bend_scan))(assoc->backend, bsrr); + } + else if (srw_req->query_type == Z_SRW_query_type_cql + && assoc->init->bend_scan && assoc->server + && assoc->server->cql_transform) + { + int srw_error; + bsrr->scanClause = 0; + bsrr->attributeset = VAL_NONE; + bsrr->term = odr_malloc(assoc->decode, sizeof(*bsrr->term)); + srw_error = cql2pqf_scan(assoc->encode, + srw_req->scanClause.cql, + assoc->server->cql_transform, + bsrr->term); + if (srw_error) + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + srw_error, 0); + else + { + ((int (*)(void *, bend_scan_rr *)) + (*assoc->init->bend_scan))(assoc->backend, bsrr); + } + } + else if (srw_req->query_type == Z_SRW_query_type_cql + && assoc->init->bend_srw_scan) + { + bsrr->term = 0; + bsrr->attributeset = VAL_NONE; + bsrr->scanClause = srw_req->scanClause.cql; + ((int (*)(void *, bend_scan_rr *)) + (*assoc->init->bend_srw_scan))(assoc->backend, bsrr); + } + else + { + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + YAZ_SRW_UNSUPP_OPERATION, "scan"); + } + if (bsrr->errcode) + { + int srw_error; + if (bsrr->errcode == YAZ_BIB1_DATABASE_UNAVAILABLE) + { + *http_code = 404; + return; + } + srw_error = yaz_diag_bib1_to_srw (bsrr->errcode); + + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + srw_error, bsrr->errstring); + } + else if (srw_res->num_diagnostics == 0 && bsrr->num_entries) + { + int i; + srw_res->terms = (Z_SRW_scanTerm*) + odr_malloc(assoc->encode, sizeof(*srw_res->terms) * + bsrr->num_entries); + + srw_res->num_terms = bsrr->num_entries; + for (i = 0; inum_entries; i++) + { + Z_SRW_scanTerm *t = srw_res->terms + i; + t->value = odr_strdup(assoc->encode, bsrr->entries[i].term); + t->numberOfRecords = + odr_intdup(assoc->encode, bsrr->entries[i].occurrences); + t->displayTerm = 0; + if (save_entries == bsrr->entries && + bsrr->entries[i].display_term) + { + /* the entries was _not_ set by the handler. So it's + safe to test for new member display_term. It is + NULL'ed by us. + */ + t->displayTerm = odr_strdup(assoc->encode, + bsrr->entries[i].display_term); + } + t->whereInList = 0; + } + } + } + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + const char *querytype = 0; + const char *querystr = 0; + + switch(srw_req->query_type) + { + case Z_SRW_query_type_pqf: + querytype = "PQF"; + querystr = srw_req->scanClause.pqf; + break; + case Z_SRW_query_type_cql: + querytype = "CQL"; + querystr = srw_req->scanClause.cql; + break; + default: + querytype = "UNKNOWN"; + querystr = ""; + } + + wrbuf_printf(wr, "SRWScan "); + wrbuf_printf(wr, srw_req->database); + wrbuf_printf(wr, " "); + + if (srw_res->num_diagnostics) + wrbuf_printf(wr, "ERROR %s - ", srw_res->diagnostics[0].uri); + else if (srw_res->num_terms) + wrbuf_printf(wr, "OK %d - ", srw_res->num_terms); + else + wrbuf_printf(wr, "OK - - "); + + wrbuf_printf(wr, "%d+%d+0 ", + (srw_req->responsePosition ? + *srw_req->responsePosition : 1), + (srw_req->maximumTerms ? + *srw_req->maximumTerms : 1)); + /* there is no step size in SRU/W ??? */ + wrbuf_printf(wr, "%s: %s ", querytype, querystr); + yaz_log(log_request, "%s ", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + +} + +static void srw_bend_update(association *assoc, request *req, + Z_SRW_PDU *sr, + Z_SRW_updateResponse *srw_res, + int *http_code) +{ + Z_SRW_updateRequest *srw_req = sr->u.update_request; + yaz_log(YLOG_DEBUG, "Got SRW UpdateRequest"); + yaz_log(YLOG_DEBUG, "num_diag = %d", srw_res->num_diagnostics ); + *http_code = 404; + srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); + if (assoc->init) + { + bend_update_rr rr; + + rr.stream = assoc->encode; + rr.print = assoc->print; + rr.num_bases = 1; + rr.basenames = &srw_req->database; + rr.operation = srw_req->operation; + rr.operation_status = "failed"; + rr.record_id = 0; + rr.record_version = 0; + rr.record_checksum = 0; + rr.record_old_version = 0; + rr.record_packing = "xml"; + rr.record_schema = 0; + rr.record_data = 0; + rr.request_extra_record = 0; + rr.response_extra_record = 0; + rr.extra_request_data = 0; + rr.extra_response_data = 0; + rr.uri = 0; + rr.message = 0; + rr.details = 0; + + yaz_log(YLOG_DEBUG, "basename = %s", rr.basenames[0] ); + yaz_log(YLOG_DEBUG, "Operation = %s", rr.operation ); + if ( !strcmp( rr.operation, "delete" ) ){ + if ( !srw_req->recordId ){ + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordId" ); + } + else { + rr.record_id = srw_req->recordId; + } + if ( !srw_req->recordVersion ){ + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordVersion" ); + } + else { + rr.record_version = odr_strdup( assoc->encode, + srw_req->recordVersion ); + + } + if ( srw_req->recordOldVersion ){ + rr.record_old_version = odr_strdup(assoc->encode, + srw_req->recordOldVersion ); + } + if ( srw_req->extraRequestData ){ + rr.extra_request_data = odr_strdup(assoc->encode, + srw_req->extraRequestData ); + } + } + else if ( !strcmp( rr.operation, "replace" ) ){ + if ( !srw_req->recordId ){ + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordId" ); + } + else { + rr.record_id = srw_req->recordId; + } + if ( srw_req->record.recordSchema == 0 ){ + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordSchema" ); + } + else { + rr.record_schema = odr_strdup(assoc->encode, + srw_req->record.recordSchema ); + } + switch (srw_req->record.recordPacking) + { + case Z_SRW_recordPacking_string: + rr.record_packing = "string"; + break; + case Z_SRW_recordPacking_XML: + rr.record_packing = "xml"; + break; + case Z_SRW_recordPacking_URL: + rr.record_packing = "url"; + break; + } + if ( srw_req->record.recordData_len ){ + rr.record_data = odr_strdupn(assoc->encode, + srw_req->record.recordData_buf, + srw_req->record.recordData_len ); + rr.request_extra_record = srw_req->extra_record; + } + else { + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordData" ); + } + if (srw_req->extraRequestData) + rr.extra_request_data = odr_strdup(assoc->encode, + srw_req->extraRequestData ); + } + else if ( !strcmp( rr.operation, "insert" ) ) + { + rr.record_id = srw_req->recordId; + if ( srw_req->record.recordSchema == 0 ){ + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordSchema" ); + } + else { + rr.record_schema = odr_strdup(assoc->encode, + srw_req->record.recordSchema); + } + switch (srw_req->record.recordPacking) + { + case Z_SRW_recordPacking_string: + rr.record_packing = "string"; + break; + case Z_SRW_recordPacking_XML: + rr.record_packing = "xml"; + break; + case Z_SRW_recordPacking_URL: + rr.record_packing = "url"; + break; + } + + if (srw_req->record.recordData_len) + { + rr.record_data = odr_strdupn(assoc->encode, + srw_req->record.recordData_buf, + srw_req->record.recordData_len ); + rr.request_extra_record = srw_req->extra_record; + } + else + yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, + &srw_res->num_diagnostics, + 7, "recordData" ); + if ( srw_req->extraRequestData ) + rr.extra_request_data = odr_strdup(assoc->encode, + srw_req->extraRequestData ); + } + if (srw_res->num_diagnostics == 0) + { + if ( assoc->init->bend_srw_update) + (*assoc->init->bend_srw_update)(assoc->backend, &rr); + else { + yaz_log( YLOG_WARN, "Got No Update function!"); + return; + } + } + + if (rr.uri) + yaz_add_srw_diagnostic_uri(assoc->encode, + &srw_res->diagnostics, + &srw_res->num_diagnostics, + rr.uri, + rr.message, + rr.details); + srw_res->recordId = rr.record_id; + srw_res->operationStatus = rr.operation_status; + srw_res->recordVersion = rr.record_version; + srw_res->recordChecksum = rr.record_checksum; + srw_res->extraResponseData = rr.extra_response_data; + srw_res->record.recordPosition = 0; + if (srw_res->num_diagnostics == 0 && rr.record_data) + { + srw_res->record.recordSchema = rr.record_schema; + srw_res->record.recordPacking = srw_req->record.recordPacking; + srw_res->record.recordData_buf = rr.record_data; + srw_res->record.recordData_len = strlen(rr.record_data); + srw_res->extra_record = rr.response_extra_record; + + } + else + srw_res->record.recordData_len = 0; + *http_code = 200; + } +} + +/* check if path is OK (1); BAD (0) */ +static int check_path(const char *path) +{ + if (*path != '/') + return 0; + if (strstr(path, "..")) + return 0; + return 1; +} + +static char *read_file(const char *fname, ODR o, int *sz) +{ + char *buf; + FILE *inf = fopen(fname, "rb"); + if (!inf) + return 0; + + fseek(inf, 0L, SEEK_END); + *sz = ftell(inf); + rewind(inf); + buf = odr_malloc(o, *sz); + fread(buf, 1, *sz, inf); + fclose(inf); + return buf; +} + +static void process_http_request(association *assoc, request *req) +{ + Z_HTTP_Request *hreq = req->gdu_request->u.HTTP_Request; + ODR o = assoc->encode; + int r = 2; /* 2=NOT TAKEN, 1=TAKEN, 0=SOAP TAKEN */ + Z_SRW_PDU *sr = 0; + Z_SOAP *soap_package = 0; + Z_GDU *p = 0; + char *charset = 0; + Z_HTTP_Response *hres = 0; + int keepalive = 1; + const char *stylesheet = 0; /* for now .. set later */ + Z_SRW_diagnostic *diagnostic = 0; + int num_diagnostic = 0; + const char *host = z_HTTP_header_lookup(hreq->headers, "Host"); + + if (!control_association(assoc, host, 0)) + { + p = z_get_HTTP_Response(o, 404); + r = 1; + } + if (r == 2 && assoc->server && assoc->server->docpath + && hreq->path[0] == '/' + && + /* check if path is a proper prefix of documentroot */ + strncmp(hreq->path+1, assoc->server->docpath, + strlen(assoc->server->docpath)) + == 0) + { + if (!check_path(hreq->path)) + { + yaz_log(YLOG_LOG, "File %s access forbidden", hreq->path+1); + p = z_get_HTTP_Response(o, 404); + } + else + { + int content_size = 0; + char *content_buf = read_file(hreq->path+1, o, &content_size); + if (!content_buf) + { + yaz_log(YLOG_LOG, "File %s not found", hreq->path+1); + p = z_get_HTTP_Response(o, 404); + } + else + { + const char *ctype = 0; + yaz_mime_types types = yaz_mime_types_create(); + + yaz_mime_types_add(types, "xsl", "application/xml"); + yaz_mime_types_add(types, "xml", "application/xml"); + yaz_mime_types_add(types, "css", "text/css"); + yaz_mime_types_add(types, "html", "text/html"); + yaz_mime_types_add(types, "htm", "text/html"); + yaz_mime_types_add(types, "txt", "text/plain"); + yaz_mime_types_add(types, "js", "application/x-javascript"); + + yaz_mime_types_add(types, "gif", "image/gif"); + yaz_mime_types_add(types, "png", "image/png"); + yaz_mime_types_add(types, "jpg", "image/jpeg"); + yaz_mime_types_add(types, "jpeg", "image/jpeg"); + + ctype = yaz_mime_lookup_fname(types, hreq->path); + if (!ctype) + { + yaz_log(YLOG_LOG, "No mime type for %s", hreq->path+1); + p = z_get_HTTP_Response(o, 404); + } + else + { + p = z_get_HTTP_Response(o, 200); + hres = p->u.HTTP_Response; + hres->content_buf = content_buf; + hres->content_len = content_size; + z_HTTP_header_add(o, &hres->headers, "Content-Type", ctype); + } + yaz_mime_types_destroy(types); + } + } + r = 1; + } + + if (r == 2) + { + r = yaz_srw_decode(hreq, &sr, &soap_package, assoc->decode, &charset); + yaz_log(YLOG_DEBUG, "yaz_srw_decode returned %d", r); + } + if (r == 2) /* not taken */ + { + r = yaz_sru_decode(hreq, &sr, &soap_package, assoc->decode, &charset, + &diagnostic, &num_diagnostic); + yaz_log(YLOG_DEBUG, "yaz_sru_decode returned %d", r); + } + if (r == 0) /* decode SRW/SRU OK .. */ + { + int http_code = 200; + if (sr->which == Z_SRW_searchRetrieve_request) + { + Z_SRW_PDU *res = + yaz_srw_get(assoc->encode, Z_SRW_searchRetrieve_response); + + stylesheet = sr->u.request->stylesheet; + if (num_diagnostic) + { + res->u.response->diagnostics = diagnostic; + res->u.response->num_diagnostics = num_diagnostic; + } + else + { + srw_bend_search(assoc, req, sr, res->u.response, + &http_code); + } + if (http_code == 200) + soap_package->u.generic->p = res; + } + else if (sr->which == Z_SRW_explain_request) + { + Z_SRW_PDU *res = yaz_srw_get(o, Z_SRW_explain_response); + stylesheet = sr->u.explain_request->stylesheet; + if (num_diagnostic) + { + res->u.explain_response->diagnostics = diagnostic; + res->u.explain_response->num_diagnostics = num_diagnostic; + } + srw_bend_explain(assoc, req, sr, + res->u.explain_response, &http_code); + if (http_code == 200) + soap_package->u.generic->p = res; + } + else if (sr->which == Z_SRW_scan_request) + { + Z_SRW_PDU *res = yaz_srw_get(o, Z_SRW_scan_response); + stylesheet = sr->u.scan_request->stylesheet; + if (num_diagnostic) + { + res->u.scan_response->diagnostics = diagnostic; + res->u.scan_response->num_diagnostics = num_diagnostic; + } + srw_bend_scan(assoc, req, sr, + res->u.scan_response, &http_code); + if (http_code == 200) + soap_package->u.generic->p = res; + } + else if (sr->which == Z_SRW_update_request) + { + Z_SRW_PDU *res = yaz_srw_get(o, Z_SRW_update_response); + yaz_log(YLOG_DEBUG, "handling SRW UpdateRequest"); + if (num_diagnostic) + { + res->u.update_response->diagnostics = diagnostic; + res->u.update_response->num_diagnostics = num_diagnostic; + } + yaz_log(YLOG_DEBUG, "num_diag = %d", res->u.update_response->num_diagnostics ); + srw_bend_update(assoc, req, sr, + res->u.update_response, &http_code); + if (http_code == 200) + soap_package->u.generic->p = res; + } + else + { + yaz_log(log_request, "SOAP ERROR"); + /* FIXME - what error, what query */ + http_code = 500; + z_soap_error(assoc->encode, soap_package, + "SOAP-ENV:Client", "Bad method", 0); + } + if (http_code == 200 || http_code == 500) + { + static Z_SOAP_Handler soap_handlers[4] = { +#if YAZ_HAVE_XML2 + {"http://www.loc.gov/zing/srw/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {"http://www.loc.gov/zing/srw/v1.0/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {"http://www.loc.gov/zing/srw/update/", 0, + (Z_SOAP_fun) yaz_ucp_codec}, +#endif + {0, 0, 0} + }; + char ctype[60]; + int ret; + p = z_get_HTTP_Response(o, 200); + hres = p->u.HTTP_Response; + + if (!stylesheet && assoc->server) + stylesheet = assoc->server->stylesheet; + + /* empty stylesheet means NO stylesheet */ + if (stylesheet && *stylesheet == '\0') + stylesheet = 0; + + ret = z_soap_codec_enc_xsl(assoc->encode, &soap_package, + &hres->content_buf, &hres->content_len, + soap_handlers, charset, stylesheet); + hres->code = http_code; + + strcpy(ctype, "text/xml"); + if (charset) + { + strcat(ctype, "; charset="); + strcat(ctype, charset); + } + z_HTTP_header_add(o, &hres->headers, "Content-Type", ctype); + } + else + p = z_get_HTTP_Response(o, http_code); + } + + if (p == 0) + p = z_get_HTTP_Response(o, 500); + hres = p->u.HTTP_Response; + if (!strcmp(hreq->version, "1.0")) + { + const char *v = z_HTTP_header_lookup(hreq->headers, "Connection"); + if (v && !strcmp(v, "Keep-Alive")) + keepalive = 1; + else + keepalive = 0; + hres->version = "1.0"; + } + else + { + const char *v = z_HTTP_header_lookup(hreq->headers, "Connection"); + if (v && !strcmp(v, "close")) + keepalive = 0; + else + keepalive = 1; + hres->version = "1.1"; + } + if (!keepalive) + { + z_HTTP_header_add(o, &hres->headers, "Connection", "close"); + assoc->state = ASSOC_DEAD; + assoc->cs_get_mask = 0; + } + else + { + int t; + const char *alive = z_HTTP_header_lookup(hreq->headers, "Keep-Alive"); + + if (alive && isdigit(*(const unsigned char *) alive)) + t = atoi(alive); + else + t = 15; + if (t < 0 || t > 3600) + t = 3600; + iochan_settimeout(assoc->client_chan,t); + z_HTTP_header_add(o, &hres->headers, "Connection", "Keep-Alive"); + } + process_gdu_response(assoc, req, p); +} + +static void process_gdu_request(association *assoc, request *req) +{ + if (req->gdu_request->which == Z_GDU_Z3950) + { + char *msg = 0; + req->apdu_request = req->gdu_request->u.z3950; + if (process_z_request(assoc, req, &msg) < 0) + do_close_req(assoc, Z_Close_systemProblem, msg, req); + } + else if (req->gdu_request->which == Z_GDU_HTTP_Request) + process_http_request(assoc, req); + else + { + do_close_req(assoc, Z_Close_systemProblem, "bad protocol packet", req); + } +} + +/* + * Initiate request processing. + */ +static int process_z_request(association *assoc, request *req, char **msg) +{ + int fd = -1; + Z_APDU *res; + int retval; + + *msg = "Unknown Error"; + assert(req && req->state == REQUEST_IDLE); + if (req->apdu_request->which != Z_APDU_initRequest && !assoc->init) + { + *msg = "Missing InitRequest"; + return -1; + } + switch (req->apdu_request->which) + { + case Z_APDU_initRequest: + res = process_initRequest(assoc, req); break; + case Z_APDU_searchRequest: + res = process_searchRequest(assoc, req, &fd); break; + case Z_APDU_presentRequest: + res = process_presentRequest(assoc, req, &fd); break; + case Z_APDU_scanRequest: + if (assoc->init->bend_scan) + res = process_scanRequest(assoc, req, &fd); + else + { + *msg = "Cannot handle Scan APDU"; + return -1; + } + break; + case Z_APDU_extendedServicesRequest: + if (assoc->init->bend_esrequest) + res = process_ESRequest(assoc, req, &fd); + else + { + *msg = "Cannot handle Extended Services APDU"; + return -1; + } + break; + case Z_APDU_sortRequest: + if (assoc->init->bend_sort) + res = process_sortRequest(assoc, req, &fd); + else + { + *msg = "Cannot handle Sort APDU"; + return -1; + } + break; + case Z_APDU_close: + process_close(assoc, req); + return 0; + case Z_APDU_deleteResultSetRequest: + if (assoc->init->bend_delete) + res = process_deleteRequest(assoc, req, &fd); + else + { + *msg = "Cannot handle Delete APDU"; + return -1; + } + break; + case Z_APDU_segmentRequest: + if (assoc->init->bend_segment) + { + res = process_segmentRequest (assoc, req); + } + else + { + *msg = "Cannot handle Segment APDU"; + return -1; + } + break; + case Z_APDU_triggerResourceControlRequest: + return 0; + default: + *msg = "Bad APDU received"; + return -1; + } + if (res) + { + yaz_log(YLOG_DEBUG, " result immediately available"); + retval = process_z_response(assoc, req, res); + } + else if (fd < 0) + { + yaz_log(YLOG_DEBUG, " result unavailble"); + retval = 0; + } + else /* no result yet - one will be provided later */ + { + IOCHAN chan; + + /* Set up an I/O handler for the fd supplied by the backend */ + + yaz_log(YLOG_DEBUG, " establishing handler for result"); + req->state = REQUEST_PENDING; + if (!(chan = iochan_create(fd, backend_response, EVENT_INPUT, 0))) + abort(); + iochan_setdata(chan, assoc); + retval = 0; + } + return retval; +} + +/* + * Handle message from the backend. + */ +void backend_response(IOCHAN i, int event) +{ + association *assoc = (association *)iochan_getdata(i); + request *req = request_head(&assoc->incoming); + Z_APDU *res; + int fd; + + yaz_log(YLOG_DEBUG, "backend_response"); + assert(assoc && req && req->state != REQUEST_IDLE); + /* determine what it is we're waiting for */ + switch (req->apdu_request->which) + { + case Z_APDU_searchRequest: + res = response_searchRequest(assoc, req, 0, &fd); break; +#if 0 + case Z_APDU_presentRequest: + res = response_presentRequest(assoc, req, 0, &fd); break; + case Z_APDU_scanRequest: + res = response_scanRequest(assoc, req, 0, &fd); break; +#endif + default: + yaz_log(YLOG_FATAL, "Serious programmer's lapse or bug"); + abort(); + } + if ((res && process_z_response(assoc, req, res) < 0) || fd < 0) + { + yaz_log(YLOG_WARN, "Fatal error when talking to backend"); + do_close(assoc, Z_Close_systemProblem, 0); + iochan_destroy(i); + return; + } + else if (!res) /* no result yet - try again later */ + { + yaz_log(YLOG_DEBUG, " no result yet"); + iochan_setfd(i, fd); /* in case fd has changed */ + } +} + +/* + * Encode response, and transfer the request structure to the outgoing queue. + */ +static int process_gdu_response(association *assoc, request *req, Z_GDU *res) +{ + odr_setbuf(assoc->encode, req->response, req->size_response, 1); + + if (assoc->print) + { + if (!z_GDU(assoc->print, &res, 0, 0)) + yaz_log(YLOG_WARN, "ODR print error: %s", + odr_errmsg(odr_geterror(assoc->print))); + odr_reset(assoc->print); + } + if (!z_GDU(assoc->encode, &res, 0, 0)) + { + yaz_log(YLOG_WARN, "ODR error when encoding PDU: %s [element %s]", + odr_errmsg(odr_geterror(assoc->decode)), + odr_getelement(assoc->decode)); + return -1; + } + req->response = odr_getbuf(assoc->encode, &req->len_response, + &req->size_response); + odr_setbuf(assoc->encode, 0, 0, 0); /* don'txfree if we abort later */ + odr_reset(assoc->encode); + req->state = REQUEST_IDLE; + request_enq(&assoc->outgoing, req); + /* turn the work over to the ir_session handler */ + iochan_setflag(assoc->client_chan, EVENT_OUTPUT); + assoc->cs_put_mask = EVENT_OUTPUT; + /* Is there more work to be done? give that to the input handler too */ +#if 1 + if (request_head(&assoc->incoming)) + { + yaz_log (YLOG_DEBUG, "more work to be done"); + iochan_setevent(assoc->client_chan, EVENT_WORK); + } +#endif + return 0; +} + +/* + * Encode response, and transfer the request structure to the outgoing queue. + */ +static int process_z_response(association *assoc, request *req, Z_APDU *res) +{ + Z_GDU *gres = (Z_GDU *) odr_malloc(assoc->encode, sizeof(*res)); + gres->which = Z_GDU_Z3950; + gres->u.z3950 = res; + + return process_gdu_response(assoc, req, gres); +} + +static char *get_vhost(Z_OtherInformation *otherInfo) +{ + return yaz_oi_get_string_oidval(&otherInfo, VAL_PROXY, 1, 0); +} + +/* + * Handle init request. + * At the moment, we don't check the options + * anywhere else in the code - we just try not to do anything that would + * break a naive client. We'll toss 'em into the association block when + * we need them there. + */ +static Z_APDU *process_initRequest(association *assoc, request *reqb) +{ + Z_InitRequest *req = reqb->apdu_request->u.initRequest; + Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_initResponse); + Z_InitResponse *resp = apdu->u.initResponse; + bend_initresult *binitres; + char *version; + char options[140]; + statserv_options_block *cb = 0; /* by default no control for backend */ + + if (control_association(assoc, get_vhost(req->otherInfo), 1)) + cb = statserv_getcontrol(); /* got control block for backend */ + + if (cb && assoc->backend) + (*cb->bend_close)(assoc->backend); + + yaz_log(log_requestdetail, "Got initRequest"); + if (req->implementationId) + yaz_log(log_requestdetail, "Id: %s", + req->implementationId); + if (req->implementationName) + yaz_log(log_requestdetail, "Name: %s", + req->implementationName); + if (req->implementationVersion) + yaz_log(log_requestdetail, "Version: %s", + req->implementationVersion); + + assoc_init_reset(assoc); + + assoc->init->auth = req->idAuthentication; + assoc->init->referenceId = req->referenceId; + + if (ODR_MASK_GET(req->options, Z_Options_negotiationModel)) + { + Z_CharSetandLanguageNegotiation *negotiation = + yaz_get_charneg_record (req->otherInfo); + if (negotiation && + negotiation->which == Z_CharSetandLanguageNegotiation_proposal) + assoc->init->charneg_request = negotiation; + } + + assoc->backend = 0; + if (cb) + { + if (req->implementationVersion) + yaz_log(log_requestdetail, "Config: %s", + cb->configname); + + iochan_settimeout(assoc->client_chan, cb->idle_timeout * 60); + + /* we have a backend control block, so call that init function */ + if (!(binitres = (*cb->bend_init)(assoc->init))) + { + yaz_log(YLOG_WARN, "Bad response from backend."); + return 0; + } + assoc->backend = binitres->handle; + } + else + { + /* no backend. return error */ + binitres = odr_malloc(assoc->encode, sizeof(*binitres)); + binitres->errstring = 0; + binitres->errcode = YAZ_BIB1_PERMANENT_SYSTEM_ERROR; + iochan_settimeout(assoc->client_chan, 10); + } + if ((assoc->init->bend_sort)) + yaz_log (YLOG_DEBUG, "Sort handler installed"); + if ((assoc->init->bend_search)) + yaz_log (YLOG_DEBUG, "Search handler installed"); + if ((assoc->init->bend_present)) + yaz_log (YLOG_DEBUG, "Present handler installed"); + if ((assoc->init->bend_esrequest)) + yaz_log (YLOG_DEBUG, "ESRequest handler installed"); + if ((assoc->init->bend_delete)) + yaz_log (YLOG_DEBUG, "Delete handler installed"); + if ((assoc->init->bend_scan)) + yaz_log (YLOG_DEBUG, "Scan handler installed"); + if ((assoc->init->bend_segment)) + yaz_log (YLOG_DEBUG, "Segment handler installed"); + + resp->referenceId = req->referenceId; + *options = '\0'; + /* let's tell the client what we can do */ + if (ODR_MASK_GET(req->options, Z_Options_search)) + { + ODR_MASK_SET(resp->options, Z_Options_search); + strcat(options, "srch"); + } + if (ODR_MASK_GET(req->options, Z_Options_present)) + { + ODR_MASK_SET(resp->options, Z_Options_present); + strcat(options, " prst"); + } + if (ODR_MASK_GET(req->options, Z_Options_delSet) && + assoc->init->bend_delete) + { + ODR_MASK_SET(resp->options, Z_Options_delSet); + strcat(options, " del"); + } + if (ODR_MASK_GET(req->options, Z_Options_extendedServices) && + assoc->init->bend_esrequest) + { + ODR_MASK_SET(resp->options, Z_Options_extendedServices); + strcat (options, " extendedServices"); + } + if (ODR_MASK_GET(req->options, Z_Options_namedResultSets)) + { + ODR_MASK_SET(resp->options, Z_Options_namedResultSets); + strcat(options, " namedresults"); + } + if (ODR_MASK_GET(req->options, Z_Options_scan) && assoc->init->bend_scan) + { + ODR_MASK_SET(resp->options, Z_Options_scan); + strcat(options, " scan"); + } + if (ODR_MASK_GET(req->options, Z_Options_concurrentOperations)) + { + ODR_MASK_SET(resp->options, Z_Options_concurrentOperations); + strcat(options, " concurrop"); + } + if (ODR_MASK_GET(req->options, Z_Options_sort) && assoc->init->bend_sort) + { + ODR_MASK_SET(resp->options, Z_Options_sort); + strcat(options, " sort"); + } + + if (ODR_MASK_GET(req->options, Z_Options_negotiationModel) + && assoc->init->charneg_response) + { + Z_OtherInformation **p; + Z_OtherInformationUnit *p0; + + yaz_oi_APDU(apdu, &p); + + if ((p0=yaz_oi_update(p, assoc->encode, NULL, 0, 0))) { + ODR_MASK_SET(resp->options, Z_Options_negotiationModel); + + p0->which = Z_OtherInfo_externallyDefinedInfo; + p0->information.externallyDefinedInfo = + assoc->init->charneg_response; + } + ODR_MASK_SET(resp->options, Z_Options_negotiationModel); + strcat(options, " negotiation"); + } + + if (ODR_MASK_GET(req->options, Z_Options_triggerResourceCtrl)) + ODR_MASK_SET(resp->options, Z_Options_triggerResourceCtrl); + + if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_1)) + { + ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_1); + assoc->version = 1; /* 1 & 2 are equivalent */ + } + if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_2)) + { + ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_2); + assoc->version = 2; + } + if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_3)) + { + ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_3); + assoc->version = 3; + } + + yaz_log(log_requestdetail, "Negotiated to v%d: %s", assoc->version, options); + assoc->maximumRecordSize = *req->maximumRecordSize; + + if (cb && assoc->maximumRecordSize > cb->maxrecordsize) + assoc->maximumRecordSize = cb->maxrecordsize; + assoc->preferredMessageSize = *req->preferredMessageSize; + if (assoc->preferredMessageSize > assoc->maximumRecordSize) + assoc->preferredMessageSize = assoc->maximumRecordSize; + + resp->preferredMessageSize = &assoc->preferredMessageSize; + resp->maximumRecordSize = &assoc->maximumRecordSize; + + resp->implementationId = odr_prepend(assoc->encode, + assoc->init->implementation_id, + resp->implementationId); + + resp->implementationName = odr_prepend(assoc->encode, + assoc->init->implementation_name, + odr_prepend(assoc->encode, "GFS", resp->implementationName)); + + version = odr_strdup(assoc->encode, "$Revision: 1.97 $"); + if (strlen(version) > 10) /* check for unexpanded CVS strings */ + version[strlen(version)-2] = '\0'; + resp->implementationVersion = odr_prepend(assoc->encode, + assoc->init->implementation_version, + odr_prepend(assoc->encode, &version[11], + resp->implementationVersion)); + + if (binitres->errcode) + { + assoc->state = ASSOC_DEAD; + resp->userInformationField = + init_diagnostics(assoc->encode, binitres->errcode, + binitres->errstring); + *resp->result = 0; + } + if (log_request) + { + if (!req->idAuthentication) + yaz_log(log_request, "Auth none"); + else if (req->idAuthentication->which == Z_IdAuthentication_open) + { + const char *open = req->idAuthentication->u.open; + const char *slash = strchr(open, '/'); + int len; + if (slash) + len = slash - open; + else + len = strlen(open); + yaz_log(log_request, "Auth open %.*s", len, open); + } + else if (req->idAuthentication->which == Z_IdAuthentication_idPass) + { + const char *user = req->idAuthentication->u.idPass->userId; + const char *group = req->idAuthentication->u.idPass->groupId; + yaz_log(log_request, "Auth idPass %s %s", + user ? user : "-", group ? group : "-"); + } + else if (req->idAuthentication->which + == Z_IdAuthentication_anonymous) + { + yaz_log(log_request, "Auth anonymous"); + } + else + { + yaz_log(log_request, "Auth other"); + } + } + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + wrbuf_printf(wr, "Init "); + if (binitres->errcode) + wrbuf_printf(wr, "ERROR %d", binitres->errcode); + else + wrbuf_printf(wr, "OK -"); + wrbuf_printf(wr, " ID:%s Name:%s Version:%s", + (req->implementationId ? req->implementationId :"-"), + (req->implementationName ? + req->implementationName : "-"), + (req->implementationVersion ? + req->implementationVersion : "-") + ); + yaz_log(log_request, "%s", wrbuf_buf(wr)); + wrbuf_free(wr, 1); + } + return apdu; +} + +/* + * Set the specified `errcode' and `errstring' into a UserInfo-1 + * external to be returned to the client in accordance with Z35.90 + * Implementor Agreement 5 (Returning diagnostics in an InitResponse): + * http://lcweb.loc.gov/z3950/agency/agree/initdiag.html + */ +static Z_External *init_diagnostics(ODR odr, int error, const char *addinfo) +{ + yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), + addinfo ? " -- " : "", addinfo ? addinfo : ""); + return zget_init_diagnostics(odr, error, addinfo); +} + +/* + * nonsurrogate diagnostic record. + */ +static Z_Records *diagrec(association *assoc, int error, char *addinfo) +{ + Z_Records *rec = (Z_Records *) odr_malloc (assoc->encode, sizeof(*rec)); + + yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), + addinfo ? " -- " : "", addinfo ? addinfo : ""); + + rec->which = Z_Records_NSD; + rec->u.nonSurrogateDiagnostic = zget_DefaultDiagFormat(assoc->encode, + error, addinfo); + return rec; +} + +/* + * surrogate diagnostic. + */ +static Z_NamePlusRecord *surrogatediagrec(association *assoc, + const char *dbname, + int error, const char *addinfo) +{ + yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), + addinfo ? " -- " : "", addinfo ? addinfo : ""); + return zget_surrogateDiagRec(assoc->encode, dbname, error, addinfo); +} + +static Z_Records *pack_records(association *a, char *setname, int start, + int *num, Z_RecordComposition *comp, + int *next, int *pres, oid_value format, + Z_ReferenceId *referenceId, + int *oid, int *errcode) +{ + int recno, total_length = 0, toget = *num, dumped_records = 0; + Z_Records *records = + (Z_Records *) odr_malloc (a->encode, sizeof(*records)); + Z_NamePlusRecordList *reclist = + (Z_NamePlusRecordList *) odr_malloc (a->encode, sizeof(*reclist)); + Z_NamePlusRecord **list = + (Z_NamePlusRecord **) odr_malloc (a->encode, sizeof(*list) * toget); + + records->which = Z_Records_DBOSD; + records->u.databaseOrSurDiagnostics = reclist; + reclist->num_records = 0; + reclist->records = list; + *pres = Z_PresentStatus_success; + *num = 0; + *next = 0; + + yaz_log(log_requestdetail, "Request to pack %d+%d %s", start, toget, setname); + yaz_log(log_requestdetail, "pms=%d, mrs=%d", a->preferredMessageSize, + a->maximumRecordSize); + for (recno = start; reclist->num_records < toget; recno++) + { + bend_fetch_rr freq; + Z_NamePlusRecord *thisrec; + int this_length = 0; + /* + * we get the number of bytes allocated on the stream before any + * allocation done by the backend - this should give us a reasonable + * idea of the total size of the data so far. + */ + total_length = odr_total(a->encode) - dumped_records; + freq.errcode = 0; + freq.errstring = 0; + freq.basename = 0; + freq.len = 0; + freq.record = 0; + freq.last_in_set = 0; + freq.setname = setname; + freq.surrogate_flag = 0; + freq.number = recno; + freq.comp = comp; + freq.request_format = format; + freq.request_format_raw = oid; + freq.output_format = format; + freq.output_format_raw = 0; + freq.stream = a->encode; + freq.print = a->print; + freq.referenceId = referenceId; + freq.schema = 0; + + retrieve_fetch(a, &freq); + + *next = freq.last_in_set ? 0 : recno + 1; + + /* backend should be able to signal whether error is system-wide + or only pertaining to current record */ + if (freq.errcode) + { + if (!freq.surrogate_flag) + { + char s[20]; + *pres = Z_PresentStatus_failure; + /* for 'present request out of range', + set addinfo to record position if not set */ + if (freq.errcode == YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE && + freq.errstring == 0) + { + sprintf (s, "%d", recno); + freq.errstring = s; + } + if (errcode) + *errcode = freq.errcode; + return diagrec(a, freq.errcode, freq.errstring); + } + reclist->records[reclist->num_records] = + surrogatediagrec(a, freq.basename, freq.errcode, + freq.errstring); + reclist->num_records++; + continue; + } + if (freq.record == 0) /* no error and no record ? */ + { + *next = 0; /* signal end-of-set and stop */ + break; + } + if (freq.len >= 0) + this_length = freq.len; + else + this_length = odr_total(a->encode) - total_length - dumped_records; + yaz_log(YLOG_DEBUG, " fetched record, len=%d, total=%d dumped=%d", + this_length, total_length, dumped_records); + if (a->preferredMessageSize > 0 && + this_length + total_length > a->preferredMessageSize) + { + /* record is small enough, really */ + if (this_length <= a->preferredMessageSize && recno > start) + { + yaz_log(log_requestdetail, " Dropped last normal-sized record"); + *pres = Z_PresentStatus_partial_2; + break; + } + /* record can only be fetched by itself */ + if (this_length < a->maximumRecordSize) + { + yaz_log(log_requestdetail, " Record > prefmsgsz"); + if (toget > 1) + { + yaz_log(YLOG_DEBUG, " Dropped it"); + reclist->records[reclist->num_records] = + surrogatediagrec(a, freq.basename, 16, 0); + reclist->num_records++; + dumped_records += this_length; + continue; + } + } + else /* too big entirely */ + { + yaz_log(log_requestdetail, "Record > maxrcdsz this=%d max=%d", + this_length, a->maximumRecordSize); + reclist->records[reclist->num_records] = + surrogatediagrec(a, freq.basename, 17, 0); + reclist->num_records++; + dumped_records += this_length; + continue; + } + } + + if (!(thisrec = (Z_NamePlusRecord *) + odr_malloc(a->encode, sizeof(*thisrec)))) + return 0; + if (freq.basename) + thisrec->databaseName = odr_strdup(a->encode, freq.basename); + else + thisrec->databaseName = 0; + thisrec->which = Z_NamePlusRecord_databaseRecord; + + if (freq.output_format_raw) + { + struct oident *ident = oid_getentbyoid(freq.output_format_raw); + freq.output_format = ident->value; + } + thisrec->u.databaseRecord = z_ext_record(a->encode, freq.output_format, + freq.record, freq.len); + if (!thisrec->u.databaseRecord) + return 0; + reclist->records[reclist->num_records] = thisrec; + reclist->num_records++; + } + *num = reclist->num_records; + return records; +} + +static Z_APDU *process_searchRequest(association *assoc, request *reqb, + int *fd) +{ + Z_SearchRequest *req = reqb->apdu_request->u.searchRequest; + bend_search_rr *bsrr = + (bend_search_rr *)nmem_malloc (reqb->request_mem, sizeof(*bsrr)); + + yaz_log(log_requestdetail, "Got SearchRequest."); + bsrr->fd = fd; + bsrr->request = reqb; + bsrr->association = assoc; + bsrr->referenceId = req->referenceId; + save_referenceId (reqb, bsrr->referenceId); + bsrr->srw_sortKeys = 0; + bsrr->srw_setname = 0; + bsrr->srw_setnameIdleTime = 0; + + yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName); + if (req->databaseNames) + { + int i; + for (i = 0; i < req->num_databaseNames; i++) + yaz_log (log_requestdetail, "Database '%s'", req->databaseNames[i]); + } + + yaz_log_zquery_level(log_requestdetail,req->query); + + if (assoc->init->bend_search) + { + bsrr->setname = req->resultSetName; + bsrr->replace_set = *req->replaceIndicator; + bsrr->num_bases = req->num_databaseNames; + bsrr->basenames = req->databaseNames; + bsrr->query = req->query; + bsrr->stream = assoc->encode; + nmem_transfer(bsrr->stream->mem, reqb->request_mem); + bsrr->decode = assoc->decode; + bsrr->print = assoc->print; + bsrr->hits = 0; + bsrr->errcode = 0; + bsrr->errstring = NULL; + bsrr->search_info = NULL; + + if (assoc->server && assoc->server->cql_transform + && req->query->which == Z_Query_type_104 + && req->query->u.type_104->which == Z_External_CQL) + { + /* have a CQL query and a CQL to PQF transform .. */ + int srw_errcode = + cql2pqf(bsrr->stream, req->query->u.type_104->u.cql, + assoc->server->cql_transform, bsrr->query); + if (srw_errcode) + bsrr->errcode = yaz_diag_srw_to_bib1(srw_errcode); + } + if (!bsrr->errcode) + (assoc->init->bend_search)(assoc->backend, bsrr); + if (!bsrr->request) /* backend not ready with the search response */ + return 0; /* should not be used any more */ + } + else + { + /* FIXME - make a diagnostic for it */ + yaz_log(YLOG_WARN,"Search not supported ?!?!"); + } + return response_searchRequest(assoc, reqb, bsrr, fd); +} + +int bend_searchresponse(void *handle, bend_search_rr *bsrr) {return 0;} + +/* + * Prepare a searchresponse based on the backend results. We probably want + * to look at making the fetching of records nonblocking as well, but + * so far, we'll keep things simple. + * If bsrt is null, that means we're called in response to a communications + * event, and we'll have to get the response for ourselves. + */ +static Z_APDU *response_searchRequest(association *assoc, request *reqb, + bend_search_rr *bsrt, int *fd) +{ + Z_SearchRequest *req = reqb->apdu_request->u.searchRequest; + Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); + Z_SearchResponse *resp = (Z_SearchResponse *) + odr_malloc (assoc->encode, sizeof(*resp)); + int *nulint = odr_intdup (assoc->encode, 0); + bool_t *sr = odr_intdup(assoc->encode, 1); + int *next = odr_intdup(assoc->encode, 0); + int *none = odr_intdup(assoc->encode, Z_SearchResponse_none); + int returnedrecs=0; + + apdu->which = Z_APDU_searchResponse; + apdu->u.searchResponse = resp; + resp->referenceId = req->referenceId; + resp->additionalSearchInfo = 0; + resp->otherInfo = 0; + *fd = -1; + if (!bsrt && !bend_searchresponse(assoc->backend, bsrt)) + { + yaz_log(YLOG_FATAL, "Bad result from backend"); + return 0; + } + else if (bsrt->errcode) + { + resp->records = diagrec(assoc, bsrt->errcode, bsrt->errstring); + resp->resultCount = nulint; + resp->numberOfRecordsReturned = nulint; + resp->nextResultSetPosition = nulint; + resp->searchStatus = nulint; + resp->resultSetStatus = none; + resp->presentStatus = 0; + } + else + { + int *toget = odr_intdup(assoc->encode, 0); + int *presst = odr_intdup(assoc->encode, 0); + Z_RecordComposition comp, *compp = 0; + + yaz_log (log_requestdetail, "resultCount: %d", bsrt->hits); + + resp->records = 0; + resp->resultCount = &bsrt->hits; + + comp.which = Z_RecordComp_simple; + /* how many records does the user agent want, then? */ + if (bsrt->hits <= *req->smallSetUpperBound) + { + *toget = bsrt->hits; + if ((comp.u.simple = req->smallSetElementSetNames)) + compp = ∁ + } + else if (bsrt->hits < *req->largeSetLowerBound) + { + *toget = *req->mediumSetPresentNumber; + if (*toget > bsrt->hits) + *toget = bsrt->hits; + if ((comp.u.simple = req->mediumSetElementSetNames)) + compp = ∁ + } + else + *toget = 0; + + if (*toget && !resp->records) + { + oident *prefformat; + oid_value form; + + if (!(prefformat = oid_getentbyoid(req->preferredRecordSyntax))) + form = VAL_NONE; + else + form = prefformat->value; + + /* Call bend_present if defined */ + if (assoc->init->bend_present) + { + bend_present_rr *bprr = (bend_present_rr *) + nmem_malloc (reqb->request_mem, sizeof(*bprr)); + bprr->setname = req->resultSetName; + bprr->start = 1; + bprr->number = *toget; + bprr->format = form; + bprr->comp = compp; + bprr->referenceId = req->referenceId; + bprr->stream = assoc->encode; + bprr->print = assoc->print; + bprr->request = reqb; + bprr->association = assoc; + bprr->errcode = 0; + bprr->errstring = NULL; + (*assoc->init->bend_present)(assoc->backend, bprr); + + if (!bprr->request) + return 0; + if (bprr->errcode) + { + resp->records = diagrec(assoc, bprr->errcode, bprr->errstring); + *resp->presentStatus = Z_PresentStatus_failure; + } + } + + if (!resp->records) + resp->records = pack_records(assoc, req->resultSetName, 1, + toget, compp, next, presst, form, req->referenceId, + req->preferredRecordSyntax, NULL); + if (!resp->records) + return 0; + resp->numberOfRecordsReturned = toget; + returnedrecs = *toget; + resp->nextResultSetPosition = next; + resp->searchStatus = sr; + resp->resultSetStatus = 0; + resp->presentStatus = presst; + } + else + { + if (*resp->resultCount) + *next = 1; + resp->numberOfRecordsReturned = nulint; + resp->nextResultSetPosition = next; + resp->searchStatus = sr; + resp->resultSetStatus = 0; + resp->presentStatus = 0; + } + } + resp->additionalSearchInfo = bsrt->search_info; + + if (log_request) + { + int i; + WRBUF wr = wrbuf_alloc(); + + for (i = 0 ; i < req->num_databaseNames; i++){ + if (i) + wrbuf_printf(wr, "+"); + wrbuf_printf(wr, req->databaseNames[i]); + } + wrbuf_printf(wr, " "); + + if (bsrt->errcode) + wrbuf_printf(wr, "ERROR %d", bsrt->errcode); + else + wrbuf_printf(wr, "OK %d", bsrt->hits); + wrbuf_printf(wr, " %s 1+%d ", + req->resultSetName, returnedrecs); + yaz_query_to_wrbuf(wr, req->query); + + yaz_log(log_request, "Search %s", wrbuf_buf(wr)); + wrbuf_free(wr, 1); + } + return apdu; +} + +/* + * Maybe we got a little over-friendly when we designed bend_fetch to + * get only one record at a time. Some backends can optimise multiple-record + * fetches, and at any rate, there is some overhead involved in + * all that selecting and hopping around. Problem is, of course, that the + * frontend can't know ahead of time how many records it'll need to + * fill the negotiated PDU size. Annoying. Segmentation or not, Z/SR + * is downright lousy as a bulk data transfer protocol. + * + * To start with, we'll do the fetching of records from the backend + * in one operation: To save some trips in and out of the event-handler, + * and to simplify the interface to pack_records. At any rate, asynch + * operation is more fun in operations that have an unpredictable execution + * speed - which is normally more true for search than for present. + */ +static Z_APDU *process_presentRequest(association *assoc, request *reqb, + int *fd) +{ + Z_PresentRequest *req = reqb->apdu_request->u.presentRequest; + oident *prefformat; + oid_value form; + Z_APDU *apdu; + Z_PresentResponse *resp; + int *next; + int *num; + int errcode = 0; + const char *errstring = 0; + + yaz_log(log_requestdetail, "Got PresentRequest."); + + if (!(prefformat = oid_getentbyoid(req->preferredRecordSyntax))) + form = VAL_NONE; + else + form = prefformat->value; + resp = (Z_PresentResponse *)odr_malloc (assoc->encode, sizeof(*resp)); + resp->records = 0; + resp->presentStatus = odr_intdup(assoc->encode, 0); + if (assoc->init->bend_present) + { + bend_present_rr *bprr = (bend_present_rr *) + nmem_malloc (reqb->request_mem, sizeof(*bprr)); + bprr->setname = req->resultSetId; + bprr->start = *req->resultSetStartPoint; + bprr->number = *req->numberOfRecordsRequested; + bprr->format = form; + bprr->comp = req->recordComposition; + bprr->referenceId = req->referenceId; + bprr->stream = assoc->encode; + bprr->print = assoc->print; + bprr->request = reqb; + bprr->association = assoc; + bprr->errcode = 0; + bprr->errstring = NULL; + (*assoc->init->bend_present)(assoc->backend, bprr); + + if (!bprr->request) + return 0; /* should not happen */ + if (bprr->errcode) + { + resp->records = diagrec(assoc, bprr->errcode, bprr->errstring); + *resp->presentStatus = Z_PresentStatus_failure; + errcode = bprr->errcode; + errstring = bprr->errstring; + } + } + apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); + next = odr_intdup(assoc->encode, 0); + num = odr_intdup(assoc->encode, 0); + + apdu->which = Z_APDU_presentResponse; + apdu->u.presentResponse = resp; + resp->referenceId = req->referenceId; + resp->otherInfo = 0; + + if (!resp->records) + { + *num = *req->numberOfRecordsRequested; + resp->records = + pack_records(assoc, req->resultSetId, *req->resultSetStartPoint, + num, req->recordComposition, next, + resp->presentStatus, + form, req->referenceId, req->preferredRecordSyntax, + &errcode); + } + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + wrbuf_printf(wr, "Present "); + + if (*resp->presentStatus == Z_PresentStatus_failure) + wrbuf_printf(wr, "ERROR %d ", errcode); + else if (*resp->presentStatus == Z_PresentStatus_success) + wrbuf_printf(wr, "OK - "); + else + wrbuf_printf(wr, "Partial %d - ", *resp->presentStatus); + + wrbuf_printf(wr, " %s %d+%d ", + req->resultSetId, *req->resultSetStartPoint, + *req->numberOfRecordsRequested); + yaz_log(log_request, "%s", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + if (!resp->records) + return 0; + resp->numberOfRecordsReturned = num; + resp->nextResultSetPosition = next; + + return apdu; +} + +/* + * Scan was implemented rather in a hurry, and with support for only the basic + * elements of the service in the backend API. Suggestions are welcome. + */ +static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd) +{ + Z_ScanRequest *req = reqb->apdu_request->u.scanRequest; + Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); + Z_ScanResponse *res = (Z_ScanResponse *) + odr_malloc (assoc->encode, sizeof(*res)); + int *scanStatus = odr_intdup(assoc->encode, Z_Scan_failure); + int *numberOfEntriesReturned = odr_intdup(assoc->encode, 0); + Z_ListEntries *ents = (Z_ListEntries *) + odr_malloc (assoc->encode, sizeof(*ents)); + Z_DiagRecs *diagrecs_p = NULL; + oident *attset; + bend_scan_rr *bsrr = (bend_scan_rr *) + odr_malloc (assoc->encode, sizeof(*bsrr)); + struct scan_entry *save_entries; + + yaz_log(log_requestdetail, "Got ScanRequest"); + + apdu->which = Z_APDU_scanResponse; + apdu->u.scanResponse = res; + res->referenceId = req->referenceId; + + /* if step is absent, set it to 0 */ + res->stepSize = odr_intdup(assoc->encode, 0); + if (req->stepSize) + *res->stepSize = *req->stepSize; + + res->scanStatus = scanStatus; + res->numberOfEntriesReturned = numberOfEntriesReturned; + res->positionOfTerm = 0; + res->entries = ents; + ents->num_entries = 0; + ents->entries = NULL; + ents->num_nonsurrogateDiagnostics = 0; + ents->nonsurrogateDiagnostics = NULL; + res->attributeSet = 0; + res->otherInfo = 0; + + if (req->databaseNames) + { + int i; + for (i = 0; i < req->num_databaseNames; i++) + yaz_log (log_requestdetail, "Database '%s'", req->databaseNames[i]); + } + bsrr->scanClause = 0; + bsrr->errcode = 0; + bsrr->errstring = 0; + bsrr->num_bases = req->num_databaseNames; + bsrr->basenames = req->databaseNames; + bsrr->num_entries = *req->numberOfTermsRequested; + bsrr->term = req->termListAndStartPoint; + bsrr->referenceId = req->referenceId; + bsrr->stream = assoc->encode; + bsrr->print = assoc->print; + bsrr->step_size = res->stepSize; + bsrr->entries = 0; + /* For YAZ 2.0 and earlier it was the backend handler that + initialized entries (member display_term did not exist) + YAZ 2.0 and later sets 'entries' and initialize all members + including 'display_term'. If YAZ 2.0 or later sees that + entries was modified - we assume that it is an old handler and + that 'display_term' is _not_ set. + */ + if (bsrr->num_entries > 0) + { + int i; + bsrr->entries = odr_malloc(assoc->decode, sizeof(*bsrr->entries) * + bsrr->num_entries); + for (i = 0; inum_entries; i++) + { + bsrr->entries[i].term = 0; + bsrr->entries[i].occurrences = 0; + bsrr->entries[i].errcode = 0; + bsrr->entries[i].errstring = 0; + bsrr->entries[i].display_term = 0; + } + } + save_entries = bsrr->entries; /* save it so we can compare later */ + + if (req->attributeSet && + (attset = oid_getentbyoid(req->attributeSet)) && + (attset->oclass == CLASS_ATTSET || attset->oclass == CLASS_GENERAL)) + bsrr->attributeset = attset->value; + else + bsrr->attributeset = VAL_NONE; + log_scan_term_level (log_requestdetail, req->termListAndStartPoint, + bsrr->attributeset); + bsrr->term_position = req->preferredPositionInResponse ? + *req->preferredPositionInResponse : 1; + + ((int (*)(void *, bend_scan_rr *)) + (*assoc->init->bend_scan))(assoc->backend, bsrr); + + if (bsrr->errcode) + diagrecs_p = zget_DiagRecs(assoc->encode, + bsrr->errcode, bsrr->errstring); + else + { + int i; + Z_Entry **tab = (Z_Entry **) + odr_malloc (assoc->encode, sizeof(*tab) * bsrr->num_entries); + + if (bsrr->status == BEND_SCAN_PARTIAL) + *scanStatus = Z_Scan_partial_5; + else + *scanStatus = Z_Scan_success; + ents->entries = tab; + ents->num_entries = bsrr->num_entries; + res->numberOfEntriesReturned = &ents->num_entries; + res->positionOfTerm = &bsrr->term_position; + for (i = 0; i < bsrr->num_entries; i++) + { + Z_Entry *e; + Z_TermInfo *t; + Odr_oct *o; + + tab[i] = e = (Z_Entry *)odr_malloc(assoc->encode, sizeof(*e)); + if (bsrr->entries[i].occurrences >= 0) + { + e->which = Z_Entry_termInfo; + e->u.termInfo = t = (Z_TermInfo *) + odr_malloc(assoc->encode, sizeof(*t)); + t->suggestedAttributes = 0; + t->displayTerm = 0; + if (save_entries == bsrr->entries && + bsrr->entries[i].display_term) + { + /* the entries was _not_ set by the handler. So it's + safe to test for new member display_term. It is + NULL'ed by us. + */ + t->displayTerm = odr_strdup(assoc->encode, + bsrr->entries[i].display_term); + } + t->alternativeTerm = 0; + t->byAttributes = 0; + t->otherTermInfo = 0; + t->globalOccurrences = &bsrr->entries[i].occurrences; + t->term = (Z_Term *) + odr_malloc(assoc->encode, sizeof(*t->term)); + t->term->which = Z_Term_general; + t->term->u.general = o = + (Odr_oct *)odr_malloc(assoc->encode, sizeof(Odr_oct)); + o->buf = (unsigned char *) + odr_malloc(assoc->encode, o->len = o->size = + strlen(bsrr->entries[i].term)); + memcpy(o->buf, bsrr->entries[i].term, o->len); + yaz_log(YLOG_DEBUG, " term #%d: '%s' (%d)", i, + bsrr->entries[i].term, bsrr->entries[i].occurrences); + } + else + { + Z_DiagRecs *drecs = zget_DiagRecs(assoc->encode, + bsrr->entries[i].errcode, + bsrr->entries[i].errstring); + assert (drecs->num_diagRecs == 1); + e->which = Z_Entry_surrogateDiagnostic; + assert (drecs->diagRecs[0]); + e->u.surrogateDiagnostic = drecs->diagRecs[0]; + } + } + } + if (diagrecs_p) + { + ents->num_nonsurrogateDiagnostics = diagrecs_p->num_diagRecs; + ents->nonsurrogateDiagnostics = diagrecs_p->diagRecs; + } + if (log_request) + { + int i; + WRBUF wr = wrbuf_alloc(); + wrbuf_printf(wr, "Scan "); + for (i = 0 ; i < req->num_databaseNames; i++){ + if (i) + wrbuf_printf(wr, "+"); + wrbuf_printf(wr, req->databaseNames[i]); + } + wrbuf_printf(wr, " "); + + if (bsrr->errcode){ + wr_diag(wr, bsrr->errcode, bsrr->errstring); + wrbuf_printf(wr, " "); + } + else + wrbuf_printf(wr, "OK "); + /* else if (*res->scanStatus == Z_Scan_success) */ + /* wrbuf_printf(wr, "OK "); */ + /* else */ + /* wrbuf_printf(wr, "Partial "); */ + + if (*res->numberOfEntriesReturned) + wrbuf_printf(wr, "%d - ", *res->numberOfEntriesReturned); + else + wrbuf_printf(wr, "0 - "); + + wrbuf_printf(wr, "%d+%d+%d ", + (req->preferredPositionInResponse ? + *req->preferredPositionInResponse : 1), + *req->numberOfTermsRequested, + (res->stepSize ? *res->stepSize : 1)); + + yaz_scan_to_wrbuf(wr, req->termListAndStartPoint, + bsrr->attributeset); + yaz_log(log_request, "%s", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + return apdu; +} + +static Z_APDU *process_sortRequest(association *assoc, request *reqb, + int *fd) +{ + int i; + Z_SortRequest *req = reqb->apdu_request->u.sortRequest; + Z_SortResponse *res = (Z_SortResponse *) + odr_malloc (assoc->encode, sizeof(*res)); + bend_sort_rr *bsrr = (bend_sort_rr *) + odr_malloc (assoc->encode, sizeof(*bsrr)); + + Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); + + yaz_log(log_requestdetail, "Got SortRequest."); + + bsrr->num_input_setnames = req->num_inputResultSetNames; + for (i=0;inum_inputResultSetNames;i++) + yaz_log(log_requestdetail, "Input resultset: '%s'", + req->inputResultSetNames[i]); + bsrr->input_setnames = req->inputResultSetNames; + bsrr->referenceId = req->referenceId; + bsrr->output_setname = req->sortedResultSetName; + yaz_log(log_requestdetail, "Output resultset: '%s'", + req->sortedResultSetName); + bsrr->sort_sequence = req->sortSequence; + /*FIXME - dump those sequences too */ + bsrr->stream = assoc->encode; + bsrr->print = assoc->print; + + bsrr->sort_status = Z_SortResponse_failure; + bsrr->errcode = 0; + bsrr->errstring = 0; + + (*assoc->init->bend_sort)(assoc->backend, bsrr); + + res->referenceId = bsrr->referenceId; + res->sortStatus = odr_intdup(assoc->encode, bsrr->sort_status); + res->resultSetStatus = 0; + if (bsrr->errcode) + { + Z_DiagRecs *dr = zget_DiagRecs(assoc->encode, + bsrr->errcode, bsrr->errstring); + res->diagnostics = dr->diagRecs; + res->num_diagnostics = dr->num_diagRecs; + } + else + { + res->num_diagnostics = 0; + res->diagnostics = 0; + } + res->resultCount = 0; + res->otherInfo = 0; + + apdu->which = Z_APDU_sortResponse; + apdu->u.sortResponse = res; + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + wrbuf_printf(wr, "Sort "); + if (bsrr->errcode) + wrbuf_printf(wr, " ERROR %d", bsrr->errcode); + else + wrbuf_printf(wr, "OK -"); + wrbuf_printf(wr, " ("); + for (i = 0; inum_inputResultSetNames; i++) + { + if (i) + wrbuf_printf(wr, "+"); + wrbuf_printf(wr, req->inputResultSetNames[i]); + } + wrbuf_printf(wr, ")->%s ",req->sortedResultSetName); + + yaz_log(log_request, "%s", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + return apdu; +} + +static Z_APDU *process_deleteRequest(association *assoc, request *reqb, + int *fd) +{ + int i; + Z_DeleteResultSetRequest *req = + reqb->apdu_request->u.deleteResultSetRequest; + Z_DeleteResultSetResponse *res = (Z_DeleteResultSetResponse *) + odr_malloc (assoc->encode, sizeof(*res)); + bend_delete_rr *bdrr = (bend_delete_rr *) + odr_malloc (assoc->encode, sizeof(*bdrr)); + Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); + + yaz_log(log_requestdetail, "Got DeleteRequest."); + + bdrr->num_setnames = req->num_resultSetList; + bdrr->setnames = req->resultSetList; + for (i = 0; inum_resultSetList; i++) + yaz_log(log_requestdetail, "resultset: '%s'", + req->resultSetList[i]); + bdrr->stream = assoc->encode; + bdrr->print = assoc->print; + bdrr->function = *req->deleteFunction; + bdrr->referenceId = req->referenceId; + bdrr->statuses = 0; + if (bdrr->num_setnames > 0) + { + bdrr->statuses = (int*) + odr_malloc(assoc->encode, sizeof(*bdrr->statuses) * + bdrr->num_setnames); + for (i = 0; i < bdrr->num_setnames; i++) + bdrr->statuses[i] = 0; + } + (*assoc->init->bend_delete)(assoc->backend, bdrr); + + res->referenceId = req->referenceId; + + res->deleteOperationStatus = odr_intdup(assoc->encode,bdrr->delete_status); + + res->deleteListStatuses = 0; + if (bdrr->num_setnames > 0) + { + int i; + res->deleteListStatuses = (Z_ListStatuses *) + odr_malloc(assoc->encode, sizeof(*res->deleteListStatuses)); + res->deleteListStatuses->num = bdrr->num_setnames; + res->deleteListStatuses->elements = + (Z_ListStatus **) + odr_malloc (assoc->encode, + sizeof(*res->deleteListStatuses->elements) * + bdrr->num_setnames); + for (i = 0; inum_setnames; i++) + { + res->deleteListStatuses->elements[i] = + (Z_ListStatus *) + odr_malloc (assoc->encode, + sizeof(**res->deleteListStatuses->elements)); + res->deleteListStatuses->elements[i]->status = bdrr->statuses+i; + res->deleteListStatuses->elements[i]->id = + odr_strdup (assoc->encode, bdrr->setnames[i]); + } + } + res->numberNotDeleted = 0; + res->bulkStatuses = 0; + res->deleteMessage = 0; + res->otherInfo = 0; + + apdu->which = Z_APDU_deleteResultSetResponse; + apdu->u.deleteResultSetResponse = res; + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + wrbuf_printf(wr, "Delete "); + if (bdrr->delete_status) + wrbuf_printf(wr, "ERROR %d", bdrr->delete_status); + else + wrbuf_printf(wr, "OK -"); + for (i = 0; inum_resultSetList; i++) + wrbuf_printf(wr, " %s ", req->resultSetList[i]); + yaz_log(log_request, "%s", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + return apdu; +} + +static void process_close(association *assoc, request *reqb) +{ + Z_Close *req = reqb->apdu_request->u.close; + static char *reasons[] = + { + "finished", + "shutdown", + "systemProblem", + "costLimit", + "resources", + "securityViolation", + "protocolError", + "lackOfActivity", + "peerAbort", + "unspecified" + }; + + yaz_log(log_requestdetail, "Got Close, reason %s, message %s", + reasons[*req->closeReason], req->diagnosticInformation ? + req->diagnosticInformation : "NULL"); + if (assoc->version < 3) /* to make do_force respond with close */ + assoc->version = 3; + do_close_req(assoc, Z_Close_finished, + "Association terminated by client", reqb); + yaz_log(log_request,"Close OK"); +} + +void save_referenceId (request *reqb, Z_ReferenceId *refid) +{ + if (refid) + { + reqb->len_refid = refid->len; + reqb->refid = (char *)nmem_malloc (reqb->request_mem, refid->len); + memcpy (reqb->refid, refid->buf, refid->len); + } + else + { + reqb->len_refid = 0; + reqb->refid = NULL; + } +} + +void bend_request_send (bend_association a, bend_request req, Z_APDU *res) +{ + process_z_response (a, req, res); +} + +bend_request bend_request_mk (bend_association a) +{ + request *nreq = request_get (&a->outgoing); + nreq->request_mem = nmem_create (); + return nreq; +} + +Z_ReferenceId *bend_request_getid (ODR odr, bend_request req) +{ + Z_ReferenceId *id; + if (!req->refid) + return 0; + id = (Odr_oct *)odr_malloc (odr, sizeof(*odr)); + id->buf = (unsigned char *)odr_malloc (odr, req->len_refid); + id->len = id->size = req->len_refid; + memcpy (id->buf, req->refid, req->len_refid); + return id; +} + +void bend_request_destroy (bend_request *req) +{ + nmem_destroy((*req)->request_mem); + request_release(*req); + *req = NULL; +} + +int bend_backend_respond (bend_association a, bend_request req) +{ + char *msg; + int r; + r = process_z_request (a, req, &msg); + if (r < 0) + yaz_log (YLOG_WARN, "%s", msg); + return r; +} + +void bend_request_setdata(bend_request r, void *p) +{ + r->clientData = p; +} + +void *bend_request_getdata(bend_request r) +{ + return r->clientData; +} + +static Z_APDU *process_segmentRequest (association *assoc, request *reqb) +{ + bend_segment_rr req; + + req.segment = reqb->apdu_request->u.segmentRequest; + req.stream = assoc->encode; + req.decode = assoc->decode; + req.print = assoc->print; + req.association = assoc; + + (*assoc->init->bend_segment)(assoc->backend, &req); + + return 0; +} + +static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd) +{ + bend_esrequest_rr esrequest; + const char *ext_name = "unknown"; + + Z_ExtendedServicesRequest *req = + reqb->apdu_request->u.extendedServicesRequest; + Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_extendedServicesResponse); + + Z_ExtendedServicesResponse *resp = apdu->u.extendedServicesResponse; + + esrequest.esr = reqb->apdu_request->u.extendedServicesRequest; + esrequest.stream = assoc->encode; + esrequest.decode = assoc->decode; + esrequest.print = assoc->print; + esrequest.errcode = 0; + esrequest.errstring = NULL; + esrequest.request = reqb; + esrequest.association = assoc; + esrequest.taskPackage = 0; + esrequest.referenceId = req->referenceId; + + + if (esrequest.esr && esrequest.esr->taskSpecificParameters) + { + switch(esrequest.esr->taskSpecificParameters->which) + { + case Z_External_itemOrder: + ext_name = "ItemOrder"; break; + case Z_External_update: + ext_name = "Update"; break; + case Z_External_update0: + ext_name = "Update0"; break; + case Z_External_ESAdmin: + ext_name = "Admin"; break; + + } + } + + (*assoc->init->bend_esrequest)(assoc->backend, &esrequest); + + /* If the response is being delayed, return NULL */ + if (esrequest.request == NULL) + return(NULL); + + resp->referenceId = req->referenceId; + + if (esrequest.errcode == -1) + { + /* Backend service indicates request will be processed */ + yaz_log(log_request, "Extended Service: %s (accepted)", ext_name); + *resp->operationStatus = Z_ExtendedServicesResponse_accepted; + } + else if (esrequest.errcode == 0) + { + /* Backend service indicates request will be processed */ + yaz_log(log_request, "Extended Service: %s (done)", ext_name); + *resp->operationStatus = Z_ExtendedServicesResponse_done; + } + else + { + Z_DiagRecs *diagRecs = + zget_DiagRecs(assoc->encode, esrequest.errcode, + esrequest.errstring); + /* Backend indicates error, request will not be processed */ + yaz_log(log_request, "Extended Service: %s (failed)", ext_name); + *resp->operationStatus = Z_ExtendedServicesResponse_failure; + resp->num_diagnostics = diagRecs->num_diagRecs; + resp->diagnostics = diagRecs->diagRecs; + if (log_request) + { + WRBUF wr = wrbuf_alloc(); + wrbuf_diags(wr, resp->num_diagnostics, resp->diagnostics); + yaz_log(log_request, "EsRequest %s", wrbuf_buf(wr) ); + wrbuf_free(wr, 1); + } + + } + /* Do something with the members of bend_extendedservice */ + if (esrequest.taskPackage) + resp->taskPackage = z_ext_record (assoc->encode, VAL_EXTENDED, + (const char *) esrequest.taskPackage, + -1); + yaz_log(YLOG_DEBUG,"Send the result apdu"); + return apdu; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/session.h b/dependencies/yaz-2.1.28/src/session.h new file mode 100644 index 0000000..c706cac --- /dev/null +++ b/dependencies/yaz-2.1.28/src/session.h @@ -0,0 +1,144 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: session.h,v 1.11 2006/05/07 14:48:25 adam Exp $ + */ +/** + * \file session.h + * \brief Internal Header for GFS. + */ +#ifndef SESSION_H +#define SESSION_H + +#include +#include +#include +#include +#include +#include +#include +#include "eventl.h" + +struct gfs_server { + statserv_options_block cb; + char *host; + int listen_ref; + cql_transform_t cql_transform; + void *server_node_ptr; + char *directory; + char *docpath; + char *stylesheet; + yaz_retrieval_t retrieval; + struct gfs_server *next; +}; + +struct gfs_listen { + char *id; + char *address; + struct gfs_listen *next; +}; + +typedef enum { + REQUEST_IDLE, /* the request is just sitting in the queue */ + REQUEST_PENDING /* operation pending (b'end processing or network I/O*/ + /* this list will have more elements when acc/res control is added */ +} request_state; + +typedef struct request +{ + int len_refid; /* length of referenceid */ + char *refid; /* referenceid */ + request_state state; + + Z_GDU *gdu_request; /* Current request */ + Z_APDU *apdu_request; /* Current Z39.50 request */ + NMEM request_mem; /* memory handle for request */ + + int size_response; /* size of buffer */ + int len_response; /* length of encoded data */ + char *response; /* encoded data waiting for transmission */ + + void *clientData; + struct request *next; + struct request_q *q; +} request; + +typedef struct request_q +{ + request *head; + request *tail; + request *list; + int num; +} request_q; + +/* + * association state. + */ +typedef enum +{ + ASSOC_NEW, /* not initialized yet */ + ASSOC_UP, /* normal operation */ + ASSOC_DEAD /* dead. Close if input arrives */ +} association_state; + +typedef struct association +{ + IOCHAN client_chan; /* event-loop control */ + COMSTACK client_link; /* communication handle */ + ODR decode; /* decoding stream */ + ODR encode; /* encoding stream */ + ODR print; /* printing stream (for -a) */ + char *encode_buffer; /* temporary buffer for encoded data */ + int encoded_len; /* length of encoded data */ + char *input_buffer; /* input buffer (allocated by comstack) */ + int input_buffer_len; /* length (size) of buffer */ + int input_apdu_len; /* length of current incoming APDU */ + oid_proto proto; /* protocol (PROTO_Z3950/PROTO_SR) */ + void *backend; /* backend handle */ + request_q incoming; /* Q of incoming PDUs */ + request_q outgoing; /* Q of outgoing data buffers (enc. PDUs) */ + association_state state; + + /* session parameters */ + int preferredMessageSize; + int maximumRecordSize; + int version; /* highest version-bit set (2 or 3) */ + + unsigned cs_get_mask; + unsigned cs_put_mask; + unsigned cs_accept_mask; + + struct bend_initrequest *init; + statserv_options_block *last_control; + + struct gfs_server *server; +} association; + +association *create_association(IOCHAN channel, COMSTACK link, + const char *apdufile); +void destroy_association(association *h); +void ir_session(IOCHAN h, int event); + +void request_enq(request_q *q, request *r); +request *request_head(request_q *q); +request *request_deq(request_q *q); +request *request_deq_x(request_q *q, request *r); +void request_initq(request_q *q); +void request_delq(request_q *q); +request *request_get(request_q *q); +void request_release(request *r); + +int statserv_must_terminate(void); + +int control_association(association *assoc, const char *host, int force); + +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/siconv.c b/dependencies/yaz-2.1.28/src/siconv.c new file mode 100644 index 0000000..b831b2c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/siconv.c @@ -0,0 +1,1158 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: siconv.c,v 1.29 2006/08/31 18:19:53 adam Exp $ + */ +/** + * \file siconv.c + * \brief Implements simple ICONV + * + * This implements an interface similar to that of iconv and + * is used by YAZ to interface with iconv (if present). + * For systems where iconv is not present, this layer + * provides a few important conversions: UTF-8, MARC-8, Latin-1. + * + * MARC-8 reference: + * http://www.loc.gov/marc/specifications/speccharmarc8.html + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#if HAVE_WCHAR_H +#include +#endif + +#if HAVE_ICONV_H +#include +#endif + + +#include + +unsigned long yaz_marc8_1_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_2_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_3_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_4_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_5_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_6_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_7_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_8_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8_9_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); + + +unsigned long yaz_marc8r_1_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_2_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_3_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_4_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_5_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_6_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_7_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_8_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); +unsigned long yaz_marc8r_9_conv(unsigned char *inp, size_t inbytesleft, + size_t *no_read, int *combining); + +struct yaz_iconv_struct { + int my_errno; + int init_flag; + size_t (*init_handle)(yaz_iconv_t cd, unsigned char *inbuf, + size_t inbytesleft, size_t *no_read); + unsigned long (*read_handle)(yaz_iconv_t cd, unsigned char *inbuf, + size_t inbytesleft, size_t *no_read); + size_t (*write_handle)(yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last); + int marc8_esc_mode; + + int comb_offset; + int comb_size; + unsigned long comb_x[8]; + size_t comb_no_read[8]; + size_t no_read_x; + unsigned long unget_x; +#if HAVE_ICONV_H + iconv_t iconv_cd; +#endif + unsigned long compose_char; + + unsigned long write_marc8_comb_ch[8]; + size_t write_marc8_comb_no; + unsigned long write_marc8_last; + const char *write_marc8_page_chr; +}; + +static struct { + unsigned long x1, x2; + unsigned y; +} latin1_comb[] = { + { 'A', 0x0300, 0xc0}, /* LATIN CAPITAL LETTER A WITH GRAVE */ + { 'A', 0x0301, 0xc1}, /* LATIN CAPITAL LETTER A WITH ACUTE */ + { 'A', 0x0302, 0xc2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ + { 'A', 0x0303, 0xc3}, /* LATIN CAPITAL LETTER A WITH TILDE */ + { 'A', 0x0308, 0xc4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ + { 'A', 0x030a, 0xc5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ + /* no need for 0xc6 LATIN CAPITAL LETTER AE */ + { 'C', 0x0327, 0xc7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */ + { 'E', 0x0300, 0xc8}, /* LATIN CAPITAL LETTER E WITH GRAVE */ + { 'E', 0x0301, 0xc9}, /* LATIN CAPITAL LETTER E WITH ACUTE */ + { 'E', 0x0302, 0xca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ + { 'E', 0x0308, 0xcb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ + { 'I', 0x0300, 0xcc}, /* LATIN CAPITAL LETTER I WITH GRAVE */ + { 'I', 0x0301, 0xcd}, /* LATIN CAPITAL LETTER I WITH ACUTE */ + { 'I', 0x0302, 0xce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ + { 'I', 0x0308, 0xcf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ + { 'N', 0x0303, 0xd1}, /* LATIN CAPITAL LETTER N WITH TILDE */ + { 'O', 0x0300, 0xd2}, /* LATIN CAPITAL LETTER O WITH GRAVE */ + { 'O', 0x0301, 0xd3}, /* LATIN CAPITAL LETTER O WITH ACUTE */ + { 'O', 0x0302, 0xd4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ + { 'O', 0x0303, 0xd5}, /* LATIN CAPITAL LETTER O WITH TILDE */ + { 'O', 0x0308, 0xd6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ + /* omitted: 0xd7 MULTIPLICATION SIGN */ + /* omitted: 0xd8 LATIN CAPITAL LETTER O WITH STROKE */ + { 'U', 0x0300, 0xd9}, /* LATIN CAPITAL LETTER U WITH GRAVE */ + { 'U', 0x0301, 0xda}, /* LATIN CAPITAL LETTER U WITH ACUTE */ + { 'U', 0x0302, 0xdb}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ + { 'U', 0x0308, 0xdc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ + { 'Y', 0x0301, 0xdd}, /* LATIN CAPITAL LETTER Y WITH ACUTE */ + /* omitted: 0xde LATIN CAPITAL LETTER THORN */ + /* omitted: 0xdf LATIN SMALL LETTER SHARP S */ + { 'a', 0x0300, 0xe0}, /* LATIN SMALL LETTER A WITH GRAVE */ + { 'a', 0x0301, 0xe1}, /* LATIN SMALL LETTER A WITH ACUTE */ + { 'a', 0x0302, 0xe2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ + { 'a', 0x0303, 0xe3}, /* LATIN SMALL LETTER A WITH TILDE */ + { 'a', 0x0308, 0xe4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ + { 'a', 0x030a, 0xe5}, /* LATIN SMALL LETTER A WITH RING ABOVE */ + /* omitted: 0xe6 LATIN SMALL LETTER AE */ + { 'c', 0x0327, 0xe7}, /* LATIN SMALL LETTER C WITH CEDILLA */ + { 'e', 0x0300, 0xe8}, /* LATIN SMALL LETTER E WITH GRAVE */ + { 'e', 0x0301, 0xe9}, /* LATIN SMALL LETTER E WITH ACUTE */ + { 'e', 0x0302, 0xea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ + { 'e', 0x0308, 0xeb}, /* LATIN SMALL LETTER E WITH DIAERESIS */ + { 'i', 0x0300, 0xec}, /* LATIN SMALL LETTER I WITH GRAVE */ + { 'i', 0x0301, 0xed}, /* LATIN SMALL LETTER I WITH ACUTE */ + { 'i', 0x0302, 0xee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ + { 'i', 0x0308, 0xef}, /* LATIN SMALL LETTER I WITH DIAERESIS */ + /* omitted: 0xf0 LATIN SMALL LETTER ETH */ + { 'n', 0x0303, 0xf1}, /* LATIN SMALL LETTER N WITH TILDE */ + { 'o', 0x0300, 0xf2}, /* LATIN SMALL LETTER O WITH GRAVE */ + { 'o', 0x0301, 0xf3}, /* LATIN SMALL LETTER O WITH ACUTE */ + { 'o', 0x0302, 0xf4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ + { 'o', 0x0303, 0xf5}, /* LATIN SMALL LETTER O WITH TILDE */ + { 'o', 0x0308, 0xf6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ + /* omitted: 0xf7 DIVISION SIGN */ + /* omitted: 0xf8 LATIN SMALL LETTER O WITH STROKE */ + { 'u', 0x0300, 0xf9}, /* LATIN SMALL LETTER U WITH GRAVE */ + { 'u', 0x0301, 0xfa}, /* LATIN SMALL LETTER U WITH ACUTE */ + { 'u', 0x0302, 0xfb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ + { 'u', 0x0308, 0xfc}, /* LATIN SMALL LETTER U WITH DIAERESIS */ + { 'y', 0x0301, 0xfd}, /* LATIN SMALL LETTER Y WITH ACUTE */ + /* omitted: 0xfe LATIN SMALL LETTER THORN */ + { 'y', 0x0308, 0xff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */ + + { 0, 0, 0} +}; + +static unsigned long yaz_read_ISO8859_1 (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = inp[0]; + *no_read = 1; + return x; +} + + +static size_t yaz_init_UTF8 (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + if (inp[0] != 0xef) + { + *no_read = 0; + return 0; + } + if (inbytesleft < 3) + { + cd->my_errno = YAZ_ICONV_EINVAL; + return (size_t) -1; + } + if (inp[1] != 0xbb && inp[2] == 0xbf) + *no_read = 3; + else + *no_read = 0; + return 0; +} + +unsigned long yaz_read_UTF8_char(unsigned char *inp, + size_t inbytesleft, size_t *no_read, + int *error) +{ + unsigned long x = 0; + + if (inp[0] <= 0x7f) + { + x = inp[0]; + *no_read = 1; + } + else if (inp[0] <= 0xbf || inp[0] >= 0xfe) + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + else if (inp[0] <= 0xdf && inbytesleft >= 2) + { + x = ((inp[0] & 0x1f) << 6) | (inp[1] & 0x3f); + if (x >= 0x80) + *no_read = 2; + else + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + } + else if (inp[0] <= 0xef && inbytesleft >= 3) + { + x = ((inp[0] & 0x0f) << 12) | ((inp[1] & 0x3f) << 6) | + (inp[2] & 0x3f); + if (x >= 0x800) + *no_read = 3; + else + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + } + else if (inp[0] <= 0xf7 && inbytesleft >= 4) + { + x = ((inp[0] & 0x07) << 18) | ((inp[1] & 0x3f) << 12) | + ((inp[2] & 0x3f) << 6) | (inp[3] & 0x3f); + if (x >= 0x10000) + *no_read = 4; + else + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + } + else if (inp[0] <= 0xfb && inbytesleft >= 5) + { + x = ((inp[0] & 0x03) << 24) | ((inp[1] & 0x3f) << 18) | + ((inp[2] & 0x3f) << 12) | ((inp[3] & 0x3f) << 6) | + (inp[4] & 0x3f); + if (x >= 0x200000) + *no_read = 5; + else + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + } + else if (inp[0] <= 0xfd && inbytesleft >= 6) + { + x = ((inp[0] & 0x01) << 30) | ((inp[1] & 0x3f) << 24) | + ((inp[2] & 0x3f) << 18) | ((inp[3] & 0x3f) << 12) | + ((inp[4] & 0x3f) << 6) | (inp[5] & 0x3f); + if (x >= 0x4000000) + *no_read = 6; + else + { + *no_read = 0; + *error = YAZ_ICONV_EILSEQ; + } + } + else + { + *no_read = 0; + *error = YAZ_ICONV_EINVAL; + } + return x; +} + +static unsigned long yaz_read_UTF8 (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + return yaz_read_UTF8_char(inp, inbytesleft, no_read, &cd->my_errno); +} + +static unsigned long yaz_read_UCS4 (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = 0; + + if (inbytesleft < 4) + { + cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ + *no_read = 0; + } + else + { + x = (inp[0]<<24) | (inp[1]<<16) | (inp[2]<<8) | inp[3]; + *no_read = 4; + } + return x; +} + +static unsigned long yaz_read_UCS4LE (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = 0; + + if (inbytesleft < 4) + { + cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ + *no_read = 0; + } + else + { + x = (inp[3]<<24) | (inp[2]<<16) | (inp[1]<<8) | inp[0]; + *no_read = 4; + } + return x; +} + +#if HAVE_WCHAR_H +static unsigned long yaz_read_wchar_t (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = 0; + + if (inbytesleft < sizeof(wchar_t)) + { + cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ + *no_read = 0; + } + else + { + wchar_t wch; + memcpy (&wch, inp, sizeof(wch)); + x = wch; + *no_read = sizeof(wch); + } + return x; +} +#endif + + +static unsigned long yaz_read_marc8_comb (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read, + int *comb); + +static unsigned long yaz_read_marc8 (yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x; + if (cd->comb_offset < cd->comb_size) + { + *no_read = cd->comb_no_read[cd->comb_offset]; + x = cd->comb_x[cd->comb_offset]; + + /* special case for double-diacritic combining characters, + INVERTED BREVE and DOUBLE TILDE. + We'll increment the no_read counter by 1, since we want to skip over + the processing of the closing ligature character + */ + /* this code is no longer necessary.. our handlers code in + yaz_marc8_?_conv (generated by charconv.tcl) now returns + 0 and no_read=1 when a sequence does not match the input. + The SECOND HALFs in codetables.xml produces a non-existant + entry in the conversion trie.. Hence when met, the input byte is + skipped as it should (in yaz_iconv) + */ +#if 0 + if (x == 0x0361 || x == 0x0360) + *no_read += 1; +#endif + cd->comb_offset++; + return x; + } + + cd->comb_offset = 0; + for (cd->comb_size = 0; cd->comb_size < 8; cd->comb_size++) + { + int comb = 0; + x = yaz_read_marc8_comb(cd, inp, inbytesleft, no_read, &comb); + if (!comb || !x) + break; + cd->comb_x[cd->comb_size] = x; + cd->comb_no_read[cd->comb_size] = *no_read; + inp += *no_read; + inbytesleft = inbytesleft - *no_read; + } + return x; +} + +static unsigned long yaz_read_marc8s(yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = yaz_read_marc8(cd, inp, inbytesleft, no_read); + if (x && cd->comb_size == 1) + { + /* For MARC8s we try to get a Latin-1 page code out of it */ + int i; + for (i = 0; latin1_comb[i].x1; i++) + if (cd->comb_x[0] == latin1_comb[i].x2 && x == latin1_comb[i].x1) + { + *no_read += cd->comb_no_read[0]; + cd->comb_size = 0; + x = latin1_comb[i].y; + break; + } + } + return x; +} + +static unsigned long yaz_read_marc8_comb(yaz_iconv_t cd, unsigned char *inp, + size_t inbytesleft, size_t *no_read, + int *comb) +{ + *no_read = 0; + while(inbytesleft >= 1 && inp[0] == 27) + { + size_t inbytesleft0 = inbytesleft; + inp++; + inbytesleft--; + while(inbytesleft > 0 && strchr("(,$!", *inp)) + { + inbytesleft--; + inp++; + } + if (inbytesleft <= 0) + { + *no_read = 0; + cd->my_errno = YAZ_ICONV_EINVAL; + return 0; + } + cd->marc8_esc_mode = *inp++; + inbytesleft--; + (*no_read) += inbytesleft0 - inbytesleft; + } + if (inbytesleft <= 0) + return 0; + else + { + unsigned long x; + size_t no_read_sub = 0; + *comb = 0; + + switch(cd->marc8_esc_mode) + { + case 'B': /* Basic ASCII */ + case 'E': /* ANSEL */ + case 's': /* ASCII */ + x = yaz_marc8_1_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case 'g': /* Greek */ + x = yaz_marc8_2_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case 'b': /* Subscripts */ + x = yaz_marc8_3_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case 'p': /* Superscripts */ + x = yaz_marc8_4_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case '2': /* Basic Hebrew */ + x = yaz_marc8_5_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case 'N': /* Basic Cyrillic */ + case 'Q': /* Extended Cyrillic */ + x = yaz_marc8_6_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case '3': /* Basic Arabic */ + case '4': /* Extended Arabic */ + x = yaz_marc8_7_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case 'S': /* Greek */ + x = yaz_marc8_8_conv(inp, inbytesleft, &no_read_sub, comb); + break; + case '1': /* Chinese, Japanese, Korean (EACC) */ + x = yaz_marc8_9_conv(inp, inbytesleft, &no_read_sub, comb); + break; + default: + *no_read = 0; + cd->my_errno = YAZ_ICONV_EILSEQ; + return 0; + } + *no_read += no_read_sub; + return x; + } +} + +static size_t yaz_write_UTF8(yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + return yaz_write_UTF8_char(x, outbuf, outbytesleft, &cd->my_errno); +} + +size_t yaz_write_UTF8_char(unsigned long x, + char **outbuf, size_t *outbytesleft, + int *error) +{ + unsigned char *outp = (unsigned char *) *outbuf; + + if (x <= 0x7f && *outbytesleft >= 1) + { + *outp++ = (unsigned char) x; + (*outbytesleft)--; + } + else if (x <= 0x7ff && *outbytesleft >= 2) + { + *outp++ = (unsigned char) ((x >> 6) | 0xc0); + *outp++ = (unsigned char) ((x & 0x3f) | 0x80); + (*outbytesleft) -= 2; + } + else if (x <= 0xffff && *outbytesleft >= 3) + { + *outp++ = (unsigned char) ((x >> 12) | 0xe0); + *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); + *outp++ = (unsigned char) ((x & 0x3f) | 0x80); + (*outbytesleft) -= 3; + } + else if (x <= 0x1fffff && *outbytesleft >= 4) + { + *outp++ = (unsigned char) ((x >> 18) | 0xf0); + *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); + *outp++ = (unsigned char) ((x & 0x3f) | 0x80); + (*outbytesleft) -= 4; + } + else if (x <= 0x3ffffff && *outbytesleft >= 5) + { + *outp++ = (unsigned char) ((x >> 24) | 0xf8); + *outp++ = (unsigned char) (((x >> 18) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); + *outp++ = (unsigned char) ((x & 0x3f) | 0x80); + (*outbytesleft) -= 5; + } + else if (*outbytesleft >= 6) + { + *outp++ = (unsigned char) ((x >> 30) | 0xfc); + *outp++ = (unsigned char) (((x >> 24) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 18) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); + *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); + *outp++ = (unsigned char) ((x & 0x3f) | 0x80); + (*outbytesleft) -= 6; + } + else + { + *error = YAZ_ICONV_E2BIG; /* not room for output */ + return (size_t)(-1); + } + *outbuf = (char *) outp; + return 0; +} + + +static size_t yaz_write_ISO8859_1 (yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + /* list of two char unicode sequence that, when combined, are + equivalent to single unicode chars that can be represented in + ISO-8859-1/Latin-1. + Regular iconv on Linux at least does not seem to convert these, + but since MARC-8 to UTF-8 generates these composed sequence + we get a better chance of a successful MARC-8 -> ISO-8859-1 + conversion */ + unsigned char *outp = (unsigned char *) *outbuf; + + if (cd->compose_char) + { + int i; + for (i = 0; latin1_comb[i].x1; i++) + if (cd->compose_char == latin1_comb[i].x1 && x == latin1_comb[i].x2) + { + x = latin1_comb[i].y; + break; + } + if (*outbytesleft < 1) + { /* no room. Retain compose_char and bail out */ + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t)(-1); + } + if (!latin1_comb[i].x1) + { /* not found. Just write compose_char */ + *outp++ = (unsigned char) cd->compose_char; + (*outbytesleft)--; + *outbuf = (char *) outp; + } + /* compose_char used so reset it. x now holds current char */ + cd->compose_char = 0; + } + + if (!last && x > 32 && x < 127 && cd->compose_char == 0) + { + cd->compose_char = x; + return 0; + } + else if (x > 255 || x < 1) + { + cd->my_errno = YAZ_ICONV_EILSEQ; + return (size_t) -1; + } + else if (*outbytesleft < 1) + { + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t)(-1); + } + *outp++ = (unsigned char) x; + (*outbytesleft)--; + *outbuf = (char *) outp; + return 0; +} + + +static size_t yaz_write_UCS4 (yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + unsigned char *outp = (unsigned char *) *outbuf; + if (*outbytesleft >= 4) + { + *outp++ = (unsigned char) (x>>24); + *outp++ = (unsigned char) (x>>16); + *outp++ = (unsigned char) (x>>8); + *outp++ = (unsigned char) x; + (*outbytesleft) -= 4; + } + else + { + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t)(-1); + } + *outbuf = (char *) outp; + return 0; +} + +static size_t yaz_write_UCS4LE (yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + unsigned char *outp = (unsigned char *) *outbuf; + if (*outbytesleft >= 4) + { + *outp++ = (unsigned char) x; + *outp++ = (unsigned char) (x>>8); + *outp++ = (unsigned char) (x>>16); + *outp++ = (unsigned char) (x>>24); + (*outbytesleft) -= 4; + } + else + { + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t)(-1); + } + *outbuf = (char *) outp; + return 0; +} + +static unsigned long lookup_marc8(yaz_iconv_t cd, + unsigned long x, int *comb, + const char **page_chr) +{ + char utf8_buf[7]; + char *utf8_outbuf = utf8_buf; + size_t utf8_outbytesleft = sizeof(utf8_buf)-1, r; + + r = yaz_write_UTF8(cd, x, &utf8_outbuf, &utf8_outbytesleft, 0); + if (r == (size_t)(-1)) + { + cd->my_errno = YAZ_ICONV_EILSEQ; + return 0; + } + else + { + unsigned char *inp; + size_t inbytesleft, no_read_sub = 0; + unsigned long x; + + *utf8_outbuf = '\0'; + inp = (unsigned char *) utf8_buf; + inbytesleft = strlen(utf8_buf); + + x = yaz_marc8r_1_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033(B"; + return x; + } + x = yaz_marc8r_2_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033g"; + return x; + } + x = yaz_marc8r_3_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033b"; + return x; + } + x = yaz_marc8r_4_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033p"; + return x; + } + x = yaz_marc8r_5_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033(2"; + return x; + } + x = yaz_marc8r_6_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033(N"; + return x; + } + x = yaz_marc8r_7_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033(3"; + return x; + } + x = yaz_marc8r_8_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033(S"; + return x; + } + x = yaz_marc8r_9_conv(inp, inbytesleft, &no_read_sub, comb); + if (x) + { + *page_chr = "\033$1"; + return x; + } + cd->my_errno = YAZ_ICONV_EILSEQ; + return x; + } +} + +static size_t flush_combos(yaz_iconv_t cd, + char **outbuf, size_t *outbytesleft) +{ + unsigned long y = cd->write_marc8_last; + unsigned char byte, second_half = 0; + char out_buf[10]; + size_t i, out_no = 0; + + if (!y) + return 0; + + byte = (unsigned char )((y>>16) & 0xff); + if (byte) + out_buf[out_no++] = byte; + byte = (unsigned char)((y>>8) & 0xff); + if (byte) + out_buf[out_no++] = byte; + byte = (unsigned char )(y & 0xff); + if (byte) + out_buf[out_no++] = byte; + + if (out_no + cd->write_marc8_comb_no + 1 > *outbytesleft) + { + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t) (-1); + } + + for (i = 0; i < cd->write_marc8_comb_no; i++) + { + /* all MARC-8 combined characters are simple bytes */ + byte = (unsigned char )(cd->write_marc8_comb_ch[i]); + if (byte == 0xEB) + second_half = 0xEC; + else if (byte == 0xFA) + second_half = 0xFB; + + *(*outbuf)++ = byte; + (*outbytesleft)--; + } + memcpy(*outbuf, out_buf, out_no); + *outbuf += out_no; + (*outbytesleft) -= out_no; + if (second_half) + { + *(*outbuf)++ = second_half; + (*outbytesleft)--; + } + + cd->write_marc8_last = 0; + cd->write_marc8_comb_no = 0; + return 0; +} + +static size_t yaz_write_marc8_2(yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + int comb = 0; + const char *page_chr = 0; + unsigned long y = lookup_marc8(cd, x, &comb, &page_chr); + + if (!y) + return (size_t) (-1); + + if (comb) + { + if (cd->write_marc8_comb_no < 6) + cd->write_marc8_comb_ch[cd->write_marc8_comb_no++] = y; + } + else + { + size_t r = flush_combos(cd, outbuf, outbytesleft); + const char *old_page_chr = cd->write_marc8_page_chr; + if (r) + return r; + if (strcmp(page_chr, old_page_chr)) + { + size_t plen = 0; + const char *page_out = page_chr; + + if (*outbytesleft < 8) + { + cd->my_errno = YAZ_ICONV_E2BIG; + + return (size_t) (-1); + } + cd->write_marc8_page_chr = page_chr; + + if (!strcmp(old_page_chr, "\033p") + || !strcmp(old_page_chr, "\033g") + || !strcmp(old_page_chr, "\033b")) + { + /* Technique 1 leave */ + page_out = "\033s"; + if (strcmp(page_chr, "\033(B")) /* Not going ASCII page? */ + { + /* Must leave script + enter new page */ + plen = strlen(page_out); + memcpy(*outbuf, page_out, plen); + (*outbuf) += plen; + (*outbytesleft) -= plen; + page_out = page_chr; + } + } + plen = strlen(page_out); + memcpy(*outbuf, page_out, plen); + (*outbuf) += plen; + (*outbytesleft) -= plen; + } + cd->write_marc8_last = y; + } + if (last) + { + size_t r = flush_combos(cd, outbuf, outbytesleft); + if (r) + { + if (comb) + cd->write_marc8_comb_no--; + else + cd->write_marc8_last = 0; + return r; + } + } + return 0; +} + +static size_t yaz_write_marc8(yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + int i; + for (i = 0; latin1_comb[i].x1; i++) + { + if (x == latin1_comb[i].y) + { + size_t r ; + /* save the output pointers .. */ + char *outbuf0 = *outbuf; + size_t outbytesleft0 = *outbytesleft; + int last_ch = cd->write_marc8_last; + + r = yaz_write_marc8_2(cd, latin1_comb[i].x1, + outbuf, outbytesleft, 0); + if (r) + return r; + r = yaz_write_marc8_2(cd, latin1_comb[i].x2, + outbuf, outbytesleft, last); + if (r && cd->my_errno == YAZ_ICONV_E2BIG) + { + /* not enough room. reset output to original values */ + *outbuf = outbuf0; + *outbytesleft = outbytesleft0; + cd->write_marc8_last = last_ch; + } + return r; + } + } + return yaz_write_marc8_2(cd, x, outbuf, outbytesleft, last); +} + + +#if HAVE_WCHAR_H +static size_t yaz_write_wchar_t (yaz_iconv_t cd, unsigned long x, + char **outbuf, size_t *outbytesleft, + int last) +{ + unsigned char *outp = (unsigned char *) *outbuf; + + if (*outbytesleft >= sizeof(wchar_t)) + { + wchar_t wch = x; + memcpy(outp, &wch, sizeof(wch)); + outp += sizeof(wch); + (*outbytesleft) -= sizeof(wch); + } + else + { + cd->my_errno = YAZ_ICONV_E2BIG; + return (size_t)(-1); + } + *outbuf = (char *) outp; + return 0; +} +#endif + +int yaz_iconv_isbuiltin(yaz_iconv_t cd) +{ + return cd->read_handle && cd->write_handle; +} + +yaz_iconv_t yaz_iconv_open (const char *tocode, const char *fromcode) +{ + yaz_iconv_t cd = (yaz_iconv_t) xmalloc (sizeof(*cd)); + + cd->write_handle = 0; + cd->read_handle = 0; + cd->init_handle = 0; + cd->my_errno = YAZ_ICONV_UNKNOWN; + + /* a useful hack: if fromcode has leading @, + the library not use YAZ's own conversions .. */ + if (fromcode[0] == '@') + fromcode++; + else + { + if (!yaz_matchstr(fromcode, "UTF8")) + { + cd->read_handle = yaz_read_UTF8; + cd->init_handle = yaz_init_UTF8; + } + else if (!yaz_matchstr(fromcode, "ISO88591")) + cd->read_handle = yaz_read_ISO8859_1; + else if (!yaz_matchstr(fromcode, "UCS4")) + cd->read_handle = yaz_read_UCS4; + else if (!yaz_matchstr(fromcode, "UCS4LE")) + cd->read_handle = yaz_read_UCS4LE; + else if (!yaz_matchstr(fromcode, "MARC8")) + cd->read_handle = yaz_read_marc8; + else if (!yaz_matchstr(fromcode, "MARC8s")) + cd->read_handle = yaz_read_marc8s; +#if HAVE_WCHAR_H + else if (!yaz_matchstr(fromcode, "WCHAR_T")) + cd->read_handle = yaz_read_wchar_t; +#endif + + if (!yaz_matchstr(tocode, "UTF8")) + cd->write_handle = yaz_write_UTF8; + else if (!yaz_matchstr(tocode, "ISO88591")) + cd->write_handle = yaz_write_ISO8859_1; + else if (!yaz_matchstr (tocode, "UCS4")) + cd->write_handle = yaz_write_UCS4; + else if (!yaz_matchstr(tocode, "UCS4LE")) + cd->write_handle = yaz_write_UCS4LE; + else if (!yaz_matchstr(tocode, "MARC8")) + cd->write_handle = yaz_write_marc8; + else if (!yaz_matchstr(tocode, "MARC8s")) + cd->write_handle = yaz_write_marc8; +#if HAVE_WCHAR_H + else if (!yaz_matchstr(tocode, "WCHAR_T")) + cd->write_handle = yaz_write_wchar_t; +#endif + } +#if HAVE_ICONV_H + cd->iconv_cd = 0; + if (!cd->read_handle || !cd->write_handle) + { + cd->iconv_cd = iconv_open (tocode, fromcode); + if (cd->iconv_cd == (iconv_t) (-1)) + { + xfree (cd); + return 0; + } + } +#else + if (!cd->read_handle || !cd->write_handle) + { + xfree (cd); + return 0; + } +#endif + cd->init_flag = 1; + return cd; +} + +size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, + char **outbuf, size_t *outbytesleft) +{ + char *inbuf0; + size_t r = 0; + +#if HAVE_ICONV_H + if (cd->iconv_cd) + { + size_t r = + iconv(cd->iconv_cd, inbuf, inbytesleft, outbuf, outbytesleft); + if (r == (size_t)(-1)) + { + switch (yaz_errno()) + { + case E2BIG: + cd->my_errno = YAZ_ICONV_E2BIG; + break; + case EINVAL: + cd->my_errno = YAZ_ICONV_EINVAL; + break; + case EILSEQ: + cd->my_errno = YAZ_ICONV_EILSEQ; + break; + default: + cd->my_errno = YAZ_ICONV_UNKNOWN; + } + } + return r; + } +#endif + if (inbuf == 0 || *inbuf == 0) + { + cd->init_flag = 1; + cd->my_errno = YAZ_ICONV_UNKNOWN; + return 0; + } + inbuf0 = *inbuf; + + if (cd->init_flag) + { + if (cd->init_handle) + { + size_t no_read = 0; + size_t r = (cd->init_handle)(cd, (unsigned char *) *inbuf, + *inbytesleft, &no_read); + if (r) + { + if (cd->my_errno == YAZ_ICONV_EINVAL) + return r; + cd->init_flag = 0; + return r; + } + *inbytesleft -= no_read; + *inbuf += no_read; + } + cd->marc8_esc_mode = 'B'; + + cd->comb_offset = cd->comb_size = 0; + cd->compose_char = 0; + + cd->write_marc8_comb_no = 0; + cd->write_marc8_last = 0; + cd->write_marc8_page_chr = "\033(B"; + + cd->init_flag = 0; + cd->unget_x = 0; + cd->no_read_x = 0; + } + while (1) + { + unsigned long x; + size_t no_read; + + if (*inbytesleft == 0) + { + r = *inbuf - inbuf0; + break; + } + if (!cd->unget_x) + { + x = (cd->read_handle)(cd, (unsigned char *) *inbuf, *inbytesleft, + &no_read); + if (no_read == 0) + { + r = (size_t)(-1); + break; + } + } + else + { + x = cd->unget_x; + no_read = cd->no_read_x; + } + if (x) + { + r = (cd->write_handle)(cd, x, outbuf, outbytesleft, + (*inbytesleft - no_read) == 0 ? 1 : 0); + if (r) + { + /* unable to write it. save it because read_handle cannot + rewind .. */ + if (cd->my_errno == YAZ_ICONV_E2BIG) + { + cd->unget_x = x; + cd->no_read_x = no_read; + break; + } + } + cd->unget_x = 0; + } + *inbytesleft -= no_read; + (*inbuf) += no_read; + } + return r; +} + +int yaz_iconv_error (yaz_iconv_t cd) +{ + return cd->my_errno; +} + +int yaz_iconv_close (yaz_iconv_t cd) +{ +#if HAVE_ICONV_H + if (cd->iconv_cd) + iconv_close (cd->iconv_cd); +#endif + xfree (cd); + return 0; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/soap.c b/dependencies/yaz-2.1.28/src/soap.c new file mode 100644 index 0000000..f11947c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/soap.c @@ -0,0 +1,358 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: soap.c,v 1.14 2006/07/06 10:17:54 adam Exp $ + */ +/** + * \file soap.c + * \brief Implements SOAP + * + * This implements encoding and decoding of SOAP packages using + * Libxml2. + */ + +#include + +#if YAZ_HAVE_XML2 +#include +#include + +static const char *soap_v1_1 = "http://schemas.xmlsoap.org/soap/envelope/"; +static const char *soap_v1_2 = "http://www.w3.org/2001/06/soap-envelope"; + +int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding, + const char *stylesheet) +{ + if (o->direction == ODR_DECODE) + { + Z_SOAP *p; + xmlNodePtr ptr, pptr; + xmlDocPtr doc; + int i, ret; + + if (!content_buf || !*content_buf || !content_len) + return -1; + + *pp = p = (Z_SOAP *) odr_malloc(o, sizeof(*p)); + p->ns = soap_v1_1; + + doc = xmlParseMemory(*content_buf, *content_len); + if (!doc) + return z_soap_error(o, p, "SOAP-ENV:Client", + "Bad XML Document", 0); + + ptr = xmlDocGetRootElement(doc); + if (!ptr || !ptr->ns) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "No Envelope element", 0); + } + /* check for SRU root node match */ + + for (i = 0; handlers[i].ns; i++) + if (!xmlStrcmp(ptr->ns->href, BAD_CAST handlers[i].ns)) + break; + if (handlers[i].ns) + { + void *handler_data = 0; + xmlNode p_top_tmp; /* pseudo parent node needed */ + + p_top_tmp.children = ptr; + ret = (*handlers[i].f)(o, &p_top_tmp, &handler_data, + handlers[i].client_data, + handlers[i].ns); + + if (ret || !handler_data) + z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP Handler returned error", 0); + else + { + p->which = Z_SOAP_generic; + p->u.generic = (Z_SOAP_Generic *) + odr_malloc(o, sizeof(*p->u.generic)); + p->u.generic->no = i; + p->u.generic->ns = handlers[i].ns; + p->u.generic->p = handler_data; + } + xmlFreeDoc(doc); + return ret; + } + /* OK: assume SOAP */ + + if (!ptr || ptr->type != XML_ELEMENT_NODE || + xmlStrcmp(ptr->name, BAD_CAST "Envelope") || !ptr->ns) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "No Envelope element", 0); + } + else + { + /* determine SOAP version */ + const char * ns_envelope = (const char *) ptr->ns->href; + if (!strcmp(ns_envelope, soap_v1_1)) + p->ns = soap_v1_1; + else if (!strcmp(ns_envelope, soap_v1_2)) + p->ns = soap_v1_2; + else + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "Bad SOAP version", 0); + } + } + ptr = ptr->children; + while(ptr && ptr->type == XML_TEXT_NODE) + ptr = ptr->next; + if (ptr && ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->ns->href, BAD_CAST p->ns) && + !xmlStrcmp(ptr->name, BAD_CAST "Header")) + { + ptr = ptr->next; + while(ptr && ptr->type == XML_TEXT_NODE) + ptr = ptr->next; + } + /* check that Body is present */ + if (!ptr || ptr->type != XML_ELEMENT_NODE || + xmlStrcmp(ptr->name, BAD_CAST "Body")) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP Body element not found", 0); + } + if (xmlStrcmp(ptr->ns->href, BAD_CAST p->ns)) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP bad NS for Body element", 0); + } + pptr = ptr; + ptr = ptr->children; + while (ptr && ptr->type == XML_TEXT_NODE) + ptr = ptr->next; + if (!ptr || ptr->type != XML_ELEMENT_NODE) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP No content for Body", 0); + } + if (!ptr->ns) + { + xmlFreeDoc(doc); + return z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP No namespace for content", 0); + } + /* check for fault package */ + if (!xmlStrcmp(ptr->ns->href, BAD_CAST p->ns) + && !xmlStrcmp(ptr->name, BAD_CAST "Fault") && ptr->children) + { + ptr = ptr->children; + + p->which = Z_SOAP_fault; + p->u.fault = (Z_SOAP_Fault *) odr_malloc(o, sizeof(*p->u.fault)); + p->u.fault->fault_code = 0; + p->u.fault->fault_string = 0; + p->u.fault->details = 0; + while (ptr) + { + if (ptr->children && ptr->children->type == XML_TEXT_NODE) + { + if (!xmlStrcmp(ptr->name, BAD_CAST "faultcode")) + p->u.fault->fault_code = + odr_strdup(o, (const char *) + ptr->children->content); + if (!xmlStrcmp(ptr->name, BAD_CAST "faultstring")) + p->u.fault->fault_string = + odr_strdup(o, (const char *) + ptr->children->content); + if (!xmlStrcmp(ptr->name, BAD_CAST "details")) + p->u.fault->details = + odr_strdup(o, (const char *) + ptr->children->content); + } + ptr = ptr->next; + } + ret = 0; + } + else + { + for (i = 0; handlers[i].ns; i++) + if (!xmlStrcmp(ptr->ns->href, BAD_CAST handlers[i].ns)) + break; + if (handlers[i].ns) + { + void *handler_data = 0; + ret = (*handlers[i].f)(o, pptr, &handler_data, + handlers[i].client_data, + handlers[i].ns); + if (ret || !handler_data) + z_soap_error(o, p, "SOAP-ENV:Client", + "SOAP Handler returned error", 0); + else + { + p->which = Z_SOAP_generic; + p->u.generic = (Z_SOAP_Generic *) + odr_malloc(o, sizeof(*p->u.generic)); + p->u.generic->no = i; + p->u.generic->ns = handlers[i].ns; + p->u.generic->p = handler_data; + } + } + else + { + ret = z_soap_error(o, p, "SOAP-ENV:Client", + "No handler for NS", + (const char *)ptr->ns->href); + } + } + xmlFreeDoc(doc); + return ret; + } + else if (o->direction == ODR_ENCODE) + { + Z_SOAP *p = *pp; + xmlNsPtr ns_env; + xmlNodePtr envelope_ptr, body_ptr; + + xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); + + envelope_ptr = xmlNewNode(0, BAD_CAST "Envelope"); + ns_env = xmlNewNs(envelope_ptr, BAD_CAST p->ns, + BAD_CAST "SOAP-ENV"); + xmlSetNs(envelope_ptr, ns_env); + + body_ptr = xmlNewChild(envelope_ptr, ns_env, BAD_CAST "Body", + 0); + xmlDocSetRootElement(doc, envelope_ptr); + + if (p->which == Z_SOAP_fault || p->which == Z_SOAP_error) + { + Z_SOAP_Fault *f = p->u.fault; + xmlNodePtr fault_ptr = xmlNewChild(body_ptr, ns_env, + BAD_CAST "Fault", 0); + xmlNewChild(fault_ptr, ns_env, BAD_CAST "faultcode", + BAD_CAST f->fault_code); + xmlNewChild(fault_ptr, ns_env, BAD_CAST "faultstring", + BAD_CAST f->fault_string); + if (f->details) + xmlNewChild(fault_ptr, ns_env, BAD_CAST "details", + BAD_CAST f->details); + } + else if (p->which == Z_SOAP_generic) + { + int ret, no = p->u.generic->no; + + ret = (*handlers[no].f)(o, body_ptr, &p->u.generic->p, + handlers[no].client_data, + handlers[no].ns); + if (ret) + { + xmlFreeDoc(doc); + return ret; + } + } + if (p->which == Z_SOAP_generic && !strcmp(p->ns, "SRU")) + { + xmlDocSetRootElement(doc, body_ptr->children); + body_ptr->children = 0; + xmlFreeNode(envelope_ptr); + } + if (stylesheet) + { + char *content = odr_malloc(o, strlen(stylesheet) + 40); + + xmlNodePtr pi, ptr = xmlDocGetRootElement(doc); + sprintf(content, "type=\"text/xsl\" href=\"%s\"", stylesheet); + pi = xmlNewPI(BAD_CAST "xml-stylesheet", + BAD_CAST content); + xmlAddPrevSibling(ptr, pi); + } + if (1) + { + xmlChar *buf_out; + int len_out; + if (encoding) + xmlDocDumpMemoryEnc(doc, &buf_out, &len_out, encoding); + else + xmlDocDumpMemory(doc, &buf_out, &len_out); + *content_buf = (char *) odr_malloc(o, len_out); + *content_len = len_out; + memcpy(*content_buf, buf_out, len_out); + xmlFree(buf_out); + } + xmlFreeDoc(doc); + return 0; + } + return 0; +} +#else +int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, const char *encoding, + const char *stylesheet) +{ + static char *err_xml = + "\n" + "\n" + "\t\n" + "\t\t\n" + "\t\t\tSOAP-ENV:Server\n" + "\t\t\tHTTP error\n" + "\t\t\tSOAP not supported in this YAZ configuration\n" + "\t\t\n" + "\t\n" + "\n"; + if (o->direction == ODR_ENCODE) + { + *content_buf = err_xml; + *content_len = strlen(err_xml); + } + return -1; +} +#endif +int z_soap_codec_enc(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers, + const char *encoding) +{ + return z_soap_codec_enc_xsl(o, pp, content_buf, content_len, handlers, + encoding, 0); +} + +int z_soap_codec(ODR o, Z_SOAP **pp, + char **content_buf, int *content_len, + Z_SOAP_Handler *handlers) +{ + return z_soap_codec_enc(o, pp, content_buf, content_len, handlers, 0); +} + +int z_soap_error(ODR o, Z_SOAP *p, + const char *fault_code, const char *fault_string, + const char *details) +{ + p->which = Z_SOAP_error; + p->u.soap_error = (Z_SOAP_Fault *) + odr_malloc(o, sizeof(*p->u.soap_error)); + p->u.soap_error->fault_code = odr_strdup(o, fault_code); + p->u.soap_error->fault_string = odr_strdup(o, fault_string); + if (details) + p->u.soap_error->details = odr_strdup(o, details); + else + p->u.soap_error->details = 0; + return -1; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/sortspec.c b/dependencies/yaz-2.1.28/src/sortspec.c new file mode 100644 index 0000000..184c36a --- /dev/null +++ b/dependencies/yaz-2.1.28/src/sortspec.c @@ -0,0 +1,140 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: sortspec.c,v 1.7 2006/05/30 22:00:09 adam Exp $ + */ +/** + * \file sortspec.c + * \brief Implements SortSpec parsing. + */ + +#include +#include +#include + +#include +#include +#include + +Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg) +{ + char sort_string_buf[64], sort_flags[64]; + Z_SortKeySpecList *sksl = (Z_SortKeySpecList *) + odr_malloc (out, sizeof(*sksl)); + int off; + + sksl->num_specs = 0; + sksl->specs = (Z_SortKeySpec **)odr_malloc (out, sizeof(sksl->specs) * 20); + + while ((sscanf (arg, "%63s %63s%n", sort_string_buf, + sort_flags, &off)) == 2 && off > 1) + { + int i; + char *sort_string_sep; + char *sort_string = sort_string_buf; + Z_SortKeySpec *sks = (Z_SortKeySpec *)odr_malloc (out, sizeof(*sks)); + Z_SortKey *sk = (Z_SortKey *)odr_malloc (out, sizeof(*sk)); + + arg += off; + sksl->specs[sksl->num_specs++] = sks; + sks->sortElement = (Z_SortElement *) + odr_malloc (out, sizeof(*sks->sortElement)); + sks->sortElement->which = Z_SortElement_generic; + sks->sortElement->u.generic = sk; + + if ((sort_string_sep = strchr (sort_string, '='))) + { + int i = 0; + sk->which = Z_SortKey_sortAttributes; + sk->u.sortAttributes = (Z_SortAttributes *) + odr_malloc (out, sizeof(*sk->u.sortAttributes)); + sk->u.sortAttributes->id = + yaz_oidval_to_z3950oid(out, CLASS_ATTSET, VAL_BIB1); + sk->u.sortAttributes->list = (Z_AttributeList *) + odr_malloc (out, sizeof(*sk->u.sortAttributes->list)); + sk->u.sortAttributes->list->attributes = (Z_AttributeElement **) + odr_malloc (out, 10 * + sizeof(*sk->u.sortAttributes->list->attributes)); + while (i < 10 && sort_string && sort_string_sep) + { + Z_AttributeElement *el = (Z_AttributeElement *) + odr_malloc (out, sizeof(*el)); + sk->u.sortAttributes->list->attributes[i] = el; + el->attributeSet = 0; + el->attributeType = odr_intdup (out, atoi (sort_string)); + el->which = Z_AttributeValue_numeric; + el->value.numeric = + odr_intdup (out, atoi (sort_string_sep + 1)); + i++; + sort_string = strchr(sort_string, ','); + if (sort_string) + { + sort_string++; + sort_string_sep = strchr (sort_string, '='); + } + } + sk->u.sortAttributes->list->num_attributes = i; + } + else + { + sk->which = Z_SortKey_sortField; + sk->u.sortField = odr_strdup (out, sort_string); + } + sks->sortRelation = odr_intdup (out, Z_SortKeySpec_ascending); + sks->caseSensitivity = odr_intdup (out, Z_SortKeySpec_caseSensitive); + + sks->which = Z_SortKeySpec_null; + sks->u.null = odr_nullval (); + + for (i = 0; sort_flags[i]; i++) + { + switch (sort_flags[i]) + { + case 'd': + case 'D': + case '>': + *sks->sortRelation = Z_SortKeySpec_descending; + break; + case 'a': + case 'A': + case '<': + *sks->sortRelation = Z_SortKeySpec_ascending; + break; + case 'i': + case 'I': + *sks->caseSensitivity = Z_SortKeySpec_caseInsensitive; + break; + case 'S': + case 's': + *sks->caseSensitivity = Z_SortKeySpec_caseSensitive; + break; + case '!': + sks->which = Z_SortKeySpec_abort; + sks->u.abort = odr_nullval(); + break; + case '=': + sks->which = Z_SortKeySpec_missingValueData; + sks->u.missingValueData = (Odr_oct*) + odr_malloc(out, sizeof(Odr_oct)); + i++; + sks->u.missingValueData->len = strlen(sort_flags+i); + sks->u.missingValueData->size = sks->u.missingValueData->len; + sks->u.missingValueData->buf = (unsigned char*) + odr_strdup(out, sort_flags+i); + i += strlen(sort_flags+i); + } + } + } + if (!sksl->num_specs) + return 0; + return sksl; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/srw.c b/dependencies/yaz-2.1.28/src/srw.c new file mode 100644 index 0000000..29856f9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/srw.c @@ -0,0 +1,1145 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: srw.c,v 1.48 2006/08/18 06:30:05 adam Exp $ + */ +/** + * \file srw.c + * \brief Implements SRW/SRU package encoding and decoding + */ + +#include +#if YAZ_HAVE_XML2 +#include +#include + +static void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len) +{ + if (val) + { + xmlDocPtr doc = xmlParseMemory(val,len); + if (doc) + { + xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0); + xmlNodePtr t = xmlDocGetRootElement(doc); + xmlAddChild(c, xmlCopyNode(t,1)); + xmlFreeDoc(doc); + } + } +} + +xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val, + int len) +{ + if (val) + { + xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0); + xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len); + xmlAddChild(c, t); + return t; + } + return 0; +} + +xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val) +{ + if (val) + return xmlNewTextChild(ptr, 0, BAD_CAST elem, + BAD_CAST val); + return 0; +} + +static void add_xsd_integer(xmlNodePtr ptr, const char *elem, const int *val) +{ + if (val) + { + char str[30]; + sprintf(str, "%d", *val); + xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str); + } +} + +static int match_element(xmlNodePtr ptr, const char *elem) +{ + if (ptr->type == XML_ELEMENT_NODE && !xmlStrcmp(ptr->name, BAD_CAST elem)) + return 1; + return 0; +} + +#define CHECK_TYPE 0 + +static int match_xsd_string_n(xmlNodePtr ptr, const char *elem, ODR o, + char **val, int *len) +{ +#if CHECK_TYPE + struct _xmlAttr *attr; +#endif + if (!match_element(ptr, elem)) + return 0; +#if CHECK_TYPE + for (attr = ptr->properties; attr; attr = attr->next) + if (!strcmp(attr->name, "type") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + const char *t = strchr(attr->children->content, ':'); + if (t) + t = t + 1; + else + t = attr->children->content; + if (!strcmp(t, "string")) + break; + } + if (!attr) + return 0; +#endif + ptr = ptr->children; + if (!ptr || ptr->type != XML_TEXT_NODE) + { + *val = ""; + return 1; + } + *val = odr_strdup(o, (const char *) ptr->content); + if (len) + *len = xmlStrlen(ptr->content); + return 1; +} + + +static int match_xsd_string(xmlNodePtr ptr, const char *elem, ODR o, + char **val) +{ + return match_xsd_string_n(ptr, elem, o, val, 0); +} + +static int match_xsd_XML_n(xmlNodePtr ptr, const char *elem, ODR o, + char **val, int *len) +{ + xmlBufferPtr buf; + + if (!match_element(ptr, elem)) + return 0; + ptr = ptr->children; + while (ptr && (ptr->type == XML_TEXT_NODE || ptr->type == XML_COMMENT_NODE)) + ptr = ptr->next; + if (!ptr) + return 0; + buf = xmlBufferCreate(); + + xmlNodeDump(buf, ptr->doc, ptr, 0, 0); + + *val = odr_malloc(o, buf->use+1); + memcpy (*val, buf->content, buf->use); + (*val)[buf->use] = '\0'; + + if (len) + *len = buf->use; + + xmlBufferFree(buf); + + return 1; +} + +static int match_xsd_integer(xmlNodePtr ptr, const char *elem, ODR o, int **val) +{ +#if CHECK_TYPE + struct _xmlAttr *attr; +#endif + if (!match_element(ptr, elem)) + return 0; +#if CHECK_TYPE + for (attr = ptr->properties; attr; attr = attr->next) + if (!strcmp(attr->name, "type") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + const char *t = strchr(attr->children->content, ':'); + if (t) + t = t + 1; + else + t = attr->children->content; + if (!strcmp(t, "integer")) + break; + } + if (!attr) + return 0; +#endif + ptr = ptr->children; + if (!ptr || ptr->type != XML_TEXT_NODE) + return 0; + *val = odr_intdup(o, atoi((const char *) ptr->content)); + return 1; +} + +static int yaz_srw_extra_record(ODR o, xmlNodePtr pptr, + Z_SRW_extra_record *rec, + void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + xmlNodePtr ptr; + rec->type = 1; + rec->recordId = 0; + rec->recordReviewCode = 0; + rec->recordReviewNote = 0; + rec->recordLockStatus = 0; + rec->recordOldVersion = 0; + rec->nonDupRecordId = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "recordId", o, + &rec->recordId )) + ; + else if (match_xsd_string(ptr, "recordReviewCode", o, + &rec->recordReviewCode )) + ; + else if (match_xsd_string(ptr, "recordReviewNote", o, + &rec->recordReviewNote )) + ; + else if (match_xsd_string(ptr, "nonDupRecordId", o, + &rec->nonDupRecordId )) + ; + else if (match_xsd_string(ptr, "recordLockStatus", o, + &rec->recordLockStatus )) + ; + else if (match_xsd_string(ptr, "recordOldVersion", o, + &rec->recordOldVersion )) + ; + } + } + else if (o->direction == ODR_ENCODE) + { + xmlNodePtr ptr = pptr; + if ( rec->recordId ) + add_xsd_string(ptr, "recordId", rec->recordId); + if ( rec->recordReviewCode ) + add_xsd_string(ptr, "recordReviewCode", rec->recordReviewCode); + if ( rec->recordReviewNote ) + add_xsd_string(ptr, "recordReviewNote", rec->recordReviewNote); + if ( rec->nonDupRecordId ) + add_xsd_string(ptr, "nonDupRecordId", rec->nonDupRecordId); + if ( rec->recordLockStatus ) + add_xsd_string(ptr, "recordLockStatus", rec->recordLockStatus); + if ( rec->recordOldVersion ) + add_xsd_string(ptr, "recordOldVersion", rec->recordOldVersion); + } + return 0; +} + +static int yaz_srw_record(ODR o, xmlNodePtr pptr, Z_SRW_record *rec, + Z_SRW_extra_record **extra, + void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + char *spack = 0; + int pack = Z_SRW_recordPacking_string; + xmlNodePtr ptr; + xmlNodePtr data_ptr = 0; + rec->recordSchema = 0; + rec->recordData_buf = 0; + rec->recordData_len = 0; + rec->recordPosition = 0; + *extra = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + + if (match_xsd_string(ptr, "recordSchema", o, + &rec->recordSchema)) + ; + else if (match_xsd_string(ptr, "recordPacking", o, &spack)) + { + if (spack && !strcmp(spack, "xml")) + pack = Z_SRW_recordPacking_XML; + if (spack && !strcmp(spack, "url")) + pack = Z_SRW_recordPacking_URL; + if (spack && !strcmp(spack, "string")) + pack = Z_SRW_recordPacking_string; + } + else if (match_xsd_integer(ptr, "recordPosition", o, + &rec->recordPosition)) + ; + else if (match_element(ptr, "recordData")) + { + /* save position of Data until after the loop + then we will know the packing (hopefully), and + unpacking is done once + */ + data_ptr = ptr; + } + else if (match_element(ptr, "extraRecordData")) + { + *extra = (Z_SRW_extra_record *) + odr_malloc(o, sizeof(Z_SRW_extra_record)); + yaz_srw_extra_record(o, ptr, *extra, client_data, ns); + } + } + if (data_ptr) + { + switch(pack) + { + case Z_SRW_recordPacking_XML: + match_xsd_XML_n(data_ptr, "recordData", o, + &rec->recordData_buf, &rec->recordData_len); + break; + case Z_SRW_recordPacking_URL: + /* just store it as a string. + leave it to the backend to collect the document */ + match_xsd_string_n(data_ptr, "recordData", o, + &rec->recordData_buf, &rec->recordData_len); + break; + case Z_SRW_recordPacking_string: + match_xsd_string_n(data_ptr, "recordData", o, + &rec->recordData_buf, &rec->recordData_len); + break; + } + } + rec->recordPacking = pack; + } + else if (o->direction == ODR_ENCODE) + { + xmlNodePtr ptr = pptr; + int pack = rec->recordPacking; + add_xsd_string(ptr, "recordSchema", rec->recordSchema); + + switch(pack) + { + case Z_SRW_recordPacking_string: + add_xsd_string(ptr, "recordPacking", "string"); + add_xsd_string_n(ptr, "recordData", rec->recordData_buf, + rec->recordData_len); + break; + case Z_SRW_recordPacking_XML: + add_xsd_string(ptr, "recordPacking", "xml"); + add_XML_n(ptr, "recordData", rec->recordData_buf, + rec->recordData_len); + break; + case Z_SRW_recordPacking_URL: + add_xsd_string(ptr, "recordPacking", "url"); + add_xsd_string_n(ptr, "recordData", rec->recordData_buf, + rec->recordData_len); + break; + } + if (rec->recordPosition) + add_xsd_integer(ptr, "recordPosition", rec->recordPosition ); + if (extra && *extra) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "extraRecordData", + 0); + yaz_srw_extra_record(o, rptr, *extra, client_data, ns); + } + } + return 0; +} + +static int yaz_srw_records(ODR o, xmlNodePtr pptr, Z_SRW_record **recs, + Z_SRW_extra_record ***extra, + int *num, void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + int i; + xmlNodePtr ptr; + *num = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "record")) + (*num)++; + } + if (!*num) + return 1; + *recs = (Z_SRW_record *) odr_malloc(o, *num * sizeof(**recs)); + *extra = (Z_SRW_extra_record **) odr_malloc(o, *num * sizeof(**extra)); + for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "record")) + { + yaz_srw_record(o, ptr, *recs + i, *extra + i, client_data, ns); + i++; + } + } + } + else if (o->direction == ODR_ENCODE) + { + int i; + for (i = 0; i < *num; i++) + { + xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "record", + 0); + yaz_srw_record(o, rptr, (*recs)+i, (*extra ? *extra + i : 0), + client_data, ns); + } + } + return 0; +} + +static int yaz_srw_diagnostics(ODR o, xmlNodePtr pptr, Z_SRW_diagnostic **recs, + int *num, void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + int i; + xmlNodePtr ptr; + *num = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "diagnostic")) + (*num)++; + } + if (!*num) + return 1; + *recs = (Z_SRW_diagnostic *) odr_malloc(o, *num * sizeof(**recs)); + for (i = 0; i < *num; i++) + { + (*recs)[i].uri = 0; + (*recs)[i].details = 0; + (*recs)[i].message = 0; + } + for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "diagnostic")) + { + xmlNodePtr rptr; + (*recs)[i].uri = 0; + (*recs)[i].details = 0; + (*recs)[i].message = 0; + for (rptr = ptr->children; rptr; rptr = rptr->next) + { + if (match_xsd_string(rptr, "uri", o, + &(*recs)[i].uri)) + ; + else if (match_xsd_string(rptr, "details", o, + &(*recs)[i].details)) + ; + else if (match_xsd_string(rptr, "message", o, + &(*recs)[i].message)) + ; + } + i++; + } + } + } + else if (o->direction == ODR_ENCODE) + { + int i; + xmlNsPtr ns_diag = + xmlNewNs(pptr, BAD_CAST + "http://www.loc.gov/zing/srw/diagnostic/", 0); + for (i = 0; i < *num; i++) + { + const char *std_diag = "info:srw/diagnostic/1/"; + xmlNodePtr rptr = xmlNewChild(pptr, ns_diag, + BAD_CAST "diagnostic", 0); + add_xsd_string(rptr, "uri", (*recs)[i].uri); + if ((*recs)[i].message) + add_xsd_string(rptr, "message", (*recs)[i].message); + else if ((*recs)[i].uri && + !strncmp((*recs)[i].uri, std_diag, strlen(std_diag))) + { + int no = atoi((*recs)[i].uri + strlen(std_diag)); + const char *message = yaz_diag_srw_str(no); + if (message) + add_xsd_string(rptr, "message", message); + } + add_xsd_string(rptr, "details", (*recs)[i].details); + } + } + return 0; +} + +static int yaz_srw_term(ODR o, xmlNodePtr pptr, Z_SRW_scanTerm *term, + void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + xmlNodePtr ptr; + term->value = 0; + term->numberOfRecords = 0; + term->displayTerm = 0; + term->whereInList = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "value", o, &term->value)) + ; + else if (match_xsd_integer(ptr, "numberOfRecords", o, + &term->numberOfRecords)) + ; + else if (match_xsd_string(ptr, "displayTerm", o, + &term->displayTerm)) + ; + else if (match_xsd_string(ptr, "whereInList", o, + &term->whereInList)) + ; + } + } + else if (o->direction == ODR_ENCODE) + { + xmlNodePtr ptr = pptr; + add_xsd_string(ptr, "value", term->value); + add_xsd_integer(ptr, "numberOfRecords", term->numberOfRecords); + add_xsd_string(ptr, "displayTerm", term->displayTerm); + add_xsd_string(ptr, "whereInList", term->whereInList); + } + return 0; +} + +static int yaz_srw_terms(ODR o, xmlNodePtr pptr, Z_SRW_scanTerm **terms, + int *num, void *client_data, const char *ns) +{ + if (o->direction == ODR_DECODE) + { + int i; + xmlNodePtr ptr; + *num = 0; + for (ptr = pptr->children; ptr; ptr = ptr->next) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "term")) + (*num)++; + } + if (!*num) + return 1; + *terms = (Z_SRW_scanTerm *) odr_malloc(o, *num * sizeof(**terms)); + for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next, i++) + { + if (ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "term")) + yaz_srw_term(o, ptr, (*terms)+i, client_data, ns); + } + } + else if (o->direction == ODR_ENCODE) + { + int i; + for (i = 0; i < *num; i++) + { + xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "term", 0); + yaz_srw_term(o, rptr, (*terms)+i, client_data, ns); + } + } + return 0; +} + +int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, + void *client_data, const char *ns) +{ + xmlNodePtr pptr = (xmlNodePtr) vptr; + if (o->direction == ODR_DECODE) + { + Z_SRW_PDU **p = handler_data; + xmlNodePtr method = pptr->children; + + while (method && method->type == XML_TEXT_NODE) + method = method->next; + + if (!method) + return -1; + if (method->type != XML_ELEMENT_NODE) + return -1; + + *p = yaz_srw_get_core_v_1_1(o); + + if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveRequest")) + { + xmlNodePtr ptr = method->children; + Z_SRW_searchRetrieveRequest *req; + + (*p)->which = Z_SRW_searchRetrieve_request; + req = (*p)->u.request = (Z_SRW_searchRetrieveRequest *) + odr_malloc(o, sizeof(*req)); + req->query_type = Z_SRW_query_type_cql; + req->query.cql = 0; + req->sort_type = Z_SRW_sort_type_none; + req->sort.none = 0; + req->startRecord = 0; + req->maximumRecords = 0; + req->recordSchema = 0; + req->recordPacking = 0; + req->recordXPath = 0; + req->resultSetTTL = 0; + req->stylesheet = 0; + req->database = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_string(ptr, "query", o, + &req->query.cql)) + req->query_type = Z_SRW_query_type_cql; + else if (match_xsd_string(ptr, "pQuery", o, + &req->query.pqf)) + req->query_type = Z_SRW_query_type_pqf; + else if (match_xsd_string(ptr, "xQuery", o, + &req->query.xcql)) + req->query_type = Z_SRW_query_type_xcql; + else if (match_xsd_integer(ptr, "startRecord", o, + &req->startRecord)) + ; + else if (match_xsd_integer(ptr, "maximumRecords", o, + &req->maximumRecords)) + ; + else if (match_xsd_string(ptr, "recordPacking", o, + &req->recordPacking)) + ; + else if (match_xsd_string(ptr, "recordSchema", o, + &req->recordSchema)) + ; + else if (match_xsd_string(ptr, "recordXPath", o, + &req->recordXPath)) + ; + else if (match_xsd_integer(ptr, "resultSetTTL", o, + &req->resultSetTTL)) + ; + else if (match_xsd_string(ptr, "sortKeys", o, + &req->sort.sortKeys)) + req->sort_type = Z_SRW_sort_type_sort; + else if (match_xsd_string(ptr, "stylesheet", o, + &req->stylesheet)) + ; + else if (match_xsd_string(ptr, "database", o, + &req->database)) + ; + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse")) + { + xmlNodePtr ptr = method->children; + Z_SRW_searchRetrieveResponse *res; + + (*p)->which = Z_SRW_searchRetrieve_response; + res = (*p)->u.response = (Z_SRW_searchRetrieveResponse *) + odr_malloc(o, sizeof(*res)); + + res->numberOfRecords = 0; + res->resultSetId = 0; + res->resultSetIdleTime = 0; + res->records = 0; + res->num_records = 0; + res->diagnostics = 0; + res->num_diagnostics = 0; + res->nextRecordPosition = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_integer(ptr, "numberOfRecords", o, + &res->numberOfRecords)) + ; + else if (match_xsd_string(ptr, "resultSetId", o, + &res->resultSetId)) + ; + else if (match_xsd_integer(ptr, "resultSetIdleTime", o, + &res->resultSetIdleTime)) + ; + else if (match_element(ptr, "records")) + yaz_srw_records(o, ptr, &res->records, + &res->extra_records, + &res->num_records, client_data, ns); + else if (match_xsd_integer(ptr, "nextRecordPosition", o, + &res->nextRecordPosition)) + ; + else if (match_element(ptr, "diagnostics")) + yaz_srw_diagnostics(o, ptr, &res->diagnostics, + &res->num_diagnostics, + client_data, ns); + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "explainRequest")) + { + Z_SRW_explainRequest *req; + xmlNodePtr ptr = method->children; + + (*p)->which = Z_SRW_explain_request; + req = (*p)->u.explain_request = (Z_SRW_explainRequest *) + odr_malloc(o, sizeof(*req)); + req->recordPacking = 0; + req->database = 0; + req->stylesheet = 0; + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_string(ptr, "stylesheet", o, + &req->stylesheet)) + ; + else if (match_xsd_string(ptr, "recordPacking", o, + &req->recordPacking)) + ; + else if (match_xsd_string(ptr, "database", o, + &req->database)) + ; + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "explainResponse")) + { + Z_SRW_explainResponse *res; + xmlNodePtr ptr = method->children; + + (*p)->which = Z_SRW_explain_response; + res = (*p)->u.explain_response = (Z_SRW_explainResponse*) + odr_malloc(o, sizeof(*res)); + res->diagnostics = 0; + res->num_diagnostics = 0; + res->record.recordSchema = 0; + res->record.recordData_buf = 0; + res->record.recordData_len = 0; + res->record.recordPosition = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_element(ptr, "record")) + yaz_srw_record(o, ptr, &res->record, &res->extra_record, + client_data, ns); + else if (match_element(ptr, "diagnostics")) + yaz_srw_diagnostics(o, ptr, &res->diagnostics, + &res->num_diagnostics, + client_data, ns); + ; + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "scanRequest")) + { + Z_SRW_scanRequest *req; + xmlNodePtr ptr = method->children; + + (*p)->which = Z_SRW_scan_request; + req = (*p)->u.scan_request = (Z_SRW_scanRequest *) + odr_malloc(o, sizeof(*req)); + req->query_type = Z_SRW_query_type_cql; + req->scanClause.cql = 0; + req->responsePosition = 0; + req->maximumTerms = 0; + req->stylesheet = 0; + req->database = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_string(ptr, "scanClause", o, + &req->scanClause.cql)) + ; + else if (match_xsd_string(ptr, "pScanClause", o, + &req->scanClause.pqf)) + { + req->query_type = Z_SRW_query_type_pqf; + } + else if (match_xsd_integer(ptr, "responsePosition", o, + &req->responsePosition)) + ; + else if (match_xsd_integer(ptr, "maximumTerms", o, + &req->maximumTerms)) + ; + else if (match_xsd_string(ptr, "stylesheet", o, + &req->stylesheet)) + ; + else if (match_xsd_string(ptr, "database", o, + &req->database)) + ; + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "scanResponse")) + { + Z_SRW_scanResponse *res; + xmlNodePtr ptr = method->children; + + (*p)->which = Z_SRW_scan_response; + res = (*p)->u.scan_response = (Z_SRW_scanResponse *) + odr_malloc(o, sizeof(*res)); + res->terms = 0; + res->num_terms = 0; + res->diagnostics = 0; + res->num_diagnostics = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_element(ptr, "terms")) + yaz_srw_terms(o, ptr, &res->terms, + &res->num_terms, client_data, + ns); + else if (match_element(ptr, "diagnostics")) + yaz_srw_diagnostics(o, ptr, &res->diagnostics, + &res->num_diagnostics, + client_data, ns); + } + } + else + { + *p = 0; + return -1; + } + } + else if (o->direction == ODR_ENCODE) + { + Z_SRW_PDU **p = handler_data; + xmlNsPtr ns_srw; + + if ((*p)->which == Z_SRW_searchRetrieve_request) + { + Z_SRW_searchRetrieveRequest *req = (*p)->u.request; + xmlNodePtr ptr = xmlNewChild(pptr, 0, + BAD_CAST "searchRetrieveRequest", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + if ((*p)->srw_version) + add_xsd_string(ptr, "version", (*p)->srw_version); + switch(req->query_type) + { + case Z_SRW_query_type_cql: + add_xsd_string(ptr, "query", req->query.cql); + break; + case Z_SRW_query_type_xcql: + add_xsd_string(ptr, "xQuery", req->query.xcql); + break; + case Z_SRW_query_type_pqf: + add_xsd_string(ptr, "pQuery", req->query.pqf); + break; + } + add_xsd_integer(ptr, "startRecord", req->startRecord); + add_xsd_integer(ptr, "maximumRecords", req->maximumRecords); + add_xsd_string(ptr, "recordPacking", req->recordPacking); + add_xsd_string(ptr, "recordSchema", req->recordSchema); + add_xsd_string(ptr, "recordXPath", req->recordXPath); + add_xsd_integer(ptr, "resultSetTTL", req->resultSetTTL); + switch(req->sort_type) + { + case Z_SRW_sort_type_none: + break; + case Z_SRW_sort_type_sort: + add_xsd_string(ptr, "sortKeys", req->sort.sortKeys); + break; + case Z_SRW_sort_type_xSort: + add_xsd_string(ptr, "xSortKeys", req->sort.xSortKeys); + break; + } + add_xsd_string(ptr, "stylesheet", req->stylesheet); + add_xsd_string(ptr, "database", req->database); + } + else if ((*p)->which == Z_SRW_searchRetrieve_response) + { + Z_SRW_searchRetrieveResponse *res = (*p)->u.response; + xmlNodePtr ptr = xmlNewChild(pptr, 0, + BAD_CAST "searchRetrieveResponse", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + if ((*p)->srw_version) + add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_integer(ptr, "numberOfRecords", res->numberOfRecords); + add_xsd_string(ptr, "resultSetId", res->resultSetId); + add_xsd_integer(ptr, "resultSetIdleTime", res->resultSetIdleTime); + if (res->num_records) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "records", 0); + yaz_srw_records(o, rptr, &res->records, &res->extra_records, + &res->num_records, + client_data, ns); + } + add_xsd_integer(ptr, "nextRecordPosition", + res->nextRecordPosition); + if (res->num_diagnostics) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", + 0); + yaz_srw_diagnostics(o, rptr, &res->diagnostics, + &res->num_diagnostics, client_data, ns); + } + } + else if ((*p)->which == Z_SRW_explain_request) + { + Z_SRW_explainRequest *req = (*p)->u.explain_request; + xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainRequest", + 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "recordPacking", req->recordPacking); + add_xsd_string(ptr, "stylesheet", req->stylesheet); + add_xsd_string(ptr, "database", req->database); + } + else if ((*p)->which == Z_SRW_explain_response) + { + Z_SRW_explainResponse *res = (*p)->u.explain_response; + xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainResponse", + 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + if (1) + { + xmlNodePtr ptr1 = xmlNewChild(ptr, 0, BAD_CAST "record", 0); + yaz_srw_record(o, ptr1, &res->record, &res->extra_record, + client_data, ns); + } + if (res->num_diagnostics) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", + 0); + yaz_srw_diagnostics(o, rptr, &res->diagnostics, + &res->num_diagnostics, client_data, ns); + } + } + else if ((*p)->which == Z_SRW_scan_request) + { + Z_SRW_scanRequest *req = (*p)->u.scan_request; + xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanRequest", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + switch(req->query_type) + { + case Z_SRW_query_type_cql: + add_xsd_string(ptr, "scanClause", req->scanClause.cql); + break; + case Z_SRW_query_type_pqf: + add_xsd_string(ptr, "pScanClause", req->scanClause.pqf); + break; + } + add_xsd_integer(ptr, "responsePosition", req->responsePosition); + add_xsd_integer(ptr, "maximumTerms", req->maximumTerms); + add_xsd_string(ptr, "stylesheet", req->stylesheet); + add_xsd_string(ptr, "database", req->database); + } + else if ((*p)->which == Z_SRW_scan_response) + { + Z_SRW_scanResponse *res = (*p)->u.scan_response; + xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanResponse", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + + if (res->num_terms) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "terms", 0); + yaz_srw_terms(o, rptr, &res->terms, &res->num_terms, + client_data, ns); + } + if (res->num_diagnostics) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", + 0); + yaz_srw_diagnostics(o, rptr, &res->diagnostics, + &res->num_diagnostics, client_data, ns); + } + } + else + return -1; + + } + return 0; +} + +int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, + void *client_data, const char *ns) +{ + xmlNodePtr pptr = (xmlNodePtr) vptr; + if (o->direction == ODR_DECODE) + { + Z_SRW_PDU **p = handler_data; + xmlNodePtr method = pptr->children; + + while (method && method->type == XML_TEXT_NODE) + method = method->next; + + if (!method) + return -1; + if (method->type != XML_ELEMENT_NODE) + return -1; + + *p = yaz_srw_get_core_v_1_1(o); + + if (!xmlStrcmp(method->name, BAD_CAST "updateRequest")) + { + xmlNodePtr ptr = method->children; + Z_SRW_updateRequest *req; + char *oper = 0; + + (*p)->which = Z_SRW_update_request; + req = (*p)->u.update_request = (Z_SRW_updateRequest *) + odr_malloc(o, sizeof(*req)); + req->database = 0; + req->operation = 0; + req->recordId = 0; + req->recordVersion = 0; + req->recordOldVersion = 0; + req->record.recordData_buf = 0; + req->record.recordData_len = 0; + req->record.recordSchema = 0; + req->record.recordPacking = 0; + req->extra_record = 0; + req->extraRequestData = 0; + req->stylesheet = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_string(ptr, "operation", o, + &oper)){ + if ( oper ){ + if ( !strcmp(oper, "delete")) + req->operation = "delete"; + else if (!strcmp(oper,"replace" )) + req->operation = "replace"; + else if ( !strcmp( oper, "insert")) + req->operation = "insert"; + } + } + else if (match_xsd_string(ptr, "recordId", o, + &req->recordId)) + ; + else if (match_xsd_string(ptr, "recordVersion", o, + &req->recordVersion)) + ; + else if (match_element(ptr, "record")) + yaz_srw_record(o, ptr, &req->record, &req->extra_record, + client_data, ns); + else if (match_xsd_string(ptr, "stylesheet", o, + &req->stylesheet)) + ; + else if (match_xsd_string(ptr, "database", o, + &req->database)) + ; + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "updateResponse")) + { + xmlNodePtr ptr = method->children; + Z_SRW_updateResponse *res; + + (*p)->which = Z_SRW_update_response; + res = (*p)->u.update_response = (Z_SRW_updateResponse *) + odr_malloc(o, sizeof(*res)); + + res->operationStatus = 0; + res->recordId = 0; + res->recordVersion = 0; + res->recordChecksum = 0; + res->diagnostics = 0; + res->num_diagnostics = 0; + res->record.recordData_buf = 0; + res->record.recordData_len = 0; + res->record.recordSchema = 0; + res->record.recordPacking = 0; + res->extra_record = 0; + res->extraResponseData = 0; + + for (; ptr; ptr = ptr->next) + { + if (match_xsd_string(ptr, "version", o, + &(*p)->srw_version)) + ; + else if (match_xsd_string(ptr, "operationStatus", o, + &res->operationStatus )) + ; + else if (match_xsd_string(ptr, "recordId", o, + &res->recordId)) + ; + else if (match_xsd_string(ptr, "recordVersion", o, + &res->recordVersion )) + ; + else if (match_element(ptr, "record")) + yaz_srw_record(o, ptr, &res->record, &res->extra_record, + client_data, ns); + else if (match_element(ptr, "diagnostics")) + yaz_srw_diagnostics(o, ptr, &res->diagnostics, + &res->num_diagnostics, + client_data, ns); + } + } + else if (!xmlStrcmp(method->name, BAD_CAST "explainUpdateRequest")) + { + } + else if (!xmlStrcmp(method->name, BAD_CAST "explainUpdateResponse")) + { + } + else + { + *p = 0; + return -1; + } + } + else if (o->direction == ODR_ENCODE) + { + Z_SRW_PDU **p = handler_data; + xmlNsPtr ns_srw; + + if ((*p)->which == Z_SRW_update_request) + { + Z_SRW_updateRequest *req = (*p)->u.update_request; + xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "updateRequest", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zu"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "stylesheet", req->stylesheet); + add_xsd_string(ptr, "database", req->database); + } + else if ((*p)->which == Z_SRW_update_response) + { + Z_SRW_updateResponse *res = (*p)->u.update_response; + xmlNodePtr ptr = xmlNewChild(pptr, 0, (xmlChar *) + "updateResponse", 0); + ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zu"); + xmlSetNs(ptr, ns_srw); + + add_xsd_string(ptr, "version", (*p)->srw_version); + add_xsd_string(ptr, "operationStatus", res->operationStatus ); + add_xsd_string(ptr, "recordId", res->recordId ); + if (res->recordVersion) + add_xsd_string(ptr, "recordVersion", res->recordVersion ); + if (res->recordChecksum) + add_xsd_string(ptr, "recordChecksum", res->recordChecksum ); + if (res->record.recordData_len) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "record", 0); + yaz_srw_record(o, rptr, &res->record, &res->extra_record, + client_data, ns); + } + if (res->num_diagnostics) + { + xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", 0); + yaz_srw_diagnostics(o, rptr, &res->diagnostics, + &res->num_diagnostics, client_data, ns); + } + if ( res->extraResponseData ) + add_xsd_string(ptr, "extraResponseData", res->extraResponseData); + } + else + return -1; + + } + return 0; +} + +#endif + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/srw.csv b/dependencies/yaz-2.1.28/src/srw.csv new file mode 100644 index 0000000..c16c03f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/srw.csv @@ -0,0 +1,94 @@ +"$Id: srw.csv,v 1.2 2005/04/22 15:14:24 adam Exp $" +1, "Permanent system error" +2, "System temporarily unavailable" +3, "Authentication error" +4, "Unsupported operation" +5, "Unsupported version" +6, "Unsupported parameter value" +7, "Mandatory parameter not supplied" +8, "Unsupported parameter" +10, "Query syntax error" +11, "Unsupported query type" +12, "Too many characters in query" +13, "Invalid or unsupported use of parentheses" +14, "Invalid or unsupported use of quotes" +15, "Unsupported context set" +16, "Unsupported index" +17, "Unsupported combination of index and context set" +18, "Unsupported combination of indexes" +19, "Unsupported relation" +20, "Unsupported relation modifier" +21, "Unsupported combination of relation modifers" +22, "Unsupported combination of relation and index" +23, "Too many characters in term" +24, "Unsupported combination of relation and term" +25, "Special characters not quoted in term" +26, "Non special character escaped in term" +27, "Empty term unsupported" +28, "Masking character not supported" +29, "Masked words too short" +30, "Too many masking characters in term" +31, "Anchoring character not supported" +32, "Anchoring character in unsupported position" +33, "Combination of proximity/adjacency and masking characters not supported" +34, "Combination of proximity/adjacency and anchoring characters not supported" +35, "Terms only exclusion stopwords" +36, "Term in invalid format for index or relation" +37, "Unsupported boolean operator" +38, "Too many boolean operators in query" +39, "Proximity not supported" +40, "Unsupported proximity relation" +41, "Unsupported proximity distance" +42, "Unsupported proximity unit" +43, "Unsupported proximity ordering" +44, "Unsupported combination of proximity modifiers" +45, "Prefix assigned to multiple identifiers" +46, "Unsupported boolean modifier" +47, "Cannot process query; reason unknown" +48, "Query feature unsupported" +49, "Masking character in unsupported position" +50, "Result sets not supported" +51, "Result set does not exist" +52, "Result set temporarily unavailable" +53, "Result sets only supported for retrieval" +54, "Retrieval may only occur from an existing result set" +55, "Combination of result sets with search terms not supported" +56, "Only combination of single result set with search terms supported" +57, "Result set created but no records available" +58, "Result set created with unpredictable partial results available" +59, "Result set created with valid partial results available" +60, "Result set no created: too many records retrieved" +61, "First record position out of range" +62, "Negative number of records requested" +63, "System error in retrieving records" +64, "Record temporarily unavailable" +65, "Record does not exist" +66, "Unknown schema for retrieval" +67, "Record not available in this schema" +68, "Not authorised to send record" +69, "Not authorised to send record in this schema" +70, "Record too large to send" +71, "Unsupported record packing" +72, "XPath retrieval unsupported" +73, "XPath expression contains unsupported feature" +74, "Unable to evaluate XPath expression" +80, "Sort not supported" +81, "Unsupported sort type" +82, "Unsupported sort sequence" +83, "Too many records to sort" +84, "Too many sort keys to sort" +85, "Duplicate sort keys" +86, "Cannot sort: incompatible record formats" +87, "Unsupported schema for sort" +88, "Unsupported path for sort" +89, "Path unsupported for schema" +90, "Unsupported direction value" +91, "Unsupported case value" +92, "Unsupported missing value action" +100, "Explain not supported" +101, "Explain request type not supported (SOAP vs GET)" +102, "Explain record temporarily unavailable" +110, "Stylesheets not supported" +111, "Unsupported stylesheet" +120, "Response position out of range" +121, "Too many terms requested" diff --git a/dependencies/yaz-2.1.28/src/srwutil.c b/dependencies/yaz-2.1.28/src/srwutil.c new file mode 100644 index 0000000..6319d39 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/srwutil.c @@ -0,0 +1,1263 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: srwutil.c,v 1.47 2006/08/18 06:30:05 adam Exp $ + */ +/** + * \file srwutil.c + * \brief Implements SRW/SRU utilities. + */ + +#include +#include +#include + +static int hex_digit (int ch) +{ + if (ch >= '0' && ch <= '9') + return ch - '0'; + else if (ch >= 'a' && ch <= 'f') + return ch - 'a'+10; + else if (ch >= 'A' && ch <= 'F') + return ch - 'A'+10; + return 0; +} + +void encode_uri_char(char *dst, char ch) +{ + if (ch == ' ') + strcpy(dst, "+"); + else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || + (ch >= '0' && ch <= '9')) + { + dst[0] = ch; + dst[1] = '\0'; + } + else + { + dst[0] = '%'; + sprintf(dst+1, "%02X", (unsigned char ) ch); + } +} + +static void yaz_array_to_uri_ex(char **path, ODR o, char **name, char **value, + const char *extra_args) +{ + size_t i, szp = 0, sz = extra_args ? 1+strlen(extra_args) : 1; + for(i = 0; name[i]; i++) + sz += strlen(name[i]) + 3 + strlen(value[i]) * 3; + *path = odr_malloc(o, sz); + + for(i = 0; name[i]; i++) + { + size_t j, ilen; + if (i) + (*path)[szp++] = '&'; + ilen = strlen(name[i]); + memcpy(*path+szp, name[i], ilen); + szp += ilen; + (*path)[szp++] = '='; + for (j = 0; value[i][j]; j++) + { + size_t vlen; + char vstr[5]; + encode_uri_char(vstr, value[i][j]); + vlen = strlen(vstr); + memcpy(*path+szp, vstr, vlen); + szp += vlen; + } + } + if (extra_args) + { + if (i) + (*path)[szp++] = '&'; + memcpy(*path + szp, extra_args, strlen(extra_args)); + szp += strlen(extra_args); + } + (*path)[szp] = '\0'; +} + +void yaz_array_to_uri(char **path, ODR o, char **name, char **value) +{ + return yaz_array_to_uri_ex(path, o, name, value, 0); +} + +int yaz_uri_array(const char *path, ODR o, char ***name, char ***val) +{ + int no = 2; + const char *cp; + *name = 0; + if (*path == '?') + path++; + if (!*path) + return 0; + cp = path; + while ((cp = strchr(cp, '&'))) + { + cp++; + no++; + } + *name = odr_malloc(o, no * sizeof(char*)); + *val = odr_malloc(o, no * sizeof(char*)); + + for (no = 0; *path; no++) + { + const char *p1 = strchr(path, '='); + size_t i = 0; + char *ret; + if (!p1) + break; + + (*name)[no] = odr_malloc(o, (p1-path)+1); + memcpy((*name)[no], path, p1-path); + (*name)[no][p1-path] = '\0'; + + path = p1 + 1; + p1 = strchr(path, '&'); + if (!p1) + p1 = strlen(path) + path; + (*val)[no] = ret = odr_malloc(o, p1 - path + 1); + while (*path && *path != '&') + { + if (*path == '+') + { + ret[i++] = ' '; + path++; + } + else if (*path == '%' && path[1] && path[2]) + { + ret[i++] = hex_digit (path[1])*16 + hex_digit (path[2]); + path = path + 3; + } + else + ret[i++] = *path++; + } + ret[i] = '\0'; + + if (*path) + path++; + } + (*name)[no] = 0; + (*val)[no] = 0; + return no; +} + +char *yaz_uri_val(const char *path, const char *name, ODR o) +{ + size_t nlen = strlen(name); + if (*path != '?') + return 0; + path++; + while (path && *path) + { + const char *p1 = strchr(path, '='); + if (!p1) + break; + if ((size_t)(p1 - path) == nlen && !memcmp(path, name, nlen)) + { + size_t i = 0; + char *ret; + + path = p1 + 1; + p1 = strchr(path, '&'); + if (!p1) + p1 = strlen(path) + path; + ret = (char *) odr_malloc(o, p1 - path + 1); + while (*path && *path != '&') + { + if (*path == '+') + { + ret[i++] = ' '; + path++; + } + else if (*path == '%' && path[1] && path[2]) + { + ret[i++] = hex_digit (path[1])*16 + hex_digit (path[2]); + path = path + 3; + } + else + ret[i++] = *path++; + } + ret[i] = '\0'; + return ret; + } + path = strchr(p1, '&'); + if (path) + path++; + } + return 0; +} + +static int yaz_base64decode(const char *in, char *out) +{ + const char *map = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz0123456789+/"; + int olen = 0; + int len = strlen(in); + + while (len >= 4) + { + char i0, i1, i2, i3; + char *p; + + if (!(p = strchr(map, in[0]))) + return 0; + i0 = p - map; + len--; + if (!(p = strchr(map, in[1]))) + return 0; + i1 = p - map; + len--; + *(out++) = i0 << 2 | i1 >> 4; + olen++; + if (in[2] == '=') + break; + if (!(p = strchr(map, in[2]))) + return 0; + i2 = p - map; + len--; + *(out++) = i1 << 4 | i2 >> 2; + olen++; + if (in[3] == '=') + break; + if (!(p = strchr(map, in[3]))) + return 0; + i3 = p - map; + len--; + *(out++) = i2 << 6 | i3; + olen++; + + in += 4; + } + + *out = '\0'; + return olen; +} + +/** + * Look for authentication tokens in HTTP Basic parameters or in x-username/x-password + * parameters. Added by SH. + */ +static void yaz_srw_decodeauth(Z_SRW_PDU *sr, Z_HTTP_Request *hreq, + char *username, char *password, ODR decode) +{ + const char *basic = z_HTTP_header_lookup(hreq->headers, "Authorization"); + + if (username) + sr->username = username; + if (password) + sr->password = password; + + if (basic) { + int len, olen; + char out[256]; + char ubuf[256] = "", pbuf[256] = "", *p; + if (strncmp(basic, "Basic ", 6)) + return; + basic += 6; + len = strlen(basic); + if (!len || len > 256) + return; + olen = yaz_base64decode(basic, out); + /* Format of out should be username:password at this point */ + strcpy(ubuf, out); + if ((p = strchr(ubuf, ':'))) { + *(p++) = '\0'; + if (*p) + strcpy(pbuf, p); + } + if (*ubuf) + sr->username = odr_strdup(decode, ubuf); + if (*pbuf) + sr->password = odr_strdup(decode, pbuf); + } +} + +void yaz_uri_val_int(const char *path, const char *name, ODR o, int **intp) +{ + const char *v = yaz_uri_val(path, name, o); + if (v) + *intp = odr_intdup(o, atoi(v)); +} + +void yaz_mk_srw_diagnostic(ODR o, Z_SRW_diagnostic *d, + const char *uri, const char *message, + const char *details) +{ + d->uri = odr_strdup(o, uri); + if (message) + d->message = odr_strdup(o, message); + else + d->message = 0; + if (details) + d->details = odr_strdup(o, details); + else + d->details = 0; +} + +void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d, + int code, const char *details) +{ + char uri[40]; + + sprintf(uri, "info:srw/diagnostic/1/%d", code); + yaz_mk_srw_diagnostic(o, d, uri, 0, details); +} + +void yaz_add_srw_diagnostic_uri(ODR o, Z_SRW_diagnostic **d, + int *num, const char *uri, + const char *message, const char *details) +{ + Z_SRW_diagnostic *d_new; + d_new = (Z_SRW_diagnostic *) odr_malloc (o, (*num + 1)* sizeof(**d)); + if (*num) + memcpy (d_new, *d, *num *sizeof(**d)); + *d = d_new; + + yaz_mk_srw_diagnostic(o, *d + *num, uri, message, details); + (*num)++; +} + +void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d, + int *num, int code, const char *addinfo) +{ + char uri[40]; + + sprintf(uri, "info:srw/diagnostic/1/%d", code); + yaz_add_srw_diagnostic_uri(o, d, num, uri, 0, addinfo); +} + +int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, + Z_SOAP **soap_package, ODR decode, char **charset) +{ + if (!strcmp(hreq->method, "POST")) + { + const char *content_type = z_HTTP_header_lookup(hreq->headers, + "Content-Type"); + if (content_type && + (!yaz_strcmp_del("text/xml", content_type, "; ") || + !yaz_strcmp_del("application/soap+xml", content_type, "; ") || + !yaz_strcmp_del("text/plain", content_type, "; "))) + { + char *db = "Default"; + const char *p0 = hreq->path, *p1; + int ret = -1; + const char *charset_p = 0; + + static Z_SOAP_Handler soap_handlers[4] = { +#if YAZ_HAVE_XML2 + {"http://www.loc.gov/zing/srw/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {"http://www.loc.gov/zing/srw/v1.0/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {"http://www.loc.gov/zing/srw/update/", 0, + (Z_SOAP_fun) yaz_ucp_codec}, +#endif + {0, 0, 0} + }; + + if (*p0 == '/') + p0++; + p1 = strchr(p0, '?'); + if (!p1) + p1 = p0 + strlen(p0); + if (p1 != p0) + { + db = (char*) odr_malloc(decode, p1 - p0 + 1); + memcpy (db, p0, p1 - p0); + db[p1 - p0] = '\0'; + } + + if (charset && (charset_p = strstr(content_type, "; charset="))) + { + int i = 0; + charset_p += 10; + while (i < 20 && charset_p[i] && + !strchr("; \n\r", charset_p[i])) + i++; + *charset = (char*) odr_malloc(decode, i+1); + memcpy(*charset, charset_p, i); + (*charset)[i] = '\0'; + } + ret = z_soap_codec(decode, soap_package, + &hreq->content_buf, &hreq->content_len, + soap_handlers); + if (ret == 0 && (*soap_package)->which == Z_SOAP_generic) + { + *srw_pdu = (Z_SRW_PDU*) (*soap_package)->u.generic->p; + + if ((*srw_pdu)->which == Z_SRW_searchRetrieve_request && + (*srw_pdu)->u.request->database == 0) + (*srw_pdu)->u.request->database = db; + + if ((*srw_pdu)->which == Z_SRW_explain_request && + (*srw_pdu)->u.explain_request->database == 0) + (*srw_pdu)->u.explain_request->database = db; + + if ((*srw_pdu)->which == Z_SRW_scan_request && + (*srw_pdu)->u.scan_request->database == 0) + (*srw_pdu)->u.scan_request->database = db; + + if ((*srw_pdu)->which == Z_SRW_update_request && + (*srw_pdu)->u.update_request->database == 0) + (*srw_pdu)->u.update_request->database = db; + + return 0; + } + return 1; + } + } + return 2; +} + +static int yaz_sru_integer_decode(ODR odr, const char *pname, + const char *valstr, int **valp, + Z_SRW_diagnostic **diag, int *num_diag) + +{ + int ival; + if (!valstr) + return 0; + if (sscanf(valstr, "%d", &ival) != 1) + { + yaz_add_srw_diagnostic(odr, diag, num_diag, + YAZ_SRW_UNSUPP_PARAMETER_VALUE, pname); + return 0; + } + *valp = odr_intdup(odr, ival); + return 1; +} +/** + http://www.loc.gov/z3950/agency/zing/srw/service.html +*/ +int yaz_sru_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, + Z_SOAP **soap_package, ODR decode, char **charset, + Z_SRW_diagnostic **diag, int *num_diag) +{ +#if YAZ_HAVE_XML2 + static Z_SOAP_Handler soap_handlers[2] = { + {"http://www.loc.gov/zing/srw/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {0, 0, 0} + }; +#endif + const char *content_type = z_HTTP_header_lookup(hreq->headers, + "Content-Type"); + /* + SRU GET: allow any content type. + SRU POST: we support "application/x-www-form-urlencoded"; + not "multipart/form-data" . + */ + if (!strcmp(hreq->method, "GET") + || + (!strcmp(hreq->method, "POST") + && content_type && + !yaz_strcmp_del("application/x-www-form-urlencoded", + content_type, "; ") + ) + ) + { + char *db = "Default"; + const char *p0 = hreq->path, *p1; +#if YAZ_HAVE_XML2 + const char *operation = 0; + char *version = 0; + char *query = 0; + char *pQuery = 0; + char *username = 0; + char *password = 0; + char *sortKeys = 0; + char *stylesheet = 0; + char *scanClause = 0; + char *pScanClause = 0; + char *recordXPath = 0; + char *recordSchema = 0; + char *recordPacking = "xml"; /* xml packing is default for SRU */ + char *maximumRecords = 0; + char *startRecord = 0; + char *maximumTerms = 0; + char *responsePosition = 0; + char *extraRequestData = 0; +#endif + char **uri_name; + char **uri_val; + + if (charset) + *charset = 0; + if (*p0 == '/') + p0++; + p1 = strchr(p0, '?'); + if (!p1) + p1 = p0 + strlen(p0); + if (p1 != p0) + { + db = (char*) odr_malloc(decode, p1 - p0 + 1); + memcpy (db, p0, p1 - p0); + db[p1 - p0] = '\0'; + } + if (!strcmp(hreq->method, "POST")) + p1 = hreq->content_buf; + yaz_uri_array(p1, decode, &uri_name, &uri_val); +#if YAZ_HAVE_XML2 + if (uri_name) + { + int i; + for (i = 0; uri_name[i]; i++) + { + char *n = uri_name[i]; + char *v = uri_val[i]; + if (!strcmp(n, "query")) + query = v; + else if (!strcmp(n, "x-pquery")) + pQuery = v; + else if (!strcmp(n, "x-username")) + username = v; + else if (!strcmp(n, "x-password")) + password = v; + else if (!strcmp(n, "operation")) + operation = v; + else if (!strcmp(n, "stylesheet")) + stylesheet = v; + else if (!strcmp(n, "sortKeys")) + sortKeys = v; + else if (!strcmp(n, "recordXPath")) + recordXPath = v; + else if (!strcmp(n, "recordSchema")) + recordSchema = v; + else if (!strcmp(n, "recordPacking")) + recordPacking = v; + else if (!strcmp(n, "version")) + version = v; + else if (!strcmp(n, "scanClause")) + scanClause = v; + else if (!strcmp(n, "x-pScanClause")) + pScanClause = v; + else if (!strcmp(n, "maximumRecords")) + maximumRecords = v; + else if (!strcmp(n, "startRecord")) + startRecord = v; + else if (!strcmp(n, "maximumTerms")) + maximumTerms = v; + else if (!strcmp(n, "responsePosition")) + responsePosition = v; + else if (!strcmp(n, "extraRequestData")) + extraRequestData = v; + else + yaz_add_srw_diagnostic(decode, diag, num_diag, + YAZ_SRW_UNSUPP_PARAMETER, n); + } + } + if (!version) + { + if (uri_name) + yaz_add_srw_diagnostic( + decode, diag, num_diag, + YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "version"); + version = "1.1"; + } + if (strcmp(version, "1.1")) + yaz_add_srw_diagnostic(decode, diag, num_diag, + YAZ_SRW_UNSUPP_VERSION, "1.1"); + if (!operation) + { + if (uri_name) + yaz_add_srw_diagnostic( + decode, diag, num_diag, + YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "operation"); + operation = "explain"; + } + if (!strcmp(operation, "searchRetrieve")) + { + Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_searchRetrieve_request); + + sr->srw_version = version; + *srw_pdu = sr; + yaz_srw_decodeauth(sr, hreq, username, password, decode); + if (query) + { + sr->u.request->query_type = Z_SRW_query_type_cql; + sr->u.request->query.cql = query; + } + else if (pQuery) + { + sr->u.request->query_type = Z_SRW_query_type_pqf; + sr->u.request->query.pqf = pQuery; + } + else + yaz_add_srw_diagnostic( + decode, diag, num_diag, + YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "query"); + + if (sortKeys) + { + sr->u.request->sort_type = Z_SRW_sort_type_sort; + sr->u.request->sort.sortKeys = sortKeys; + } + sr->u.request->recordXPath = recordXPath; + sr->u.request->recordSchema = recordSchema; + sr->u.request->recordPacking = recordPacking; + sr->u.request->stylesheet = stylesheet; + + yaz_sru_integer_decode(decode, "maximumRecords", maximumRecords, + &sr->u.request->maximumRecords, + diag, num_diag); + + yaz_sru_integer_decode(decode, "startRecord", startRecord, + &sr->u.request->startRecord, + diag, num_diag); + + sr->u.request->database = db; + + (*soap_package) = odr_malloc(decode, sizeof(**soap_package)); + (*soap_package)->which = Z_SOAP_generic; + + (*soap_package)->u.generic = + odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); + + (*soap_package)->u.generic->p = sr; + (*soap_package)->u.generic->ns = soap_handlers[0].ns; + (*soap_package)->u.generic->no = 0; + + (*soap_package)->ns = "SRU"; + + return 0; + } + else if (!strcmp(operation, "explain")) + { + /* Transfer SRU explain parameters to common struct */ + /* http://www.loc.gov/z3950/agency/zing/srw/explain.html */ + Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_explain_request); + + sr->srw_version = version; + yaz_srw_decodeauth(sr, hreq, username, password, decode); + *srw_pdu = sr; + sr->u.explain_request->recordPacking = recordPacking; + sr->u.explain_request->database = db; + + sr->u.explain_request->stylesheet = stylesheet; + + (*soap_package) = odr_malloc(decode, sizeof(**soap_package)); + (*soap_package)->which = Z_SOAP_generic; + + (*soap_package)->u.generic = + odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); + + (*soap_package)->u.generic->p = sr; + (*soap_package)->u.generic->ns = soap_handlers[0].ns; + (*soap_package)->u.generic->no = 0; + + (*soap_package)->ns = "SRU"; + + return 0; + } + else if (!strcmp(operation, "scan")) + { + /* Transfer SRU scan parameters to common struct */ + /* http://www.loc.gov/z3950/agency/zing/srw/scan.html */ + Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_scan_request); + + sr->srw_version = version; + *srw_pdu = sr; + yaz_srw_decodeauth(sr, hreq, username, password, decode); + + if (scanClause) + { + sr->u.scan_request->query_type = Z_SRW_query_type_cql; + sr->u.scan_request->scanClause.cql = scanClause; + } + else if (pScanClause) + { + sr->u.scan_request->query_type = Z_SRW_query_type_pqf; + sr->u.scan_request->scanClause.pqf = pScanClause; + } + else + yaz_add_srw_diagnostic( + decode, diag, num_diag, + YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "scanClause"); + sr->u.scan_request->database = db; + + yaz_sru_integer_decode(decode, "maximumTerms", + maximumTerms, + &sr->u.scan_request->maximumTerms, + diag, num_diag); + + yaz_sru_integer_decode(decode, "responsePosition", + responsePosition, + &sr->u.scan_request->responsePosition, + diag, num_diag); + + sr->u.scan_request->stylesheet = stylesheet; + + (*soap_package) = odr_malloc(decode, sizeof(**soap_package)); + (*soap_package)->which = Z_SOAP_generic; + + (*soap_package)->u.generic = + odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); + + (*soap_package)->u.generic->p = sr; + (*soap_package)->u.generic->ns = soap_handlers[0].ns; + (*soap_package)->u.generic->no = 0; + + (*soap_package)->ns = "SRU"; + + return 0; + } + else + { + /* unsupported operation ... */ + /* Act as if we received a explain request and throw diagnostic. */ + + Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_explain_request); + + sr->srw_version = version; + *srw_pdu = sr; + sr->u.explain_request->recordPacking = recordPacking; + sr->u.explain_request->database = db; + + sr->u.explain_request->stylesheet = stylesheet; + + (*soap_package) = odr_malloc(decode, sizeof(**soap_package)); + (*soap_package)->which = Z_SOAP_generic; + + (*soap_package)->u.generic = + odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); + + (*soap_package)->u.generic->p = sr; + (*soap_package)->u.generic->ns = soap_handlers[0].ns; + (*soap_package)->u.generic->no = 0; + + (*soap_package)->ns = "SRU"; + + yaz_add_srw_diagnostic(decode, diag, num_diag, + YAZ_SRW_UNSUPP_OPERATION, operation); + return 0; + } +#endif + return 1; + } + return 2; +} + +Z_SRW_extra_record *yaz_srw_get_extra_record(ODR o) +{ + Z_SRW_extra_record *res = (Z_SRW_extra_record *) + odr_malloc(o, sizeof(*res)); + res->type = 1; + res->recordReviewCode = 0; + res->recordReviewNote = 0; + res->recordId = 0; + res->nonDupRecordId = 0; + res->recordLockStatus = 0; + res->recordOldVersion = 0; + return res; +} + +Z_SRW_PDU *yaz_srw_get_core_v_1_1(ODR o) +{ + Z_SRW_PDU *p = (Z_SRW_PDU *) odr_malloc(o, sizeof(*p)); + p->srw_version = odr_strdup(o, "1.1"); + p->username = 0; + p->password = 0; + p->extra_args = 0; + return p; +} + +Z_SRW_PDU *yaz_srw_get(ODR o, int which) +{ + Z_SRW_PDU *sr = yaz_srw_get_core_v_1_1(o); + sr->which = which; + switch(which) + { + case Z_SRW_searchRetrieve_request: + sr->u.request = (Z_SRW_searchRetrieveRequest *) + odr_malloc(o, sizeof(*sr->u.request)); + sr->u.request->query_type = Z_SRW_query_type_cql; + sr->u.request->query.cql = 0; + sr->u.request->sort_type = Z_SRW_sort_type_none; + sr->u.request->sort.none = 0; + sr->u.request->startRecord = 0; + sr->u.request->maximumRecords = 0; + sr->u.request->recordSchema = 0; + sr->u.request->recordPacking = 0; + sr->u.request->recordXPath = 0; + sr->u.request->database = 0; + sr->u.request->resultSetTTL = 0; + sr->u.request->stylesheet = 0; + break; + case Z_SRW_searchRetrieve_response: + sr->u.response = (Z_SRW_searchRetrieveResponse *) + odr_malloc(o, sizeof(*sr->u.response)); + sr->u.response->numberOfRecords = 0; + sr->u.response->resultSetId = 0; + sr->u.response->resultSetIdleTime = 0; + sr->u.response->records = 0; + sr->u.response->num_records = 0; + sr->u.response->diagnostics = 0; + sr->u.response->num_diagnostics = 0; + sr->u.response->nextRecordPosition = 0; + sr->u.response->extra_records = 0; + break; + case Z_SRW_explain_request: + sr->u.explain_request = (Z_SRW_explainRequest *) + odr_malloc(o, sizeof(*sr->u.explain_request)); + sr->u.explain_request->recordPacking = 0; + sr->u.explain_request->database = 0; + sr->u.explain_request->stylesheet = 0; + break; + case Z_SRW_explain_response: + sr->u.explain_response = (Z_SRW_explainResponse *) + odr_malloc(o, sizeof(*sr->u.explain_response)); + sr->u.explain_response->record.recordData_buf = 0; + sr->u.explain_response->record.recordData_len = 0; + sr->u.explain_response->record.recordSchema = 0; + sr->u.explain_response->record.recordPosition = 0; + sr->u.explain_response->record.recordPacking = + Z_SRW_recordPacking_string; + sr->u.explain_response->diagnostics = 0; + sr->u.explain_response->num_diagnostics = 0; + sr->u.explain_response->extra_record = 0; + break; + case Z_SRW_scan_request: + sr->u.scan_request = (Z_SRW_scanRequest *) + odr_malloc(o, sizeof(*sr->u.scan_request)); + sr->u.scan_request->database = 0; + sr->u.scan_request->stylesheet = 0; + sr->u.scan_request->maximumTerms = 0; + sr->u.scan_request->responsePosition = 0; + sr->u.scan_request->query_type = Z_SRW_query_type_cql; + sr->u.scan_request->scanClause.cql = 0; + break; + case Z_SRW_scan_response: + sr->u.scan_response = (Z_SRW_scanResponse *) + odr_malloc(o, sizeof(*sr->u.scan_response)); + sr->u.scan_response->terms = 0; + sr->u.scan_response->num_terms = 0; + sr->u.scan_response->diagnostics = 0; + sr->u.scan_response->num_diagnostics = 0; + break; + case Z_SRW_update_request: + sr->u.update_request = (Z_SRW_updateRequest *) + odr_malloc(o, sizeof(*sr->u.update_request)); + sr->u.update_request->database = 0; + sr->u.update_request->stylesheet = 0; + sr->u.update_request->record.recordSchema = 0; + sr->u.update_request->record.recordPacking = Z_SRW_recordPacking_XML; + sr->u.update_request->recordId = 0; + sr->u.update_request->recordVersion = 0; + sr->u.update_request->recordOldVersion = 0; + sr->u.update_request->record.recordData_buf = 0; + sr->u.update_request->record.recordData_len = 0; + sr->u.update_request->extra_record = 0; + sr->u.update_request->extraRequestData = 0; + sr->u.request->database = 0; + break; + case Z_SRW_update_response: + sr->u.update_response = (Z_SRW_updateResponse *) + odr_malloc(o, sizeof(*sr->u.update_response)); + sr->u.update_response->operationStatus = 0; + sr->u.update_response->recordId = 0; + sr->u.update_response->recordVersion = 0; + sr->u.update_response->recordChecksum = 0; + sr->u.update_response->record.recordData_buf = 0; + sr->u.update_response->record.recordData_len = 0; + sr->u.update_response->record.recordSchema = 0; + sr->u.update_response->record.recordPacking = + Z_SRW_recordPacking_XML; + sr->u.update_response->extra_record = 0; + sr->u.update_response->extraResponseData = 0; + sr->u.update_response->diagnostics = 0; + sr->u.update_response->num_diagnostics = 0; + } + return sr; +} + +/* bib1:srw */ +static int srw_bib1_map[] = { + 1, 1, + 2, 2, + 3, 11, + 4, 35, + 5, 12, + 6, 38, + 7, 30, + 8, 32, + 9, 29, + 108, 10, /* Malformed query : Syntax error */ + 10, 10, + 11, 12, + 11, 23, + 12, 60, + 13, 61, + 13, 62, + 14, 63, + 14, 64, + 14, 65, + 15, 68, + 15, 69, + 16, 70, + 17, 70, + 18, 50, + 19, 55, + 20, 56, + 21, 52, + 22, 50, + 23, 3, + 24, 66, + 25, 66, + 26, 66, + 27, 51, + 28, 52, + 29, 52, + 30, 51, + 31, 57, + 32, 58, + 33, 59, + 100, 1, /* bad map */ + 101, 3, + 102, 3, + 103, 3, + 104, 3, + 105, 3, + 106, 66, + 107, 11, + 108, 13, + 108, 14, + 108, 25, + 108, 26, + 108, 27, + 108, 45, + + 109, 2, + 110, 37, + 111, 1, + 112, 58, + 113, 10, + 114, 16, + 115, 16, + 116, 16, + 117, 19, + 117, 20, + 118, 22, + 119, 32, + 119, 31, + 120, 28, + 121, 15, + 122, 32, + 123, 22, + 123, 17, + 123, 18, + 124, 24, + 125, 36, + 126, 36, + 127, 36, + 128, 51, + 129, 39, + 130, 43, + 131, 40, + 132, 42, + 201, 44, + 201, 33, + 201, 34, + 202, 41, + 203, 43, + 205, 1, /* bad map */ + 206, 1, /* bad map */ + 207, 89, + 208, 1, /* bad map */ + 209, 80, + 210, 80, + 210, 81, + 211, 84, + 212, 85, + 213, 92, + 214, 90, + 215, 91, + 216, 92, + 217, 63, + 218, 1, /* bad map */ + 219, 1, /* bad map */ + 220, 1, /* bad map */ + 221, 1, /* bad map */ + 222, 3, + 223, 1, /* bad map */ + 224, 1, /* bad map */ + 225, 1, /* bad map */ + 226, 1, /* bad map */ + 227, 66, + 228, 1, /* bad map */ + 229, 36, + 230, 83, + 231, 89, + 232, 1, + 233, 1, /* bad map */ + 234, 1, /* bad map */ + 235, 2, + 236, 3, + 237, 82, + 238, 67, + 239, 66, + 240, 1, /* bad map */ + 241, 1, /* bad map */ + 242, 70, + 243, 1, /* bad map */ + 244, 66, + 245, 10, + 246, 10, + 247, 10, + 1001, 1, /* bad map */ + 1002, 1, /* bad map */ + 1003, 1, /* bad map */ + 1004, 1, /* bad map */ + 1005, 1, /* bad map */ + 1006, 1, /* bad map */ + 1007, 100, + 1008, 1, + 1009, 1, + 1010, 3, + 1011, 3, + 1012, 3, + 1013, 3, + 1014, 3, + 1015, 3, + 1015, 3, + 1016, 3, + 1017, 3, + 1018, 2, + 1019, 2, + 1020, 2, + 1021, 3, + 1022, 3, + 1023, 3, + 1024, 16, + 1025, 3, + 1026, 64, + 1027, 1, + 1028, 65, + 1029, 1, + 1040, 1, + /* 1041-1065 */ + 1066, 66, + 1066, 67, + 0 +}; + +int yaz_diag_bib1_to_srw (int code) +{ + const int *p = srw_bib1_map; + while (*p) + { + if (code == p[0]) + return p[1]; + p += 2; + } + return 1; +} + +int yaz_diag_srw_to_bib1(int code) +{ + const int *p = srw_bib1_map; + while (*p) + { + if (code == p[1]) + return p[0]; + p += 2; + } + return 1; +} + +static void add_val_int(ODR o, char **name, char **value, int *i, + char *a_name, int *val) +{ + if (val) + { + name[*i] = a_name; + value[*i] = odr_malloc(o, 30); + sprintf(value[*i], "%d", *val); + (*i)++; + } +} + +static void add_val_str(ODR o, char **name, char **value, int *i, + char *a_name, char *val) +{ + if (val) + { + name[*i] = a_name; + value[*i] = val; + (*i)++; + } +} + +static int yaz_get_sru_parms(const Z_SRW_PDU *srw_pdu, ODR encode, + char **name, char **value) +{ + int i = 0; + add_val_str(encode, name, value, &i, "version", srw_pdu->srw_version); + name[i] = "operation"; + switch(srw_pdu->which) + { + case Z_SRW_searchRetrieve_request: + value[i++] = "searchRetrieve"; + switch(srw_pdu->u.request->query_type) + { + case Z_SRW_query_type_cql: + add_val_str(encode, name, value, &i, "query", + srw_pdu->u.request->query.cql); + break; + case Z_SRW_query_type_pqf: + add_val_str(encode, name, value, &i, "x-pquery", + srw_pdu->u.request->query.pqf); + break; + case Z_SRW_query_type_xcql: + add_val_str(encode, name, value, &i, "x-cql", + srw_pdu->u.request->query.xcql); + break; + } + switch(srw_pdu->u.request->sort_type) + { + case Z_SRW_sort_type_none: + break; + case Z_SRW_sort_type_sort: + add_val_str(encode, name, value, &i, "sortKeys", + srw_pdu->u.request->sort.sortKeys); + break; + } + add_val_int(encode, name, value, &i, "startRecord", + srw_pdu->u.request->startRecord); + add_val_int(encode, name, value, &i, "maximumRecords", + srw_pdu->u.request->maximumRecords); + add_val_str(encode, name, value, &i, "recordSchema", + srw_pdu->u.request->recordSchema); + add_val_str(encode, name, value, &i, "recordPacking", + srw_pdu->u.request->recordPacking); + add_val_str(encode, name, value, &i, "recordXPath", + srw_pdu->u.request->recordXPath); + add_val_str(encode, name, value, &i, "stylesheet", + srw_pdu->u.request->stylesheet); + add_val_int(encode, name, value, &i, "resultSetTTL", + srw_pdu->u.request->resultSetTTL); + break; + case Z_SRW_explain_request: + value[i++] = "explain"; + add_val_str(encode, name, value, &i, "stylesheet", + srw_pdu->u.explain_request->stylesheet); + break; + case Z_SRW_scan_request: + value[i++] = "scan"; + + switch(srw_pdu->u.scan_request->query_type) + { + case Z_SRW_query_type_cql: + add_val_str(encode, name, value, &i, "scanClause", + srw_pdu->u.scan_request->scanClause.cql); + break; + case Z_SRW_query_type_pqf: + add_val_str(encode, name, value, &i, "x-pScanClause", + srw_pdu->u.scan_request->scanClause.pqf); + break; + case Z_SRW_query_type_xcql: + add_val_str(encode, name, value, &i, "x-cqlScanClause", + srw_pdu->u.scan_request->scanClause.xcql); + break; + } + add_val_int(encode, name, value, &i, "responsePosition", + srw_pdu->u.scan_request->responsePosition); + add_val_int(encode, name, value, &i, "maximumTerms", + srw_pdu->u.scan_request->maximumTerms); + add_val_str(encode, name, value, &i, "stylesheet", + srw_pdu->u.scan_request->stylesheet); + break; + case Z_SRW_update_request: + value[i++] = "update"; + break; + default: + return -1; + } + name[i++] = 0; + return 0; +} + +int yaz_sru_get_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR encode, const char *charset) +{ + char *name[30], *value[30]; /* definite upper limit for SRU params */ + char *uri_args; + char *path; + + if (yaz_get_sru_parms(srw_pdu, encode, name, value)) + return -1; + yaz_array_to_uri_ex(&uri_args, encode, name, value, srw_pdu->extra_args); + + hreq->method = "GET"; + + path = odr_malloc(encode, strlen(hreq->path) + strlen(uri_args) + 4 + +(srw_pdu->extra_args ? strlen(srw_pdu->extra_args) : 0) + ); + sprintf(path, "%s?%s", hreq->path, uri_args); + hreq->path = path; + + z_HTTP_header_add_content_type(encode, &hreq->headers, + "text/xml", charset); + return 0; +} + +int yaz_sru_post_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR encode, const char *charset) +{ + char *name[30], *value[30]; /* definite upper limit for SRU params */ + char *uri_args; + + if (yaz_get_sru_parms(srw_pdu, encode, name, value)) + return -1; + + yaz_array_to_uri_ex(&uri_args, encode, name, value, srw_pdu->extra_args); + + hreq->method = "POST"; + + hreq->content_buf = uri_args; + hreq->content_len = strlen(uri_args); + + z_HTTP_header_add_content_type(encode, &hreq->headers, + "application/x-www-form-urlencoded", + charset); + return 0; +} + +int yaz_sru_soap_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, + ODR odr, const char *charset) +{ + Z_SOAP_Handler handlers[2] = { +#if YAZ_HAVE_XML2 + {"http://www.loc.gov/zing/srw/", 0, (Z_SOAP_fun) yaz_srw_codec}, +#endif + {0, 0, 0} + }; + Z_SOAP *p = (Z_SOAP*) odr_malloc(odr, sizeof(*p)); + z_HTTP_header_add_content_type(odr, + &hreq->headers, + "text/xml", charset); + + z_HTTP_header_add(odr, &hreq->headers, + "SOAPAction", "\"\""); + p->which = Z_SOAP_generic; + p->u.generic = (Z_SOAP_Generic *) odr_malloc(odr, sizeof(*p->u.generic)); + p->u.generic->no = 0; + p->u.generic->ns = 0; + p->u.generic->p = srw_pdu; + p->ns = "http://schemas.xmlsoap.org/soap/envelope/"; + + return z_soap_codec_enc(odr, &p, + &hreq->content_buf, + &hreq->content_len, handlers, + charset); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/statserv.c b/dependencies/yaz-2.1.28/src/statserv.c new file mode 100644 index 0000000..e2a2cf1 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/statserv.c @@ -0,0 +1,1546 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * NT threaded server code by + * Chas Woodfield, Fretwell Downing Informatics. + * + * $Id: statserv.c,v 1.40 2006/07/07 13:02:21 marc Exp $ + */ + +/** + * \file statserv.c + * \brief Implements GFS logic + */ + +#include +#include +#include +#include +#ifdef WIN32 +#include +#include +#include +#include "service.h" +#endif +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_WAIT_H +#include +#endif +#if HAVE_UNISTD_H +#include +#endif +#if HAVE_PWD_H +#include +#endif + +#if YAZ_HAVE_XML2 +#include +#include +#include +#endif + +#if YAZ_POSIX_THREADS +#include +#elif YAZ_GNU_THREADS +#include +#endif + +#include +#include +#include + +#include +#include +#include +#ifdef USE_XTIMOSI +#include +#endif +#include +#include "eventl.h" +#include "session.h" +#include + +static IOCHAN pListener = NULL; + +static char gfs_root_dir[FILENAME_MAX+1]; +static struct gfs_server *gfs_server_list = 0; +static struct gfs_listen *gfs_listen_list = 0; +static NMEM gfs_nmem = 0; + +static char *me = "statserver"; /* log prefix */ +static char *programname="statserver"; /* full program name */ +#ifdef WIN32 +DWORD current_control_tls; +static int init_control_tls = 0; +#elif YAZ_POSIX_THREADS +static pthread_key_t current_control_tls; +static int init_control_tls = 0; +#else +static statserv_options_block *current_control_block = 0; +#endif + +/* + * default behavior. + */ +#define STAT_DEFAULT_LOG_LEVEL "none,fatal,warn,log,server,session,request" +/* the 'none' clears yaz' own default settings, including [log] */ + +int check_options(int argc, char **argv); +statserv_options_block control_block = { + 1, /* dynamic mode */ + 0, /* threaded mode */ + 0, /* one shot (single session) */ + 0, /* __UNUSED_loglevel */ + "", /* no PDUs */ + "", /* diagnostic output to stderr */ + "tcp:@:9999", /* default listener port */ + PROTO_Z3950, /* default application protocol */ + 15, /* idle timeout (minutes) */ + 1024*1024, /* maximum PDU size (approx.) to allow */ + "default-config", /* configuration name to pass to backend */ + "", /* set user id */ + 0, /* bend_start handler */ + 0, /* bend_stop handler */ + check_options, /* Default routine, for checking the run-time arguments */ + check_ip_tcpd, + "", + 0, /* default value for inet deamon */ + 0, /* handle (for service, etc) */ + 0, /* bend_init handle */ + 0, /* bend_close handle */ +#ifdef WIN32 + "Z39.50 Server", /* NT Service Name */ + "Server", /* NT application Name */ + "", /* NT Service Dependencies */ + "Z39.50 Server", /* NT Service Display Name */ +#endif /* WIN32 */ + 0, /* SOAP handlers */ + "", /* PID fname */ + 0, /* background daemon */ + "", /* SSL certificate filename */ + "" /* XML config filename */ +}; + +static int max_sessions = 0; + +static int logbits_set = 0; +static int log_session = 0; /* one-line logs for session */ +static int log_sessiondetail = 0; /* more detailed stuff */ +static int log_server = 0; + +/** get_logbits sets global loglevel bits */ +static void get_logbits(int force) +{ /* needs to be called after parsing cmd-line args that can set loglevels!*/ + if (force || !logbits_set) + { + logbits_set = 1; + log_session = yaz_log_module_level("session"); + log_sessiondetail = yaz_log_module_level("sessiondetail"); + log_server = yaz_log_module_level("server"); + } +} + + +static int add_listener(char *where, int listen_id); + +#if YAZ_HAVE_XML2 +static xmlDocPtr xml_config_doc = 0; +#endif + +#if YAZ_HAVE_XML2 +static xmlNodePtr xml_config_get_root() +{ + xmlNodePtr ptr = 0; + if (xml_config_doc) + { + ptr = xmlDocGetRootElement(xml_config_doc); + if (!ptr || ptr->type != XML_ELEMENT_NODE || + strcmp((const char *) ptr->name, "yazgfs")) + { + yaz_log(YLOG_WARN, "Bad/missing root element for config %s", + control_block.xml_config); + return 0; + + } + } + return ptr; +} +#endif + +#if YAZ_HAVE_XML2 +static char *nmem_dup_xml_content(NMEM n, xmlNodePtr ptr) +{ + unsigned char *cp; + xmlNodePtr p; + int len = 1; /* start with 1, because of trailing 0 */ + unsigned char *str; + int first = 1; /* whitespace lead flag .. */ + /* determine length */ + for (p = ptr; p; p = p->next) + { + if (p->type == XML_TEXT_NODE) + len += xmlStrlen(p->content); + } + /* now allocate for the string */ + str = nmem_malloc(n, len); + *str = '\0'; /* so we can use strcat */ + for (p = ptr; p; p = p->next) + { + if (p->type == XML_TEXT_NODE) + { + cp = p->content; + if (first) + { + while(*cp && isspace(*cp)) + cp++; + if (*cp) + first = 0; /* reset if we got non-whitespace out */ + } + strcat((char *)str, (const char *)cp); /* append */ + } + } + /* remove trailing whitespace */ + cp = strlen((const char *)str) + str; + while (cp != str && isspace(cp[-1])) + cp--; + *cp = '\0'; + /* return resulting string */ + return (char *) str; +} +#endif + +static struct gfs_server * gfs_server_new() +{ + struct gfs_server *n = nmem_malloc(gfs_nmem, sizeof(*n)); + memcpy(&n->cb, &control_block, sizeof(control_block)); + n->next = 0; + n->host = 0; + n->listen_ref = 0; + n->cql_transform = 0; + n->server_node_ptr = 0; + n->directory = 0; + n->docpath = 0; + n->stylesheet = 0; +#if YAZ_HAVE_XML2 + n->retrieval = yaz_retrieval_create(); +#endif + return n; +} + +static struct gfs_listen * gfs_listen_new(const char *id, + const char *address) +{ + struct gfs_listen *n = nmem_malloc(gfs_nmem, sizeof(*n)); + if (id) + n->id = nmem_strdup(gfs_nmem, id); + else + n->id = 0; + n->next = 0; + n->address = nmem_strdup(gfs_nmem, address); + return n; +} + +static void gfs_server_chdir(struct gfs_server *gfs) +{ + if (gfs_root_dir[0]) + { + if (chdir(gfs_root_dir)) + yaz_log(YLOG_WARN|YLOG_ERRNO, "chdir %s", gfs_root_dir); + } + if (gfs->directory) + { + if (chdir(gfs->directory)) + yaz_log(YLOG_WARN|YLOG_ERRNO, "chdir %s", + gfs->directory); + } +} + +int control_association(association *assoc, const char *host, int force_open) +{ + char vhost[128], *cp; + if (host) + { + strncpy(vhost, host, 127); + vhost[127] = '\0'; + cp = strchr(vhost, ':'); + if (cp) + *cp = '\0'; + host = vhost; + } + assoc->server = 0; + if (control_block.xml_config[0]) + { + struct gfs_server *gfs; + for (gfs = gfs_server_list; gfs; gfs = gfs->next) + { + int listen_match = 0; + int host_match = 0; + if ( !gfs->host || (host && gfs->host && !strcmp(host, gfs->host))) + host_match = 1; + if (!gfs->listen_ref || + gfs->listen_ref == assoc->client_chan->chan_id) + listen_match = 1; + if (listen_match && host_match) + { + if (force_open || + (assoc->last_control != &gfs->cb && assoc->backend)) + { + statserv_setcontrol(assoc->last_control); + if (assoc->backend && assoc->init) + { + gfs_server_chdir(gfs); + (assoc->last_control->bend_close)(assoc->backend); + } + assoc->backend = 0; + xfree(assoc->init); + assoc->init = 0; + } + assoc->server = gfs; + assoc->last_control = &gfs->cb; + statserv_setcontrol(&gfs->cb); + gfs_server_chdir(gfs); + yaz_log(YLOG_DEBUG, "server select: %s", gfs->cb.configname); + return 1; + } + } + statserv_setcontrol(0); + assoc->last_control = 0; + yaz_log(YLOG_DEBUG, "server select: no match"); + return 0; + } + else + { + statserv_setcontrol(&control_block); + assoc->last_control = &control_block; + yaz_log(YLOG_DEBUG, "server select: config=%s", control_block.configname); + return 1; + } +} + +static void xml_config_read() +{ + struct gfs_server **gfsp = &gfs_server_list; + struct gfs_listen **gfslp = &gfs_listen_list; +#if YAZ_HAVE_XML2 + xmlNodePtr ptr = xml_config_get_root(); + + if (!ptr) + return; + for (ptr = ptr->children; ptr; ptr = ptr->next) + { + struct _xmlAttr *attr; + if (ptr->type != XML_ELEMENT_NODE) + continue; + attr = ptr->properties; + if (!strcmp((const char *) ptr->name, "listen")) + { + /* + tcp:@:9999 + */ + const char *id = 0; + const char *address = + nmem_dup_xml_content(gfs_nmem, ptr->children); + for ( ; attr; attr = attr->next) + if (!xmlStrcmp(attr->name, BAD_CAST "id") + && attr->children && attr->children->type == XML_TEXT_NODE) + id = nmem_dup_xml_content(gfs_nmem, attr->children); + if (address) + { + *gfslp = gfs_listen_new(id, address); + gfslp = &(*gfslp)->next; + *gfslp = 0; /* make listener list consistent for search */ + } + } + else if (!strcmp((const char *) ptr->name, "server")) + { + xmlNodePtr ptr_server = ptr; + xmlNodePtr ptr; + const char *listenref = 0; + const char *id = 0; + + for ( ; attr; attr = attr->next) + if (!xmlStrcmp(attr->name, BAD_CAST "listenref") + && attr->children && attr->children->type == XML_TEXT_NODE) + listenref = nmem_dup_xml_content(gfs_nmem, attr->children); + else if (!xmlStrcmp(attr->name, BAD_CAST "id") + && attr->children + && attr->children->type == XML_TEXT_NODE) + id = nmem_dup_xml_content(gfs_nmem, attr->children); + else + yaz_log(YLOG_WARN, "Unknown attribute '%s' for server", + attr->name); + *gfsp = gfs_server_new(); + (*gfsp)->server_node_ptr = ptr_server; + if (listenref) + { + int id_no; + struct gfs_listen *gl = gfs_listen_list; + for (id_no = 1; gl; gl = gl->next, id_no++) + if (gl->id && !strcmp(gl->id, listenref)) + { + (*gfsp)->listen_ref = id_no; + break; + } + if (!gl) + yaz_log(YLOG_WARN, "Non-existent listenref '%s' in server " + "config element", listenref); + } + for (ptr = ptr_server->children; ptr; ptr = ptr->next) + { + if (ptr->type != XML_ELEMENT_NODE) + continue; + if (!strcmp((const char *) ptr->name, "host")) + { + (*gfsp)->host = nmem_dup_xml_content(gfs_nmem, + ptr->children); + } + else if (!strcmp((const char *) ptr->name, "config")) + { + strcpy((*gfsp)->cb.configname, + nmem_dup_xml_content(gfs_nmem, ptr->children)); + } + else if (!strcmp((const char *) ptr->name, "cql2rpn")) + { + (*gfsp)->cql_transform = cql_transform_open_fname( + nmem_dup_xml_content(gfs_nmem, ptr->children) + ); + } + else if (!strcmp((const char *) ptr->name, "directory")) + { + (*gfsp)->directory = + nmem_dup_xml_content(gfs_nmem, ptr->children); + } + else if (!strcmp((const char *) ptr->name, "docpath")) + { + (*gfsp)->docpath = + nmem_dup_xml_content(gfs_nmem, ptr->children); + } + else if (!strcmp((const char *) ptr->name, "stylesheet")) + { + char *s = nmem_dup_xml_content(gfs_nmem, ptr->children); + (*gfsp)->stylesheet = + nmem_malloc(gfs_nmem, strlen(s) + 2); + sprintf((*gfsp)->stylesheet, "/%s", s); + } + else if (!strcmp((const char *) ptr->name, "explain")) + { + ; /* being processed separately */ + } + else if (!strcmp((const char *) ptr->name, "retrievalinfo")) + { + if (yaz_retrieval_configure((*gfsp)->retrieval, ptr)) + { + yaz_log(YLOG_FATAL, "%s in config %s", + yaz_retrieval_get_error((*gfsp)->retrieval), + control_block.xml_config); + exit(1); + } + } + else + { + yaz_log(YLOG_FATAL, "Unknown element '%s' in config %s", + ptr->name, control_block.xml_config); + exit(1); + } + } + gfsp = &(*gfsp)->next; + } + } +#endif + *gfsp = 0; +} + +static void xml_config_open() +{ + if (!getcwd(gfs_root_dir, FILENAME_MAX)) + { + yaz_log(YLOG_WARN|YLOG_ERRNO, "getcwd failed"); + gfs_root_dir[0] = '\0'; + } +#ifdef WIN32 + init_control_tls = 1; + current_control_tls = TlsAlloc(); +#elif YAZ_POSIX_THREADS + init_control_tls = 1; + pthread_key_create(¤t_control_tls, 0); +#endif + + gfs_nmem = nmem_create(); +#if YAZ_HAVE_XML2 + if (control_block.xml_config[0] == '\0') + return; + + if (!xml_config_doc) + { + xml_config_doc = xmlParseFile(control_block.xml_config); + if (!xml_config_doc) + { + yaz_log(YLOG_FATAL, "Could not parse %s", control_block.xml_config); + exit(1); + } + else + { + int noSubstitutions = xmlXIncludeProcess(xml_config_doc); + if (noSubstitutions == -1) + { + yaz_log(YLOG_WARN, "XInclude processing failed for config %s", + control_block.xml_config); + exit(1); + } + } + } + xml_config_read(); +#endif +} + +static void xml_config_close() +{ +#if YAZ_HAVE_XML2 + if (xml_config_doc) + { + xmlFreeDoc(xml_config_doc); + xml_config_doc = 0; + } +#endif + gfs_server_list = 0; + nmem_destroy(gfs_nmem); +#ifdef WIN32 + if (init_control_tls) + TlsFree(current_control_tls); +#elif YAZ_POSIX_THREADS + if (init_control_tls) + pthread_key_delete(current_control_tls); +#endif +} + +static void xml_config_add_listeners() +{ + struct gfs_listen *gfs = gfs_listen_list; + int id_no; + + for (id_no = 1; gfs; gfs = gfs->next, id_no++) + { + if (gfs->address) + add_listener(gfs->address, id_no); + } +} + +static void xml_config_bend_start() +{ + if (control_block.xml_config[0]) + { + struct gfs_server *gfs = gfs_server_list; + for (; gfs; gfs = gfs->next) + { + yaz_log(YLOG_DEBUG, "xml_config_bend_start config=%s", + gfs->cb.configname); + statserv_setcontrol(&gfs->cb); + if (control_block.bend_start) + { + gfs_server_chdir(gfs); + (control_block.bend_start)(&gfs->cb); + } + } + } + else + { + yaz_log(YLOG_DEBUG, "xml_config_bend_start default config"); + statserv_setcontrol(&control_block); + if (control_block.bend_start) + (*control_block.bend_start)(&control_block); + } +} + +static void xml_config_bend_stop() +{ + if (control_block.xml_config[0]) + { + struct gfs_server *gfs = gfs_server_list; + for (; gfs; gfs = gfs->next) + { + yaz_log(YLOG_DEBUG, "xml_config_bend_stop config=%s", + gfs->cb.configname); + statserv_setcontrol(&gfs->cb); + if (control_block.bend_stop) + (control_block.bend_stop)(&gfs->cb); + } + } + else + { + yaz_log(YLOG_DEBUG, "xml_config_bend_stop default config"); + statserv_setcontrol(&control_block); + if (control_block.bend_stop) + (*control_block.bend_stop)(&control_block); + } +} + +/* + * handle incoming connect requests. + * The dynamic mode is a bit tricky mostly because we want to avoid + * doing all of the listening and accepting in the parent - it's + * safer that way. + */ +#ifdef WIN32 + +typedef struct _ThreadList ThreadList; + +struct _ThreadList +{ + HANDLE hThread; + IOCHAN pIOChannel; + ThreadList *pNext; +}; + +static ThreadList *pFirstThread; +static CRITICAL_SECTION Thread_CritSect; +static BOOL bInitialized = FALSE; + +static void ThreadList_Initialize() +{ + /* Initialize the critical Sections */ + InitializeCriticalSection(&Thread_CritSect); + + /* Set the first thraed */ + pFirstThread = NULL; + + /* we have been initialized */ + bInitialized = TRUE; +} + +static void statserv_add(HANDLE hThread, IOCHAN pIOChannel) +{ + /* Only one thread can go through this section at a time */ + EnterCriticalSection(&Thread_CritSect); + + { + /* Lets create our new object */ + ThreadList *pNewThread = (ThreadList *)malloc(sizeof(ThreadList)); + pNewThread->hThread = hThread; + pNewThread->pIOChannel = pIOChannel; + pNewThread->pNext = pFirstThread; + pFirstThread = pNewThread; + + /* Lets let somebody else create a new object now */ + LeaveCriticalSection(&Thread_CritSect); + } +} + +void statserv_remove(IOCHAN pIOChannel) +{ + /* Only one thread can go through this section at a time */ + EnterCriticalSection(&Thread_CritSect); + + { + ThreadList *pCurrentThread = pFirstThread; + ThreadList *pNextThread; + ThreadList *pPrevThread =NULL; + + /* Step through all the threads */ + for (; pCurrentThread != NULL; pCurrentThread = pNextThread) + { + /* We only need to compare on the IO Channel */ + if (pCurrentThread->pIOChannel == pIOChannel) + { + /* We have found the thread we want to delete */ + /* First of all reset the next pointers */ + if (pPrevThread == NULL) + pFirstThread = pCurrentThread->pNext; + else + pPrevThread->pNext = pCurrentThread->pNext; + + /* All we need todo now is delete the memory */ + free(pCurrentThread); + + /* No need to look at any more threads */ + pNextThread = NULL; + } + else + { + /* We need to look at another thread */ + pNextThread = pCurrentThread->pNext; + pPrevThread = pCurrentThread; + } + } + + /* Lets let somebody else remove an object now */ + LeaveCriticalSection(&Thread_CritSect); + } +} + +/* WIN32 statserv_closedown */ +void statserv_closedown() +{ + /* Shouldn't do anything if we are not initialized */ + if (bInitialized) + { + int iHandles = 0; + HANDLE *pThreadHandles = NULL; + + /* We need to stop threads adding and removing while we */ + /* start the closedown process */ + EnterCriticalSection(&Thread_CritSect); + + { + /* We have exclusive access to the thread stuff now */ + /* Y didn't i use a semaphore - Oh well never mind */ + ThreadList *pCurrentThread = pFirstThread; + + /* Before we do anything else, we need to shutdown the listener */ + if (pListener != NULL) + iochan_destroy(pListener); + + for (; pCurrentThread != NULL; pCurrentThread = pCurrentThread->pNext) + { + /* Just destroy the IOCHAN, that should do the trick */ + iochan_destroy(pCurrentThread->pIOChannel); + closesocket(pCurrentThread->pIOChannel->fd); + + /* Keep a running count of our handles */ + iHandles++; + } + + if (iHandles > 0) + { + HANDLE *pCurrentHandle ; + + /* Allocate the thread handle array */ + pThreadHandles = (HANDLE *)malloc(sizeof(HANDLE) * iHandles); + pCurrentHandle = pThreadHandles; + + for (pCurrentThread = pFirstThread; + pCurrentThread != NULL; + pCurrentThread = pCurrentThread->pNext, pCurrentHandle++) + { + /* Just the handle */ + *pCurrentHandle = pCurrentThread->hThread; + } + } + + /* We can now leave the critical section */ + LeaveCriticalSection(&Thread_CritSect); + } + + /* Now we can really do something */ + if (iHandles > 0) + { + yaz_log(log_server, "waiting for %d to die", iHandles); + /* This will now wait, until all the threads close */ + WaitForMultipleObjects(iHandles, pThreadHandles, TRUE, INFINITE); + + /* Free the memory we allocated for the handle array */ + free(pThreadHandles); + } + + xml_config_bend_stop(); + /* No longer require the critical section, since all threads are dead */ + DeleteCriticalSection(&Thread_CritSect); + } + xml_config_close(); +} + +void __cdecl event_loop_thread (IOCHAN iochan) +{ + event_loop (&iochan); +} + +/* WIN32 listener */ +static void listener(IOCHAN h, int event) +{ + COMSTACK line = (COMSTACK) iochan_getdata(h); + IOCHAN parent_chan = line->user; + association *newas; + int res; + HANDLE newHandle; + + if (event == EVENT_INPUT) + { + if ((res = cs_listen(line, 0, 0)) < 0) + { + yaz_log(YLOG_FATAL, "cs_listen failed"); + return; + } + else if (res == 1) + return; + yaz_log(YLOG_DEBUG, "listen ok"); + iochan_setevent(h, EVENT_OUTPUT); + iochan_setflags(h, EVENT_OUTPUT | EVENT_EXCEPT); /* set up for acpt */ + } + else if (event == EVENT_OUTPUT) + { + COMSTACK new_line = cs_accept(line); + IOCHAN new_chan; + char *a = NULL; + + if (!new_line) + { + yaz_log(YLOG_FATAL, "Accept failed."); + iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); + return; + } + yaz_log(YLOG_DEBUG, "Accept ok"); + + if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session, + EVENT_INPUT, parent_chan->chan_id))) + { + yaz_log(YLOG_FATAL, "Failed to create iochan"); + iochan_destroy(h); + return; + } + + yaz_log(YLOG_DEBUG, "Creating association"); + if (!(newas = create_association(new_chan, new_line, + control_block.apdufile))) + { + yaz_log(YLOG_FATAL, "Failed to create new assoc."); + iochan_destroy(h); + return; + } + newas->cs_get_mask = EVENT_INPUT; + newas->cs_put_mask = 0; + newas->cs_accept_mask = 0; + + yaz_log(YLOG_DEBUG, "Setting timeout %d", control_block.idle_timeout); + iochan_setdata(new_chan, newas); + iochan_settimeout(new_chan, 60); + + /* Now what we need todo is create a new thread with this iochan as + the parameter */ + newHandle = (HANDLE) _beginthread(event_loop_thread, 0, new_chan); + if (newHandle == (HANDLE) -1) + { + + yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to create new thread."); + iochan_destroy(h); + return; + } + /* We successfully created the thread, so add it to the list */ + statserv_add(newHandle, new_chan); + + yaz_log(YLOG_DEBUG, "Created new thread, id = %ld iochan %p",(long) newHandle, new_chan); + iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */ + } + else + { + yaz_log(YLOG_FATAL, "Bad event on listener."); + iochan_destroy(h); + return; + } +} + +int statserv_must_terminate(void) +{ + return 0; +} + +#else /* ! WIN32 */ + +static int term_flag = 0; +/* To save having an #ifdef in event_loop we need to + define this empty function +*/ +int statserv_must_terminate(void) +{ + return term_flag; +} + +void statserv_remove(IOCHAN pIOChannel) +{ +} + +void statserv_closedown() +{ + IOCHAN p; + + xml_config_bend_stop(); + for (p = pListener; p; p = p->next) + { + iochan_destroy(p); + } + xml_config_close(); +} + +void sigterm(int sig) +{ + term_flag = 1; +} + +static void *new_session (void *vp); +static int no_sessions = 0; + +/* UNIX listener */ +static void listener(IOCHAN h, int event) +{ + COMSTACK line = (COMSTACK) iochan_getdata(h); + int res; + + if (event == EVENT_INPUT) + { + COMSTACK new_line; + if ((res = cs_listen_check(line, 0, 0, control_block.check_ip, + control_block.daemon_name)) < 0) + { + yaz_log(YLOG_WARN|YLOG_ERRNO, "cs_listen failed"); + return; + } + else if (res == 1) + { + yaz_log(YLOG_WARN, "cs_listen incomplete"); + return; + } + new_line = cs_accept(line); + if (!new_line) + { + yaz_log(YLOG_FATAL, "Accept failed."); + iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */ + return; + } + + yaz_log(log_sessiondetail, "Connect from %s", cs_addrstr(new_line)); + + no_sessions++; + if (control_block.dynamic) + { + if ((res = fork()) < 0) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "fork"); + iochan_destroy(h); + return; + } + else if (res == 0) /* child */ + { + char nbuf[100]; + IOCHAN pp; + + for (pp = pListener; pp; pp = iochan_getnext(pp)) + { + COMSTACK l = (COMSTACK)iochan_getdata(pp); + cs_close(l); + iochan_destroy(pp); + } + sprintf(nbuf, "%s(%d)", me, no_sessions); + yaz_log_init_prefix(nbuf); + /* ensure that bend_stop is not called when each child exits - + only for the main process .. */ + control_block.bend_stop = 0; + } + else /* parent */ + { + cs_close(new_line); + return; + } + } + + if (control_block.threads) + { +#if YAZ_POSIX_THREADS + pthread_t child_thread; + pthread_create (&child_thread, 0, new_session, new_line); + pthread_detach (child_thread); +#elif YAZ_GNU_THREADS + pth_attr_t attr; + pth_t child_thread; + + attr = pth_attr_new (); + pth_attr_set (attr, PTH_ATTR_JOINABLE, FALSE); + pth_attr_set (attr, PTH_ATTR_STACK_SIZE, 32*1024); + pth_attr_set (attr, PTH_ATTR_NAME, "session"); + yaz_log (YLOG_DEBUG, "pth_spawn begin"); + child_thread = pth_spawn (attr, new_session, new_line); + yaz_log (YLOG_DEBUG, "pth_spawn finish"); + pth_attr_destroy (attr); +#else + new_session(new_line); +#endif + } + else + new_session(new_line); + } + else if (event == EVENT_TIMEOUT) + { + yaz_log(log_server, "Shutting down listener."); + iochan_destroy(h); + } + else + { + yaz_log(YLOG_FATAL, "Bad event on listener."); + iochan_destroy(h); + } +} + +static void *new_session (void *vp) +{ + char *a; + association *newas; + IOCHAN new_chan; + COMSTACK new_line = (COMSTACK) vp; + IOCHAN parent_chan = new_line->user; + + unsigned cs_get_mask, cs_accept_mask, mask = + ((new_line->io_pending & CS_WANT_WRITE) ? EVENT_OUTPUT : 0) | + ((new_line->io_pending & CS_WANT_READ) ? EVENT_INPUT : 0); + + if (mask) + { + cs_accept_mask = mask; /* accept didn't complete */ + cs_get_mask = 0; + } + else + { + cs_accept_mask = 0; /* accept completed. */ + cs_get_mask = mask = EVENT_INPUT; + } + + if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session, mask, + parent_chan->chan_id))) + { + yaz_log(YLOG_FATAL, "Failed to create iochan"); + return 0; + } + if (!(newas = create_association(new_chan, new_line, + control_block.apdufile))) + { + yaz_log(YLOG_FATAL, "Failed to create new assoc."); + return 0; + } + newas->cs_accept_mask = cs_accept_mask; + newas->cs_get_mask = cs_get_mask; + + iochan_setdata(new_chan, newas); + iochan_settimeout(new_chan, 60); +#if 1 + a = cs_addrstr(new_line); +#else + a = 0; +#endif + yaz_log(log_session, "Session - OK %d %s %ld", + no_sessions, a ? a : "[Unknown]", (long) getpid()); + if (max_sessions && no_sessions >= max_sessions) + control_block.one_shot = 1; + if (control_block.threads) + { + event_loop(&new_chan); + } + else + { + new_chan->next = pListener; + pListener = new_chan; + } + return 0; +} + +/* UNIX */ +#endif + +static void inetd_connection(int what) +{ + COMSTACK line; + IOCHAN chan; + association *assoc; + char *addr; + + if ((line = cs_createbysocket(0, tcpip_type, 0, what))) + { + if ((chan = iochan_create(cs_fileno(line), ir_session, EVENT_INPUT, + 0))) + { + if ((assoc = create_association(chan, line, + control_block.apdufile))) + { + iochan_setdata(chan, assoc); + iochan_settimeout(chan, 60); + addr = cs_addrstr(line); + yaz_log(log_sessiondetail, "Inetd association from %s", + addr ? addr : "[UNKNOWN]"); + assoc->cs_get_mask = EVENT_INPUT; + } + else + { + yaz_log(YLOG_FATAL, "Failed to create association structure"); + } + chan->next = pListener; + pListener = chan; + } + else + { + yaz_log(YLOG_FATAL, "Failed to create iochan"); + } + } + else + { + yaz_log(YLOG_ERRNO|YLOG_FATAL, "Failed to create comstack on socket 0"); + } +} + +/* + * Set up a listening endpoint, and give it to the event-handler. + */ +static int add_listener(char *where, int listen_id) +{ + COMSTACK l; + void *ap; + IOCHAN lst = NULL; + const char *mode; + + if (control_block.dynamic) + mode = "dynamic"; + else if (control_block.threads) + mode = "threaded"; + else + mode = "static"; + + yaz_log(log_server, "Adding %s listener on %s id=%d", mode, where, + listen_id); + + l = cs_create_host(where, 2, &ap); + if (!l) + { + yaz_log(YLOG_FATAL, "Failed to listen on %s", where); + return -1; + } + if (*control_block.cert_fname) + cs_set_ssl_certificate_file(l, control_block.cert_fname); + + if (cs_bind(l, ap, CS_SERVER) < 0) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to bind to %s", where); + cs_close (l); + return -1; + } + if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT | + EVENT_EXCEPT, listen_id))) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to create IOCHAN-type"); + cs_close (l); + return -1; + } + iochan_setdata(lst, l); /* user-defined data for listener is COMSTACK */ + l->user = lst; /* user-defined data for COMSTACK is listener chan */ + + /* Add listener to chain */ + lst->next = pListener; + pListener = lst; + return 0; /* OK */ +} + +#ifndef WIN32 +/* UNIX only (for windows we don't need to catch the signals) */ +static void catchchld(int num) +{ + while (waitpid(-1, 0, WNOHANG) > 0) + ; + signal(SIGCHLD, catchchld); +} +#endif + +statserv_options_block *statserv_getcontrol(void) +{ +#ifdef WIN32 + if (init_control_tls) + return (statserv_options_block *) TlsGetValue(current_control_tls); + else + return &control_block; +#elif YAZ_POSIX_THREADS + if (init_control_tls) + return pthread_getspecific(current_control_tls); + else + return &control_block; +#else + if (current_control_block) + return current_control_block; + return &control_block; +#endif +} + +void statserv_setcontrol(statserv_options_block *block) +{ + chdir(gfs_root_dir); +#ifdef WIN32 + if (init_control_tls) + TlsSetValue(current_control_tls, block); +#elif YAZ_POSIX_THREADS + if (init_control_tls) + pthread_setspecific(current_control_tls, block); +#else + current_control_block = block; +#endif +} + +static void statserv_reset(void) +{ +} + +int statserv_start(int argc, char **argv) +{ + char sep; +#ifdef WIN32 + /* We need to initialize the thread list */ + ThreadList_Initialize(); +/* WIN32 */ +#endif + + +#ifdef WIN32 + sep = '\\'; +#else + sep = '/'; +#endif + if ((me = strrchr (argv[0], sep))) + me++; /* get the basename */ + else + me = argv[0]; + programname = argv[0]; + + if (control_block.options_func(argc, argv)) + return 1; + + xml_config_open(); + + xml_config_bend_start(); + +#ifdef WIN32 + xml_config_add_listeners(); + + yaz_log (log_server, "Starting server %s", me); + if (!pListener && *control_block.default_listen) + add_listener(control_block.default_listen, 0); +#else +/* UNIX */ + if (control_block.inetd) + inetd_connection(control_block.default_proto); + else + { + static int hand[2]; + if (control_block.background) + { + /* create pipe so that parent waits until child has created + PID (or failed) */ + if (pipe(hand) < 0) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "pipe"); + return 1; + } + switch (fork()) + { + case 0: + break; + case -1: + return 1; + default: + close(hand[1]); + while(1) + { + char dummy[1]; + int res = read(hand[0], dummy, 1); + if (res < 0 && yaz_errno() != EINTR) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "read fork handshake"); + break; + } + else if (res >= 0) + break; + } + close(hand[0]); + _exit(0); + } + /* child */ + close(hand[0]); + if (setsid() < 0) + return 1; + + close(0); + close(1); + close(2); + open("/dev/null", O_RDWR); + dup(0); dup(0); + } + xml_config_add_listeners(); + + if (!pListener && *control_block.default_listen) + add_listener(control_block.default_listen, 0); + + if (!pListener) + return 1; + + if (*control_block.pid_fname) + { + FILE *f = fopen(control_block.pid_fname, "w"); + if (!f) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "Couldn't create %s", + control_block.pid_fname); + exit(0); + } + fprintf(f, "%ld", (long) getpid()); + fclose(f); + } + + if (control_block.background) + close(hand[1]); + + + yaz_log (log_server, "Starting server %s pid=%ld", programname, + (long) getpid()); +#if 0 + sigset_t sigs_to_block; + + sigemptyset(&sigs_to_block); + sigaddset (&sigs_to_block, SIGTERM); + pthread_sigmask (SIG_BLOCK, &sigs_to_block, 0); + /* missing... */ +#endif + if (control_block.dynamic) + signal(SIGCHLD, catchchld); + } + signal (SIGPIPE, SIG_IGN); + signal (SIGTERM, sigterm); + if (*control_block.setuid) + { + struct passwd *pw; + + if (!(pw = getpwnam(control_block.setuid))) + { + yaz_log(YLOG_FATAL, "%s: Unknown user", control_block.setuid); + return(1); + } + if (setuid(pw->pw_uid) < 0) + { + yaz_log(YLOG_FATAL|YLOG_ERRNO, "setuid"); + exit(1); + } + } +/* UNIX */ +#endif + if (pListener == NULL) + return 1; + yaz_log(YLOG_DEBUG, "Entering event loop."); + return event_loop(&pListener); +} + +static void option_copy(char *dst, const char *src) +{ + strncpy(dst, src ? src : "", 127); + dst[127] = '\0'; +} + +int check_options(int argc, char **argv) +{ + int ret = 0, r; + char *arg; + + if (getenv("YAZ_LOG") == 0) { + /* + * Set default log level. We want to avoid doing this if the + * user has already explicitly specified a preferred default + * log-level, hence the inelegant peek at the YAZ_LOG + * environment variable that will subsequently be interpreted + * by the YAZ logging module itself. + */ + yaz_log_init_level(yaz_log_mask_str(STAT_DEFAULT_LOG_LEVEL)); + } + + get_logbits(1); + while ((ret = options("1a:iszSTl:v:u:c:w:t:k:d:A:p:DC:f:m:", + argv, argc, &arg)) != -2) + { + switch (ret) + { + case 0: + if (add_listener(arg, 0)) + return 1; /* failed to create listener */ + break; + case '1': + control_block.one_shot = 1; + control_block.dynamic = 0; + break; + case 'z': + control_block.default_proto = PROTO_Z3950; + break; + case 's': + fprintf (stderr, "%s: SR protocol no longer supported\n", me); + exit (1); + break; + case 'S': + control_block.dynamic = 0; + break; + case 'T': +#if YAZ_POSIX_THREADS + control_block.dynamic = 0; + control_block.threads = 1; +#elif YAZ_GNU_THREADS + control_block.dynamic = 0; + control_block.threads = 1; +#else + fprintf(stderr, "%s: Threaded mode not available.\n", me); + return 1; +#endif + break; + case 'l': + option_copy(control_block.logfile, arg); + yaz_log_init_file(control_block.logfile); + break; + case 'm': + if (!arg) { + fprintf(stderr, "%s: Specify time format for log file.\n", me); + return(1); + } + yaz_log_time_format(arg); + break; + case 'v': { + int default_level = yaz_log_mask_str(STAT_DEFAULT_LOG_LEVEL); + yaz_log_init_level(yaz_log_mask_str_x(arg, default_level)); + get_logbits(1); + break; + } + case 'a': + option_copy(control_block.apdufile, arg); + break; + case 'u': + option_copy(control_block.setuid, arg); + break; + case 'c': + option_copy(control_block.configname, arg); + break; + case 'C': + option_copy(control_block.cert_fname, arg); + break; + case 'd': + option_copy(control_block.daemon_name, arg); + break; + case 't': + if (!arg || !(r = atoi(arg))) + { + fprintf(stderr, "%s: Specify positive timeout for -t.\n", me); + return(1); + } + control_block.idle_timeout = r; + break; + case 'k': + if (!arg || !(r = atoi(arg))) + { + fprintf(stderr, "%s: Specify positive size for -k.\n", me); + return(1); + } + control_block.maxrecordsize = r * 1024; + break; + case 'i': + control_block.inetd = 1; + break; + case 'w': + if (chdir(arg)) + { + perror(arg); + return 1; + } + break; + case 'A': + max_sessions = atoi(arg); + break; + case 'p': + option_copy(control_block.pid_fname, arg); + break; + case 'f': +#if YAZ_HAVE_XML2 + option_copy(control_block.xml_config, arg); +#else + fprintf(stderr, "%s: Option -f unsupported since YAZ is compiled without Libxml2 support\n", me); + exit(1); +#endif + break; + case 'D': + control_block.background = 1; + break; + default: + fprintf(stderr, "Usage: %s [ -a -v " + " -l -u -c -t " + " -k -d -p -C certfile" + " -ziDST1 -m -w ... ]\n", me); + return 1; + } + } + return 0; +} + +#ifdef WIN32 +typedef struct _Args +{ + char **argv; + int argc; +} Args; + +static Args ArgDetails; + +/* name of the executable */ +#define SZAPPNAME "server" + +/* list of service dependencies - "dep1\0dep2\0\0" */ +#define SZDEPENDENCIES "" + +int statserv_main(int argc, char **argv, + bend_initresult *(*bend_init)(bend_initrequest *r), + void (*bend_close)(void *handle)) +{ + struct statserv_options_block *cb = &control_block; + cb->bend_init = bend_init; + cb->bend_close = bend_close; + + /* Lets setup the Arg structure */ + ArgDetails.argc = argc; + ArgDetails.argv = argv; + + /* Now setup the service with the service controller */ + SetupService(argc, argv, &ArgDetails, SZAPPNAME, + cb->service_name, /* internal service name */ + cb->service_display_name, /* displayed name */ + SZDEPENDENCIES); + return 0; +} + +int StartAppService(void *pHandle, int argc, char **argv) +{ + /* Initializes the App */ + return 1; +} + +void RunAppService(void *pHandle) +{ + Args *pArgs = (Args *)pHandle; + + /* Starts the app running */ + statserv_start(pArgs->argc, pArgs->argv); +} + +void StopAppService(void *pHandle) +{ + /* Stops the app */ + statserv_closedown(); + statserv_reset(); +} +/* WIN32 */ +#else +/* UNIX */ +int statserv_main(int argc, char **argv, + bend_initresult *(*bend_init)(bend_initrequest *r), + void (*bend_close)(void *handle)) +{ + int ret; + + control_block.bend_init = bend_init; + control_block.bend_close = bend_close; + + ret = statserv_start (argc, argv); + statserv_closedown (); + statserv_reset(); + return ret; +} +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/tcpdchk.c b/dependencies/yaz-2.1.28/src/tcpdchk.c new file mode 100644 index 0000000..b331a38 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/tcpdchk.c @@ -0,0 +1,108 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tcpdchk.c,v 1.8 2005/06/25 15:46:06 adam Exp $ + */ +/** + * \file tcpdchk.c + * \brief Implements TCP WRAPPER check. + */ + +#include +#include + +#if HAVE_SYS_TYPES_H +#include +#endif + +#ifdef WIN32 +#include +#else +#include +#include +#include +#include +#endif + +#if HAVE_SYS_SOCKET_H +#include +#endif + +#include +#include +#include +#include + + +#if HAVE_TCPD_H +#include +#include + +int allow_severity = LOG_INFO; /* not YLOG !! */ +int deny_severity = LOG_WARNING; + +#ifdef LOG_DEBUG +#undef LOG_DEBUG +#endif +#ifdef LOG_WARN +#undef LOG_WARN +#endif + +#endif + +int check_ip_tcpd(void *cd, const char *addr, int len, int type) +{ + const char *daemon_name = (const char *) cd; + + if (type == AF_INET) + { + if (daemon_name && *daemon_name) + { +#if HAVE_TCPD_H + struct request_info request_info; + int i; +#endif + char *host_name = 0, *host_addr = 0; + struct hostent *host; + + struct sockaddr_in *addr_in = (struct sockaddr_in *) addr; + + if ((host = gethostbyaddr((char*)&addr_in->sin_addr, + sizeof(addr_in->sin_addr), + AF_INET))) + host_name = (char*) host->h_name; + host_addr = inet_ntoa(addr_in->sin_addr); +#if HAVE_TCPD_H + if (host_addr) + request_init(&request_info, RQ_DAEMON, daemon_name, + RQ_CLIENT_NAME, host_name, + RQ_CLIENT_SIN, addr_in, + RQ_CLIENT_ADDR, host_addr, 0); + else + request_init(&request_info, RQ_DAEMON, daemon_name, + RQ_CLIENT_SIN, addr_in, + RQ_CLIENT_ADDR, host_addr, 0); + i = hosts_access(&request_info); + if (!i) + { + yaz_log (YLOG_DEBUG, "access denied from %s", + host_name ? host_name : host_addr); + return 1; + } + yaz_log (YLOG_DEBUG, "access granted from %s", + host_name ? host_name : host_addr); +#endif + } + } + return 0; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/tcpip.c b/dependencies/yaz-2.1.28/src/tcpip.c new file mode 100644 index 0000000..4dcd321 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/tcpip.c @@ -0,0 +1,1348 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tcpip.c,v 1.27 2006/09/01 12:42:31 adam Exp $ + */ +/** + * \file tcpip.c + * \brief Implements TCP/IP + SSL COMSTACK. + */ + +#include +#include +#include +#include +#include +#include +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_TIME_H +#include +#endif +#if HAVE_UNISTD_H +#include +#endif + +#ifdef WIN32 +#include +#include +#define HAVE_GETADDRINFO 1 +#else +#include +#include +#include +#include +#endif + +#if HAVE_SYS_SOCKET_H +#include +#endif +#if HAVE_SYS_SELECT_H +#include +#endif +#if HAVE_SYS_WAIT_H +#include +#endif + +#if HAVE_OPENSSL_SSL_H +#include +#include +#endif + +#include +#include +#include + +static int tcpip_close(COMSTACK h); +static int tcpip_put(COMSTACK h, char *buf, int size); +static int tcpip_get(COMSTACK h, char **buf, int *bufsize); +static int tcpip_connect(COMSTACK h, void *address); +static int tcpip_more(COMSTACK h); +static int tcpip_rcvconnect(COMSTACK h); +static int tcpip_bind(COMSTACK h, void *address, int mode); +static int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, + int (*check_ip)(void *cd, const char *a, int len, int type), + void *cd); +static int tcpip_set_blocking(COMSTACK p, int blocking); + +#if HAVE_OPENSSL_SSL_H +static int ssl_get(COMSTACK h, char **buf, int *bufsize); +static int ssl_put(COMSTACK h, char *buf, int size); +#endif + +static COMSTACK tcpip_accept(COMSTACK h); +static char *tcpip_addrstr(COMSTACK h); +static void *tcpip_straddr(COMSTACK h, const char *str); + +#if 0 +#define TRC(x) x +#else +#define TRC(X) +#endif + +#ifndef YAZ_SOCKLEN_T +#define YAZ_SOCKLEN_T int +#endif + +/* this state is used for both SSL and straight TCP/IP */ +typedef struct tcpip_state +{ + char *altbuf; /* alternate buffer for surplus data */ + int altsize; /* size as xmalloced */ + int altlen; /* length of data or 0 if none */ + + int written; /* -1 if we aren't writing */ + int towrite; /* to verify against user input */ + int (*complete)(const unsigned char *buf, int len); /* length/comple. */ +#if HAVE_GETADDRINFO + struct addrinfo *ai; +#else + struct sockaddr_in addr; /* returned by cs_straddr */ +#endif + char buf[128]; /* returned by cs_addrstr */ +#if HAVE_OPENSSL_SSL_H + SSL_CTX *ctx; /* current CTX. */ + SSL_CTX *ctx_alloc; /* If =ctx it is owned by CS. If 0 it is not owned */ + SSL *ssl; + char cert_fname[256]; +#endif +} tcpip_state; + +#ifdef WIN32 +static int tcpip_init (void) +{ + static int initialized = 0; + if (!initialized) + { + WORD requested; + WSADATA wd; + + requested = MAKEWORD(1, 1); + if (WSAStartup(requested, &wd)) + return 0; + initialized = 1; + } + return 1; +} +#else +static int tcpip_init (void) +{ + return 1; +} +#endif + +/* + * This function is always called through the cs_create() macro. + * s >= 0: socket has already been established for us. + */ +COMSTACK tcpip_type(int s, int blocking, int protocol, void *vp) +{ + COMSTACK p; + tcpip_state *sp; + + if (!tcpip_init ()) + return 0; + if (!(p = (struct comstack *)xmalloc(sizeof(struct comstack)))) + return 0; + if (!(sp = (struct tcpip_state *)(p->cprivate = + xmalloc(sizeof(tcpip_state))))) + return 0; + + p->blocking = blocking; + + p->io_pending = 0; + p->iofile = s; + p->type = tcpip_type; + p->protocol = (enum oid_proto) protocol; + + p->f_connect = tcpip_connect; + p->f_rcvconnect = tcpip_rcvconnect; + p->f_get = tcpip_get; + p->f_put = tcpip_put; + p->f_close = tcpip_close; + p->f_more = tcpip_more; + p->f_bind = tcpip_bind; + p->f_listen = tcpip_listen; + p->f_accept = tcpip_accept; + p->f_addrstr = tcpip_addrstr; + p->f_straddr = tcpip_straddr; + p->f_set_blocking = tcpip_set_blocking; + p->max_recv_bytes = 5000000; + + p->state = s < 0 ? CS_ST_UNBND : CS_ST_IDLE; /* state of line */ + p->event = CS_NONE; + p->cerrno = 0; + p->stackerr = 0; + p->user = 0; + +#if HAVE_OPENSSL_SSL_H + sp->ctx = sp->ctx_alloc = 0; + sp->ssl = 0; + strcpy(sp->cert_fname, "yaz.pem"); +#endif + +#if HAVE_GETADDRINFO + sp->ai = 0; +#endif + sp->altbuf = 0; + sp->altsize = sp->altlen = 0; + sp->towrite = sp->written = -1; + if (protocol == PROTO_WAIS) + sp->complete = completeWAIS; + else + sp->complete = cs_complete_auto; + + p->timeout = COMSTACK_DEFAULT_TIMEOUT; + TRC(fprintf(stderr, "Created new TCPIP comstack\n")); + + return p; +} + +#if HAVE_OPENSSL_SSL_H + +COMSTACK ssl_type(int s, int blocking, int protocol, void *vp) +{ + tcpip_state *sp; + COMSTACK p; + + p = tcpip_type (s, blocking, protocol, 0); + if (!p) + return 0; + p->f_get = ssl_get; + p->f_put = ssl_put; + p->type = ssl_type; + sp = (tcpip_state *) p->cprivate; + + sp->ctx = (SSL_CTX *) vp; /* may be NULL */ + + /* note: we don't handle already opened socket in SSL mode - yet */ + return p; +} +#endif + +#if HAVE_GETADDRINFO +/* resolve using getaddrinfo */ +struct addrinfo *tcpip_getaddrinfo(const char *str, const char *port) +{ + struct addrinfo hints, *res; + int error; + char host[512], *p; + + hints.ai_flags = 0; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + hints.ai_protocol = 0; + hints.ai_addrlen = 0; + hints.ai_addr = NULL; + hints.ai_canonname = NULL; + hints.ai_next = NULL; + + strncpy(host, str, sizeof(host)-1); + host[sizeof(host)-1] = 0; + if ((p = strchr(host, '/'))) + *p = 0; + if ((p = strrchr(host, ':'))) + { + *p = '\0'; + port = p+1; + } + + if (!strcmp("@", host)) + { + hints.ai_flags = AI_PASSIVE; + error = getaddrinfo(0, port, &hints, &res); + } + else + { + error = getaddrinfo(host, port, &hints, &res); + } + if (error) + return 0; + return res; +} + +#endif +/* gethostbyname .. old systems */ +int tcpip_strtoaddr_ex(const char *str, struct sockaddr_in *add, + int default_port) +{ + struct hostent *hp; + char *p, buf[512]; + short int port = default_port; +#ifdef WIN32 + unsigned long tmpadd; +#else + in_addr_t tmpadd; +#endif + TRC(fprintf(stderr, "tcpip_strtoaddress: %s\n", str ? str : "NULL")); + add->sin_family = AF_INET; + strncpy(buf, str, sizeof(buf)-1); + buf[sizeof(buf)-1] = 0; + if ((p = strchr(buf, '/'))) + *p = 0; + if ((p = strrchr(buf, ':'))) + { + *p = 0; + port = atoi(p + 1); + } + add->sin_port = htons(port); + if (!strcmp("@", buf)) + { + add->sin_addr.s_addr = INADDR_ANY; + } + else if ((tmpadd = inet_addr(buf)) != -1) + { + memcpy(&add->sin_addr.s_addr, &tmpadd, sizeof(struct in_addr)); + } + else if ((hp = gethostbyname(buf))) + { + memcpy(&add->sin_addr.s_addr, *hp->h_addr_list, + sizeof(struct in_addr)); + } + else + return 0; + return 1; +} + + +#if HAVE_GETADDRINFO +void *tcpip_straddr(COMSTACK h, const char *str) +{ + tcpip_state *sp = (tcpip_state *)h->cprivate; + const char *port = "210"; + if (h->protocol == PROTO_HTTP) + port = "80"; + if (!tcpip_init ()) + return 0; + + if (sp->ai) + freeaddrinfo(sp->ai); + sp->ai = tcpip_getaddrinfo(str, port); + if (sp->ai && h->state == CS_ST_UNBND) + { + int s; + struct addrinfo *ai = sp->ai; + s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); + if (s < 0) + return 0; + h->iofile = s; + + if (!tcpip_set_blocking(h, h->blocking)) + return 0; + } + return sp->ai; +} +#else +void *tcpip_straddr(COMSTACK h, const char *str) +{ + tcpip_state *sp = (tcpip_state *)h->cprivate; + int port = 210; + if (h->protocol == PROTO_HTTP) + port = 80; + + if (!tcpip_init ()) + return 0; + if (!tcpip_strtoaddr_ex (str, &sp->addr, port)) + return 0; + if (h->state == CS_ST_UNBND) + { + int s; + s = socket(AF_INET, SOCK_STREAM, 0); + if (s < 0) + return 0; + h->iofile = s; + + if (!tcpip_set_blocking(h, h->blocking)) + return 0; + } + return &sp->addr; +} +#endif + +int tcpip_more(COMSTACK h) +{ + tcpip_state *sp = (tcpip_state *)h->cprivate; + + return sp->altlen && (*sp->complete)((unsigned char *) sp->altbuf, + sp->altlen); +} + +/* + * connect(2) will block (sometimes) - nothing we can do short of doing + * weird things like spawning subprocesses or threading or some weird junk + * like that. + */ +int tcpip_connect(COMSTACK h, void *address) +{ +#if HAVE_GETADDRINFO + tcpip_state *sp = (tcpip_state *)h->cprivate; +#else + struct sockaddr_in *add = (struct sockaddr_in *) address; +#endif + int r; +#ifdef __sun__ + int recbuflen; + YAZ_SOCKLEN_T rbufsize = sizeof(recbuflen); +#endif + TRC(fprintf(stderr, "tcpip_connect\n")); + h->io_pending = 0; + if (h->state != CS_ST_UNBND) + { + h->cerrno = CSOUTSTATE; + return -1; + } +#if HAVE_GETADDRINFO + if (sp->ai != (struct addrinfo *) address) + { + h->cerrno = CSOUTSTATE; + return -1; + } +#endif +#ifdef __sun__ + /* On Suns, you must set a bigger Receive Buffer BEFORE a call to connect + * This gives the connect a chance to negotiate with the other side + * (see 'man tcp') + */ + if ( getsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, &rbufsize ) < 0 ) + { + h->cerrno = CSYSERR; + return -1; + } + TRC(fprintf( stderr, "Current Size of TCP Receive Buffer= %d\n", + recbuflen )); + recbuflen *= 10; /* lets be optimistic */ + if ( setsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, rbufsize ) < 0 ) + { + h->cerrno = CSYSERR; + return -1; + } + if ( getsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, &rbufsize ) ) + { + h->cerrno = CSYSERR; + return -1; + } + TRC(fprintf( stderr, "New Size of TCP Receive Buffer = %d\n", + recbuflen )); +#endif + +#if HAVE_GETADDRINFO + r = connect(h->iofile, sp->ai->ai_addr, sp->ai->ai_addrlen); + freeaddrinfo(sp->ai); + sp->ai = 0; +#else + r = connect(h->iofile, (struct sockaddr *) add, sizeof(*add)); +#endif + if (r < 0) + { +#ifdef WIN32 + if (WSAGetLastError() == WSAEWOULDBLOCK) + { + h->event = CS_CONNECT; + h->state = CS_ST_CONNECTING; + h->io_pending = CS_WANT_WRITE; + return 1; + } +#else + if (yaz_errno() == EINPROGRESS) + { + h->event = CS_CONNECT; + h->state = CS_ST_CONNECTING; + h->io_pending = CS_WANT_WRITE|CS_WANT_READ; + return 1; + } +#endif + h->cerrno = CSYSERR; + return -1; + } + h->event = CS_CONNECT; + h->state = CS_ST_CONNECTING; + + return tcpip_rcvconnect (h); +} + +/* + * nop + */ +int tcpip_rcvconnect(COMSTACK h) +{ +#if HAVE_OPENSSL_SSL_H + tcpip_state *sp = (tcpip_state *)h->cprivate; +#endif + TRC(fprintf(stderr, "tcpip_rcvconnect\n")); + + if (h->state == CS_ST_DATAXFER) + return 0; + if (h->state != CS_ST_CONNECTING) + { + h->cerrno = CSOUTSTATE; + return -1; + } +#if HAVE_OPENSSL_SSL_H + if (h->type == ssl_type && !sp->ctx) + { + SSL_load_error_strings(); + SSLeay_add_all_algorithms(); + + sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method()); + if (!sp->ctx) + { + h->cerrno = CSERRORSSL; + return -1; + } + } + if (sp->ctx) + { + int res; + + if (!sp->ssl) + { + sp->ssl = SSL_new (sp->ctx); + SSL_set_fd (sp->ssl, h->iofile); + } + res = SSL_connect (sp->ssl); + if (res <= 0) + { + int err = SSL_get_error(sp->ssl, res); + if (err == SSL_ERROR_WANT_READ) + { + h->io_pending = CS_WANT_READ; + return 1; + } + if (err == SSL_ERROR_WANT_WRITE) + { + h->io_pending = CS_WANT_WRITE; + return 1; + } + h->cerrno = CSERRORSSL; + return -1; + } + } +#endif + h->event = CS_DATA; + h->state = CS_ST_DATAXFER; + return 0; +} + +#define CERTF "ztest.pem" +#define KEYF "ztest.pem" + +static void tcpip_setsockopt (int fd) +{ +#if 0 + int len = 4096; + int set = 1; + + if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int))) + { + yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt TCP_NODELAY"); + } + if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int))) + { + yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt SNDBUF"); + } + if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int))) + { + yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt RCVBUF"); + } +#endif +} + +static int tcpip_bind(COMSTACK h, void *address, int mode) +{ + int r; + tcpip_state *sp = (tcpip_state *)h->cprivate; +#if HAVE_GETADDRINFO +#else + struct sockaddr *addr = (struct sockaddr *)address; +#endif +#ifdef WIN32 + BOOL one = 1; +#else + unsigned long one = 1; +#endif + +#if HAVE_GETADDRINFO + if (sp->ai != (struct addrinfo *) address) + { + h->cerrno = CSOUTSTATE; + return -1; + } +#endif + +#if HAVE_OPENSSL_SSL_H + if (h->type == ssl_type && !sp->ctx) + { + SSL_load_error_strings(); + SSLeay_add_all_algorithms(); + + sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method()); + if (!sp->ctx) + { + h->cerrno = CSERRORSSL; + return -1; + } + } + if (sp->ctx) + { + if (sp->ctx_alloc) + { + int res; + res = SSL_CTX_use_certificate_chain_file(sp->ctx, sp->cert_fname); + if (res <= 0) + { + ERR_print_errors_fp(stderr); + exit (2); + } + res = SSL_CTX_use_PrivateKey_file (sp->ctx, sp->cert_fname, + SSL_FILETYPE_PEM); + if (res <= 0) + { + ERR_print_errors_fp(stderr); + exit (3); + } + res = SSL_CTX_check_private_key (sp->ctx); + if (res <= 0) + { + ERR_print_errors_fp(stderr); + exit(5); + } + } + TRC (fprintf (stderr, "ssl_bind\n")); + } + else + { + TRC (fprintf (stderr, "tcpip_bind\n")); + } +#else + TRC (fprintf (stderr, "tcpip_bind\n")); +#endif +#ifndef WIN32 + if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (char*) + &one, sizeof(one)) < 0) + { + h->cerrno = CSYSERR; + return -1; + } +#endif + tcpip_setsockopt(h->iofile); +#if HAVE_GETADDRINFO + r = bind(h->iofile, sp->ai->ai_addr, sp->ai->ai_addrlen); + freeaddrinfo(sp->ai); + sp->ai = 0; +#else + r = bind(h->iofile, addr, sizeof(struct sockaddr_in)); +#endif + if (r) + { + h->cerrno = CSYSERR; + return -1; + } + /* Allow a maximum-sized backlog of waiting-to-connect clients */ + if (mode == CS_SERVER && listen(h->iofile, SOMAXCONN) < 0) + { + h->cerrno = CSYSERR; + return -1; + } + h->state = CS_ST_IDLE; + h->event = CS_LISTEN; + return 0; +} + +int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, + int (*check_ip)(void *cd, const char *a, int len, int t), + void *cd) +{ + struct sockaddr_in addr; + YAZ_SOCKLEN_T len = sizeof(addr); + + TRC(fprintf(stderr, "tcpip_listen pid=%d\n", getpid())); + if (h->state != CS_ST_IDLE) + { + h->cerrno = CSOUTSTATE; + return -1; + } + h->newfd = accept(h->iofile, (struct sockaddr*)&addr, &len); + if (h->newfd < 0) + { + if ( +#ifdef WIN32 + WSAGetLastError() == WSAEWOULDBLOCK +#else + yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif +#endif + ) + h->cerrno = CSNODATA; + else + h->cerrno = CSYSERR; + return -1; + } + if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in)) + memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_in)); + else if (addrlen) + *addrlen = 0; + if (check_ip && (*check_ip)(cd, (const char *) &addr, + sizeof(addr), AF_INET)) + { + h->cerrno = CSDENY; +#ifdef WIN32 + closesocket(h->newfd); +#else + close(h->newfd); +#endif + h->newfd = -1; + return -1; + } + h->state = CS_ST_INCON; + tcpip_setsockopt (h->newfd); + return 0; +} + +COMSTACK tcpip_accept(COMSTACK h) +{ + COMSTACK cnew; + tcpip_state *state, *st = (tcpip_state *)h->cprivate; +#ifdef WIN32 + unsigned long tru = 1; +#endif + + TRC(fprintf(stderr, "tcpip_accept\n")); + if (h->state == CS_ST_INCON) + { + if (!(cnew = (COMSTACK)xmalloc(sizeof(*cnew)))) + { + h->cerrno = CSYSERR; +#ifdef WIN32 + closesocket(h->newfd); +#else + close(h->newfd); +#endif + h->newfd = -1; + return 0; + } + memcpy(cnew, h, sizeof(*h)); + cnew->iofile = h->newfd; + cnew->io_pending = 0; + if (!(state = (tcpip_state *) + (cnew->cprivate = xmalloc(sizeof(tcpip_state))))) + { + h->cerrno = CSYSERR; + if (h->newfd != -1) + { +#ifdef WIN32 + closesocket(h->newfd); +#else + close(h->newfd); +#endif + h->newfd = -1; + } + return 0; + } + if (!tcpip_set_blocking(cnew, cnew->blocking)) + { + h->cerrno = CSYSERR; + if (h->newfd != -1) + { +#ifdef WIN32 + closesocket(h->newfd); +#else + close(h->newfd); +#endif + h->newfd = -1; + } + xfree (cnew); + xfree (state); + return 0; + } + h->newfd = -1; + state->altbuf = 0; + state->altsize = state->altlen = 0; + state->towrite = state->written = -1; + state->complete = st->complete; +#if HAVE_GETADDRINFO + state->ai = 0; +#endif + cnew->state = CS_ST_ACCEPT; + h->state = CS_ST_IDLE; + +#if HAVE_OPENSSL_SSL_H + state->ctx = st->ctx; + state->ctx_alloc = 0; + state->ssl = st->ssl; + if (state->ctx) + { + state->ssl = SSL_new (state->ctx); + SSL_set_fd (state->ssl, cnew->iofile); + } +#endif + h = cnew; + } + if (h->state == CS_ST_ACCEPT) + { +#if HAVE_OPENSSL_SSL_H + tcpip_state *state = (tcpip_state *)h->cprivate; + if (state->ctx) + { + int res = SSL_accept (state->ssl); + TRC(fprintf(stderr, "SSL_accept\n")); + if (res <= 0) + { + int err = SSL_get_error(state->ssl, res); + if (err == SSL_ERROR_WANT_READ) + { + h->io_pending = CS_WANT_READ; + return h; + } + if (err == SSL_ERROR_WANT_WRITE) + { + h->io_pending = CS_WANT_WRITE; + return h; + } + cs_close (h); + return 0; + } + } +#endif + } + else + { + h->cerrno = CSOUTSTATE; + return 0; + } + h->io_pending = 0; + h->state = CS_ST_DATAXFER; + h->event = CS_DATA; + return h; +} + +#define CS_TCPIP_BUFCHUNK 4096 + +/* + * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, + * 0=connection closed. + */ +int tcpip_get(COMSTACK h, char **buf, int *bufsize) +{ + tcpip_state *sp = (tcpip_state *)h->cprivate; + char *tmpc; + int tmpi, berlen, rest, req, tomove; + int hasread = 0, res; + + TRC(fprintf(stderr, "tcpip_get: bufsize=%d\n", *bufsize)); + if (sp->altlen) /* switch buffers */ + { + TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, + (unsigned) sp->altbuf)); + tmpc = *buf; + tmpi = *bufsize; + *buf = sp->altbuf; + *bufsize = sp->altsize; + hasread = sp->altlen; + sp->altlen = 0; + sp->altbuf = tmpc; + sp->altsize = tmpi; + } + h->io_pending = 0; + while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) + { + if (!*bufsize) + { + if (!(*buf = (char *)xmalloc(*bufsize = CS_TCPIP_BUFCHUNK))) + { + h->cerrno = CSYSERR; + return -1; + } + } + else if (*bufsize - hasread < CS_TCPIP_BUFCHUNK) + if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) + { + h->cerrno = CSYSERR; + return -1; + } +#ifdef __sun__ + yaz_set_errno( 0 ); + /* unfortunatly, sun sometimes forgets to set errno in recv + when EWOULDBLOCK etc. would be required (res = -1) */ +#endif + res = recv(h->iofile, *buf + hasread, CS_TCPIP_BUFCHUNK, 0); + TRC(fprintf(stderr, " recv res=%d, hasread=%d\n", res, hasread)); + if (res < 0) + { + TRC(fprintf(stderr, " recv errno=%d, (%s)\n", yaz_errno(), + strerror(yaz_errno()))); +#ifdef WIN32 + if (WSAGetLastError() == WSAEWOULDBLOCK) + { + h->io_pending = CS_WANT_READ; + break; + } + else + { + h->cerrno = CSYSERR; + return -1; + } +#else + if (yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif + || yaz_errno() == EINPROGRESS +#ifdef __sun__ + || yaz_errno() == ENOENT /* Sun's sometimes set errno to this */ +#endif + ) + { + h->io_pending = CS_WANT_READ; + break; + } + else if (yaz_errno() == 0) + continue; + else + { + h->cerrno = CSYSERR; + return -1; + } +#endif + } + else if (!res) + return hasread; + hasread += res; + if (hasread > h->max_recv_bytes) + { + h->cerrno = CSBUFSIZE; + return -1; + } + } + TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", + hasread, berlen)); + /* move surplus buffer (or everything if we didn't get a BER rec.) */ + if (hasread > berlen) + { + tomove = req = hasread - berlen; + rest = tomove % CS_TCPIP_BUFCHUNK; + if (rest) + req += CS_TCPIP_BUFCHUNK - rest; + if (!sp->altbuf) + { + if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) + { + h->cerrno = CSYSERR; + return -1; + } + } else if (sp->altsize < req) + if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) + { + h->cerrno = CSYSERR; + return -1; + } + TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, + (unsigned) sp->altbuf)); + memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); + } + if (berlen < CS_TCPIP_BUFCHUNK - 1) + *(*buf + berlen) = '\0'; + return berlen ? berlen : 1; +} + + +#if HAVE_OPENSSL_SSL_H +/* + * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, + * 0=connection closed. + */ +int ssl_get(COMSTACK h, char **buf, int *bufsize) +{ + tcpip_state *sp = (tcpip_state *)h->cprivate; + char *tmpc; + int tmpi, berlen, rest, req, tomove; + int hasread = 0, res; + + TRC(fprintf(stderr, "ssl_get: bufsize=%d\n", *bufsize)); + if (sp->altlen) /* switch buffers */ + { + TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, + (unsigned) sp->altbuf)); + tmpc = *buf; + tmpi = *bufsize; + *buf = sp->altbuf; + *bufsize = sp->altsize; + hasread = sp->altlen; + sp->altlen = 0; + sp->altbuf = tmpc; + sp->altsize = tmpi; + } + h->io_pending = 0; + while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) + { + if (!*bufsize) + { + if (!(*buf = (char *)xmalloc(*bufsize = CS_TCPIP_BUFCHUNK))) + return -1; + } + else if (*bufsize - hasread < CS_TCPIP_BUFCHUNK) + if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) + return -1; + res = SSL_read (sp->ssl, *buf + hasread, CS_TCPIP_BUFCHUNK); + TRC(fprintf(stderr, " SSL_read res=%d, hasread=%d\n", res, hasread)); + if (res <= 0) + { + int ssl_err = SSL_get_error(sp->ssl, res); + if (ssl_err == SSL_ERROR_WANT_READ) + { + h->io_pending = CS_WANT_READ; + break; + } + if (ssl_err == SSL_ERROR_WANT_WRITE) + { + h->io_pending = CS_WANT_WRITE; + break; + } + if (res == 0) + return 0; + h->cerrno = CSERRORSSL; + return -1; + } + hasread += res; + } + TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", + hasread, berlen)); + /* move surplus buffer (or everything if we didn't get a BER rec.) */ + if (hasread > berlen) + { + tomove = req = hasread - berlen; + rest = tomove % CS_TCPIP_BUFCHUNK; + if (rest) + req += CS_TCPIP_BUFCHUNK - rest; + if (!sp->altbuf) + { + if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) + return -1; + } else if (sp->altsize < req) + if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) + return -1; + TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, + (unsigned) sp->altbuf)); + memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); + } + if (berlen < CS_TCPIP_BUFCHUNK - 1) + *(*buf + berlen) = '\0'; + return berlen ? berlen : 1; +} +#endif + +/* + * Returns 1, 0 or -1 + * In nonblocking mode, you must call again with same buffer while + * return value is 1. + */ +int tcpip_put(COMSTACK h, char *buf, int size) +{ + int res; + struct tcpip_state *state = (struct tcpip_state *)h->cprivate; + + TRC(fprintf(stderr, "tcpip_put: size=%d\n", size)); + h->io_pending = 0; + h->event = CS_DATA; + if (state->towrite < 0) + { + state->towrite = size; + state->written = 0; + } + else if (state->towrite != size) + { + h->cerrno = CSWRONGBUF; + return -1; + } + while (state->towrite > state->written) + { + if ((res = + send(h->iofile, buf + state->written, size - + state->written, +#ifdef MSG_NOSIGNAL + MSG_NOSIGNAL +#else + 0 +#endif + )) < 0) + { + if ( +#ifdef WIN32 + WSAGetLastError() == WSAEWOULDBLOCK +#else + yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif +#ifdef __sun__ + || yaz_errno() == ENOENT /* Sun's sometimes set errno to this value! */ +#endif + || yaz_errno() == EINPROGRESS +#endif + ) + { + TRC(fprintf(stderr, " Flow control stop\n")); + h->io_pending = CS_WANT_WRITE; + return 1; + } + h->cerrno = CSYSERR; + return -1; + } + state->written += res; + TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", + res, state->written, size)); + } + state->towrite = state->written = -1; + TRC(fprintf(stderr, " Ok\n")); + return 0; +} + + +#if HAVE_OPENSSL_SSL_H +/* + * Returns 1, 0 or -1 + * In nonblocking mode, you must call again with same buffer while + * return value is 1. + */ +int ssl_put(COMSTACK h, char *buf, int size) +{ + int res; + struct tcpip_state *state = (struct tcpip_state *)h->cprivate; + + TRC(fprintf(stderr, "ssl_put: size=%d\n", size)); + h->io_pending = 0; + h->event = CS_DATA; + if (state->towrite < 0) + { + state->towrite = size; + state->written = 0; + } + else if (state->towrite != size) + { + h->cerrno = CSWRONGBUF; + return -1; + } + while (state->towrite > state->written) + { + res = SSL_write (state->ssl, buf + state->written, + size - state->written); + if (res <= 0) + { + int ssl_err = SSL_get_error(state->ssl, res); + if (ssl_err == SSL_ERROR_WANT_READ) + { + h->io_pending = CS_WANT_READ; + return 1; + } + if (ssl_err == SSL_ERROR_WANT_WRITE) + { + h->io_pending = CS_WANT_WRITE; + return 1; + } + h->cerrno = CSERRORSSL; + return -1; + } + state->written += res; + TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", + res, state->written, size)); + } + state->towrite = state->written = -1; + TRC(fprintf(stderr, " Ok\n")); + return 0; +} +#endif + +int tcpip_close(COMSTACK h) +{ + tcpip_state *sp = (struct tcpip_state *)h->cprivate; + + TRC(fprintf(stderr, "tcpip_close\n")); + if (h->iofile != -1) + { +#if HAVE_OPENSSL_SSL_H + if (sp->ssl) + { + SSL_shutdown (sp->ssl); + } +#endif +#ifdef WIN32 + closesocket(h->iofile); +#else + close(h->iofile); +#endif + } + if (sp->altbuf) + xfree(sp->altbuf); +#if HAVE_OPENSSL_SSL_H + if (sp->ssl) + { + TRC (fprintf(stderr, "SSL_free\n")); + SSL_free (sp->ssl); + } + sp->ssl = 0; + if (sp->ctx_alloc) + SSL_CTX_free (sp->ctx_alloc); +#endif +#if HAVE_GETADDRINFO + if (sp->ai) + freeaddrinfo(sp->ai); +#endif + xfree(sp); + xfree(h); + return 0; +} + +char *tcpip_addrstr(COMSTACK h) +{ + struct sockaddr_in addr; + tcpip_state *sp = (struct tcpip_state *)h->cprivate; + char *r = 0, *buf = sp->buf; + YAZ_SOCKLEN_T len; + struct hostent *host; + + len = sizeof(addr); + if (getpeername(h->iofile, (struct sockaddr*) &addr, &len) < 0) + { + h->cerrno = CSYSERR; + return 0; + } + if (!(h->blocking&2)) { + if ((host = gethostbyaddr((char*)&addr.sin_addr, sizeof(addr.sin_addr), + AF_INET))) + r = (char*) host->h_name; + } + if (!r) + r = inet_ntoa(addr.sin_addr); + if (h->protocol == PROTO_HTTP) + sprintf(buf, "http:%s", r); + else + sprintf(buf, "tcp:%s", r); +#if HAVE_OPENSSL_SSL_H + if (sp->ctx) + { + if (h->protocol == PROTO_HTTP) + sprintf(buf, "https:%s", r); + else + sprintf(buf, "ssl:%s", r); + } +#endif + return buf; +} + +int static tcpip_set_blocking(COMSTACK p, int blocking) +{ + unsigned long flag; + +#ifdef WIN32 + flag = blocking ? 0 : 1; + if (ioctlsocket(p->iofile, FIONBIO, &flag) < 0) + return 0; +#else + flag = fcntl(p->iofile, F_GETFL, 0); + if (blocking & 1) + flag = flag & ~O_NONBLOCK; /* blocking */ + else + { + flag = flag | O_NONBLOCK; /* non-blocking */ + signal(SIGPIPE, SIG_IGN); + } + if (fcntl(p->iofile, F_SETFL, flag) < 0) + return 0; +#endif + p->blocking = blocking; + return 1; +} + +#if HAVE_OPENSSL_SSL_H +int cs_set_ssl_ctx(COMSTACK cs, void *ctx) +{ + struct tcpip_state *sp; + if (!cs || cs->type != ssl_type) + return 0; + sp = (struct tcpip_state *) cs->cprivate; + if (sp->ctx_alloc) + return 0; + sp->ctx = (SSL_CTX *) ctx; + return 1; +} + +void *cs_get_ssl(COMSTACK cs) +{ + struct tcpip_state *sp; + if (!cs || cs->type != ssl_type) + return 0; + sp = (struct tcpip_state *) cs->cprivate; + return sp->ssl; +} + +int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname) +{ + struct tcpip_state *sp; + if (!cs || cs->type != ssl_type) + return 0; + sp = (struct tcpip_state *) cs->cprivate; + strncpy(sp->cert_fname, fname, sizeof(sp->cert_fname)-1); + sp->cert_fname[sizeof(sp->cert_fname)-1] = '\0'; + return 1; +} + +int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len) +{ + SSL *ssl = (SSL *) cs_get_ssl(cs); + if (ssl) + { + X509 *server_cert = SSL_get_peer_certificate (ssl); + if (server_cert) + { + BIO *bio = BIO_new(BIO_s_mem()); + char *pem_buf; + /* get PEM buffer in memory */ + PEM_write_bio_X509(bio, server_cert); + *len = BIO_get_mem_data(bio, &pem_buf); + *buf = (char *) xmalloc(*len); + memcpy(*buf, pem_buf, *len); + BIO_free(bio); + return 1; + } + } + return 0; +} +#else +int cs_set_ssl_ctx(COMSTACK cs, void *ctx) +{ + return 0; +} + +void *cs_get_ssl(COMSTACK cs) +{ + return 0; +} + +int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len) +{ + return 0; +} + +int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname) +{ + return 0; +} +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/test.c b/dependencies/yaz-2.1.28/src/test.c new file mode 100644 index 0000000..10ebca2 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/test.c @@ -0,0 +1,219 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: test.c,v 1.10 2006/07/07 13:39:04 heikki Exp $ + */ + +/** \file test.c + \brief Unit Test for YAZ +*/ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#if HAVE_UNISTSD_H +#include +#endif + +#include +#include + +static FILE *test_fout = 0; /* can't use '= stdout' on some systems */ +static int test_total = 0; +static int test_failed = 0; +static int test_todo = 0; +static int test_verbose = 1; +static const char *test_prog = 0; +static int log_tests = 0; + +static FILE *get_file() +{ + if (test_fout) + return test_fout; + return stdout; +} + +static const char *progname(const char *argv0) +{ + const char *cp = strrchr(argv0, '/'); + if (cp) + return cp+1; + cp = strrchr(argv0, '\\'); + if (cp) + return cp+1; + return argv0; +} + +void yaz_check_init1(int *argc_p, char ***argv_p) +{ + int i = 0; + int argc = *argc_p; + char **argv = *argv_p; + + test_prog = progname(argv[0]); + + for (i = 1; i= 7 && !memcmp(argv[i], "--test-", 7)) + { + const char *suf = argv[i]+7; + if (i < argc-1 && !strcmp(suf, "file")) + { + i++; + if (test_fout) + fclose(test_fout); + test_fout = fopen(argv[i], "w"); + continue; + } + else if (i < argc-1 && !strcmp(suf, "verbose")) + { + i++; + test_verbose = atoi(argv[i]); + continue; + } + else if (!strcmp(suf, "help")) + { + fprintf(stderr, + "--test-help help\n" + "--test-file fname output to fname\n" + "--test-verbose level verbose level\n" + " 0=Quiet. Only exit code tells what's wrong\n" + " 1=Report+Summary only if tests fail.\n" + " 2=Report failures. Print summary always\n" + " 3=Report + summary always\n" + " 4=Report + summary + extra prints from tests\n" + ); + exit(0); + } + else + { + fprintf(stderr, "Unrecognized option for YAZ test: %s\n", + argv[i]); + fprintf(stderr, "Use --test-help for more info\n"); + exit(1); + } + + } + break; + } + /* remove --test- options from argc, argv so that they disappear */ + (*argv_p)[i-1] = **argv_p; /* program name */ + --i; + *argc_p -= i; + *argv_p += i; +} + +/** \brief Initialize the log system */ +void yaz_check_init_log(const char *argv0) +{ + char logfilename[2048]; + log_tests = 1; + sprintf(logfilename,"%s.log", progname(argv0) ); + yaz_log_init_file(logfilename); + yaz_log_trunc(); + +} + +void yaz_check_inc_todo(void) +{ + test_todo++; +} + +void yaz_check_term1(void) +{ + /* summary */ + if (test_failed) + { + if (test_verbose >= 1) { + if (test_todo) + fprintf(get_file(), "%d out of %d tests failed for program %s" + " (%d TODO's remaining)\n", + test_failed, test_total, test_prog,test_todo); + else + fprintf(get_file(), "%d out of %d tests failed for program %s\n", + test_failed, test_total, test_prog); + } + } + else + { + if (test_verbose >= 2) { + if (test_todo) + fprintf(get_file(), "%d tests passed for program %s" + " (%d TODO's remaining)\n", + test_total, test_prog,test_todo); + else + fprintf(get_file(), "%d tests passed for program %s\n", + test_total, test_prog); + } + } + if (test_fout) + fclose(test_fout); + if (test_failed) + exit(1); + exit(0); +} + +void yaz_check_eq1(int type, const char *file, int line, + const char *left, const char *right, int lval, int rval) +{ + char formstr[2048]; + + if (type == YAZ_TEST_TYPE_OK) + sprintf(formstr, "%.500s == %.500s ", left, right); + else + sprintf(formstr, "%.500s != %.500s\n %d != %d", left, right, lval,rval); + yaz_check_print1(type, file, line, formstr); +} + +void yaz_check_print1(int type, const char *file, int line, + const char *expr) +{ + const char *msg = "unknown"; + int printit = 1; + + test_total++; + switch(type) + { + case YAZ_TEST_TYPE_FAIL: + test_failed++; + msg = "FAILED"; + if (test_verbose < 1) + printit = 0; + break; + case YAZ_TEST_TYPE_OK: + msg = "ok"; + if (test_verbose < 3) + printit = 0; + break; + } + if (printit) + { + fprintf(get_file(), "%s:%d %s: ", file, line, msg); + fprintf(get_file(), "%s\n", expr); + } + if (log_tests) + { + yaz_log(YLOG_LOG, "%s:%d %s: ", file, line, msg); + yaz_log(YLOG_LOG, "%s", expr); + } +} + + +int yaz_test_get_verbosity() +{ + return test_verbose; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/tpath.c b/dependencies/yaz-2.1.28/src/tpath.c new file mode 100644 index 0000000..05d1625 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/tpath.c @@ -0,0 +1,120 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tpath.c,v 1.11 2006/06/08 20:55:38 adam Exp $ + */ +/** + * \file tpath.c + * \brief File Path utilities + */ + +#if HAVE_CONFIG_H +#include +#endif + + +#include +#include +#include +#include +#include +#include +#include +#if HAVE_UNISTD_H +#include +#endif + +FILE *yaz_path_fopen(const char *path, const char *name, const char *mode) +{ + return yaz_fopen (path, name, mode, 0); +} + +int yaz_fclose (FILE *f) +{ + return fclose (f); +} + + +char *yaz_filepath_resolve(const char *fname, const char *path, + const char *base, char *fullpath) +{ + for(;;) + { + struct stat stat_buf; + const char *path_sep = 0; + size_t len = 0; + size_t slen = 0; + + *fullpath = '\0'; + if (path) + { + /* somewhat dirty since we have to consider Windows + * drive letters.. + */ + if (path[0] && strchr ("/\\.", *path)) + path_sep = strchr (path+1, ':'); + else if (path[0] && path[1]) + path_sep = strchr (path+2, ':'); + else + path_sep = 0; + + if (path_sep) + len = path_sep - path; + else + len = strlen(path); + /* is path is relative and base is to be used */ + if (!strchr ("/\\", *path) && base) + { + /* yes: make base the first part */ + strcpy (fullpath, base); + slen = strlen(fullpath); + fullpath[slen++] = '/'; + } + if (len) + memcpy (fullpath+slen, path, len); + slen += len; + if (slen > 0 && !strchr("/\\", fullpath[slen-1])) + fullpath[slen++] = '/'; + } + strcpy (fullpath+slen, fname); + if (stat(fullpath, &stat_buf) == 0) + return fullpath; + + if (!path_sep) + break; + path = path_sep+1; + } + return 0; +} + +FILE *yaz_fopen(const char *path, const char *fname, const char *mode, + const char *base) +{ + char fullpath[1024]; + + if (!yaz_filepath_resolve(fname, path, base, fullpath)) + return 0; /* failure */ + return fopen(fullpath, mode); +} + +int yaz_is_abspath (const char *p) +{ + if (*p == '/') + return 1; +#ifdef WIN32 + if (*p == '\\') + return 1; + if (*p && p[1] == ':' && isalpha(*p)) + return 1; +#endif + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/univres.asn b/dependencies/yaz-2.1.28/src/univres.asn new file mode 100644 index 0000000..f83320d --- /dev/null +++ b/dependencies/yaz-2.1.28/src/univres.asn @@ -0,0 +1,23 @@ +ResourceReport-Format-Universe-1 +{Z39-50-resourceReport universe-1 (1000)} DEFINITIONS ::= +BEGIN +IMPORTS StringOrNumeric FROM Z39-50-APDU-1995; +-- + +UniverseReportHits ::= SEQUENCE { + database StringOrNumeric, + hits StringOrNumeric +} + +UniverseReportDuplicate ::= SEQUENCE { + hitno StringOrNumeric +} + +UniverseReport ::= SEQUENCE { + totalHits INTEGER, + report CHOICE { + databaseHits [0] IMPLICIT UniverseReportHits, + duplicate [1] IMPLICIT UniverseReportDuplicate + } +} +END diff --git a/dependencies/yaz-2.1.28/src/unix.c b/dependencies/yaz-2.1.28/src/unix.c new file mode 100644 index 0000000..4108855 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/unix.c @@ -0,0 +1,745 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: unix.c,v 1.16 2005/10/22 13:32:04 adam Exp $ + * UNIX socket COMSTACK. By Morten Bøgeskov. + */ +/** + * \file unix.c + * \brief Implements UNIX domain socket COMSTACK + */ + +#ifndef WIN32 + +#include +#include +#include +#include +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_UNISTD_H +#include +#endif +#if HAVE_SYS_SOCKET_H +#include +#endif +#include +#include + +#include +#if HAVE_PWD_H +#include +#endif + +#if HAVE_SYS_STAT_H +#include +#endif +#if HAVE_SYS_UN_H +#include +#endif + +#include +#include + +#ifndef YAZ_SOCKLEN_T +#define YAZ_SOCKLEN_T int +#endif + +/* stat(2) masks: S_IFMT and S_IFSOCK may not be defined in gcc -ansi mode */ +#if __STRICT_ANSI__ +#ifndef S_IFSOCK +#define S_IFMT 0170000 +#define S_IFSOCK 0140000 +#endif +#endif + +static int unix_close(COMSTACK h); +static int unix_put(COMSTACK h, char *buf, int size); +static int unix_get(COMSTACK h, char **buf, int *bufsize); +static int unix_connect(COMSTACK h, void *address); +static int unix_more(COMSTACK h); +static int unix_rcvconnect(COMSTACK h); +static int unix_bind(COMSTACK h, void *address, int mode); +static int unix_listen(COMSTACK h, char *raddr, int *addrlen, + int (*check_ip)(void *cd, const char *a, int len, int type), + void *cd); +static int unix_set_blocking(COMSTACK p, int blocking); + +static COMSTACK unix_accept(COMSTACK h); +static char *unix_addrstr(COMSTACK h); +static void *unix_straddr(COMSTACK h, const char *str); + +#ifndef SUN_LEN +#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path) \ + + strlen ((ptr)->sun_path)) +#endif +#if 0 +#define TRC(x) x +#else +#define TRC(X) +#endif + +/* this state is used for both SSL and straight TCP/IP */ +typedef struct unix_state +{ + char *altbuf; /* alternate buffer for surplus data */ + int altsize; /* size as xmalloced */ + int altlen; /* length of data or 0 if none */ + + int written; /* -1 if we aren't writing */ + int towrite; /* to verify against user input */ + int (*complete)(const unsigned char *buf, int len); /* length/comple. */ + struct sockaddr_un addr; /* returned by cs_straddr */ + int uid; + int gid; + int umask; + char buf[128]; /* returned by cs_addrstr */ +} unix_state; + +static int unix_init (void) +{ + return 1; +} + +/* + * This function is always called through the cs_create() macro. + * s >= 0: socket has already been established for us. + */ +COMSTACK unix_type(int s, int blocking, int protocol, void *vp) +{ + COMSTACK p; + unix_state *state; + int new_socket; + + if (!unix_init ()) + return 0; + if (s < 0) + { + if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) + return 0; + new_socket = 1; + } + else + new_socket = 0; + if (!(p = (struct comstack *)xmalloc(sizeof(struct comstack)))) + return 0; + if (!(state = (struct unix_state *)(p->cprivate = + xmalloc(sizeof(unix_state))))) + return 0; + + if (!((p->blocking = blocking)&1)) + { + if (fcntl(s, F_SETFL, O_NONBLOCK) < 0) + return 0; +#ifndef MSG_NOSIGNAL + signal (SIGPIPE, SIG_IGN); +#endif + } + + p->io_pending = 0; + p->iofile = s; + p->type = unix_type; + p->protocol = (enum oid_proto) protocol; + + p->f_connect = unix_connect; + p->f_rcvconnect = unix_rcvconnect; + p->f_get = unix_get; + p->f_put = unix_put; + p->f_close = unix_close; + p->f_more = unix_more; + p->f_bind = unix_bind; + p->f_listen = unix_listen; + p->f_accept = unix_accept; + p->f_addrstr = unix_addrstr; + p->f_straddr = unix_straddr; + p->f_set_blocking = unix_set_blocking; + + p->state = new_socket ? CS_ST_UNBND : CS_ST_IDLE; /* state of line */ + p->event = CS_NONE; + p->cerrno = 0; + p->stackerr = 0; + p->user = 0; + + state->altbuf = 0; + state->altsize = state->altlen = 0; + state->towrite = state->written = -1; + if (protocol == PROTO_WAIS) + state->complete = completeWAIS; + else + state->complete = cs_complete_auto; + + p->timeout = COMSTACK_DEFAULT_TIMEOUT; + TRC(fprintf(stderr, "Created new UNIX comstack\n")); + + return p; +} + + +static int unix_strtoaddr_ex(const char *str, struct sockaddr_un *add) +{ + char *cp; + if (!unix_init ()) + return 0; + TRC(fprintf(stderr, "unix_strtoaddress: %s\n", str ? str : "NULL")); + add->sun_family = AF_UNIX; + strncpy(add->sun_path, str, sizeof(add->sun_path)); + cp = strchr (add->sun_path, ':'); + if (cp) + *cp = '\0'; + return 1; +} + +static void *unix_straddr1(COMSTACK h, const char *str, char *f) +{ + unix_state *sp = (unix_state *)h->cprivate; + char * s = f; + const char * file = NULL; + char * eol; + + sp->uid = sp->gid = sp->umask = -1; + + if ((eol = strchr(s, ','))) + { + do + { + if ((eol = strchr(s, ','))) + *eol++ = '\0'; + if (sp->uid == -1 && strncmp(s, "user=", 5) == 0) + { + char * arg = s + 5; + if (strspn(arg, "0123456789") == strlen(arg)) + { + sp->uid = atoi(arg); + } + else + { + struct passwd * pw = getpwnam(arg); + if(pw == NULL) + { + printf("No such user\n"); + return 0; + } + sp->uid = pw->pw_uid; + } + } + else if (sp->gid == -1 && strncmp(s, "group=", 6) == 0) + { + char * arg = s + 6; + if (strspn(arg, "0123456789") == strlen(arg)) + { + sp->gid = atoi(arg); + } + else + { + struct group * gr = getgrnam(arg); + if (gr == NULL) + { + printf("No such group\n"); + return 0; + } + sp->gid = gr->gr_gid; + } + } + else if (sp->umask == -1 && strncmp(s, "umask=", 6) == 0) + { + char * end; + char * arg = s + 6; + + sp->umask = strtol(arg, &end, 8); + if (errno == EINVAL || + *end) + { + printf("Invalid umask\n"); + return 0; + } + } + else if (file == NULL && strncmp(s, "file=", 5) == 0) + { + char * arg = s + 5; + file = arg; + } + else + { + printf("invalid or double argument: %s\n", s); + return 0; + } + } while((s = eol)); + } + else + { + file = str; + } + if(! file) + { + errno = EINVAL; + return 0; + } + + TRC(fprintf(stderr, "unix_straddr: %s\n", str ? str : "NULL")); + + if (!unix_strtoaddr_ex (file, &sp->addr)) + return 0; + return &sp->addr; +} + +static void *unix_straddr(COMSTACK h, const char *str) +{ + char *f = xstrdup(str); + void *vp = unix_straddr1(h, str, f); + xfree(f); + return vp; +} + +struct sockaddr_un *unix_strtoaddr(const char *str) +{ + static struct sockaddr_un add; + + TRC(fprintf(stderr, "unix_strtoaddr: %s\n", str ? str : "NULL")); + + if (!unix_strtoaddr_ex (str, &add)) + return 0; + return &add; +} + +static int unix_more(COMSTACK h) +{ + unix_state *sp = (unix_state *)h->cprivate; + + return sp->altlen && (*sp->complete)((unsigned char *) sp->altbuf, + sp->altlen); +} + +/* + * connect(2) will block (sometimes) - nothing we can do short of doing + * weird things like spawning subprocesses or threading or some weird junk + * like that. + */ +static int unix_connect(COMSTACK h, void *address) +{ + struct sockaddr_un *add = (struct sockaddr_un *)address; + int r; + int i; + + TRC(fprintf(stderr, "unix_connect\n")); + h->io_pending = 0; + if (h->state != CS_ST_UNBND) + { + h->cerrno = CSOUTSTATE; + return -1; + } + for (i = 0; i<3; i++) + { + r = connect(h->iofile, (struct sockaddr *) add, SUN_LEN(add)); + if (r < 0 && yaz_errno() == EAGAIN) + { +#if HAVE_USLEEP + usleep(i*10000+1000); /* 1ms, 11ms, 21ms */ +#else + sleep(1); +#endif + continue; + } + else + break; + } + if (r < 0) + { + if (yaz_errno() == EINPROGRESS) + { + h->event = CS_CONNECT; + h->state = CS_ST_CONNECTING; + h->io_pending = CS_WANT_WRITE; + return 1; + } + h->cerrno = CSYSERR; + return -1; + } + h->event = CS_CONNECT; + h->state = CS_ST_CONNECTING; + + return unix_rcvconnect (h); +} + +/* + * nop + */ +static int unix_rcvconnect(COMSTACK h) +{ + TRC(fprintf(stderr, "unix_rcvconnect\n")); + + if (h->state == CS_ST_DATAXFER) + return 0; + if (h->state != CS_ST_CONNECTING) + { + h->cerrno = CSOUTSTATE; + return -1; + } + h->event = CS_DATA; + h->state = CS_ST_DATAXFER; + return 0; +} + +static int unix_bind(COMSTACK h, void *address, int mode) +{ + unix_state *sp = (unix_state *)h->cprivate; + struct sockaddr *addr = (struct sockaddr *)address; + const char * path = ((struct sockaddr_un *)addr)->sun_path; + struct stat stat_buf; + + TRC (fprintf (stderr, "unix_bind\n")); + + if(stat(path, &stat_buf) != -1) { + struct sockaddr_un socket_unix; + int socket_out = -1; + + if((stat_buf.st_mode&S_IFMT) != S_IFSOCK) { /* used to be S_ISSOCK */ + h->cerrno = CSYSERR; + yaz_set_errno(EEXIST); /* Not a socket (File exists) */ + return -1; + } + if((socket_out = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + h->cerrno = CSYSERR; + return -1; + } + socket_unix.sun_family = AF_UNIX; + strncpy(socket_unix.sun_path, path, sizeof(socket_unix.sun_path)); + if(connect(socket_out, (struct sockaddr *) &socket_unix, SUN_LEN(&socket_unix)) < 0) { + if(yaz_errno() == ECONNREFUSED) { + TRC (fprintf (stderr, "Socket exists but nobody is listening\n")); + } else { + h->cerrno = CSYSERR; + return -1; + } + } else { + close(socket_out); + h->cerrno = CSYSERR; + yaz_set_errno(EADDRINUSE); + return -1; + } + unlink(path); + } + + if (bind(h->iofile, (struct sockaddr *) addr, SUN_LEN((struct sockaddr_un *)addr))) + { + h->cerrno = CSYSERR; + return -1; + } + chown(path, sp->uid, sp->gid); + chmod(path, sp->umask != -1 ? sp->umask : 0666); + if (mode == CS_SERVER && listen(h->iofile, 100) < 0) + { + h->cerrno = CSYSERR; + return -1; + } + h->state = CS_ST_IDLE; + h->event = CS_LISTEN; + return 0; +} + +static int unix_listen(COMSTACK h, char *raddr, int *addrlen, + int (*check_ip)(void *cd, const char *a, int len, int t), + void *cd) +{ + struct sockaddr_un addr; + YAZ_SOCKLEN_T len = sizeof(addr); + + TRC(fprintf(stderr, "unix_listen pid=%d\n", getpid())); + if (h->state != CS_ST_IDLE) + { + h->cerrno = CSOUTSTATE; + return -1; + } + h->newfd = accept(h->iofile, (struct sockaddr*)&addr, &len); + if (h->newfd < 0) + { + if ( + yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif + ) + h->cerrno = CSNODATA; + else + h->cerrno = CSYSERR; + return -1; + } + if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_un)) + memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_un)); + else if (addrlen) + *addrlen = 0; + h->state = CS_ST_INCON; + return 0; +} + +static COMSTACK unix_accept(COMSTACK h) +{ + COMSTACK cnew; + unix_state *state, *st = (unix_state *)h->cprivate; + + TRC(fprintf(stderr, "unix_accept\n")); + if (h->state == CS_ST_INCON) + { + if (!(cnew = (COMSTACK)xmalloc(sizeof(*cnew)))) + { + h->cerrno = CSYSERR; + close(h->newfd); + h->newfd = -1; + return 0; + } + memcpy(cnew, h, sizeof(*h)); + cnew->iofile = h->newfd; + cnew->io_pending = 0; + if (!(state = (unix_state *) + (cnew->cprivate = xmalloc(sizeof(unix_state))))) + { + h->cerrno = CSYSERR; + if (h->newfd != -1) + { + close(h->newfd); + h->newfd = -1; + } + return 0; + } + if (!(cnew->blocking&1) && + (fcntl(cnew->iofile, F_SETFL, O_NONBLOCK) < 0) + ) + { + h->cerrno = CSYSERR; + if (h->newfd != -1) + { + close(h->newfd); + h->newfd = -1; + } + xfree (cnew); + xfree (state); + return 0; + } + h->newfd = -1; + state->altbuf = 0; + state->altsize = state->altlen = 0; + state->towrite = state->written = -1; + state->complete = st->complete; + memcpy(&state->addr, &st->addr, sizeof(state->addr)); + cnew->state = CS_ST_ACCEPT; + cnew->event = CS_NONE; + h->state = CS_ST_IDLE; + + h = cnew; + } + if (h->state == CS_ST_ACCEPT) + { + } + else + { + h->cerrno = CSOUTSTATE; + return 0; + } + h->io_pending = 0; + h->state = CS_ST_DATAXFER; + h->event = CS_DATA; + return h; +} + +#define CS_UNIX_BUFCHUNK 4096 + +/* + * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, + * 0=connection closed. + */ +static int unix_get(COMSTACK h, char **buf, int *bufsize) +{ + unix_state *sp = (unix_state *)h->cprivate; + char *tmpc; + int tmpi, berlen, rest, req, tomove; + int hasread = 0, res; + + TRC(fprintf(stderr, "unix_get: bufsize=%d\n", *bufsize)); + if (sp->altlen) /* switch buffers */ + { + TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, + (unsigned) sp->altbuf)); + tmpc = *buf; + tmpi = *bufsize; + *buf = sp->altbuf; + *bufsize = sp->altsize; + hasread = sp->altlen; + sp->altlen = 0; + sp->altbuf = tmpc; + sp->altsize = tmpi; + } + h->io_pending = 0; + while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) + { + if (!*bufsize) + { + if (!(*buf = (char *)xmalloc(*bufsize = CS_UNIX_BUFCHUNK))) + return -1; + } + else if (*bufsize - hasread < CS_UNIX_BUFCHUNK) + if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) + return -1; + res = recv(h->iofile, *buf + hasread, CS_UNIX_BUFCHUNK, 0); + TRC(fprintf(stderr, " recv res=%d, hasread=%d\n", res, hasread)); + if (res < 0) + { + if (yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif + || yaz_errno() == EINPROGRESS + ) + { + h->io_pending = CS_WANT_READ; + break; + } + else if (yaz_errno() == 0) + continue; + else + return -1; + } + else if (!res) + return hasread; + hasread += res; + } + TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", + hasread, berlen)); + /* move surplus buffer (or everything if we didn't get a BER rec.) */ + if (hasread > berlen) + { + tomove = req = hasread - berlen; + rest = tomove % CS_UNIX_BUFCHUNK; + if (rest) + req += CS_UNIX_BUFCHUNK - rest; + if (!sp->altbuf) + { + if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) + return -1; + } else if (sp->altsize < req) + if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) + return -1; + TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, + (unsigned) sp->altbuf)); + memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); + } + if (berlen < CS_UNIX_BUFCHUNK - 1) + *(*buf + berlen) = '\0'; + return berlen ? berlen : 1; +} + + + +/* + * Returns 1, 0 or -1 + * In nonblocking mode, you must call again with same buffer while + * return value is 1. + */ +static int unix_put(COMSTACK h, char *buf, int size) +{ + int res; + struct unix_state *state = (struct unix_state *)h->cprivate; + + TRC(fprintf(stderr, "unix_put: size=%d\n", size)); + h->io_pending = 0; + h->event = CS_DATA; + if (state->towrite < 0) + { + state->towrite = size; + state->written = 0; + } + else if (state->towrite != size) + { + h->cerrno = CSWRONGBUF; + return -1; + } + while (state->towrite > state->written) + { + if ((res = + send(h->iofile, buf + state->written, size - + state->written, +#ifdef MSG_NOSIGNAL + MSG_NOSIGNAL +#else + 0 +#endif + )) < 0) + { + if ( + yaz_errno() == EWOULDBLOCK +#ifdef EAGAIN +#if EAGAIN != EWOULDBLOCK + || yaz_errno() == EAGAIN +#endif +#endif + ) + { + TRC(fprintf(stderr, " Flow control stop\n")); + h->io_pending = CS_WANT_WRITE; + return 1; + } + h->cerrno = CSYSERR; + return -1; + } + state->written += res; + TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", + res, state->written, size)); + } + state->towrite = state->written = -1; + TRC(fprintf(stderr, " Ok\n")); + return 0; +} + +static int unix_close(COMSTACK h) +{ + unix_state *sp = (struct unix_state *)h->cprivate; + + TRC(fprintf(stderr, "unix_close\n")); + if (h->iofile != -1) + { + close(h->iofile); + } + if (sp->altbuf) + xfree(sp->altbuf); + xfree(sp); + xfree(h); + return 0; +} + +static char *unix_addrstr(COMSTACK h) +{ + unix_state *sp = (struct unix_state *)h->cprivate; + char *buf = sp->buf; + sprintf(buf, "unix:%s", sp->addr.sun_path); + return buf; +} + +static int unix_set_blocking(COMSTACK p, int blocking) +{ + unsigned long flag; + + if (p->blocking == blocking) + return 1; + flag = fcntl(p->iofile, F_GETFL, 0); + if(!blocking) + flag = flag & ~O_NONBLOCK; + else + flag = flag | O_NONBLOCK; + if (fcntl(p->iofile, F_SETFL, flag) < 0) + return 0; + p->blocking = blocking; + return 1; +} +#endif /* WIN32 */ +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/version.c b/dependencies/yaz-2.1.28/src/version.c new file mode 100644 index 0000000..e2527cb --- /dev/null +++ b/dependencies/yaz-2.1.28/src/version.c @@ -0,0 +1,39 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: version.c,v 1.4 2005/06/25 15:46:06 adam Exp $ + */ + +/** + * \file version.c + * \brief Implements YAZ version utilities. + */ + +/** + * \mainpage The YAZ Toolkit. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include + +unsigned long yaz_version(char *version_str, char *sys_str) +{ + if (version_str) + strcpy(version_str, YAZ_VERSION); + if (sys_str) + strcpy(sys_str, ""); + return YAZ_VERSIONL; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/waislen.c b/dependencies/yaz-2.1.28/src/waislen.c new file mode 100644 index 0000000..567eaaf --- /dev/null +++ b/dependencies/yaz-2.1.28/src/waislen.c @@ -0,0 +1,41 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: waislen.c,v 1.4 2005/06/25 15:46:06 adam Exp $ + */ +/** + * \file waislen.c + * \brief Implements WAIS package handling + */ + +#include +#include +#include +/* + * Return length of WAIS package or 0 + */ +int completeWAIS(const unsigned char *buf, int len) +{ + int i, lval = 0; + + if (len < 25) + return 0; + if (*buf != '0') + return 0; + /* calculate length */ + for (i = 0; i < 10; i++) + lval = lval * 10 + (buf[i] - '0'); + lval += 25; + if (len >= lval) + return lval; + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/wrbuf.c b/dependencies/yaz-2.1.28/src/wrbuf.c new file mode 100644 index 0000000..d8bd9f8 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/wrbuf.c @@ -0,0 +1,237 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: wrbuf.c,v 1.12 2006/08/28 12:34:41 adam Exp $ + */ + +/** + * \file wrbuf.c + * \brief Implements WRBUF (growing buffer) + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +WRBUF wrbuf_alloc(void) +{ + WRBUF n; + + if (!(n = (WRBUF)xmalloc(sizeof(*n)))) + abort(); + n->buf = 0; + n->size = 0; + n->pos = 0; + return n; +} + +void wrbuf_free(WRBUF b, int free_buf) +{ + if (free_buf && b->buf) + xfree(b->buf); + xfree(b); +} + +void wrbuf_rewind(WRBUF b) +{ + b->pos = 0; +} + +int wrbuf_grow(WRBUF b, int minsize) +{ + int togrow; + + if (!b->size) + togrow = 1024; + else + togrow = b->size; + if (togrow < minsize) + togrow = minsize; + if (b->size && !(b->buf =(char *)xrealloc(b->buf, b->size += togrow))) + abort(); + else if (!b->size && !(b->buf = (char *)xmalloc(b->size = togrow))) + abort(); + return 0; +} + +int wrbuf_write(WRBUF b, const char *buf, int size) +{ + if (size <= 0) + return 0; + if (b->pos + size >= b->size) + wrbuf_grow(b, size); + memcpy(b->buf + b->pos, buf, size); + b->pos += size; + return 0; +} + +int wrbuf_puts(WRBUF b, const char *buf) +{ + wrbuf_write(b, buf, strlen(buf)+1); /* '\0'-terminate as well */ + (b->pos)--; /* don't include '\0' in count */ + return 0; +} + +int wrbuf_puts_replace_char(WRBUF b, const char *buf, + const char from, const char to) +{ + while(*buf){ + if (*buf == from) + wrbuf_putc(b, to); + else + wrbuf_putc(b, *buf); + buf++; + } + wrbuf_putc(b, 0); + (b->pos)--; /* don't include '\0' in count */ + return 0; +} + +void wrbuf_chop_right(WRBUF b) +{ + while (b->pos && b->buf[b->pos-1] == ' ') + { + (b->pos)--; + b->buf[b->pos] = '\0'; + } +} + +int wrbuf_xmlputs(WRBUF b, const char *cp) +{ + return wrbuf_xmlputs_n(b, cp, strlen(cp)); +} + +int wrbuf_xmlputs_n(WRBUF b, const char *cp, int size) +{ + while (--size >= 0) + { + /* only TAB,CR,LF of ASCII CTRL are allowed in XML 1.0! */ + if (*cp >= 0 && *cp <= 31) + if (*cp != 9 && *cp != 10 && *cp != 13) + { + cp++; /* we silently ignore (delete) these.. */ + continue; + } + switch(*cp) + { + case '<': + wrbuf_puts(b, "<"); + break; + case '>': + wrbuf_puts(b, ">"); + break; + case '&': + wrbuf_puts(b, "&"); + break; + case '"': + wrbuf_puts(b, """); + break; + case '\'': + wrbuf_puts(b, "'"); + break; + default: + wrbuf_putc(b, *cp); + } + cp++; + } + wrbuf_putc(b, 0); + (b->pos)--; + return 0; +} + +void wrbuf_printf(WRBUF b, const char *fmt, ...) +{ + va_list ap; + char buf[4096]; + + va_start(ap, fmt); +#ifdef WIN32 + _vsnprintf(buf, sizeof(buf)-1, fmt, ap); +#else +/* !WIN32 */ +#if HAVE_VSNPRINTF + vsnprintf(buf, sizeof(buf)-1, fmt, ap); +#else + vsprintf(buf, fmt, ap); +#endif +#endif + wrbuf_puts (b, buf); + + va_end(ap); +} + +static int wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf, + int size, int cdata) +{ + if (cd) + { + char outbuf[12]; + size_t inbytesleft = size; + const char *inp = buf; + while (inbytesleft) + { + size_t outbytesleft = sizeof(outbuf); + char *outp = outbuf; + size_t r = yaz_iconv(cd, (char**) &inp, &inbytesleft, + &outp, &outbytesleft); + if (r == (size_t) (-1)) + { + int e = yaz_iconv_error(cd); + if (e != YAZ_ICONV_E2BIG) + break; + } + if (cdata) + wrbuf_xmlputs_n(b, outbuf, outp - outbuf); + else + wrbuf_write(b, outbuf, outp - outbuf); + } + } + else + { + if (cdata) + wrbuf_xmlputs_n(b, buf, size); + else + wrbuf_write(b, buf, size); + } + return wrbuf_len(b); +} + +int wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, int size) +{ + return wrbuf_iconv_write_x(b, cd, buf, size, 0); +} + +int wrbuf_iconv_puts(WRBUF b, yaz_iconv_t cd, const char *strz) +{ + return wrbuf_iconv_write(b, cd, strz, strlen(strz)); +} + +int wrbuf_iconv_putchar(WRBUF b, yaz_iconv_t cd, int ch) +{ + char buf[1]; + buf[0] = ch; + return wrbuf_iconv_write(b, cd, buf, 1); +} + +int wrbuf_iconv_write_cdata(WRBUF b, yaz_iconv_t cd, const char *buf, int size) +{ + return wrbuf_iconv_write_x(b, cd, buf, size, 1); +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/xcqlutil.c b/dependencies/yaz-2.1.28/src/xcqlutil.c new file mode 100644 index 0000000..2360a98 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/xcqlutil.c @@ -0,0 +1,243 @@ +/* $Id: xcqlutil.c,v 1.6 2005/06/25 15:46:06 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE. +*/ + +/** + * \file xcqlutil.c + * \brief Implements CQL to XCQL conversion. + */ + +#include +#include +#include + +#include + +static void pr_n(const char *buf, + void (*pr)(const char *buf, void *client_data), + void *client_data, int n) +{ + int i; + for (i = 0; i': + (*pr)(">", client_data); + break; + default: + bf[0] = *src; + bf[1] = 0; + (*pr)(bf, client_data); + } + src++; + } +} + +static void prefixes(struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data, int level) +{ + int head = 0; + if (cn->u.st.index_uri) + { + pr_n("\n", pr, client_data, level); + head = 1; + + pr_n("\n", pr, client_data, level+2); + pr_n("", pr, client_data, level+4); + pr_cdata(cn->u.st.index_uri, pr, client_data); + pr_n("\n", pr, client_data, 0); + pr_n("\n", pr, client_data, level+2); + } + if (cn->u.st.relation_uri && cn->u.st.relation) + { + if (!head) + pr_n("\n", pr, client_data, level); + pr_n("\n", pr, client_data, level+2); + pr_n("", pr, client_data, level+4); + pr_cdata("rel", pr, client_data); + pr_n("\n", pr, client_data, 0); + pr_n("", pr, client_data, level+4); + pr_cdata(cn->u.st.relation_uri, pr, client_data); + pr_n("\n", pr, client_data, 0); + pr_n("\n", pr, client_data, level+2); + } + if (head) + pr_n("\n", pr, client_data, level); +} + +static void cql_to_xml_mod(struct cql_node *m, + void (*pr)(const char *buf, void *client_data), + void *client_data, int level) +{ + if (m) + { + pr_n("\n", pr, client_data, level); + for (; m; m = m->u.st.modifiers) + { + pr_n("\n", pr, client_data, level+2); + pr_n("", pr, client_data, level+4); + pr_cdata(m->u.st.index, pr, client_data); + pr_n("\n", pr, client_data, 0); + if (m->u.st.relation) + { + pr_n("", pr, client_data, level+4); + pr_cdata(m->u.st.relation, pr, client_data); + pr_n("\n", pr, client_data, 0); + } + if (m->u.st.term) + { + pr_n("", pr, client_data, level+4); + pr_cdata(m->u.st.term, pr, client_data); + pr_n("\n", pr, client_data, 0); + } + pr_n("\n", pr, client_data, level+2); + } + pr_n("\n", pr, client_data, level); + } +} + +static void cql_to_xml_r(struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data, int level) +{ + if (!cn) + return; + switch (cn->which) + { + case CQL_NODE_ST: + pr_n("\n", pr, client_data, level); + prefixes(cn, pr, client_data, level+2); + if (cn->u.st.index) + { + pr_n("", pr, client_data, level+2); + pr_cdata(cn->u.st.index, pr, client_data); + pr_n("\n", pr, client_data, 0); + } + if (cn->u.st.relation) + { + pr_n("\n", pr, client_data, level+2); + pr_n("", pr, client_data, level+4); + if (cn->u.st.relation_uri) + pr_cdata("rel.", pr, client_data); + pr_cdata(cn->u.st.relation, pr, client_data); + pr_n("\n", pr, client_data, 0); + + if (cn->u.st.relation_uri) + { + pr_n("", pr, client_data, level+4); + pr_cdata(cn->u.st.relation_uri, pr, client_data); + pr_n("\n", pr, client_data, 0); + } + cql_to_xml_mod(cn->u.st.modifiers, + pr, client_data, level+4); + + pr_n("\n", pr, client_data, level+2); + } + if (cn->u.st.term) + { + pr_n("", pr, client_data, level+2); + pr_cdata(cn->u.st.term, pr, client_data); + pr_n("\n", pr, client_data, 0); + } + pr_n("\n", pr, client_data, level); + break; + case CQL_NODE_BOOL: + pr_n("\n", pr, client_data, level); + if (cn->u.boolean.value) + { + pr_n("\n", pr, client_data, level+2); + + pr_n("", pr, client_data, level+4); + pr_cdata(cn->u.boolean.value, pr, client_data); + pr_n("\n", pr, client_data, 0); + + cql_to_xml_mod(cn->u.boolean.modifiers, + pr, client_data, level+4); + + pr_n("\n", pr, client_data, level+2); + } + if (cn->u.boolean.left) + { + printf ("%*s\n", level+2, ""); + cql_to_xml_r(cn->u.boolean.left, pr, client_data, level+4); + printf ("%*s\n", level+2, ""); + } + if (cn->u.boolean.right) + { + printf ("%*s\n", level+2, ""); + cql_to_xml_r(cn->u.boolean.right, pr, client_data, level+4); + printf ("%*s\n", level+2, ""); + } + pr_n("\n", pr, client_data, level); + } +} + +void cql_to_xml(struct cql_node *cn, + void (*pr)(const char *buf, void *client_data), + void *client_data) +{ + cql_to_xml_r(cn, pr, client_data, 0); +} + +void cql_to_xml_stdio(struct cql_node *cn, FILE *f) +{ + cql_to_xml(cn, cql_fputs, f); +} + +void cql_buf_write_handler (const char *b, void *client_data) +{ + struct cql_buf_write_info *info = (struct cql_buf_write_info *)client_data; + int l = strlen(b); + if (info->off < 0 || (info->off + l >= info->max)) + { + info->off = -1; + return; + } + memcpy (info->buf + info->off, b, l); + info->off += l; +} + +int cql_to_xml_buf(struct cql_node *cn, char *out, int max) +{ + struct cql_buf_write_info info; + info.off = 0; + info.max = max; + info.buf = out; + cql_to_xml(cn, cql_buf_write_handler, &info); + if (info.off >= 0) + info.buf[info.off] = '\0'; + return info.off; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/xmalloc.c b/dependencies/yaz-2.1.28/src/xmalloc.c new file mode 100644 index 0000000..09ac8d7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/xmalloc.c @@ -0,0 +1,348 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * All rights reserved. + * + * $Id: xmalloc.c,v 1.7 2006/04/21 10:28:07 adam Exp $ + */ +/** + * \file xmalloc.c + * \brief Implements malloc interface. + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include +#include + +#ifndef TRACE_XMALLOC +#define TRACE_XMALLOC 1 +#endif + +static int log_level=0; +static int log_level_initialized=0; + +#if TRACE_XMALLOC > 1 + +static const unsigned char head[] = {88, 77, 66, 55, 44, 33, 22, 11}; +static const unsigned char tail[] = {11, 22, 33, 44, 55, 66, 77, 88}; +static const unsigned char freed[] = {11, 22, 33, 44, 55, 66, 77, 88}; + +struct dmalloc_info { + int len; + char file[16]; + int line; + struct dmalloc_info *next; + struct dmalloc_info *prev; +}; + +struct dmalloc_info *dmalloc_list = 0; + + +void *xmalloc_d(size_t nbytes, const char *file, int line) +{ + char *res; + struct dmalloc_info *dinfo; + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (!(res = (char*) malloc(nbytes + sizeof(*dinfo)+16*sizeof(char)))) + return 0; + dinfo = (struct dmalloc_info *) res; + strncpy (dinfo->file, file, sizeof(dinfo->file)-1); + dinfo->file[sizeof(dinfo->file)-1] = '\0'; + dinfo->line = line; + dinfo->len = nbytes; + + dinfo->prev = 0; + dinfo->next = dmalloc_list; + if (dinfo->next) + dinfo->next->prev = dinfo; + dmalloc_list = dinfo; + + memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); + res += sizeof(*dinfo) + 8*sizeof(char); + memcpy(res + nbytes, tail, 8*sizeof(char)); + return res; +} + +void xfree_d(void *ptr, const char *file, int line) +{ + struct dmalloc_info *dinfo; + + if (!ptr) + return; + dinfo = (struct dmalloc_info *) + ((char*)ptr - 8*sizeof(char) - sizeof(*dinfo)); + if (memcmp(head, (char*) ptr - 8*sizeof(char), 8*sizeof(char))) + { + yaz_log(YLOG_FATAL, "xfree_d bad head, %s:%d, %p", file, line, ptr); + abort(); + } + if (memcmp((char*) ptr + dinfo->len, tail, 8*sizeof(char))) + { + yaz_log(YLOG_FATAL, "xfree_d bad tail, %s:%d, %p", file, line, ptr); + abort(); + } + if (dinfo->prev) + dinfo->prev->next = dinfo->next; + else + dmalloc_list = dinfo->next; + if (dinfo->next) + dinfo->next->prev = dinfo->prev; + memcpy ((char*) ptr - 8*sizeof(char), freed, 8*sizeof(char)); + free(dinfo); + return; +} + +void *xrealloc_d(void *p, size_t nbytes, const char *file, int line) +{ + struct dmalloc_info *dinfo; + char *ptr = (char*) p; + char *res; + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (!ptr) + { + if (!nbytes) + return 0; + res = (char *) malloc(nbytes + sizeof(*dinfo) + 16*sizeof(char)); + } + else + { + if (memcmp(head, ptr - 8*sizeof(char), 8*sizeof(char))) + { + yaz_log(YLOG_FATAL, "xrealloc_d bad head, %s:%d, %p", + file, line, ptr); + abort(); + } + dinfo = (struct dmalloc_info *) (ptr-8*sizeof(char) - sizeof(*dinfo)); + if (memcmp(ptr + dinfo->len, tail, 8*sizeof(char))) + { + yaz_log(YLOG_FATAL, "xrealloc_d bad tail, %s:%d, %p", + file, line, ptr); + abort(); + } + if (dinfo->prev) + dinfo->prev->next = dinfo->next; + else + dmalloc_list = dinfo->next; + if (dinfo->next) + dinfo->next->prev = dinfo->prev; + + if (!nbytes) + { + free (dinfo); + return 0; + } + res = (char *) + realloc(dinfo, nbytes + sizeof(*dinfo) + 16*sizeof(char)); + } + if (!res) + return 0; + dinfo = (struct dmalloc_info *) res; + strncpy (dinfo->file, file, sizeof(dinfo->file)-1); + dinfo->file[sizeof(dinfo->file)-1] = '\0'; + dinfo->line = line; + dinfo->len = nbytes; + + dinfo->prev = 0; + dinfo->next = dmalloc_list; + if (dmalloc_list) + dmalloc_list->prev = dinfo; + dmalloc_list = dinfo; + + memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); + res += sizeof(*dinfo) + 8*sizeof(char); + memcpy(res + nbytes, tail, 8*sizeof(char)); + return res; +} + +void *xcalloc_d(size_t nmemb, size_t size, const char *file, int line) +{ + char *res; + struct dmalloc_info *dinfo; + size_t nbytes = nmemb * size; + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (!(res = (char*) calloc(1, nbytes+sizeof(*dinfo)+16*sizeof(char)))) + return 0; + dinfo = (struct dmalloc_info *) res; + strncpy (dinfo->file, file, sizeof(dinfo->file)-1); + dinfo->file[sizeof(dinfo->file)-1] = '\0'; + dinfo->line = line; + dinfo->len = nbytes; + + dinfo->prev = 0; + dinfo->next = dmalloc_list; + if (dinfo->next) + dinfo->next->prev = dinfo; + dmalloc_list = dinfo; + + memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); + res += sizeof(*dinfo) + 8*sizeof(char); + memcpy(res + nbytes, tail, 8*sizeof(char)); + return res; +} + +void xmalloc_trav_d(const char *file, int line) +{ + size_t size = 0; + struct dmalloc_info *dinfo = dmalloc_list; + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + yaz_log (log_level, "malloc_trav %s:%d", file, line); + while (dinfo) + { + yaz_log (log_level, " %20s:%d p=%p size=%d", dinfo->file, dinfo->line, + ((char*) dinfo)+sizeof(*dinfo)+8*sizeof(char), dinfo->len); + size += dinfo->len; + dinfo = dinfo->next; + } + yaz_log (log_level, "total bytes %ld", (long) size); +} + +#else +/* TRACE_XMALLOC <= 1 */ +#define xrealloc_d(o, x, f, l) realloc(o, x) +#define xmalloc_d(x, f, l) malloc(x) +#define xcalloc_d(x,y, f, l) calloc(x,y) +#define xfree_d(x, f, l) free(x) +#define xmalloc_trav_d(f, l) +#endif + +void xmalloc_trav_f(const char *s, const char *file, int line) +{ + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + xmalloc_trav_d(file, line); +} + +void *xrealloc_f (void *o, size_t size, const char *file, int line) +{ + void *p = xrealloc_d (o, size, file, line); + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if(log_level) + yaz_log (log_level, + "%s:%d: xrealloc(s=%ld) %p -> %p", file, line, (long) size, o, p); + if (!p) + { + yaz_log (YLOG_FATAL|YLOG_ERRNO, "Out of memory, realloc (%ld bytes)", + (long) size); + exit(1); + } + return p; +} + +void *xmalloc_f (size_t size, const char *file, int line) +{ + void *p = xmalloc_d (size, file, line); + + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (log_level) + yaz_log (log_level, "%s:%d: xmalloc(s=%ld) %p", file, line, + (long) size, p); + + if (!p) + { + yaz_log (YLOG_FATAL, "Out of memory - malloc (%ld bytes)", + (long) size); + exit (1); + } + return p; +} + +void *xcalloc_f (size_t nmemb, size_t size, const char *file, int line) +{ + void *p = xcalloc_d (nmemb, size, file, line); + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (log_level) + yaz_log (log_level, "%s:%d: xcalloc(s=%ld) %p", file, line, + (long) size, p); + + if (!p) + { + yaz_log (YLOG_FATAL, "Out of memory - calloc (%ld, %ld)", + (long) nmemb, (long) size); + exit (1); + } + return p; +} + +char *xstrdup_f (const char *s, const char *file, int line) +{ + char *p = (char *)xmalloc_d (strlen(s)+1, file, line); + if (!log_level_initialized) + { + log_level=yaz_log_module_level("malloc"); + log_level_initialized=1; + } + + if (log_level) + yaz_log (log_level, "%s:%d: xstrdup(s=%ld) %p", file, line, + (long) strlen(s)+1, p); + + strcpy (p, s); + return p; +} + +void xfree_f(void *p, const char *file, int line) +{ + if (!p) + return ; + if (log_level) + yaz_log (log_level, "%s:%d: xfree %p", file, line, p); + xfree_d(p, file, line); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/xmlquery.c b/dependencies/yaz-2.1.28/src/xmlquery.c new file mode 100644 index 0000000..ca81a09 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/xmlquery.c @@ -0,0 +1,788 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * All rights reserved. + * + * $Id: xmlquery.c,v 1.10 2006/07/06 10:17:54 adam Exp $ + */ + +/** \file xmlquery.c + \brief Query / XML conversions +*/ + +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#include + +#include +#include + +void yaz_query2xml_attribute_element(const Z_AttributeElement *element, + xmlNodePtr parent) +{ + char formstr[30]; + const char *setname = 0; + + if (element->attributeSet) + { + oident *attrset; + attrset = oid_getentbyoid (element->attributeSet); + setname = attrset->desc; + } + + if (element->which == Z_AttributeValue_numeric) + { + xmlNodePtr node = xmlNewChild(parent, 0, BAD_CAST "attr", 0); + + if (setname) + xmlNewProp(node, BAD_CAST "set", BAD_CAST setname); + + sprintf(formstr, "%d", *element->attributeType); + xmlNewProp(node, BAD_CAST "type", BAD_CAST formstr); + + sprintf(formstr, "%d", *element->value.numeric); + xmlNewProp(node, BAD_CAST "value", BAD_CAST formstr); + } + else if (element->which == Z_AttributeValue_complex) + { + int i; + for (i = 0; ivalue.complex->num_list; i++) + { + xmlNodePtr node = xmlNewChild(parent, 0, BAD_CAST "attr", 0); + + if (setname) + xmlNewProp(node, BAD_CAST "set", BAD_CAST setname); + + sprintf(formstr, "%d", *element->attributeType); + xmlNewProp(node, BAD_CAST "type", BAD_CAST formstr); + + if (element->value.complex->list[i]->which == + Z_StringOrNumeric_string) + { + xmlNewProp(node, BAD_CAST "value", BAD_CAST + element->value.complex->list[i]->u.string); + } + else if (element->value.complex->list[i]->which == + Z_StringOrNumeric_numeric) + { + sprintf(formstr, "%d", + *element->value.complex->list[i]->u.numeric); + xmlNewProp(node, BAD_CAST "value", BAD_CAST formstr); + } + } + } +} + + +xmlNodePtr yaz_query2xml_term(const Z_Term *term, + xmlNodePtr parent) +{ + xmlNodePtr t = 0; + xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "term", 0); + char formstr[20]; + const char *type = 0; + + switch (term->which) + { + case Z_Term_general: + type = "general"; + t = xmlNewTextLen(BAD_CAST term->u.general->buf, term->u.general->len); + break; + case Z_Term_numeric: + type = "numeric"; + sprintf(formstr, "%d", *term->u.numeric); + t = xmlNewText(BAD_CAST formstr); + break; + case Z_Term_characterString: + type = "string"; + t = xmlNewText(BAD_CAST term->u.characterString); + break; + case Z_Term_oid: + type = "oid"; + break; + case Z_Term_dateTime: + type = "dateTime"; + break; + case Z_Term_external: + type = "external"; + break; + case Z_Term_integerAndUnit: + type ="integerAndUnit"; + break; + case Z_Term_null: + type = "null"; + break; + default: + break; + } + if (t) /* got a term node ? */ + xmlAddChild(node, t); + if (type) + xmlNewProp(node, BAD_CAST "type", BAD_CAST type); + return node; +} + +xmlNodePtr yaz_query2xml_apt(const Z_AttributesPlusTerm *zapt, + xmlNodePtr parent) +{ + xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "apt", 0); + int num_attributes = zapt->attributes->num_attributes; + int i; + for (i = 0; iattributes->attributes[i], node); + yaz_query2xml_term(zapt->term, node); + + return node; +} + + +void yaz_query2xml_operator(Z_Operator *op, xmlNodePtr node) +{ + const char *type = 0; + switch(op->which) + { + case Z_Operator_and: + type = "and"; + break; + case Z_Operator_or: + type = "or"; + break; + case Z_Operator_and_not: + type = "not"; + break; + case Z_Operator_prox: + type = "prox"; + break; + default: + return; + } + xmlNewProp(node, BAD_CAST "type", BAD_CAST type); + + if (op->which == Z_Operator_prox) + { + char formstr[30]; + + if (op->u.prox->exclusion) + { + if (*op->u.prox->exclusion) + xmlNewProp(node, BAD_CAST "exclusion", BAD_CAST "true"); + else + xmlNewProp(node, BAD_CAST "exclusion", BAD_CAST "false"); + } + sprintf(formstr, "%d", *op->u.prox->distance); + xmlNewProp(node, BAD_CAST "distance", BAD_CAST formstr); + + if (*op->u.prox->ordered) + xmlNewProp(node, BAD_CAST "ordered", BAD_CAST "true"); + else + xmlNewProp(node, BAD_CAST "ordered", BAD_CAST "false"); + + sprintf(formstr, "%d", *op->u.prox->relationType); + xmlNewProp(node, BAD_CAST "relationType", BAD_CAST formstr); + + switch(op->u.prox->which) + { + case Z_ProximityOperator_known: + sprintf(formstr, "%d", *op->u.prox->u.known); + xmlNewProp(node, BAD_CAST "knownProximityUnit", + BAD_CAST formstr); + break; + case Z_ProximityOperator_private: + default: + xmlNewProp(node, BAD_CAST "privateProximityUnit", + BAD_CAST "private"); + break; + } + } +} + +xmlNodePtr yaz_query2xml_rpnstructure(const Z_RPNStructure *zs, + xmlNodePtr parent) +{ + if (zs->which == Z_RPNStructure_complex) + { + Z_Complex *zc = zs->u.complex; + + xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "operator", 0); + if (zc->roperator) + yaz_query2xml_operator(zc->roperator, node); + yaz_query2xml_rpnstructure(zc->s1, node); + yaz_query2xml_rpnstructure(zc->s2, node); + return node; + } + else if (zs->which == Z_RPNStructure_simple) + { + if (zs->u.simple->which == Z_Operand_APT) + return yaz_query2xml_apt(zs->u.simple->u.attributesPlusTerm, + parent); + else if (zs->u.simple->which == Z_Operand_resultSetId) + return xmlNewChild(parent, /* NS */ 0, BAD_CAST "rset", + BAD_CAST zs->u.simple->u.resultSetId); + } + return 0; +} + +xmlNodePtr yaz_query2xml_rpn(const Z_RPNQuery *rpn, xmlNodePtr parent) +{ + oident *attrset = oid_getentbyoid (rpn->attributeSetId); + if (attrset && attrset->value) + xmlNewProp(parent, BAD_CAST "set", BAD_CAST attrset->desc); + return yaz_query2xml_rpnstructure(rpn->RPNStructure, parent); +} + +xmlNodePtr yaz_query2xml_ccl(const Odr_oct *ccl, xmlNodePtr node) +{ + return 0; +} + +xmlNodePtr yaz_query2xml_z3958(const Odr_oct *ccl, xmlNodePtr node) +{ + return 0; +} + +xmlNodePtr yaz_query2xml_cql(const char *cql, xmlNodePtr node) +{ + return 0; +} + +void yaz_rpnquery2xml(const Z_RPNQuery *rpn, xmlDocPtr *docp) +{ + Z_Query query; + + query.which = Z_Query_type_1; + query.u.type_1 = (Z_RPNQuery *) rpn; + yaz_query2xml(&query, docp); +} + +void yaz_query2xml(const Z_Query *q, xmlDocPtr *docp) +{ + xmlNodePtr top_node, q_node = 0, child_node = 0; + + assert(q); + assert(docp); + + top_node = xmlNewNode(0, BAD_CAST "query"); + + switch (q->which) + { + case Z_Query_type_1: + case Z_Query_type_101: + q_node = xmlNewChild(top_node, 0, BAD_CAST "rpn", 0); + child_node = yaz_query2xml_rpn(q->u.type_1, q_node); + break; + case Z_Query_type_2: + q_node = xmlNewChild(top_node, 0, BAD_CAST "ccl", 0); + child_node = yaz_query2xml_ccl(q->u.type_2, q_node); + break; + case Z_Query_type_100: + q_node = xmlNewChild(top_node, 0, BAD_CAST "z39.58", 0); + child_node = yaz_query2xml_z3958(q->u.type_100, q_node); + break; + case Z_Query_type_104: + if (q->u.type_104->which == Z_External_CQL) + { + q_node = xmlNewChild(top_node, 0, BAD_CAST "cql", 0); + child_node = yaz_query2xml_cql(q->u.type_104->u.cql, q_node); + } + } + if (child_node && q_node) + { + *docp = xmlNewDoc(BAD_CAST "1.0"); + xmlDocSetRootElement(*docp, top_node); /* make it top node in doc */ + } + else + { + *docp = 0; + xmlFreeNode(top_node); + } +} + +bool_t *boolVal(ODR odr, const char *str) +{ + if (*str == '\0' || strchr("0fF", *str)) + return odr_intdup(odr, 0); + return odr_intdup(odr, 1); +} + +int *intVal(ODR odr, const char *str) +{ + return odr_intdup(odr, atoi(str)); +} + +void yaz_xml2query_operator(const xmlNode *ptr, Z_Operator **op, + ODR odr, int *error_code, const char **addinfo) +{ + const char *type = (const char *) + xmlGetProp((xmlNodePtr) ptr, BAD_CAST "type"); + if (!type) + { + *error_code = 1; + *addinfo = "no operator type"; + return; + } + *op = (Z_Operator*) odr_malloc(odr, sizeof(Z_Operator)); + if (!strcmp(type, "and")) + { + (*op)->which = Z_Operator_and; + (*op)->u.op_and = odr_nullval(); + } + else if (!strcmp(type, "or")) + { + (*op)->which = Z_Operator_or; + (*op)->u.op_or = odr_nullval(); + } + else if (!strcmp(type, "not")) + { + (*op)->which = Z_Operator_and_not; + (*op)->u.and_not = odr_nullval(); + } + else if (!strcmp(type, "prox")) + { + const char *atval; + Z_ProximityOperator *pop = (Z_ProximityOperator *) + odr_malloc(odr, sizeof(Z_ProximityOperator)); + + (*op)->which = Z_Operator_prox; + (*op)->u.prox = pop; + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "exclusion"); + if (atval) + pop->exclusion = boolVal(odr, atval); + else + pop->exclusion = 0; + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "distance"); + if (atval) + pop->distance = intVal(odr, atval); + else + pop->distance = odr_intdup(odr, 1); + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "ordered"); + if (atval) + pop->ordered = boolVal(odr, atval); + else + pop->ordered = odr_intdup(odr, 1); + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "relationType"); + if (atval) + pop->relationType = intVal(odr, atval); + else + pop->relationType = + odr_intdup(odr, Z_ProximityOperator_Prox_lessThanOrEqual); + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "knownProximityUnit"); + if (atval) + { + pop->which = Z_ProximityOperator_known; + pop->u.known = intVal(odr, atval); + } + else + { + pop->which = Z_ProximityOperator_known; + pop->u.known = odr_intdup(odr, Z_ProxUnit_word); + } + + atval = (const char *) xmlGetProp((xmlNodePtr) ptr, + BAD_CAST "privateProximityUnit"); + if (atval) + { + pop->which = Z_ProximityOperator_private; + pop->u.zprivate = intVal(odr, atval); + } + } + else + { + *error_code = 1; + *addinfo = "bad operator type"; + } +} + +void yaz_xml2query_attribute_element(const xmlNode *ptr, + Z_AttributeElement **elem, ODR odr, + int *error_code, const char **addinfo) +{ + int i; + xmlChar *set = 0; + xmlChar *type = 0; + xmlChar *value = 0; + int num_values = 0; + struct _xmlAttr *attr; + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "set") && + attr->children && attr->children->type == XML_TEXT_NODE) + set = attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "type") && + attr->children && attr->children->type == XML_TEXT_NODE) + type = attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "value") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + value = attr->children->content; + num_values++; + } + else + { + *error_code = 1; + *addinfo = "bad attribute for attr content"; + return; + } + } + if (!type) + { + *error_code = 1; + *addinfo = "missing type attribute for att content"; + return; + } + if (!value) + { + *error_code = 1; + *addinfo = "missing value attribute for att content"; + return; + } + + *elem = (Z_AttributeElement *) odr_malloc(odr, sizeof(**elem)); + if (set) + (*elem)->attributeSet = yaz_str_to_z3950oid(odr, CLASS_ATTSET, + (const char *)set); + else + (*elem)->attributeSet = 0; + (*elem)->attributeType = intVal(odr, (const char *) type); + + /* looks like a number ? */ + for (i = 0; value[i] && value[i] >= '0' && value[i] <= '9'; i++) + ; + if (num_values > 1 || value[i]) + { /* multiple values or string, so turn to complex attribute */ + (*elem)->which = Z_AttributeValue_complex; + (*elem)->value.complex = + (Z_ComplexAttribute*) odr_malloc(odr, sizeof(Z_ComplexAttribute)); + (*elem)->value.complex->num_list = num_values; + (*elem)->value.complex->list = (Z_StringOrNumeric **) + odr_malloc(odr, sizeof(Z_StringOrNumeric*) * num_values); + + /* second pass over attr values */ + i = 0; + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "value") && + attr->children && attr->children->type == XML_TEXT_NODE) + { + const char *val = (const char *) attr->children->content; + assert (i < num_values); + (*elem)->value.complex->list[i] = (Z_StringOrNumeric *) + odr_malloc(odr, sizeof(Z_StringOrNumeric)); + (*elem)->value.complex->list[i]->which = + Z_StringOrNumeric_string; + (*elem)->value.complex->list[i]->u.string = + odr_strdup(odr, val); + i++; + } + } + (*elem)->value.complex->num_semanticAction = 0; + (*elem)->value.complex->semanticAction = 0; + } + else + { /* good'ld numeric value */ + (*elem)->which = Z_AttributeValue_numeric; + (*elem)->value.numeric = intVal(odr, (const char *) value); + } +} + +char *strVal(const xmlNode *ptr_cdata, ODR odr) +{ + return nmem_text_node_cdata(ptr_cdata, odr->mem); +} + +void yaz_xml2query_term(const xmlNode *ptr, + Z_Term **term, ODR odr, + int *error_code, const char **addinfo) +{ + xmlChar *type = 0; + struct _xmlAttr *attr; + char *cdata = strVal(ptr->children, odr); + + for (attr = ptr->properties; attr; attr = attr->next) + { + if (!xmlStrcmp(attr->name, BAD_CAST "type") && + attr->children && attr->children->type == XML_TEXT_NODE) + type = attr->children->content; + else + { + *error_code = 1; + *addinfo = "bad attribute for attr content"; + return; + } + } + *term = (Z_Term *) odr_malloc(odr, sizeof(Z_Term)); + + if (!type || !xmlStrcmp(type, BAD_CAST "general")) + { + (*term)->which = Z_Term_general; + (*term)->u.general = + odr_create_Odr_oct(odr, (unsigned char *)cdata, strlen(cdata)); + } + else if (!xmlStrcmp(type, BAD_CAST "numeric")) + { + (*term)->which = Z_Term_numeric; + (*term)->u.numeric = intVal(odr, cdata); + } + else if (!xmlStrcmp(type, BAD_CAST "string")) + { + (*term)->which = Z_Term_characterString; + (*term)->u.characterString = cdata; + } + else if (!xmlStrcmp(type, BAD_CAST "oid")) + { + *error_code = 1; + *addinfo = "unhandled term type: oid"; + } + else if (!xmlStrcmp(type, BAD_CAST "dateTime")) + { + *error_code = 1; + *addinfo = "unhandled term type: dateTime"; + } + else if (!xmlStrcmp(type, BAD_CAST "integerAndUnit")) + { + *error_code = 1; + *addinfo = "unhandled term type: integerAndUnit"; + } + else if (!xmlStrcmp(type, BAD_CAST "null")) + { + (*term)->which = Z_Term_null; + (*term)->u.null = odr_nullval(); + } + else + { + *error_code = 1; + *addinfo = "unhandled term type"; + } +} + +void yaz_xml2query_apt(const xmlNode *ptr_apt, + Z_AttributesPlusTerm **zapt, ODR odr, + int *error_code, const char **addinfo) +{ + const xmlNode *ptr = ptr_apt->children; + int i, num_attr = 0; + + *zapt = (Z_AttributesPlusTerm *) + odr_malloc(odr, sizeof(Z_AttributesPlusTerm)); + + /* deal with attributes */ + (*zapt)->attributes = (Z_AttributeList*) + odr_malloc(odr, sizeof(Z_AttributeList)); + + /* how many attributes? */ + for (; ptr; ptr = ptr->next) + if (ptr->type == XML_ELEMENT_NODE) + { + if (!xmlStrcmp(ptr->name, BAD_CAST "attr")) + num_attr++; + else + break; + } + + /* allocate and parse for real */ + (*zapt)->attributes->num_attributes = num_attr; + (*zapt)->attributes->attributes = (Z_AttributeElement **) + odr_malloc(odr, sizeof(Z_AttributeElement*) * num_attr); + + i = 0; + ptr = ptr_apt->children; + for (; ptr; ptr = ptr->next) + if (ptr->type == XML_ELEMENT_NODE) + { + if (!xmlStrcmp(ptr->name, BAD_CAST "attr")) + { + yaz_xml2query_attribute_element( + ptr, &(*zapt)->attributes->attributes[i], odr, + error_code, addinfo); + i++; + } + else + break; + } + if (ptr && ptr->type == XML_ELEMENT_NODE) + { + if (!xmlStrcmp(ptr->name, BAD_CAST "term")) + { + /* deal with term */ + yaz_xml2query_term(ptr, &(*zapt)->term, odr, error_code, addinfo); + } + else + { + *error_code = 1; + *addinfo = "bad element in apt content"; + } + } + else + { + *error_code = 1; + *addinfo = "missing term node in apt content"; + } +} + +void yaz_xml2query_rset(const xmlNode *ptr, Z_ResultSetId **rset, + ODR odr, int *error_code, const char **addinfo) +{ + if (ptr->children) + { + *rset = strVal(ptr->children, odr); + } + else + { + *error_code = 1; + *addinfo = "missing rset content"; + } +} + +void yaz_xml2query_rpnstructure(const xmlNode *ptr, Z_RPNStructure **zs, + ODR odr, int *error_code, const char **addinfo) +{ + while (ptr && ptr->type != XML_ELEMENT_NODE) + ptr = ptr->next; + + if (!ptr || ptr->type != XML_ELEMENT_NODE) + { + *error_code = 1; + *addinfo = "missing rpn operator, rset, apt node"; + return; + } + *zs = (Z_RPNStructure *) odr_malloc(odr, sizeof(Z_RPNStructure)); + if (!xmlStrcmp(ptr->name, BAD_CAST "operator")) + { + Z_Complex *zc = odr_malloc(odr, sizeof(Z_Complex)); + + (*zs)->which = Z_RPNStructure_complex; + (*zs)->u.complex = zc; + + yaz_xml2query_operator(ptr, &zc->roperator, odr, error_code, addinfo); + + ptr = ptr->children; + while (ptr && ptr->type != XML_ELEMENT_NODE) + ptr = ptr->next; + yaz_xml2query_rpnstructure(ptr, &zc->s1, odr, error_code, addinfo); + if (ptr) + ptr = ptr->next; + while (ptr && ptr->type != XML_ELEMENT_NODE) + ptr = ptr->next; + yaz_xml2query_rpnstructure(ptr, &zc->s2, odr, error_code, addinfo); + } + else + { + Z_Operand *s = (Z_Operand *) odr_malloc(odr, sizeof(Z_Operand)); + (*zs)->which = Z_RPNStructure_simple; + (*zs)->u.simple = s; + if (!xmlStrcmp(ptr->name, BAD_CAST "apt")) + { + s->which = Z_Operand_APT; + yaz_xml2query_apt(ptr, &s->u.attributesPlusTerm, + odr, error_code, addinfo); + } + else if (!xmlStrcmp(ptr->name, BAD_CAST "rset")) + { + s->which = Z_Operand_resultSetId; + yaz_xml2query_rset(ptr, &s->u.resultSetId, + odr, error_code, addinfo); + } + else + { + *error_code = 1; + *addinfo = "bad element: expected binary, apt or rset"; + } + } +} + +void yaz_xml2query_rpn(const xmlNode *ptr, Z_RPNQuery **query, ODR odr, + int *error_code, const char **addinfo) +{ + const char *set = (const char *) + xmlGetProp((xmlNodePtr) ptr, BAD_CAST "set"); + + *query = (Z_RPNQuery*) odr_malloc(odr, sizeof(Z_RPNQuery)); + if (set) + (*query)->attributeSetId = yaz_str_to_z3950oid(odr, CLASS_ATTSET, set); + else + (*query)->attributeSetId = 0; + yaz_xml2query_rpnstructure(ptr->children, &(*query)->RPNStructure, + odr, error_code, addinfo); +} + +static void yaz_xml2query_(const xmlNode *ptr, Z_Query **query, ODR odr, + int *error_code, const char **addinfo) +{ + if (ptr && ptr->type == XML_ELEMENT_NODE && + !xmlStrcmp(ptr->name, BAD_CAST "query")) + { + const char *type; + ptr = ptr->children; + while (ptr && ptr->type != XML_ELEMENT_NODE) + ptr = ptr->next; + if (!ptr || ptr->type != XML_ELEMENT_NODE) + { + *error_code = 1; + *addinfo = "missing query content"; + return; + } + type = (const char *) ptr->name; + + *query = (Z_Query*) odr_malloc(odr, sizeof(Z_Query)); + if (!type || !strcmp(type, "rpn")) + { + (*query)->which = Z_Query_type_1; + yaz_xml2query_rpn(ptr, &(*query)->u.type_1, odr, + error_code, addinfo); + } + else if (!strcmp(type, "ccl")) + { + *error_code = 1; + *addinfo = "ccl not supported yet"; + } + else if (!strcmp(type, "z39.58")) + { + *error_code = 1; + *addinfo = "z39.58 not supported yet"; + } + else if (!strcmp(type, "cql")) + { + *error_code = 1; + *addinfo = "cql not supported yet"; + } + else + { + *error_code = 1; + *addinfo = "unsupported query type"; + } + } + else + { + *error_code = 1; + *addinfo = "missing query element"; + } +} + +void yaz_xml2query(const void *xmlnodep, Z_Query **query, ODR odr, + int *error_code, const char **addinfo) +{ + yaz_xml2query_(xmlnodep, query, odr, error_code, addinfo); +} + +/* YAZ_HAVE_XML2 */ +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/src/yaz-ccl.c b/dependencies/yaz-2.1.28/src/yaz-ccl.c new file mode 100644 index 0000000..4dbd70b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/yaz-ccl.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: yaz-ccl.c,v 1.4 2005/06/25 15:46:06 adam Exp $ + */ +/** + * \file yaz-ccl.c + * \brief Implements CCL node tree to RPN converson. + */ + +#include +#include +#include +#include + +#include +#include + +Z_RPNQuery *ccl_rpn_query (ODR o, struct ccl_rpn_node *p) +{ + YAZ_PQF_Parser parser = yaz_pqf_create(); + WRBUF wr = wrbuf_alloc(); + Z_RPNQuery *q; + + ccl_pquery(wr, p); + + q = yaz_pqf_parse(parser, o, wrbuf_buf(wr)); + + wrbuf_free(wr, 1); + yaz_pqf_destroy(parser); + return q; +} + +Z_AttributesPlusTerm *ccl_scan_query (ODR o, struct ccl_rpn_node *p) +{ + YAZ_PQF_Parser parser = yaz_pqf_create(); + WRBUF wr = wrbuf_alloc(); + Z_AttributesPlusTerm *q; + Odr_oid *setp; + + ccl_pquery(wr, p); + + q = yaz_pqf_scan(parser, o, &setp, wrbuf_buf(wr)); + + wrbuf_free(wr, 1); + yaz_pqf_destroy(parser); + return q; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/z-accdes1.c b/dependencies/yaz-2.1.28/src/z-accdes1.c new file mode 100644 index 0000000..0d7eea9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-accdes1.c @@ -0,0 +1,39 @@ +/** \file z-accdes1.c + \brief ASN.1 Module AccessControlFormat-des-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_DES_RN_Object (ODR o, Z_DES_RN_Object **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DES_RN_Object_challenge, + (Odr_fun) z_DRNType, "challenge"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DES_RN_Object_response, + (Odr_fun) z_DRNType, "response"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DRNType (ODR o, Z_DRNType **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_octetstring, + &(*p)->userId, ODR_CONTEXT, 1, 1, "userId") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->salt, ODR_CONTEXT, 2, 1, "salt") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->randomNumber, ODR_CONTEXT, 3, 0, "randomNumber") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-accform1.c b/dependencies/yaz-2.1.28/src/z-accform1.c new file mode 100644 index 0000000..209d28b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-accform1.c @@ -0,0 +1,154 @@ +/** \file z-accform1.c + \brief ASN.1 Module AccessControlFormat-prompt-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_PromptObject1 (ODR o, Z_PromptObject1 **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptObject1_challenge, + (Odr_fun) z_Challenge1, "challenge"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptObject1_response, + (Odr_fun) z_Response1, "response"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ChallengeUnit1 (ODR o, Z_ChallengeUnit1 **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ChallengeUnit1_character, + (Odr_fun) z_InternationalString, "character"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ChallengeUnit1_encrypted, + (Odr_fun) z_Encryption, "encrypted"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PromptId, + &(*p)->promptId, ODR_CONTEXT, 1, 0, "promptId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->defaultResponse, ODR_CONTEXT, 2, 1, "defaultResponse") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "promptInfo") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->regExpr, ODR_CONTEXT, 4, 1, "regExpr") && + odr_implicit_tag (o, odr_null, + &(*p)->responseRequired, ODR_CONTEXT, 5, 1, "responseRequired") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->allowedValues, + &(*p)->num_allowedValues, "allowedValues") || odr_ok(o)) && + odr_implicit_tag (o, odr_null, + &(*p)->shouldSave, ODR_CONTEXT, 7, 1, "shouldSave") && + odr_implicit_tag (o, odr_integer, + &(*p)->dataType, ODR_CONTEXT, 8, 1, "dataType") && + odr_implicit_tag (o, z_External, + &(*p)->diagnostic, ODR_CONTEXT, 9, 1, "diagnostic") && + odr_sequence_end (o); +} + +int z_Challenge1 (ODR o, Z_Challenge1 **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ChallengeUnit1, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ResponseUnit1 (ODR o, Z_ResponseUnit1 **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResponseUnit1_string, + (Odr_fun) z_InternationalString, "string"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResponseUnit1_accept, + (Odr_fun) odr_bool, "accept"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ResponseUnit1_acknowledge, + (Odr_fun) odr_null, "acknowledge"}, + {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_ResponseUnit1_diagnostic, + (Odr_fun) z_DiagRec, "diagnostic"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ResponseUnit1_encrypted, + (Odr_fun) z_Encryption, "encrypted"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PromptId, + &(*p)->promptId, ODR_CONTEXT, 1, 0, "promptId") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "promptResponse") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} + +int z_Response1 (ODR o, Z_Response1 **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ResponseUnit1, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PromptIdEnumeratedPrompt (ODR o, Z_PromptIdEnumeratedPrompt **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->suggestedString, ODR_CONTEXT, 2, 1, "suggestedString") && + odr_sequence_end (o); +} + +int z_PromptId (ODR o, Z_PromptId **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptId_enumeratedPrompt, + (Odr_fun) z_PromptIdEnumeratedPrompt, "enumeratedPrompt"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptId_nonEnumeratedPrompt, + (Odr_fun) z_InternationalString, "nonEnumeratedPrompt"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Encryption (ODR o, Z_Encryption **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_octetstring, + &(*p)->cryptType, ODR_CONTEXT, 1, 1, "cryptType") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->credential, ODR_CONTEXT, 2, 1, "credential") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->data, ODR_CONTEXT, 3, 0, "data") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-acckrb1.c b/dependencies/yaz-2.1.28/src/z-acckrb1.c new file mode 100644 index 0000000..eefa2e4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-acckrb1.c @@ -0,0 +1,51 @@ +/** \file z-acckrb1.c + \brief ASN.1 Module AccessControlFormat-krb-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_KRBObject (ODR o, Z_KRBObject **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_KRBObject_challenge, + (Odr_fun) z_KRBRequest, "challenge"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_KRBObject_response, + (Odr_fun) z_KRBResponse, "response"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_KRBRequest (ODR o, Z_KRBRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->service, ODR_CONTEXT, 1, 0, "service") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->instance, ODR_CONTEXT, 2, 1, "instance") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->realm, ODR_CONTEXT, 3, 1, "realm") && + odr_sequence_end (o); +} + +int z_KRBResponse (ODR o, Z_KRBResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->userid, ODR_CONTEXT, 1, 1, "userid") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->ticket, ODR_CONTEXT, 2, 0, "ticket") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-charneg.c b/dependencies/yaz-2.1.28/src/z-charneg.c new file mode 100644 index 0000000..cecdd5f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-charneg.c @@ -0,0 +1,234 @@ +/** \file z-charneg.c + \brief ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_CharSetandLanguageNegotiation (ODR o, Z_CharSetandLanguageNegotiation **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_CharSetandLanguageNegotiation_proposal, + (Odr_fun) z_OriginProposal, "proposal"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_CharSetandLanguageNegotiation_response, + (Odr_fun) z_TargetResponse, "response"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_OriginProposal_0 (ODR o, Z_OriginProposal_0 **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_OriginProposal_0_iso2022, + (Odr_fun) z_Iso2022, "iso2022"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OriginProposal_0_iso10646, + (Odr_fun) z_Iso10646, "iso10646"}, + {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_OriginProposal_0_private, + (Odr_fun) z_PrivateCharacterSet, "zprivate"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_OriginProposal (ODR o, Z_OriginProposal **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_OriginProposal_0, &(*p)->proposedCharSets, + &(*p)->num_proposedCharSets, "proposedCharSets") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_LanguageCode, &(*p)->proposedlanguages, + &(*p)->num_proposedlanguages, "proposedlanguages") || odr_ok(o)) && + odr_implicit_tag (o, odr_bool, + &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") && + odr_sequence_end (o); +} + +int z_TargetResponse (ODR o, Z_TargetResponse **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_TargetResponse_iso2022, + (Odr_fun) z_Iso2022, "iso2022"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_TargetResponse_iso10646, + (Odr_fun) z_Iso10646, "iso10646"}, + {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_TargetResponse_private, + (Odr_fun) z_PrivateCharacterSet, "zprivate"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_TargetResponse_none, + (Odr_fun) odr_null, "none"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "selectedCharSets") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_LanguageCode, + &(*p)->selectedLanguage, ODR_CONTEXT, 2, 1, "selectedLanguage") && + odr_implicit_tag (o, odr_bool, + &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") && + odr_sequence_end (o); +} + +int z_PrivateCharacterSetViaOid (ODR o, Z_PrivateCharacterSetViaOid **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PrivateCharacterSet (ODR o, Z_PrivateCharacterSet **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PrivateCharacterSet_viaOid, + (Odr_fun) z_PrivateCharacterSetViaOid, "viaOid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PrivateCharacterSet_externallySpecified, + (Odr_fun) z_External, "externallySpecified"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PrivateCharacterSet_previouslyAgreedUpon, + (Odr_fun) odr_null, "previouslyAgreedUpon"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Iso2022OriginProposal (ODR o, Z_Iso2022OriginProposal **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Environment, + &(*p)->proposedEnvironment, ODR_CONTEXT, 0, 1, "proposedEnvironment") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->proposedSets, + &(*p)->num_proposedSets, "proposedSets") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + odr_sequence_of(o, (Odr_fun) z_InitialSet, &(*p)->proposedInitialSets, + &(*p)->num_proposedInitialSets, "proposedInitialSets") && + odr_implicit_tag (o, z_LeftAndRight, + &(*p)->proposedLeftAndRight, ODR_CONTEXT, 3, 0, "proposedLeftAndRight") && + odr_sequence_end (o); +} + +int z_Iso2022TargetResponse (ODR o, Z_Iso2022TargetResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Environment, + &(*p)->selectedEnvironment, ODR_CONTEXT, 0, 0, "selectedEnvironment") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->selectedSets, + &(*p)->num_selectedSets, "selectedSets") && + odr_implicit_tag (o, z_InitialSet, + &(*p)->selectedinitialSet, ODR_CONTEXT, 2, 0, "selectedinitialSet") && + odr_implicit_tag (o, z_LeftAndRight, + &(*p)->selectedLeftAndRight, ODR_CONTEXT, 3, 0, "selectedLeftAndRight") && + odr_sequence_end (o); +} + +int z_Iso2022 (ODR o, Z_Iso2022 **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Iso2022_originProposal, + (Odr_fun) z_Iso2022OriginProposal, "originProposal"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Iso2022_targetResponse, + (Odr_fun) z_Iso2022TargetResponse, "targetResponse"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Environment (ODR o, Z_Environment **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Environment_sevenBit, + (Odr_fun) odr_null, "sevenBit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Environment_eightBit, + (Odr_fun) odr_null, "eightBit"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_InitialSet (ODR o, Z_InitialSet **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->g0, ODR_CONTEXT, 0, 1, "g0") && + odr_implicit_tag (o, odr_integer, + &(*p)->g1, ODR_CONTEXT, 1, 1, "g1") && + odr_implicit_tag (o, odr_integer, + &(*p)->g2, ODR_CONTEXT, 2, 1, "g2") && + odr_implicit_tag (o, odr_integer, + &(*p)->g3, ODR_CONTEXT, 3, 1, "g3") && + odr_implicit_tag (o, odr_integer, + &(*p)->c0, ODR_CONTEXT, 4, 0, "c0") && + odr_implicit_tag (o, odr_integer, + &(*p)->c1, ODR_CONTEXT, 5, 1, "c1") && + odr_sequence_end (o); +} + +int z_LeftAndRight (ODR o, Z_LeftAndRight **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->gLeft, ODR_CONTEXT, 3, 0, "gLeft") && + odr_implicit_tag (o, odr_integer, + &(*p)->gRight, ODR_CONTEXT, 4, 1, "gRight") && + odr_sequence_end (o); +} + +int z_Iso10646 (ODR o, Z_Iso10646 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->collections, ODR_CONTEXT, 1, 1, "collections") && + odr_implicit_tag (o, odr_oid, + &(*p)->encodingLevel, ODR_CONTEXT, 2, 0, "encodingLevel") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-core.c b/dependencies/yaz-2.1.28/src/z-core.c new file mode 100644 index 0000000..974a278 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-core.c @@ -0,0 +1,1625 @@ +/** \file z-core.c + \brief ASN.1 Module Z39-50-APDU-1995 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_APDU (ODR o, Z_APDU **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 20, Z_APDU_initRequest, + (Odr_fun) z_InitRequest, "initRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 21, Z_APDU_initResponse, + (Odr_fun) z_InitResponse, "initResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 22, Z_APDU_searchRequest, + (Odr_fun) z_SearchRequest, "searchRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 23, Z_APDU_searchResponse, + (Odr_fun) z_SearchResponse, "searchResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 24, Z_APDU_presentRequest, + (Odr_fun) z_PresentRequest, "presentRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 25, Z_APDU_presentResponse, + (Odr_fun) z_PresentResponse, "presentResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 26, Z_APDU_deleteResultSetRequest, + (Odr_fun) z_DeleteResultSetRequest, "deleteResultSetRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 27, Z_APDU_deleteResultSetResponse, + (Odr_fun) z_DeleteResultSetResponse, "deleteResultSetResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_APDU_accessControlRequest, + (Odr_fun) z_AccessControlRequest, "accessControlRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 29, Z_APDU_accessControlResponse, + (Odr_fun) z_AccessControlResponse, "accessControlResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 30, Z_APDU_resourceControlRequest, + (Odr_fun) z_ResourceControlRequest, "resourceControlRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 31, Z_APDU_resourceControlResponse, + (Odr_fun) z_ResourceControlResponse, "resourceControlResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 32, Z_APDU_triggerResourceControlRequest, + (Odr_fun) z_TriggerResourceControlRequest, "triggerResourceControlRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 33, Z_APDU_resourceReportRequest, + (Odr_fun) z_ResourceReportRequest, "resourceReportRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 34, Z_APDU_resourceReportResponse, + (Odr_fun) z_ResourceReportResponse, "resourceReportResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, + (Odr_fun) z_ScanRequest, "scanRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, + (Odr_fun) z_ScanResponse, "scanResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 43, Z_APDU_sortRequest, + (Odr_fun) z_SortRequest, "sortRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 44, Z_APDU_sortResponse, + (Odr_fun) z_SortResponse, "sortResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest, + (Odr_fun) z_Segment, "segmentRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 46, Z_APDU_extendedServicesRequest, + (Odr_fun) z_ExtendedServicesRequest, "extendedServicesRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 47, Z_APDU_extendedServicesResponse, + (Odr_fun) z_ExtendedServicesResponse, "extendedServicesResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close, + (Odr_fun) z_Close, "close"}, + {ODR_IMPLICIT, ODR_CONTEXT, 49, Z_APDU_duplicateDetectionRequest, + (Odr_fun) z_DuplicateDetectionRequest, "duplicateDetectionRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 50, Z_APDU_duplicateDetectionResponse, + (Odr_fun) z_DuplicateDetectionResponse, "duplicateDetectionResponse"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_InitRequest (ODR o, Z_InitRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + z_ProtocolVersion(o, &(*p)->protocolVersion, 0, "protocolVersion") && + z_Options(o, &(*p)->options, 0, "options") && + odr_implicit_tag (o, odr_integer, + &(*p)->preferredMessageSize, ODR_CONTEXT, 5, 0, "preferredMessageSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->maximumRecordSize, ODR_CONTEXT, 6, 0, "maximumRecordSize") && + odr_explicit_tag (o, z_IdAuthentication, + &(*p)->idAuthentication, ODR_CONTEXT, 7, 1, "idAuthentication") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationId, ODR_CONTEXT, 110, 1, "implementationId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationName, ODR_CONTEXT, 111, 1, "implementationName") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationVersion, ODR_CONTEXT, 112, 1, "implementationVersion") && + odr_explicit_tag (o, z_External, + &(*p)->userInformationField, ODR_CONTEXT, 11, 1, "userInformationField") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_IdPass (ODR o, Z_IdPass **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->groupId, ODR_CONTEXT, 0, 1, "groupId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->userId, ODR_CONTEXT, 1, 1, "userId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->password, ODR_CONTEXT, 2, 1, "password") && + odr_sequence_end (o); +} + +int z_IdAuthentication (ODR o, Z_IdAuthentication **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_IdAuthentication_open, + (Odr_fun) odr_visiblestring, "open"}, + {-1, -1, -1, Z_IdAuthentication_idPass, + (Odr_fun) z_IdPass, "idPass"}, + {-1, -1, -1, Z_IdAuthentication_anonymous, + (Odr_fun) odr_null, "anonymous"}, + {-1, -1, -1, Z_IdAuthentication_other, + (Odr_fun) z_External, "other"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_InitResponse (ODR o, Z_InitResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + z_ProtocolVersion(o, &(*p)->protocolVersion, 0, "protocolVersion") && + z_Options(o, &(*p)->options, 0, "options") && + odr_implicit_tag (o, odr_integer, + &(*p)->preferredMessageSize, ODR_CONTEXT, 5, 0, "preferredMessageSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->maximumRecordSize, ODR_CONTEXT, 6, 0, "maximumRecordSize") && + odr_implicit_tag (o, odr_bool, + &(*p)->result, ODR_CONTEXT, 12, 0, "result") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationId, ODR_CONTEXT, 110, 1, "implementationId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationName, ODR_CONTEXT, 111, 1, "implementationName") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->implementationVersion, ODR_CONTEXT, 112, 1, "implementationVersion") && + odr_explicit_tag (o, z_External, + &(*p)->userInformationField, ODR_CONTEXT, 11, 1, "userInformationField") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ProtocolVersion (ODR o, Z_ProtocolVersion **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_bitstring, p, ODR_CONTEXT, 3, opt, name); +} + +int z_Options (ODR o, Z_Options **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_bitstring, p, ODR_CONTEXT, 4, opt, name); +} + +int z_SearchRequest (ODR o, Z_SearchRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->smallSetUpperBound, ODR_CONTEXT, 13, 0, "smallSetUpperBound") && + odr_implicit_tag (o, odr_integer, + &(*p)->largeSetLowerBound, ODR_CONTEXT, 14, 0, "largeSetLowerBound") && + odr_implicit_tag (o, odr_integer, + &(*p)->mediumSetPresentNumber, ODR_CONTEXT, 15, 0, "mediumSetPresentNumber") && + odr_implicit_tag (o, odr_bool, + &(*p)->replaceIndicator, ODR_CONTEXT, 16, 0, "replaceIndicator") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetName, ODR_CONTEXT, 17, 0, "resultSetName") && + odr_implicit_settag (o, ODR_CONTEXT, 18) && + odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->databaseNames, + &(*p)->num_databaseNames, "databaseNames") && + odr_explicit_tag (o, z_ElementSetNames, + &(*p)->smallSetElementSetNames, ODR_CONTEXT, 100, 1, "smallSetElementSetNames") && + odr_explicit_tag (o, z_ElementSetNames, + &(*p)->mediumSetElementSetNames, ODR_CONTEXT, 101, 1, "mediumSetElementSetNames") && + odr_implicit_tag (o, odr_oid, + &(*p)->preferredRecordSyntax, ODR_CONTEXT, 104, 1, "preferredRecordSyntax") && + odr_explicit_tag (o, z_Query, + &(*p)->query, ODR_CONTEXT, 21, 0, "query") && + odr_implicit_tag (o, z_OtherInformation, + &(*p)->additionalSearchInfo, ODR_CONTEXT, 203, 1, "additionalSearchInfo") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_Query (ODR o, Z_Query **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_Query_type_0, + (Odr_fun) z_ANY_type_0, "type_0"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Query_type_1, + (Odr_fun) z_RPNQuery, "type_1"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Query_type_2, + (Odr_fun) odr_octetstring, "type_2"}, + {ODR_EXPLICIT, ODR_CONTEXT, 100, Z_Query_type_100, + (Odr_fun) odr_octetstring, "type_100"}, + {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_Query_type_101, + (Odr_fun) z_RPNQuery, "type_101"}, + {ODR_EXPLICIT, ODR_CONTEXT, 102, Z_Query_type_102, + (Odr_fun) odr_octetstring, "type_102"}, + {ODR_IMPLICIT, ODR_CONTEXT, 104, Z_Query_type_104, + (Odr_fun) z_External, "type_104"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_RPNQuery (ODR o, Z_RPNQuery **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_AttributeSetId(o, &(*p)->attributeSetId, 0, "attributeSetId") && + z_RPNStructure(o, &(*p)->RPNStructure, 0, "RPNStructure") && + odr_sequence_end (o); +} + +int z_Complex (ODR o, Z_Complex **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_RPNStructure(o, &(*p)->s1, 0, "s1") && + z_RPNStructure(o, &(*p)->s2, 0, "s2") && + z_Operator(o, &(*p)->roperator, 0, "roperator") && + odr_sequence_end (o); +} + +int z_RPNStructure (ODR o, Z_RPNStructure **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_RPNStructure_simple, + (Odr_fun) z_Operand, "simple"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RPNStructure_complex, + (Odr_fun) z_Complex, "complex"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Operand (ODR o, Z_Operand **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_Operand_APT, + (Odr_fun) z_AttributesPlusTerm, "attributesPlusTerm"}, + {-1, -1, -1, Z_Operand_resultSetId, + (Odr_fun) z_ResultSetId, "resultSetId"}, + {-1, -1, -1, Z_Operand_resultAttr, + (Odr_fun) z_ResultSetPlusAttributes, "resultAttr"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AttributesPlusTerm (ODR o, Z_AttributesPlusTerm **p, int opt, const char *name) +{ + if (!odr_implicit_settag (o, ODR_CONTEXT, 102) || + !odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name); + return + z_AttributeList(o, &(*p)->attributes, 0, "attributes") && + z_Term(o, &(*p)->term, 0, "term") && + odr_sequence_end (o); +} + +int z_ResultSetPlusAttributes (ODR o, Z_ResultSetPlusAttributes **p, int opt, const char *name) +{ + if (!odr_implicit_settag (o, ODR_CONTEXT, 214) || + !odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name); + return + z_ResultSetId(o, &(*p)->resultSet, 0, "resultSet") && + z_AttributeList(o, &(*p)->attributes, 0, "attributes") && + odr_sequence_end (o); +} + +int z_AttributeList (ODR o, Z_AttributeList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + odr_implicit_settag (o, ODR_CONTEXT, 44); + if (odr_sequence_of (o, (Odr_fun) z_AttributeElement, &(*p)->attributes, + &(*p)->num_attributes, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Term (ODR o, Z_Term **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_Term_general, + (Odr_fun) odr_octetstring, "general"}, + {ODR_IMPLICIT, ODR_CONTEXT, 215, Z_Term_numeric, + (Odr_fun) odr_integer, "numeric"}, + {ODR_IMPLICIT, ODR_CONTEXT, 216, Z_Term_characterString, + (Odr_fun) z_InternationalString, "characterString"}, + {ODR_IMPLICIT, ODR_CONTEXT, 217, Z_Term_oid, + (Odr_fun) odr_oid, "oid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 218, Z_Term_dateTime, + (Odr_fun) odr_generalizedtime, "dateTime"}, + {ODR_IMPLICIT, ODR_CONTEXT, 219, Z_Term_external, + (Odr_fun) z_External, "external"}, + {ODR_IMPLICIT, ODR_CONTEXT, 220, Z_Term_integerAndUnit, + (Odr_fun) z_IntUnit, "integerAndUnit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 221, Z_Term_null, + (Odr_fun) odr_null, "null"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Operator (ODR o, Z_Operator **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Operator_and, + (Odr_fun) odr_null, "op_and"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Operator_or, + (Odr_fun) odr_null, "op_or"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Operator_and_not, + (Odr_fun) odr_null, "and_not"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Operator_prox, + (Odr_fun) z_ProximityOperator, "prox"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_constructed_begin(o, p, ODR_CONTEXT, 46, 0)) + return odr_missing(o, opt, name); + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name) && + odr_constructed_end(o)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ComplexAttribute (ODR o, Z_ComplexAttribute **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->list, + &(*p)->num_list, "list") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->semanticAction, + &(*p)->num_semanticAction, "semanticAction") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_AttributeElement (ODR o, Z_AttributeElement **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 121, Z_AttributeValue_numeric, + (Odr_fun) odr_integer, "numeric"}, + {ODR_IMPLICIT, ODR_CONTEXT, 224, Z_AttributeValue_complex, + (Odr_fun) z_ComplexAttribute, "complex"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->attributeSet, ODR_CONTEXT, 1, 1, "attributeSet") && + odr_implicit_tag (o, odr_integer, + &(*p)->attributeType, ODR_CONTEXT, 120, 0, "attributeType") && + odr_choice (o, arm, &(*p)->value, &(*p)->which, 0) && + odr_sequence_end (o); +} + +int z_ProximityOperator (ODR o, Z_ProximityOperator **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProximityOperator_known, + (Odr_fun) z_ProxUnit, "known"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProximityOperator_private, + (Odr_fun) odr_integer, "zprivate"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->exclusion, ODR_CONTEXT, 1, 1, "exclusion") && + odr_implicit_tag (o, odr_integer, + &(*p)->distance, ODR_CONTEXT, 2, 0, "distance") && + odr_implicit_tag (o, odr_bool, + &(*p)->ordered, ODR_CONTEXT, 3, 0, "ordered") && + odr_implicit_tag (o, odr_integer, + &(*p)->relationType, ODR_CONTEXT, 4, 0, "relationType") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "proximityUnitCode") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} + +int z_ProxUnit (ODR o, Z_ProxUnit **p, int opt, const char *name) +{ + return odr_integer (o, p, opt, name); +} + +int z_SearchResponse (ODR o, Z_SearchResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->resultCount, ODR_CONTEXT, 23, 0, "resultCount") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && + odr_implicit_tag (o, odr_integer, + &(*p)->nextResultSetPosition, ODR_CONTEXT, 25, 0, "nextResultSetPosition") && + odr_implicit_tag (o, odr_bool, + &(*p)->searchStatus, ODR_CONTEXT, 22, 0, "searchStatus") && + odr_implicit_tag (o, odr_integer, + &(*p)->resultSetStatus, ODR_CONTEXT, 26, 1, "resultSetStatus") && + z_PresentStatus(o, &(*p)->presentStatus, 1, "presentStatus") && + z_Records(o, &(*p)->records, 1, "records") && + odr_implicit_tag (o, z_OtherInformation, + &(*p)->additionalSearchInfo, ODR_CONTEXT, 203, 1, "additionalSearchInfo") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_RecordComposition (ODR o, Z_RecordComposition **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 19, Z_RecordComp_simple, + (Odr_fun) z_ElementSetNames, "simple"}, + {ODR_IMPLICIT, ODR_CONTEXT, 209, Z_RecordComp_complex, + (Odr_fun) z_CompSpec, "complex"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PresentRequest (ODR o, Z_PresentRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + z_ResultSetId(o, &(*p)->resultSetId, 0, "resultSetId") && + odr_implicit_tag (o, odr_integer, + &(*p)->resultSetStartPoint, ODR_CONTEXT, 30, 0, "resultSetStartPoint") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecordsRequested, ODR_CONTEXT, 29, 0, "numberOfRecordsRequested") && + odr_implicit_settag (o, ODR_CONTEXT, 212) && + (odr_sequence_of(o, (Odr_fun) z_Range, &(*p)->additionalRanges, + &(*p)->num_ranges, "additionalRanges") || odr_ok(o)) && + z_RecordComposition (o, &(*p)->recordComposition, 1, "recordComposition") && + odr_implicit_tag (o, odr_oid, + &(*p)->preferredRecordSyntax, ODR_CONTEXT, 104, 1, "preferredRecordSyntax") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxSegmentCount, ODR_CONTEXT, 204, 1, "maxSegmentCount") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxRecordSize, ODR_CONTEXT, 206, 1, "maxRecordSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxSegmentSize, ODR_CONTEXT, 207, 1, "maxSegmentSize") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_Segment (ODR o, Z_Segment **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && + odr_implicit_settag (o, ODR_CONTEXT, 0) && + odr_sequence_of(o, (Odr_fun) z_NamePlusRecord, &(*p)->segmentRecords, + &(*p)->num_segmentRecords, "segmentRecords") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_PresentResponse (ODR o, Z_PresentResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && + odr_implicit_tag (o, odr_integer, + &(*p)->nextResultSetPosition, ODR_CONTEXT, 25, 0, "nextResultSetPosition") && + z_PresentStatus(o, &(*p)->presentStatus, 0, "presentStatus") && + z_Records(o, &(*p)->records, 1, "records") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_NamePlusRecordList (ODR o, Z_NamePlusRecordList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_NamePlusRecord, &(*p)->records, + &(*p)->num_records, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DiagRecs (ODR o, Z_DiagRecs **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DiagRec, &(*p)->diagRecs, + &(*p)->num_diagRecs, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Records (ODR o, Z_Records **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_Records_DBOSD, + (Odr_fun) z_NamePlusRecordList, "databaseOrSurDiagnostics"}, + {ODR_IMPLICIT, ODR_CONTEXT, 130, Z_Records_NSD, + (Odr_fun) z_DefaultDiagFormat, "nonSurrogateDiagnostic"}, + {ODR_IMPLICIT, ODR_CONTEXT, 205, Z_Records_multipleNSD, + (Odr_fun) z_DiagRecs, "multipleNonSurDiagnostics"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_NamePlusRecord (ODR o, Z_NamePlusRecord **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_NamePlusRecord_databaseRecord, + (Odr_fun) z_External, "databaseRecord"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_NamePlusRecord_surrogateDiagnostic, + (Odr_fun) z_DiagRec, "surrogateDiagnostic"}, + {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_NamePlusRecord_startingFragment, + (Odr_fun) z_FragmentSyntax, "startingFragment"}, + {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_NamePlusRecord_intermediateFragment, + (Odr_fun) z_FragmentSyntax, "intermediateFragment"}, + {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_NamePlusRecord_finalFragment, + (Odr_fun) z_FragmentSyntax, "finalFragment"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 0, 1, "databaseName") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "record") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} + +int z_FragmentSyntax (ODR o, Z_FragmentSyntax **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_FragmentSyntax_externallyTagged, + (Odr_fun) z_External, "externallyTagged"}, + {-1, -1, -1, Z_FragmentSyntax_notExternallyTagged, + (Odr_fun) odr_octetstring, "notExternallyTagged"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DiagRec (ODR o, Z_DiagRec **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_DiagRec_defaultFormat, + (Odr_fun) z_DefaultDiagFormat, "defaultFormat"}, + {-1, -1, -1, Z_DiagRec_externallyDefined, + (Odr_fun) z_External, "externallyDefined"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DefaultDiagFormat (ODR o, Z_DefaultDiagFormat **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_DefaultDiagFormat_v2Addinfo, + (Odr_fun) odr_visiblestring, "v2Addinfo"}, + {-1, -1, -1, Z_DefaultDiagFormat_v3Addinfo, + (Odr_fun) z_InternationalString, "v3Addinfo"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_oid(o, &(*p)->diagnosticSetId, 0, "diagnosticSetId") && + odr_integer(o, &(*p)->condition, 0, "condition") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_sequence_end (o); +} + +int z_Range (ODR o, Z_Range **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->startingPosition, ODR_CONTEXT, 1, 0, "startingPosition") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecords, ODR_CONTEXT, 2, 0, "numberOfRecords") && + odr_sequence_end (o); +} + +int z_DatabaseSpecificUnit (ODR o, Z_DatabaseSpecificUnit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_DatabaseName(o, &(*p)->dbName, 0, "dbName") && + z_ElementSetName(o, &(*p)->esn, 0, "esn") && + odr_sequence_end (o); +} + +int z_DatabaseSpecific (ODR o, Z_DatabaseSpecific **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DatabaseSpecificUnit, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementSetNames (ODR o, Z_ElementSetNames **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementSetNames_generic, + (Odr_fun) z_InternationalString, "generic"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSetNames_databaseSpecific, + (Odr_fun) z_DatabaseSpecific, "databaseSpecific"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PresentStatus (ODR o, Z_PresentStatus **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 27, opt, name); +} + +int z_DbSpecific (ODR o, Z_DbSpecific **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_DatabaseName, + &(*p)->db, ODR_CONTEXT, 1, 0, "db") && + odr_implicit_tag (o, z_Specification, + &(*p)->spec, ODR_CONTEXT, 2, 0, "spec") && + odr_sequence_end (o); +} + +int z_CompSpec (ODR o, Z_CompSpec **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->selectAlternativeSyntax, ODR_CONTEXT, 1, 0, "selectAlternativeSyntax") && + odr_implicit_tag (o, z_Specification, + &(*p)->generic, ODR_CONTEXT, 2, 1, "generic") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_DbSpecific, &(*p)->dbSpecific, + &(*p)->num_dbSpecific, "dbSpecific") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntax, + &(*p)->num_recordSyntax, "recordSyntax") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_ElementSpec (ODR o, Z_ElementSpec **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSpec_elementSetName, + (Odr_fun) z_InternationalString, "elementSetName"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementSpec_externalSpec, + (Odr_fun) z_External, "externalSpec"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Specification (ODR o, Z_Specification **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Schema_oid, + (Odr_fun) odr_oid, "oid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 300, Z_Schema_uri, + (Odr_fun) z_InternationalString, "uri"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + (odr_choice (o, arm, &(*p)->schema, &(*p)->which, 0) || odr_ok(o)) && + odr_explicit_tag (o, z_ElementSpec, + &(*p)->elementSpec, ODR_CONTEXT, 2, 1, "elementSpec") && + odr_sequence_end (o); +} + +int z_DeleteResultSetRequest (ODR o, Z_DeleteResultSetRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->deleteFunction, ODR_CONTEXT, 32, 0, "deleteFunction") && + (odr_sequence_of(o, (Odr_fun) z_ResultSetId, &(*p)->resultSetList, + &(*p)->num_resultSetList, "resultSetList") || odr_ok(o)) && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_DeleteResultSetResponse (ODR o, Z_DeleteResultSetResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, z_DeleteStatus, + &(*p)->deleteOperationStatus, ODR_CONTEXT, 0, 0, "deleteOperationStatus") && + odr_implicit_tag (o, z_ListStatuses, + &(*p)->deleteListStatuses, ODR_CONTEXT, 1, 1, "deleteListStatuses") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberNotDeleted, ODR_CONTEXT, 34, 1, "numberNotDeleted") && + odr_implicit_tag (o, z_ListStatuses, + &(*p)->bulkStatuses, ODR_CONTEXT, 35, 1, "bulkStatuses") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->deleteMessage, ODR_CONTEXT, 36, 1, "deleteMessage") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ListStatus (ODR o, Z_ListStatus **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ResultSetId(o, &(*p)->id, 0, "id") && + z_DeleteStatus(o, &(*p)->status, 0, "status") && + odr_sequence_end (o); +} + +int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ListStatus, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DeleteStatus (ODR o, Z_DeleteStatus **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 33, opt, name); +} + +int z_AccessControlRequest (ODR o, Z_AccessControlRequest **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 37, Z_AccessControlRequest_simpleForm, + (Odr_fun) odr_octetstring, "simpleForm"}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessControlRequest_externallyDefined, + (Odr_fun) z_External, "externallyDefined"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_AccessControlResponse (ODR o, Z_AccessControlResponse **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 38, Z_AccessControlResponse_simpleForm, + (Odr_fun) odr_octetstring, "simpleForm"}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessControlResponse_externallyDefined, + (Odr_fun) z_External, "externallyDefined"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && + odr_explicit_tag (o, z_DiagRec, + &(*p)->diagnostic, ODR_CONTEXT, 223, 1, "diagnostic") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ResourceControlRequest (ODR o, Z_ResourceControlRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_bool, + &(*p)->suspendedFlag, ODR_CONTEXT, 39, 1, "suspendedFlag") && + odr_explicit_tag (o, z_ResourceReport, + &(*p)->resourceReport, ODR_CONTEXT, 40, 1, "resourceReport") && + odr_implicit_tag (o, odr_integer, + &(*p)->partialResultsAvailable, ODR_CONTEXT, 41, 1, "partialResultsAvailable") && + odr_implicit_tag (o, odr_bool, + &(*p)->responseRequired, ODR_CONTEXT, 42, 0, "responseRequired") && + odr_implicit_tag (o, odr_bool, + &(*p)->triggeredRequestFlag, ODR_CONTEXT, 43, 1, "triggeredRequestFlag") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ResourceControlResponse (ODR o, Z_ResourceControlResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_bool, + &(*p)->continueFlag, ODR_CONTEXT, 44, 0, "continueFlag") && + odr_implicit_tag (o, odr_bool, + &(*p)->resultSetWanted, ODR_CONTEXT, 45, 1, "resultSetWanted") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_TriggerResourceControlRequest (ODR o, Z_TriggerResourceControlRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->requestedAction, ODR_CONTEXT, 46, 0, "requestedAction") && + odr_implicit_tag (o, z_ResourceReportId, + &(*p)->prefResourceReportFormat, ODR_CONTEXT, 47, 1, "prefResourceReportFormat") && + odr_implicit_tag (o, odr_bool, + &(*p)->resultSetWanted, ODR_CONTEXT, 48, 1, "resultSetWanted") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ResourceReportRequest (ODR o, Z_ResourceReportRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, z_ReferenceId, + &(*p)->opId, ODR_CONTEXT, 210, 1, "opId") && + odr_implicit_tag (o, z_ResourceReportId, + &(*p)->prefResourceReportFormat, ODR_CONTEXT, 49, 1, "prefResourceReportFormat") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ResourceReportResponse (ODR o, Z_ResourceReportResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->resourceReportStatus, ODR_CONTEXT, 50, 0, "resourceReportStatus") && + odr_explicit_tag (o, z_ResourceReport, + &(*p)->resourceReport, ODR_CONTEXT, 51, 1, "resourceReport") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ResourceReport (ODR o, Z_ResourceReport **p, int opt, const char *name) +{ + return z_External (o, p, opt, name); +} + +int z_ResourceReportId (ODR o, Z_ResourceReportId **p, int opt, const char *name) +{ + return odr_oid (o, p, opt, name); +} + +int z_ScanRequest (ODR o, Z_ScanRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->databaseNames, + &(*p)->num_databaseNames, "databaseNames") && + z_AttributeSetId(o, &(*p)->attributeSet, 1, "attributeSet") && + z_AttributesPlusTerm(o, &(*p)->termListAndStartPoint, 0, "termListAndStartPoint") && + odr_implicit_tag (o, odr_integer, + &(*p)->stepSize, ODR_CONTEXT, 5, 1, "stepSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfTermsRequested, ODR_CONTEXT, 6, 0, "numberOfTermsRequested") && + odr_implicit_tag (o, odr_integer, + &(*p)->preferredPositionInResponse, ODR_CONTEXT, 7, 1, "preferredPositionInResponse") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ScanResponse (ODR o, Z_ScanResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->stepSize, ODR_CONTEXT, 3, 1, "stepSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->scanStatus, ODR_CONTEXT, 4, 0, "scanStatus") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfEntriesReturned, ODR_CONTEXT, 5, 0, "numberOfEntriesReturned") && + odr_implicit_tag (o, odr_integer, + &(*p)->positionOfTerm, ODR_CONTEXT, 6, 1, "positionOfTerm") && + odr_implicit_tag (o, z_ListEntries, + &(*p)->entries, ODR_CONTEXT, 7, 1, "entries") && + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->attributeSet, ODR_CONTEXT, 8, 1, "attributeSet") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ListEntries (ODR o, Z_ListEntries **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_Entry, &(*p)->entries, + &(*p)->num_entries, "entries") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->nonsurrogateDiagnostics, + &(*p)->num_nonsurrogateDiagnostics, "nonsurrogateDiagnostics") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_Entry (ODR o, Z_Entry **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Entry_termInfo, + (Odr_fun) z_TermInfo, "termInfo"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Entry_surrogateDiagnostic, + (Odr_fun) z_DiagRec, "surrogateDiagnostic"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_TermInfo (ODR o, Z_TermInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_Term(o, &(*p)->term, 0, "term") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->displayTerm, ODR_CONTEXT, 0, 1, "displayTerm") && + z_AttributeList(o, &(*p)->suggestedAttributes, 1, "suggestedAttributes") && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) z_AttributesPlusTerm, &(*p)->alternativeTerm, + &(*p)->num_alternativeTerm, "alternativeTerm") || odr_ok(o)) && + odr_implicit_tag (o, odr_integer, + &(*p)->globalOccurrences, ODR_CONTEXT, 2, 1, "globalOccurrences") && + odr_implicit_tag (o, z_OccurrenceByAttributes, + &(*p)->byAttributes, ODR_CONTEXT, 3, 1, "byAttributes") && + z_OtherInformation(o, &(*p)->otherTermInfo, 1, "otherTermInfo") && + odr_sequence_end (o); +} + +int z_byDatabaseList_s (ODR o, Z_byDatabaseList_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_DatabaseName(o, &(*p)->db, 0, "db") && + odr_implicit_tag (o, odr_integer, + &(*p)->num, ODR_CONTEXT, 1, 1, "num") && + z_OtherInformation(o, &(*p)->otherDbInfo, 1, "otherDbInfo") && + odr_sequence_end (o); +} + +int z_byDatabaseList (ODR o, Z_byDatabaseList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_byDatabaseList_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_OccurrenceByAttributesElem (ODR o, Z_OccurrenceByAttributesElem **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_OccurrenceByAttributesElem_global, + (Odr_fun) odr_integer, "global"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_OccurrenceByAttributesElem_byDatabase, + (Odr_fun) z_byDatabaseList, "byDatabase"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_AttributeList, + &(*p)->attributes, ODR_CONTEXT, 1, 0, "attributes") && + (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && + z_OtherInformation(o, &(*p)->otherOccurInfo, 1, "otherOccurInfo") && + odr_sequence_end (o); +} + +int z_OccurrenceByAttributes (ODR o, Z_OccurrenceByAttributes **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_OccurrenceByAttributesElem, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortKeySpecList (ODR o, Z_SortKeySpecList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_SortKeySpec, &(*p)->specs, + &(*p)->num_specs, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortRequest (ODR o, Z_SortRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->inputResultSetNames, + &(*p)->num_inputResultSetNames, "inputResultSetNames") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->sortedResultSetName, ODR_CONTEXT, 4, 0, "sortedResultSetName") && + odr_implicit_tag (o, z_SortKeySpecList, + &(*p)->sortSequence, ODR_CONTEXT, 5, 0, "sortSequence") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_SortResponse (ODR o, Z_SortResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->sortStatus, ODR_CONTEXT, 3, 0, "sortStatus") && + odr_implicit_tag (o, odr_integer, + &(*p)->resultSetStatus, ODR_CONTEXT, 4, 1, "resultSetStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, + &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && + odr_implicit_tag (o, odr_integer, + &(*p)->resultCount, ODR_CONTEXT, 6, 1, "resultCount") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_SortKeySpec (ODR o, Z_SortKeySpec **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeySpec_abort, + (Odr_fun) odr_null, "abort"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeySpec_null, + (Odr_fun) odr_null, "null"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortKeySpec_missingValueData, + (Odr_fun) odr_octetstring, "missingValueData"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_SortElement(o, &(*p)->sortElement, 0, "sortElement") && + odr_implicit_tag (o, odr_integer, + &(*p)->sortRelation, ODR_CONTEXT, 1, 0, "sortRelation") && + odr_implicit_tag (o, odr_integer, + &(*p)->caseSensitivity, ODR_CONTEXT, 2, 0, "caseSensitivity") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "missingValueAction") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_SortDbSpecificList_s (ODR o, Z_SortDbSpecificList_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_DatabaseName(o, &(*p)->databaseName, 0, "databaseName") && + z_SortKey(o, &(*p)->dbSort, 0, "dbSort") && + odr_sequence_end (o); +} + +int z_SortDbSpecificList (ODR o, Z_SortDbSpecificList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_SortDbSpecificList_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortElement (ODR o, Z_SortElement **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_SortElement_generic, + (Odr_fun) z_SortKey, "generic"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortElement_databaseSpecific, + (Odr_fun) z_SortDbSpecificList, "databaseSpecific"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortAttributes (ODR o, Z_SortAttributes **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_AttributeSetId(o, &(*p)->id, 0, "id") && + z_AttributeList(o, &(*p)->list, 0, "list") && + odr_sequence_end (o); +} + +int z_SortKey (ODR o, Z_SortKey **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKey_sortField, + (Odr_fun) z_InternationalString, "sortField"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKey_elementSpec, + (Odr_fun) z_Specification, "elementSpec"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKey_sortAttributes, + (Odr_fun) z_SortAttributes, "sortAttributes"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ExtendedServicesRequest (ODR o, Z_ExtendedServicesRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->function, ODR_CONTEXT, 3, 0, "function") && + odr_implicit_tag (o, odr_oid, + &(*p)->packageType, ODR_CONTEXT, 4, 0, "packageType") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->packageName, ODR_CONTEXT, 5, 1, "packageName") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->userId, ODR_CONTEXT, 6, 1, "userId") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->retentionTime, ODR_CONTEXT, 7, 1, "retentionTime") && + odr_implicit_tag (o, z_Permissions, + &(*p)->permissions, ODR_CONTEXT, 8, 1, "permissions") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->description, ODR_CONTEXT, 9, 1, "description") && + odr_implicit_tag (o, z_External, + &(*p)->taskSpecificParameters, ODR_CONTEXT, 10, 1, "taskSpecificParameters") && + odr_implicit_tag (o, odr_integer, + &(*p)->waitAction, ODR_CONTEXT, 11, 0, "waitAction") && + z_ElementSetName(o, &(*p)->elements, 1, "elements") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ExtendedServicesResponse (ODR o, Z_ExtendedServicesResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->operationStatus, ODR_CONTEXT, 3, 0, "operationStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, + &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && + odr_implicit_tag (o, z_External, + &(*p)->taskPackage, ODR_CONTEXT, 5, 1, "taskPackage") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_Permissions_s (ODR o, Z_Permissions_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->userId, ODR_CONTEXT, 1, 0, "userId") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->allowableFunctions, + &(*p)->num_allowableFunctions, "allowableFunctions") && + odr_sequence_end (o); +} + +int z_Permissions (ODR o, Z_Permissions **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_Permissions_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Close (ODR o, Z_Close **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + z_CloseReason(o, &(*p)->closeReason, 0, "closeReason") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->diagnosticInformation, ODR_CONTEXT, 3, 1, "diagnosticInformation") && + odr_implicit_tag (o, z_ResourceReportId, + &(*p)->resourceReportFormat, ODR_CONTEXT, 4, 1, "resourceReportFormat") && + odr_explicit_tag (o, z_ResourceReport, + &(*p)->resourceReport, ODR_CONTEXT, 5, 1, "resourceReport") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_CloseReason (ODR o, Z_CloseReason **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 211, opt, name); +} + +int z_DuplicateDetectionRequest (ODR o, Z_DuplicateDetectionRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->inputResultSetIds, + &(*p)->num_inputResultSetIds, "inputResultSetIds") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->outputResultSetName, ODR_CONTEXT, 4, 0, "outputResultSetName") && + odr_implicit_tag (o, z_External, + &(*p)->applicablePortionOfRecord, ODR_CONTEXT, 5, 1, "applicablePortionOfRecord") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_DuplicateDetectionCriterion, &(*p)->duplicateDetectionCriteria, + &(*p)->num_duplicateDetectionCriteria, "duplicateDetectionCriteria") || odr_ok(o)) && + odr_implicit_tag (o, odr_bool, + &(*p)->clustering, ODR_CONTEXT, 7, 1, "clustering") && + odr_implicit_settag (o, ODR_CONTEXT, 8) && + odr_sequence_of(o, (Odr_fun) z_RetentionCriterion, &(*p)->retentionCriteria, + &(*p)->num_retentionCriteria, "retentionCriteria") && + odr_implicit_settag (o, ODR_CONTEXT, 9) && + (odr_sequence_of(o, (Odr_fun) z_SortCriterion, &(*p)->sortCriteria, + &(*p)->num_sortCriteria, "sortCriteria") || odr_ok(o)) && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_DuplicateDetectionCriterion (ODR o, Z_DuplicateDetectionCriterion **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DuplicateDetectionCriterion_levelOfMatch, + (Odr_fun) odr_integer, "levelOfMatch"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DuplicateDetectionCriterion_caseSensitive, + (Odr_fun) odr_null, "caseSensitive"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DuplicateDetectionCriterion_punctuationSensitive, + (Odr_fun) odr_null, "punctuationSensitive"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DuplicateDetectionCriterion_regularExpression, + (Odr_fun) z_External, "regularExpression"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_DuplicateDetectionCriterion_rsDuplicates, + (Odr_fun) odr_null, "rsDuplicates"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_RetentionCriterion (ODR o, Z_RetentionCriterion **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RetentionCriterion_numberOfEntries, + (Odr_fun) odr_integer, "numberOfEntries"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_RetentionCriterion_percentOfEntries, + (Odr_fun) odr_integer, "percentOfEntries"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_RetentionCriterion_duplicatesOnly, + (Odr_fun) odr_null, "duplicatesOnly"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_RetentionCriterion_discardRsDuplicates, + (Odr_fun) odr_null, "discardRsDuplicates"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortCriterionPreferredDatabases (ODR o, Z_SortCriterionPreferredDatabases **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SortCriterion (ODR o, Z_SortCriterion **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortCriterion_mostComprehensive, + (Odr_fun) odr_null, "mostComprehensive"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortCriterion_leastConmprehensive, + (Odr_fun) odr_null, "leastConmprehensive"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortCriterion_mostRecent, + (Odr_fun) odr_null, "mostRecent"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortCriterion_oldest, + (Odr_fun) odr_null, "oldest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortCriterion_leastCost, + (Odr_fun) odr_null, "leastCost"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_SortCriterion_preferredDatabases, + (Odr_fun) z_SortCriterionPreferredDatabases, "preferredDatabases"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DuplicateDetectionResponse (ODR o, Z_DuplicateDetectionResponse **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && + odr_implicit_tag (o, odr_integer, + &(*p)->status, ODR_CONTEXT, 3, 0, "status") && + odr_implicit_tag (o, odr_integer, + &(*p)->resultSetCount, ODR_CONTEXT, 4, 1, "resultSetCount") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, + &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_ReferenceId (ODR o, Z_ReferenceId **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_octetstring, p, ODR_CONTEXT, 2, opt, name); +} + +int z_ResultSetId (ODR o, Z_ResultSetId **p, int opt, const char *name) +{ + return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 31, opt, name); +} + +int z_ElementSetName (ODR o, Z_ElementSetName **p, int opt, const char *name) +{ + return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 103, opt, name); +} + +int z_DatabaseName (ODR o, Z_DatabaseName **p, int opt, const char *name) +{ + return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 105, opt, name); +} + +int z_AttributeSetId (ODR o, Z_AttributeSetId **p, int opt, const char *name) +{ + return odr_oid (o, p, opt, name); +} + +int z_OtherInformationUnit (ODR o, Z_OtherInformationUnit **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OtherInfo_characterInfo, + (Odr_fun) z_InternationalString, "characterInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_OtherInfo_binaryInfo, + (Odr_fun) odr_octetstring, "binaryInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_OtherInfo_externallyDefinedInfo, + (Odr_fun) z_External, "externallyDefinedInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_OtherInfo_oid, + (Odr_fun) odr_oid, "oid"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InfoCategory, + &(*p)->category, ODR_CONTEXT, 1, 1, "category") && + odr_choice (o, arm, &(*p)->information, &(*p)->which, 0) && + odr_sequence_end (o); +} + +int z_OtherInformation (ODR o, Z_OtherInformation **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + odr_implicit_settag (o, ODR_CONTEXT, 201); + if (odr_sequence_of (o, (Odr_fun) z_OtherInformationUnit, &(*p)->list, + &(*p)->num_elements, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_InfoCategory (ODR o, Z_InfoCategory **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->categoryTypeId, ODR_CONTEXT, 1, 1, "categoryTypeId") && + odr_implicit_tag (o, odr_integer, + &(*p)->categoryValue, ODR_CONTEXT, 2, 0, "categoryValue") && + odr_sequence_end (o); +} + +int z_IntUnit (ODR o, Z_IntUnit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->value, ODR_CONTEXT, 1, 0, "value") && + odr_implicit_tag (o, z_Unit, + &(*p)->unitUsed, ODR_CONTEXT, 2, 0, "unitUsed") && + odr_sequence_end (o); +} + +int z_Unit (ODR o, Z_Unit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_InternationalString, + &(*p)->unitSystem, ODR_CONTEXT, 1, 1, "unitSystem") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->unitType, ODR_CONTEXT, 2, 1, "unitType") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->unit, ODR_CONTEXT, 3, 1, "unit") && + odr_implicit_tag (o, odr_integer, + &(*p)->scaleFactor, ODR_CONTEXT, 4, 1, "scaleFactor") && + odr_sequence_end (o); +} + +int z_InternationalString (ODR o, Z_InternationalString **p, int opt, const char *name) +{ + return odr_generalstring (o, p, opt, name); +} + +int z_StringOrNumeric (ODR o, Z_StringOrNumeric **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_StringOrNumeric_string, + (Odr_fun) z_InternationalString, "string"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_StringOrNumeric_numeric, + (Odr_fun) odr_integer, "numeric"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + + +/* the type-0 query ... */ +int z_ANY_type_0 (ODR o, void **p, int opt) +{ + return 0; +} + + diff --git a/dependencies/yaz-2.1.28/src/z-date.c b/dependencies/yaz-2.1.28/src/z-date.c new file mode 100644 index 0000000..dae5c4f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-date.c @@ -0,0 +1,163 @@ +/** \file z-date.c + \brief ASN.1 Module UserInfoFormat-dateTime + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Date, + &(*p)->date, ODR_CONTEXT, 1, 1, "date") && + odr_explicit_tag (o, z_Time, + &(*p)->time, ODR_CONTEXT, 2, 1, "time") && + odr_sequence_end (o); +} + +int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->month, ODR_CONTEXT, 2, 0, "month") && + odr_implicit_tag (o, odr_integer, + &(*p)->day, ODR_CONTEXT, 3, 1, "day") && + odr_sequence_end (o); +} + +int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateQuarter_first, + (Odr_fun) odr_null, "first"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateQuarter_second, + (Odr_fun) odr_null, "second"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateQuarter_third, + (Odr_fun) odr_null, "third"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateQuarter_fourth, + (Odr_fun) odr_null, "fourth"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateSeason_winter, + (Odr_fun) odr_null, "winter"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateSeason_spring, + (Odr_fun) odr_null, "spring"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateSeason_summer, + (Odr_fun) odr_null, "summer"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateSeason_autumn, + (Odr_fun) odr_null, "autumn"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Era (ODR o, Z_Era **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, + (Odr_fun) odr_null, "decade"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, + (Odr_fun) odr_null, "century"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, + (Odr_fun) odr_null, "millennium"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_null, + &(*p)->circa, ODR_CONTEXT, 1, 1, "circa") && + odr_explicit_tag (o, z_Era, + &(*p)->era, ODR_CONTEXT, 2, 1, "era") && + odr_sequence_end (o); +} + +int z_Date (ODR o, Z_Date **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Date_monthAndDay, + (Odr_fun) z_DateMonthAndDay, "monthAndDay"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Date_julianDay, + (Odr_fun) odr_integer, "julianDay"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Date_weekNumber, + (Odr_fun) odr_integer, "weekNumber"}, + {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Date_quarter, + (Odr_fun) z_DateQuarter, "quarter"}, + {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_Date_season, + (Odr_fun) z_DateSeason, "season"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->year, ODR_CONTEXT, 1, 0, "year") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "partOfYear") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_DateFlags, + &(*p)->flags, ODR_CONTEXT, 3, 1, "flags") && + odr_sequence_end (o); +} + +int z_Time (ODR o, Z_Time **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Time_local, + (Odr_fun) odr_null, "local"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Time_utc, + (Odr_fun) odr_null, "utc"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Time_utcOffset, + (Odr_fun) odr_integer, "utcOffset"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->hour, ODR_CONTEXT, 1, 0, "hour") && + odr_implicit_tag (o, odr_integer, + &(*p)->minute, ODR_CONTEXT, 2, 1, "minute") && + odr_implicit_tag (o, odr_integer, + &(*p)->second, ODR_CONTEXT, 3, 1, "second") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->partOfSecond, ODR_CONTEXT, 4, 1, "partOfSecond") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "zone") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-diag1.c b/dependencies/yaz-2.1.28/src/z-diag1.c new file mode 100644 index 0000000..f91803f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-diag1.c @@ -0,0 +1,396 @@ +/** \file z-diag1.c + \brief ASN.1 Module DiagnosticFormatDiag1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_DiagnosticFormat_s (ODR o, Z_DiagnosticFormat_s **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DiagnosticFormat_s_defaultDiagRec, + (Odr_fun) z_DefaultDiagFormat, "defaultDiagRec"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_DiagnosticFormat_s_explicitDiagnostic, + (Odr_fun) z_DiagFormat, "explicitDiagnostic"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "diagnostic") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->message, ODR_CONTEXT, 2, 1, "message") && + odr_sequence_end (o); +} + +int z_DiagnosticFormat (ODR o, Z_DiagnosticFormat **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DiagnosticFormat_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_TooMany (ODR o, Z_TooMany **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tooManyWhat, ODR_CONTEXT, 1, 0, "tooManyWhat") && + odr_implicit_tag (o, odr_integer, + &(*p)->max, ODR_CONTEXT, 2, 1, "max") && + odr_sequence_end (o); +} + +int z_BadSpec (ODR o, Z_BadSpec **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_Specification, + &(*p)->spec, ODR_CONTEXT, 1, 0, "spec") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->db, ODR_CONTEXT, 2, 1, "db") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->goodOnes, + &(*p)->num_goodOnes, "goodOnes") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_DbUnavail_0 (ODR o, Z_DbUnavail_0 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->reasonCode, ODR_CONTEXT, 1, 1, "reasonCode") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->message, ODR_CONTEXT, 2, 1, "message") && + odr_sequence_end (o); +} + +int z_DbUnavail (ODR o, Z_DbUnavail **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_DatabaseName, + &(*p)->db, ODR_CONTEXT, 1, 0, "db") && + odr_implicit_tag (o, z_DbUnavail_0, + &(*p)->why, ODR_CONTEXT, 2, 0, "why") && + odr_sequence_end (o); +} + +int z_Attribute (ODR o, Z_Attribute **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->id, ODR_CONTEXT, 1, 0, "id") && + odr_implicit_tag (o, odr_integer, + &(*p)->type, ODR_CONTEXT, 2, 1, "type") && + odr_implicit_tag (o, odr_integer, + &(*p)->value, ODR_CONTEXT, 3, 1, "value") && + odr_explicit_tag (o, z_Term, + &(*p)->term, ODR_CONTEXT, 4, 1, "term") && + odr_sequence_end (o); +} + +int z_AttCombo (ODR o, Z_AttCombo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_AttributeList, + &(*p)->unsupportedCombination, ODR_CONTEXT, 1, 0, "unsupportedCombination") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_AttributeList, &(*p)->recommendedAlternatives, + &(*p)->num_recommendedAlternatives, "recommendedAlternatives") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_DiagTerm (ODR o, Z_DiagTerm **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->problem, ODR_CONTEXT, 1, 1, "problem") && + odr_explicit_tag (o, z_Term, + &(*p)->term, ODR_CONTEXT, 2, 0, "term") && + odr_sequence_end (o); +} + +int z_Proximity (ODR o, Z_Proximity **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Proximity_resultSets, + (Odr_fun) odr_null, "resultSets"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Proximity_badSet, + (Odr_fun) z_InternationalString, "badSet"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Proximity_relation, + (Odr_fun) odr_integer, "relation"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Proximity_unit, + (Odr_fun) odr_integer, "unit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Proximity_distance, + (Odr_fun) odr_integer, "distance"}, + {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_Proximity_attributes, + (Odr_fun) z_AttributeList, "attributes"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Proximity_ordered, + (Odr_fun) odr_null, "ordered"}, + {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Proximity_exclusion, + (Odr_fun) odr_null, "exclusion"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AttrListList (ODR o, Z_AttrListList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_AttributeList, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Scan (ODR o, Z_Scan **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Scan_nonZeroStepSize, + (Odr_fun) odr_null, "nonZeroStepSize"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Scan_specifiedStepSize, + (Odr_fun) odr_null, "specifiedStepSize"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Scan_termList1, + (Odr_fun) odr_null, "termList1"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Scan_termList2, + (Odr_fun) z_AttrListList, "termList2"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Scan_posInResponse, + (Odr_fun) odr_integer, "posInResponse"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Scan_resources, + (Odr_fun) odr_null, "resources"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Scan_endOfList, + (Odr_fun) odr_null, "endOfList"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_StringList (ODR o, Z_StringList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Sort (ODR o, Z_Sort **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortD_sequence, + (Odr_fun) odr_null, "sequence"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortD_noRsName, + (Odr_fun) odr_null, "noRsName"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortD_tooMany, + (Odr_fun) odr_integer, "tooMany"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortD_incompatible, + (Odr_fun) odr_null, "incompatible"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortD_generic, + (Odr_fun) odr_null, "generic"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortD_dbSpecific, + (Odr_fun) odr_null, "dbSpecific"}, + {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_SortD_sortElement, + (Odr_fun) z_SortElement, "sortElement"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_SortD_key, + (Odr_fun) odr_integer, "key"}, + {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_SortD_action, + (Odr_fun) odr_null, "action"}, + {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_SortD_illegal, + (Odr_fun) odr_integer, "illegal"}, + {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_SortD_inputTooLarge, + (Odr_fun) z_StringList, "inputTooLarge"}, + {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_SortD_aggregateTooLarge, + (Odr_fun) odr_null, "aggregateTooLarge"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Segmentation (ODR o, Z_Segmentation **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Segmentation_segmentCount, + (Odr_fun) odr_null, "segmentCount"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Segmentation_segmentSize, + (Odr_fun) odr_integer, "segmentSize"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ExtServices (ODR o, Z_ExtServices **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ExtServices_req, + (Odr_fun) odr_integer, "req"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ExtServices_permission, + (Odr_fun) odr_integer, "permission"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ExtServices_immediate, + (Odr_fun) odr_integer, "immediate"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_OidList (ODR o, Z_OidList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AltOidList (ODR o, Z_AltOidList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AccessCtrl (ODR o, Z_AccessCtrl **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_AccessCtrl_noUser, + (Odr_fun) odr_null, "noUser"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_AccessCtrl_refused, + (Odr_fun) odr_null, "refused"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AccessCtrl_simple, + (Odr_fun) odr_null, "simple"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AccessCtrl_oid, + (Odr_fun) z_OidList, "oid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_AccessCtrl_alternative, + (Odr_fun) z_AltOidList, "alternative"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_AccessCtrl_pwdInv, + (Odr_fun) odr_null, "pwdInv"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_AccessCtrl_pwdExp, + (Odr_fun) odr_null, "pwdExp"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_RecordSyntax (ODR o, Z_RecordSyntax **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->unsupportedSyntax, ODR_CONTEXT, 1, 0, "unsupportedSyntax") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->suggestedAlternatives, + &(*p)->num_suggestedAlternatives, "suggestedAlternatives") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_DiagFormat (ODR o, Z_DiagFormat **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1000, Z_DiagFormat_tooMany, + (Odr_fun) z_TooMany, "tooMany"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1001, Z_DiagFormat_badSpec, + (Odr_fun) z_BadSpec, "badSpec"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1002, Z_DiagFormat_dbUnavail, + (Odr_fun) z_DbUnavail, "dbUnavail"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1003, Z_DiagFormat_unSupOp, + (Odr_fun) odr_integer, "unSupOp"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1004, Z_DiagFormat_attribute, + (Odr_fun) z_Attribute, "attribute"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1005, Z_DiagFormat_attCombo, + (Odr_fun) z_AttCombo, "attCombo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1006, Z_DiagFormat_term, + (Odr_fun) z_DiagTerm, "term"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1007, Z_DiagFormat_proximity, + (Odr_fun) z_Proximity, "proximity"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1008, Z_DiagFormat_scan, + (Odr_fun) z_Scan, "scan"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1009, Z_DiagFormat_sort, + (Odr_fun) z_Sort, "sort"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1010, Z_DiagFormat_segmentation, + (Odr_fun) z_Segmentation, "segmentation"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1011, Z_DiagFormat_extServices, + (Odr_fun) z_ExtServices, "extServices"}, + {ODR_EXPLICIT, ODR_CONTEXT, 1012, Z_DiagFormat_accessCtrl, + (Odr_fun) z_AccessCtrl, "accessCtrl"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1013, Z_DiagFormat_recordSyntax, + (Odr_fun) z_RecordSyntax, "recordSyntax"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-espec1.c b/dependencies/yaz-2.1.28/src/z-espec1.c new file mode 100644 index 0000000..1dea58e --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-espec1.c @@ -0,0 +1,181 @@ +/** \file z-espec1.c + \brief ASN.1 Module ElementSpecificationFormat-eSpec-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_Espec1 (ODR o, Z_Espec1 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->elementSetNames, + &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) && + odr_implicit_tag (o, odr_oid, + &(*p)->defaultVariantSetId, ODR_CONTEXT, 2, 1, "defaultVariantSetId") && + odr_implicit_tag (o, z_Variant, + &(*p)->defaultVariantRequest, ODR_CONTEXT, 3, 1, "defaultVariantRequest") && + odr_implicit_tag (o, odr_integer, + &(*p)->defaultTagType, ODR_CONTEXT, 4, 1, "defaultTagType") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_ElementRequest, &(*p)->elements, + &(*p)->num_elements, "elements") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_ElementRequestCompositeElementPrimitives (ODR o, Z_ElementRequestCompositeElementPrimitives **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementRequestCompositeElementSpecs (ODR o, Z_ElementRequestCompositeElementSpecs **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_SimpleElement, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementRequestCompositeElement (ODR o, Z_ElementRequestCompositeElement **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementRequestCompositeElement_primitives, + (Odr_fun) z_ElementRequestCompositeElementPrimitives, "primitives"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementRequestCompositeElement_specs, + (Odr_fun) z_ElementRequestCompositeElementSpecs, "specs"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "elementList") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, z_ETagPath, + &(*p)->deliveryTag, ODR_CONTEXT, 2, 0, "deliveryTag") && + odr_implicit_tag (o, z_Variant, + &(*p)->variantRequest, ODR_CONTEXT, 3, 1, "variantRequest") && + odr_sequence_end (o); +} + +int z_ElementRequest (ODR o, Z_ElementRequest **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ERequest_simpleElement, + (Odr_fun) z_SimpleElement, "simpleElement"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ERequest_compositeElement, + (Odr_fun) z_ElementRequestCompositeElement, "compositeElement"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_SimpleElement (ODR o, Z_SimpleElement **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_ETagPath, + &(*p)->path, ODR_CONTEXT, 1, 0, "path") && + odr_implicit_tag (o, z_Variant, + &(*p)->variantRequest, ODR_CONTEXT, 2, 1, "variantRequest") && + odr_sequence_end (o); +} + +int z_SpecificTag (ODR o, Z_SpecificTag **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && + odr_explicit_tag (o, z_Occurrences, + &(*p)->occurrences, ODR_CONTEXT, 3, 1, "occurrences") && + odr_sequence_end (o); +} + +int z_ETagUnit (ODR o, Z_ETagUnit **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ETagUnit_specificTag, + (Odr_fun) z_SpecificTag, "specificTag"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ETagUnit_wildThing, + (Odr_fun) z_Occurrences, "wildThing"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ETagUnit_wildPath, + (Odr_fun) odr_null, "wildPath"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ETagPath (ODR o, Z_ETagPath **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ETagUnit, &(*p)->tags, + &(*p)->num_tags, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_OccurValues (ODR o, Z_OccurValues **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->start, ODR_CONTEXT, 1, 0, "start") && + odr_implicit_tag (o, odr_integer, + &(*p)->howMany, ODR_CONTEXT, 2, 1, "howMany") && + odr_sequence_end (o); +} + +int z_Occurrences (ODR o, Z_Occurrences **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Occurrences_all, + (Odr_fun) odr_null, "all"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Occurrences_last, + (Odr_fun) odr_null, "last"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Occurrences_values, + (Odr_fun) z_OccurValues, "values"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-estask.c b/dependencies/yaz-2.1.28/src/z-estask.c new file mode 100644 index 0000000..8ebeb4f --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-estask.c @@ -0,0 +1,38 @@ +/** \file z-estask.c + \brief ASN.1 Module RecordSyntax-ESTaskPackage + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_TaskPackage (ODR o, Z_TaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->packageType, ODR_CONTEXT, 1, 0, "packageType") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->packageName, ODR_CONTEXT, 2, 1, "packageName") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->userId, ODR_CONTEXT, 3, 1, "userId") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->retentionTime, ODR_CONTEXT, 4, 1, "retentionTime") && + odr_implicit_tag (o, z_Permissions, + &(*p)->permissions, ODR_CONTEXT, 5, 1, "permissions") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->description, ODR_CONTEXT, 6, 1, "description") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->targetReference, ODR_CONTEXT, 7, 1, "targetReference") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->creationDateTime, ODR_CONTEXT, 8, 1, "creationDateTime") && + odr_implicit_tag (o, odr_integer, + &(*p)->taskStatus, ODR_CONTEXT, 9, 0, "taskStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 10) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->packageDiagnostics, + &(*p)->num_packageDiagnostics, "packageDiagnostics") || odr_ok(o)) && + odr_implicit_tag (o, z_External, + &(*p)->taskSpecificParameters, ODR_CONTEXT, 11, 0, "taskSpecificParameters") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-exp.c b/dependencies/yaz-2.1.28/src/z-exp.c new file mode 100644 index 0000000..e4322a7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-exp.c @@ -0,0 +1,1455 @@ +/** \file z-exp.c + \brief ASN.1 Module RecordSyntax-explain + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Explain_targetInfo, + (Odr_fun) z_TargetInfo, "targetInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo, + (Odr_fun) z_DatabaseInfo, "databaseInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo, + (Odr_fun) z_SchemaInfo, "schemaInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo, + (Odr_fun) z_TagSetInfo, "tagSetInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Explain_recordSyntaxInfo, + (Odr_fun) z_RecordSyntaxInfo, "recordSyntaxInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Explain_attributeSetInfo, + (Odr_fun) z_AttributeSetInfo, "attributeSetInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Explain_termListInfo, + (Odr_fun) z_TermListInfo, "termListInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Explain_extendedServicesInfo, + (Odr_fun) z_ExtendedServicesInfo, "extendedServicesInfo"}, + {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Explain_attributeDetails, + (Odr_fun) z_AttributeDetails, "attributeDetails"}, + {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_Explain_termListDetails, + (Odr_fun) z_TermListDetails, "termListDetails"}, + {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_Explain_elementSetDetails, + (Odr_fun) z_ElementSetDetails, "elementSetDetails"}, + {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_Explain_retrievalRecordDetails, + (Odr_fun) z_RetrievalRecordDetails, "retrievalRecordDetails"}, + {ODR_IMPLICIT, ODR_CONTEXT, 12, Z_Explain_sortDetails, + (Odr_fun) z_SortDetails, "sortDetails"}, + {ODR_IMPLICIT, ODR_CONTEXT, 13, Z_Explain_processing, + (Odr_fun) z_ProcessingInformation, "processing"}, + {ODR_IMPLICIT, ODR_CONTEXT, 14, Z_Explain_variants, + (Odr_fun) z_VariantSetInfo, "variants"}, + {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units, + (Odr_fun) z_UnitInfo, "units"}, + {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_Explain_categoryList, + (Odr_fun) z_CategoryList, "categoryList"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 1, 0, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->recentNews, ODR_CONTEXT, 2, 1, "recentNews") && + odr_implicit_tag (o, z_IconObject, + &(*p)->icon, ODR_CONTEXT, 3, 1, "icon") && + odr_implicit_tag (o, odr_bool, + &(*p)->namedResultSets, ODR_CONTEXT, 4, 0, "namedResultSets") && + odr_implicit_tag (o, odr_bool, + &(*p)->multipleDBsearch, ODR_CONTEXT, 5, 0, "multipleDBsearch") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxResultSets, ODR_CONTEXT, 6, 1, "maxResultSets") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxResultSize, ODR_CONTEXT, 7, 1, "maxResultSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxTerms, ODR_CONTEXT, 8, 1, "maxTerms") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->timeoutInterval, ODR_CONTEXT, 9, 1, "timeoutInterval") && + odr_implicit_tag (o, z_HumanString, + &(*p)->welcomeMessage, ODR_CONTEXT, 10, 1, "welcomeMessage") && + odr_implicit_tag (o, z_ContactInfo, + &(*p)->contactInfo, ODR_CONTEXT, 11, 1, "contactInfo") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 12, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 13) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames, + &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && + odr_implicit_tag (o, z_HumanString, + &(*p)->usageRest, ODR_CONTEXT, 14, 1, "usageRest") && + odr_implicit_tag (o, z_HumanString, + &(*p)->paymentAddr, ODR_CONTEXT, 15, 1, "paymentAddr") && + odr_implicit_tag (o, z_HumanString, + &(*p)->hours, ODR_CONTEXT, 16, 1, "hours") && + odr_implicit_settag (o, ODR_CONTEXT, 17) && + (odr_sequence_of(o, (Odr_fun) z_DatabaseList, &(*p)->dbCombinations, + &(*p)->num_dbCombinations, "dbCombinations") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 18) && + (odr_sequence_of(o, (Odr_fun) z_NetworkAddress, &(*p)->addresses, + &(*p)->num_addresses, "addresses") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 101) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->languages, + &(*p)->num_languages, "languages") || odr_ok(o)) && + odr_implicit_tag (o, z_AccessInfo, + &(*p)->commonAccessInfo, ODR_CONTEXT, 19, 1, "commonAccessInfo") && + odr_sequence_end (o); +} + +int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber, + (Odr_fun) odr_integer, "actualNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber, + (Odr_fun) odr_integer, "approxNumber"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->name, ODR_CONTEXT, 1, 0, "name") && + odr_implicit_tag (o, odr_null, + &(*p)->explainDatabase, ODR_CONTEXT, 2, 1, "explainDatabase") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->nicknames, + &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && + odr_implicit_tag (o, z_IconObject, + &(*p)->icon, ODR_CONTEXT, 4, 1, "icon") && + odr_implicit_tag (o, odr_bool, + &(*p)->userFee, ODR_CONTEXT, 5, 0, "userFee") && + odr_implicit_tag (o, odr_bool, + &(*p)->available, ODR_CONTEXT, 6, 0, "available") && + odr_implicit_tag (o, z_HumanString, + &(*p)->titleString, ODR_CONTEXT, 7, 1, "titleString") && + odr_implicit_settag (o, ODR_CONTEXT, 8) && + (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->keywords, + &(*p)->num_keywords, "keywords") || odr_ok(o)) && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 9, 1, "description") && + odr_implicit_tag (o, z_DatabaseList, + &(*p)->associatedDbs, ODR_CONTEXT, 10, 1, "associatedDbs") && + odr_implicit_tag (o, z_DatabaseList, + &(*p)->subDbs, ODR_CONTEXT, 11, 1, "subDbs") && + odr_implicit_tag (o, z_HumanString, + &(*p)->disclaimers, ODR_CONTEXT, 12, 1, "disclaimers") && + odr_implicit_tag (o, z_HumanString, + &(*p)->news, ODR_CONTEXT, 13, 1, "news") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 14, "recordCount") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_HumanString, + &(*p)->defaultOrder, ODR_CONTEXT, 15, 1, "defaultOrder") && + odr_implicit_tag (o, odr_integer, + &(*p)->avRecordSize, ODR_CONTEXT, 16, 1, "avRecordSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->maxRecordSize, ODR_CONTEXT, 17, 1, "maxRecordSize") && + odr_implicit_tag (o, z_HumanString, + &(*p)->hours, ODR_CONTEXT, 18, 1, "hours") && + odr_implicit_tag (o, z_HumanString, + &(*p)->bestTime, ODR_CONTEXT, 19, 1, "bestTime") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->lastUpdate, ODR_CONTEXT, 20, 1, "lastUpdate") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->updateInterval, ODR_CONTEXT, 21, 1, "updateInterval") && + odr_implicit_tag (o, z_HumanString, + &(*p)->coverage, ODR_CONTEXT, 22, 1, "coverage") && + odr_implicit_tag (o, odr_bool, + &(*p)->proprietary, ODR_CONTEXT, 23, 1, "proprietary") && + odr_implicit_tag (o, z_HumanString, + &(*p)->copyrightText, ODR_CONTEXT, 24, 1, "copyrightText") && + odr_implicit_tag (o, z_HumanString, + &(*p)->copyrightNotice, ODR_CONTEXT, 25, 1, "copyrightNotice") && + odr_implicit_tag (o, z_ContactInfo, + &(*p)->producerContactInfo, ODR_CONTEXT, 26, 1, "producerContactInfo") && + odr_implicit_tag (o, z_ContactInfo, + &(*p)->supplierContactInfo, ODR_CONTEXT, 27, 1, "supplierContactInfo") && + odr_implicit_tag (o, z_ContactInfo, + &(*p)->submissionContactInfo, ODR_CONTEXT, 28, 1, "submissionContactInfo") && + odr_implicit_tag (o, z_AccessInfo, + &(*p)->accessInfo, ODR_CONTEXT, 29, 1, "accessInfo") && + odr_sequence_end (o); +} + +int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tagType, ODR_CONTEXT, 0, 0, "tagType") && + odr_implicit_tag (o, odr_oid, + &(*p)->tagSet, ODR_CONTEXT, 1, 1, "tagSet") && + odr_implicit_tag (o, odr_null, + &(*p)->defaultTagType, ODR_CONTEXT, 2, 1, "defaultTagType") && + odr_sequence_end (o); +} + +int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, odr_oid, + &(*p)->schema, ODR_CONTEXT, 1, 0, "schema") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 0, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 3, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) z_TagTypeMapping, &(*p)->tagTypeMapping, + &(*p)->num_tagTypeMapping, "tagTypeMapping") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->recordStructure, + &(*p)->num_recordStructure, "recordStructure") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->elementName, ODR_CONTEXT, 1, 0, "elementName") && + odr_implicit_tag (o, z_Path, + &(*p)->elementTagPath, ODR_CONTEXT, 2, 0, "elementTagPath") && + odr_explicit_tag (o, z_ElementDataType, + &(*p)->dataType, ODR_CONTEXT, 3, 1, "dataType") && + odr_implicit_tag (o, odr_bool, + &(*p)->required, ODR_CONTEXT, 4, 0, "required") && + odr_implicit_tag (o, odr_bool, + &(*p)->repeatable, ODR_CONTEXT, 5, 0, "repeatable") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 6, 1, "description") && + odr_sequence_end (o); +} + +int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tagType, ODR_CONTEXT, 1, 0, "tagType") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && + odr_sequence_end (o); +} + +int z_Path (ODR o, Z_Path **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_PathUnit, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ElementInfo, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementDataType_primitive, + (Odr_fun) z_PrimitiveDataType, "primitive"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementDataType_structured, + (Odr_fun) z_ElementInfoList, "structured"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name) +{ + return odr_integer (o, p, opt, name); +} + +int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->elementname, ODR_CONTEXT, 1, 0, "elementname") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames, + &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->elementTag, ODR_CONTEXT, 3, 0, "elementTag") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 4, 1, "description") && + odr_explicit_tag (o, z_PrimitiveDataType, + &(*p)->dataType, ODR_CONTEXT, 5, 1, "dataType") && + z_OtherInformation(o, &(*p)->otherTagInfo, 1, "otherTagInfo") && + odr_sequence_end (o); +} + +int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, odr_oid, + &(*p)->tagSet, ODR_CONTEXT, 1, 0, "tagSet") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 0, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 3, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) z_TagSetElements, &(*p)->elements, + &(*p)->num_elements, "elements") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, odr_oid, + &(*p)->recordSyntax, ODR_CONTEXT, 1, 0, "recordSyntax") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 0, "name") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->transferSyntaxes, + &(*p)->num_transferSyntaxes, "transferSyntaxes") || odr_ok(o)) && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 4, 1, "description") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->asn1Module, ODR_CONTEXT, 5, 1, "asn1Module") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->abstractStructure, + &(*p)->num_abstractStructure, "abstractStructure") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->attributeSet, ODR_CONTEXT, 1, 0, "attributeSet") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 0, "name") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_AttributeType, &(*p)->attributes, + &(*p)->num_attributes, "attributes") || odr_ok(o)) && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 4, 1, "description") && + odr_sequence_end (o); +} + +int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_implicit_tag (o, odr_integer, + &(*p)->attributeType, ODR_CONTEXT, 2, 0, "attributeType") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_AttributeDescription, &(*p)->attributeValues, + &(*p)->num_attributeValues, "attributeValues") && + odr_sequence_end (o); +} + +int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->attributeValue, ODR_CONTEXT, 2, 0, "attributeValue") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->equivalentAttributes, + &(*p)->num_equivalentAttributes, "equivalentAttributes") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 1, 0, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->title, ODR_CONTEXT, 2, 1, "title") && + odr_implicit_tag (o, odr_integer, + &(*p)->searchCost, ODR_CONTEXT, 3, 1, "searchCost") && + odr_implicit_tag (o, odr_bool, + &(*p)->scanable, ODR_CONTEXT, 4, 0, "scanable") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->broader, + &(*p)->num_broader, "broader") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->narrower, + &(*p)->num_narrower, "narrower") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + odr_sequence_of(o, (Odr_fun) z_TermListElement, &(*p)->termLists, + &(*p)->num_termLists, "termLists") && + odr_sequence_end (o); +} + +int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, odr_oid, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 1, "name") && + odr_implicit_tag (o, odr_bool, + &(*p)->privateType, ODR_CONTEXT, 3, 0, "privateType") && + odr_implicit_tag (o, odr_bool, + &(*p)->restrictionsApply, ODR_CONTEXT, 5, 0, "restrictionsApply") && + odr_implicit_tag (o, odr_bool, + &(*p)->feeApply, ODR_CONTEXT, 6, 0, "feeApply") && + odr_implicit_tag (o, odr_bool, + &(*p)->available, ODR_CONTEXT, 7, 0, "available") && + odr_implicit_tag (o, odr_bool, + &(*p)->retentionSupported, ODR_CONTEXT, 8, 0, "retentionSupported") && + odr_implicit_tag (o, odr_integer, + &(*p)->waitAction, ODR_CONTEXT, 9, 0, "waitAction") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 10, 1, "description") && + odr_implicit_tag (o, z_External, + &(*p)->specificExplain, ODR_CONTEXT, 11, 1, "specificExplain") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->esASN, ODR_CONTEXT, 12, 1, "esASN") && + odr_sequence_end (o); +} + +int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_AttributeSetDetails, &(*p)->attributesBySet, + &(*p)->num_attributesBySet, "attributesBySet") || odr_ok(o)) && + odr_implicit_tag (o, z_AttributeCombinations, + &(*p)->attributeCombinations, ODR_CONTEXT, 3, 1, "attributeCombinations") && + odr_sequence_end (o); +} + +int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->attributeSet, ODR_CONTEXT, 0, 0, "attributeSet") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) z_AttributeTypeDetails, &(*p)->attributesByType, + &(*p)->num_attributesByType, "attributesByType") && + odr_sequence_end (o); +} + +int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->attributeType, ODR_CONTEXT, 0, 0, "attributeType") && + odr_implicit_tag (o, z_OmittedAttributeInterpretation, + &(*p)->defaultIfOmitted, ODR_CONTEXT, 1, 1, "defaultIfOmitted") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_AttributeValue, &(*p)->attributeValues, + &(*p)->num_attributeValues, "attributeValues") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->defaultValue, ODR_CONTEXT, 0, 1, "defaultValue") && + odr_implicit_tag (o, z_HumanString, + &(*p)->defaultDescription, ODR_CONTEXT, 1, 1, "defaultDescription") && + odr_sequence_end (o); +} + +int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->value, ODR_CONTEXT, 0, 0, "value") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->subAttributes, + &(*p)->num_subAttributes, "subAttributes") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->superAttributes, + &(*p)->num_superAttributes, "superAttributes") || odr_ok(o)) && + odr_implicit_tag (o, odr_null, + &(*p)->partialSupport, ODR_CONTEXT, 4, 1, "partialSupport") && + odr_sequence_end (o); +} + +int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->maxStepSize, ODR_CONTEXT, 0, 1, "maxStepSize") && + odr_implicit_tag (o, z_HumanString, + &(*p)->collatingSequence, ODR_CONTEXT, 1, 1, "collatingSequence") && + odr_implicit_tag (o, odr_bool, + &(*p)->increasing, ODR_CONTEXT, 2, 1, "increasing") && + odr_sequence_end (o); +} + +int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->termListName, ODR_CONTEXT, 1, 0, "termListName") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 2, 1, "description") && + odr_implicit_tag (o, z_AttributeCombinations, + &(*p)->attributes, ODR_CONTEXT, 3, 1, "attributes") && + odr_implicit_tag (o, z_EScanInfo, + &(*p)->scanInfo, ODR_CONTEXT, 4, 1, "scanInfo") && + odr_implicit_tag (o, odr_integer, + &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1, "estNumberTerms") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_Term, &(*p)->sampleTerms, + &(*p)->num_sampleTerms, "sampleTerms") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_tag (o, z_ElementSetName, + &(*p)->elementSetName, ODR_CONTEXT, 2, 0, "elementSetName") && + odr_implicit_tag (o, odr_oid, + &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") && + odr_implicit_tag (o, odr_oid, + &(*p)->schema, ODR_CONTEXT, 4, 0, "schema") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 5, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement, + &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_tag (o, odr_oid, + &(*p)->schema, ODR_CONTEXT, 2, 0, "schema") && + odr_implicit_tag (o, odr_oid, + &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 4, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement, + &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_RecordTag, + &(*p)->recordTag, ODR_CONTEXT, 1, 1, "recordTag") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_Path, &(*p)->schemaTags, + &(*p)->num_schemaTags, "schemaTags") || odr_ok(o)) && + odr_implicit_tag (o, odr_integer, + &(*p)->maxSize, ODR_CONTEXT, 3, 1, "maxSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->minSize, ODR_CONTEXT, 4, 1, "minSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->avgSize, ODR_CONTEXT, 5, 1, "avgSize") && + odr_implicit_tag (o, odr_integer, + &(*p)->fixedSize, ODR_CONTEXT, 6, 1, "fixedSize") && + odr_implicit_tag (o, odr_bool, + &(*p)->repeatable, ODR_CONTEXT, 8, 0, "repeatable") && + odr_implicit_tag (o, odr_bool, + &(*p)->required, ODR_CONTEXT, 9, 0, "required") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 12, 1, "description") && + odr_implicit_tag (o, z_HumanString, + &(*p)->contents, ODR_CONTEXT, 13, 1, "contents") && + odr_implicit_tag (o, z_HumanString, + &(*p)->billingInfo, ODR_CONTEXT, 14, 1, "billingInfo") && + odr_implicit_tag (o, z_HumanString, + &(*p)->restrictions, ODR_CONTEXT, 15, 1, "restrictions") && + odr_implicit_settag (o, ODR_CONTEXT, 16) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->alternateNames, + &(*p)->num_alternateNames, "alternateNames") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 17) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->genericNames, + &(*p)->num_genericNames, "genericNames") || odr_ok(o)) && + odr_implicit_tag (o, z_AttributeCombinations, + &(*p)->searchAccess, ODR_CONTEXT, 18, 1, "searchAccess") && + odr_sequence_end (o); +} + +int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->qualifier, ODR_CONTEXT, 0, 1, "qualifier") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->tagValue, ODR_CONTEXT, 1, 0, "tagValue") && + odr_sequence_end (o); +} + +int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_SortKeyDetails, &(*p)->sortKeys, + &(*p)->num_sortKeys, "sortKeys") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetails_character, + (Odr_fun) odr_null, "character"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeyDetails_numeric, + (Odr_fun) odr_null, "numeric"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeyDetails_structured, + (Odr_fun) z_HumanString, "structured"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 0, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->elementSpecifications, + &(*p)->num_elementSpecifications, "elementSpecifications") || odr_ok(o)) && + odr_implicit_tag (o, z_AttributeCombinations, + &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1, "attributeSpecifications") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "sortType") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, odr_integer, + &(*p)->caseSensitivity, ODR_CONTEXT, 4, 1, "caseSensitivity") && + odr_sequence_end (o); +} + +int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_DatabaseName, + &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && + odr_implicit_tag (o, odr_integer, + &(*p)->processingContext, ODR_CONTEXT, 2, 0, "processingContext") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 3, 0, "name") && + odr_implicit_tag (o, odr_oid, + &(*p)->oid, ODR_CONTEXT, 4, 0, "oid") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 5, 1, "description") && + odr_implicit_tag (o, z_External, + &(*p)->instructions, ODR_CONTEXT, 6, 1, "instructions") && + odr_sequence_end (o); +} + +int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, odr_oid, + &(*p)->variantSet, ODR_CONTEXT, 1, 0, "variantSet") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 2, 0, "name") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_VariantClass, &(*p)->variants, + &(*p)->num_variants, "variants") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_implicit_tag (o, odr_integer, + &(*p)->variantClass, ODR_CONTEXT, 2, 0, "variantClass") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_VariantType, &(*p)->variantTypes, + &(*p)->num_variantTypes, "variantTypes") && + odr_sequence_end (o); +} + +int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_implicit_tag (o, odr_integer, + &(*p)->variantType, ODR_CONTEXT, 2, 0, "variantType") && + odr_implicit_tag (o, z_VariantValue, + &(*p)->variantValue, ODR_CONTEXT, 3, 1, "variantValue") && + odr_sequence_end (o); +} + +int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PrimitiveDataType, + &(*p)->dataType, ODR_CONTEXT, 0, 0, "dataType") && + odr_explicit_tag (o, z_ValueSet, + &(*p)->values, ODR_CONTEXT, 1, 1, "values") && + odr_sequence_end (o); +} + +int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ValueDescription, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range, + (Odr_fun) z_ValueRange, "range"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueSet_enumerated, + (Odr_fun) z_ValueSetEnumerated, "enumerated"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_ValueDescription, + &(*p)->lower, ODR_CONTEXT, 0, 1, "lower") && + odr_explicit_tag (o, z_ValueDescription, + &(*p)->upper, ODR_CONTEXT, 1, 1, "upper") && + odr_sequence_end (o); +} + +int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_ValueDescription_integer, + (Odr_fun) odr_integer, "integer"}, + {-1, -1, -1, Z_ValueDescription_string, + (Odr_fun) z_InternationalString, "string"}, + {-1, -1, -1, Z_ValueDescription_octets, + (Odr_fun) odr_octetstring, "octets"}, + {-1, -1, -1, Z_ValueDescription_oid, + (Odr_fun) odr_oid, "oid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit, + (Odr_fun) z_Unit, "unit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit, + (Odr_fun) z_IntUnit, "valueAndUnit"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->unitSystem, ODR_CONTEXT, 1, 0, "unitSystem") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 2, 1, "description") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_UnitType, &(*p)->units, + &(*p)->num_units, "units") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->unitType, ODR_CONTEXT, 2, 0, "unitType") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_Units, &(*p)->units, + &(*p)->num_units, "units") && + odr_sequence_end (o); +} + +int z_Units (ODR o, Z_Units **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->unit, ODR_CONTEXT, 2, 0, "unit") && + odr_sequence_end (o); +} + +int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CommonInfo, + &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) z_CategoryInfo, &(*p)->categories, + &(*p)->num_categories, "categories") && + odr_sequence_end (o); +} + +int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->category, ODR_CONTEXT, 1, 0, "category") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->originalCategory, ODR_CONTEXT, 2, 1, "originalCategory") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 3, 1, "description") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->asn1Module, ODR_CONTEXT, 4, 1, "asn1Module") && + odr_sequence_end (o); +} + +int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->dateAdded, ODR_CONTEXT, 0, 1, "dateAdded") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->dateChanged, ODR_CONTEXT, 1, 1, "dateChanged") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->expiry, ODR_CONTEXT, 2, 1, "expiry") && + odr_implicit_tag (o, z_LanguageCode, + &(*p)->humanStringLanguage, ODR_CONTEXT, 3, 1, "humanStringLanguage") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_LanguageCode, + &(*p)->language, ODR_CONTEXT, 0, 1, "language") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->text, ODR_CONTEXT, 1, 0, "text") && + odr_sequence_end (o); +} + +int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_HumanStringUnit, &(*p)->strings, + &(*p)->num_strings, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObjectUnit_ianaType, + (Odr_fun) z_InternationalString, "ianaType"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObjectUnit_z3950type, + (Odr_fun) z_InternationalString, "z3950type"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObjectUnit_otherType, + (Odr_fun) z_InternationalString, "otherType"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "bodyType") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, odr_octetstring, + &(*p)->content, ODR_CONTEXT, 2, 0, "content") && + odr_sequence_end (o); +} + +int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_IconObjectUnit, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name) +{ + return z_InternationalString (o, p, opt, name); +} + +int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 0, 1, "name") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_implicit_tag (o, z_HumanString, + &(*p)->address, ODR_CONTEXT, 2, 1, "address") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->email, ODR_CONTEXT, 3, 1, "email") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->phone, ODR_CONTEXT, 4, 1, "phone") && + odr_sequence_end (o); +} + +int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->hostAddress, ODR_CONTEXT, 0, 0, "hostAddress") && + odr_implicit_tag (o, odr_integer, + &(*p)->port, ODR_CONTEXT, 1, 0, "port") && + odr_sequence_end (o); +} + +int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->pSel, ODR_CONTEXT, 0, 0, "pSel") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->sSel, ODR_CONTEXT, 1, 1, "sSel") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->tSel, ODR_CONTEXT, 2, 1, "tSel") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->nSap, ODR_CONTEXT, 3, 0, "nSap") && + odr_sequence_end (o); +} + +int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->type, ODR_CONTEXT, 0, 0, "type") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->address, ODR_CONTEXT, 1, 0, "address") && + odr_sequence_end (o); +} + +int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_NetworkAddress_iA, + (Odr_fun) z_NetworkAddressIA, "internetAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_NetworkAddress_oPA, + (Odr_fun) z_NetworkAddressOPA, "osiPresentationAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_NetworkAddress_other, + (Odr_fun) z_NetworkAddressOther, "other"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 0) && + (odr_sequence_of(o, (Odr_fun) z_QueryTypeDetails, &(*p)->queryTypesSupported, + &(*p)->num_queryTypesSupported, "queryTypesSupported") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->diagnosticsSets, + &(*p)->num_diagnosticsSets, "diagnosticsSets") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_AttributeSetId, &(*p)->attributeSetIds, + &(*p)->num_attributeSetIds, "attributeSetIds") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->schemas, + &(*p)->num_schemas, "schemas") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntaxes, + &(*p)->num_recordSyntaxes, "recordSyntaxes") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->resourceChallenges, + &(*p)->num_resourceChallenges, "resourceChallenges") || odr_ok(o)) && + odr_implicit_tag (o, z_AccessRestrictions, + &(*p)->restrictedAccess, ODR_CONTEXT, 6, 1, "restrictedAccess") && + odr_implicit_tag (o, z_Costs, + &(*p)->costInfo, ODR_CONTEXT, 8, 1, "costInfo") && + odr_implicit_settag (o, ODR_CONTEXT, 9) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->variantSets, + &(*p)->num_variantSets, "variantSets") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 10) && + (odr_sequence_of(o, (Odr_fun) z_ElementSetName, &(*p)->elementSetNames, + &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 11) && + odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->unitSystems, + &(*p)->num_unitSystems, "unitSystems") && + odr_sequence_end (o); +} + +int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_QueryTypeDetails_private, + (Odr_fun) z_PrivateCapabilities, "zprivate"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryTypeDetails_rpn, + (Odr_fun) z_RpnCapabilities, "rpn"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777, + (Odr_fun) z_Iso8777Capabilities, "iso8777"}, + {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_QueryTypeDetails_z39_58, + (Odr_fun) z_HumanString, "z39_58"}, + {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_QueryTypeDetails_erpn, + (Odr_fun) z_RpnCapabilities, "erpn"}, + {ODR_IMPLICIT, ODR_CONTEXT, 102, Z_QueryTypeDetails_rankedList, + (Odr_fun) z_HumanString, "rankedList"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->roperator, ODR_CONTEXT, 0, 0, "roperator") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_sequence_end (o); +} + +int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 0) && + (odr_sequence_of(o, (Odr_fun) z_PrivateCapOperator, &(*p)->operators, + &(*p)->num_operators, "operators") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys, + &(*p)->num_searchKeys, "searchKeys") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->description, + &(*p)->num_description, "description") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 0) && + (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->operators, + &(*p)->num_operators, "operators") || odr_ok(o)) && + odr_implicit_tag (o, odr_bool, + &(*p)->resultSetAsOperandSupported, ODR_CONTEXT, 1, 0, "resultSetAsOperandSupported") && + odr_implicit_tag (o, odr_bool, + &(*p)->restrictionOperandSupported, ODR_CONTEXT, 2, 0, "restrictionOperandSupported") && + odr_implicit_tag (o, z_ProximitySupport, + &(*p)->proximity, ODR_CONTEXT, 3, 1, "proximity") && + odr_sequence_end (o); +} + +int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 0) && + odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys, + &(*p)->num_searchKeys, "searchKeys") && + odr_implicit_tag (o, z_HumanString, + &(*p)->restrictions, ODR_CONTEXT, 1, 1, "restrictions") && + odr_sequence_end (o); +} + +int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->unit, ODR_CONTEXT, 0, 0, "unit") && + odr_explicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_sequence_end (o); +} + +int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxSupportUnit_known, + (Odr_fun) odr_integer, "known"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxSupportUnit_private, + (Odr_fun) z_ProxSupportPrivate, "zprivate"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->anySupport, ODR_CONTEXT, 0, 0, "anySupport") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_ProxSupportUnit, &(*p)->unitsSupported, + &(*p)->num_unitsSupported, "unitsSupported") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->searchKey, ODR_CONTEXT, 0, 0, "searchKey") && + odr_implicit_tag (o, z_HumanString, + &(*p)->description, ODR_CONTEXT, 1, 1, "description") && + odr_sequence_end (o); +} + +int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, odr_integer, + &(*p)->accessType, ODR_CONTEXT, 0, 0, "accessType") && + odr_implicit_tag (o, z_HumanString, + &(*p)->accessText, ODR_CONTEXT, 1, 1, "accessText") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->accessChallenges, + &(*p)->num_accessChallenges, "accessChallenges") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_AccessRestrictionsUnit, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_HumanString, + &(*p)->forWhat, ODR_CONTEXT, 1, 0, "forWhat") && + odr_implicit_tag (o, z_Charge, + &(*p)->charge, ODR_CONTEXT, 2, 0, "charge") && + odr_sequence_end (o); +} + +int z_Costs (ODR o, Z_Costs **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_Charge, + &(*p)->connectCharge, ODR_CONTEXT, 0, 1, "connectCharge") && + odr_implicit_tag (o, z_Charge, + &(*p)->connectTime, ODR_CONTEXT, 1, 1, "connectTime") && + odr_implicit_tag (o, z_Charge, + &(*p)->displayCharge, ODR_CONTEXT, 2, 1, "displayCharge") && + odr_implicit_tag (o, z_Charge, + &(*p)->searchCharge, ODR_CONTEXT, 3, 1, "searchCharge") && + odr_implicit_tag (o, z_Charge, + &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1, "subscriptCharge") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_CostsOtherCharge, &(*p)->otherCharges, + &(*p)->num_otherCharges, "otherCharges") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_Charge (ODR o, Z_Charge **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_IntUnit, + &(*p)->cost, ODR_CONTEXT, 1, 0, "cost") && + odr_implicit_tag (o, z_Unit, + &(*p)->perWhat, ODR_CONTEXT, 2, 1, "perWhat") && + odr_implicit_tag (o, z_HumanString, + &(*p)->text, ODR_CONTEXT, 3, 1, "text") && + odr_sequence_end (o); +} + +int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->databases, + &(*p)->num_databases, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->defaultAttributeSet, ODR_CONTEXT, 0, 0, "defaultAttributeSet") && + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) z_AttributeCombination, &(*p)->legalCombinations, + &(*p)->num_legalCombinations, "legalCombinations") && + odr_sequence_end (o); +} + +int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_AttributeOccurrence, &(*p)->occurrences, + &(*p)->num_occurrences, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_StringOrNumeric, &(*p)->attributes, + &(*p)->num_attributes, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none, + (Odr_fun) odr_null, "any_or_none"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific, + (Odr_fun) z_AttributeValueList, "specific"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_AttributeSetId, + &(*p)->attributeSet, ODR_CONTEXT, 0, 1, "attributeSet") && + odr_implicit_tag (o, odr_integer, + &(*p)->attributeType, ODR_CONTEXT, 1, 0, "attributeType") && + odr_implicit_tag (o, odr_null, + &(*p)->mustBeSupplied, ODR_CONTEXT, 2, 1, "mustBeSupplied") && + odr_choice (o, arm, &(*p)->attributeValues, &(*p)->which, 0) && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-grs.c b/dependencies/yaz-2.1.28/src/z-grs.c new file mode 100644 index 0000000..85374d7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-grs.c @@ -0,0 +1,225 @@ +/** \file z-grs.c + \brief ASN.1 Module RecordSyntax-generic + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_GenericRecord (ODR o, Z_GenericRecord **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_TaggedElement, &(*p)->elements, + &(*p)->num_elements, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_TaggedElement (ODR o, Z_TaggedElement **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && + odr_implicit_tag (o, odr_integer, + &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1, "tagOccurrence") && + odr_explicit_tag (o, z_ElementData, + &(*p)->content, ODR_CONTEXT, 4, 0, "content") && + odr_implicit_tag (o, z_ElementMetaData, + &(*p)->metaData, ODR_CONTEXT, 5, 1, "metaData") && + odr_implicit_tag (o, z_Variant, + &(*p)->appliedVariant, ODR_CONTEXT, 6, 1, "appliedVariant") && + odr_sequence_end (o); +} + +int z_ElementData (ODR o, Z_ElementData **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_ElementData_octets, + (Odr_fun) odr_octetstring, "octets"}, + {-1, -1, -1, Z_ElementData_numeric, + (Odr_fun) odr_integer, "numeric"}, + {-1, -1, -1, Z_ElementData_date, + (Odr_fun) odr_generalizedtime, "date"}, + {-1, -1, -1, Z_ElementData_ext, + (Odr_fun) z_External, "ext"}, + {-1, -1, -1, Z_ElementData_string, + (Odr_fun) z_InternationalString, "string"}, + {-1, -1, -1, Z_ElementData_trueOrFalse, + (Odr_fun) odr_bool, "trueOrFalse"}, + {-1, -1, -1, Z_ElementData_oid, + (Odr_fun) odr_oid, "oid"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementData_intUnit, + (Odr_fun) z_IntUnit, "intUnit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementData_elementNotThere, + (Odr_fun) odr_null, "elementNotThere"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ElementData_elementEmpty, + (Odr_fun) odr_null, "elementEmpty"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ElementData_noDataRequested, + (Odr_fun) odr_null, "noDataRequested"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ElementData_diagnostic, + (Odr_fun) z_External, "diagnostic"}, + {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ElementData_subtree, + (Odr_fun) z_GenericRecord, "subtree"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ElementMetaData (ODR o, Z_ElementMetaData **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_Order, + &(*p)->seriesOrder, ODR_CONTEXT, 1, 1, "seriesOrder") && + odr_implicit_tag (o, z_Usage, + &(*p)->usageRight, ODR_CONTEXT, 2, 1, "usageRight") && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + (odr_sequence_of(o, (Odr_fun) z_HitVector, &(*p)->hits, + &(*p)->num_hits, "hits") || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->displayName, ODR_CONTEXT, 4, 1, "displayName") && + odr_implicit_settag (o, ODR_CONTEXT, 5) && + (odr_sequence_of(o, (Odr_fun) z_Variant, &(*p)->supportedVariants, + &(*p)->num_supportedVariants, "supportedVariants") || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->message, ODR_CONTEXT, 6, 1, "message") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->elementDescriptor, ODR_CONTEXT, 7, 1, "elementDescriptor") && + odr_implicit_tag (o, z_TagPath, + &(*p)->surrogateFor, ODR_CONTEXT, 8, 1, "surrogateFor") && + odr_implicit_tag (o, z_TagPath, + &(*p)->surrogateElement, ODR_CONTEXT, 9, 1, "surrogateElement") && + odr_implicit_tag (o, z_External, + &(*p)->other, ODR_CONTEXT, 99, 1, "other") && + odr_sequence_end (o); +} + +int z_TagPath_s (ODR o, Z_TagPath_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && + odr_implicit_tag (o, odr_integer, + &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1, "tagOccurrence") && + odr_sequence_end (o); +} + +int z_TagPath (ODR o, Z_TagPath **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_TagPath_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_Order (ODR o, Z_Order **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->ascending, ODR_CONTEXT, 1, 0, "ascending") && + odr_implicit_tag (o, odr_integer, + &(*p)->order, ODR_CONTEXT, 2, 0, "order") && + odr_sequence_end (o); +} + +int z_Usage (ODR o, Z_Usage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->restriction, ODR_CONTEXT, 2, 1, "restriction") && + odr_sequence_end (o); +} + +int z_HitVector (ODR o, Z_HitVector **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_Term(o, &(*p)->satisfier, 1, "satisfier") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->offsetIntoElement, ODR_CONTEXT, 1, 1, "offsetIntoElement") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->length, ODR_CONTEXT, 2, 1, "length") && + odr_implicit_tag (o, odr_integer, + &(*p)->hitRank, ODR_CONTEXT, 3, 1, "hitRank") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->targetToken, ODR_CONTEXT, 4, 1, "targetToken") && + odr_sequence_end (o); +} + +int z_Triple (ODR o, Z_Triple **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {-1, -1, -1, Z_Triple_integer, + (Odr_fun) odr_integer, "integer"}, + {-1, -1, -1, Z_Triple_internationalString, + (Odr_fun) z_InternationalString, "internationalString"}, + {-1, -1, -1, Z_Triple_octetString, + (Odr_fun) odr_octetstring, "octetString"}, + {-1, -1, -1, Z_Triple_objectIdentifier, + (Odr_fun) odr_oid, "objectIdentifier"}, + {-1, -1, -1, Z_Triple_boolean, + (Odr_fun) odr_bool, "boolean"}, + {-1, -1, -1, Z_Triple_null, + (Odr_fun) odr_null, "null"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Triple_unit, + (Odr_fun) z_Unit, "unit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Triple_valueAndUnit, + (Odr_fun) z_IntUnit, "valueAndUnit"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->variantSetId, ODR_CONTEXT, 0, 1, "variantSetId") && + odr_implicit_tag (o, odr_integer, + &(*p)->zclass, ODR_CONTEXT, 1, 0, "zclass") && + odr_implicit_tag (o, odr_integer, + &(*p)->type, ODR_CONTEXT, 2, 0, "type") && + odr_constructed_begin (o, &(*p)->value, ODR_CONTEXT, 3, "value") && + odr_choice (o, arm, &(*p)->value, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} + +int z_Variant (ODR o, Z_Variant **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_oid, + &(*p)->globalVariantSetId, ODR_CONTEXT, 1, 1, "globalVariantSetId") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + odr_sequence_of(o, (Odr_fun) z_Triple, &(*p)->triples, + &(*p)->num_triples, "triples") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-mterm2.c b/dependencies/yaz-2.1.28/src/z-mterm2.c new file mode 100644 index 0000000..9b85387 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-mterm2.c @@ -0,0 +1,31 @@ +/** \file z-mterm2.c + \brief ASN.1 Module UserInfoFormat-multipleSearchTerms-2 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_MultipleSearchTerms_2_s (ODR o, Z_MultipleSearchTerms_2_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Term, + &(*p)->term, ODR_CONTEXT, 1, 0, "term") && + odr_implicit_tag (o, odr_bool, + &(*p)->flag, ODR_CONTEXT, 2, 1, "flag") && + odr_sequence_end (o); +} + +int z_MultipleSearchTerms_2 (ODR o, Z_MultipleSearchTerms_2 **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_MultipleSearchTerms_2_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-oclcui.c b/dependencies/yaz-2.1.28/src/z-oclcui.c new file mode 100644 index 0000000..1e18fb9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-oclcui.c @@ -0,0 +1,30 @@ +/** \file z-oclcui.c + \brief ASN.1 Module UserInfoFormat-oclcUserInformation + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_OCLC_UserInformation (ODR o, Z_OCLC_UserInformation **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_visiblestring, + &(*p)->motd, ODR_CONTEXT, 1, 1, "motd") && + (odr_sequence_of(o, (Odr_fun) z_DBName, &(*p)->dblist, + &(*p)->num_dblist, "dblist") || odr_ok(o)) && + odr_implicit_tag (o, odr_bool, + &(*p)->failReason, ODR_CONTEXT, 3, 1, "failReason") && + odr_implicit_tag (o, odr_integer, + &(*p)->code, ODR_CONTEXT, 1, 1, "code") && + odr_implicit_tag (o, odr_visiblestring, + &(*p)->text, ODR_CONTEXT, 2, 1, "text") && + odr_sequence_end (o); +} + +int z_DBName (ODR o, Z_DBName **p, int opt, const char *name) +{ + return odr_implicit_tag (o, odr_visiblestring, p, ODR_CONTEXT, 2, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-opac.c b/dependencies/yaz-2.1.28/src/z-opac.c new file mode 100644 index 0000000..c469c41 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-opac.c @@ -0,0 +1,128 @@ +/** \file z-opac.c + \brief ASN.1 Module RecordSyntax-opac + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_OPACRecord (ODR o, Z_OPACRecord **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_External, + &(*p)->bibliographicRecord, ODR_CONTEXT, 1, 1, "bibliographicRecord") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_HoldingsRecord, &(*p)->holdingsData, + &(*p)->num_holdingsData, "holdingsData") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_HoldingsRecord (ODR o, Z_HoldingsRecord **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_HoldingsRecord_marcHoldingsRecord, + (Odr_fun) z_External, "marcHoldingsRecord"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_HoldingsRecord_holdingsAndCirc, + (Odr_fun) z_HoldingsAndCircData, "holdingsAndCirc"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_HoldingsAndCircData (ODR o, Z_HoldingsAndCircData **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->typeOfRecord, ODR_CONTEXT, 1, 1, "typeOfRecord") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->encodingLevel, ODR_CONTEXT, 2, 1, "encodingLevel") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->format, ODR_CONTEXT, 3, 1, "format") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->receiptAcqStatus, ODR_CONTEXT, 4, 1, "receiptAcqStatus") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->generalRetention, ODR_CONTEXT, 5, 1, "generalRetention") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->completeness, ODR_CONTEXT, 6, 1, "completeness") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->dateOfReport, ODR_CONTEXT, 7, 1, "dateOfReport") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->nucCode, ODR_CONTEXT, 8, 1, "nucCode") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->localLocation, ODR_CONTEXT, 9, 1, "localLocation") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->shelvingLocation, ODR_CONTEXT, 10, 1, "shelvingLocation") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->callNumber, ODR_CONTEXT, 11, 1, "callNumber") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->shelvingData, ODR_CONTEXT, 12, 1, "shelvingData") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->copyNumber, ODR_CONTEXT, 13, 1, "copyNumber") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->publicNote, ODR_CONTEXT, 14, 1, "publicNote") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->reproductionNote, ODR_CONTEXT, 15, 1, "reproductionNote") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->termsUseRepro, ODR_CONTEXT, 16, 1, "termsUseRepro") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->enumAndChron, ODR_CONTEXT, 17, 1, "enumAndChron") && + odr_implicit_settag (o, ODR_CONTEXT, 18) && + (odr_sequence_of(o, (Odr_fun) z_Volume, &(*p)->volumes, + &(*p)->num_volumes, "volumes") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 19) && + (odr_sequence_of(o, (Odr_fun) z_CircRecord, &(*p)->circulationData, + &(*p)->num_circulationData, "circulationData") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_Volume (ODR o, Z_Volume **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->enumeration, ODR_CONTEXT, 1, 1, "enumeration") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->chronology, ODR_CONTEXT, 2, 1, "chronology") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->enumAndChron, ODR_CONTEXT, 3, 1, "enumAndChron") && + odr_sequence_end (o); +} + +int z_CircRecord (ODR o, Z_CircRecord **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->availableNow, ODR_CONTEXT, 1, 0, "availableNow") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->availablityDate, ODR_CONTEXT, 2, 1, "availablityDate") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->availableThru, ODR_CONTEXT, 3, 1, "availableThru") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->restrictions, ODR_CONTEXT, 4, 1, "restrictions") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->itemId, ODR_CONTEXT, 5, 1, "itemId") && + odr_implicit_tag (o, odr_bool, + &(*p)->renewable, ODR_CONTEXT, 6, 0, "renewable") && + odr_implicit_tag (o, odr_bool, + &(*p)->onHold, ODR_CONTEXT, 7, 0, "onHold") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->enumAndChron, ODR_CONTEXT, 8, 1, "enumAndChron") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->midspine, ODR_CONTEXT, 9, 1, "midspine") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->temporaryLocation, ODR_CONTEXT, 10, 1, "temporaryLocation") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-rrf1.c b/dependencies/yaz-2.1.28/src/z-rrf1.c new file mode 100644 index 0000000..dbbc475 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-rrf1.c @@ -0,0 +1,39 @@ +/** \file z-rrf1.c + \brief ASN.1 Module ResourceReport-Format-Resource-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_ResourceReport1 (ODR o, Z_ResourceReport1 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + odr_sequence_of(o, (Odr_fun) z_Estimate1, &(*p)->estimates, + &(*p)->num_estimates, "estimates") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->message, ODR_CONTEXT, 2, 0, "message") && + odr_sequence_end (o); +} + +int z_Estimate1 (ODR o, Z_Estimate1 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_EstimateType, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, odr_integer, + &(*p)->value, ODR_CONTEXT, 2, 0, "value") && + odr_implicit_tag (o, odr_integer, + &(*p)->currency_code, ODR_CONTEXT, 3, 1, "currency_code") && + odr_sequence_end (o); +} + +int z_EstimateType (ODR o, Z_EstimateType **p, int opt, const char *name) +{ + return odr_integer (o, p, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-rrf2.c b/dependencies/yaz-2.1.28/src/z-rrf2.c new file mode 100644 index 0000000..92ca783 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-rrf2.c @@ -0,0 +1,32 @@ +/** \file z-rrf2.c + \brief ASN.1 Module ResourceReport-Format-Resource-2 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_ResourceReport2 (ODR o, Z_ResourceReport2 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_Estimate2, &(*p)->estimates, + &(*p)->num_estimates, "estimates") || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->message, ODR_CONTEXT, 2, 1, "message") && + odr_sequence_end (o); +} + +int z_Estimate2 (ODR o, Z_Estimate2 **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_StringOrNumeric, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->value, ODR_CONTEXT, 2, 0, "value") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-sum.c b/dependencies/yaz-2.1.28/src/z-sum.c new file mode 100644 index 0000000..7080bc4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-sum.c @@ -0,0 +1,57 @@ +/** \file z-sum.c + \brief ASN.1 Module RecordSyntax-summary + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_BriefBib (ODR o, Z_BriefBib **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->title, ODR_CONTEXT, 1, 0, "title") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->author, ODR_CONTEXT, 2, 1, "author") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->callNumber, ODR_CONTEXT, 3, 1, "callNumber") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->recordType, ODR_CONTEXT, 4, 1, "recordType") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->bibliographicLevel, ODR_CONTEXT, 5, 1, "bibliographicLevel") && + odr_implicit_settag (o, ODR_CONTEXT, 6) && + (odr_sequence_of(o, (Odr_fun) z_FormatSpec, &(*p)->format, + &(*p)->num_format, "format") || odr_ok(o)) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->publicationPlace, ODR_CONTEXT, 7, 1, "publicationPlace") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->publicationDate, ODR_CONTEXT, 8, 1, "publicationDate") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->targetSystemKey, ODR_CONTEXT, 9, 1, "targetSystemKey") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->satisfyingElement, ODR_CONTEXT, 10, 1, "satisfyingElement") && + odr_implicit_tag (o, odr_integer, + &(*p)->rank, ODR_CONTEXT, 11, 1, "rank") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->documentId, ODR_CONTEXT, 12, 1, "documentId") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->abstract, ODR_CONTEXT, 13, 1, "abstract") && + z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && + odr_sequence_end (o); +} + +int z_FormatSpec (ODR o, Z_FormatSpec **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->type, ODR_CONTEXT, 1, 0, "type") && + odr_implicit_tag (o, odr_integer, + &(*p)->size, ODR_CONTEXT, 2, 1, "size") && + odr_implicit_tag (o, odr_integer, + &(*p)->bestPosn, ODR_CONTEXT, 3, 1, "bestPosn") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z-sutrs.c b/dependencies/yaz-2.1.28/src/z-sutrs.c new file mode 100644 index 0000000..f3eb5b9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-sutrs.c @@ -0,0 +1,19 @@ +/** \file z-sutrs.c + \brief ASN.1 Module RecordSyntax-SUTRS + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_SutrsRecord (ODR o, Z_SutrsRecord **p, int opt, const char *name) +{ + return z_InternationalString (o, p, opt, name); +} + +int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_octetstring, p, ODR_UNIVERSAL, + ODR_GENERALSTRING, opt, name); +} + diff --git a/dependencies/yaz-2.1.28/src/z-uifr1.c b/dependencies/yaz-2.1.28/src/z-uifr1.c new file mode 100644 index 0000000..cb033c0 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-uifr1.c @@ -0,0 +1,119 @@ +/** \file z-uifr1.c + \brief ASN.1 Module UserInfoFormat-searchResult-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_SearchInfoReport_s (ODR o, Z_SearchInfoReport_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->subqueryId, ODR_CONTEXT, 1, 1, "subqueryId") && + odr_implicit_tag (o, odr_bool, + &(*p)->fullQuery, ODR_CONTEXT, 2, 0, "fullQuery") && + odr_explicit_tag (o, z_QueryExpression, + &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1, "subqueryExpression") && + odr_explicit_tag (o, z_QueryExpression, + &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1, "subqueryInterpretation") && + odr_explicit_tag (o, z_QueryExpression, + &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1, "subqueryRecommendation") && + odr_implicit_tag (o, odr_integer, + &(*p)->subqueryCount, ODR_CONTEXT, 6, 1, "subqueryCount") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1, "subqueryWeight") && + odr_implicit_tag (o, z_ResultsByDB, + &(*p)->resultsByDB, ODR_CONTEXT, 8, 1, "resultsByDB") && + odr_sequence_end (o); +} + +int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_SearchInfoReport_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ResultsByDB_sList (ODR o, Z_ResultsByDB_sList **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ResultsByDB_s (ODR o, Z_ResultsByDB_s **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_s_all, + (Odr_fun) odr_null, "all"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_s_list, + (Odr_fun) z_ResultsByDB_sList, "list"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "databases") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, odr_integer, + &(*p)->count, ODR_CONTEXT, 2, 1, "count") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetName, ODR_CONTEXT, 3, 1, "resultSetName") && + odr_sequence_end (o); +} + +int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_ResultsByDB_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Term, + &(*p)->queryTerm, ODR_CONTEXT, 1, 0, "queryTerm") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->termComment, ODR_CONTEXT, 2, 1, "termComment") && + odr_sequence_end (o); +} + +int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryExpression_term, + (Odr_fun) z_QueryExpressionTerm, "term"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query, + (Odr_fun) z_Query, "query"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/z-univ.c b/dependencies/yaz-2.1.28/src/z-univ.c new file mode 100644 index 0000000..4e420f0 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z-univ.c @@ -0,0 +1,43 @@ +/** \file z-univ.c + \brief ASN.1 Module ResourceReport-Format-Universe-1 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_StringOrNumeric(o, &(*p)->database, 0, "database") && + z_StringOrNumeric(o, &(*p)->hits, 0, "hits") && + odr_sequence_end (o); +} + +int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + z_StringOrNumeric(o, &(*p)->hitno, 0, "hitno") && + odr_sequence_end (o); +} + +int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_UniverseReport_databaseHits, + (Odr_fun) z_UniverseReportHits, "databaseHits"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_UniverseReport_duplicate, + (Odr_fun) z_UniverseReportDuplicate, "duplicate"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_integer(o, &(*p)->totalHits, 0, "totalHits") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/z.tcl b/dependencies/yaz-2.1.28/src/z.tcl new file mode 100644 index 0000000..3ce3383 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z.tcl @@ -0,0 +1,351 @@ +# YC Sample Config File for Z39.50 +# $Id: z.tcl,v 1.1 2003/10/27 12:21:36 adam Exp $ +# ---------------------------------------------------------- +# Prefix Specifications +# +# 1: C function prefix +# 2: C type prefix +# 3: C preprocessor prefix + +# Default prefix +set default-prefix {z_ Z_ Z_} + +# Name clash in extended services (TargetPart, OriginPartToKeep, etc) +# You can possibly think of better names :) +set prefix(ESFormat-PersistentResultSet) {z_PR Z_PR Z_PR} +set prefix(ESFormat-PersistentQuery) {z_PQuery Z_PQuery Z_PQuery} +set prefix(ESFormat-PeriodicQuerySchedule) {z_PQS Z_PQS Z_PQS} +set prefix(ESFormat-ItemOrder) {z_IO Z_IO Z_IO} +set prefix(ESFormat-Update0) {z_IU0 Z_IU0 Z_IU0} +set prefix(ESFormat-Update) {z_IU Z_IU Z_IU} +set prefix(ESFormat-ExportSpecification) {z_ES Z_ES Z_ES} +set prefix(ESFormat-ExportInvocation) {z_EI Z_EI Z_EI} + +# ---------------------------------------------------------- +# Settings for core of the protocol +set m Z39-50-APDU-1995 + +# Filename +set filename($m) z-core + +# Public header initialization code +set init($m,h) { +typedef struct Z_External Z_External; +YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); +} + +set body($m,h) " +#ifdef __cplusplus +extern \"C\" \{ +#endif + +int z_ANY_type_0 (ODR o, void **p, int opt); + +#ifdef __cplusplus +\} +#endif +" +set body($m,c) { + +/* the type-0 query ... */ +int z_ANY_type_0 (ODR o, void **p, int opt) +{ + return 0; +} + +} + +# Type Name overrides +set map($m,PDU) APDU +set membermap($m,Operator,and) {Operator_and op_and} +set membermap($m,Operator,or) {Operator_or op_or} +#set membermap($m,Operator,and-not) {Operator_and_not op_and_not} +set map($m,AttributeElement_complex) ComplexAttribute +set map($m,DeleteSetStatus) DeleteStatus +set membermap($m,ProximityOperator,private) {ProximityOperator_private zprivate} +set unionmap($m,AttributeElement,attributeValue) {which value AttributeValue} +set membermap($m,ElementSpec,externalEspec) externalSpec +set membermap($m,RPNStructure,op) simple +set membermap($m,RPNStructure,rpnRpnOp) complex +set map($m,RPNStructure_complex) Complex +set membermap($m,Operand,attrTerm) {Operand_APT attributesPlusTerm} +set membermap($m,Operand,resultSet) {Operand_resultSetId resultSetId} +set membermap($m,Operand,resultAttr) {Operand_resultAttr resultAttr} +set membermap($m,Complex,rpn1) s1 +set membermap($m,Complex,rpn2) s2 +set membermap($m,Complex,op) roperator +set membermap($m,RPNQuery,attributeSet) attributeSetId +set membermap($m,RPNQuery,rpn) RPNStructure +set map($m,KnownProximityUnit) ProxUnit +set membermap($m,ProximityOperator,lessThan) {Prox_lessThan 1} +set membermap($m,ProximityOperator,lessThanOrEqual) {Prox_lessThanOrEqual 1} +set membermap($m,ProximityOperator,equal) {Prox_equal 1} +set membermap($m,ProximityOperator,greaterThanOrEqual) {Prox_greaterThanOrEqual 1} +set membermap($m,ProximityOperator,greaterThan) {Prox_greaterThan 1} +set membermap($m,ProximityOperator,notEqual) {Prox_notEqual 1} +# +set membermap($m,Records,responseRecords) {Records_DBOSD databaseOrSurDiagnostics} +set membermap($m,Records,nonSurrogateDiagnostic) {Records_NSD nonSurrogateDiagnostic} +set membermap($m,Records,multipleNonSurDiagnostics) {Records_multipleNSD multipleNonSurDiagnostics} +set map($m,Records_DBOSD) NamePlusRecordList +set map($m,Records_NSD) DiagRec +set map($m,Records_multipleNSD) DiagRecs +set membermap($m,NamePlusRecord,name) databaseName +set unionmap($m,DiagRecs) {num_diagRecs diagRecs} +set unionmap($m,NamePlusRecordList) {num_records records} +# +set membermap($m,ElementSetNames,genericElementSetName) generic +set map($m,ElementSetNames_databaseSpecific) DatabaseSpecific +# +set map($m,OccurrenceByAttributes_s) OccurrenceByAttributesElem +set map($m,OccurrenceByAttributesElem_byDatabase) byDatabaseList +# +set membermap($m,SortElement,datbaseSpecific) databaseSpecific +set map($m,SortElement_databaseSpecific) SortDbSpecificList +# +set map($m,SortKey_sortAttributes) SortAttributes +set unionmap($m,PresentRequest,recordComposition) {} +set map($m,PresentRequest_0) RecordComposition +set unionmap($m,PresentRequest,additionalRanges) {num_ranges additionalRanges} +set unionmap($m,SortRequest,sortSequence) {} +set map($m,SortRequest_0) SortKeySpecList +set unionmap($m,SortKeySpecList) {num_specs specs} +set map($m,InitializeRequest) InitRequest +set map($m,InitializeResponse) InitResponse +set unionmap($m,CloseReason) Close +set membermap($m,ProtocolVersion,version-1) 1 +set membermap($m,ProtocolVersion,version-2) 2 +set membermap($m,ProtocolVersion,version-3) 3 +set membermap($m,InitRequest,exceptionalRecordSize) maximumRecordSize +set membermap($m,InitResponse,exceptionalRecordSize) maximumRecordSize +set map($m,RecordsMultipleNonSurDiagnostics) DiagRecs +set map($m,RecordsDatabaseOrSurDiagnostics) NamePlusRecordList +set membermap($m,NamePlusRecord,retrievalRecord) databaseRecord +set unionmap($m,RecordComposition) {which u RecordComp} +set unionmap($m,ScanResponse,scanStatus) Scan +set unionmap($m,AttributeList) {num_attributes attributes} +set membermap($m,SortKey,sortfield) sortField +set map($m,CompSpec_0) DbSpecific +set map($m,DatabaseSpecific_s) DatabaseSpecificUnit +set map($m,ListStatuses_s) ListStatus +set map($m,IdAuthenticationIdPass) IdPass +set map($m,OtherInformation_s) OtherInformationUnit +set unionmap($m,OtherInformationUnit,information) {which information OtherInfo} +set unionmap($m,OtherInformation) {num_elements list} +set unionmap($m,Specification,elementSpec) {} +set map($m,Specification_0) ElementSpec +set unionmap($m,Specification,schema) {which schema Schema} + +# ---- +set m DiagnosticFormatDiag1 +set filename($m) z-diag1 +set map($m,DiagFormat_tooMany) TooMany +set map($m,DiagFormat_badSpec) BadSpec +set map($m,DiagFormat_dbUnavail) DbUnavail +set map($m,DiagFormat_attribute) Attribute +set map($m,DiagFormat_attCombo) AttCombo +set map($m,DiagFormat_term) DiagTerm +set map($m,DiagFormat_proximity) Proximity +set map($m,DiagFormat_scan) Scan +set map($m,DiagFormat_sort) Sort +set unionmap($m,Sort) {which u SortD} +set map($m,DiagFormat_segmentation) Segmentation +set map($m,DiagFormat_extServices) ExtServices +set map($m,DiagFormat_accessCtrl) AccessCtrl +set map($m,DiagFormat_recordSyntax) RecordSyntax +# +set map($m,Scan_termList2) AttrListList +set map($m,Sort_inputTooLarge) StringList +# +set map($m,AccessCtrl_oid) OidList +set map($m,AccessCtrl_alternative) AltOidList +# ---- +set m RecordSyntax-explain +set filename($m) z-exp +set map($m,Explain-Record) ExplainRecord +set map($m,ElementDataType_structured) ElementInfoList +set map($m,HumanString_s) HumanStringUnit +set unionmap($m,HumanString) {num_strings strings} +set membermap($m,CommonInfo,humanString-Language) humanStringLanguage +set unionmap($m,AttributeOccurrence,attributeValues) {which attributeValues AttributeOcc} +set unionmap($m,AttributeCombination) {num_occurrences occurrences} +# +set membermap($m,NetworkAddress,internetAddress) {NetworkAddress_iA internetAddress} +set map($m,NetworkAddress_iA) NetworkAddressIA +set membermap($m,NetworkAddress,osiPresentationAddress) {NetworkAddress_oPA osiPresentationAddress} +set map($m,NetworkAddress_oPA) NetworkAddressOPA +set map($m,NetworkAddress_other) NetworkAddressOther +set unionmap($m,DatabaseList) {num_databases databases} +set membermap($m,TargetInfo,recent-news) recentNews +set membermap($m,TargetInfo,usage-restrictions) usageRest +set membermap($m,DatabaseInfo,user-fee) userFee +# +set map($m,ProximitySupport_0) ProxSupportUnit +set map($m,ProxSupportUnitZprivate) ProxSupportPrivate +set membermap($m,ProxSupportUnit,private) {ProxSupportUnit_private zprivate} +# +set map($m,AttributeOccurrence_specific) AttributeValueList +set unionmap($m,AttributeValueList) {num_attributes attributes} + +set unionmap($m,ExplainRecord) {which u Explain} +set map($m,SchemaInfo_0) TagTypeMapping +set map($m,TagSetInfo_0) TagSetElements +set map($m,TermListInfo_0) TermListElement +set map($m,TermListDetails_0) EScanInfo +set map($m,PrivateCapabilities_0) PrivateCapOperator +set map($m,Costs_0) CostsOtherCharge +set map($m,Path_s) PathUnit +set map($m,IconObject_s) IconObjectUnit +set map($m,NetworkAddressInternetAddress) NetworkAddressIA +set map($m,NetworkAddressOsiPresentationAddress) NetworkAddressOPA +set membermap($m,QueryTypeDetails,private) {QueryTypeDetails_private zprivate} +set membermap($m,PrivateCapOperator,operator) roperator +set map($m,AccessRestrictions_s) AccessRestrictionsUnit +# ---- +set m RecordSyntax-SUTRS +set filename($m) z-sutrs +#set map($m,SutrsRecord) SUTRS +set body($m,c) { +int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name) +{ + return odr_implicit_tag(o, odr_octetstring, p, ODR_UNIVERSAL, + ODR_GENERALSTRING, opt, name); +} +} + +set init($m,h) { +typedef Odr_oct Z_SUTRS; +YAZ_EXPORT int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name); +} +# ---- +set m RecordSyntax-opac +set filename($m) z-opac +# ---- +set m RecordSyntax-summary +set filename($m) z-sum +# ---- +set m RecordSyntax-generic +set filename($m) z-grs +set map($m,ElementData_subtree) GenericRecord +set map($m,Variant_0) Triple +set membermap($m,Triple,class) zclass +set unionmap($m,Triple,value) {which value Triple} +set unionmap($m,GenericRecord) {num_elements elements} +# ---- +set m RecordSyntax-ESTaskPackage +set filename($m) z-estask +# ---- +set m ResourceReport-Format-Resource-1 +set filename($m) z-rrf1 +set map($m,ResourceReport) ResourceReport1 +set map($m,Estimate) Estimate1 +# ---- +set m ResourceReport-Format-Resource-2 +set filename($m) z-rrf2 +set map($m,ResourceReport) ResourceReport2 +set map($m,Estimate) Estimate2 +# ---- +set m AccessControlFormat-prompt-1 +set filename($m) z-accform1 +set membermap($m,PromptId,enummeratedPrompt) enumeratedPrompt +set map($m,PromptObject) PromptObject1 +set map($m,Challenge) Challenge1 +set map($m,Challenge1_s) ChallengeUnit1 +set map($m,Response) Response1 +set map($m,Response1_s) ResponseUnit1 +set map($m,PromptObject) PromptObject1 +# ---- +set m AccessControlFormat-des-1 +set filename($m) z-accdes1 +# ---- +set m AccessControlFormat-krb-1 +set filename($m) z-acckrb1 +# ---- +set m ESFormat-PersistentResultSet +set filename($m) zes-pset +# ---- +set m ESFormat-PersistentQuery +set filename($m) zes-pquery +# ---- +set m ESFormat-PeriodicQuerySchedule +set filename($m) zes-psched +# ---- +set m ESFormat-ItemOrder +set filename($m) zes-order +set map($m,ItemOrderEsRequest) Request +set map($m,ItemOrderTaskPackage) TaskPackage +set map($m,OriginPartToKeep_0) Contact +set map($m,OriginPartToKeep_1) Billing +set map($m,OriginPartNotToKeep_0) ResultSetItem +# +# ---- (old version) +set m ESFormat-Update0 +set filename($m) zes-update0 +set map($m,SuppliedRecords_s) SuppliedRecords_elem +set map($m,SuppliedRecords_elem_0) SuppliedRecordsId +# +# ---- (new, current version) +set m ESFormat-Update +set filename($m) zes-update +set map($m,SuppliedRecords_s) SuppliedRecords_elem +set map($m,SuppliedRecords_elem_0) SuppliedRecordsId +# ---- +set m ESFormat-ExportSpecification +set filename($m) zes-exps +# ---- +set m ESFormat-ExportInvocation +set filename($m) zes-expi +# ---- +set m UserInfoFormat-searchResult-1 +set filename($m) z-uifr1 +# ---- +set m ElementSpecificationFormat-eSpec-1 +set filename($m) z-espec1 +set map($m,Espec-1) Espec1 +set map($m,TagPath) ETagPath +set map($m,ETagPath_s) ETagUnit +set map($m,ETagUnitSpecificTag) SpecificTag +set membermap($m,SpecificTag,occurrence) occurrences +set unionmap($m,ElementRequest) {which u ERequest} +set unionmap($m,ETagPath) {num_tags tags} +set map($m,OccurrencesValues) OccurValues +# ---- +set m UserInfoFormat-dateTime +set filename($m) z-date +set map($m,Z3950Date) Date +set map($m,Z3950Time) Time +set unionmap($m,Z3950Date,era) {} +set map($m,DateFlags_0) Era +set map($m,Z3950DateMonthAndDay) MonthAndDay +set map($m,Z3950DateQuarter) DateQuater +set map($m,Z3950DateSeason) DateSeason +set map($m,Date_0) DateFlags +set unionmap($m,DateFlags,era) {} +# ---- +set m UserInfoFormat-multipleSearchTerms-2 +set filename($m) z-mterm2 +# ---- +set m ResourceReport-Format-Universe-1 +set filename($m) z-univ +# ---- +set m UserInfoFormat-oclcUserInformation +set filename($m) z-oclcui +# ---- +set m ESFormat-Admin +set filename($m) zes-admin +set map($m,EsRequest) ESAdminRequest +set map($m,TaskPackage) ESAdminTaskPackage +set map($m,OriginPartToKeep) ESAdminOriginPartToKeep +set map($m,OriginPartNotToKeep) ESAdminOriginPartNotToKeep +set map($m,TargetPart) ESAdminTargetPart +# ---- +set m NegotiationRecordDefinition-charSetandLanguageNegotiation-3 +set filename($m) z-charneg +set membermap($m,OriginProposal_0,private) {OriginProposal_0_private zprivate} +set membermap($m,TargetResponse,private) {TargetResponse_private zprivate} +# ---------------------------------------------------------- +# "Constructed" types defined by means of C-types are declared here. +# Each function returns the C-handler and the C-type. +proc asnBasicEXTERNAL {} { + return {z_External Z_External} +} diff --git a/dependencies/yaz-2.1.28/src/z3950oid.c b/dependencies/yaz-2.1.28/src/z3950oid.c new file mode 100644 index 0000000..ff10dc9 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z3950oid.c @@ -0,0 +1,84 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: z3950oid.c,v 1.5 2006/04/20 20:50:51 adam Exp $ + */ + +/** \file z3950oid.c + \brief Z3950 OID conversion utilities +*/ + +#if HAVE_CONFIG_H +#include +#endif + +#include + +Odr_oid *yaz_oidval_to_z3950oid (ODR o, int oid_class, int oid_value) +{ + oident ident; + int oid[OID_SIZE]; + + ident.proto = PROTO_Z3950; + ident.oclass = (enum oid_class) oid_class; + ident.value = (enum oid_value) oid_value; + + if (ident.value == VAL_NONE) + return 0; + + return odr_oiddup(o, oid_ent_to_oid(&ident, oid)); +} + +Odr_oid *yaz_str_to_z3950oid (ODR o, int oid_class, const char *str) +{ + struct oident ident; + int oid[OID_SIZE]; + + ident.proto = PROTO_Z3950; + ident.oclass = (enum oid_class) oid_class; + ident.value = oid_getvalbyname(str); + + if (ident.value == VAL_NONE) + return 0; + + return odr_oiddup(o, oid_ent_to_oid(&ident, oid)); +} + +const char *yaz_z3950oid_to_str (Odr_oid *oid, int *oid_class) +{ + struct oident *ident = oid_getentbyoid(oid); + + if (!ident || ident->value == VAL_NONE) + return 0; + *oid_class = ident->oclass; + return ident->desc; +} + + +const char* yaz_z3950_oid_value_to_str(oid_value ov, oid_class oc) +{ + struct oident tmpentry; + int tmp_oid[OID_SIZE]; + + tmpentry.proto = PROTO_Z3950; + tmpentry.oclass = oc; + tmpentry.value = ov; + + if( oid_ent_to_oid(&tmpentry,tmp_oid) ) + { + return tmpentry.desc; + } + else + { + return ""; + } +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/z3950v3.asn b/dependencies/yaz-2.1.28/src/z3950v3.asn new file mode 100644 index 0000000..98cf885 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/z3950v3.asn @@ -0,0 +1,2667 @@ +Z39-50-APDU-1995 -- OID for this definition, assigned in OID.3.1, is {Z39-50 2 1} +DEFINITIONS ::= +BEGIN -- Z39.50 Maintenance Agency Official Text for ANSI/NISO Z39.50-1995 - July 1995 +-- +EXPORTS OtherInformation, Term, AttributeSetId, AttributeList, AttributeElement, ElementSetName, SortElement, DatabaseName, +CompSpec, Specification, Permissions, InternationalString, IntUnit, Unit, StringOrNumeric, Query, Records, ResultSetId, +DefaultDiagFormat, DiagRec, Segment; +-- + +PDU ::= CHOICE{ + initRequest [20] IMPLICIT InitializeRequest, + initResponse [21] IMPLICIT InitializeResponse, + searchRequest [22] IMPLICIT SearchRequest, + searchResponse [23] IMPLICIT SearchResponse, + presentRequest [24] IMPLICIT PresentRequest, + presentResponse [25] IMPLICIT PresentResponse, + deleteResultSetRequest [26] IMPLICIT DeleteResultSetRequest, + deleteResultSetResponse [27] IMPLICIT DeleteResultSetResponse, + accessControlRequest [28] IMPLICIT AccessControlRequest, + accessControlResponse [29] IMPLICIT AccessControlResponse, + resourceControlRequest [30] IMPLICIT ResourceControlRequest, + resourceControlResponse [31] IMPLICIT ResourceControlResponse, + triggerResourceControlRequest [32] IMPLICIT TriggerResourceControlRequest, + resourceReportRequest [33] IMPLICIT ResourceReportRequest, + resourceReportResponse [34] IMPLICIT ResourceReportResponse, + scanRequest [35] IMPLICIT ScanRequest, + scanResponse [36] IMPLICIT ScanResponse, + -- [37] through [42] reserved + sortRequest [43] IMPLICIT SortRequest, + sortResponse [44] IMPLICIT SortResponse, + segmentRequest [45] IMPLICIT Segment, + extendedServicesRequest [46] IMPLICIT ExtendedServicesRequest, + extendedServicesResponse [47] IMPLICIT ExtendedServicesResponse, + close [48] IMPLICIT Close, + duplicateDetectionRequest [49] IMPLICIT DuplicateDetectionRequest, + duplicateDetectionResponse [50] IMPLICIT DuplicateDetectionResponse} + + +-- Initialize APDUs +-- + InitializeRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + protocolVersion ProtocolVersion, + options Options, + preferredMessageSize [5] IMPLICIT INTEGER, + exceptionalRecordSize [6] IMPLICIT INTEGER, + idAuthentication [7] IdAuthentication OPTIONAL, -- see note below + implementationId [110] IMPLICIT InternationalString OPTIONAL, + implementationName [111] IMPLICIT InternationalString OPTIONAL, + implementationVersion [112] IMPLICIT InternationalString OPTIONAL, + userInformationField [11] EXTERNAL OPTIONAL, + otherInfo OtherInformation OPTIONAL} +--Note: +-- For idAuthentication, the type ANY is retained for compatibility with earlier versions. +-- For interoperability, the following is recommended: +IdAuthentication ::= + CHOICE{ + open VisibleString, + idPass SEQUENCE { + groupId [0] IMPLICIT InternationalString OPTIONAL, + userId [1] IMPLICIT InternationalString OPTIONAL, + password [2] IMPLICIT InternationalString OPTIONAL }, + anonymous NULL, + other EXTERNAL + } +-- May use access control formats for 'other'. See Appendix 7 ACC. +-- + InitializeResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + protocolVersion ProtocolVersion, + options Options, + preferredMessageSize [5] IMPLICIT INTEGER, + exceptionalRecordSize [6] IMPLICIT INTEGER, + result [12] IMPLICIT BOOLEAN, -- reject = FALSE; Accept = TRUE + implementationId [110] IMPLICIT InternationalString OPTIONAL, + implementationName [111] IMPLICIT InternationalString OPTIONAL, + implementationVersion [112] IMPLICIT InternationalString OPTIONAL, + userInformationField [11] EXTERNAL OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- Begin auxiliary definitions for Init PDUs + ProtocolVersion ::= [3] IMPLICIT BIT STRING{ + version-1 (0), -- This bit should always be set, but does not + -- correspond to any Z39.50 version. + version-2 (1), -- "Version 2 supported." + -- This bit should always be set. + version-3 (2) -- "Version 3 supported." +-- Values higher than 'version-3' should be ignored. Both the Initialize request and Initialize Response APDUs +-- include a value string corresponding to the supported versions. The highest common version is selected +-- for use. If there are no versions in common, "Result" in the Init Response should indicate "reject." +-- Note: Versions 1 and 2 are identical. Systems supporting version 2 should indicate support for version +-- 1 as well, for interoperability with systems that indicate support for version 1 only (e.g. ISO 10163-1991 +-- implementations). + } + Options ::= [4] IMPLICIT BIT STRING{ + search (0), + present (1), + delSet (2), + resourceReport (3), + triggerResourceCtrl (4), + resourceCtrl (5), + accessCtrl (6), + scan (7), + sort (8), + -- (not used) (9), + extendedServices (10), + level-1Segmentation (11), + level-2Segmentation (12), + concurrentOperations (13), + namedResultSets (14), + encapsulation (15), + resultCount (16), + negotiationModel (17), + duplicateDetection (18), + queryType104 (19), + pQESCorrection (20), + stringSchema (21) +} +-- end auxiliary definitions for Init PDUs + + +--Search APDUs + SearchRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + smallSetUpperBound [13] IMPLICIT INTEGER, + largeSetLowerBound [14] IMPLICIT INTEGER, + mediumSetPresentNumber [15] IMPLICIT INTEGER, + replaceIndicator [16] IMPLICIT BOOLEAN, + resultSetName [17] IMPLICIT InternationalString, + databaseNames [18] IMPLICIT SEQUENCE OF DatabaseName, + smallSetElementSetNames [100] ElementSetNames OPTIONAL, + mediumSetElementSetNames [101] ElementSetNames OPTIONAL, + preferredRecordSyntax [104] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + query [21] Query, + -- Following two parameters may be used only if version 3 is in force. + additionalSearchInfo [203] IMPLICIT OtherInformation OPTIONAL, + otherInfo OtherInformation OPTIONAL} + + +-- Query Definitions + Query ::= CHOICE{ + type-0 [0] ANY, + type-1 [1] IMPLICIT RPNQuery, + type-2 [2] OCTET STRING, + type-100 [100] OCTET STRING, + type-101 [101] IMPLICIT RPNQuery, + type-102 [102] OCTET STRING, + type-104 [104] IMPLICIT EXTERNAL +} +-- +-- Definitions for RPN query + RPNQuery ::= SEQUENCE{ + attributeSet AttributeSetId, + rpn RPNStructure} +-- + RPNStructure ::= CHOICE{ + op [0] Operand, + rpnRpnOp [1] IMPLICIT SEQUENCE{ + rpn1 RPNStructure, + rpn2 RPNStructure, + op Operator }} + Operand ::= CHOICE{ + attrTerm AttributesPlusTerm, + resultSet ResultSetId, + -- If version 2 is in force: + -- - If query type is 1, one of the above two must be chosen; + -- - resultAttr (below) may be used only if query type is 101. + resultAttr ResultSetPlusAttributes} + + AttributesPlusTerm ::= [102] IMPLICIT SEQUENCE{ + attributes AttributeList, + term Term} + ResultSetPlusAttributes ::= [214] IMPLICIT SEQUENCE{ + resultSet ResultSetId, + attributes AttributeList} + AttributeList ::= [44] IMPLICIT SEQUENCE OF AttributeElement +-- + Term ::= CHOICE{ + general [45] IMPLICIT OCTET STRING, + -- values below may be used only if version 3 is in force + numeric [215] IMPLICIT INTEGER, + characterString [216] IMPLICIT InternationalString, + oid [217] IMPLICIT OBJECT IDENTIFIER, + dateTime [218] IMPLICIT GeneralizedTime, + external [219] IMPLICIT EXTERNAL, + integerAndUnit [220] IMPLICIT IntUnit, + null [221] IMPLICIT NULL} + + Operator ::= [46] CHOICE{ + and [0] IMPLICIT NULL, + or [1] IMPLICIT NULL, + and-not [2] IMPLICIT NULL, + -- If version 2 is in force: + -- - For query type 1, one of the above three must be chosen; + -- - prox (below) may be used only if query type is 101. + prox [3] IMPLICIT ProximityOperator} + AttributeElement ::= SEQUENCE{ + attributeSet [1] IMPLICIT AttributeSetId OPTIONAL, + -- Must be omitted if version 2 is in force. + -- If included, overrides value of attributeSet + -- in RPNQuery above, but only for this attribute. + attributeType [120] IMPLICIT INTEGER, + attributeValue CHOICE{ + numeric [121] IMPLICIT INTEGER, + -- If version 2 is in force, + -- Must select 'numeric' for attributeValue. + + complex [224] IMPLICIT SEQUENCE{ + list [1] IMPLICIT SEQUENCE OF StringOrNumeric, + semanticAction [2] IMPLICIT SEQUENCE OF INTEGER OPTIONAL}}} + + + ProximityOperator ::= SEQUENCE{ + exclusion [1] IMPLICIT BOOLEAN OPTIONAL, + distance [2] IMPLICIT INTEGER, + ordered [3] IMPLICIT BOOLEAN, + relationType [4] IMPLICIT INTEGER{ + lessThan (1), + lessThanOrEqual (2), + equal (3), + greaterThanOrEqual (4), + greaterThan (5), + notEqual (6)}, + proximityUnitCode [5] CHOICE{ + known [1] IMPLICIT KnownProximityUnit, + private [2] IMPLICIT INTEGER}} +-- + KnownProximityUnit ::= INTEGER{ + character (1), + word (2), + sentence (3), + paragraph (4), + section (5), + chapter (6), + document (7), + element (8), + subelement (9), + elementType (10), + byte (11) -- Version 3 only + } +-- End definitions for RPN Query + + +SearchResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + resultCount [23] IMPLICIT INTEGER, + numberOfRecordsReturned [24] IMPLICIT INTEGER, + nextResultSetPosition [25] IMPLICIT INTEGER, + searchStatus [22] IMPLICIT BOOLEAN, + resultSetStatus [26] IMPLICIT INTEGER{ + subset (1), + interim (2), + none (3)} OPTIONAL, + presentStatus PresentStatus OPTIONAL, + records Records OPTIONAL, + -- Following two parameters may be used only if version 3 is in force. + additionalSearchInfo [203] IMPLICIT OtherInformation OPTIONAL, + otherInfo OtherInformation OPTIONAL} +--Retrieval APDUs + PresentRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + resultSetId ResultSetId, + resultSetStartPoint [30] IMPLICIT INTEGER, + numberOfRecordsRequested [29] IMPLICIT INTEGER, + additionalRanges [212] IMPLICIT SEQUENCE OF Range OPTIONAL, + -- additionalRanges may be included only if version 3 is in force. + recordComposition CHOICE{ + simple [19] ElementSetNames, + -- must choose 'simple' if version 2 is in force + complex [209] IMPLICIT CompSpec} OPTIONAL, + preferredRecordSyntax [104] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + maxSegmentCount [204] IMPLICIT INTEGER OPTIONAL, -- level 1 or 2 + maxRecordSize [206] IMPLICIT INTEGER OPTIONAL, -- level 2 only + maxSegmentSize [207] IMPLICIT INTEGER OPTIONAL, -- level 2 only + otherInfo OtherInformation OPTIONAL} +-- + Segment ::= SEQUENCE{ + -- Segment PDU may only be used when version 3 is in force, + -- and only when segmentation is in effect. + referenceId ReferenceId OPTIONAL, + numberOfRecordsReturned [24] IMPLICIT INTEGER, + segmentRecords [0] IMPLICIT SEQUENCE OF NamePlusRecord, + otherInfo OtherInformation OPTIONAL} +-- + PresentResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + numberOfRecordsReturned [24] IMPLICIT INTEGER, + nextResultSetPosition [25] IMPLICIT INTEGER, + presentStatus PresentStatus, + records Records OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- begin auxiliary definitions for Search and Present APDUs + +-- begin definition of records + Records ::= CHOICE{ + responseRecords [28] IMPLICIT SEQUENCE OF NamePlusRecord, + nonSurrogateDiagnostic [130] IMPLICIT DefaultDiagFormat, + multipleNonSurDiagnostics [205] IMPLICIT SEQUENCE OF DiagRec} +-- + NamePlusRecord ::= SEQUENCE{ + name [0] IMPLICIT DatabaseName OPTIONAL, + record [1] CHOICE{ + retrievalRecord [1] EXTERNAL, + surrogateDiagnostic [2] DiagRec, + -- Must select one of the above two, retrievalRecord or + -- surrogateDiagnostic, unless 'level 2 segmentation' is in effect. + startingFragment [3] FragmentSyntax, + intermediateFragment [4] FragmentSyntax, + finalFragment [5] FragmentSyntax}} + FragmentSyntax ::= CHOICE{ + externallyTagged EXTERNAL, + notExternallyTagged OCTET STRING} + + DiagRec ::= CHOICE{ + defaultFormat DefaultDiagFormat, + -- Must choose defaultFormat if version 2 is in effect. + externallyDefined EXTERNAL} + + DefaultDiagFormat::= SEQUENCE{ + diagnosticSetId OBJECT IDENTIFIER, + condition INTEGER, + addinfo CHOICE{ + v2Addinfo VisibleString, -- version 2 + v3Addinfo InternationalString -- version 3 + }} + -- end definition of records + Range ::= SEQUENCE{ + startingPosition [1] IMPLICIT INTEGER, + numberOfRecords [2] IMPLICIT INTEGER} +-- + ElementSetNames ::= CHOICE { + genericElementSetName [0] IMPLICIT InternationalString, + databaseSpecific [1] IMPLICIT SEQUENCE OF SEQUENCE{ + dbName DatabaseName, + esn ElementSetName}} + + PresentStatus ::= [27] IMPLICIT INTEGER{ + success (0), + partial-1 (1), + partial-2 (2), + partial-3 (3), + partial-4 (4), + failure (5)} + +-- begin definition of composition specification + CompSpec ::= SEQUENCE{ + selectAlternativeSyntax [1] IMPLICIT BOOLEAN, + -- See comment for recordSyntax, below. + generic [2] IMPLICIT Specification OPTIONAL, + dbSpecific [3] IMPLICIT SEQUENCE OF SEQUENCE{ + db [1] DatabaseName, + spec [2] IMPLICIT Specification} OPTIONAL, + -- At least one of generic and dbSpecific must occur, and both may occur. If both, then for + -- any record not in the list of databases within dbSpecific, generic applies. + recordSyntax [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL + -- For each record, the target selects the first record syntax + -- in this list that it can support. If the list is exhausted, the + -- target may select an alternative syntax if + -- selectAlternativeSyntax is 'true'. + } + Specification ::= SEQUENCE{ + schema CHOICE { + oid [1] IMPLICIT OBJECT IDENTIFIER, + uri [300] IMPLICIT InternationalString + } OPTIONAL, + elementSpec [2] CHOICE{ + elementSetName [1] IMPLICIT InternationalString, + externalEspec [2] IMPLICIT EXTERNAL} OPTIONAL} +-- end definition of composition specification +-- end auxiliary definitions for search and response APDUs + +-- Delete APDUs + DeleteResultSetRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + deleteFunction [32] IMPLICIT INTEGER{ + list (0), + all (1)}, + resultSetList SEQUENCE OF ResultSetId OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- + DeleteResultSetResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + deleteOperationStatus [0] IMPLICIT DeleteSetStatus, + deleteListStatuses [1] IMPLICIT ListStatuses OPTIONAL, + numberNotDeleted [34] IMPLICIT INTEGER OPTIONAL, + bulkStatuses [35] IMPLICIT ListStatuses OPTIONAL, + deleteMessage [36] IMPLICIT InternationalString OPTIONAL, + otherInfo OtherInformation OPTIONAL} + ListStatuses ::= SEQUENCE OF SEQUENCE{ + id ResultSetId, + status DeleteSetStatus} + + DeleteSetStatus ::= [33] IMPLICIT INTEGER{ + success (0), + resultSetDidNotExist (1), + previouslyDeletedByTarget (2), + systemProblemAtTarget (3), + accessNotAllowed (4), + resourceControlAtOrigin (5), + resourceControlAtTarget (6), + bulkDeleteNotSupported (7), + notAllRsltSetsDeletedOnBulkDlte (8), + notAllRequestedResultSetsDeleted (9), + resultSetInUse (10)} +-- + +--Access- and Resource-control APDUs +-- + AccessControlRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + securityChallenge CHOICE{ + simpleForm [37] IMPLICIT OCTET STRING, + externallyDefined [0] EXTERNAL}, + otherInfo OtherInformation OPTIONAL} + + AccessControlResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + securityChallengeResponse CHOICE{ + simpleForm [38] IMPLICIT OCTET STRING, + externallyDefined [0] EXTERNAL} OPTIONAL, + -- Optional only in version 3; mandatory in version 2. If + -- omitted (in version 3) then diagnostic must occur. + diagnostic [223] DiagRec OPTIONAL, -- Version 3 only. + otherInfo OtherInformation OPTIONAL} + + + + ResourceControlRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + suspendedFlag [39] IMPLICIT BOOLEAN OPTIONAL, + resourceReport [40] ResourceReport OPTIONAL, + partialResultsAvailable [41] IMPLICIT INTEGER{ + subset (1), + interim (2), + none (3)} OPTIONAL, + responseRequired [42] IMPLICIT BOOLEAN, + triggeredRequestFlag [43] IMPLICIT BOOLEAN OPTIONAL, + otherInfo OtherInformation OPTIONAL} + + + ResourceControlResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + continueFlag [44] IMPLICIT BOOLEAN, + resultSetWanted [45] IMPLICIT BOOLEAN OPTIONAL, + otherInfo OtherInformation OPTIONAL} + + + + TriggerResourceControlRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + requestedAction [46] IMPLICIT INTEGER{ + resourceReport (1), + resourceControl (2), + cancel (3)}, + prefResourceReportFormat [47] IMPLICIT ResourceReportId OPTIONAL, + resultSetWanted [48] IMPLICIT BOOLEAN OPTIONAL, + otherInfo OtherInformation OPTIONAL} + + + + ResourceReportRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + opId [210] IMPLICIT ReferenceId OPTIONAL, + prefResourceReportFormat [49] IMPLICIT ResourceReportId OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- + ResourceReportResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + resourceReportStatus [50] IMPLICIT INTEGER{ + success (0), + partial (1), + failure-1 (2), + failure-2 (3), + failure-3 (4), + failure-4 (5), + failure-5 (6), + failure-6 (7)}, + resourceReport [51] ResourceReport OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- + ResourceReport ::= EXTERNAL + ResourceReportId ::= OBJECT IDENTIFIER + +--Scan APDUs + ScanRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + databaseNames [3] IMPLICIT SEQUENCE OF DatabaseName, + attributeSet AttributeSetId OPTIONAL, + termListAndStartPoint AttributesPlusTerm, + stepSize [5] IMPLICIT INTEGER OPTIONAL, + numberOfTermsRequested [6] IMPLICIT INTEGER, + preferredPositionInResponse [7] IMPLICIT INTEGER OPTIONAL, + otherInfo OtherInformation OPTIONAL} + + ScanResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + stepSize [3] IMPLICIT INTEGER OPTIONAL, + scanStatus [4] IMPLICIT INTEGER { + success (0), + partial-1 (1), + partial-2 (2), + partial-3 (3), + partial-4 (4), + partial-5 (5), + failure (6) }, + numberOfEntriesReturned [5] IMPLICIT INTEGER, + positionOfTerm [6] IMPLICIT INTEGER OPTIONAL, + entries [7] IMPLICIT ListEntries OPTIONAL, + attributeSet [8] IMPLICIT AttributeSetId OPTIONAL, + otherInfo OtherInformation OPTIONAL} + +-- begin auxiliary definitions for Scan + ListEntries ::= SEQUENCE{ + entries [1] IMPLICIT SEQUENCE OF Entry OPTIONAL, + nonsurrogateDiagnostics [2] IMPLICIT SEQUENCE OF DiagRec OPTIONAL + -- At least one of entries and nonsurrogateDiagnostics must occur + } + + Entry ::= CHOICE { + termInfo [1] IMPLICIT TermInfo, + surrogateDiagnostic [2] DiagRec} +-- + TermInfo ::= SEQUENCE { + term Term, + displayTerm [0] IMPLICIT InternationalString OPTIONAL, + -- Presence of displayTerm means that term is not considered by + -- the target to be suitable for display, and displayTerm should + -- instead be displayed. 'term' is the actual term in the term list; + -- 'displayTerm' is for display purposes only, and is not an actual + -- term in the term list. + suggestedAttributes AttributeList OPTIONAL, + alternativeTerm [4] IMPLICIT SEQUENCE OF AttributesPlusTerm OPTIONAL, + globalOccurrences [2] IMPLICIT INTEGER OPTIONAL, + byAttributes [3] IMPLICIT OccurrenceByAttributes OPTIONAL, + otherTermInfo OtherInformation OPTIONAL} + + OccurrenceByAttributes ::= SEQUENCE OF SEQUENCE{ + attributes [1] AttributeList, + occurrences CHOICE{ + global [2] INTEGER, + byDatabase [3] IMPLICIT SEQUENCE OF SEQUENCE{ + db DatabaseName, + num [1] IMPLICIT INTEGER OPTIONAL, + otherDbInfo OtherInformation OPTIONAL}} OPTIONAL, + otherOccurInfo OtherInformation OPTIONAL} +-- end auxiliary definitions for Scan + +-- Sort APDUs +SortRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + inputResultSetNames [3] IMPLICIT SEQUENCE OF InternationalString, + sortedResultSetName [4] IMPLICIT InternationalString, + sortSequence [5] IMPLICIT SEQUENCE OF SortKeySpec, + -- order of occurrence is from major to minor + otherInfo OtherInformation OPTIONAL} + +SortResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + sortStatus [3] IMPLICIT INTEGER{ + success (0), + partial-1 (1), + failure (2)}, + resultSetStatus [4] IMPLICIT INTEGER{ + empty (1), + interim (2), + unchanged (3), + none (4)} OPTIONAL, + diagnostics [5] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, + resultCount [6] IMPLICIT INTEGER OPTIONAL, + otherInfo OtherInformation OPTIONAL} + +-- begin auxiliary definitions for Sort + SortKeySpec ::= SEQUENCE{ + sortElement SortElement, + sortRelation [1] IMPLICIT INTEGER{ + ascending (0), + descending (1), + ascendingByFrequency (3), + descendingByfrequency (4)}, + caseSensitivity [2] IMPLICIT INTEGER{ + caseSensitive (0), + caseInsensitive (1)}, + missingValueAction [3] CHOICE{ + abort [1] IMPLICIT NULL, + null [2] IMPLICIT NULL, + --supply a null value for missing value + missingValueData [3] IMPLICIT OCTET STRING} OPTIONAL} + + SortElement ::= CHOICE{ + generic [1] SortKey, + datbaseSpecific [2] IMPLICIT SEQUENCE OF SEQUENCE{ + databaseName DatabaseName, + dbSort SortKey}} + + SortKey ::= CHOICE{ + sortfield [0] IMPLICIT InternationalString, + -- An element, element-group-tag, or alias supported by the target + -- and denoting a set of elements associated with each record. + elementSpec [1] IMPLICIT Specification, + sortAttributes [2] IMPLICIT SEQUENCE{ + id AttributeSetId, + list AttributeList}} +-- end auxiliary definitions for sort + + + +-- Extended Service APDUs + ExtendedServicesRequest ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + function [3] IMPLICIT INTEGER { + create (1), + delete (2), + modify (3)}, + packageType [4] IMPLICIT OBJECT IDENTIFIER, + packageName [5] IMPLICIT InternationalString OPTIONAL, + -- PackageName mandatory for 'modify' or 'delete'; optional for + -- 'create'. Following four parameters mandatory for 'create'; should + -- be included on 'modify' if being modified; not needed on 'delete'. + userId [6] IMPLICIT InternationalString OPTIONAL, + retentionTime [7] IMPLICIT IntUnit OPTIONAL, + permissions [8] IMPLICIT Permissions OPTIONAL, + description [9] IMPLICIT InternationalString OPTIONAL, + +-- (ExtendedServiceRequest APDU continued) + taskSpecificParameters [10] IMPLICIT EXTERNAL OPTIONAL, + -- Mandatory for 'create'; included on 'modify' if specific + -- parameters being modified; not necessary on 'delete'. For the + -- 'EXTERNAL,' use OID of specific ES definition and select + -- CHOICE [1]: 'esRequest'. + waitAction [11] IMPLICIT INTEGER{ + wait (1), + waitIfPossible (2), + dontWait (3), + dontReturnPackage (4)}, + elements ElementSetName OPTIONAL, + otherInfo OtherInformation OPTIONAL} +-- + +ExtendedServicesResponse ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, + operationStatus [3] IMPLICIT INTEGER{ + done (1), + accepted (2), + failure (3)}, + diagnostics [4] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, + taskPackage [5] IMPLICIT EXTERNAL OPTIONAL, + -- Use OID: {Z39-50-recordSyntax (106)} and corresponding + -- syntax. For the EXTERNAL, 'taskSpecific,' within that + -- definition, use OID of the specific es, and choose [2], + -- 'taskPackage'. + otherInfo OtherInformation OPTIONAL} + + Permissions ::= SEQUENCE OF SEQUENCE{ + userId [1] IMPLICIT InternationalString, + allowableFunctions [2] IMPLICIT SEQUENCE OF INTEGER{ + delete (1), + modifyContents (2), + modifyPermissions (3), + present (4), + invoke (5)}} + +Close ::= SEQUENCE{ + referenceId ReferenceId OPTIONAL, -- See 3.2.11.1.5. + closeReason CloseReason, + diagnosticInformation [3] IMPLICIT InternationalString OPTIONAL, + resourceReportFormat [4] IMPLICIT ResourceReportId OPTIONAL, + -- For use by origin only, and only on Close request; + -- origin requests target to include report in response. + resourceReport [5] ResourceReport OPTIONAL, + -- For use by target only, unilaterally on Close request; + -- on Close response may be unilateral or in response + -- to origin request. + otherInfo OtherInformation OPTIONAL} + + CloseReason ::= [211] IMPLICIT INTEGER{ + finished (0), + shutdown (1), + systemProblem (2), + costLimit (3), + resources (4), + securityViolation (5), + protocolError (6), + lackOfActivity (7), + peerAbort (8), + unspecified (9)} + +--Duplicate detection APDUs +DuplicateDetectionRequest ::= SEQUENCE { + referenceId ReferenceId OPTIONAL, + inputResultSetIds [3] IMPLICIT SEQUENCE OF InternationalString, + outputResultSetName [4] IMPLICIT InternationalString, + applicablePortionOfRecord [5] IMPLICIT EXTERNAL OPTIONAL, + duplicateDetectionCriteria [6] IMPLICIT SEQUENCE OF + DuplicateDetectionCriterion OPTIONAL, + clustering [7] IMPLICIT BOOLEAN OPTIONAL, + -- 'true' means "clustered". + -- This parameter may be omitted + -- only if retentionCriteria CHOICE is + -- 'numberOfEntries' and its value is 1. + retentionCriteria [8] IMPLICIT SEQUENCE OF + RetentionCriterion, + sortCriteria [9] IMPLICIT SEQUENCE OF + SortCriterion OPTIONAL, + otherInfo OtherInformation OPTIONAL} + +DuplicateDetectionCriterion ::= CHOICE{ + levelOfMatch [1] IMPLICIT INTEGER, + -- a percentage; 1-100. + caseSensitive [2] IMPLICIT NULL, + punctuationSensitive [3] IMPLICIT NULL, + regularExpression [4] IMPLICIT EXTERNAL, + rsDuplicates [5] IMPLICIT NULL + -- values 6-100 reserved for future assignment. + } + +RetentionCriterion ::= CHOICE{ + numberOfEntries [1] IMPLICIT INTEGER, + -- greater than 0 + percentOfEntries [2] IMPLICIT INTEGER, + -- 1-100, + duplicatesOnly [3] IMPLICIT NULL, + -- should not be chosen + -- if clustering is 'true' + discardRsDuplicates [4] IMPLICIT NULL + -- values 5-100 reserved for future assignment. + } + +SortCriterion ::= CHOICE{ + mostComprehensive [1] IMPLICIT NULL, + leastConmprehensive [2] IMPLICIT NULL, + mostRecent [3] IMPLICIT NULL, + oldest [4] IMPLICIT NULL, + leastCost [5] IMPLICIT NULL, + preferredDatabases [6] IMPLICIT + SEQUENCE OF InternationalString + -- values 7-100 reserved for future assignment. +} + +DuplicateDetectionResponse ::= SEQUENCE { + referenceId ReferenceId OPTIONAL, + status [3] IMPLICIT INTEGER{ + success (0), + failure (1)}, + resultSetCount [4] IMPLICIT INTEGER OPTIONAL, + diagnostics [5] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, + otherInfo OtherInformation OPTIONAL} + +-- Global auxiliary definitions + ReferenceId ::= [2] IMPLICIT OCTET STRING + ResultSetId ::= [31] IMPLICIT InternationalString + ElementSetName ::= [103] IMPLICIT InternationalString + DatabaseName ::= [105] IMPLICIT InternationalString + AttributeSetId ::= OBJECT IDENTIFIER + + +-- OtherInformation + OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{ + category [1] IMPLICIT InfoCategory OPTIONAL, + information CHOICE{ + characterInfo [2] IMPLICIT InternationalString, + binaryInfo [3] IMPLICIT OCTET STRING, + externallyDefinedInfo [4] IMPLICIT EXTERNAL, + oid [5] IMPLICIT OBJECT IDENTIFIER}} +-- + InfoCategory ::= SEQUENCE{ + categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + categoryValue [2] IMPLICIT INTEGER} + + +-- Units + -- IntUnit is used when value and unit are supplied together. Unit, alone, is used when just + -- specifying a unit (without a value). For example, IntUnit is used in Term, in an RPNQuery, or + -- it can be the datatype of an element within a retrieval record. Unit (alone) would be used in an + -- element request, when requesting data be returned according to a particular unit. + + IntUnit ::= SEQUENCE{ + value [1] IMPLICIT INTEGER, + unitUsed [2] IMPLICIT Unit} +-- + Unit ::= SEQUENCE{ + unitSystem [1] InternationalString OPTIONAL, -- e.g. 'SI' + unitType [2] StringOrNumeric OPTIONAL, -- e.g. 'mass' + unit [3] StringOrNumeric OPTIONAL, -- e.g. 'kilograms' + scaleFactor [4] IMPLICIT INTEGER OPTIONAL -- e.g. 9 means 10**9 + } + +--CharacterString + InternationalString ::= GeneralString + -- When version 2 is in force, this collapses to VisibleString. That is, only characters in the + -- visibleString repertoire may be used. (Datatype compatibility with version 2 is not affected, + -- because references are IMPLICIT.) When version 3 is in force, the semantics of the + -- GeneralString content may be altered by negotiation during initialization. If no such + -- negotiation is in effect, then GeneralString semantics are in force. + +StringOrNumeric ::= CHOICE{ + string [1] IMPLICIT InternationalString, + numeric [2] IMPLICIT INTEGER} + +END -- IR DEFINITIONS + + + +DiagnosticFormatDiag1 +{Z39-50-diagnosticFormat diag-1 (2)} DEFINITIONS ::= +BEGIN +IMPORTS Term, Specification, AttributeList, SortElement, DatabaseName, +DefaultDiagFormat, InternationalString FROM Z39-50-APDU-1995; + + +DiagnosticFormat ::= SEQUENCE OF SEQUENCE{ + diagnostic [1] CHOICE{ + defaultDiagRec [1] IMPLICIT DefaultDiagFormat, + explicitDiagnostic [2] DiagFormat} OPTIONAL, + message [2] IMPLICIT InternationalString OPTIONAL} + + +DiagFormat ::= CHOICE{ + +tooMany [1000] IMPLICIT SEQUENCE{ + tooManyWhat [1] IMPLICIT INTEGER{ + argumentWords (1), + truncatedWords (2), + booleanOperators (3), + incompleteSubfields (4), + characters (5), + recordsRetrieved (6), + dataBasesSpecified (7), + resultSetsCreated (8), + indexTermsProcessed (9)}, + max [2] IMPLICIT INTEGER OPTIONAL}, + + + + + + + +badSpec [1001] IMPLICIT SEQUENCE{ -- element set name or specification + spec [1] IMPLICIT Specification, -- esn or element spec not supported + db [2] IMPLICIT DatabaseName OPTIONAL, + -- if db specified, above spec not supported for db; otherwise, + -- spec not supported period. + goodOnes [3] IMPLICIT SEQUENCE OF Specification OPTIONAL + -- target supplies ones that are supported + }, + + +dbUnavail [1002] IMPLICIT SEQUENCE{ -- database unavailable + db [1] IMPLICIT DatabaseName, + why [2] IMPLICIT SEQUENCE{ + reasonCode [1] IMPLICIT INTEGER{ + doesNotExist (0), + existsButUnavail (1), + locked (2), + accessDenied (3)} OPTIONAL, + message [2] IMPLICIT InternationalString OPTIONAL}}, + + +unSupOp [1003] IMPLICIT INTEGER{ -- unsupported operator + and (0), + or (1), + and-not (2), + prox (3)}, + + +attribute [1004] IMPLICIT SEQUENCE{ + -- Applies for unsupported attribute set, attribute type, + -- attribute value, or term (for a given attribute type or value). + + id [1] IMPLICIT OBJECT IDENTIFIER, + -- if only "id" occurs, then attribute set is not supported + type [2] IMPLICIT INTEGER OPTIONAL, + -- must occur if value occurs. + value [3] IMPLICIT INTEGER OPTIONAL, + -- if omitted, and Type occurs, then Type is what is unsupported + term [4] Term OPTIONAL + -- If occurs, term is illegal or not supported, for attribute value, + -- if value occurs; otherwise, for type. + }, + + +attCombo [1005] IMPLICIT SEQUENCE{ -- attribute combination not supported + unsupportedCombination [1] IMPLICIT AttributeList, + recommendedAlternatives [2] IMPLICIT SEQUENCE OF AttributeList OPTIONAL}, + + + + +term [1006] IMPLICIT SEQUENCE{ + problem [1] IMPLICIT INTEGER{ + codedValue (1), + unparsable (2), + tooShort (3), + type (4)} OPTIONAL, + term [2] Term}, + + +proximity [1007] CHOICE{ -- proximity diagnostics: + resultSets [1] IMPLICIT NULL, -- proximity between sets not supported + badSet [2] IMPLICIT InternationalString, -- bad result set specified + relation [3] IMPLICIT INTEGER, -- 1 to 6 ; relation not supported + unit [4] IMPLICIT INTEGER, -- unsupported unit code + distance [5] IMPLICIT INTEGER, -- unsupported distance + attributes [6] AttributeList, -- proximity not supported with specified + -- attribute combination + ordered [7] IMPLICIT NULL, -- ordered flag not supported + exclusion [8] IMPLICIT NULL -- exclusion flag not supported + }, + + + + + +scan [1008] CHOICE{ -- scan diagnostics: + nonZeroStepSize [0] IMPLICIT NULL, -- only zero step size supported + specifiedStepSize [1] IMPLICIT NULL, -- specified step size not supported + termList1 [3] IMPLICIT NULL, -- term list not supported (no alternative supplied) + termList2 [4] IMPLICIT SEQUENCE OF AttributeList, + -- term list not supported (alternatives supplied) + posInResponse [5] IMPLICIT INTEGER{ --value of positionInResponse not supported + mustBeOne (1), + mustBePositive (2), + mustBeNonNegative (3), + other (4)}, + resources [6] IMPLICIT NULL, -- resources exhausted looking for satisfying terms + endOfList [7] IMPLICIT NULL -- beginning or end of term list + }, + + +sort [1009] CHOICE{ + sequence [0] IMPLICIT NULL, -- cannot sort according to sequence + noRsName [1] IMPLICIT NULL, -- no result set name supplied + tooMany [2] IMPLICIT INTEGER, -- Too many input result sets, + -- maximum supplied. + incompatible [3] IMPLICIT NULL, -- records with different formats + -- not compatible for sorting + generic [4] IMPLICIT NULL, -- generic sort not supported + -- (db specific only) + dbSpecific [5] IMPLICIT NULL, -- db specific sort not supported + sortElement [6] SortElement, + key [7] IMPLICIT INTEGER{ + tooMany (1), -- too many sort keys + duplicate (2)}, -- duplicate sort keys + action [8] IMPLICIT NULL, -- unsupported missing data action + illegal [9] IMPLICIT INTEGER{ + relation (1), -- illegal sort relation + case (2), -- illegal case value + action (3), -- illegal missing data action + sort (4)}, -- illegal sort + inputTooLarge [10] IMPLICIT SEQUENCE OF InternationalString, + -- one or more of the input result sets too large to sort + aggregateTooLarge [11] IMPLICIT NULL -- aggregate result set too large + }, + +segmentation [1010] CHOICE{ + segmentCount [0] IMPLICIT NULL, + -- Cannot guarantee record will fit within max segments. Target + -- suggests that origin try again to retrieve record, without + -- including max-segment-count. + segmentSize [1] IMPLICIT INTEGER + -- record cannot be segmented into fragments such that the largest + -- will fit within max segment size specified. Target supplies (in + -- bytes) the smallest acceptable value of Max-segment-size to + -- retrieve the record. + }, + + +extServices [1011] CHOICE{ + req [1] IMPLICIT INTEGER{ -- bad request + nameInUse (1), -- package name already in use + noSuchName (2), -- no such package, on modify/delete + quota (3), -- quota exceeded + type (4)}, -- extended service type not supported + permission [2] IMPLICIT INTEGER{ -- permission denied on ES, because: + id (1), -- id not authorized, or + modifyDelete (2)}, -- cannot modify or delete + immediate [3] IMPLICIT INTEGER{ -- immediate execution: + failed (1), -- failed, + service (2), -- not supported for this service, or + parameters (3) -- for these parameters. + }}, + + +accessCtrl [1012] CHOICE{ + noUser [1] IMPLICIT NULL, -- no user to display challenge to + refused [2] IMPLICIT NULL, -- access control information refused by user + simple [3] IMPLICIT NULL, -- only simple form supported (target used + -- externally defined) + oid [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, + -- oid not supported (origin supplies alternative + -- suggested oids) + alternative [5] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, + -- origin insists that target use an alternative + -- challenge for this data (e.g. stronger + + -- authentication or stronger Access control). The + -- origin supplies suggested alternative oids. + pwdInv [6] IMPLICIT NULL, -- password invalid + pwdExp [7] IMPLICIT NULL -- password expired + }, + + +recordSyntax [1013] IMPLICIT SEQUENCE{ -- record cannot be transferred in requested syntax + unsupportedSyntax [1] IMPLICIT OBJECT IDENTIFIER, + suggestedAlternatives [2] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL} +} + +END + + + + + +RecordSyntax-explain +{Z39-50-recordSyntax explain (100)} DEFINITIONS ::= + +BEGIN +IMPORTS AttributeSetId, Term, OtherInformation, DatabaseName, ElementSetName, IntUnit, Unit, + StringOrNumeric, Specification, InternationalString, AttributeList, AttributeElement FROM Z39-50-APDU-1995; +EXPORTS LanguageCode; + +Explain-Record ::= CHOICE{ + -- Each of these may be used as search term when Use attribute is 'explain-category'. + targetInfo [0] IMPLICIT TargetInfo, + databaseInfo [1] IMPLICIT DatabaseInfo, + schemaInfo [2] IMPLICIT SchemaInfo, + tagSetInfo [3] IMPLICIT TagSetInfo, + recordSyntaxInfo [4] IMPLICIT RecordSyntaxInfo, + attributeSetInfo [5] IMPLICIT AttributeSetInfo, + termListInfo [6] IMPLICIT TermListInfo, + extendedServicesInfo [7] IMPLICIT ExtendedServicesInfo, + attributeDetails [8] IMPLICIT AttributeDetails, + termListDetails [9] IMPLICIT TermListDetails, + elementSetDetails [10] IMPLICIT ElementSetDetails, + retrievalRecordDetails [11] IMPLICIT RetrievalRecordDetails, + sortDetails [12] IMPLICIT SortDetails, + processing [13] IMPLICIT ProcessingInformation, + variants [14] IMPLICIT VariantSetInfo, + units [15] IMPLICIT UnitInfo, + categoryList [100] IMPLICIT CategoryList} + +-- Element set name 'B' (brief) retrieves: +-- - 'commonInfo' (except for otherInfo within commonInfo) +-- - key elements +-- - other elements designated as 'non-key brief elements' +-- Esn 'description' retrieves brief elements as well as 'description', and specific additional descriptive +-- elements if designated. +-- Element set name 'F' (full) retrieves all of the above, as well as those designated as "non-brief elements". Some +-- elements designated as OPTIONAL may be mandatory in full records, and are so identified. (Note that all elements +-- that are not part of the brief element set must be designated as OPTIONAL in the ASN.1, otherwise it would be +-- illegal to omit them.) +-- Other esns are defined (below) as needed. + +-- - - - - - - - - - - - - Info Records + -- Info records are mainly for software consumption + -- They describe individual entities within the target system: + -- The target itself + -- Individual databases + -- Schemas + -- Tag sets + -- Record syntaxes + -- Attribute sets + -- Term lists + -- Extended services + -- The information about each Schema, Tag Set, Record Syntax and Attribute Set should + -- match the universal definitions of these items. The only exception is that a target may omit any + -- items it doesn't support, for example the description of the bib-1 attribute set may omit attributes + -- that the target does not support under any circumstances. + -- Databases that may be searched together can be listed in the dbCominations element of the TargetInfo record. +TargetInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + name [1] IMPLICIT InternationalString, + -- Non-key brief elements follow: + recent-news [2] IMPLICIT HumanString OPTIONAL, + icon [3] IMPLICIT IconObject OPTIONAL, + namedResultSets [4] IMPLICIT BOOLEAN, + multipleDBsearch [5] IMPLICIT BOOLEAN, + maxResultSets [6] IMPLICIT INTEGER OPTIONAL, + maxResultSize [7] IMPLICIT INTEGER OPTIONAL, + maxTerms [8] IMPLICIT INTEGER OPTIONAL, + timeoutInterval [9] IMPLICIT IntUnit OPTIONAL, + welcomeMessage [10] IMPLICIT HumanString OPTIONAL, + -- non-brief elements follow: + -- 'description' esn retrieves the following two (as well as brief): + contactInfo [11] IMPLICIT ContactInfo OPTIONAL, + description [12] IMPLICIT HumanString OPTIONAL, + nicknames [13] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + usage-restrictions [14] IMPLICIT HumanString OPTIONAL, + paymentAddr [15] IMPLICIT HumanString OPTIONAL, + hours [16] IMPLICIT HumanString OPTIONAL, + dbCombinations [17] IMPLICIT SEQUENCE OF DatabaseList OPTIONAL, + addresses [18] IMPLICIT SEQUENCE OF NetworkAddress OPTIONAL, + languages [101] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + -- Languages supported for message strings. Each is a three-character + -- language code from Z39.53-1994. +-- characterSets [102] this tag reserved for "character sets supported for name and message strings". + -- commonAccessInfo elements list objects the target supports. All objects listed in + -- AccessInfo for any individual database should also be listed here. + commonAccessInfo [19] IMPLICIT AccessInfo OPTIONAL} + + +DatabaseInfo ::= SEQUENCE { + -- A target may provide "virtual databases" that are combinations of individual database. These + -- databases are indicated by the presence of subDbs in the combination database's DatabaseDescription. + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + name [1] IMPLICIT DatabaseName, + -- Non-key brief elements follow: + explainDatabase [2] IMPLICIT NULL OPTIONAL, + -- If present, this database is the Explain database, or an Explain database + -- for a different server, possibly on a different host. The means by which + -- that server may be accessed is not addressed by this standard. One + -- suggested possibility is an implementor agreement whereby the + -- database name is a url which may be used to connect to the server. + nicknames [3] IMPLICIT SEQUENCE OF DatabaseName OPTIONAL, + icon [4] IMPLICIT IconObject OPTIONAL, + user-fee [5] IMPLICIT BOOLEAN, + available [6] IMPLICIT BOOLEAN, + titleString [7] IMPLICIT HumanString OPTIONAL, + -- Non-brief elements follow: + keywords [8] IMPLICIT SEQUENCE OF HumanString OPTIONAL, + description [9] IMPLICIT HumanString OPTIONAL, + associatedDbs [10] IMPLICIT DatabaseList OPTIONAL, + -- databases that may be searched in combination with this one + + subDbs [11] IMPLICIT DatabaseList OPTIONAL, + -- When present, this database is a composite representing the combined + -- databases 'subDbs'. The individual subDbs are also available. + disclaimers [12] IMPLICIT HumanString OPTIONAL, + news [13] IMPLICIT HumanString OPTIONAL, + recordCount [14] CHOICE { + actualNumber [0] IMPLICIT INTEGER, + approxNumber [1] IMPLICIT INTEGER} OPTIONAL, + defaultOrder [15] IMPLICIT HumanString OPTIONAL, + avRecordSize [16] IMPLICIT INTEGER OPTIONAL, + maxRecordSize [17] IMPLICIT INTEGER OPTIONAL, + hours [18] IMPLICIT HumanString OPTIONAL, + bestTime [19] IMPLICIT HumanString OPTIONAL, + lastUpdate [20] IMPLICIT GeneralizedTime OPTIONAL, + updateInterval [21] IMPLICIT IntUnit OPTIONAL, + coverage [22] IMPLICIT HumanString OPTIONAL, + proprietary [23] IMPLICIT BOOLEAN OPTIONAL, -- mandatory in full record + copyrightText [24] IMPLICIT HumanString OPTIONAL, + copyrightNotice [25] IMPLICIT HumanString OPTIONAL, + producerContactInfo [26] IMPLICIT ContactInfo OPTIONAL, + supplierContactInfo [27] IMPLICIT ContactInfo OPTIONAL, + submissionContactInfo [28] IMPLICIT ContactInfo OPTIONAL, + -- accessInfo lists items connected with the database. All listed items should be in the target's AccessInfo. + accessInfo [29] IMPLICIT AccessInfo OPTIONAL} + + +SchemaInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + schema [1] IMPLICIT OBJECT IDENTIFIER, + -- Non-key brief elements follow: + name [2] IMPLICIT InternationalString, + -- Non-brief elements follow: + description [3] IMPLICIT HumanString OPTIONAL, + tagTypeMapping [4] IMPLICIT SEQUENCE OF SEQUENCE { + tagType [0] IMPLICIT INTEGER, + tagSet [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + -- If tagSet is omitted, then this tagType is for a tagSet locally defined + -- within the schema that cannot be referenced by another schema. + defaultTagType [2] IMPLICIT NULL OPTIONAL + } OPTIONAL, + recordStructure [5] IMPLICIT SEQUENCE OF ElementInfo OPTIONAL} + + + -- ElementInfo referenced in SchemaInfo and RecordSyntaxInfo + ElementInfo ::= SEQUENCE { + elementName [1] IMPLICIT InternationalString, + elementTagPath [2] IMPLICIT Path, + dataType [3] ElementDataType OPTIONAL, -- If omitted, not specified. + required [4] IMPLICIT BOOLEAN, + repeatable [5] IMPLICIT BOOLEAN, + description [6] IMPLICIT HumanString OPTIONAL} + + + -- Path is referenced by ElementInfo as well as PerElementDetails + Path ::= SEQUENCE OF SEQUENCE{ + tagType [1] IMPLICIT INTEGER, + tagValue [2] StringOrNumeric} + ElementDataType ::= CHOICE{ + primitive [0] IMPLICIT PrimitiveDataType, + structured [1] IMPLICIT SEQUENCE OF ElementInfo} + PrimitiveDataType ::= INTEGER{ + octetString (0), + numeric (1), + date (2), + external (3), + string (4), + trueOrFalse (5), + oid (6), + intUnit (7), + empty (8), + noneOfTheAbove (100) -- see 'description' + } + + +TagSetInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + tagSet [1] IMPLICIT OBJECT IDENTIFIER, + -- non-key brief elements follow: + name [2] IMPLICIT InternationalString, + -- non-brief elements follow: + description [3] IMPLICIT HumanString OPTIONAL, + elements [4] IMPLICIT SEQUENCE OF SEQUENCE { + elementname [1] IMPLICIT InternationalString, + nicknames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + elementTag [3] StringOrNumeric, + description [4] IMPLICIT HumanString OPTIONAL, + dataType [5] PrimitiveDataType OPTIONAL, + -- If the data type is expected to be structured, that is described in the schema info, + -- and datatype is omitted here. + otherTagInfo OtherInformation OPTIONAL} OPTIONAL} + +RecordSyntaxInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + recordSyntax [1] IMPLICIT OBJECT IDENTIFIER, + -- Non-key brief elements follow: + name [2] IMPLICIT InternationalString, + -- non-brief elements follow: + transferSyntaxes [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + description [4] IMPLICIT HumanString OPTIONAL, + asn1Module [5] IMPLICIT InternationalString OPTIONAL, + abstractStructure [6] IMPLICIT SEQUENCE OF ElementInfo OPTIONAL + -- Omitting abstractStructure only means target isn't using + -- Explain to describe the structure, not that there is no structure. + } + +AttributeSetInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + attributeSet [1] IMPLICIT AttributeSetId, + -- non-key brief elements follow: + name [2] IMPLICIT InternationalString, + -- non-brief elements follow: + attributes [3] IMPLICIT SEQUENCE OF AttributeType OPTIONAL, + -- mandatory in full record + description [4] IMPLICIT HumanString OPTIONAL} +-- AttributeType referenced in AttributeSetInfo + AttributeType ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + attributeType [2] IMPLICIT INTEGER, + attributeValues [3] IMPLICIT SEQUENCE OF AttributeDescription} + AttributeDescription ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + attributeValue [2] StringOrNumeric, + equivalentAttributes [3] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL + -- each is an occurrence of 'attributeValue' from AttributeDescription for a + -- different attribute. Equivalences listed here should be derived from the + -- attribute set definition, not from a particular server's behavior. + } + + +TermListInfo ::= SEQUENCE{ + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + -- Non-key brief elements follow: + termLists [2] IMPLICIT SEQUENCE OF SEQUENCE{ + name [1] IMPLICIT InternationalString, + title [2] IMPLICIT HumanString OPTIONAL, + -- Title is for users to see and can differ by language. Name, on the + -- other hand is typically a short string not necessarily meant to be + -- human-readable, and not variable by language. + searchCost [3] IMPLICIT INTEGER { + optimized (0), -- The attribute (or combination) associated + -- with this list will do fast searches. + normal (1), -- The attribute (combination) will work as + -- expected. So there's probably an index for the + -- attribute (combination) or some similar + -- mechanism. + expensive (2), -- Can use the attribute (combination), but it + -- might not provide satisfactory results. + -- Probably there is no index, or post- + -- processing of records is required. + filter (3) -- can't search with this attribute (combination) alone. + } OPTIONAL, + scanable [4] IMPLICIT BOOLEAN, -- 'true' means this list can be scanned. + broader [5] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + narrower [6] IMPLICIT SEQUENCE OF InternationalString OPTIONAL + -- broader and narrower list alternative term lists related to this one. + -- The term lists so listed should also be in this termLists structure. + } + -- no non-brief elements + } + + +ExtendedServicesInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + type [1] IMPLICIT OBJECT IDENTIFIER, + -- Non-key brief elements follow: + name [2] IMPLICIT InternationalString OPTIONAL, + -- should be supplied if privateType is 'true' + privateType [3] IMPLICIT BOOLEAN, + restrictionsApply [5] IMPLICIT BOOLEAN, -- if 'true' see 'description' + feeApply [6] IMPLICIT BOOLEAN, -- if 'true' see 'description' + available [7] IMPLICIT BOOLEAN, + retentionSupported [8] IMPLICIT BOOLEAN, + waitAction [9] IMPLICIT INTEGER{ + waitSupported (1), + waitAlways (2), + waitNotSupported (3), + depends (4), + notSaying (5)}, + -- non-brief elements follow: + -- To get brief plus 'description' use esn 'description' + description [10] IMPLICIT HumanString OPTIONAL, + -- to get above elements and 'specificExplain' use esn 'specificExplain' + specificExplain [11] IMPLICIT EXTERNAL OPTIONAL, + -- Use oid of specific ES, and select choice [3] 'explain'. Format + -- to be developed in conjunction with the specific ES definition. + -- to get all elements except 'specificExplain', use esn 'asn' + esASN [12] IMPLICIT InternationalString OPTIONAL -- the ASN.1 for this ES + } + +-- - - - - - - - - - - - - Detail records + -- The detail records describe relationships among entities supported by the target. RetrievalRecordDetails describes + -- the way that schema elements are mapped into record elements. This mapping may be different for each + -- combination of database, schema, record syntax. The per-element details describe the default mapping. + -- Origin-request re-tagging can change that mapping. When multiple databases are listed in a databaseNames + -- element, the record applies equally to all of the listed databases. This is unrelated to searching the databases + -- together. AttributeDetails describes how databases can be searched. Each supported attribute is listed, and the + -- allowable combinations can be described. + + +AttributeDetails ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + -- Non-brief elements follow: + attributesBySet [2] IMPLICIT SEQUENCE OF AttributeSetDetails OPTIONAL, + -- mandatory in full record + attributeCombinations [3] IMPLICIT AttributeCombinations OPTIONAL} + + + + +-- AttributeSetDetails referenced by AttributeDetails + AttributeSetDetails ::= SEQUENCE { + attributeSet [0] IMPLICIT AttributeSetId, + attributesByType [1] IMPLICIT SEQUENCE OF AttributeTypeDetails } + AttributeTypeDetails ::= SEQUENCE { + attributeType [0] IMPLICIT INTEGER, + defaultIfOmitted [1] IMPLICIT OmittedAttributeInterpretation OPTIONAL, + attributeValues [2] IMPLICIT SEQUENCE OF AttributeValue OPTIONAL } + -- If no attributeValues are supplied, all values of this type are fully + -- supported, and the descriptions in AttributeSetInfo are adequate. + + OmittedAttributeInterpretation ::= SEQUENCE { + defaultValue [0] StringOrNumeric OPTIONAL, + -- A default value is listed if that's how the server works + defaultDescription [1] IMPLICIT HumanString OPTIONAL } + -- The human-readable description should generally be provided. + -- It is legal for both default elements to be missing, which + -- means that the target will allow the attribute type to be + -- omitted, but isn't saying what it will do. + + AttributeValue ::= SEQUENCE { + value [0] StringOrNumeric, + description [1] IMPLICIT HumanString OPTIONAL, + subAttributes [2] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL, + superAttributes [3] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL, + partialSupport [4] IMPLICIT NULL OPTIONAL } + -- partialSupport indicates that an attributeValue is accepted, but may not be processed in the + -- "expected" way. One important reason for this is composite databases: in this case partialSupport + -- may indicate that only some of the subDbs support the attribute, and others ignore it. + + + +TermListDetails ::= SEQUENCE{ -- one for each termList in TermListInfo + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + termListName [1] IMPLICIT InternationalString, + -- Non-key elements (all non-brief) follow: + description [2] IMPLICIT HumanString OPTIONAL, + attributes [3] IMPLICIT AttributeCombinations OPTIONAL, + -- Pattern for attributes that hit this list. Mandatory in full record + scanInfo [4] IMPLICIT SEQUENCE { + maxStepSize [0] IMPLICIT INTEGER OPTIONAL, + collatingSequence [1] IMPLICIT HumanString OPTIONAL, + increasing [2] IMPLICIT BOOLEAN OPTIONAL} OPTIONAL, + -- Occurs only if list is scanable. If list is scanable and if scanInfo is omitted, + -- target doesn't consider these important. + estNumberTerms [5] IMPLICIT INTEGER OPTIONAL, + sampleTerms [6] IMPLICIT SEQUENCE OF Term OPTIONAL} + + + +ElementSetDetails ::= SEQUENCE { + -- ElementSetDetails describes the way that database records are mapped to record elements. This + -- mapping may be different for each combination of database name and element set. The database record + -- description is a schema, which may be private to the target. The schema's abstract record structure + -- and tag sets provide the vocabulary for discussing record content; their presence in the Explain + -- database does not imply support for complex retrieval specification. + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + elementSetName [2] IMPLICIT ElementSetName, + recordSyntax [3] IMPLICIT OBJECT IDENTIFIER, + -- Non-key Brief elements follow: + schema [4] IMPLICIT OBJECT IDENTIFIER, + -- Non-brief elements follow: + description [5] IMPLICIT HumanString OPTIONAL, + detailsPerElement [6] IMPLICIT SEQUENCE OF PerElementDetails OPTIONAL -- mandatory in full record + } + + +RetrievalRecordDetails ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + schema [2] IMPLICIT OBJECT IDENTIFIER, + recordSyntax [3] IMPLICIT OBJECT IDENTIFIER, + -- Non-brief elements follow: + description [4] IMPLICIT HumanString OPTIONAL, + detailsPerElement [5] IMPLICIT SEQUENCE OF PerElementDetails OPTIONAL + -- mandatory in full record + } + +-- PerElementDetails is referenced in RetrievalRecordDetails and ElementSetDetails. + PerElementDetails ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + -- If the name is omitted, the record syntax's name for this element + -- is appropriate. + recordTag [1] IMPLICIT RecordTag OPTIONAL, + -- The record tag may be omitted if tags are inappropriate for the record + -- syntax, or if the origin can be expected to know it for some other reason. + schemaTags [2] IMPLICIT SEQUENCE OF Path OPTIONAL, + -- The information from the listed schema elements is combined + -- in some way to produce the data sent in the listed record tag. The + -- 'contents' element below may describe the logic used. + maxSize [3] IMPLICIT INTEGER OPTIONAL, + minSize [4] IMPLICIT INTEGER OPTIONAL, + avgSize [5] IMPLICIT INTEGER OPTIONAL, + fixedSize [6] IMPLICIT INTEGER OPTIONAL, + repeatable [8] IMPLICIT BOOLEAN, + required [9] IMPLICIT BOOLEAN, + -- 'required' really means that target will always supply the element. + description [12] IMPLICIT HumanString OPTIONAL, + contents [13] IMPLICIT HumanString OPTIONAL, + billingInfo [14] IMPLICIT HumanString OPTIONAL, + restrictions [15] IMPLICIT HumanString OPTIONAL, + alternateNames [16] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + genericNames [17] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + searchAccess [18] IMPLICIT AttributeCombinations OPTIONAL } + -- RecordTag referenced in PerElementDetails above + RecordTag ::= SEQUENCE { + qualifier [0] StringOrNumeric OPTIONAL, + -- E.g. tag set for GRS-1 + tagValue [1] StringOrNumeric} + +SortDetails ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + -- No non-key brief elements + -- Non-brief elements follow: + sortKeys [2] IMPLICIT SEQUENCE OF SortKeyDetails OPTIONAL + -- mandatory in full record + } + SortKeyDetails ::= SEQUENCE { + description [0] IMPLICIT HumanString OPTIONAL, + elementSpecifications [1] IMPLICIT SEQUENCE OF Specification OPTIONAL, + -- each specification is a way of specifying this same sort key + attributeSpecifications [2] IMPLICIT AttributeCombinations OPTIONAL, + -- each combination is a way of specifying this same sort key + sortType [3] CHOICE { + character [0] IMPLICIT NULL, + numeric [1] IMPLICIT NULL, + structured [2] IMPLICIT HumanString} OPTIONAL, + caseSensitivity [4] IMPLICIT INTEGER { + always (0), -- always case-sensitive + never (1), -- never case-sensitive + default-yes (2), -- case-sensitivity is as specified on request, and if not + -- specified, case-sensitive. + default-no (3)} -- case-sensitivity is as specified on request, and if not + -- specified, not case-sensitive. + OPTIONAL} + +ProcessingInformation ::= SEQUENCE{ + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + databaseName [1] IMPLICIT DatabaseName, + processingContext [2] IMPLICIT INTEGER { + access (0), -- e.g. choosing databases + search (1), -- e.g. "search strategies" or search forms + retrieval (2), -- e.g. recommended element combinations + record-presentation (3), -- display of retrieved records + record-handling (4) -- handling (e.g. saving) of retrieved records + }, + name [3] IMPLICIT InternationalString, + oid [4] IMPLICIT OBJECT IDENTIFIER, + -- No non-key brief elements + -- Non-brief elements follow: + description [5] IMPLICIT HumanString OPTIONAL, + -- use element set name 'description' to retrieve all except instructions. + instructions [6] IMPLICIT EXTERNAL OPTIONAL -- mandatory in full record + } + + +VariantSetInfo ::= SEQUENCE { + -- A record in this category describes a variant set definition, i.e., classes, types, and values, for a specific + -- variant set definition supported by the target. Support by the target of a particular variant set definition + -- does not imply that the definition is supported for any specific database or element. + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + variantSet [1] IMPLICIT OBJECT IDENTIFIER, + -- Non-key brief elements follow: + name [2] IMPLICIT InternationalString, + -- Non-brief elements follow: + variants [3] IMPLICIT SEQUENCE OF VariantClass OPTIONAL + -- mandatory in full record + } + + -- Subsidiary structures for VariantSetInfo + VariantClass ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + variantClass [2] IMPLICIT INTEGER, + variantTypes [3] IMPLICIT SEQUENCE OF VariantType} + VariantType ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + variantType [2] IMPLICIT INTEGER, + variantValue [3] IMPLICIT VariantValue OPTIONAL} + VariantValue ::= SEQUENCE { + dataType [0] PrimitiveDataType, + values [1] ValueSet OPTIONAL } + ValueSet ::= CHOICE { + range [0] IMPLICIT ValueRange, + enumerated [1] IMPLICIT SEQUENCE OF ValueDescription } + ValueRange ::= SEQUENCE { + -- At last one the following must be supplied, both may be supplied. + lower [0] ValueDescription OPTIONAL, + upper [1] ValueDescription OPTIONAL } + ValueDescription ::= CHOICE{ + integer INTEGER, + string InternationalString, + octets OCTET STRING, + oid OBJECT IDENTIFIER, + unit [1] IMPLICIT Unit, + valueAndUnit [2] IMPLICIT IntUnit + -- oid and unit can't be used in a ValueRange + } + + + +UnitInfo ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Key elements follow: + unitSystem [1] IMPLICIT InternationalString, + -- No non-key brief elements + -- Non-brief elements follow: + description [2] IMPLICIT HumanString OPTIONAL, + units [3] IMPLICIT SEQUENCE OF UnitType OPTIONAL + -- mandatory in full record + } + + -- Subsidiary structures for UnitInfo + UnitType ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + unitType [2] StringOrNumeric, + units [3] IMPLICIT SEQUENCE OF Units} + + Units ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + unit [2] StringOrNumeric} + +CategoryList ::= SEQUENCE { + commonInfo [0] IMPLICIT CommonInfo OPTIONAL, + -- Only one record expected per Explain database. All elements appear in brief presentation. + categories [1] IMPLICIT SEQUENCE OF CategoryInfo } + CategoryInfo ::= SEQUENCE { + category [1] IMPLICIT InternationalString, + originalCategory [2] IMPLICIT InternationalString OPTIONAL, + description [3] IMPLICIT HumanString OPTIONAL, + asn1Module [4] IMPLICIT InternationalString OPTIONAL} + + +-- - - - - - - - - - - - - - Subsidiary definitions + +CommonInfo ::= SEQUENCE { + dateAdded [0] IMPLICIT GeneralizedTime OPTIONAL, + dateChanged [1] IMPLICIT GeneralizedTime OPTIONAL, + expiry [2] IMPLICIT GeneralizedTime OPTIONAL, + humanString-Language [3] IMPLICIT LanguageCode OPTIONAL, + -- following not to occur for brief: + otherInfo OtherInformation OPTIONAL} + + +HumanString ::= SEQUENCE OF SEQUENCE { + language [0] IMPLICIT LanguageCode OPTIONAL, + text [1] IMPLICIT InternationalString} + +IconObject ::= SEQUENCE OF SEQUENCE{ + -- Note that the "SEQUENCE OF" is to allow alternative representations of the same Icon; it is not + -- intended to allow multiple icons. + bodyType [1] CHOICE{ + ianaType [1] IMPLICIT InternationalString, + z3950type [2] IMPLICIT InternationalString, + otherType [3] IMPLICIT InternationalString}, + content [2] IMPLICIT OCTET STRING} + + +LanguageCode ::= InternationalString -- from ANSI/NISO Z39.53-1994 + +ContactInfo ::= SEQUENCE { + name [0] IMPLICIT InternationalString OPTIONAL, + description [1] IMPLICIT HumanString OPTIONAL, + address [2] IMPLICIT HumanString OPTIONAL, + email [3] IMPLICIT InternationalString OPTIONAL, + phone [4] IMPLICIT InternationalString OPTIONAL} + +NetworkAddress ::= CHOICE { + internetAddress [0] IMPLICIT SEQUENCE { + hostAddress [0] IMPLICIT InternationalString, + port [1] IMPLICIT INTEGER}, + osiPresentationAddress [1] IMPLICIT SEQUENCE { + pSel [0] IMPLICIT InternationalString, + sSel [1] IMPLICIT InternationalString OPTIONAL, + tSel [2] IMPLICIT InternationalString OPTIONAL, + nSap [3] IMPLICIT InternationalString}, + other [2] IMPLICIT SEQUENCE { + type [0] IMPLICIT InternationalString, + address [1] IMPLICIT InternationalString}} + +AccessInfo ::= SEQUENCE { + -- AccessInfo contains the fundamental information about what facilities are required to use this target + -- or server. For example, if an origin can handle none of the record syntaxes a database can provide, + -- it might choose not to access the database. + queryTypesSupported [0] IMPLICIT SEQUENCE OF QueryTypeDetails OPTIONAL, + diagnosticsSets [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + attributeSetIds [2] IMPLICIT SEQUENCE OF AttributeSetId OPTIONAL, + schemas [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + recordSyntaxes [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + resourceChallenges [5] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + restrictedAccess [6] IMPLICIT AccessRestrictions OPTIONAL, + costInfo [8] IMPLICIT Costs OPTIONAL, + variantSets [9] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, + elementSetNames [10] IMPLICIT SEQUENCE OF ElementSetName OPTIONAL, + unitSystems [11] IMPLICIT SEQUENCE OF InternationalString} + +-- begin auxiliary definitions for AccessInfo +-- Begin Query Details +QueryTypeDetails ::= CHOICE { + private [0] IMPLICIT PrivateCapabilities, + rpn [1] IMPLICIT RpnCapabilities, + iso8777 [2] IMPLICIT Iso8777Capabilities, + z39-58 [100] IMPLICIT HumanString, + erpn [101] IMPLICIT RpnCapabilities, + rankedList [102] IMPLICIT HumanString} + +PrivateCapabilities ::= SEQUENCE { + operators [0] IMPLICIT SEQUENCE OF SEQUENCE { + operator [0] IMPLICIT InternationalString, + description [1] IMPLICIT HumanString OPTIONAL } OPTIONAL, + searchKeys [1] IMPLICIT SEQUENCE OF SearchKey OPTIONAL, -- field names that can be searched + description [2] IMPLICIT SEQUENCE OF HumanString OPTIONAL } + +RpnCapabilities ::= SEQUENCE { + operators [0] IMPLICIT SEQUENCE OF INTEGER OPTIONAL, + -- Omitted means all operators are supported. + resultSetAsOperandSupported [1] IMPLICIT BOOLEAN, + restrictionOperandSupported [2] IMPLICIT BOOLEAN, + proximity [3] IMPLICIT ProximitySupport OPTIONAL} + +Iso8777Capabilities ::= SEQUENCE { + searchKeys [0] IMPLICIT SEQUENCE OF SearchKey, -- field names that may be searched + restrictions [1] IMPLICIT HumanString OPTIONAL + -- Omitted means supported, not specifying units. + } + +ProximitySupport ::= SEQUENCE { + anySupport [0] IMPLICIT BOOLEAN, + -- 'false' means no proximity support, in which case unitsSupported not supplied. + unitsSupported [1] IMPLICIT SEQUENCE OF CHOICE{ + known [1] IMPLICIT INTEGER, -- values from KnownProximityUnit + private [2] IMPLICIT SEQUENCE{ + unit [0] IMPLICIT INTEGER, + description [1] HumanString OPTIONAL}} OPTIONAL} + +SearchKey ::= SEQUENCE { + searchKey [0] IMPLICIT InternationalString, + description [1] IMPLICIT HumanString OPTIONAL } +-- End Query details +AccessRestrictions ::= SEQUENCE OF SEQUENCE { + accessType [0] INTEGER { + any (0), + search (1), + present (2), + specific-elements (3), + extended-services (4), + by-database (5)}, + accessText [1] IMPLICIT HumanString OPTIONAL, + accessChallenges [2] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL} + +Costs ::= SEQUENCE { + connectCharge [0] IMPLICIT Charge OPTIONAL, -- Per-connection charge + connectTime [1] IMPLICIT Charge OPTIONAL, -- Time-based charge + displayCharge [2] IMPLICIT Charge OPTIONAL, -- Per-record charge + searchCharge [3] IMPLICIT Charge OPTIONAL, -- Per-search charge + subscriptCharge [4] IMPLICIT Charge OPTIONAL, -- Subscription charges + otherCharges [5] IMPLICIT SEQUENCE OF SEQUENCE{ -- Other charges + forWhat [1] IMPLICIT HumanString, + charge [2] IMPLICIT Charge} OPTIONAL} + Charge ::= SEQUENCE{ + cost [1] IMPLICIT IntUnit, + perWhat [2] IMPLICIT Unit OPTIONAL, + -- e.g. "second," "minute," "line," "record"... + text [3] IMPLICIT HumanString OPTIONAL} +-- End Auxiliary definitions for AccessInfo + +DatabaseList ::= SEQUENCE OF DatabaseName + +AttributeCombinations ::= SEQUENCE { + defaultAttributeSet [0] IMPLICIT AttributeSetId, + -- Default for the combinations. Also probably a good choice for the default + -- in searches, but that isn't required. + legalCombinations [1] IMPLICIT SEQUENCE OF AttributeCombination } + + +AttributeCombination ::= SEQUENCE OF AttributeOccurrence + -- An AttributeCombination is a pattern for legal combination of attributes + + +AttributeOccurrence ::= SEQUENCE { + -- An AttributeOccurrence lists the legal values for a specific attribute type in a combination. + attributeSet [0] IMPLICIT AttributeSetId OPTIONAL, + attributeType [1] IMPLICIT INTEGER, + mustBeSupplied [2] IMPLICIT NULL OPTIONAL, + attributeValues CHOICE { + any-or-none [3] IMPLICIT NULL, -- All supported values are OK + specific [4] IMPLICIT SEQUENCE OF StringOrNumeric}} + -- Only these values allowed +END + + + + + + + + + +RecordSyntax-SUTRS +{Z39-50-recordSyntax SUTRS (101)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; + SutrsRecord ::= InternationalString +-- Line terminator is ASCII LF (X'0A'). +-- Recommended maximum line length is 72 characters. +END + + + + + +RecordSyntax-opac +{Z39-50-recordSyntax opac (102)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; +OPACRecord ::= SEQUENCE { + bibliographicRecord [1] IMPLICIT EXTERNAL OPTIONAL, + holdingsData [2] IMPLICIT SEQUENCE OF HoldingsRecord OPTIONAL} +HoldingsRecord ::= CHOICE { + marcHoldingsRecord [1] IMPLICIT EXTERNAL, + holdingsAndCirc [2] IMPLICIT HoldingsAndCircData} +HoldingsAndCircData ::= SEQUENCE { +-- the following elements are required to display holdings in conformance with NISO standards. + typeOfRecord [1] IMPLICIT InternationalString OPTIONAL, -- LDR 06 + encodingLevel [2] IMPLICIT InternationalString OPTIONAL, -- LDR 017 + format [3] IMPLICIT InternationalString OPTIONAL, -- 007 00-01 + receiptAcqStatus [4] IMPLICIT InternationalString OPTIONAL, -- 008 06 + generalRetention [5] IMPLICIT InternationalString OPTIONAL, -- 008 12 + completeness [6] IMPLICIT InternationalString OPTIONAL, -- 008 16 + dateOfReport [7] IMPLICIT InternationalString OPTIONAL, -- 008 26-31 + nucCode [8] IMPLICIT InternationalString OPTIONAL, -- 852 $a + localLocation [9] IMPLICIT InternationalString OPTIONAL, -- 852 $b + shelvingLocation [10] IMPLICIT InternationalString OPTIONAL, -- 852 $c + callNumber [11] IMPLICIT InternationalString OPTIONAL, -- 852 $h and $i + shelvingData [12] IMPLICIT InternationalString OPTIONAL, -- 852 $j thru $m + copyNumber [13] IMPLICIT InternationalString OPTIONAL, -- 852 $t + publicNote [14] IMPLICIT InternationalString OPTIONAL, -- 852 $z + reproductionNote [15] IMPLICIT InternationalString OPTIONAL, -- 843 + termsUseRepro [16] IMPLICIT InternationalString OPTIONAL, -- 845 + enumAndChron [17] IMPLICIT InternationalString OPTIONAL, -- all 85x, 86x + volumes [18] IMPLICIT SEQUENCE OF Volume OPTIONAL, + -- repeats for each volume held + circulationData [19] IMPLICIT SEQUENCE OF CircRecord OPTIONAL + -- repeats for each circulating item. + } +Volume ::= SEQUENCE { + enumeration [1] IMPLICIT InternationalString OPTIONAL, + chronology [2] IMPLICIT InternationalString OPTIONAL, + enumAndChron [3] IMPLICIT InternationalString OPTIONAL } +CircRecord ::= SEQUENCE { + availableNow [1] IMPLICIT BOOLEAN, + availablityDate [2] IMPLICIT InternationalString OPTIONAL, + availableThru [3] IMPLICIT InternationalString OPTIONAL, + restrictions [4] IMPLICIT InternationalString OPTIONAL, + itemId [5] IMPLICIT InternationalString OPTIONAL, + renewable [6] IMPLICIT BOOLEAN, + onHold [7] IMPLICIT BOOLEAN, + enumAndChron [8] IMPLICIT InternationalString OPTIONAL, + midspine [9] IMPLICIT InternationalString OPTIONAL, + temporaryLocation [10] IMPLICIT InternationalString OPTIONAL} +END + + + +RecordSyntax-summary + +{Z39-50-recordSyntax summary (103)} DEFINITIONS ::= +BEGIN +IMPORTS OtherInformation, InternationalString FROM Z39-50-APDU-1995; +BriefBib ::= SEQUENCE { + title [1] IMPLICIT InternationalString, + author [2] IMPLICIT InternationalString OPTIONAL, + callNumber [3] IMPLICIT InternationalString OPTIONAL, + recordType [4] IMPLICIT InternationalString OPTIONAL, + bibliographicLevel [5] IMPLICIT InternationalString OPTIONAL, + format [6] IMPLICIT SEQUENCE OF FormatSpec OPTIONAL, + publicationPlace [7] IMPLICIT InternationalString OPTIONAL, + publicationDate [8] IMPLICIT InternationalString OPTIONAL, + targetSystemKey [9] IMPLICIT InternationalString OPTIONAL, + satisfyingElement [10] IMPLICIT InternationalString OPTIONAL, + rank [11] IMPLICIT INTEGER OPTIONAL, + documentId [12] IMPLICIT InternationalString OPTIONAL, + abstract [13] IMPLICIT InternationalString OPTIONAL, + otherInfo OtherInformation OPTIONAL} + +FormatSpec ::= SEQUENCE { + type [1] IMPLICIT InternationalString, + size [2] IMPLICIT INTEGER OPTIONAL, + bestPosn [3] IMPLICIT INTEGER OPTIONAL} +END + + + + + + + + + + +RecordSyntax-generic -- For detailed semantics, see Appendix RET. +{Z39-50-recordSyntax GRS-1 (105)} DEFINITIONS ::= +BEGIN +EXPORTS Variant; +IMPORTS IntUnit, Unit, InternationalString, StringOrNumeric, Term FROM Z39-50-APDU-1995; + +GenericRecord ::= SEQUENCE OF TaggedElement +TaggedElement ::= SEQUENCE { + tagType [1] IMPLICIT INTEGER OPTIONAL, + -- If omitted, default should be supplied dynamically by tagSet-M; + -- otherwise it should be statically specified by the schema. + tagValue [2] StringOrNumeric, + tagOccurrence [3] IMPLICIT INTEGER OPTIONAL, + -- Occurrence within the database record, and relative to the parent. No + -- default; if omitted, target not telling or it is irrelevant. + content [4] ElementData, + metaData [5] IMPLICIT ElementMetaData OPTIONAL, + appliedVariant [6] IMPLICIT Variant OPTIONAL} + +ElementData ::= CHOICE{ + octets OCTET STRING, + numeric INTEGER, + date GeneralizedTime, + ext EXTERNAL, + string InternationalString, + trueOrFalse BOOLEAN, + oid OBJECT IDENTIFIER, + intUnit [1] IMPLICIT IntUnit, + elementNotThere [2] IMPLICIT NULL, -- element requested but not there + elementEmpty [3] IMPLICIT NULL, -- element there, but empty + noDataRequested [4] IMPLICIT NULL, -- variant request said 'no data' + diagnostic [5] IMPLICIT EXTERNAL, + subtree [6] SEQUENCE OF TaggedElement -- recursive, for nested tags + } + + +ElementMetaData ::= SEQUENCE{ + seriesOrder [1] IMPLICIT Order OPTIONAL, -- only for a non-leaf node + usageRight [2] IMPLICIT Usage OPTIONAL, + hits [3] IMPLICIT SEQUENCE OF HitVector OPTIONAL, + displayName [4] IMPLICIT InternationalString OPTIONAL, + -- name for element that origin can use for display + supportedVariants [5] IMPLICIT SEQUENCE OF Variant OPTIONAL, + message [6] IMPLICIT InternationalString OPTIONAL, + elementDescriptor [7] IMPLICIT OCTET STRING OPTIONAL, + surrogateFor [8] IMPLICIT TagPath OPTIONAL, + -- the retrieved element is a surrogate for the element given by this path + surrogateElement [9] IMPLICIT TagPath OPTIONAL, + -- the element given by this path is a surrogate for the retrieved element + other [99] IMPLICIT EXTERNAL OPTIONAL} + + TagPath ::= SEQUENCE OF SEQUENCE{ + tagType [1] IMPLICIT INTEGER OPTIONAL, + tagValue [2] StringOrNumeric, + tagOccurrence [3] IMPLICIT INTEGER OPTIONAL} + + + +Order ::= SEQUENCE{ + ascending [1] IMPLICIT BOOLEAN, + -- "true" means monotonically increasing (i.e. non-decreasing); + -- "false" means monotonically decreasing (i.e. non-increasing). + order [2] IMPLICIT INTEGER + -- Same as defined by 'elementOrdering' in tagSet-M, though this may be + -- overridden by schema. + } + + + +Usage ::= SEQUENCE { + type [1] IMPLICIT INTEGER{ + redistributable (1), -- Element is freely redistributable. + restricted (2), -- Restriction contains statement. + licensePointer (3) -- Restriction contains license pointer. + }, + restriction [2] IMPLICIT InternationalString OPTIONAL} + + + +HitVector ::= SEQUENCE{ + -- Each hit vector points to a fragment within the element, via location and/or token. + satisfier Term OPTIONAL, -- sourceword, etc. + offsetIntoElement [1] IMPLICIT IntUnit OPTIONAL, + length [2] IMPLICIT IntUnit OPTIONAL, + hitRank [3] IMPLICIT INTEGER OPTIONAL, + targetToken [4] IMPLICIT OCTET STRING OPTIONAL + -- Origin may use token subsequently within a variantRequest (in + -- an elementRequest) to retrieve (or to refer to) the fragment. + } + + + + +Variant ::= SEQUENCE{ + globalVariantSetId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + -- Applies to the triples below, when variantSetId omitted. If + -- globalVariantSetId omitted, default applies. Default may be provided by + -- the tagSet-M element defaultVariantSetId. + + + + + triples [2] IMPLICIT SEQUENCE OF SEQUENCE{ + variantSetId [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + -- If omitted, globalVariantSetId (above) + -- applies, unless that too is omitted, in + -- which case, default used. + class [1] IMPLICIT INTEGER, + type [2] IMPLICIT INTEGER, + value [3] CHOICE{ + integer INTEGER, + internationalString InternationalString, + octetString OCTET STRING, + objectIdentifier OBJECT IDENTIFIER, + boolean BOOLEAN, + null NULL, + -- Following need context tags: + unit [1] IMPLICIT Unit, + valueAndUnit [2] IMPLICIT IntUnit}}} +END + + + +RecordSyntax-ESTaskPackage +{Z39-50-recordSyntax ESTaskPackage (106)} DEFINITIONS ::= +BEGIN +IMPORTS Permissions, InternationalString, IntUnit, DiagRec FROM Z39-50-APDU-1995; + +TaskPackage ::= SEQUENCE{ + packageType [1] IMPLICIT OBJECT IDENTIFIER, + -- oid of specific ES definition + packageName [2] IMPLICIT InternationalString OPTIONAL, + userId [3] IMPLICIT InternationalString OPTIONAL, + retentionTime [4] IMPLICIT IntUnit OPTIONAL, + permissions [5] IMPLICIT Permissions OPTIONAL, + description [6] IMPLICIT InternationalString OPTIONAL, + targetReference [7] IMPLICIT OCTET STRING OPTIONAL, + creationDateTime [8] IMPLICIT GeneralizedTime OPTIONAL, + taskStatus [9] IMPLICIT INTEGER{ + pending (0), + active (1), + complete (2), + aborted (3)}, + packageDiagnostics [10] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, + taskSpecificParameters [11] IMPLICIT EXTERNAL + -- Use oid for specific ES definition + -- (same oid as packageType above) + -- and select [2] "taskPackage." + } +END + + + + +ResourceReport-Format-Resource-1 +{Z39-50-resourceReport resource-1 (1)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; +-- +ResourceReport ::= SEQUENCE{ +estimates [1] IMPLICIT SEQUENCE OF Estimate, +message [2] IMPLICIT InternationalString} +-- +Estimate ::= SEQUENCE{ +type [1] IMPLICIT EstimateType, +value [2] IMPLICIT INTEGER, -- the actual estimate +currency-code [3] IMPLICIT INTEGER OPTIONAL + -- code for representation of currencies defined in ISO 4217-1990. + -- Applicable only to monetary estimates. + } +EstimateType ::= INTEGER{ +currentSearchRecords (1), -- estimated no. records in current (incomplete) result set for search +finalSearchRecords (2), -- estimated no. records that will be in result set if search completes +currentPresentRecords (3), -- estimated number of records in current (incomplete) set of + -- records to be returned on Present +finalPresentRecords (4), -- estimated number of records that will be in the set of records + -- to be returned by Present if Present completes +currentOpTimeProcessing (5), -- processing time (in .001 CPU seconds) used by operation so far +finalOpTimeProcessing (6), -- estimated total processing time (in .001 CPU seconds) that will + -- be used by this operation if it completes +currentAssocTime (7), -- estimated processing time used by association (in .001 CPU sec.) +currentOperationCost (8), -- estimated cost for this operation so far +finalOperationCost (9), -- estimated cost for this operation if it completes +currentAssocCost (10), -- estimated cost for this association so far +finalOpTimeElapsed (11), -- estimated elapsed time for operation if it completes (in .001 sec.) +percentComplete (12), -- estimated percent complete +currentSearchAssocCost (13), -- estimated search cost for association so far +currentPresentAssocCost (14), -- estimated present cost for this association so far +currentConnectAssocCost (15), -- estimated connect time cost for association so far +currentOtherAssocCost (16) -- estimated other cost (not included in 13-15) for association so far + } +END + + + + + + + + + + + + + +ResourceReport-Format-Resource-2 +{Z39-50-resourceReport resource-2 (2)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString, StringOrNumeric, IntUnit FROM Z39-50-APDU-1995; +-- +ResourceReport ::= SEQUENCE{ +estimates [1] IMPLICIT SEQUENCE OF Estimate OPTIONAL, +message [2] IMPLICIT InternationalString OPTIONAL} +-- +Estimate ::= SEQUENCE{ +type [1] StringOrNumeric, + -- Numeric values of 1-16 are the same as used in Resource-1. +value [2] IMPLICIT IntUnit + -- When expressing currency: + -- unitSystem (of Unit) is 'z3950' (case insensitive) + -- unitType is 'iso4217-1990' (case insensitive) + -- unit is currency code from ISO 4217-1990. +} +END + + + + + +AccessControlFormat-prompt-1 +{Z39-50-accessControl prompt-1 (1)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString, DiagRec FROM Z39-50-APDU-1995; +-- +PromptObject ::= CHOICE{ + challenge [1] IMPLICIT Challenge, + response [2] IMPLICIT Response} + + Challenge ::= SEQUENCE OF SEQUENCE { + promptId [1] PromptId, + -- Target supplies a number (for an enumerated prompt) or string (for a non + -- -enumerated prompt), for each prompt, and the origin returns it in response, for + -- this prompt, so target may correlate the prompt response with the prompt. + defaultResponse [2] IMPLICIT InternationalString OPTIONAL, + promptInfo [3] CHOICE{ + character [1] IMPLICIT InternationalString, + encrypted [2] IMPLICIT Encryption} OPTIONAL, + -- Information corresponding to an enumerated prompt. For example if 'type', within + -- PromptId, is 'copyright', then promptInfo may contain a copyright statement. + regExpr [4] IMPLICIT InternationalString OPTIONAL, + -- A regular expression that promptResponse should match. See IEEE 1003.2 + -- Volume 1, Section 2.8 "Regular Expression Notation." For example if promptId + -- is "Year of publication," regExpr might be "19[89][0-9]|20[0-9][0-9]". + responseRequired [5] IMPLICIT NULL OPTIONAL, + allowedValues [6] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + -- e.g. promptId="Desired color"; allowed = 'red', 'blue','Green'. + shouldSave [7] IMPLICIT NULL OPTIONAL, + -- Target recommends that origin save the data that it prompts from the + -- user corresponding to this prompt, because it is likely to be requested again (so + -- origin might not have to prompt the user next time). + dataType [8] IMPLICIT INTEGER{ + integer (1), + date (2), + float (3), + alphaNumeric (4), + url-urn (5), + boolean (6)} OPTIONAL, + -- Target telling origin type of data it wants. E.g., if "date" is specified, + -- presumably the origin will try to prompt something "date-like" from the user. + diagnostic [9] IMPLICIT EXTERNAL OPTIONAL + -- Intended for repeat requests when there is an error the origin + -- should report to the user from previous attempt. + } + + + Response ::= SEQUENCE OF SEQUENCE { + promptId [1] PromptId, + -- Corresponds to a prompt in the challenge, or may be unprompted, for + -- example "newPassword." If unprompted, should be "enumerated." + -- If this responds to a non-enumerated prompt, then nonEnumeratedPrompt + -- should contain the prompt string from the challenge. + promptResponse [2] CHOICE{ + string [1] IMPLICIT InternationalString, + accept [2] IMPLICIT BOOLEAN, + acknowledge [3] IMPLICIT NULL, + diagnostic [4] DiagRec, + encrypted [5] IMPLICIT Encryption}} + + + PromptId ::= CHOICE{ + enummeratedPrompt [1] IMPLICIT SEQUENCE{ + type [1] IMPLICIT INTEGER{ + groupId (0), + userId (1), + password (2), + newPassword (3), + copyright (4), + -- When type on Challenge is 'copyright', promptInfo has text of + -- copyright message to be displayed verbatim to the user. If + -- promptResponse indicates 'acceptance', this indicates the user has been + -- shown, and accepted, the terms of the copyright. This is not intended + -- to be legally binding, but provides a good-faith attempt on + -- the part of the target to inform the user of the copyright. + sessionId (5)}, + suggestedString [2] IMPLICIT InternationalString OPTIONAL}, + nonEnumeratedPrompt [2] IMPLICIT InternationalString} + + + Encryption ::= SEQUENCE{ + cryptType [1] IMPLICIT OCTET STRING OPTIONAL, + credential [2] IMPLICIT OCTET STRING OPTIONAL, + --random number, SALT, or other factor + data [3] IMPLICIT OCTET STRING} + +END + + + + +AccessControlFormat-des-1 +{Z39-50-accessControlFormat des-1 (2)} DEFINITIONS ::= +BEGIN + DES-RN-Object ::= CHOICE { + challenge [1] IMPLICIT DRNType, + response [2] IMPLICIT DRNType} + DRNType ::= SEQUENCE{ + userId [1] IMPLICIT OCTET STRING OPTIONAL, + salt [2] IMPLICIT OCTET STRING OPTIONAL, + randomNumber [3] IMPLICIT OCTET STRING} +END + + +AccessControlFormat-krb-1 +{Z39-50-accessControlFormat krb-1 (3)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; + + KRBObject ::= CHOICE { + challenge [1] IMPLICIT KRBRequest, + response [2] IMPLICIT KRBResponse} + KRBRequest ::= SEQUENCE{ + service [1] IMPLICIT InternationalString, + instance [2] IMPLICIT InternationalString OPTIONAL, + realm [3] IMPLICIT InternationalString OPTIONAL} + -- target requests a ticket for the given service, instance, and realm + KRBResponse ::= SEQUENCE{ + userid [1] IMPLICIT InternationalString OPTIONAL, + ticket [2] IMPLICIT OCTET STRING} + -- origin responds with a ticket for the requested service +END + + + + + + + + + +ESFormat-PersistentResultSet +{Z39-50-extendedService PersistentResultSet (1)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; +PersistentResultSet ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] IMPLICIT NULL, + notToKeep [2] OriginPartNotToKeep OPTIONAL}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] IMPLICIT NULL, + targetPart [2] TargetPart OPTIONAL}} +OriginPartNotToKeep ::= SEQUENCE{ + originSuppliedResultSet [1] IMPLICIT InternationalString OPTIONAL, + -- name of transient result set, supplied on request, mandatory unless function is 'delete' + replaceOrAppend [2] IMPLICIT INTEGER{ -- only if function is "modify" + replace (1), + append (2)} OPTIONAL} +TargetPart ::= SEQUENCE{ + targetSuppliedResultSet [1] IMPLICIT InternationalString OPTIONAL, + -- Name of transient result set, supplied by target, representing the persistent result set to which + -- package pertains. Meaningful only when package is presented. (i.e. not on ES response). + numberOfRecords [2] IMPLICIT INTEGER OPTIONAL} +END + + +ESFormat-PersistentQuery +{Z39-50-extendedService PersistentQuery (2)} DEFINITIONS ::= +BEGIN +IMPORTS Query, InternationalString, OtherInformation FROM Z39-50-APDU-1995; +PersistentQuery ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep OPTIONAL, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep OPTIONAL, + targetPart [2] TargetPart}} +OriginPartToKeep ::= SEQUENCE{ + dbNames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + additionalSearchInfo [3] OtherInformation OPTIONAL} +OriginPartNotToKeep ::= CHOICE{ + package [1] IMPLICIT InternationalString, + query [2] Query} +TargetPart ::= Query +END + +ESFormat-PeriodicQuerySchedule +{Z39-50-extendedService PeriodicQuerySchedule (3)} DEFINITIONS ::= +BEGIN +IMPORTS Query, InternationalString, IntUnit FROM Z39-50-APDU-1995 +ExportSpecification, Destination FROM ESFormat-ExportSpecification; + +PeriodicQuerySchedule ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep, + targetPart [2] TargetPart}} + +OriginPartToKeep ::=SEQUENCE{ + activeFlag [1] IMPLICIT BOOLEAN, + databaseNames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + resultSetDisposition [3] IMPLICIT INTEGER{ + replace (1), + append (2), + createNew (3) -- Only if origin and target have agreement about + -- naming convention for the resulting package, + -- and only if no result set is specified. + } OPTIONAL, -- Mandatory on 'create' if result set is specified, in + -- which case it must be 'replace' or 'append. + alertDestination [4] Destination OPTIONAL, + exportParameters [5] CHOICE{ + packageName [1] IMPLICIT InternationalString, + exportPackage [2] ExportSpecification} OPTIONAL} + +OriginPartNotToKeep ::= SEQUENCE{ + querySpec [1] CHOICE{ + actualQuery [1] Query, + packageName [2] IMPLICIT InternationalString} OPTIONAL, + -- mandatory for 'create' + originSuggestedPeriod [2] Period OPTIONAL, -- mandatory for 'create' + expiration [3] IMPLICIT GeneralizedTime OPTIONAL, + resultSetPackage [4] IMPLICIT InternationalString OPTIONAL} + +TargetPart ::= SEQUENCE{ + actualQuery [1] Query, + targetStatedPeriod [2] Period, + -- Target supplies the period, which may be same as origin proposed. + expiration [3] IMPLICIT GeneralizedTime OPTIONAL, + -- Target supplies value for task package. It may be the same as origin + -- proposed or different from (and overrides) origin proposal, but if + -- omitted, there is no expiration. + resultSetPackage [4] IMPLICIT InternationalString OPTIONAL, + -- May be omitted only if exportParameters was supplied. Target + -- supplies same name as origin supplied, if origin did supply a name. + lastQueryTime [5] IMPLICIT GeneralizedTime, + lastResultNumber [6] IMPLICIT INTEGER, + numberSinceModify [7] IMPLICIT INTEGER OPTIONAL} + + + + + Period ::= CHOICE{ + unit [1] IMPLICIT IntUnit, + businessDaily [2] IMPLICIT NULL, + continuous [3] IMPLICIT NULL, + other [4] IMPLICIT InternationalString} +END + + +ESFormat-ItemOrder +{Z39-50-extendedService ItemOrder (4)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString FROM Z39-50-APDU-1995; +ItemOrder ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep OPTIONAL, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep OPTIONAL, + targetPart [2] TargetPart}} +OriginPartToKeep ::= SEQUENCE{ + supplDescription [1] IMPLICIT EXTERNAL OPTIONAL, + contact [2] IMPLICIT SEQUENCE{ + name [1] IMPLICIT InternationalString OPTIONAL, + phone [2] IMPLICIT InternationalString OPTIONAL, + email [3] IMPLICIT InternationalString OPTIONAL} OPTIONAL, + addlBilling [3] IMPLICIT SEQUENCE{ + paymentMethod [1] CHOICE{ + billInvoice [0] IMPLICIT NULL, + prepay [1] IMPLICIT NULL, + depositAccount [2] IMPLICIT NULL, + creditCard [3] IMPLICIT CreditCardInfo, + cardInfoPreviouslySupplied [4] IMPLICIT NULL, + privateKnown [5] IMPLICIT NULL, + privateNotKnown [6] IMPLICIT EXTERNAL}, + customerReference [2] IMPLICIT InternationalString OPTIONAL, + customerPONumber [3] IMPLICIT InternationalString OPTIONAL} + OPTIONAL} +CreditCardInfo ::= SEQUENCE{ + nameOnCard [1] IMPLICIT InternationalString, + expirationDate [2] IMPLICIT InternationalString, + cardNumber [3] IMPLICIT InternationalString} + +OriginPartNotToKeep ::= SEQUENCE{ -- Corresponds to 'requestedItem' in service definition. + -- Must supply at least one, and may supply both. + resultSetItem [1] IMPLICIT SEQUENCE{ + resultSetId [1] IMPLICIT InternationalString, + item [2] IMPLICIT INTEGER} OPTIONAL, + itemRequest [2] IMPLICIT EXTERNAL OPTIONAL + -- When itemRequest is an ILL-Request APDU, + -- use OID {iso standard 10161 abstract-syntax (2) ill-apdus (1)} + } + +TargetPart ::= SEQUENCE{ + itemRequest [1] IMPLICIT EXTERNAL OPTIONAL, + -- When itemRequest is an ILL-Request APDU, use OID 1.0.10161.2.1 (as above) + statusOrErrorReport [2] IMPLICIT EXTERNAL OPTIONAL, + -- When statusOrErrorReport is an ILL Status-Or-Error-Report APDU, use OID 1.0.10161.2.1 (as above) + auxiliaryStatus [3] IMPLICIT INTEGER{ + notReceived (1), + loanQueue (2), + forwarded (3), + unfilledCopyright (4), + filledCopyright (5)} OPTIONAL} +END + + + + +ESFormat-Update0 +{Z39-50-extendedService Update (5)} DEFINITIONS ::= +BEGIN +IMPORTS DiagRec, InternationalString FROM Z39-50-APDU-1995; +Update ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep, + targetPart [2] TargetPart}} + + +OriginPartToKeep ::= SEQUENCE{ + action [1] IMPLICIT INTEGER{ + recordInsert (1), + recordReplace (2), + recordDelete (3), + elementUpdate (4)}, + databaseName [2] IMPLICIT InternationalString, + schema [3] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + elementSetName [4] IMPLICIT InternationalString OPTIONAL} + + +OriginPartNotToKeep ::= SuppliedRecords + + +TargetPart ::= SEQUENCE{ + updateStatus [1] IMPLICIT INTEGER{ + success (1), + partial (2), + failure (3)}, + globalDiagnostics [2] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, + -- These are non-surrogate diagnostics relating to the task, + -- not to individual records. + taskPackageRecords [3] IMPLICIT SEQUENCE OF TaskPackageRecordStructure + -- There should be a TaskPackageRecordStructure for every record + -- supplied. The target should create such a structure for every + -- record immediately upon creating the task package to include + -- correlation information and status. The record itself would not + -- be included until processing for that record is complete. + } + +-- Auxiliary definitions for Update +SuppliedRecords ::= SEQUENCE OF SEQUENCE{ + recordId [1] CHOICE{ + number [1] IMPLICIT INTEGER, + string [2] IMPLICIT InternationalString, + opaque [3] IMPLICIT OCTET STRING} OPTIONAL, + supplementalId [2] CHOICE{ + timeStamp [1] IMPLICIT GeneralizedTime, + versionNumber [2] IMPLICIT InternationalString, + previousVersion [3] IMPLICIT EXTERNAL} OPTIONAL, + correlationInfo [3] IMPLICIT CorrelationInfo OPTIONAL, + record [4] IMPLICIT EXTERNAL} + +CorrelationInfo ::= SEQUENCE{ + -- origin may supply one or both for any record: + note [1] IMPLICIT InternationalString OPTIONAL, + id [2] IMPLICIT INTEGER OPTIONAL} + +TaskPackageRecordStructure ::= SEQUENCE{ + recordOrSurDiag [1] CHOICE { + record [1] IMPLICIT EXTERNAL, + -- Choose 'record' if recordStatus is 'success', and + -- elementSetName was supplied. + diagnostic [2] DiagRec + -- Choose 'diagnostic', if RecordStatus is failure. + } OPTIONAL, + -- The parameter recordOrSurDiag will thus be omitted only if + -- 'elementSetName' was omitted and recordStatus is + -- 'success'; or if record status is 'queued' or in 'process'. + correlationInfo [2] IMPLICIT CorrelationInfo OPTIONAL, + -- This should be included if it was supplied by the origin. + recordStatus [3] IMPLICIT INTEGER{ + success (1), + queued (2), + inProcess (3), + failure (4)}} +END + + +ESFormat-ExportSpecification +{Z39-50-extendedService ExportSpecification (6)} DEFINITIONS ::= +BEGIN +EXPORTS ExportSpecification, Destination; IMPORTS CompSpec, InternationalString FROM Z39-50-APDU-1995; +ExportSpecification ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] IMPLICIT NULL}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep, + targetPart [2] IMPLICIT NULL}} +OriginPartToKeep ::= SEQUENCE{ + composition [1] IMPLICIT CompSpec, + exportDestination [2] Destination} + + Destination ::= CHOICE{ + phoneNumber [1] IMPLICIT InternationalString, + faxNumber [2] IMPLICIT InternationalString, + x400address [3] IMPLICIT InternationalString, + emailAddress [4] IMPLICIT InternationalString, + pagerNumber [5] IMPLICIT InternationalString, + ftpAddress [6] IMPLICIT InternationalString, + ftamAddress [7] IMPLICIT InternationalString, + printerAddress [8] IMPLICIT InternationalString, + other [100] IMPLICIT SEQUENCE{ + vehicle [1] IMPLICIT InternationalString OPTIONAL, + destination [2] IMPLICIT InternationalString}} +END + + + + +ESFormat-ExportInvocation +{Z39-50-extendedService ExportInvocation (7)} DEFINITIONS ::= +BEGIN +IMPORTS InternationalString, IntUnit FROM Z39-50-APDU-1995 +ExportSpecification FROM ESFormat-ExportSpecification; +ExportInvocation ::= CHOICE{ + esRequest [1] IMPLICIT SEQUENCE{ + toKeep [1] OriginPartToKeep, + notToKeep [2] OriginPartNotToKeep}, + taskPackage [2] IMPLICIT SEQUENCE{ + originPart [1] OriginPartToKeep, + targetPart [2] TargetPart OPTIONAL}} + +OriginPartToKeep ::= SEQUENCE{ + exportSpec [1] CHOICE{ + packageName [1] IMPLICIT InternationalString, + packageSpec [2] ExportSpecification}, + numberOfCopies [2] IMPLICIT INTEGER} + + + + + +OriginPartNotToKeep ::= SEQUENCE{ + resultSetId [1] IMPLICIT InternationalString, + records [2] CHOICE{ + all [1] IMPLICIT NULL, + ranges [2] IMPLICIT SEQUENCE OF SEQUENCE{ + start [1] IMPLICIT INTEGER, + count [2] IMPLICIT INTEGER OPTIONAL + -- Count may be omitted only on last range, to indicate + -- "all remaining records beginning with 'start'." + }}} + +TargetPart ::= SEQUENCE{ + estimatedQuantity [1] IMPLICIT IntUnit OPTIONAL, + quantitySoFar [2] IMPLICIT IntUnit OPTIONAL, + estimatedCost [3] IMPLICIT IntUnit OPTIONAL, + costSoFar [4] IMPLICIT IntUnit OPTIONAL} +END + + + +UserInfoFormat-searchResult-1 +{Z39-50-userInfoFormat searchResult-1 (1)} DEFINITIONS ::= +BEGIN +IMPORTS DatabaseName, Term, Query, IntUnit, InternationalString FROM Z39-50-APDU-1995; +SearchInfoReport ::= SEQUENCE OF SEQUENCE{ + subqueryId [1] IMPLICIT InternationalString OPTIONAL, + -- shorthand identifier of subquery + fullQuery [2] IMPLICIT BOOLEAN, -- 'true' means this is the full query; 'false', + -- a sub-query + subqueryExpression [3] QueryExpression OPTIONAL, -- A subquery of the query as + -- submitted. May be whole query; + -- if so, "fullQuery" should be 'true'. + subqueryInterpretation [4] QueryExpression OPTIONAL, -- how target interpreted subquery + subqueryRecommendation [5] QueryExpression OPTIONAL, -- target-recommended alternative + subqueryCount [6] IMPLICIT INTEGER OPTIONAL, -- Number of records for this + -- subQuery, across all of the specified + -- databases. (If during search, via resource + -- control, number of records so far). + subqueryWeight [7] IMPLICIT IntUnit OPTIONAL, -- relative weight of this subquery + resultsByDB [8] IMPLICIT ResultsByDB OPTIONAL} + +ResultsByDB ::= SEQUENCE OF SEQUENCE{ + databases [1] CHOICE{ + all [1] IMPLICIT NULL, + -- applies across all of the databases in Search PDU + list [2] IMPLICIT SEQUENCE OF DatabaseName + -- applies across all databases in this list + }, + count [2] IMPLICIT INTEGER OPTIONAL, + -- Number of records for query component (and, as above, if during search, + -- via resource control, number of records so far). + resultSetName [3] IMPLICIT InternationalString OPTIONAL + -- Target-assigned result set by which subQuery is available. Should not + -- be provided unless processing for this query component is concluded (i.e., + -- when this report comes during search, via resource control, as opposed + -- to after search, via additionalSearchInfo). + } + +QueryExpression ::= CHOICE { + term [1] IMPLICIT SEQUENCE{ + queryTerm [1] Term, + termComment [2] IMPLICIT InternationalString OPTIONAL}, + query [2] Query} +END + + + +ElementSpecificationFormat-eSpec-1 +{Z39-50-elementSpec eSpec-1 (1)} DEFINITIONS ::= +BEGIN +IMPORTS Variant FROM RecordSyntax-generic +StringOrNumeric, InternationalString FROM Z39-50-APDU-1995; +-- +Espec-1 ::= SEQUENCE{ + elementSetNames [1] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, + -- Origin may include one or more element set names, each + -- specifying a set of elements. Each of the elements is to be + -- treated as an elementRequest in the form of simpleElement, + -- where occurrence is 1. + defaultVariantSetId [2] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + -- If supplied, applies whenever variantRequest + -- does not include variantSetId. + defaultVariantRequest [3] IMPLICIT Variant OPTIONAL, + -- If supplied, then for each simple elementRequest that does not + -- include a variantRequest, the defaultVariantRequest applies. + -- (defaultVariantRequest does not apply to a compositeRequest.) + defaultTagType [4] IMPLICIT INTEGER OPTIONAL, + -- If supplied, applies whenever 'tagType' (within 'tag' within TagPath) + -- is omitted. + elements [5] IMPLICIT SEQUENCE OF ElementRequest OPTIONAL} +-- + +ElementRequest::= CHOICE{ + simpleElement [1] IMPLICIT SimpleElement, + compositeElement [2] IMPLICIT SEQUENCE{ + elementList [1] CHOICE{ + primitives [1] IMPLICIT SEQUENCE OF InternationalString, + -- Origin may specify one or more element + -- set names, each identifying a set of elements, + -- and the composite element is the union. + specs [2] IMPLICIT SEQUENCE OF SimpleElement}, + + deliveryTag [2] IMPLICIT TagPath, + -- DeliveryTag tagPath for compositeElement may not + -- include wildThing or wildPath. + variantRequest [3] IMPLICIT Variant OPTIONAL}} + +SimpleElement ::= SEQUENCE{ + path [1] IMPLICIT TagPath, + variantRequest [2] IMPLICIT Variant OPTIONAL} + + +TagPath ::= SEQUENCE OF CHOICE{ + specificTag [1] IMPLICIT SEQUENCE{ + tagType [1] IMPLICIT INTEGER OPTIONAL, + -- If omitted, then 'defaultTagType' (above) applies, if supplied, and + -- if not supplied, then default listed in schema applies. + tagValue [2] StringOrNumeric, + occurrence [3] Occurrences OPTIONAL + -- default is "first occurrence" + }, + wildThing [2] Occurrences, + -- Get Nth "thing" at this level, regardless of tag, for each N specified by + -- "Occurrences" (which may be 'all' meaning match every element at this level). + -- E.g., if "Occurrences" is 3, get third element regardless of its tag or the tag of + -- the first two elements. + wildPath [3] IMPLICIT NULL + -- Match any tag, at this level or below, that is on a path for which next tag in this + -- TagPath sequence occurs. WildPath may not be last member of the TagPath + -- sequence. + } +-- + +Occurrences ::= CHOICE{ + all [1] IMPLICIT NULL, + last [2] IMPLICIT NULL, + values [3] IMPLICIT SEQUENCE{ + start [1] IMPLICIT INTEGER, + -- if 'start' alone is included, then single occurrence is requested + howMany [2] IMPLICIT INTEGER OPTIONAL + -- For example, if 'start' is 5 and 'howMany' is 6, then request is for + -- "occurrences 5 through 10." + }} +END + diff --git a/dependencies/yaz-2.1.28/src/zes-admin.c b/dependencies/yaz-2.1.28/src/zes-admin.c new file mode 100644 index 0000000..ce252b4 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-admin.c @@ -0,0 +1,124 @@ +/** \file zes-admin.c + \brief ASN.1 Module ESFormat-Admin + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_AdminEsRequest (ODR o, Z_AdminEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_ESAdminOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_ESAdminOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_AdminTaskPackage (ODR o, Z_AdminTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_ESAdminOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_ESAdminTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_Admin (ODR o, Z_Admin **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Admin_esRequest, + (Odr_fun) z_AdminEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Admin_taskPackage, + (Odr_fun) z_AdminTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ESAdminOriginPartToKeep (ODR o, Z_ESAdminOriginPartToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_ESAdminOriginPartToKeep_reIndex, + (Odr_fun) odr_null, "reIndex"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ESAdminOriginPartToKeep_truncate, + (Odr_fun) odr_null, "truncate"}, + {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_ESAdminOriginPartToKeep_drop, + (Odr_fun) odr_null, "drop"}, + {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_ESAdminOriginPartToKeep_create, + (Odr_fun) odr_null, "create"}, + {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_ESAdminOriginPartToKeep_import, + (Odr_fun) z_ImportParameters, "import"}, + {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ESAdminOriginPartToKeep_refresh, + (Odr_fun) odr_null, "refresh"}, + {ODR_EXPLICIT, ODR_CONTEXT, 7, Z_ESAdminOriginPartToKeep_commit, + (Odr_fun) odr_null, "commit"}, + {ODR_EXPLICIT, ODR_CONTEXT, 8, Z_ESAdminOriginPartToKeep_shutdown, + (Odr_fun) odr_null, "shutdown"}, + {ODR_EXPLICIT, ODR_CONTEXT, 9, Z_ESAdminOriginPartToKeep_start, + (Odr_fun) odr_null, "start"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "action") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->databaseName, ODR_CONTEXT, 2, 1, "databaseName") && + odr_sequence_end (o); +} + +int z_ESAdminOriginPartNotToKeep (ODR o, Z_ESAdminOriginPartNotToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_ESAdminOriginPartNotToKeep_records, + (Odr_fun) z_Segment, "records"}, + {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_ESAdminOriginPartNotToKeep_recordsWillFollow, + (Odr_fun) odr_null, "recordsWillFollow"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ESAdminTargetPart (ODR o, Z_ESAdminTargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, + &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_ImportParameters (ODR o, Z_ImportParameters **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->recordType, ODR_CONTEXT, 1, 0, "recordType") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zes-expi.c b/dependencies/yaz-2.1.28/src/zes-expi.c new file mode 100644 index 0000000..c979acd --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-expi.c @@ -0,0 +1,129 @@ +/** \file zes-expi.c + \brief ASN.1 Module ESFormat-ExportInvocation + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_EIExportInvocationEsRequest (ODR o, Z_EIExportInvocationEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_EIOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_EIOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_EIExportInvocationTaskPackage (ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_EIOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_EITargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") && + odr_sequence_end (o); +} + +int z_EIExportInvocation (ODR o, Z_EIExportInvocation **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIExportInvocation_esRequest, + (Odr_fun) z_EIExportInvocationEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIExportInvocation_taskPackage, + (Odr_fun) z_EIExportInvocationTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_EIOriginPartToKeep (ODR o, Z_EIOriginPartToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartToKeep_packageName, + (Odr_fun) z_InternationalString, "packageName"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartToKeep_packageSpec, + (Odr_fun) z_ESExportSpecification, "packageSpec"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "exportSpec") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfCopies, ODR_CONTEXT, 2, 0, "numberOfCopies") && + odr_sequence_end (o); +} + +int z_EIOriginPartNotToKeepRanges_s (ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->start, ODR_CONTEXT, 1, 0, "start") && + odr_implicit_tag (o, odr_integer, + &(*p)->count, ODR_CONTEXT, 2, 1, "count") && + odr_sequence_end (o); +} + +int z_EIOriginPartNotToKeepRanges (ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_EIOriginPartNotToKeepRanges_s, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_EIOriginPartNotToKeep (ODR o, Z_EIOriginPartNotToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartNotToKeep_all, + (Odr_fun) odr_null, "all"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartNotToKeep_ranges, + (Odr_fun) z_EIOriginPartNotToKeepRanges, "ranges"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetId, ODR_CONTEXT, 1, 0, "resultSetId") && + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "records") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_sequence_end (o); +} + +int z_EITargetPart (ODR o, Z_EITargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_IntUnit, + &(*p)->estimatedQuantity, ODR_CONTEXT, 1, 1, "estimatedQuantity") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->quantitySoFar, ODR_CONTEXT, 2, 1, "quantitySoFar") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->estimatedCost, ODR_CONTEXT, 3, 1, "estimatedCost") && + odr_implicit_tag (o, z_IntUnit, + &(*p)->costSoFar, ODR_CONTEXT, 4, 1, "costSoFar") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zes-exps.c b/dependencies/yaz-2.1.28/src/zes-exps.c new file mode 100644 index 0000000..f96f2ba --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-exps.c @@ -0,0 +1,105 @@ +/** \file zes-exps.c + \brief ASN.1 Module ESFormat-ExportSpecification + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_ESExportSpecificationEsRequest (ODR o, Z_ESExportSpecificationEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_ESOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_implicit_tag (o, odr_null, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_ESExportSpecificationTaskPackage (ODR o, Z_ESExportSpecificationTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_ESOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_implicit_tag (o, odr_null, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_ESExportSpecification (ODR o, Z_ESExportSpecification **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ESExportSpecification_esRequest, + (Odr_fun) z_ESExportSpecificationEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ESExportSpecification_taskPackage, + (Odr_fun) z_ESExportSpecificationTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_ESOriginPartToKeep (ODR o, Z_ESOriginPartToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_CompSpec, + &(*p)->composition, ODR_CONTEXT, 1, 0, "composition") && + odr_explicit_tag (o, z_ESDestination, + &(*p)->exportDestination, ODR_CONTEXT, 2, 0, "exportDestination") && + odr_sequence_end (o); +} + +int z_ESDestinationOther (ODR o, Z_ESDestinationOther **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->vehicle, ODR_CONTEXT, 1, 1, "vehicle") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->destination, ODR_CONTEXT, 2, 0, "destination") && + odr_sequence_end (o); +} + +int z_ESDestination (ODR o, Z_ESDestination **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ESDestination_phoneNumber, + (Odr_fun) z_InternationalString, "phoneNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ESDestination_faxNumber, + (Odr_fun) z_InternationalString, "faxNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ESDestination_x400address, + (Odr_fun) z_InternationalString, "x400address"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ESDestination_emailAddress, + (Odr_fun) z_InternationalString, "emailAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ESDestination_pagerNumber, + (Odr_fun) z_InternationalString, "pagerNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_ESDestination_ftpAddress, + (Odr_fun) z_InternationalString, "ftpAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_ESDestination_ftamAddress, + (Odr_fun) z_InternationalString, "ftamAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_ESDestination_printerAddress, + (Odr_fun) z_InternationalString, "printerAddress"}, + {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_ESDestination_other, + (Odr_fun) z_ESDestinationOther, "other"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/zes-order.c b/dependencies/yaz-2.1.28/src/zes-order.c new file mode 100644 index 0000000..47f8a7c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-order.c @@ -0,0 +1,161 @@ +/** \file zes-order.c + \brief ASN.1 Module ESFormat-ItemOrder + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_IORequest (ODR o, Z_IORequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IOOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 1, "toKeep") && + odr_explicit_tag (o, z_IOOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_IOTaskPackage (ODR o, Z_IOTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IOOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 1, "originPart") && + odr_explicit_tag (o, z_IOTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_IOItemOrder (ODR o, Z_IOItemOrder **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOItemOrder_esRequest, + (Odr_fun) z_IORequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOItemOrder_taskPackage, + (Odr_fun) z_IOTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IOContact (ODR o, Z_IOContact **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->name, ODR_CONTEXT, 1, 1, "name") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->phone, ODR_CONTEXT, 2, 1, "phone") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->email, ODR_CONTEXT, 3, 1, "email") && + odr_sequence_end (o); +} + +int z_IOBilling (ODR o, Z_IOBilling **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, + (Odr_fun) odr_null, "billInvoice"}, + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, + (Odr_fun) odr_null, "prepay"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, + (Odr_fun) odr_null, "depositAccount"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard, + (Odr_fun) z_IOCreditCardInfo, "creditCard"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied, + (Odr_fun) odr_null, "cardInfoPreviouslySupplied"}, + {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, + (Odr_fun) odr_null, "privateKnown"}, + {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown, + (Odr_fun) z_External, "privateNotKnown"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "paymentMethod") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o) && + odr_implicit_tag (o, z_InternationalString, + &(*p)->customerReference, ODR_CONTEXT, 2, 1, "customerReference") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->customerPONumber, ODR_CONTEXT, 3, 1, "customerPONumber") && + odr_sequence_end (o); +} + +int z_IOOriginPartToKeep (ODR o, Z_IOOriginPartToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_External, + &(*p)->supplDescription, ODR_CONTEXT, 1, 1, "supplDescription") && + odr_implicit_tag (o, z_IOContact, + &(*p)->contact, ODR_CONTEXT, 2, 1, "contact") && + odr_implicit_tag (o, z_IOBilling, + &(*p)->addlBilling, ODR_CONTEXT, 3, 1, "addlBilling") && + odr_sequence_end (o); +} + +int z_IOCreditCardInfo (ODR o, Z_IOCreditCardInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->nameOnCard, ODR_CONTEXT, 1, 0, "nameOnCard") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->expirationDate, ODR_CONTEXT, 2, 0, "expirationDate") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->cardNumber, ODR_CONTEXT, 3, 0, "cardNumber") && + odr_sequence_end (o); +} + +int z_IOResultSetItem (ODR o, Z_IOResultSetItem **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetId, ODR_CONTEXT, 1, 0, "resultSetId") && + odr_implicit_tag (o, odr_integer, + &(*p)->item, ODR_CONTEXT, 2, 0, "item") && + odr_sequence_end (o); +} + +int z_IOOriginPartNotToKeep (ODR o, Z_IOOriginPartNotToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_IOResultSetItem, + &(*p)->resultSetItem, ODR_CONTEXT, 1, 1, "resultSetItem") && + odr_implicit_tag (o, z_External, + &(*p)->itemRequest, ODR_CONTEXT, 2, 1, "itemRequest") && + odr_sequence_end (o); +} + +int z_IOTargetPart (ODR o, Z_IOTargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_External, + &(*p)->itemRequest, ODR_CONTEXT, 1, 1, "itemRequest") && + odr_implicit_tag (o, z_External, + &(*p)->statusOrErrorReport, ODR_CONTEXT, 2, 1, "statusOrErrorReport") && + odr_implicit_tag (o, odr_integer, + &(*p)->auxiliaryStatus, ODR_CONTEXT, 3, 1, "auxiliaryStatus") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zes-pquery.c b/dependencies/yaz-2.1.28/src/zes-pquery.c new file mode 100644 index 0000000..41dcb6c --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-pquery.c @@ -0,0 +1,85 @@ +/** \file zes-pquery.c + \brief ASN.1 Module ESFormat-PersistentQuery + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_PQueryPersistentQueryEsRequest (ODR o, Z_PQueryPersistentQueryEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PQueryOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 1, "toKeep") && + odr_explicit_tag (o, z_PQueryOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_PQueryPersistentQueryTaskPackage (ODR o, Z_PQueryPersistentQueryTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PQueryOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 1, "originPart") && + odr_explicit_tag (o, z_PQueryTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_PQueryPersistentQuery (ODR o, Z_PQueryPersistentQuery **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQueryPersistentQuery_esRequest, + (Odr_fun) z_PQueryPersistentQueryEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQueryPersistentQuery_taskPackage, + (Odr_fun) z_PQueryPersistentQueryTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PQueryOriginPartToKeep (ODR o, Z_PQueryOriginPartToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->dbNames, + &(*p)->num_dbNames, "dbNames") || odr_ok(o)) && + odr_explicit_tag (o, z_OtherInformation, + &(*p)->additionalSearchInfo, ODR_CONTEXT, 3, 1, "additionalSearchInfo") && + odr_sequence_end (o); +} + +int z_PQueryOriginPartNotToKeep (ODR o, Z_PQueryOriginPartNotToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQueryOriginPartNotToKeep_package, + (Odr_fun) z_InternationalString, "package"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_PQueryOriginPartNotToKeep_query, + (Odr_fun) z_Query, "query"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PQueryTargetPart (ODR o, Z_PQueryTargetPart **p, int opt, const char *name) +{ + return z_Query (o, p, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/zes-psched.c b/dependencies/yaz-2.1.28/src/zes-psched.c new file mode 100644 index 0000000..803a7da --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-psched.c @@ -0,0 +1,144 @@ +/** \file zes-psched.c + \brief ASN.1 Module ESFormat-PeriodicQuerySchedule + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_PQSPeriodicQueryScheduleEsRequest (ODR o, Z_PQSPeriodicQueryScheduleEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PQSOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_PQSOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_PQSPeriodicQueryScheduleTaskPackage (ODR o, Z_PQSPeriodicQueryScheduleTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_PQSOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_PQSTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_PQSPeriodicQuerySchedule (ODR o, Z_PQSPeriodicQuerySchedule **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSPeriodicQuerySchedule_esRequest, + (Odr_fun) z_PQSPeriodicQueryScheduleEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSPeriodicQuerySchedule_taskPackage, + (Odr_fun) z_PQSPeriodicQueryScheduleTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PQSOriginPartToKeep (ODR o, Z_PQSOriginPartToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSOriginPartToKeep_packageName, + (Odr_fun) z_InternationalString, "packageName"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_PQSOriginPartToKeep_exportPackage, + (Odr_fun) z_ESExportSpecification, "exportPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_bool, + &(*p)->activeFlag, ODR_CONTEXT, 1, 0, "activeFlag") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->databaseNames, + &(*p)->num_databaseNames, "databaseNames") || odr_ok(o)) && + odr_implicit_tag (o, odr_integer, + &(*p)->resultSetDisposition, ODR_CONTEXT, 3, 1, "resultSetDisposition") && + odr_explicit_tag (o, z_ESDestination, + &(*p)->alertDestination, ODR_CONTEXT, 4, 1, "alertDestination") && + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "exportParameters") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_sequence_end (o); +} + +int z_PQSOriginPartNotToKeep (ODR o, Z_PQSOriginPartNotToKeep **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_PQSOriginPartNotToKeep_actualQuery, + (Odr_fun) z_Query, "actualQuery"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSOriginPartNotToKeep_packageName, + (Odr_fun) z_InternationalString, "packageName"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "querySpec") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_explicit_tag (o, z_PQSPeriod, + &(*p)->originSuggestedPeriod, ODR_CONTEXT, 2, 1, "originSuggestedPeriod") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->expiration, ODR_CONTEXT, 3, 1, "expiration") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetPackage, ODR_CONTEXT, 4, 1, "resultSetPackage") && + odr_sequence_end (o); +} + +int z_PQSTargetPart (ODR o, Z_PQSTargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_Query, + &(*p)->actualQuery, ODR_CONTEXT, 1, 0, "actualQuery") && + odr_explicit_tag (o, z_PQSPeriod, + &(*p)->targetStatedPeriod, ODR_CONTEXT, 2, 0, "targetStatedPeriod") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->expiration, ODR_CONTEXT, 3, 1, "expiration") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->resultSetPackage, ODR_CONTEXT, 4, 1, "resultSetPackage") && + odr_implicit_tag (o, odr_generalizedtime, + &(*p)->lastQueryTime, ODR_CONTEXT, 5, 0, "lastQueryTime") && + odr_implicit_tag (o, odr_integer, + &(*p)->lastResultNumber, ODR_CONTEXT, 6, 0, "lastResultNumber") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberSinceModify, ODR_CONTEXT, 7, 1, "numberSinceModify") && + odr_sequence_end (o); +} + +int z_PQSPeriod (ODR o, Z_PQSPeriod **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSPeriod_unit, + (Odr_fun) z_IntUnit, "unit"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSPeriod_businessDaily, + (Odr_fun) odr_null, "businessDaily"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PQSPeriod_continuous, + (Odr_fun) odr_null, "continuous"}, + {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_PQSPeriod_other, + (Odr_fun) z_InternationalString, "other"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} diff --git a/dependencies/yaz-2.1.28/src/zes-pset.c b/dependencies/yaz-2.1.28/src/zes-pset.c new file mode 100644 index 0000000..a2bc7f7 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-pset.c @@ -0,0 +1,73 @@ +/** \file zes-pset.c + \brief ASN.1 Module ESFormat-PersistentResultSet + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_PRPersistentResultSetEsRequest (ODR o, Z_PRPersistentResultSetEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_null, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_PROriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 1, "notToKeep") && + odr_sequence_end (o); +} + +int z_PRPersistentResultSetTaskPackage (ODR o, Z_PRPersistentResultSetTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_null, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_PRTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") && + odr_sequence_end (o); +} + +int z_PRPersistentResultSet (ODR o, Z_PRPersistentResultSet **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PRPersistentResultSet_esRequest, + (Odr_fun) z_PRPersistentResultSetEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PRPersistentResultSet_taskPackage, + (Odr_fun) z_PRPersistentResultSetTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_PROriginPartNotToKeep (ODR o, Z_PROriginPartNotToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->originSuppliedResultSet, ODR_CONTEXT, 1, 1, "originSuppliedResultSet") && + odr_implicit_tag (o, odr_integer, + &(*p)->replaceOrAppend, ODR_CONTEXT, 2, 1, "replaceOrAppend") && + odr_sequence_end (o); +} + +int z_PRTargetPart (ODR o, Z_PRTargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->targetSuppliedResultSet, ODR_CONTEXT, 1, 1, "targetSuppliedResultSet") && + odr_implicit_tag (o, odr_integer, + &(*p)->numberOfRecords, ODR_CONTEXT, 2, 1, "numberOfRecords") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zes-update.c b/dependencies/yaz-2.1.28/src/zes-update.c new file mode 100644 index 0000000..e33e114 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-update.c @@ -0,0 +1,195 @@ +/** \file zes-update.c + \brief ASN.1 Module ESFormat-Update + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IUOriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_IUOriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IUOriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_IUTargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUUpdate_esRequest, + (Odr_fun) z_IUUpdateEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUUpdate_taskPackage, + (Odr_fun) z_IUUpdateTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->action, ODR_CONTEXT, 1, 0, "action") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->databaseName, ODR_CONTEXT, 2, 0, "databaseName") && + odr_implicit_tag (o, odr_oid, + &(*p)->schema, ODR_CONTEXT, 3, 1, "schema") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->elementSetName, ODR_CONTEXT, 4, 1, "elementSetName") && + odr_implicit_tag (o, z_External, + &(*p)->actionQualifier, ODR_CONTEXT, 5, 1, "actionQualifier") && + odr_sequence_end (o); +} + +int z_IUOriginPartNotToKeep (ODR o, Z_IUOriginPartNotToKeep **p, int opt, const char *name) +{ + return z_IUSuppliedRecords (o, p, opt, name); +} + +int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, + &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords, + &(*p)->num_taskPackageRecords, "taskPackageRecords") && + odr_sequence_end (o); +} + +int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecordsId_timeStamp, + (Odr_fun) odr_generalizedtime, "timeStamp"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecordsId_versionNumber, + (Odr_fun) z_InternationalString, "versionNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecordsId_previousVersion, + (Odr_fun) z_External, "previousVersion"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecords_elem_number, + (Odr_fun) odr_integer, "number"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecords_elem_string, + (Odr_fun) z_InternationalString, "string"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecords_elem_opaque, + (Odr_fun) odr_octetstring, "opaque"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordId") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_explicit_tag (o, z_IUSuppliedRecordsId, + &(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") && + odr_implicit_tag (o, z_IUCorrelationInfo, + &(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") && + odr_implicit_tag (o, z_External, + &(*p)->record, ODR_CONTEXT, 4, 0, "record") && + odr_sequence_end (o); +} + +int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_IUSuppliedRecords_elem, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->note, ODR_CONTEXT, 1, 1, "note") && + odr_implicit_tag (o, odr_integer, + &(*p)->id, ODR_CONTEXT, 2, 1, "id") && + odr_sequence_end (o); +} + +int z_IUTaskPackageRecordStructureSurrogateDiagnostics (ODR o, Z_IUTaskPackageRecordStructureSurrogateDiagnostics **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_DiagRec, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUTaskPackageRecordStructure_record, + (Odr_fun) z_External, "record"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUTaskPackageRecordStructure_surrogateDiagnostics, + (Odr_fun) z_IUTaskPackageRecordStructureSurrogateDiagnostics, "surrogateDiagnostics"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordOrSurDiag") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_IUCorrelationInfo, + &(*p)->correlationInfo, ODR_CONTEXT, 2, 1, "correlationInfo") && + odr_implicit_tag (o, odr_integer, + &(*p)->recordStatus, ODR_CONTEXT, 3, 0, "recordStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 4) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->supplementalDiagnostics, + &(*p)->num_supplementalDiagnostics, "supplementalDiagnostics") || odr_ok(o)) && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zes-update0.c b/dependencies/yaz-2.1.28/src/zes-update0.c new file mode 100644 index 0000000..f086861 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zes-update0.c @@ -0,0 +1,178 @@ +/** \file zes-update0.c + \brief ASN.1 Module ESFormat-Update0 + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#include + +int z_IU0UpdateEsRequest (ODR o, Z_IU0UpdateEsRequest **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IU0OriginPartToKeep, + &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && + odr_explicit_tag (o, z_IU0OriginPartNotToKeep, + &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && + odr_sequence_end (o); +} + +int z_IU0UpdateTaskPackage (ODR o, Z_IU0UpdateTaskPackage **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_explicit_tag (o, z_IU0OriginPartToKeep, + &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && + odr_explicit_tag (o, z_IU0TargetPart, + &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && + odr_sequence_end (o); +} + +int z_IU0Update (ODR o, Z_IU0Update **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0Update_esRequest, + (Odr_fun) z_IU0UpdateEsRequest, "esRequest"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0Update_taskPackage, + (Odr_fun) z_IU0UpdateTaskPackage, "taskPackage"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IU0OriginPartToKeep (ODR o, Z_IU0OriginPartToKeep **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->action, ODR_CONTEXT, 1, 0, "action") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->databaseName, ODR_CONTEXT, 2, 0, "databaseName") && + odr_implicit_tag (o, odr_oid, + &(*p)->schema, ODR_CONTEXT, 3, 1, "schema") && + odr_implicit_tag (o, z_InternationalString, + &(*p)->elementSetName, ODR_CONTEXT, 4, 1, "elementSetName") && + odr_sequence_end (o); +} + +int z_IU0OriginPartNotToKeep (ODR o, Z_IU0OriginPartNotToKeep **p, int opt, const char *name) +{ + return z_IU0SuppliedRecords (o, p, opt, name); +} + +int z_IU0TargetPart (ODR o, Z_IU0TargetPart **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, + &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 3) && + odr_sequence_of(o, (Odr_fun) z_IU0TaskPackageRecordStructure, &(*p)->taskPackageRecords, + &(*p)->num_taskPackageRecords, "taskPackageRecords") && + odr_sequence_end (o); +} + +int z_IU0SuppliedRecordsId (ODR o, Z_IU0SuppliedRecordsId **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecordsId_timeStamp, + (Odr_fun) odr_generalizedtime, "timeStamp"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecordsId_versionNumber, + (Odr_fun) z_InternationalString, "versionNumber"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecordsId_previousVersion, + (Odr_fun) z_External, "previousVersion"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_initmember(o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IU0SuppliedRecords_elem (ODR o, Z_IU0SuppliedRecords_elem **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecords_elem_number, + (Odr_fun) odr_integer, "number"}, + {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecords_elem_string, + (Odr_fun) z_InternationalString, "string"}, + {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecords_elem_opaque, + (Odr_fun) odr_octetstring, "opaque"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordId") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_explicit_tag (o, z_IU0SuppliedRecordsId, + &(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") && + odr_implicit_tag (o, z_IU0CorrelationInfo, + &(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") && + odr_implicit_tag (o, z_External, + &(*p)->record, ODR_CONTEXT, 4, 0, "record") && + odr_sequence_end (o); +} + +int z_IU0SuppliedRecords (ODR o, Z_IU0SuppliedRecords **p, int opt, const char *name) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return odr_missing(o, opt, name); + if (odr_sequence_of (o, (Odr_fun) z_IU0SuppliedRecords_elem, &(*p)->elements, + &(*p)->num, name)) + return 1; + if(o->direction == ODR_DECODE) + *p = 0; + return odr_missing(o, opt, name); +} + +int z_IU0CorrelationInfo (ODR o, Z_IU0CorrelationInfo **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, z_InternationalString, + &(*p)->note, ODR_CONTEXT, 1, 1, "note") && + odr_implicit_tag (o, odr_integer, + &(*p)->id, ODR_CONTEXT, 2, 1, "id") && + odr_sequence_end (o); +} + +int z_IU0TaskPackageRecordStructure (ODR o, Z_IU0TaskPackageRecordStructure **p, int opt, const char *name) +{ + static Odr_arm arm[] = { + {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0TaskPackageRecordStructure_record, + (Odr_fun) z_External, "record"}, + {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_IU0TaskPackageRecordStructure_diagnostic, + (Odr_fun) z_DiagRec, "diagnostic"}, + {-1, -1, -1, -1, (Odr_fun) 0, 0} + }; + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordOrSurDiag") && + odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && + odr_constructed_end (o)) || odr_ok(o)) && + odr_implicit_tag (o, z_IU0CorrelationInfo, + &(*p)->correlationInfo, ODR_CONTEXT, 2, 1, "correlationInfo") && + odr_implicit_tag (o, odr_integer, + &(*p)->recordStatus, ODR_CONTEXT, 3, 0, "recordStatus") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/src/zgdu.c b/dependencies/yaz-2.1.28/src/zgdu.c new file mode 100644 index 0000000..d0a779b --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zgdu.c @@ -0,0 +1,496 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zgdu.c,v 1.15 2006/06/02 13:08:27 adam Exp $ + */ + +/** + * \file zgdu.c + * \brief Implements HTTP and Z39.50 encoding and decoding. + */ + +#include +#include +#include +#include +#include + +#ifdef WIN32 +#define strncasecmp _strnicmp +#define strcasecmp _stricmp +#endif + +static int decode_headers_content(ODR o, int off, Z_HTTP_Header **headers, + char **content_buf, int *content_len) +{ + int i = off; + int chunked = 0; + + *headers = 0; + while (i < o->size-1 && o->buf[i] == '\r') + { + int po; + i++; + if (o->buf[i] != '\n') + { + o->error = OHTTP; + return 0; + } + i++; + if (o->buf[i] == '\r') + break; + for (po = i; ; i++) + { + if (i == o->size) + { + o->error = OHTTP; + return 0; + } + else if (o->buf[i] == ':') + break; + } + *headers = (Z_HTTP_Header *) odr_malloc(o, sizeof(**headers)); + (*headers)->name = (char*) odr_malloc(o, i - po + 1); + memcpy ((*headers)->name, o->buf + po, i - po); + (*headers)->name[i - po] = '\0'; + i++; + while (i < o->size-1 && o->buf[i] == ' ') + i++; + for (po = i; i < o->size-1 && o->buf[i] != '\r' ; i++) + ; + + (*headers)->value = (char*) odr_malloc(o, i - po + 1); + memcpy ((*headers)->value, o->buf + po, i - po); + (*headers)->value[i - po] = '\0'; + + if (!strcasecmp((*headers)->name, "Transfer-Encoding") + && + !strcasecmp((*headers)->value, "chunked")) + chunked = 1; + headers = &(*headers)->next; + } + *headers = 0; + i++; + if (o->buf[i] != '\n') + { + o->error = OHTTP; + return 0; + } + i++; + + if (chunked) + { + int off = 0; + + /* we know buffer will be smaller than o->size - i*/ + *content_buf = (char*) odr_malloc(o, o->size - i); + + while (1) + { + /* chunk length .. */ + int chunk_len = 0; + for (; i < o->size-2; i++) + if (isdigit(o->buf[i])) + chunk_len = chunk_len * 16 + + (o->buf[i] - '0'); + else if (isupper(o->buf[i])) + chunk_len = chunk_len * 16 + + (o->buf[i] - ('A'-10)); + else if (islower(o->buf[i])) + chunk_len = chunk_len * 16 + + (o->buf[i] - ('a'-10)); + else + break; + /* chunk extension ... */ + while (o->buf[i] != '\r' && o->buf[i+1] != '\n') + { + if (i >= o->size-2) + { + o->error = OHTTP; + return 0; + } + i++; + } + i += 2; /* skip CRLF */ + if (chunk_len == 0) + break; + if (chunk_len < 0 || off + chunk_len > o->size) + { + o->error = OHTTP; + return 0; + } + /* copy chunk .. */ + memcpy (*content_buf + off, o->buf + i, chunk_len); + i += chunk_len + 2; /* skip chunk+CRLF */ + off += chunk_len; + } + if (!off) + *content_buf = 0; + *content_len = off; + } + else + { + if (i > o->size) + { + o->error = OHTTP; + return 0; + } + else if (i == o->size) + { + *content_buf = 0; + *content_len = 0; + } + else + { + *content_len = o->size - i; + *content_buf = (char*) odr_malloc(o, *content_len + 1); + memcpy(*content_buf, o->buf + i, *content_len); + (*content_buf)[*content_len] = '\0'; + } + } + return 1; +} + +void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, + const char *content_type, + const char *charset) +{ + const char *l = "Content-Type"; + if (charset) + { + char *ctype = odr_malloc(o, strlen(content_type)+strlen(charset) + 15); + sprintf(ctype, "%s; charset=%s", content_type, charset); + z_HTTP_header_add(o, hp, l, ctype); + } + else + z_HTTP_header_add(o, hp, l, content_type); + +} + +void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, + const char *v) +{ + while (*hp) + hp = &(*hp)->next; + *hp = (Z_HTTP_Header *) odr_malloc(o, sizeof(**hp)); + (*hp)->name = odr_strdup(o, n); + (*hp)->value = odr_strdup(o, v); + (*hp)->next = 0; +} + +const char *z_HTTP_header_lookup(Z_HTTP_Header *hp, const char *n) +{ + for (; hp; hp = hp->next) + if (!yaz_matchstr(hp->name, n)) + return hp->value; + return 0; +} + + +Z_GDU *z_get_HTTP_Request(ODR o) +{ + Z_GDU *p = (Z_GDU *) odr_malloc(o, sizeof(*p)); + Z_HTTP_Request *hreq; + + p->which = Z_GDU_HTTP_Request; + p->u.HTTP_Request = (Z_HTTP_Request *) odr_malloc(o, sizeof(*hreq)); + hreq = p->u.HTTP_Request; + hreq->headers = 0; + hreq->content_len = 0; + hreq->content_buf = 0; + hreq->version = "1.1"; + hreq->method = "POST"; + hreq->path = "/"; + z_HTTP_header_add(o, &hreq->headers, "User-Agent", + "YAZ/" YAZ_VERSION); + return p; +} + + +Z_GDU *z_get_HTTP_Request_host_path(ODR odr, + const char *host, + const char *path) +{ + Z_GDU *p = z_get_HTTP_Request(odr); + + p->u.HTTP_Request->path = odr_strdup(odr, path); + + if (host) + { + const char *cp0 = strstr(host, "://"); + const char *cp1 = 0; + if (cp0) + cp0 = cp0+3; + else + cp0 = host; + + cp1 = strchr(cp0, '/'); + if (!cp1) + cp1 = cp0+strlen(cp0); + + if (cp0 && cp1) + { + char *h = (char*) odr_malloc(odr, cp1 - cp0 + 1); + memcpy (h, cp0, cp1 - cp0); + h[cp1-cp0] = '\0'; + z_HTTP_header_add(odr, &p->u.HTTP_Request->headers, + "Host", h); + } + } + return p; +} + + +Z_GDU *z_get_HTTP_Response(ODR o, int code) +{ + Z_GDU *p = (Z_GDU *) odr_malloc(o, sizeof(*p)); + Z_HTTP_Response *hres; + + p->which = Z_GDU_HTTP_Response; + p->u.HTTP_Response = (Z_HTTP_Response *) odr_malloc(o, sizeof(*hres)); + hres = p->u.HTTP_Response; + hres->headers = 0; + hres->content_len = 0; + hres->content_buf = 0; + hres->code = code; + hres->version = "1.1"; + z_HTTP_header_add(o, &hres->headers, "Server", + "YAZ/" YAZ_VERSION); + if (code != 200) + { + hres->content_buf = (char*) odr_malloc(o, 400); + sprintf (hres->content_buf, + "\n" + "\n" + " \n" + " YAZ " YAZ_VERSION "\n" + " \n" + " \n" + "

YAZ " + YAZ_VERSION "

\n" + "

Error: %d

\n" + "

Description: %.50s

\n" + " \n" + "\n", + code, z_HTTP_errmsg(code)); + hres->content_len = strlen(hres->content_buf); + z_HTTP_header_add(o, &hres->headers, "Content-Type", "text/html"); + } + return p; +} + +const char *z_HTTP_errmsg(int code) +{ + if (code == 200) + return "OK"; + else if (code == 400) + return "Bad Request"; + else if (code == 404) + return "Not Found"; + else if (code == 405) + return "Method Not Allowed"; + else if (code == 500) + return "Internal Error"; + else + return "Unknown Error"; +} + +int z_GDU (ODR o, Z_GDU **p, int opt, const char *name) +{ + if (o->direction == ODR_DECODE) { + *p = (Z_GDU *) odr_malloc(o, sizeof(**p)); + if (o->size > 10 && !memcmp(o->buf, "HTTP/", 5)) + { + int i, po; + Z_HTTP_Response *hr; + (*p)->which = Z_GDU_HTTP_Response; + + hr = (*p)->u.HTTP_Response = (Z_HTTP_Response *) + odr_malloc(o, sizeof(*hr)); + hr->content_buf = 0; + hr->content_len = 0; + + po = i = 5; + while (i < o->size-2 && o->buf[i] != ' ' && o->buf[i] != '\r') + i++; + hr->version = (char *) odr_malloc(o, i - po + 1); + if (i - po) + memcpy(hr->version, o->buf + po, i - po); + hr->version[i-po] = 0; + if (o->buf[i] != ' ') + { + o->error = OHTTP; + return 0; + } + i++; + hr->code = 0; + while (i < o->size-2 && o->buf[i] >= '0' && o->buf[i] <= '9') + { + hr->code = hr->code*10 + (o->buf[i] - '0'); + i++; + } + while (i < o->size-1 && o->buf[i] != '\r') + i++; + return decode_headers_content(o, i, &hr->headers, + &hr->content_buf, &hr->content_len); + } + else if (o->size > 5 && + o->buf[0] >= 0x20 && o->buf[0] < 0x7f + && o->buf[1] >= 0x20 && o->buf[1] < 0x7f + && o->buf[2] >= 0x20 && o->buf[2] < 0x7f + && o->buf[3] >= 0x20 && o->buf[3] < 0x7f) + { + int i, po; + Z_HTTP_Request *hr; + + (*p)->which = Z_GDU_HTTP_Request; + hr = (*p)->u.HTTP_Request = + (Z_HTTP_Request *) odr_malloc(o, sizeof(*hr)); + + /* method .. */ + for (i = 0; o->buf[i] != ' '; i++) + if (i >= o->size-5 || i > 30) + { + o->error = OHTTP; + return 0; + } + hr->method = (char *) odr_malloc(o, i+1); + memcpy (hr->method, o->buf, i); + hr->method[i] = '\0'; + /* path */ + po = i+1; + for (i = po; o->buf[i] != ' '; i++) + if (i >= o->size-5) + { + o->error = OHTTP; + return 0; + } + hr->path = (char *) odr_malloc(o, i - po + 1); + memcpy (hr->path, o->buf+po, i - po); + hr->path[i - po] = '\0'; + /* HTTP version */ + i++; + if (i > o->size-5 || memcmp(o->buf+i, "HTTP/", 5)) + { + o->error = OHTTP; + return 0; + } + i+= 5; + po = i; + while (o->buf[i] != '\r') + { + if (i >= o->size-1) + { + o->error = OHTTP; + return 0; + } + i++; + } + hr->version = (char *) odr_malloc(o, i - po + 1); + memcpy(hr->version, o->buf + po, i - po); + hr->version[i - po] = '\0'; + /* headers */ + return decode_headers_content(o, i, &hr->headers, + &hr->content_buf, &hr->content_len); + + } + else + { + (*p)->which = Z_GDU_Z3950; + return z_APDU(o, &(*p)->u.z3950, opt, 0); + } + } + else /* ENCODE or PRINT */ + { + int top0 = o->top; + char sbuf[80]; + Z_HTTP_Header *h; + switch((*p)->which) + { + case Z_GDU_HTTP_Response: + sprintf(sbuf, "HTTP/%s %d %s\r\n", (*p)->u.HTTP_Response->version, + (*p)->u.HTTP_Response->code, + z_HTTP_errmsg((*p)->u.HTTP_Response->code)); + odr_write(o, (unsigned char *) sbuf, strlen(sbuf)); + /* apply Content-Length if not already applied */ + if (!z_HTTP_header_lookup((*p)->u.HTTP_Response->headers, + "Content-Length")) + { + char lstr[60]; + sprintf(lstr, "Content-Length: %d\r\n", + (*p)->u.HTTP_Response->content_len); + odr_write(o, (unsigned char *) lstr, strlen(lstr)); + } + for (h = (*p)->u.HTTP_Response->headers; h; h = h->next) + { + odr_write(o, (unsigned char *) h->name, strlen(h->name)); + odr_write(o, (unsigned char *) ": ", 2); + odr_write(o, (unsigned char *) h->value, strlen(h->value)); + odr_write(o, (unsigned char *) "\r\n", 2); + } + odr_write(o, (unsigned char *) "\r\n", 2); + if ((*p)->u.HTTP_Response->content_buf) + odr_write(o, (unsigned char *) + (*p)->u.HTTP_Response->content_buf, + (*p)->u.HTTP_Response->content_len); + if (o->direction == ODR_PRINT) + { + odr_printf(o, "-- HTTP response:\n%.*s\n", o->top - top0, + o->buf + top0); + odr_printf(o, "-- \n"); + } + break; + case Z_GDU_HTTP_Request: + odr_write(o, (unsigned char *) (*p)->u.HTTP_Request->method, + strlen((*p)->u.HTTP_Request->method)); + odr_write(o, (unsigned char *) " ", 1); + odr_write(o, (unsigned char *) (*p)->u.HTTP_Request->path, + strlen((*p)->u.HTTP_Request->path)); + odr_write(o, (unsigned char *) " HTTP/", 6); + odr_write(o, (unsigned char *) (*p)->u.HTTP_Request->version, + strlen((*p)->u.HTTP_Request->version)); + odr_write(o, (unsigned char *) "\r\n", 2); + if ((*p)->u.HTTP_Request->content_len && + !z_HTTP_header_lookup((*p)->u.HTTP_Request->headers, + "Content-Length")) + { + char lstr[60]; + sprintf(lstr, "Content-Length: %d\r\n", + (*p)->u.HTTP_Request->content_len); + odr_write(o, (unsigned char *) lstr, strlen(lstr)); + } + for (h = (*p)->u.HTTP_Request->headers; h; h = h->next) + { + odr_write(o, (unsigned char *) h->name, strlen(h->name)); + odr_write(o, (unsigned char *) ": ", 2); + odr_write(o, (unsigned char *) h->value, strlen(h->value)); + odr_write(o, (unsigned char *) "\r\n", 2); + } + odr_write(o, (unsigned char *) "\r\n", 2); + if ((*p)->u.HTTP_Request->content_buf) + odr_write(o, (unsigned char *) + (*p)->u.HTTP_Request->content_buf, + (*p)->u.HTTP_Request->content_len); + if (o->direction == ODR_PRINT) + { + odr_printf(o, "-- HTTP request:\n%.*s\n", o->top - top0, + o->buf + top0); + odr_printf(o, "-- \n"); + } + break; + case Z_GDU_Z3950: + return z_APDU(o, &(*p)->u.z3950, opt, 0); + } + } + return 1; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/zget.c b/dependencies/yaz-2.1.28/src/zget.c new file mode 100644 index 0000000..f1b9b57 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zget.c @@ -0,0 +1,673 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zget.c,v 1.11 2005/06/25 15:46:06 adam Exp $ + */ +/** + * \file zget.c + * \brief Implements Z39.50 package creator utilities + */ + +#include + +Z_InitRequest *zget_InitRequest(ODR o) +{ + Z_InitRequest *r = (Z_InitRequest *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options)); + ODR_MASK_ZERO(r->options); + r->protocolVersion = (Odr_bitmask *) + odr_malloc(o, sizeof(*r->protocolVersion)); + + ODR_MASK_SET(r->options, Z_Options_search); + ODR_MASK_SET(r->options, Z_Options_present); + + ODR_MASK_ZERO(r->protocolVersion); + + ODR_MASK_SET(r->protocolVersion, Z_ProtocolVersion_1); + ODR_MASK_SET(r->protocolVersion, Z_ProtocolVersion_2); + + r->preferredMessageSize = odr_intdup(o, 1024*1024); + r->maximumRecordSize = odr_intdup(o, 1024*1024); + r->idAuthentication = 0; + r->implementationId = "81"; + r->implementationName = "YAZ"; + r->implementationVersion = YAZ_VERSION +#ifdef YAZ_DATE_STR + " (" YAZ_DATE_STR ")" +#endif +#ifdef YAZ_OS + " " YAZ_OS +#endif + ; + r->userInformationField = 0; + r->otherInfo = 0; + return r; +} + +Z_InitResponse *zget_InitResponse(ODR o) +{ + Z_InitResponse *r = (Z_InitResponse *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options)); + ODR_MASK_ZERO(r->options); + r->protocolVersion = (Odr_bitmask *)odr_malloc(o, sizeof(*r->protocolVersion)); + ODR_MASK_ZERO(r->protocolVersion); + r->preferredMessageSize = odr_intdup(o, 30*1024); + r->maximumRecordSize = odr_intdup(o, 30*1024); + r->result = odr_intdup(o, 1); + r->implementationId = "81"; + r->implementationName = "YAZ"; + r->implementationVersion = YAZ_VERSION +#ifdef YAZ_DATE_STR + " (" YAZ_DATE_STR ")" +#endif +#ifdef YAZ_OS + " " YAZ_OS +#endif + ; + r->userInformationField = 0; + r->otherInfo = 0; + return r; +} + +Z_SearchRequest *zget_SearchRequest(ODR o) +{ + Z_SearchRequest *r = (Z_SearchRequest *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->smallSetUpperBound = odr_intdup(o, 0); + r->largeSetLowerBound = odr_intdup(o, 1); + r->mediumSetPresentNumber = odr_intdup(o, 0); + r->replaceIndicator = odr_intdup(o, 1); + r->resultSetName = "default"; + r->num_databaseNames = 0; + r->databaseNames = 0; + r->smallSetElementSetNames = 0; + r->mediumSetElementSetNames = 0; + r->preferredRecordSyntax = 0; + r->query = 0; + r->additionalSearchInfo = 0; + r->otherInfo = 0; + return r; +} + +Z_SearchResponse *zget_SearchResponse(ODR o) +{ + Z_SearchResponse *r = (Z_SearchResponse *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->resultCount = odr_intdup(o, 0); + r->numberOfRecordsReturned = odr_intdup(o, 0); + r->nextResultSetPosition = odr_intdup(o, 0); + r->searchStatus = odr_intdup(o, 1); + r->resultSetStatus = 0; + r->presentStatus = 0; + r->records = 0; + r->additionalSearchInfo = 0; + r->otherInfo = 0; + return r; +} + +Z_PresentRequest *zget_PresentRequest(ODR o) +{ + Z_PresentRequest *r = (Z_PresentRequest *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->resultSetId = "default"; + r->resultSetStartPoint = odr_intdup(o, 1); + r->numberOfRecordsRequested = odr_intdup(o, 10); + r->num_ranges = 0; + r->additionalRanges = 0; + r->recordComposition = 0; + r->preferredRecordSyntax = 0; + r->maxSegmentCount = 0; + r->maxRecordSize = 0; + r->maxSegmentSize = 0; + r->otherInfo = 0; + return r; +} + +Z_PresentResponse *zget_PresentResponse(ODR o) +{ + Z_PresentResponse *r = (Z_PresentResponse *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->numberOfRecordsReturned = odr_intdup(o, 0); + r->nextResultSetPosition = odr_intdup(o, 0); + r->presentStatus = odr_intdup(o, Z_PresentStatus_success); + r->records = 0; + r->otherInfo = 0; + return r; +} + +Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o) +{ + Z_DeleteResultSetRequest *r = (Z_DeleteResultSetRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->deleteFunction = odr_intdup(o, Z_DeleteResultSetRequest_list); + r->num_resultSetList = 0; + r->resultSetList = 0; + r->otherInfo = 0; + return r; +} + +Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o) +{ + Z_DeleteResultSetResponse *r = (Z_DeleteResultSetResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->deleteOperationStatus = odr_intdup(o, Z_DeleteStatus_success); + r->deleteListStatuses = 0; + r->numberNotDeleted = 0; + r->bulkStatuses = 0; + r->deleteMessage = 0; + r->otherInfo = 0; + return r; +} + +Z_ScanRequest *zget_ScanRequest(ODR o) +{ + Z_ScanRequest *r = (Z_ScanRequest *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->num_databaseNames = 0; + r->databaseNames = 0; + r->attributeSet = 0; + r->termListAndStartPoint = 0; + r->stepSize = 0; + r->numberOfTermsRequested = odr_intdup(o, 20); + r->preferredPositionInResponse = 0; + r->otherInfo = 0; + return r; +} + +Z_ScanResponse *zget_ScanResponse(ODR o) +{ + Z_ScanResponse *r = (Z_ScanResponse *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->stepSize = 0; + r->scanStatus = odr_intdup(o, Z_Scan_success); + r->numberOfEntriesReturned = odr_intdup(o, 0); + r->positionOfTerm =0; + r->entries = 0; + r->attributeSet = 0; + r->otherInfo = 0; + return r; +} + +Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o) +{ + Z_TriggerResourceControlRequest *r = (Z_TriggerResourceControlRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->requestedAction = odr_intdup(o, Z_TriggerResourceControlRequest_resourceReport); + r->prefResourceReportFormat = 0; + r->resultSetWanted = 0; + r->otherInfo = 0; + return r; +} + +Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o) +{ + Z_ResourceControlRequest *r = (Z_ResourceControlRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->suspendedFlag = 0; + r->resourceReport = 0; + r->partialResultsAvailable = 0; + r->responseRequired = odr_intdup(o, 0); + r->triggeredRequestFlag = 0; + r->otherInfo = 0; + return r; +} + +Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o) +{ + Z_ResourceControlResponse *r = (Z_ResourceControlResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->continueFlag = odr_intdup(o, 1); + r->resultSetWanted = 0; + r->otherInfo = 0; + return r; +} + +Z_AccessControlRequest *zget_AccessControlRequest(ODR o) +{ + Z_AccessControlRequest *r = (Z_AccessControlRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->which = Z_AccessControlRequest_simpleForm; + r->u.simpleForm = 0; + r->otherInfo = 0; + return r; +} + +Z_AccessControlResponse *zget_AccessControlResponse(ODR o) +{ + Z_AccessControlResponse *r = (Z_AccessControlResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->which = Z_AccessControlResponse_simpleForm; + r->u.simpleForm = 0; + r->diagnostic = 0; + r->otherInfo = 0; + return r; +} + +Z_Segment *zget_Segment(ODR o) +{ + Z_Segment *r = (Z_Segment *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->numberOfRecordsReturned = odr_intdup(o, 0); + r->num_segmentRecords = 0; + r->segmentRecords = (Z_NamePlusRecord **) odr_nullval(); + r->otherInfo = 0; + return r; +} + +Z_Close *zget_Close(ODR o) +{ + Z_Close *r = (Z_Close *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->closeReason = odr_intdup(o, Z_Close_finished); + r->diagnosticInformation = 0; + r->resourceReportFormat = 0; + r->resourceReport = 0; + r->otherInfo = 0; + return r; +} + +Z_ResourceReportRequest *zget_ResourceReportRequest(ODR o) +{ + Z_ResourceReportRequest *r = (Z_ResourceReportRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->opId = 0; + r->prefResourceReportFormat = 0; + r->otherInfo = 0; + return r; +} + +Z_ResourceReportResponse *zget_ResourceReportResponse(ODR o) +{ + Z_ResourceReportResponse *r = (Z_ResourceReportResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->resourceReportStatus = odr_intdup(o, Z_ResourceReportResponse_success); + r->resourceReport = 0; + r->otherInfo = 0; + return r; +} + +Z_SortRequest *zget_SortRequest(ODR o) +{ + Z_SortRequest *r = (Z_SortRequest *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->inputResultSetNames = 0; + r->sortedResultSetName = 0; + r->sortSequence = 0; + r->otherInfo = 0; + return r; +} + +Z_SortResponse *zget_SortResponse(ODR o) +{ + Z_SortResponse *r = (Z_SortResponse *)odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->sortStatus = odr_intdup(o, Z_SortResponse_success); + r->resultSetStatus = odr_intdup(o, Z_SortResponse_empty); + r->diagnostics = 0; + r->resultCount = 0; + r->otherInfo = 0; + return r; +} + +Z_ExtendedServicesRequest *zget_ExtendedServicesRequest(ODR o) +{ + Z_ExtendedServicesRequest *r = (Z_ExtendedServicesRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->function = odr_intdup(o, Z_ExtendedServicesRequest_create); + r->packageType = 0; + r->packageName = 0; + r->userId = 0; + r->retentionTime = 0; + r->permissions = 0; + r->description = 0; + r->taskSpecificParameters = 0; + r->waitAction = odr_intdup(o, Z_ExtendedServicesRequest_waitIfPossible); + r->elements = 0; + r->otherInfo = 0; + return r; +} + +Z_ExtendedServicesResponse *zget_ExtendedServicesResponse(ODR o) +{ + Z_ExtendedServicesResponse *r = (Z_ExtendedServicesResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->operationStatus = odr_intdup(o, Z_ExtendedServicesResponse_done); + r->num_diagnostics = 0; + r->diagnostics = 0; + r->taskPackage = 0; + r->otherInfo = 0; + return r; +} + +Z_DuplicateDetectionRequest *zget_DuplicateDetectionRequest(ODR o) +{ + Z_DuplicateDetectionRequest *r = (Z_DuplicateDetectionRequest *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->num_inputResultSetIds = 0; + r->inputResultSetIds = 0; + r->outputResultSetName = 0; + r->applicablePortionOfRecord = 0; + r->num_duplicateDetectionCriteria = 0; + r->duplicateDetectionCriteria = 0; + r->clustering = 0; + r->num_retentionCriteria = 0; + r->retentionCriteria = 0; + r->num_sortCriteria = 0; + r->sortCriteria = 0; + r->otherInfo = 0; + return r; +} + +Z_DuplicateDetectionResponse *zget_DuplicateDetectionResponse(ODR o) +{ + Z_DuplicateDetectionResponse *r = (Z_DuplicateDetectionResponse *) + odr_malloc(o, sizeof(*r)); + + r->referenceId = 0; + r->status = odr_intdup(o, Z_DuplicateDetectionResponse_success); + r->resultSetCount = 0; + r->num_diagnostics = 0; + r->diagnostics = 0; + r->otherInfo = 0; + return r; +} + +Z_APDU *zget_APDU(ODR o, int which) +{ + Z_APDU *r = (Z_APDU *)odr_malloc(o, sizeof(*r)); + + switch (r->which = which) + { + case Z_APDU_initRequest: + r->u.initRequest = zget_InitRequest(o); + break; + case Z_APDU_initResponse: + r->u.initResponse = zget_InitResponse(o); + break; + case Z_APDU_searchRequest: + r->u.searchRequest = zget_SearchRequest(o); + break; + case Z_APDU_searchResponse: + r->u.searchResponse = zget_SearchResponse(o); + break; + case Z_APDU_presentRequest: + r->u.presentRequest = zget_PresentRequest(o); + break; + case Z_APDU_presentResponse: + r->u.presentResponse = zget_PresentResponse(o); + break; + case Z_APDU_deleteResultSetRequest: + r->u.deleteResultSetRequest = zget_DeleteResultSetRequest(o); + break; + case Z_APDU_deleteResultSetResponse: + r->u.deleteResultSetResponse = zget_DeleteResultSetResponse(o); + break; + case Z_APDU_scanRequest: + r->u.scanRequest = zget_ScanRequest(o); + break; + case Z_APDU_scanResponse: + r->u.scanResponse = zget_ScanResponse(o); + break; + case Z_APDU_triggerResourceControlRequest: + r->u.triggerResourceControlRequest = + zget_TriggerResourceControlRequest(o); + break; + case Z_APDU_resourceControlRequest: + r->u.resourceControlRequest = zget_ResourceControlRequest(o); + break; + case Z_APDU_resourceControlResponse: + r->u.resourceControlResponse = zget_ResourceControlResponse(o); + break; + case Z_APDU_segmentRequest: + r->u.segmentRequest = zget_Segment(o); + break; + case Z_APDU_close: + r->u.close = zget_Close(o); + break; + case Z_APDU_accessControlRequest: + r->u.accessControlRequest = zget_AccessControlRequest(o); + break; + case Z_APDU_accessControlResponse: + r->u.accessControlResponse = zget_AccessControlResponse(o); + break; + case Z_APDU_resourceReportRequest: + r->u.resourceReportRequest = zget_ResourceReportRequest(o); + break; + case Z_APDU_resourceReportResponse: + r->u.resourceReportResponse = zget_ResourceReportResponse(o); + break; + case Z_APDU_sortRequest: + r->u.sortRequest = zget_SortRequest(o); + break; + case Z_APDU_sortResponse: + r->u.sortResponse = zget_SortResponse(o); + break; + case Z_APDU_extendedServicesRequest: + r->u.extendedServicesRequest = zget_ExtendedServicesRequest(o); + break; + case Z_APDU_extendedServicesResponse: + r->u.extendedServicesResponse = zget_ExtendedServicesResponse(o); + break; + case Z_APDU_duplicateDetectionRequest: + r->u.duplicateDetectionRequest = zget_DuplicateDetectionRequest(o); + break; + case Z_APDU_duplicateDetectionResponse: + r->u.duplicateDetectionResponse = zget_DuplicateDetectionResponse(o); + break; + default: + return 0; + } + return r; +} + +Z_DefaultDiagFormat *zget_DefaultDiagFormat(ODR o, int error, + const char *addinfo) +{ + Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *) + odr_malloc (o, sizeof(*dr)); + + dr->diagnosticSetId = yaz_oidval_to_z3950oid (o, CLASS_DIAGSET, VAL_BIB1); + dr->condition = odr_intdup(o, error); + dr->which = Z_DefaultDiagFormat_v2Addinfo; + dr->u.v2Addinfo = odr_strdup (o, addinfo ? addinfo : ""); + return dr; +} + +Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo) +{ + Z_DiagRec *dr = (Z_DiagRec*) odr_malloc(o, sizeof(*dr)); + dr->which = Z_DiagRec_defaultFormat; + dr->u.defaultFormat = zget_DefaultDiagFormat(o, error, addinfo); + return dr; +} + +Z_DiagRecs *zget_DiagRecs(ODR o, int error, const char *addinfo) +{ + Z_DiagRecs *drecs = (Z_DiagRecs*) odr_malloc(o, sizeof(*drecs)); + Z_DiagRec **dr = (Z_DiagRec**) odr_malloc(o, sizeof(**dr)); + drecs->diagRecs = dr; + dr[0] = zget_DiagRec(o, error, addinfo); + drecs->num_diagRecs = 1; + return drecs; +} + +Z_NamePlusRecord *zget_surrogateDiagRec(ODR o, const char *dbname, + int error, const char *addinfo) +{ + Z_NamePlusRecord *rec = (Z_NamePlusRecord *) odr_malloc (o, sizeof(*rec)); + Z_DiagRec *drec = (Z_DiagRec *)odr_malloc (o, sizeof(*drec)); + + if (dbname) + rec->databaseName = odr_strdup(o, dbname); + else + rec->databaseName = 0; + rec->which = Z_NamePlusRecord_surrogateDiagnostic; + rec->u.surrogateDiagnostic = drec; + drec->which = Z_DiagRec_defaultFormat; + drec->u.defaultFormat = zget_DefaultDiagFormat(o, error, addinfo); + return rec; +} + +Z_External *zget_init_diagnostics(ODR odr, int error, const char *addinfo) +{ + Z_External *x, *x2; + oident oid; + Z_OtherInformation *u; + Z_OtherInformationUnit *l; + Z_DiagnosticFormat *d; + Z_DiagnosticFormat_s *e; + + x = (Z_External*) odr_malloc(odr, sizeof *x); + x->descriptor = 0; + x->indirect_reference = 0; + oid.proto = PROTO_Z3950; + oid.oclass = CLASS_USERINFO; + oid.value = VAL_USERINFO1; + x->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid)); + x->which = Z_External_userInfo1; + + u = odr_malloc(odr, sizeof *u); + x->u.userInfo1 = u; + u->num_elements = 1; + u->list = (Z_OtherInformationUnit**) odr_malloc(odr, sizeof *u->list); + u->list[0] = (Z_OtherInformationUnit*) odr_malloc(odr, sizeof *u->list[0]); + l = u->list[0]; + l->category = 0; + l->which = Z_OtherInfo_externallyDefinedInfo; + + x2 = (Z_External*) odr_malloc(odr, sizeof *x); + l->information.externallyDefinedInfo = x2; + x2->descriptor = 0; + x2->indirect_reference = 0; + oid.oclass = CLASS_DIAGSET; + oid.value = VAL_DIAG1; + x2->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid)); + x2->which = Z_External_diag1; + + d = (Z_DiagnosticFormat*) odr_malloc(odr, sizeof *d); + x2->u.diag1 = d; + d->num = 1; + d->elements = (Z_DiagnosticFormat_s**) odr_malloc (odr, sizeof *d->elements); + d->elements[0] = (Z_DiagnosticFormat_s*) odr_malloc (odr, sizeof *d->elements[0]); + e = d->elements[0]; + + e->which = Z_DiagnosticFormat_s_defaultDiagRec; + e->u.defaultDiagRec = zget_DefaultDiagFormat(odr, error, addinfo); + e->message = 0; + return x; +} + +Z_External *zget_init_diagnostics_octet(ODR odr, int error, + const char *addinfo) +{ + Z_External *x, *x2; + oident oid; + Z_OtherInformation *u; + Z_OtherInformationUnit *l; + Z_DiagnosticFormat *d; + Z_DiagnosticFormat_s *e; + char *octet_buf; + int octet_len; + ODR encode; + + u = odr_malloc(odr, sizeof *u); + u->num_elements = 1; + u->list = (Z_OtherInformationUnit**) odr_malloc(odr, sizeof *u->list); + u->list[0] = (Z_OtherInformationUnit*) odr_malloc(odr, sizeof *u->list[0]); + l = u->list[0]; + l->category = 0; + l->which = Z_OtherInfo_externallyDefinedInfo; + + x2 = (Z_External*) odr_malloc(odr, sizeof *x); + l->information.externallyDefinedInfo = x2; + x2->descriptor = 0; + x2->indirect_reference = 0; + oid.oclass = CLASS_DIAGSET; + oid.proto = PROTO_Z3950; + oid.value = VAL_DIAG1; + x2->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid)); + x2->which = Z_External_diag1; + + d = (Z_DiagnosticFormat*) odr_malloc(odr, sizeof *d); + x2->u.diag1 = d; + d->num = 1; + d->elements = (Z_DiagnosticFormat_s**) odr_malloc (odr, sizeof *d->elements); + d->elements[0] = (Z_DiagnosticFormat_s*) odr_malloc (odr, sizeof *d->elements[0]); + e = d->elements[0]; + + e->which = Z_DiagnosticFormat_s_defaultDiagRec; + e->u.defaultDiagRec = zget_DefaultDiagFormat(odr, error, addinfo); + e->message = 0; + + encode = odr_createmem(ODR_ENCODE); + + z_OtherInformation(encode, &u, 0, 0); + + octet_buf = odr_getbuf(encode, &octet_len, 0); + + x = (Z_External*) odr_malloc(odr, sizeof *x); + x->descriptor = 0; + x->indirect_reference = 0; + oid.proto = PROTO_Z3950; + oid.oclass = CLASS_USERINFO; + oid.value = VAL_USERINFO1; + x->direct_reference = odr_oiddup(odr, oid_getoidbyent(&oid)); + + x->which = Z_External_octet; + x->u.octet_aligned = (Odr_oct *) odr_malloc(odr, sizeof(Odr_oct)); + x->u.octet_aligned->buf = odr_malloc(odr, octet_len); + memcpy(x->u.octet_aligned->buf, octet_buf, octet_len); + x->u.octet_aligned->len = octet_len; + + odr_destroy(encode); + + return x; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/zoom-c.c b/dependencies/yaz-2.1.28/src/zoom-c.c new file mode 100644 index 0000000..fd24896 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zoom-c.c @@ -0,0 +1,4188 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zoom-c.c,v 1.87 2006/08/25 14:57:04 adam Exp $ + */ +/** + * \file zoom-c.c + * \brief Implements ZOOM C interface. + */ + +#include +#include +#include +#include "zoom-p.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_TIME_H +#include +#endif +#if HAVE_SYS_POLL_H +#include +#endif +#if HAVE_SYS_SELECT_H +#include +#endif +#ifdef WIN32 +#include +#endif + +static int log_api = 0; +static int log_details = 0; + +typedef enum { + zoom_pending, + zoom_complete +} zoom_ret; + +static zoom_ret ZOOM_connection_send_init(ZOOM_connection c); +static zoom_ret do_write_ex(ZOOM_connection c, char *buf_out, int len_out); +static char *cql2pqf(ZOOM_connection c, const char *cql); + +static void initlog() +{ + static int log_level_initialized = 0; + if (!log_level_initialized) + { + log_api = yaz_log_module_level("zoom"); + log_details = yaz_log_module_level("zoomdetails"); + log_level_initialized = 1; + } +} + +static ZOOM_Event ZOOM_Event_create(int kind) +{ + ZOOM_Event event = (ZOOM_Event) xmalloc(sizeof(*event)); + event->kind = kind; + event->next = 0; + event->prev = 0; + yaz_log(log_details, "ZOOM_Event_create(kind=%d)", kind); + return event; +} + +static void ZOOM_Event_destroy(ZOOM_Event event) +{ + xfree(event); +} + +static void ZOOM_connection_put_event(ZOOM_connection c, ZOOM_Event event) +{ + if (c->m_queue_back) + { + c->m_queue_back->prev = event; + assert(c->m_queue_front); + } + else + { + assert(!c->m_queue_front); + c->m_queue_front = event; + } + event->next = c->m_queue_back; + event->prev = 0; + c->m_queue_back = event; +} + +static ZOOM_Event ZOOM_connection_get_event(ZOOM_connection c) +{ + ZOOM_Event event = c->m_queue_front; + if (!event) + { + c->last_event = ZOOM_EVENT_NONE; + return 0; + } + assert(c->m_queue_back); + c->m_queue_front = event->prev; + if (c->m_queue_front) + { + assert(c->m_queue_back); + c->m_queue_front->next = 0; + } + else + c->m_queue_back = 0; + c->last_event = event->kind; + return event; +} + + +static void set_dset_error(ZOOM_connection c, int error, + const char *dset, + const char *addinfo, const char *addinfo2) +{ + char *cp; + + xfree(c->addinfo); + c->addinfo = 0; + c->error = error; + if (!c->diagset || strcmp(dset, c->diagset)) + { + xfree(c->diagset); + c->diagset = xstrdup(dset); + /* remove integer part from SRW diagset .. */ + if ((cp = strrchr(c->diagset, '/'))) + *cp = '\0'; + } + if (addinfo && addinfo2) + { + c->addinfo = (char*) xmalloc(strlen(addinfo) + strlen(addinfo2) + 2); + strcpy(c->addinfo, addinfo); + strcat(c->addinfo, addinfo2); + } + else if (addinfo) + c->addinfo = xstrdup(addinfo); + if (error) + yaz_log(log_api, "%p set_dset_error %s %s:%d %s %s", + c, c->host_port ? c->host_port : "<>", dset, error, + addinfo ? addinfo : "", + addinfo2 ? addinfo2 : ""); +} + +#if YAZ_HAVE_XML2 +static void set_HTTP_error(ZOOM_connection c, int error, + const char *addinfo, const char *addinfo2) +{ + set_dset_error(c, error, "HTTP", addinfo, addinfo2); +} +#endif + +static void set_ZOOM_error(ZOOM_connection c, int error, + const char *addinfo) +{ + set_dset_error(c, error, "ZOOM", addinfo, 0); +} + +static void clear_error(ZOOM_connection c) +{ + /* + * If an error is tied to an operation then it's ok to clear: for + * example, a diagnostic returned from a search is cleared by a + * subsequent search. However, problems such as Connection Lost + * or Init Refused are not cleared, because they are not + * recoverable: doing another search doesn't help. + */ + switch (c->error) + { + case ZOOM_ERROR_CONNECT: + case ZOOM_ERROR_MEMORY: + case ZOOM_ERROR_DECODE: + case ZOOM_ERROR_CONNECTION_LOST: + case ZOOM_ERROR_INIT: + case ZOOM_ERROR_INTERNAL: + case ZOOM_ERROR_UNSUPPORTED_PROTOCOL: + break; + default: + set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); + } +} + +ZOOM_task ZOOM_connection_add_task(ZOOM_connection c, int which) +{ + ZOOM_task *taskp = &c->tasks; + while (*taskp) + taskp = &(*taskp)->next; + *taskp = (ZOOM_task) xmalloc(sizeof(**taskp)); + (*taskp)->running = 0; + (*taskp)->which = which; + (*taskp)->next = 0; + clear_error(c); + return *taskp; +} + +ZOOM_task ZOOM_connection_insert_task(ZOOM_connection c, int which) +{ + ZOOM_task task = (ZOOM_task) xmalloc(sizeof(*task)); + + task->next = c->tasks; + c->tasks = task; + + task->running = 0; + task->which = which; + clear_error(c); + return task; +} + +void ZOOM_connection_remove_task(ZOOM_connection c) +{ + ZOOM_task task = c->tasks; + + if (task) + { + c->tasks = task->next; + switch (task->which) + { + case ZOOM_TASK_SEARCH: + ZOOM_resultset_destroy(task->u.search.resultset); + break; + case ZOOM_TASK_RETRIEVE: + ZOOM_resultset_destroy(task->u.retrieve.resultset); + break; + case ZOOM_TASK_CONNECT: + break; + case ZOOM_TASK_SCAN: + ZOOM_scanset_destroy(task->u.scan.scan); + break; + case ZOOM_TASK_PACKAGE: + ZOOM_package_destroy(task->u.package); + break; + case ZOOM_TASK_SORT: + ZOOM_resultset_destroy(task->u.sort.resultset); + ZOOM_query_destroy(task->u.sort.q); + break; + default: + assert(0); + } + xfree(task); + + if (!c->tasks) + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_END); + ZOOM_connection_put_event(c, event); + } + } +} + +static int ZOOM_connection_exec_task(ZOOM_connection c); + +void ZOOM_connection_remove_tasks(ZOOM_connection c) +{ + while (c->tasks) + ZOOM_connection_remove_task(c); +} + +static ZOOM_record record_cache_lookup(ZOOM_resultset r, int pos); + +ZOOM_API(ZOOM_connection) + ZOOM_connection_create(ZOOM_options options) +{ + ZOOM_connection c = (ZOOM_connection) xmalloc(sizeof(*c)); + + initlog(); + + yaz_log(log_api, "%p ZOOM_connection_create", c); + + c->proto = PROTO_Z3950; + c->cs = 0; + c->mask = 0; + c->reconnect_ok = 0; + c->state = STATE_IDLE; + c->addinfo = 0; + c->diagset = 0; + set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); + c->buf_in = 0; + c->len_in = 0; + c->buf_out = 0; + c->len_out = 0; + c->resultsets = 0; + + c->options = ZOOM_options_create_with_parent(options); + + c->host_port = 0; + c->path = 0; + c->proxy = 0; + + c->charset = c->lang = 0; + + c->cookie_out = 0; + c->cookie_in = 0; + c->client_IP = 0; + c->tasks = 0; + + c->odr_in = odr_createmem(ODR_DECODE); + c->odr_out = odr_createmem(ODR_ENCODE); + + c->async = 0; + c->support_named_resultsets = 0; + c->last_event = ZOOM_EVENT_NONE; + + c->m_queue_front = 0; + c->m_queue_back = 0; + return c; +} + +/* set database names. Take local databases (if set); otherwise + take databases given in ZURL (if set); otherwise use Default */ +static char **set_DatabaseNames(ZOOM_connection con, ZOOM_options options, + int *num) +{ + char **databaseNames; + const char *cp = ZOOM_options_get(options, "databaseName"); + + if ((!cp || !*cp) && con->host_port) + { + if (strncmp(con->host_port, "unix:", 5) == 0) + cp = strchr(con->host_port+5, ':'); + else + cp = strchr(con->host_port, '/'); + if (cp) + cp++; + } + if (!cp) + cp = "Default"; + nmem_strsplit(con->odr_out->mem, "+", cp, &databaseNames, num); + return databaseNames; +} + +ZOOM_API(ZOOM_connection) + ZOOM_connection_new(const char *host, int portnum) +{ + ZOOM_connection c = ZOOM_connection_create(0); + + ZOOM_connection_connect(c, host, portnum); + return c; +} + +static zoom_sru_mode get_sru_mode_from_string(const char *s) +{ + if (!s || !*s) + return zoom_sru_soap; + if (!yaz_matchstr(s, "soap")) + return zoom_sru_soap; + else if (!yaz_matchstr(s, "get")) + return zoom_sru_get; + else if (!yaz_matchstr(s, "post")) + return zoom_sru_post; + return zoom_sru_error; +} + +ZOOM_API(void) + ZOOM_connection_connect(ZOOM_connection c, + const char *host, int portnum) +{ + const char *val; + ZOOM_task task; + + initlog(); + + yaz_log(log_api, "%p ZOOM_connection_connect host=%s portnum=%d", + c, host, portnum); + + set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); + ZOOM_connection_remove_tasks(c); + + if (c->cs) + { + yaz_log(log_details, "%p ZOOM_connection_connect reconnect ok", c); + c->reconnect_ok = 1; + return; + } + yaz_log(log_details, "%p ZOOM_connection_connect connect", c); + xfree(c->proxy); + val = ZOOM_options_get(c->options, "proxy"); + if (val && *val) + { + yaz_log(log_details, "%p ZOOM_connection_connect proxy=%s", c, val); + c->proxy = xstrdup(val); + } + else + c->proxy = 0; + + xfree(c->charset); + val = ZOOM_options_get(c->options, "charset"); + if (val && *val) + { + yaz_log(log_details, "%p ZOOM_connection_connect charset=%s", c, val); + c->charset = xstrdup(val); + } + else + c->charset = 0; + + xfree(c->lang); + val = ZOOM_options_get(c->options, "lang"); + if (val && *val) + { + yaz_log(log_details, "%p ZOOM_connection_connect lang=%s", c, val); + c->lang = xstrdup(val); + } + else + c->lang = 0; + + val = ZOOM_options_get(c->options, "sru"); + c->sru_mode = get_sru_mode_from_string(val); + + xfree(c->host_port); + if (portnum) + { + char hostn[128]; + sprintf(hostn, "%.80s:%d", host, portnum); + c->host_port = xstrdup(hostn); + } + else + c->host_port = xstrdup(host); + + { + /* + * If the ":" part of the host string is preceded by one + * or more comma-separated = pairs, these are taken + * to be options to be set on the connection object. Among other + * applications, this facility can be used to embed authentication + * in a host string: + * user=admin,password=secret,tcp:localhost:9999 + */ + char *remainder = c->host_port; + char *pcolon = strchr(remainder, ':'); + char *pcomma; + char *pequals; + while ((pcomma = strchr(remainder, ',')) != 0 && + (pcolon == 0 || pcomma < pcolon)) { + *pcomma = '\0'; + if ((pequals = strchr(remainder, '=')) != 0) { + *pequals = '\0'; + /*printf("# setting '%s'='%s'\n", remainder, pequals+1);*/ + ZOOM_connection_option_set(c, remainder, pequals+1); + } + remainder = pcomma+1; + } + + if (remainder != c->host_port) { + xfree(c->host_port); + c->host_port = xstrdup(remainder); + /*printf("# reset hp='%s'\n", remainder);*/ + } + } + + ZOOM_options_set(c->options, "host", c->host_port); + + val = ZOOM_options_get(c->options, "cookie"); + if (val && *val) + { + yaz_log(log_details, "%p ZOOM_connection_connect cookie=%s", c, val); + c->cookie_out = xstrdup(val); + } + + val = ZOOM_options_get(c->options, "clientIP"); + if (val && *val) + { + yaz_log(log_details, "%p ZOOM_connection_connect clientIP=%s", + c, val); + c->client_IP = xstrdup(val); + } + + c->async = ZOOM_options_get_bool(c->options, "async", 0); + yaz_log(log_details, "%p ZOOM_connection_connect async=%d", c, c->async); + + task = ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); + + if (!c->async) + { + while (ZOOM_event(1, &c)) + ; + } +} + +ZOOM_API(ZOOM_query) + ZOOM_query_create(void) +{ + ZOOM_query s = (ZOOM_query) xmalloc(sizeof(*s)); + + yaz_log(log_details, "%p ZOOM_query_create", s); + s->refcount = 1; + s->z_query = 0; + s->sort_spec = 0; + s->odr = odr_createmem(ODR_ENCODE); + s->query_string = 0; + + return s; +} + +ZOOM_API(void) + ZOOM_query_destroy(ZOOM_query s) +{ + if (!s) + return; + + (s->refcount)--; + yaz_log(log_details, "%p ZOOM_query_destroy count=%d", s, s->refcount); + if (s->refcount == 0) + { + odr_destroy(s->odr); + xfree(s); + } +} + +ZOOM_API(int) + ZOOM_query_prefix(ZOOM_query s, const char *str) +{ + s->query_string = odr_strdup(s->odr, str); + s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query)); + s->z_query->which = Z_Query_type_1; + s->z_query->u.type_1 = p_query_rpn(s->odr, PROTO_Z3950, str); + if (!s->z_query->u.type_1) + { + yaz_log(log_details, "%p ZOOM_query_prefix str=%s failed", s, str); + s->z_query = 0; + return -1; + } + yaz_log(log_details, "%p ZOOM_query_prefix str=%s", s, str); + return 0; +} + +ZOOM_API(int) + ZOOM_query_cql(ZOOM_query s, const char *str) +{ + Z_External *ext; + + s->query_string = odr_strdup(s->odr, str); + + ext = (Z_External *) odr_malloc(s->odr, sizeof(*ext)); + ext->direct_reference = odr_getoidbystr(s->odr, "1.2.840.10003.16.2"); + ext->indirect_reference = 0; + ext->descriptor = 0; + ext->which = Z_External_CQL; + ext->u.cql = s->query_string; + + s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query)); + s->z_query->which = Z_Query_type_104; + s->z_query->u.type_104 = ext; + + yaz_log(log_details, "%p ZOOM_query_cql str=%s", s, str); + + return 0; +} + +/* + * Translate the CQL string client-side into RPN which is passed to + * the server. This is useful for server's that don't themselves + * support CQL, for which ZOOM_query_cql() is useless. `conn' is used + * only as a place to stash diagnostics if compilation fails; if this + * information is not needed, a null pointer may be used. + */ +ZOOM_API(int) + ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) +{ + char *rpn; + int ret; + ZOOM_connection freeme = 0; + + yaz_log(log_details, "%p ZOOM_query_cql2rpn str=%s conn=%p", s, str, conn); + if (conn == 0) + conn = freeme = ZOOM_connection_create(0); + + rpn = cql2pqf(conn, str); + if (freeme != 0) + ZOOM_connection_destroy(freeme); + if (rpn == 0) + return -1; + + ret = ZOOM_query_prefix(s, rpn); + xfree(rpn); + return ret; +} + +/* + * Analogous in every way to ZOOM_query_cql2rpn(), except that there + * is no analogous ZOOM_query_ccl() that just sends uninterpreted CCL + * to the server, as the YAZ GFS doesn't know how to handle this. + */ +ZOOM_API(int) + ZOOM_query_ccl2rpn(ZOOM_query s, const char *str, const char *config, + int *ccl_error, const char **error_string, + int *error_pos) +{ + int ret; + struct ccl_rpn_node *rpn; + CCL_bibset bibset = ccl_qual_mk(); + + if (config) + ccl_qual_buf(bibset, config); + + rpn = ccl_find_str(bibset, str, ccl_error, error_pos); + if (!rpn) + { + *error_string = ccl_err_msg(*ccl_error); + ret = -1; + } + else + { + WRBUF wr = wrbuf_alloc(); + ccl_pquery(wr, rpn); + ccl_rpn_delete(rpn); + ret = ZOOM_query_prefix(s, wrbuf_buf(wr)); + wrbuf_free(wr, 1); + } + ccl_qual_rm(&bibset); + return ret; +} + +ZOOM_API(int) + ZOOM_query_sortby(ZOOM_query s, const char *criteria) +{ + s->sort_spec = yaz_sort_spec(s->odr, criteria); + if (!s->sort_spec) + { + yaz_log(log_details, "%p ZOOM_query_sortby criteria=%s failed", + s, criteria); + return -1; + } + yaz_log(log_details, "%p ZOOM_query_sortby criteria=%s", s, criteria); + return 0; +} + +static zoom_ret do_write(ZOOM_connection c); + +ZOOM_API(void) + ZOOM_connection_destroy(ZOOM_connection c) +{ + ZOOM_resultset r; + if (!c) + return; + yaz_log(log_api, "%p ZOOM_connection_destroy", c); + if (c->cs) + cs_close(c->cs); + for (r = c->resultsets; r; r = r->next) + r->connection = 0; + + xfree(c->buf_in); + xfree(c->addinfo); + xfree(c->diagset); + odr_destroy(c->odr_in); + odr_destroy(c->odr_out); + ZOOM_options_destroy(c->options); + ZOOM_connection_remove_tasks(c); + xfree(c->host_port); + xfree(c->path); + xfree(c->proxy); + xfree(c->charset); + xfree(c->lang); + xfree(c->cookie_out); + xfree(c->cookie_in); + xfree(c->client_IP); + xfree(c); +} + +void ZOOM_resultset_addref(ZOOM_resultset r) +{ + if (r) + { + (r->refcount)++; + yaz_log(log_details, "%p ZOOM_resultset_addref count=%d", + r, r->refcount); + } +} + +ZOOM_resultset ZOOM_resultset_create() +{ + int i; + ZOOM_resultset r = (ZOOM_resultset) xmalloc(sizeof(*r)); + + initlog(); + + yaz_log(log_details, "%p ZOOM_resultset_create", r); + r->refcount = 1; + r->size = 0; + r->odr = odr_createmem(ODR_ENCODE); + r->piggyback = 1; + r->setname = 0; + r->schema = 0; + r->step = 0; + for (i = 0; irecord_hash[i] = 0; + r->r_sort_spec = 0; + r->query = 0; + r->connection = 0; + r->next = 0; + return r; +} + +ZOOM_API(ZOOM_resultset) + ZOOM_connection_search_pqf(ZOOM_connection c, const char *q) +{ + ZOOM_resultset r; + ZOOM_query s = ZOOM_query_create(); + + ZOOM_query_prefix(s, q); + + r = ZOOM_connection_search(c, s); + ZOOM_query_destroy(s); + return r; +} + +ZOOM_API(ZOOM_resultset) + ZOOM_connection_search(ZOOM_connection c, ZOOM_query q) +{ + ZOOM_resultset r = ZOOM_resultset_create(); + ZOOM_task task; + const char *cp; + int start, count; + + yaz_log(log_api, "%p ZOOM_connection_search set %p query %p", c, r, q); + r->r_sort_spec = q->sort_spec; + r->query = q; + + r->options = ZOOM_options_create_with_parent(c->options); + + start = ZOOM_options_get_int(r->options, "start", 0); + count = ZOOM_options_get_int(r->options, "count", 0); + { + /* If "presentChunk" is defined use that; otherwise "step" */ + const char *cp = ZOOM_options_get(r->options, "presentChunk"); + r->step = ZOOM_options_get_int(r->options, + (cp != 0 ? "presentChunk": "step"), 0); + } + r->piggyback = ZOOM_options_get_bool(r->options, "piggyback", 1); + cp = ZOOM_options_get(r->options, "setname"); + if (cp) + r->setname = xstrdup(cp); + cp = ZOOM_options_get(r->options, "schema"); + if (cp) + r->schema = xstrdup(cp); + + r->connection = c; + + r->next = c->resultsets; + c->resultsets = r; + + if (c->host_port && c->proto == PROTO_HTTP) + { + if (!c->cs) + { + yaz_log(log_details, "ZOOM_connection_search: no comstack"); + ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); + } + else + { + yaz_log(log_details, "ZOOM_connection_search: reconnect"); + c->reconnect_ok = 1; + } + } + + task = ZOOM_connection_add_task(c, ZOOM_TASK_SEARCH); + task->u.search.resultset = r; + task->u.search.start = start; + task->u.search.count = count; + ZOOM_resultset_addref(r); + + (q->refcount)++; + + if (!c->async) + { + while (ZOOM_event(1, &c)) + ; + } + return r; +} + +/* + * This is the old result-set sorting API, which is maintained only + * for the sake of binary compatibility. There is no reason ever to + * use this rather than ZOOM_resultset_sort1(). + */ +ZOOM_API(void) + ZOOM_resultset_sort(ZOOM_resultset r, + const char *sort_type, const char *sort_spec) +{ + (void) ZOOM_resultset_sort1(r, sort_type, sort_spec); +} + +ZOOM_API(int) + ZOOM_resultset_sort1(ZOOM_resultset r, + const char *sort_type, const char *sort_spec) +{ + ZOOM_connection c = r->connection; + ZOOM_task task; + ZOOM_query newq; + + newq = ZOOM_query_create(); + if (ZOOM_query_sortby(newq, sort_spec) < 0) + return -1; + + yaz_log(log_api, "%p ZOOM_resultset_sort r=%p sort_type=%s sort_spec=%s", + r, r, sort_type, sort_spec); + if (!c) + return 0; + + if (c->host_port && c->proto == PROTO_HTTP) + { + if (!c->cs) + { + yaz_log(log_details, "%p ZOOM_resultset_sort: no comstack", r); + ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); + } + else + { + yaz_log(log_details, "%p ZOOM_resultset_sort: prepare reconnect", + r); + c->reconnect_ok = 1; + } + } + + ZOOM_resultset_cache_reset(r); + task = ZOOM_connection_add_task(c, ZOOM_TASK_SORT); + task->u.sort.resultset = r; + task->u.sort.q = newq; + + ZOOM_resultset_addref(r); + + if (!c->async) + { + while (ZOOM_event(1, &c)) + ; + } + + return 0; +} + +ZOOM_API(void) + ZOOM_resultset_cache_reset(ZOOM_resultset r) +{ + int i; + for (i = 0; irecord_hash[i]; rc; rc = rc->next) + { + if (rc->rec.wrbuf_marc) + wrbuf_free(rc->rec.wrbuf_marc, 1); + if (rc->rec.wrbuf_iconv) + wrbuf_free(rc->rec.wrbuf_iconv, 1); + if (rc->rec.wrbuf_opac) + wrbuf_free(rc->rec.wrbuf_opac, 1); + } + r->record_hash[i] = 0; + } +} + +ZOOM_API(void) + ZOOM_resultset_destroy(ZOOM_resultset r) +{ + if (!r) + return; + (r->refcount)--; + yaz_log(log_details, "%p ZOOM_resultset_destroy r=%p count=%d", + r, r, r->refcount); + if (r->refcount == 0) + { + ZOOM_resultset_cache_reset(r); + + if (r->connection) + { + /* remove ourselves from the resultsets in connection */ + ZOOM_resultset *rp = &r->connection->resultsets; + while (1) + { + assert(*rp); /* we must be in this list!! */ + if (*rp == r) + { /* OK, we're here - take us out of it */ + *rp = (*rp)->next; + break; + } + rp = &(*rp)->next; + } + } + ZOOM_query_destroy(r->query); + ZOOM_options_destroy(r->options); + odr_destroy(r->odr); + xfree(r->setname); + xfree(r->schema); + xfree(r); + } +} + +ZOOM_API(size_t) + ZOOM_resultset_size(ZOOM_resultset r) +{ + return r->size; +} + +static void do_close(ZOOM_connection c) +{ + if (c->cs) + cs_close(c->cs); + c->cs = 0; + c->mask = 0; + c->state = STATE_IDLE; +} + +static void ZOOM_resultset_retrieve(ZOOM_resultset r, + int force_sync, int start, int count) +{ + ZOOM_task task; + ZOOM_connection c; + const char *cp; + + if (!r) + return; + yaz_log(log_details, "%p ZOOM_resultset_retrieve force_sync=%d start=%d" + " count=%d", r, force_sync, start, count); + c = r->connection; + if (!c) + return; + + if (c->host_port && c->proto == PROTO_HTTP) + { + if (!c->cs) + { + yaz_log(log_details, "%p ZOOM_resultset_retrieve: no comstack", r); + ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); + } + else + { + yaz_log(log_details, "%p ZOOM_resultset_retrieve: prepare " + "reconnect", r); + c->reconnect_ok = 1; + } + } + task = ZOOM_connection_add_task(c, ZOOM_TASK_RETRIEVE); + task->u.retrieve.resultset = r; + task->u.retrieve.start = start; + task->u.retrieve.count = count; + + cp = ZOOM_options_get(r->options, "schema"); + if (cp) + { + if (!r->schema || strcmp(r->schema, cp)) + { + xfree(r->schema); + r->schema = xstrdup(cp); + } + } + + ZOOM_resultset_addref(r); + + if (!r->connection->async || force_sync) + while (r->connection && ZOOM_event(1, &r->connection)) + ; +} + +ZOOM_API(void) + ZOOM_resultset_records(ZOOM_resultset r, ZOOM_record *recs, + size_t start, size_t count) +{ + int force_present = 0; + + if (!r) + return ; + yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%ld count=%ld", + r, r, (long) start, (long) count); + if (count && recs) + force_present = 1; + ZOOM_resultset_retrieve(r, force_present, start, count); + if (force_present) + { + size_t i; + for (i = 0; i< count; i++) + recs[i] = ZOOM_resultset_record_immediate(r, i+start); + } +} + +static void get_cert(ZOOM_connection c) +{ + char *cert_buf; + int cert_len; + + if (cs_get_peer_certificate_x509(c->cs, &cert_buf, &cert_len)) + { + ZOOM_connection_option_setl(c, "sslPeerCert", + cert_buf, cert_len); + xfree(cert_buf); + } +} + +static zoom_ret do_connect(ZOOM_connection c) +{ + void *add; + const char *effective_host; + + if (c->proxy) + effective_host = c->proxy; + else + effective_host = c->host_port; + + yaz_log(log_details, "%p do_connect effective_host=%s", c, effective_host); + + if (c->cs) + cs_close(c->cs); + c->cs = cs_create_host(effective_host, 0, &add); + + if (c->cs && c->cs->protocol == PROTO_HTTP) + { +#if YAZ_HAVE_XML2 + const char *path = 0; + + c->proto = PROTO_HTTP; + cs_get_host_args(c->host_port, &path); + xfree(c->path); + c->path = (char*) xmalloc(strlen(path)+2); + c->path[0] = '/'; + strcpy(c->path+1, path); +#else + set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_PROTOCOL, "SRW"); + do_close(c); + return zoom_complete; +#endif + } + if (c->cs) + { + int ret = cs_connect(c->cs, add); + if (ret == 0) + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); + ZOOM_connection_put_event(c, event); + get_cert(c); + if (c->proto == PROTO_Z3950) + ZOOM_connection_send_init(c); + else + { + /* no init request for SRW .. */ + assert(c->tasks->which == ZOOM_TASK_CONNECT); + ZOOM_connection_remove_task(c); + c->mask = 0; + ZOOM_connection_exec_task(c); + } + c->state = STATE_ESTABLISHED; + return zoom_pending; + } + else if (ret > 0) + { + c->state = STATE_CONNECTING; + c->mask = ZOOM_SELECT_EXCEPT; + if (c->cs->io_pending & CS_WANT_WRITE) + c->mask += ZOOM_SELECT_WRITE; + if (c->cs->io_pending & CS_WANT_READ) + c->mask += ZOOM_SELECT_READ; + return zoom_pending; + } + } + c->state = STATE_IDLE; + set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); + return zoom_complete; +} + +int z3950_connection_socket(ZOOM_connection c) +{ + if (c->cs) + return cs_fileno(c->cs); + return -1; +} + +int z3950_connection_mask(ZOOM_connection c) +{ + if (c->cs) + return c->mask; + return 0; +} + +static void otherInfo_attach(ZOOM_connection c, Z_APDU *a, ODR out) +{ + int i; + for (i = 0; i<200; i++) + { + size_t len; + Z_OtherInformation **oi; + char buf[80]; + const char *val; + const char *cp; + int oidval; + + sprintf(buf, "otherInfo%d", i); + val = ZOOM_options_get(c->options, buf); + if (!val) + break; + cp = strchr(val, ':'); + if (!cp) + continue; + len = cp - val; + if (len >= sizeof(buf)) + len = sizeof(buf)-1; + memcpy(buf, val, len); + buf[len] = '\0'; + oidval = oid_getvalbyname(buf); + if (oidval == VAL_NONE) + continue; + + yaz_oi_APDU(a, &oi); + yaz_oi_set_string_oidval(oi, out, oidval, 1, cp+1); + } +} + +static int encode_APDU(ZOOM_connection c, Z_APDU *a, ODR out) +{ + assert(a); + if (c->cookie_out) + { + Z_OtherInformation **oi; + yaz_oi_APDU(a, &oi); + yaz_oi_set_string_oidval(oi, out, VAL_COOKIE, 1, c->cookie_out); + } + if (c->client_IP) + { + Z_OtherInformation **oi; + yaz_oi_APDU(a, &oi); + yaz_oi_set_string_oidval(oi, out, VAL_CLIENT_IP, 1, c->client_IP); + } + otherInfo_attach(c, a, out); + if (!z_APDU(out, &a, 0, 0)) + { + FILE *outf = fopen("/tmp/apdu.txt", "a"); + if (a && outf) + { + ODR odr_pr = odr_createmem(ODR_PRINT); + fprintf(outf, "a=%p\n", a); + odr_setprint(odr_pr, outf); + z_APDU(odr_pr, &a, 0, 0); + odr_destroy(odr_pr); + } + yaz_log(log_api, "%p encoding_APDU: encoding failed", c); + set_ZOOM_error(c, ZOOM_ERROR_ENCODE, 0); + odr_reset(out); + return -1; + } + yaz_log(log_details, "%p encoding_APDU encoding OK", c); + return 0; +} + +static zoom_ret send_APDU(ZOOM_connection c, Z_APDU *a) +{ + ZOOM_Event event; + assert(a); + if (encode_APDU(c, a, c->odr_out)) + return zoom_complete; + yaz_log(log_details, "%p send APDU type=%d", c, a->which); + c->buf_out = odr_getbuf(c->odr_out, &c->len_out, 0); + event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); + ZOOM_connection_put_event(c, event); + odr_reset(c->odr_out); + return do_write(c); +} + +/* returns 1 if PDU was sent OK (still pending ) + 0 if PDU was not sent OK (nothing to wait for) +*/ + +static zoom_ret ZOOM_connection_send_init(ZOOM_connection c) +{ + Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_initRequest); + Z_InitRequest *ireq = apdu->u.initRequest; + Z_IdAuthentication *auth = (Z_IdAuthentication *) + odr_malloc(c->odr_out, sizeof(*auth)); + const char *auth_groupId = ZOOM_options_get(c->options, "group"); + const char *auth_userId = ZOOM_options_get(c->options, "user"); + const char *auth_password = ZOOM_options_get(c->options, "password"); + char *version; + + /* support the pass for backwards compatibility */ + if (!auth_password) + auth_password = ZOOM_options_get(c->options, "pass"); + + ODR_MASK_SET(ireq->options, Z_Options_search); + ODR_MASK_SET(ireq->options, Z_Options_present); + ODR_MASK_SET(ireq->options, Z_Options_scan); + ODR_MASK_SET(ireq->options, Z_Options_sort); + ODR_MASK_SET(ireq->options, Z_Options_extendedServices); + ODR_MASK_SET(ireq->options, Z_Options_namedResultSets); + + ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_1); + ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_2); + ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_3); + + /* Index Data's Z39.50 Implementor Id is 81 */ + ireq->implementationId = + odr_prepend(c->odr_out, + ZOOM_options_get(c->options, "implementationId"), + odr_prepend(c->odr_out, "81", ireq->implementationId)); + + ireq->implementationName = + odr_prepend(c->odr_out, + ZOOM_options_get(c->options, "implementationName"), + odr_prepend(c->odr_out, "ZOOM-C", + ireq->implementationName)); + + version = odr_strdup(c->odr_out, "$Revision: 1.87 $"); + if (strlen(version) > 10) /* check for unexpanded CVS strings */ + version[strlen(version)-2] = '\0'; + ireq->implementationVersion = + odr_prepend(c->odr_out, + ZOOM_options_get(c->options, "implementationVersion"), + odr_prepend(c->odr_out, &version[11], + ireq->implementationVersion)); + + *ireq->maximumRecordSize = + ZOOM_options_get_int(c->options, "maximumRecordSize", 1024*1024); + *ireq->preferredMessageSize = + ZOOM_options_get_int(c->options, "preferredMessageSize", 1024*1024); + + if (auth_groupId || auth_password) + { + Z_IdPass *pass = (Z_IdPass *) odr_malloc(c->odr_out, sizeof(*pass)); + int i = 0; + pass->groupId = 0; + if (auth_groupId && *auth_groupId) + { + pass->groupId = (char *) + odr_malloc(c->odr_out, strlen(auth_groupId)+1); + strcpy(pass->groupId, auth_groupId); + i++; + } + pass->userId = 0; + if (auth_userId && *auth_userId) + { + pass->userId = (char *) + odr_malloc(c->odr_out, strlen(auth_userId)+1); + strcpy(pass->userId, auth_userId); + i++; + } + pass->password = 0; + if (auth_password && *auth_password) + { + pass->password = (char *) + odr_malloc(c->odr_out, strlen(auth_password)+1); + strcpy(pass->password, auth_password); + i++; + } + if (i) + { + auth->which = Z_IdAuthentication_idPass; + auth->u.idPass = pass; + ireq->idAuthentication = auth; + } + } + else if (auth_userId) + { + auth->which = Z_IdAuthentication_open; + auth->u.open = (char *) + odr_malloc(c->odr_out, strlen(auth_userId)+1); + strcpy(auth->u.open, auth_userId); + ireq->idAuthentication = auth; + } + if (c->proxy) + yaz_oi_set_string_oidval(&ireq->otherInfo, c->odr_out, + VAL_PROXY, 1, c->host_port); + if (c->charset || c->lang) + { + Z_OtherInformation **oi; + Z_OtherInformationUnit *oi_unit; + + yaz_oi_APDU(apdu, &oi); + + if ((oi_unit = yaz_oi_update(oi, c->odr_out, NULL, 0, 0))) + { + ODR_MASK_SET(ireq->options, Z_Options_negotiationModel); + oi_unit->which = Z_OtherInfo_externallyDefinedInfo; + oi_unit->information.externallyDefinedInfo = + yaz_set_proposal_charneg_list(c->odr_out, " ", + c->charset, c->lang, 1); + } + } + assert(apdu); + return send_APDU(c, apdu); +} + +#if YAZ_HAVE_XML2 +static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) +{ + Z_GDU *gdu; + ZOOM_Event event; + + gdu = z_get_HTTP_Request_host_path(c->odr_out, c->host_port, c->path); + + if (c->sru_mode == zoom_sru_get) + { + yaz_sru_get_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); + } + else if (c->sru_mode == zoom_sru_post) + { + yaz_sru_post_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); + } + else if (c->sru_mode == zoom_sru_soap) + { + yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); + } + if (!z_GDU(c->odr_out, &gdu, 0, 0)) + return zoom_complete; + c->buf_out = odr_getbuf(c->odr_out, &c->len_out, 0); + + event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); + ZOOM_connection_put_event(c, event); + odr_reset(c->odr_out); + return do_write(c); +} +#endif + +#if YAZ_HAVE_XML2 +static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) +{ + int i; + int *start, *count; + ZOOM_resultset resultset = 0; + Z_SRW_PDU *sr = 0; + const char *option_val = 0; + + if (c->error) /* don't continue on error */ + return zoom_complete; + assert(c->tasks); + if (c->tasks->which == ZOOM_TASK_SEARCH) + { + resultset = c->tasks->u.search.resultset; + resultset->setname = xstrdup("default"); + ZOOM_options_set(resultset->options, "setname", resultset->setname); + start = &c->tasks->u.search.start; + count = &c->tasks->u.search.count; + } + else if (c->tasks->which == ZOOM_TASK_RETRIEVE) + { + resultset = c->tasks->u.retrieve.resultset; + + start = &c->tasks->u.retrieve.start; + count = &c->tasks->u.retrieve.count; + + if (*start >= resultset->size) + return zoom_complete; + if (*start + *count > resultset->size) + *count = resultset->size - *start; + + for (i = 0; i < *count; i++) + { + ZOOM_record rec = + record_cache_lookup(resultset, i + *start); + if (!rec) + break; + else + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); + ZOOM_connection_put_event(c, event); + } + } + *start += i; + *count -= i; + + if (*count == 0) + return zoom_complete; + } + assert(resultset->query); + + sr = yaz_srw_get(c->odr_out, Z_SRW_searchRetrieve_request); + + if (resultset->query->z_query->which == Z_Query_type_104 + && resultset->query->z_query->u.type_104->which == Z_External_CQL) + { + sr->u.request->query_type = Z_SRW_query_type_cql; + sr->u.request->query.cql =resultset->query->z_query->u.type_104->u.cql; + } + else if (resultset->query->z_query->which == Z_Query_type_1 && + resultset->query->z_query->u.type_1) + { + sr->u.request->query_type = Z_SRW_query_type_pqf; + sr->u.request->query.pqf = resultset->query->query_string; + } + else + { + set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_QUERY, 0); + return zoom_complete; + } + sr->u.request->startRecord = odr_intdup(c->odr_out, *start + 1); + sr->u.request->maximumRecords = odr_intdup( + c->odr_out, resultset->step>0 ? resultset->step : *count); + sr->u.request->recordSchema = resultset->schema; + + option_val = ZOOM_resultset_option_get(resultset, "recordPacking"); + if (option_val) + sr->u.request->recordPacking = odr_strdup(c->odr_out, option_val); + + option_val = ZOOM_resultset_option_get(resultset, "extraArgs"); + if (option_val) + sr->extra_args = odr_strdup(c->odr_out, option_val); + return send_srw(c, sr); +} +#else +static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) +{ + return zoom_complete; +} +#endif + +static zoom_ret ZOOM_connection_send_search(ZOOM_connection c) +{ + ZOOM_resultset r; + int lslb, ssub, mspn; + const char *syntax; + Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_searchRequest); + Z_SearchRequest *search_req = apdu->u.searchRequest; + const char *elementSetName; + const char *smallSetElementSetName; + const char *mediumSetElementSetName; + + assert(c->tasks); + assert(c->tasks->which == ZOOM_TASK_SEARCH); + + r = c->tasks->u.search.resultset; + + yaz_log(log_details, "%p ZOOM_connection_send_search set=%p", c, r); + + elementSetName = + ZOOM_options_get(r->options, "elementSetName"); + smallSetElementSetName = + ZOOM_options_get(r->options, "smallSetElementSetName"); + mediumSetElementSetName = + ZOOM_options_get(r->options, "mediumSetElementSetName"); + + if (!smallSetElementSetName) + smallSetElementSetName = elementSetName; + + if (!mediumSetElementSetName) + mediumSetElementSetName = elementSetName; + + assert(r); + assert(r->query); + + /* prepare query for the search request */ + search_req->query = r->query->z_query; + if (!search_req->query) + { + set_ZOOM_error(c, ZOOM_ERROR_INVALID_QUERY, 0); + return zoom_complete; + } + + search_req->databaseNames = + set_DatabaseNames(c, r->options, &search_req->num_databaseNames); + + /* get syntax (no need to provide unless piggyback is in effect) */ + syntax = ZOOM_options_get(r->options, "preferredRecordSyntax"); + + lslb = ZOOM_options_get_int(r->options, "largeSetLowerBound", -1); + ssub = ZOOM_options_get_int(r->options, "smallSetUpperBound", -1); + mspn = ZOOM_options_get_int(r->options, "mediumSetPresentNumber", -1); + if (lslb != -1 && ssub != -1 && mspn != -1) + { + /* So're a Z39.50 expert? Let's hope you don't do sort */ + *search_req->largeSetLowerBound = lslb; + *search_req->smallSetUpperBound = ssub; + *search_req->mediumSetPresentNumber = mspn; + } + else if (c->tasks->u.search.start == 0 && c->tasks->u.search.count > 0 + && r->piggyback && !r->r_sort_spec && !r->schema) + { + /* Regular piggyback - do it unless we're going to do sort */ + *search_req->largeSetLowerBound = 2000000000; + *search_req->smallSetUpperBound = 1; + *search_req->mediumSetPresentNumber = + r->step>0 ? r->step : c->tasks->u.search.count; + } + else + { + /* non-piggyback. Need not provide elementsets or syntaxes .. */ + smallSetElementSetName = 0; + mediumSetElementSetName = 0; + syntax = 0; + } + if (smallSetElementSetName && *smallSetElementSetName) + { + Z_ElementSetNames *esn = (Z_ElementSetNames *) + odr_malloc(c->odr_out, sizeof(*esn)); + + esn->which = Z_ElementSetNames_generic; + esn->u.generic = odr_strdup(c->odr_out, smallSetElementSetName); + search_req->smallSetElementSetNames = esn; + } + if (mediumSetElementSetName && *mediumSetElementSetName) + { + Z_ElementSetNames *esn =(Z_ElementSetNames *) + odr_malloc(c->odr_out, sizeof(*esn)); + + esn->which = Z_ElementSetNames_generic; + esn->u.generic = odr_strdup(c->odr_out, mediumSetElementSetName); + search_req->mediumSetElementSetNames = esn; + } + if (syntax) + search_req->preferredRecordSyntax = + yaz_str_to_z3950oid(c->odr_out, CLASS_RECSYN, syntax); + + if (!r->setname) + { + if (c->support_named_resultsets) + { + char setname[14]; + int ord; + /* find the lowest unused ordinal so that we re-use + result sets on the server. */ + for (ord = 1; ; ord++) + { + ZOOM_resultset rp; + sprintf(setname, "%d", ord); + for (rp = c->resultsets; rp; rp = rp->next) + if (rp->setname && !strcmp(rp->setname, setname)) + break; + if (!rp) + break; + } + r->setname = xstrdup(setname); + yaz_log(log_details, "%p ZOOM_connection_send_search: allocating " + "set %s", c, r->setname); + } + else + { + yaz_log(log_details, "%p ZOOM_connection_send_search: using " + "default set", c); + r->setname = xstrdup("default"); + } + ZOOM_options_set(r->options, "setname", r->setname); + } + search_req->resultSetName = odr_strdup(c->odr_out, r->setname); + return send_APDU(c, apdu); +} + +static void response_default_diag(ZOOM_connection c, Z_DefaultDiagFormat *r) +{ + int oclass; + char *addinfo = 0; + + switch (r->which) + { + case Z_DefaultDiagFormat_v2Addinfo: + addinfo = r->u.v2Addinfo; + break; + case Z_DefaultDiagFormat_v3Addinfo: + addinfo = r->u.v3Addinfo; + break; + } + xfree(c->addinfo); + c->addinfo = 0; + set_dset_error(c, *r->condition, + yaz_z3950oid_to_str(r->diagnosticSetId, &oclass), + addinfo, 0); +} + +static void response_diag(ZOOM_connection c, Z_DiagRec *p) +{ + if (p->which != Z_DiagRec_defaultFormat) + set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); + else + response_default_diag(c, p->u.defaultFormat); +} + +ZOOM_API(ZOOM_record) + ZOOM_record_clone(ZOOM_record srec) +{ + char *buf; + int size; + ODR odr_enc; + ZOOM_record nrec; + + odr_enc = odr_createmem(ODR_ENCODE); + if (!z_NamePlusRecord(odr_enc, &srec->npr, 0, 0)) + return 0; + buf = odr_getbuf(odr_enc, &size, 0); + + nrec = (ZOOM_record) xmalloc(sizeof(*nrec)); + nrec->odr = odr_createmem(ODR_DECODE); + nrec->wrbuf_marc = 0; + nrec->wrbuf_iconv = 0; + nrec->wrbuf_opac = 0; + odr_setbuf(nrec->odr, buf, size, 0); + z_NamePlusRecord(nrec->odr, &nrec->npr, 0, 0); + + odr_destroy(odr_enc); + return nrec; +} + +ZOOM_API(ZOOM_record) + ZOOM_resultset_record_immediate(ZOOM_resultset s,size_t pos) +{ + return record_cache_lookup(s, pos); +} + +ZOOM_API(ZOOM_record) + ZOOM_resultset_record(ZOOM_resultset r, size_t pos) +{ + ZOOM_record rec = ZOOM_resultset_record_immediate(r, pos); + + if (!rec) + { + /* + * MIKE: I think force_sync should always be zero, but I don't + * want to make this change until I get the go-ahead from + * Adam, in case something depends on the old synchronous + * behaviour. + */ + int force_sync = 1; + if (getenv("ZOOM_RECORD_NO_FORCE_SYNC")) force_sync = 0; + ZOOM_resultset_retrieve(r, force_sync, pos, 1); + rec = ZOOM_resultset_record_immediate(r, pos); + } + return rec; +} + +ZOOM_API(void) + ZOOM_record_destroy(ZOOM_record rec) +{ + if (!rec) + return; + if (rec->wrbuf_marc) + wrbuf_free(rec->wrbuf_marc, 1); + if (rec->wrbuf_iconv) + wrbuf_free(rec->wrbuf_iconv, 1); + if (rec->wrbuf_opac) + wrbuf_free(rec->wrbuf_opac, 1); + odr_destroy(rec->odr); + xfree(rec); +} + +static const char *marc_iconv_return(ZOOM_record rec, int marc_type, + int *len, + const char *buf, int sz, + const char *record_charset) +{ + char to[40]; + char from[40]; + yaz_iconv_t cd = 0; + yaz_marc_t mt = yaz_marc_create(); + + *from = '\0'; + strcpy(to, "UTF-8"); + if (record_charset && *record_charset) + { + /* Use "from,to" or just "from" */ + const char *cp = strchr(record_charset, ','); + int clen = strlen(record_charset); + if (cp && cp[1]) + { + strncpy( to, cp+1, sizeof(to)-1); + to[sizeof(to)-1] = '\0'; + clen = cp - record_charset; + } + if (clen > sizeof(from)-1) + clen = sizeof(from)-1; + + if (clen) + strncpy(from, record_charset, clen); + from[clen] = '\0'; + } + + if (*from && *to) + { + cd = yaz_iconv_open(to, from); + yaz_marc_iconv(mt, cd); + } + + yaz_marc_xml(mt, marc_type); + if (!rec->wrbuf_marc) + rec->wrbuf_marc = wrbuf_alloc(); + wrbuf_rewind(rec->wrbuf_marc); + if (yaz_marc_decode_wrbuf(mt, buf, sz, rec->wrbuf_marc) > 0) + { + yaz_marc_destroy(mt); + if (cd) + yaz_iconv_close(cd); + if (len) + *len = wrbuf_len(rec->wrbuf_marc); + return wrbuf_buf(rec->wrbuf_marc); + } + yaz_marc_destroy(mt); + if (cd) + yaz_iconv_close(cd); + return 0; +} + +static const char *record_iconv_return(ZOOM_record rec, int *len, + const char *buf, int sz, + const char *record_charset) +{ + char to[40]; + char from[40]; + yaz_iconv_t cd = 0; + + *from = '\0'; + strcpy(to, "UTF-8"); + if (record_charset && *record_charset) + { + /* Use "from,to" or just "from" */ + const char *cp = strchr(record_charset, ','); + int clen = strlen(record_charset); + if (cp && cp[1]) + { + strncpy( to, cp+1, sizeof(to)-1); + to[sizeof(to)-1] = '\0'; + clen = cp - record_charset; + } + if (clen > sizeof(from)-1) + clen = sizeof(from)-1; + + if (clen) + strncpy(from, record_charset, clen); + from[clen] = '\0'; + } + + if (*from && *to && (cd = yaz_iconv_open(to, from))) + { + char outbuf[12]; + size_t inbytesleft = sz; + const char *inp = buf; + + if (!rec->wrbuf_iconv) + rec->wrbuf_iconv = wrbuf_alloc(); + + wrbuf_rewind(rec->wrbuf_iconv); + + while (inbytesleft) + { + size_t outbytesleft = sizeof(outbuf); + char *outp = outbuf; + size_t r = yaz_iconv(cd, (char**) &inp, + &inbytesleft, + &outp, &outbytesleft); + if (r == (size_t) (-1)) + { + int e = yaz_iconv_error(cd); + if (e != YAZ_ICONV_E2BIG) + break; + } + wrbuf_write(rec->wrbuf_iconv, outbuf, outp - outbuf); + } + wrbuf_puts(rec->wrbuf_iconv, ""); + buf = wrbuf_buf(rec->wrbuf_iconv); + sz = wrbuf_len(rec->wrbuf_iconv); + yaz_iconv_close(cd); + } + if (len) + *len = sz; + return buf; +} + +ZOOM_API(const char *) + ZOOM_record_get(ZOOM_record rec, const char *type_spec, int *len) +{ + char type[40]; + char charset[40]; + char xpath[512]; + const char *cp; + int i; + Z_NamePlusRecord *npr; + + if (len) + *len = 0; /* default return */ + + if (!rec) + return 0; + npr = rec->npr; + if (!npr) + return 0; + + cp = type_spec; + for (i = 0; cp[i] && i < sizeof(type)-1; i++) + { + if (cp[i] == ';' || cp[i] == ' ') + break; + type[i] = cp[i]; + } + type[i] = '\0'; + charset[0] = '\0'; + while (type_spec[i] == ';') + { + i++; + while (type_spec[i] == ' ') + i++; + if (!strncmp(type_spec+i, "charset=", 8)) + { + int j = 0; + i = i + 8; /* skip charset= */ + for (j = 0; type_spec[i] && j < sizeof(charset)-1; i++, j++) + { + if (type_spec[i] == ';' || type_spec[i] == ' ') + break; + charset[j] = cp[i]; + } + charset[j] = '\0'; + } + else if (!strncmp(type_spec+i, "xpath=", 6)) + { + int j = 0; + i = i + 6; + for (j = 0; type_spec[i] && j < sizeof(xpath)-1; i++, j++) + xpath[j] = cp[i]; + xpath[j] = '\0'; + } + while (type_spec[i] == ' ') + i++; + } + if (!strcmp(type, "database")) + { + if (len) + *len = (npr->databaseName ? strlen(npr->databaseName) : 0); + return npr->databaseName; + } + else if (!strcmp(type, "syntax")) + { + const char *desc = 0; + if (npr->which == Z_NamePlusRecord_databaseRecord) + { + Z_External *r = (Z_External *) npr->u.databaseRecord; + oident *ent = oid_getentbyoid(r->direct_reference); + if (ent) + desc = ent->desc; + } + if (!desc) + desc = "none"; + if (len) + *len = strlen(desc); + return desc; + } + if (npr->which != Z_NamePlusRecord_databaseRecord) + return 0; + + /* from now on - we have a database record .. */ + if (!strcmp(type, "render")) + { + Z_External *r = (Z_External *) npr->u.databaseRecord; + oident *ent = oid_getentbyoid(r->direct_reference); + + /* render bibliographic record .. */ + if (r->which == Z_External_OPAC) + { + r = r->u.opac->bibliographicRecord; + if (!r) + return 0; + ent = oid_getentbyoid(r->direct_reference); + } + if (r->which == Z_External_sutrs) + return record_iconv_return(rec, len, + (char*) r->u.sutrs->buf, + r->u.sutrs->len, + charset); + else if (r->which == Z_External_octet) + { + const char *ret_buf; + switch (ent->value) + { + case VAL_SOIF: + case VAL_HTML: + case VAL_SUTRS: + break; + case VAL_TEXT_XML: + case VAL_APPLICATION_XML: + break; + default: + ret_buf = marc_iconv_return( + rec, YAZ_MARC_LINE, len, + (const char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len, + charset); + if (ret_buf) + return ret_buf; + } + return record_iconv_return(rec, len, + (const char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len, + charset); + } + else if (r->which == Z_External_grs1) + { + if (!rec->wrbuf_marc) + rec->wrbuf_marc = wrbuf_alloc(); + wrbuf_rewind(rec->wrbuf_marc); + yaz_display_grs1(rec->wrbuf_marc, r->u.grs1, 0); + return record_iconv_return(rec, len, + wrbuf_buf(rec->wrbuf_marc), + wrbuf_len(rec->wrbuf_marc), + charset); + } + return 0; + } + else if (!strcmp(type, "xml")) + { + Z_External *r = (Z_External *) npr->u.databaseRecord; + oident *ent = oid_getentbyoid(r->direct_reference); + + /* render bibliographic record .. */ + if (r->which == Z_External_OPAC) + { + r = r->u.opac->bibliographicRecord; + if (!r) + return 0; + ent = oid_getentbyoid(r->direct_reference); + } + + if (r->which == Z_External_sutrs) + return record_iconv_return(rec, len, + (const char *) r->u.sutrs->buf, + r->u.sutrs->len, + charset); + else if (r->which == Z_External_octet) + { + const char *ret_buf; + int marc_decode_type = YAZ_MARC_MARCXML; + + switch (ent->value) + { + case VAL_SOIF: + case VAL_HTML: + case VAL_SUTRS: + break; + case VAL_TEXT_XML: + case VAL_APPLICATION_XML: + break; + default: + ret_buf = marc_iconv_return( + rec, marc_decode_type, len, + (const char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len, + charset); + if (ret_buf) + return ret_buf; + } + return record_iconv_return(rec, len, + (const char *) r->u.octet_aligned->buf, + r->u.octet_aligned->len, + charset); + } + else if (r->which == Z_External_grs1) + { + if (len) *len = 5; + return "GRS-1"; + } + return 0; + } + else if (!strcmp(type, "raw")) + { + Z_External *r = (Z_External *) npr->u.databaseRecord; + + if (r->which == Z_External_sutrs) + { + if (len) *len = r->u.sutrs->len; + return (const char *) r->u.sutrs->buf; + } + else if (r->which == Z_External_octet) + { + if (len) *len = r->u.octet_aligned->len; + return (const char *) r->u.octet_aligned->buf; + } + else /* grs-1, explain, OPAC, ... */ + { + if (len) *len = -1; + return (const char *) npr->u.databaseRecord; + } + return 0; + } + else if (!strcmp (type, "ext")) + { + if (len) *len = -1; + return (const char *) npr->u.databaseRecord; + } + else if (!strcmp (type, "opac")) + + { + Z_External *r = (Z_External *) npr->u.databaseRecord; + if (r->which == Z_External_OPAC) + { + if (!rec->wrbuf_opac) + rec->wrbuf_opac = wrbuf_alloc(); + wrbuf_rewind(rec->wrbuf_opac); + yaz_display_OPAC(rec->wrbuf_opac, r->u.opac, 0); + return record_iconv_return(rec, len, + wrbuf_buf(rec->wrbuf_opac), + wrbuf_len(rec->wrbuf_opac), + charset); + } + } + return 0; +} + +static int strcmp_null(const char *v1, const char *v2) +{ + if (!v1 && !v2) + return 0; + if (!v1 || !v2) + return -1; + return strcmp(v1, v2); +} + +static size_t record_hash(int pos) +{ + if (pos < 0) + pos = 0; + return pos % RECORD_HASH_SIZE; +} + +static void record_cache_add(ZOOM_resultset r, Z_NamePlusRecord *npr, + int pos) +{ + ZOOM_record_cache rc; + const char *elementSetName = + ZOOM_resultset_option_get(r, "elementSetName"); + const char *syntax = + ZOOM_resultset_option_get(r, "preferredRecordSyntax"); + + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); + ZOOM_connection_put_event(r->connection, event); + + for (rc = r->record_hash[record_hash(pos)]; rc; rc = rc->next) + { + if (pos == rc->pos) + { + if (strcmp_null(r->schema, rc->schema)) + continue; + if (strcmp_null(elementSetName,rc->elementSetName)) + continue; + if (strcmp_null(syntax, rc->syntax)) + continue; + /* not destroying rc->npr (it's handled by nmem )*/ + rc->rec.npr = npr; + /* keeping wrbuf_marc too */ + return; + } + } + rc = (ZOOM_record_cache) odr_malloc(r->odr, sizeof(*rc)); + rc->rec.npr = npr; + rc->rec.odr = 0; + rc->rec.wrbuf_marc = 0; + rc->rec.wrbuf_iconv = 0; + rc->rec.wrbuf_opac = 0; + if (elementSetName) + rc->elementSetName = odr_strdup(r->odr, elementSetName); + else + rc->elementSetName = 0; + + if (syntax) + rc->syntax = odr_strdup(r->odr, syntax); + else + rc->syntax = 0; + + if (r->schema) + rc->schema = odr_strdup(r->odr, r->schema); + else + rc->schema = 0; + + rc->pos = pos; + rc->next = r->record_hash[record_hash(pos)]; + r->record_hash[record_hash(pos)] = rc; +} + +static ZOOM_record record_cache_lookup(ZOOM_resultset r, int pos) +{ + ZOOM_record_cache rc; + const char *elementSetName = + ZOOM_resultset_option_get(r, "elementSetName"); + const char *syntax = + ZOOM_resultset_option_get(r, "preferredRecordSyntax"); + + for (rc = r->record_hash[record_hash(pos)]; rc; rc = rc->next) + { + if (pos == rc->pos) + { + if (strcmp_null(r->schema, rc->schema)) + continue; + if (strcmp_null(elementSetName,rc->elementSetName)) + continue; + if (strcmp_null(syntax, rc->syntax)) + continue; + return &rc->rec; + } + } + return 0; +} + +static void handle_records(ZOOM_connection c, Z_Records *sr, + int present_phase) +{ + ZOOM_resultset resultset; + int *start, *count; + + if (!c->tasks) + return ; + switch (c->tasks->which) + { + case ZOOM_TASK_SEARCH: + resultset = c->tasks->u.search.resultset; + start = &c->tasks->u.search.start; + count = &c->tasks->u.search.count; + break; + case ZOOM_TASK_RETRIEVE: + resultset = c->tasks->u.retrieve.resultset; + start = &c->tasks->u.retrieve.start; + count = &c->tasks->u.retrieve.count; + break; + default: + return; + } + if (sr && sr->which == Z_Records_NSD) + response_default_diag(c, sr->u.nonSurrogateDiagnostic); + else if (sr && sr->which == Z_Records_multipleNSD) + { + if (sr->u.multipleNonSurDiagnostics->num_diagRecs >= 1) + response_diag(c, sr->u.multipleNonSurDiagnostics->diagRecs[0]); + else + set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); + } + else + { + if (*count + *start > resultset->size) + *count = resultset->size - *start; + if (*count < 0) + *count = 0; + if (sr && sr->which == Z_Records_DBOSD) + { + int i; + NMEM nmem = odr_extract_mem(c->odr_in); + Z_NamePlusRecordList *p = + sr->u.databaseOrSurDiagnostics; + for (i = 0; inum_records; i++) + { + record_cache_add(resultset, p->records[i], i + *start); + } + *count -= i; + *start += i; + yaz_log(log_details, + "handle_records resultset=%p start=%d count=%d", + resultset, *start, *count); + + /* transfer our response to search_nmem .. we need it later */ + nmem_transfer(resultset->odr->mem, nmem); + nmem_destroy(nmem); + if (present_phase && p->num_records == 0) + { + /* present response and we didn't get any records! */ + Z_NamePlusRecord *myrec = + zget_surrogateDiagRec(resultset->odr, 0, 14, 0); + record_cache_add(resultset, myrec, *start); + } + } + else if (present_phase) + { + /* present response and we didn't get any records! */ + Z_NamePlusRecord *myrec = + zget_surrogateDiagRec(resultset->odr, 0, 14, 0); + record_cache_add(resultset, myrec, *start); + } + } +} + +static void handle_present_response(ZOOM_connection c, Z_PresentResponse *pr) +{ + handle_records(c, pr->records, 1); +} + +static void handle_queryExpressionTerm(ZOOM_options opt, const char *name, + Z_Term *term) +{ + switch (term->which) + { + case Z_Term_general: + ZOOM_options_setl(opt, name, + (const char *)(term->u.general->buf), + term->u.general->len); + break; + case Z_Term_characterString: + ZOOM_options_set(opt, name, term->u.characterString); + break; + case Z_Term_numeric: + ZOOM_options_set_int(opt, name, *term->u.numeric); + break; + } +} + +static void handle_queryExpression(ZOOM_options opt, const char *name, + Z_QueryExpression *exp) +{ + char opt_name[80]; + + switch (exp->which) + { + case Z_QueryExpression_term: + if (exp->u.term && exp->u.term->queryTerm) + { + sprintf(opt_name, "%s.term", name); + handle_queryExpressionTerm(opt, opt_name, exp->u.term->queryTerm); + } + break; + case Z_QueryExpression_query: + break; + } +} + +static void handle_searchResult(ZOOM_connection c, ZOOM_resultset resultset, + Z_OtherInformation *o) +{ + int i; + for (i = 0; o && i < o->num_elements; i++) + { + if (o->list[i]->which == Z_OtherInfo_externallyDefinedInfo) + { + Z_External *ext = o->list[i]->information.externallyDefinedInfo; + + if (ext->which == Z_External_searchResult1) + { + int j; + Z_SearchInfoReport *sr = ext->u.searchResult1; + + if (sr->num) + ZOOM_options_set_int( + resultset->options, "searchresult.size", sr->num); + + for (j = 0; j < sr->num; j++) + { + Z_SearchInfoReport_s *ent = + ext->u.searchResult1->elements[j]; + char pref[80]; + + sprintf(pref, "searchresult.%d", j); + + if (ent->subqueryId) + { + char opt_name[80]; + sprintf(opt_name, "%s.id", pref); + ZOOM_options_set(resultset->options, opt_name, + ent->subqueryId); + } + if (ent->subqueryExpression) + { + char opt_name[80]; + sprintf(opt_name, "%s.subquery", pref); + handle_queryExpression(resultset->options, opt_name, + ent->subqueryExpression); + } + if (ent->subqueryInterpretation) + { + char opt_name[80]; + sprintf(opt_name, "%s.interpretation", pref); + handle_queryExpression(resultset->options, opt_name, + ent->subqueryInterpretation); + } + if (ent->subqueryRecommendation) + { + char opt_name[80]; + sprintf(opt_name, "%s.recommendation", pref); + handle_queryExpression(resultset->options, opt_name, + ent->subqueryRecommendation); + } + if (ent->subqueryCount) + { + char opt_name[80]; + sprintf(opt_name, "%s.count", pref); + ZOOM_options_set_int(resultset->options, opt_name, + *ent->subqueryCount); + } + } + } + } + } +} + +static void handle_search_response(ZOOM_connection c, Z_SearchResponse *sr) +{ + ZOOM_resultset resultset; + ZOOM_Event event; + + if (!c->tasks || c->tasks->which != ZOOM_TASK_SEARCH) + return ; + + event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH); + ZOOM_connection_put_event(c, event); + + resultset = c->tasks->u.search.resultset; + + handle_searchResult(c, resultset, sr->additionalSearchInfo); + + resultset->size = *sr->resultCount; + handle_records(c, sr->records, 0); +} + +static void sort_response(ZOOM_connection c, Z_SortResponse *res) +{ + if (res->diagnostics && res->num_diagnostics > 0) + response_diag(c, res->diagnostics[0]); +} + +static int scan_response(ZOOM_connection c, Z_ScanResponse *res) +{ + NMEM nmem = odr_extract_mem(c->odr_in); + ZOOM_scanset scan; + + if (!c->tasks || c->tasks->which != ZOOM_TASK_SCAN) + return 0; + scan = c->tasks->u.scan.scan; + + if (res->entries && res->entries->nonsurrogateDiagnostics) + response_diag(c, res->entries->nonsurrogateDiagnostics[0]); + scan->scan_response = res; + nmem_transfer(scan->odr->mem, nmem); + if (res->stepSize) + ZOOM_options_set_int(scan->options, "stepSize", *res->stepSize); + if (res->positionOfTerm) + ZOOM_options_set_int(scan->options, "position", *res->positionOfTerm); + if (res->scanStatus) + ZOOM_options_set_int(scan->options, "scanStatus", *res->scanStatus); + if (res->numberOfEntriesReturned) + ZOOM_options_set_int(scan->options, "number", + *res->numberOfEntriesReturned); + nmem_destroy(nmem); + return 1; +} + +static zoom_ret send_sort(ZOOM_connection c, + ZOOM_resultset resultset) +{ + if (c->error) + resultset->r_sort_spec = 0; + if (resultset->r_sort_spec) + { + Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_sortRequest); + Z_SortRequest *req = apdu->u.sortRequest; + + req->num_inputResultSetNames = 1; + req->inputResultSetNames = (Z_InternationalString **) + odr_malloc(c->odr_out, sizeof(*req->inputResultSetNames)); + req->inputResultSetNames[0] = + odr_strdup(c->odr_out, resultset->setname); + req->sortedResultSetName = odr_strdup(c->odr_out, resultset->setname); + req->sortSequence = resultset->r_sort_spec; + resultset->r_sort_spec = 0; + return send_APDU(c, apdu); + } + return zoom_complete; +} + +static zoom_ret send_present(ZOOM_connection c) +{ + Z_APDU *apdu = 0; + Z_PresentRequest *req = 0; + int i = 0; + const char *syntax = 0; + const char *elementSetName = 0; + ZOOM_resultset resultset; + int *start, *count; + + if (!c->tasks) + { + yaz_log(log_details, "%p send_present no tasks", c); + return zoom_complete; + } + + switch (c->tasks->which) + { + case ZOOM_TASK_SEARCH: + resultset = c->tasks->u.search.resultset; + start = &c->tasks->u.search.start; + count = &c->tasks->u.search.count; + break; + case ZOOM_TASK_RETRIEVE: + resultset = c->tasks->u.retrieve.resultset; + start = &c->tasks->u.retrieve.start; + count = &c->tasks->u.retrieve.count; + + if (*start >= resultset->size) + { + yaz_log(log_details, "%p send_present start=%d >= size=%d", + c, *start, resultset->size); + return zoom_complete; + } + if (*start + *count > resultset->size) + *count = resultset->size - *start; + break; + default: + return zoom_complete; + } + yaz_log(log_details, "%p send_present start=%d count=%d", + c, *start, *count); + + syntax = ZOOM_resultset_option_get(resultset, "preferredRecordSyntax"); + elementSetName = ZOOM_resultset_option_get(resultset, "elementSetName"); + + if (c->error) /* don't continue on error */ + return zoom_complete; + if (*start < 0) + return zoom_complete; + yaz_log(log_details, "send_present resultset=%p start=%d count=%d", + resultset, *start, *count); + + for (i = 0; i < *count; i++) + { + ZOOM_record rec = + record_cache_lookup(resultset, i + *start); + if (!rec) + break; + else + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); + ZOOM_connection_put_event(c, event); + } + } + *start += i; + *count -= i; + + if (*count == 0) + { + yaz_log(log_details, "%p send_present skip=%d no more to fetch", c, i); + return zoom_complete; + } + + apdu = zget_APDU(c->odr_out, Z_APDU_presentRequest); + req = apdu->u.presentRequest; + + if (i) + yaz_log(log_details, "%p send_present skip=%d", c, i); + + *req->resultSetStartPoint = *start + 1; + *req->numberOfRecordsRequested = resultset->step>0 ? + resultset->step : *count; + if (*req->numberOfRecordsRequested + *start > resultset->size) + *req->numberOfRecordsRequested = resultset->size - *start; + assert(*req->numberOfRecordsRequested > 0); + + if (syntax && *syntax) + req->preferredRecordSyntax = + yaz_str_to_z3950oid(c->odr_out, CLASS_RECSYN, syntax); + + if (resultset->schema && *resultset->schema) + { + Z_RecordComposition *compo = (Z_RecordComposition *) + odr_malloc(c->odr_out, sizeof(*compo)); + + req->recordComposition = compo; + compo->which = Z_RecordComp_complex; + compo->u.complex = (Z_CompSpec *) + odr_malloc(c->odr_out, sizeof(*compo->u.complex)); + compo->u.complex->selectAlternativeSyntax = (bool_t *) + odr_malloc(c->odr_out, sizeof(bool_t)); + *compo->u.complex->selectAlternativeSyntax = 0; + + compo->u.complex->generic = (Z_Specification *) + odr_malloc(c->odr_out, sizeof(*compo->u.complex->generic)); + + compo->u.complex->generic->which = Z_Schema_oid; + compo->u.complex->generic->schema.oid = (Odr_oid *) + yaz_str_to_z3950oid (c->odr_out, CLASS_SCHEMA, resultset->schema); + + if (!compo->u.complex->generic->schema.oid) + { + /* OID wasn't a schema! Try record syntax instead. */ + + compo->u.complex->generic->schema.oid = (Odr_oid *) + yaz_str_to_z3950oid (c->odr_out, CLASS_RECSYN, resultset->schema); + } + if (elementSetName && *elementSetName) + { + compo->u.complex->generic->elementSpec = (Z_ElementSpec *) + odr_malloc(c->odr_out, sizeof(Z_ElementSpec)); + compo->u.complex->generic->elementSpec->which = + Z_ElementSpec_elementSetName; + compo->u.complex->generic->elementSpec->u.elementSetName = + odr_strdup(c->odr_out, elementSetName); + } + else + compo->u.complex->generic->elementSpec = 0; + compo->u.complex->num_dbSpecific = 0; + compo->u.complex->dbSpecific = 0; + compo->u.complex->num_recordSyntax = 0; + compo->u.complex->recordSyntax = 0; + } + else if (elementSetName && *elementSetName) + { + Z_ElementSetNames *esn = (Z_ElementSetNames *) + odr_malloc(c->odr_out, sizeof(*esn)); + Z_RecordComposition *compo = (Z_RecordComposition *) + odr_malloc(c->odr_out, sizeof(*compo)); + + esn->which = Z_ElementSetNames_generic; + esn->u.generic = odr_strdup(c->odr_out, elementSetName); + compo->which = Z_RecordComp_simple; + compo->u.simple = esn; + req->recordComposition = compo; + } + req->resultSetId = odr_strdup(c->odr_out, resultset->setname); + return send_APDU(c, apdu); +} + +ZOOM_API(ZOOM_scanset) + ZOOM_connection_scan(ZOOM_connection c, const char *start) +{ + ZOOM_scanset s; + ZOOM_query q = ZOOM_query_create(); + + ZOOM_query_prefix(q, start); + + s = ZOOM_connection_scan1(c, q); + ZOOM_query_destroy(q); + return s; + +} + +ZOOM_API(ZOOM_scanset) + ZOOM_connection_scan1(ZOOM_connection c, ZOOM_query q) +{ + char *start; + char *freeme = 0; + ZOOM_scanset scan = 0; + + /* + * We need to check the query-type, so we can recognise CQL and + * CCL and compile them into a form that we can use here. The + * ZOOM_query structure has no explicit `type' member, but + * inspection of the ZOOM_query_prefix() and ZOOM_query_cql() + * functions shows how the structure is set up in each case. + */ + if (!q->z_query) + return 0; + else if (q->z_query->which == Z_Query_type_1) + { + yaz_log(log_api, "%p ZOOM_connection_scan1 q=%p PQF '%s'", + c, q, q->query_string); + start = q->query_string; + } + else if (q->z_query->which == Z_Query_type_104) + { + yaz_log(log_api, "%p ZOOM_connection_scan1 q=%p CQL '%s'", + c, q, q->query_string); + start = freeme = cql2pqf(c, q->query_string); + if (start == 0) + return 0; + } + else + { + yaz_log(YLOG_FATAL, "%p ZOOM_connection_scan1 q=%p unknown type '%s'", + c, q, q->query_string); + abort(); + } + + scan = (ZOOM_scanset) xmalloc(sizeof(*scan)); + scan->connection = c; + scan->odr = odr_createmem(ODR_DECODE); + scan->options = ZOOM_options_create_with_parent(c->options); + scan->refcount = 1; + scan->scan_response = 0; + scan->termListAndStartPoint = + p_query_scan(scan->odr, PROTO_Z3950, &scan->attributeSet, start); + xfree(freeme); + if (scan->termListAndStartPoint != 0) + { + ZOOM_task task = ZOOM_connection_add_task(c, ZOOM_TASK_SCAN); + task->u.scan.scan = scan; + + (scan->refcount)++; + if (!c->async) + { + while (ZOOM_event(1, &c)) + ; + } + } + return scan; +} + +ZOOM_API(void) + ZOOM_scanset_destroy(ZOOM_scanset scan) +{ + if (!scan) + return; + (scan->refcount)--; + if (scan->refcount == 0) + { + odr_destroy(scan->odr); + + ZOOM_options_destroy(scan->options); + xfree(scan); + } +} + +static zoom_ret send_package(ZOOM_connection c) +{ + ZOOM_Event event; + + yaz_log(log_details, "%p send_package", c); + if (!c->tasks) + return zoom_complete; + assert (c->tasks->which == ZOOM_TASK_PACKAGE); + + event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); + ZOOM_connection_put_event(c, event); + + c->buf_out = c->tasks->u.package->buf_out; + c->len_out = c->tasks->u.package->len_out; + + return do_write(c); +} + +static zoom_ret send_scan(ZOOM_connection c) +{ + ZOOM_scanset scan; + Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_scanRequest); + Z_ScanRequest *req = apdu->u.scanRequest; + + yaz_log(log_details, "%p send_scan", c); + if (!c->tasks) + return zoom_complete; + assert (c->tasks->which == ZOOM_TASK_SCAN); + scan = c->tasks->u.scan.scan; + + req->termListAndStartPoint = scan->termListAndStartPoint; + req->attributeSet = scan->attributeSet; + + *req->numberOfTermsRequested = + ZOOM_options_get_int(scan->options, "number", 10); + + req->preferredPositionInResponse = + odr_intdup(c->odr_out, + ZOOM_options_get_int(scan->options, "position", 1)); + + req->stepSize = + odr_intdup(c->odr_out, + ZOOM_options_get_int(scan->options, "stepSize", 0)); + + req->databaseNames = set_DatabaseNames(c, scan->options, + &req->num_databaseNames); + + return send_APDU(c, apdu); +} + +ZOOM_API(size_t) + ZOOM_scanset_size(ZOOM_scanset scan) +{ + if (!scan || !scan->scan_response || !scan->scan_response->entries) + return 0; + return scan->scan_response->entries->num_entries; +} + +ZOOM_API(const char *) + ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, + int *occ, int *len) +{ + const char *term = 0; + size_t noent = ZOOM_scanset_size(scan); + Z_ScanResponse *res = scan->scan_response; + + *len = 0; + *occ = 0; + if (pos >= noent) + return 0; + if (res->entries->entries[pos]->which == Z_Entry_termInfo) + { + Z_TermInfo *t = res->entries->entries[pos]->u.termInfo; + + if (t->term->which == Z_Term_general) + { + term = (const char *) t->term->u.general->buf; + *len = t->term->u.general->len; + } + *occ = t->globalOccurrences ? *t->globalOccurrences : 0; + } + return term; +} + +ZOOM_API(const char *) + ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, + int *occ, int *len) +{ + const char *term = 0; + size_t noent = ZOOM_scanset_size(scan); + Z_ScanResponse *res = scan->scan_response; + + *len = 0; + *occ = 0; + if (pos >= noent) + return 0; + if (res->entries->entries[pos]->which == Z_Entry_termInfo) + { + Z_TermInfo *t = res->entries->entries[pos]->u.termInfo; + + if (t->displayTerm) + { + term = t->displayTerm; + *len = strlen(term); + } + else if (t->term->which == Z_Term_general) + { + term = (const char *) t->term->u.general->buf; + *len = t->term->u.general->len; + } + *occ = t->globalOccurrences ? *t->globalOccurrences : 0; + } + return term; +} + +ZOOM_API(const char *) + ZOOM_scanset_option_get(ZOOM_scanset scan, const char *key) +{ + return ZOOM_options_get(scan->options, key); +} + +ZOOM_API(void) + ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key, + const char *val) +{ + ZOOM_options_set(scan->options, key, val); +} + +static Z_APDU *create_es_package(ZOOM_package p, int type) +{ + const char *str; + Z_APDU *apdu = zget_APDU(p->odr_out, Z_APDU_extendedServicesRequest); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + + *req->function = Z_ExtendedServicesRequest_create; + + str = ZOOM_options_get(p->options, "package-name"); + if (str && *str) + req->packageName = nmem_strdup(p->odr_out->mem, str); + + str = ZOOM_options_get(p->options, "user-id"); + if (str) + req->userId = nmem_strdup(p->odr_out->mem, str); + + req->packageType = yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV, + type); + + str = ZOOM_options_get(p->options, "function"); + if (str) + { + if (!strcmp (str, "create")) + *req->function = 1; + if (!strcmp (str, "delete")) + *req->function = 2; + if (!strcmp (str, "modify")) + *req->function = 3; + } + return apdu; +} + +static const char *ill_array_lookup(void *clientData, const char *idx) +{ + ZOOM_package p = (ZOOM_package) clientData; + return ZOOM_options_get(p->options, idx+4); +} + +static Z_External *encode_ill_request(ZOOM_package p) +{ + ODR out = p->odr_out; + ILL_Request *req; + Z_External *r = 0; + struct ill_get_ctl ctl; + + ctl.odr = p->odr_out; + ctl.clientData = p; + ctl.f = ill_array_lookup; + + req = ill_get_ILLRequest(&ctl, "ill", 0); + + if (!ill_Request(out, &req, 0, 0)) + { + int ill_request_size; + char *ill_request_buf = odr_getbuf(out, &ill_request_size, 0); + if (ill_request_buf) + odr_setbuf(out, ill_request_buf, ill_request_size, 1); + return 0; + } + else + { + oident oid; + int illRequest_size = 0; + char *illRequest_buf = odr_getbuf(out, &illRequest_size, 0); + + oid.proto = PROTO_GENERAL; + oid.oclass = CLASS_GENERAL; + oid.value = VAL_ISO_ILL_1; + + r = (Z_External *) odr_malloc(out, sizeof(*r)); + r->direct_reference = odr_oiddup(out,oid_getoidbyent(&oid)); + r->indirect_reference = 0; + r->descriptor = 0; + r->which = Z_External_single; + + r->u.single_ASN1_type = + odr_create_Odr_oct(out, + (unsigned char *)illRequest_buf, + illRequest_size); + } + return r; +} + +static Z_ItemOrder *encode_item_order(ZOOM_package p) +{ + Z_ItemOrder *req = (Z_ItemOrder *) odr_malloc(p->odr_out, sizeof(*req)); + const char *str; + + req->which = Z_IOItemOrder_esRequest; + req->u.esRequest = (Z_IORequest *) + odr_malloc(p->odr_out,sizeof(Z_IORequest)); + + /* to keep part ... */ + req->u.esRequest->toKeep = (Z_IOOriginPartToKeep *) + odr_malloc(p->odr_out,sizeof(Z_IOOriginPartToKeep)); + req->u.esRequest->toKeep->supplDescription = 0; + req->u.esRequest->toKeep->contact = (Z_IOContact *) + odr_malloc(p->odr_out, sizeof(*req->u.esRequest->toKeep->contact)); + + str = ZOOM_options_get(p->options, "contact-name"); + req->u.esRequest->toKeep->contact->name = str ? + nmem_strdup(p->odr_out->mem, str) : 0; + + str = ZOOM_options_get(p->options, "contact-phone"); + req->u.esRequest->toKeep->contact->phone = str ? + nmem_strdup(p->odr_out->mem, str) : 0; + + str = ZOOM_options_get(p->options, "contact-email"); + req->u.esRequest->toKeep->contact->email = str ? + nmem_strdup(p->odr_out->mem, str) : 0; + + req->u.esRequest->toKeep->addlBilling = 0; + + /* not to keep part ... */ + req->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *) + odr_malloc(p->odr_out,sizeof(Z_IOOriginPartNotToKeep)); + + str = ZOOM_options_get(p->options, "itemorder-setname"); + if (!str) + str = "default"; + + if (!*str) + req->u.esRequest->notToKeep->resultSetItem = 0; + else + { + req->u.esRequest->notToKeep->resultSetItem = (Z_IOResultSetItem *) + odr_malloc(p->odr_out, sizeof(Z_IOResultSetItem)); + + req->u.esRequest->notToKeep->resultSetItem->resultSetId = + nmem_strdup(p->odr_out->mem, str); + req->u.esRequest->notToKeep->resultSetItem->item = + (int *) odr_malloc(p->odr_out, sizeof(int)); + + str = ZOOM_options_get(p->options, "itemorder-item"); + *req->u.esRequest->notToKeep->resultSetItem->item = + (str ? atoi(str) : 1); + } + req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p); + + return req; +} + +Z_APDU *create_admin_package(ZOOM_package p, int type, + Z_ESAdminOriginPartToKeep **toKeepP, + Z_ESAdminOriginPartNotToKeep **notToKeepP) +{ + Z_APDU *apdu = create_es_package(p, VAL_ADMINSERVICE); + if (apdu) + { + Z_ESAdminOriginPartToKeep *toKeep; + Z_ESAdminOriginPartNotToKeep *notToKeep; + Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r)); + const char *first_db = "Default"; + int num_db; + char **db = set_DatabaseNames(p->connection, p->options, &num_db); + if (num_db > 0) + first_db = db[0]; + + r->direct_reference = + yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV, + VAL_ADMINSERVICE); + r->descriptor = 0; + r->indirect_reference = 0; + r->which = Z_External_ESAdmin; + + r->u.adminService = (Z_Admin *) + odr_malloc(p->odr_out, sizeof(*r->u.adminService)); + r->u.adminService->which = Z_Admin_esRequest; + r->u.adminService->u.esRequest = (Z_AdminEsRequest *) + odr_malloc(p->odr_out, sizeof(*r->u.adminService->u.esRequest)); + + toKeep = r->u.adminService->u.esRequest->toKeep = + (Z_ESAdminOriginPartToKeep *) + odr_malloc(p->odr_out, sizeof(*r->u.adminService->u.esRequest->toKeep)); + toKeep->which = type; + toKeep->databaseName = odr_strdup(p->odr_out, first_db); + toKeep->u.create = odr_nullval(); + apdu->u.extendedServicesRequest->taskSpecificParameters = r; + + r->u.adminService->u.esRequest->notToKeep = notToKeep = + (Z_ESAdminOriginPartNotToKeep *) + odr_malloc(p->odr_out, + sizeof(*r->u.adminService->u.esRequest->notToKeep)); + notToKeep->which = Z_ESAdminOriginPartNotToKeep_recordsWillFollow; + notToKeep->u.recordsWillFollow = odr_nullval(); + if (toKeepP) + *toKeepP = toKeep; + if (notToKeepP) + *notToKeepP = notToKeep; + } + return apdu; +} + +static Z_APDU *create_xmlupdate_package(ZOOM_package p) +{ + Z_APDU *apdu = create_es_package(p, VAL_XMLES); + Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; + Z_External *ext = (Z_External *) odr_malloc(p->odr_out, sizeof(*ext)); + const char *doc = ZOOM_options_get(p->options, "doc"); + + if (!doc) + doc = ""; + + req->taskSpecificParameters = ext; + ext->direct_reference = req->packageType; + ext->descriptor = 0; + ext->indirect_reference = 0; + + ext->which = Z_External_octet; + ext->u.single_ASN1_type = + odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc, + strlen(doc)); + return apdu; +} + +static Z_APDU *create_update_package(ZOOM_package p) +{ + Z_APDU *apdu = 0; + const char *first_db = "Default"; + int num_db; + char **db = set_DatabaseNames(p->connection, p->options, &num_db); + const char *action = ZOOM_options_get(p->options, "action"); + const char *recordIdOpaque = ZOOM_options_get(p->options, "recordIdOpaque"); + const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber"); + const char *record_buf = ZOOM_options_get(p->options, "record"); + const char *syntax_str = ZOOM_options_get(p->options, "syntax"); + int syntax_oid = VAL_NONE; + int action_no = -1; + + if (syntax_str) + syntax_oid = oid_getvalbyname(syntax_str); + if (!record_buf) + { + record_buf = "void"; + syntax_oid = VAL_SUTRS; + } + if (syntax_oid == VAL_NONE) + syntax_oid = VAL_TEXT_XML; + + if (num_db > 0) + first_db = db[0]; + + if (!action) + action = "specialUpdate"; + + if (!strcmp(action, "recordInsert")) + action_no = Z_IUOriginPartToKeep_recordInsert; + else if (!strcmp(action, "recordReplace")) + action_no = Z_IUOriginPartToKeep_recordReplace; + else if (!strcmp(action, "recordDelete")) + action_no = Z_IUOriginPartToKeep_recordDelete; + else if (!strcmp(action, "elementUpdate")) + action_no = Z_IUOriginPartToKeep_elementUpdate; + else if (!strcmp(action, "specialUpdate")) + action_no = Z_IUOriginPartToKeep_specialUpdate; + else + return 0; + + apdu = create_es_package(p, VAL_DBUPDATE); + if (apdu) + { + Z_IUOriginPartToKeep *toKeep; + Z_IUSuppliedRecords *notToKeep; + Z_External *r = (Z_External *) + odr_malloc(p->odr_out, sizeof(*r)); + + apdu->u.extendedServicesRequest->taskSpecificParameters = r; + + r->direct_reference = + yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV, + VAL_DBUPDATE); + r->descriptor = 0; + r->which = Z_External_update; + r->indirect_reference = 0; + r->u.update = (Z_IUUpdate *) + odr_malloc(p->odr_out, sizeof(*r->u.update)); + + r->u.update->which = Z_IUUpdate_esRequest; + r->u.update->u.esRequest = (Z_IUUpdateEsRequest *) + odr_malloc(p->odr_out, sizeof(*r->u.update->u.esRequest)); + toKeep = r->u.update->u.esRequest->toKeep = + (Z_IUOriginPartToKeep *) + odr_malloc(p->odr_out, sizeof(*toKeep)); + + toKeep->databaseName = odr_strdup(p->odr_out, first_db); + toKeep->schema = 0; + toKeep->elementSetName = 0; + toKeep->actionQualifier = 0; + toKeep->action = odr_intdup(p->odr_out, action_no); + + notToKeep = r->u.update->u.esRequest->notToKeep = + (Z_IUSuppliedRecords *) + odr_malloc(p->odr_out, sizeof(*notToKeep)); + notToKeep->num = 1; + notToKeep->elements = (Z_IUSuppliedRecords_elem **) + odr_malloc(p->odr_out, sizeof(*notToKeep->elements)); + notToKeep->elements[0] = (Z_IUSuppliedRecords_elem *) + odr_malloc(p->odr_out, sizeof(**notToKeep->elements)); + notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; + if (recordIdOpaque) + { + notToKeep->elements[0]->u.opaque = + odr_create_Odr_oct(p->odr_out, + (const unsigned char *) recordIdOpaque, + strlen(recordIdOpaque)); + } + else if (recordIdNumber) + { + notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_number; + + notToKeep->elements[0]->u.number = + odr_intdup(p->odr_out, atoi(recordIdNumber)); + } + else + notToKeep->elements[0]->u.opaque = 0; + notToKeep->elements[0]->supplementalId = 0; + notToKeep->elements[0]->correlationInfo = 0; + notToKeep->elements[0]->record = + z_ext_record(p->odr_out, syntax_oid, + record_buf, strlen(record_buf)); + } + if (0 && apdu) + { + ODR print = odr_createmem(ODR_PRINT); + + z_APDU(print, &apdu, 0, 0); + odr_destroy(print); + } + return apdu; +} + +ZOOM_API(void) + ZOOM_package_send(ZOOM_package p, const char *type) +{ + Z_APDU *apdu = 0; + ZOOM_connection c; + if (!p) + return; + c = p->connection; + odr_reset(p->odr_out); + xfree(p->buf_out); + p->buf_out = 0; + if (!strcmp(type, "itemorder")) + { + apdu = create_es_package(p, VAL_ITEMORDER); + if (apdu) + { + Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r)); + + r->direct_reference = + yaz_oidval_to_z3950oid(p->odr_out, CLASS_EXTSERV, + VAL_ITEMORDER); + r->descriptor = 0; + r->which = Z_External_itemOrder; + r->indirect_reference = 0; + r->u.itemOrder = encode_item_order(p); + + apdu->u.extendedServicesRequest->taskSpecificParameters = r; + } + } + else if (!strcmp(type, "create")) /* create database */ + { + apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_create, + 0, 0); + } + else if (!strcmp(type, "drop")) /* drop database */ + { + apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_drop, + 0, 0); + } + else if (!strcmp(type, "commit")) /* commit changes */ + { + apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_commit, + 0, 0); + } + else if (!strcmp(type, "update")) /* update record(s) */ + { + apdu = create_update_package(p); + } + else if (!strcmp(type, "xmlupdate")) + { + apdu = create_xmlupdate_package(p); + } + if (apdu) + { + if (encode_APDU(p->connection, apdu, p->odr_out) == 0) + { + char *buf; + + ZOOM_task task = ZOOM_connection_add_task(c, ZOOM_TASK_PACKAGE); + task->u.package = p; + buf = odr_getbuf(p->odr_out, &p->len_out, 0); + p->buf_out = (char *) xmalloc(p->len_out); + memcpy(p->buf_out, buf, p->len_out); + + (p->refcount)++; + if (!c->async) + { + while (ZOOM_event(1, &c)) + ; + } + } + } +} + +ZOOM_API(ZOOM_package) + ZOOM_connection_package(ZOOM_connection c, ZOOM_options options) +{ + ZOOM_package p = (ZOOM_package) xmalloc(sizeof(*p)); + + p->connection = c; + p->odr_out = odr_createmem(ODR_ENCODE); + p->options = ZOOM_options_create_with_parent2(options, c->options); + p->refcount = 1; + p->buf_out = 0; + p->len_out = 0; + return p; +} + +ZOOM_API(void) + ZOOM_package_destroy(ZOOM_package p) +{ + if (!p) + return; + (p->refcount)--; + if (p->refcount == 0) + { + odr_destroy(p->odr_out); + xfree(p->buf_out); + + ZOOM_options_destroy(p->options); + xfree(p); + } +} + +ZOOM_API(const char *) + ZOOM_package_option_get(ZOOM_package p, const char *key) +{ + return ZOOM_options_get(p->options, key); +} + + +ZOOM_API(void) + ZOOM_package_option_set(ZOOM_package p, const char *key, + const char *val) +{ + ZOOM_options_set(p->options, key, val); +} + +static int ZOOM_connection_exec_task(ZOOM_connection c) +{ + ZOOM_task task = c->tasks; + zoom_ret ret = zoom_complete; + + if (!task) + return 0; + yaz_log(log_details, "%p ZOOM_connection_exec_task type=%d run=%d", + c, task->which, task->running); + if (c->error != ZOOM_ERROR_NONE) + { + yaz_log(log_details, "%p ZOOM_connection_exec_task " + "removing tasks because of error = %d", c, c->error); + ZOOM_connection_remove_tasks(c); + return 0; + } + if (task->running) + { + yaz_log(log_details, "%p ZOOM_connection_exec_task " + "task already running", c); + return 0; + } + task->running = 1; + ret = zoom_complete; + if (c->cs || task->which == ZOOM_TASK_CONNECT) + { + switch (task->which) + { + case ZOOM_TASK_SEARCH: + if (c->proto == PROTO_HTTP) + ret = ZOOM_connection_srw_send_search(c); + else + ret = ZOOM_connection_send_search(c); + break; + case ZOOM_TASK_RETRIEVE: + if (c->proto == PROTO_HTTP) + ret = ZOOM_connection_srw_send_search(c); + else + ret = send_present(c); + break; + case ZOOM_TASK_CONNECT: + ret = do_connect(c); + break; + case ZOOM_TASK_SCAN: + ret = send_scan(c); + break; + case ZOOM_TASK_PACKAGE: + ret = send_package(c); + break; + case ZOOM_TASK_SORT: + c->tasks->u.sort.resultset->r_sort_spec = + c->tasks->u.sort.q->sort_spec; + ret = send_sort(c, c->tasks->u.sort.resultset); + break; + } + } + else + { + yaz_log(log_details, "%p ZOOM_connection_exec_task " + "remove tasks because no connection exist", c); + ZOOM_connection_remove_tasks(c); + } + if (ret == zoom_complete) + { + yaz_log(log_details, "%p ZOOM_connection_exec_task " + "task removed (complete)", c); + ZOOM_connection_remove_task(c); + return 0; + } + yaz_log(log_details, "%p ZOOM_connection_exec_task " + "task pending", c); + return 1; +} + +static zoom_ret send_sort_present(ZOOM_connection c) +{ + zoom_ret r = zoom_complete; + + if (c->tasks && c->tasks->which == ZOOM_TASK_SEARCH) + r = send_sort(c, c->tasks->u.search.resultset); + if (r == zoom_complete) + r = send_present(c); + return r; +} + +static int es_response(ZOOM_connection c, + Z_ExtendedServicesResponse *res) +{ + if (!c->tasks || c->tasks->which != ZOOM_TASK_PACKAGE) + return 0; + if (res->diagnostics && res->num_diagnostics > 0) + response_diag(c, res->diagnostics[0]); + if (res->taskPackage && + res->taskPackage->which == Z_External_extendedService) + { + Z_TaskPackage *taskPackage = res->taskPackage->u.extendedService; + Odr_oct *id = taskPackage->targetReference; + + if (id) + ZOOM_options_setl(c->tasks->u.package->options, + "targetReference", (char*) id->buf, id->len); + } + if (res->taskPackage && + res->taskPackage->which == Z_External_octet) + { + Odr_oct *doc = res->taskPackage->u.octet_aligned; + ZOOM_options_setl(c->tasks->u.package->options, + "xmlUpdateDoc", (char*) doc->buf, doc->len); + } + return 1; +} + +static void interpret_init_diag(ZOOM_connection c, + Z_DiagnosticFormat *diag) +{ + if (diag->num > 0) + { + Z_DiagnosticFormat_s *ds = diag->elements[0]; + if (ds->which == Z_DiagnosticFormat_s_defaultDiagRec) + response_default_diag(c, ds->u.defaultDiagRec); + } +} + + +static void interpret_otherinformation_field(ZOOM_connection c, + Z_OtherInformation *ui) +{ + int i; + for (i = 0; i < ui->num_elements; i++) + { + Z_OtherInformationUnit *unit = ui->list[i]; + if (unit->which == Z_OtherInfo_externallyDefinedInfo && + unit->information.externallyDefinedInfo && + unit->information.externallyDefinedInfo->which == + Z_External_diag1) + { + interpret_init_diag(c, unit->information.externallyDefinedInfo->u.diag1); + } + } +} + +static void recv_apdu(ZOOM_connection c, Z_APDU *apdu) +{ + Z_InitResponse *initrs; + + c->mask = 0; + yaz_log(log_details, "%p recv_apdu apdu->which=%d", c, apdu->which); + switch(apdu->which) + { + case Z_APDU_initResponse: + yaz_log(log_api, "%p recv_apd: Received Init response", c); + initrs = apdu->u.initResponse; + ZOOM_connection_option_set(c, "serverImplementationId", + initrs->implementationId ? + initrs->implementationId : ""); + ZOOM_connection_option_set(c, "serverImplementationName", + initrs->implementationName ? + initrs->implementationName : ""); + ZOOM_connection_option_set(c, "serverImplementationVersion", + initrs->implementationVersion ? + initrs->implementationVersion : ""); + /* Set the three old options too, for old applications */ + ZOOM_connection_option_set(c, "targetImplementationId", + initrs->implementationId ? + initrs->implementationId : ""); + ZOOM_connection_option_set(c, "targetImplementationName", + initrs->implementationName ? + initrs->implementationName : ""); + ZOOM_connection_option_set(c, "targetImplementationVersion", + initrs->implementationVersion ? + initrs->implementationVersion : ""); + if (!*initrs->result) + { + Z_External *uif = initrs->userInformationField; + + set_ZOOM_error(c, ZOOM_ERROR_INIT, 0); /* default error */ + + if (uif && uif->which == Z_External_userInfo1) + interpret_otherinformation_field(c, uif->u.userInfo1); + } + else + { + char *cookie = + yaz_oi_get_string_oidval(&apdu->u.initResponse->otherInfo, + VAL_COOKIE, 1, 0); + xfree(c->cookie_in); + c->cookie_in = 0; + if (cookie) + c->cookie_in = xstrdup(cookie); + if (ODR_MASK_GET(initrs->options, Z_Options_namedResultSets) && + ODR_MASK_GET(initrs->protocolVersion, Z_ProtocolVersion_3)) + c->support_named_resultsets = 1; + if (c->tasks) + { + assert(c->tasks->which == ZOOM_TASK_CONNECT); + ZOOM_connection_remove_task(c); + } + ZOOM_connection_exec_task(c); + } + if (ODR_MASK_GET(initrs->options, Z_Options_negotiationModel)) + { + NMEM tmpmem = nmem_create(); + Z_CharSetandLanguageNegotiation *p = + yaz_get_charneg_record(initrs->otherInfo); + + if (p) + { + char *charset = NULL, *lang = NULL; + int sel; + + yaz_get_response_charneg(tmpmem, p, &charset, &lang, &sel); + yaz_log(log_details, "%p recv_apdu target accepted: " + "charset %s, language %s, select %d", + c, + charset ? charset : "none", lang ? lang : "none", sel); + if (charset) + ZOOM_connection_option_set(c, "negotiation-charset", + charset); + if (lang) + ZOOM_connection_option_set(c, "negotiation-lang", + lang); + + ZOOM_connection_option_set( + c, "negotiation-charset-in-effect-for-records", + (sel != 0) ? "1" : "0"); + nmem_destroy(tmpmem); + } + } + break; + case Z_APDU_searchResponse: + yaz_log(log_api, "%p recv_apdu Search response", c); + handle_search_response(c, apdu->u.searchResponse); + if (send_sort_present(c) == zoom_complete) + ZOOM_connection_remove_task(c); + break; + case Z_APDU_presentResponse: + yaz_log(log_api, "%p recv_apdu Present response", c); + handle_present_response(c, apdu->u.presentResponse); + if (send_present(c) == zoom_complete) + ZOOM_connection_remove_task(c); + break; + case Z_APDU_sortResponse: + yaz_log(log_api, "%p recv_apdu Sort response", c); + sort_response(c, apdu->u.sortResponse); + if (send_present(c) == zoom_complete) + ZOOM_connection_remove_task(c); + break; + case Z_APDU_scanResponse: + yaz_log(log_api, "%p recv_apdu Scan response", c); + scan_response(c, apdu->u.scanResponse); + ZOOM_connection_remove_task(c); + break; + case Z_APDU_extendedServicesResponse: + yaz_log(log_api, "%p recv_apdu Extended Services response", c); + es_response(c, apdu->u.extendedServicesResponse); + ZOOM_connection_remove_task(c); + break; + case Z_APDU_close: + yaz_log(log_api, "%p recv_apdu Close PDU", c); + if (c->reconnect_ok) + { + do_close(c); + c->reconnect_ok = 0; + c->tasks->running = 0; + ZOOM_connection_insert_task(c, ZOOM_TASK_CONNECT); + } + else + { + set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); + do_close(c); + } + break; + default: + yaz_log(log_api, "%p Received unknown PDU", c); + set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); + do_close(c); + } +} + +#if YAZ_HAVE_XML2 +static void handle_srw_response(ZOOM_connection c, + Z_SRW_searchRetrieveResponse *res) +{ + ZOOM_resultset resultset = 0; + int i; + NMEM nmem; + ZOOM_Event event; + int *start; + + if (!c->tasks) + return; + + if (c->tasks->which == ZOOM_TASK_SEARCH) + { + resultset = c->tasks->u.search.resultset; + start = &c->tasks->u.search.start; + } + else if (c->tasks->which == ZOOM_TASK_RETRIEVE) + { + resultset = c->tasks->u.retrieve.resultset; + start = &c->tasks->u.retrieve.start; + } + else + return ; + + event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH); + ZOOM_connection_put_event(c, event); + + resultset->size = 0; + + yaz_log(log_details, "%p handle_srw_response got SRW response OK", c); + + if (res->numberOfRecords) + resultset->size = *res->numberOfRecords; + + for (i = 0; inum_records; i++) + { + int pos; + + Z_NamePlusRecord *npr = (Z_NamePlusRecord *) + odr_malloc(c->odr_in, sizeof(Z_NamePlusRecord)); + + if (res->records[i].recordPosition && + *res->records[i].recordPosition > 0) + pos = *res->records[i].recordPosition - 1; + else + pos = *start + i; + + npr->databaseName = 0; + npr->which = Z_NamePlusRecord_databaseRecord; + npr->u.databaseRecord = (Z_External *) + odr_malloc(c->odr_in, sizeof(Z_External)); + npr->u.databaseRecord->descriptor = 0; + npr->u.databaseRecord->direct_reference = + yaz_oidval_to_z3950oid(c->odr_in, CLASS_RECSYN, VAL_TEXT_XML); + npr->u.databaseRecord->which = Z_External_octet; + + npr->u.databaseRecord->u.octet_aligned = (Odr_oct *) + odr_malloc(c->odr_in, sizeof(Odr_oct)); + npr->u.databaseRecord->u.octet_aligned->buf = (unsigned char*) + res->records[i].recordData_buf; + npr->u.databaseRecord->u.octet_aligned->len = + npr->u.databaseRecord->u.octet_aligned->size = + res->records[i].recordData_len; + record_cache_add(resultset, npr, pos); + } + if (res->num_diagnostics > 0) + { + const char *uri = res->diagnostics[0].uri; + if (uri) + { + int code = 0; + const char *cp; + if ((cp = strrchr(uri, '/'))) + code = atoi(cp+1); + set_dset_error(c, code, uri, + res->diagnostics[0].details, 0); + } + } + nmem = odr_extract_mem(c->odr_in); + nmem_transfer(resultset->odr->mem, nmem); + nmem_destroy(nmem); +} +#endif + +#if YAZ_HAVE_XML2 +static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) +{ + int ret = -1; + const char *content_type = z_HTTP_header_lookup(hres->headers, + "Content-Type"); + const char *connection_head = z_HTTP_header_lookup(hres->headers, + "Connection"); + c->mask = 0; + yaz_log(log_details, "%p handle_http", c); + + if (content_type && !yaz_strcmp_del("text/xml", content_type, "; ")) + { + Z_SOAP *soap_package = 0; + ODR o = c->odr_in; + Z_SOAP_Handler soap_handlers[2] = { + {"http://www.loc.gov/zing/srw/", 0, + (Z_SOAP_fun) yaz_srw_codec}, + {0, 0, 0} + }; + ret = z_soap_codec(o, &soap_package, + &hres->content_buf, &hres->content_len, + soap_handlers); + if (!ret && soap_package->which == Z_SOAP_generic && + soap_package->u.generic->no == 0) + { + Z_SRW_PDU *sr = (Z_SRW_PDU*) soap_package->u.generic->p; + if (sr->which == Z_SRW_searchRetrieve_response) + handle_srw_response(c, sr->u.response); + else + ret = -1; + } + else if (!ret && (soap_package->which == Z_SOAP_fault + || soap_package->which == Z_SOAP_error)) + { + set_HTTP_error(c, hres->code, + soap_package->u.fault->fault_code, + soap_package->u.fault->fault_string); + } + else + ret = -1; + } + if (ret) + { + if (hres->code != 200) + set_HTTP_error(c, hres->code, 0, 0); + else + set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); + do_close(c); + } + ZOOM_connection_remove_task(c); + if (!strcmp(hres->version, "1.0")) + { + /* HTTP 1.0: only if Keep-Alive we stay alive.. */ + if (!connection_head || strcmp(connection_head, "Keep-Alive")) + do_close(c); + } + else + { + /* HTTP 1.1: only if no close we stay alive .. */ + if (connection_head && !strcmp(connection_head, "close")) + do_close(c); + } +} +#endif + +static int do_read(ZOOM_connection c) +{ + int r, more; + ZOOM_Event event; + + event = ZOOM_Event_create(ZOOM_EVENT_RECV_DATA); + ZOOM_connection_put_event(c, event); + + r = cs_get(c->cs, &c->buf_in, &c->len_in); + more = cs_more(c->cs); + yaz_log(log_details, "%p do_read len=%d more=%d", c, r, more); + if (r == 1) + return 0; + if (r <= 0) + { + if (c->reconnect_ok) + { + yaz_log(log_details, "%p do_read reconnect read", c); + do_close(c); + c->reconnect_ok = 0; + c->tasks->running = 0; + ZOOM_connection_insert_task(c, ZOOM_TASK_CONNECT); + } + else + { + set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); + do_close(c); + } + } + else + { + Z_GDU *gdu; + ZOOM_Event event; + + odr_reset(c->odr_in); + odr_setbuf(c->odr_in, c->buf_in, r, 0); + event = ZOOM_Event_create(ZOOM_EVENT_RECV_APDU); + ZOOM_connection_put_event(c, event); + + if (!z_GDU(c->odr_in, &gdu, 0, 0)) + { + int x; + int err = odr_geterrorx(c->odr_in, &x); + char msg[60]; + const char *element = odr_getelement(c->odr_in); + sprintf(msg, "ODR code %d:%d element=%-20s", + err, x, element ? element : ""); + set_ZOOM_error(c, ZOOM_ERROR_DECODE, msg); + do_close(c); + } + else if (gdu->which == Z_GDU_Z3950) + recv_apdu(c, gdu->u.z3950); + else if (gdu->which == Z_GDU_HTTP_Response) + { +#if YAZ_HAVE_XML2 + handle_http(c, gdu->u.HTTP_Response); +#else + set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); + do_close(c); +#endif + } + c->reconnect_ok = 0; + } + return 1; +} + +static zoom_ret do_write_ex(ZOOM_connection c, char *buf_out, int len_out) +{ + int r; + ZOOM_Event event; + + event = ZOOM_Event_create(ZOOM_EVENT_SEND_DATA); + ZOOM_connection_put_event(c, event); + + yaz_log(log_details, "%p do_write_ex len=%d", c, len_out); + if ((r = cs_put(c->cs, buf_out, len_out)) < 0) + { + yaz_log(log_details, "%p do_write_ex write failed", c); + if (c->reconnect_ok) + { + do_close(c); + c->reconnect_ok = 0; + c->tasks->running = 0; + ZOOM_connection_insert_task(c, ZOOM_TASK_CONNECT); + return zoom_pending; + } + if (c->state == STATE_CONNECTING) + set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); + else + set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); + do_close(c); + return zoom_complete; + } + else if (r == 1) + { + c->mask = ZOOM_SELECT_EXCEPT; + if (c->cs->io_pending & CS_WANT_WRITE) + c->mask += ZOOM_SELECT_WRITE; + if (c->cs->io_pending & CS_WANT_READ) + c->mask += ZOOM_SELECT_READ; + yaz_log(log_details, "%p do_write_ex write incomplete mask=%d", + c, c->mask); + } + else + { + c->mask = ZOOM_SELECT_READ|ZOOM_SELECT_EXCEPT; + yaz_log(log_details, "%p do_write_ex write complete mask=%d", + c, c->mask); + } + return zoom_pending; +} + +static zoom_ret do_write(ZOOM_connection c) +{ + return do_write_ex(c, c->buf_out, c->len_out); +} + + +ZOOM_API(const char *) + ZOOM_connection_option_get(ZOOM_connection c, const char *key) +{ + return ZOOM_options_get(c->options, key); +} + +ZOOM_API(const char *) + ZOOM_connection_option_getl(ZOOM_connection c, const char *key, int *lenp) +{ + return ZOOM_options_getl(c->options, key, lenp); +} + +ZOOM_API(void) + ZOOM_connection_option_set(ZOOM_connection c, const char *key, + const char *val) +{ + ZOOM_options_set(c->options, key, val); +} + +ZOOM_API(void) + ZOOM_connection_option_setl(ZOOM_connection c, const char *key, + const char *val, int len) +{ + ZOOM_options_setl(c->options, key, val, len); +} + +ZOOM_API(const char *) + ZOOM_resultset_option_get(ZOOM_resultset r, const char *key) +{ + return ZOOM_options_get(r->options, key); +} + +ZOOM_API(void) + ZOOM_resultset_option_set(ZOOM_resultset r, const char *key, + const char *val) +{ + ZOOM_options_set(r->options, key, val); +} + + +ZOOM_API(int) + ZOOM_connection_errcode(ZOOM_connection c) +{ + return ZOOM_connection_error(c, 0, 0); +} + +ZOOM_API(const char *) + ZOOM_connection_errmsg(ZOOM_connection c) +{ + const char *msg; + ZOOM_connection_error(c, &msg, 0); + return msg; +} + +ZOOM_API(const char *) + ZOOM_connection_addinfo(ZOOM_connection c) +{ + const char *addinfo; + ZOOM_connection_error(c, 0, &addinfo); + return addinfo; +} + +ZOOM_API(const char *) + ZOOM_connection_diagset(ZOOM_connection c) +{ + const char *diagset; + ZOOM_connection_error_x(c, 0, 0, &diagset); + return diagset; +} + +ZOOM_API(const char *) + ZOOM_diag_str(int error) +{ + switch (error) + { + case ZOOM_ERROR_NONE: + return "No error"; + case ZOOM_ERROR_CONNECT: + return "Connect failed"; + case ZOOM_ERROR_MEMORY: + return "Out of memory"; + case ZOOM_ERROR_ENCODE: + return "Encoding failed"; + case ZOOM_ERROR_DECODE: + return "Decoding failed"; + case ZOOM_ERROR_CONNECTION_LOST: + return "Connection lost"; + case ZOOM_ERROR_INIT: + return "Init rejected"; + case ZOOM_ERROR_INTERNAL: + return "Internal failure"; + case ZOOM_ERROR_TIMEOUT: + return "Timeout"; + case ZOOM_ERROR_UNSUPPORTED_PROTOCOL: + return "Unsupported protocol"; + case ZOOM_ERROR_UNSUPPORTED_QUERY: + return "Unsupported query type"; + case ZOOM_ERROR_INVALID_QUERY: + return "Invalid query"; + case ZOOM_ERROR_CQL_PARSE: + return "CQL parsing error"; + case ZOOM_ERROR_CQL_TRANSFORM: + return "CQL transformation error"; + case ZOOM_ERROR_CCL_CONFIG: + return "CCL configuration error"; + case ZOOM_ERROR_CCL_PARSE: + return "CCL parsing error"; + default: + return diagbib1_str(error); + } +} + +ZOOM_API(int) + ZOOM_connection_error_x(ZOOM_connection c, const char **cp, + const char **addinfo, const char **diagset) +{ + int error = c->error; + if (cp) + { + if (!c->diagset || !strcmp(c->diagset, "ZOOM")) + *cp = ZOOM_diag_str(error); + else if (!strcmp(c->diagset, "HTTP")) + *cp = z_HTTP_errmsg(c->error); + else if (!strcmp(c->diagset, "Bib-1")) + *cp = ZOOM_diag_str(error); + else if (!strcmp(c->diagset, "info:srw/diagnostic/1")) + *cp = yaz_diag_srw_str(c->error); + else + *cp = "Unknown error and diagnostic set"; + } + if (addinfo) + *addinfo = c->addinfo ? c->addinfo : ""; + if (diagset) + *diagset = c->diagset ? c->diagset : ""; + return c->error; +} + +ZOOM_API(int) + ZOOM_connection_error(ZOOM_connection c, const char **cp, + const char **addinfo) +{ + return ZOOM_connection_error_x(c, cp, addinfo, 0); +} + +static void ZOOM_connection_do_io(ZOOM_connection c, int mask) +{ + ZOOM_Event event = 0; + int r = cs_look(c->cs); + yaz_log(log_details, "%p ZOOM_connection_do_io mask=%d cs_look=%d", + c, mask, r); + + if (mask & ZOOM_SELECT_EXCEPT) + { + if (r == CS_CONNECT) + set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); + else + set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); + do_close(c); + return; + } + if (r == CS_NONE) + { + event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); + set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); + do_close(c); + ZOOM_connection_put_event(c, event); + } + else if (r == CS_CONNECT) + { + int ret = ret = cs_rcvconnect(c->cs); + yaz_log(log_details, "%p ZOOM_connection_do_io " + "cs_rcvconnect returned %d", c, ret); + if (ret == 1) + { + c->mask = ZOOM_SELECT_EXCEPT; + if (c->cs->io_pending & CS_WANT_WRITE) + c->mask += ZOOM_SELECT_WRITE; + if (c->cs->io_pending & CS_WANT_READ) + c->mask += ZOOM_SELECT_READ; + } + else if (ret == 0) + { + event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); + ZOOM_connection_put_event(c, event); + get_cert(c); + if (c->proto == PROTO_Z3950) + ZOOM_connection_send_init(c); + else + { + /* no init request for SRW .. */ + assert(c->tasks->which == ZOOM_TASK_CONNECT); + ZOOM_connection_remove_task(c); + c->mask = 0; + ZOOM_connection_exec_task(c); + } + c->state = STATE_ESTABLISHED; + } + else + { + set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); + do_close(c); + } + } + else + { + if (mask & ZOOM_SELECT_READ) + do_read(c); + if (c->cs && (mask & ZOOM_SELECT_WRITE)) + do_write(c); + } +} + +ZOOM_API(int) + ZOOM_connection_last_event(ZOOM_connection cs) +{ + if (!cs) + return ZOOM_EVENT_NONE; + return cs->last_event; +} + +ZOOM_API(int) + ZOOM_event(int no, ZOOM_connection *cs) +{ + int timeout = 30; /* default timeout in seconds */ + int timeout_set = 0; /* whether it was overriden at all */ +#if HAVE_SYS_POLL_H + struct pollfd pollfds[1024]; + ZOOM_connection poll_cs[1024]; +#else + struct timeval tv; + fd_set input, output, except; +#endif + int i, r, nfds; + int max_fd = 0; + + yaz_log(log_details, "ZOOM_event(no=%d,cs=%p)", no, cs); + for (i = 0; ioptions, "timeout", -2); + if (this_timeout != -2) + { + /* ensure the minimum timeout is used */ + if (!timeout_set) + timeout = this_timeout; + else if (this_timeout != -1 && this_timeout < timeout) + timeout = this_timeout; + timeout_set = 1; + } +#if HAVE_SYS_POLL_H + if (mask) + { + short poll_events = 0; + + if (mask & ZOOM_SELECT_READ) + poll_events += POLLIN; + if (mask & ZOOM_SELECT_WRITE) + poll_events += POLLOUT; + if (mask & ZOOM_SELECT_EXCEPT) + poll_events += POLLERR; + pollfds[nfds].fd = fd; + pollfds[nfds].events = poll_events; + pollfds[nfds].revents = 0; + poll_cs[nfds] = c; + nfds++; + } +#else + if (mask & ZOOM_SELECT_READ) + { + FD_SET(fd, &input); + nfds++; + } + if (mask & ZOOM_SELECT_WRITE) + { + FD_SET(fd, &output); + nfds++; + } + if (mask & ZOOM_SELECT_EXCEPT) + { + FD_SET(fd, &except); + nfds++; + } +#endif + } + if (!nfds) + return 0; + +#if HAVE_SYS_POLL_H + r = poll(pollfds, nfds, (timeout == -1 ? -1 : timeout * 1000)); + for (i = 0; imask) + { + int mask = 0; + if (pollfds[i].revents & POLLIN) + mask += ZOOM_SELECT_READ; + if (pollfds[i].revents & POLLOUT) + mask += ZOOM_SELECT_WRITE; + if (pollfds[i].revents & POLLERR) + mask += ZOOM_SELECT_EXCEPT; + if (mask) + ZOOM_connection_do_io(c, mask); + } + else if (r == 0 && c->mask) + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_TIMEOUT); + /* timeout and this connection was waiting */ + set_ZOOM_error(c, ZOOM_ERROR_TIMEOUT, 0); + do_close(c); + ZOOM_connection_put_event(c, event); + } + } +#else + tv.tv_sec = timeout; + tv.tv_usec = 0; + r = select(max_fd+1, &input, &output, &except, (timeout == -1 ? 0 : &tv)); + for (i = 0; imask) + { + /* no timeout and real socket */ + if (FD_ISSET(fd, &input)) + mask += ZOOM_SELECT_READ; + if (FD_ISSET(fd, &output)) + mask += ZOOM_SELECT_WRITE; + if (FD_ISSET(fd, &except)) + mask += ZOOM_SELECT_EXCEPT; + if (mask) + ZOOM_connection_do_io(c, mask); + } + if (r == 0 && c->mask) + { + ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_TIMEOUT); + /* timeout and this connection was waiting */ + set_ZOOM_error(c, ZOOM_ERROR_TIMEOUT, 0); + do_close(c); + ZOOM_connection_put_event(c, event); + } + } +#endif + for (i = 0; i +#include "zoom-p.h" + +#include + +ZOOM_API(ZOOM_options) +ZOOM_options_create_with_parent (ZOOM_options parent) +{ + return ZOOM_options_create_with_parent2(parent, 0); +} + +ZOOM_API(ZOOM_options) +ZOOM_options_create (void) +{ + return ZOOM_options_create_with_parent (0); +} + + +ZOOM_API(ZOOM_options) +ZOOM_options_create_with_parent2 (ZOOM_options parent1, ZOOM_options parent2) +{ + ZOOM_options opt = (ZOOM_options) xmalloc (sizeof(*opt)); + + opt->refcount = 1; + opt->callback_func = 0; + opt->callback_handle = 0; + opt->entries = 0; + opt->parent1= parent1; + if (parent1) + (parent1->refcount)++; + opt->parent2= parent2; + if (parent2) + (parent2->refcount)++; + return opt; +} + + +void ZOOM_options_addref (ZOOM_options opt) +{ + (opt->refcount)++; +} + +ZOOM_API(ZOOM_options_callback) +ZOOM_options_set_callback ( + ZOOM_options opt, + ZOOM_options_callback callback_func, + void *callback_handle) +{ + ZOOM_options_callback callback_old; + + assert (opt); + callback_old = opt->callback_func; + opt->callback_func = callback_func; + opt->callback_handle = callback_handle; + return callback_old; +} + +ZOOM_API(void) +ZOOM_options_destroy (ZOOM_options opt) +{ + if (!opt) + return; + (opt->refcount)--; + if (opt->refcount == 0) + { + struct ZOOM_options_entry *e; + + ZOOM_options_destroy (opt->parent1); + ZOOM_options_destroy (opt->parent2); + e = opt->entries; + while (e) + { + struct ZOOM_options_entry *e0 = e; + xfree (e->name); + xfree (e->value); + e = e->next; + xfree (e0); + } + xfree (opt); + } +} + +/* PRIVATE to ZOOM_options_setl() */ +static void +_set_value(struct ZOOM_options_entry **e, const char *value, int len) +{ + (*e)->value = 0; + (*e)->len = 0; + if (value) + { + (*e)->value = (char *) xmalloc (len+1); + memcpy ((*e)->value, value, len); + (*e)->value[len] = '\0'; + (*e)->len = len; + } +} + +ZOOM_API(void) +ZOOM_options_setl (ZOOM_options opt, const char *name, const char *value, + int len) +{ + struct ZOOM_options_entry **e; + + e = &opt->entries; + while (*e) + { + if (!strcmp((*e)->name, name)) + { + xfree ((*e)->value); + _set_value(e, value, len); + return; + } + e = &(*e)->next; + } + *e = (struct ZOOM_options_entry *) xmalloc (sizeof(**e)); + (*e)->name = xstrdup (name); + _set_value(e, value, len); + (*e)->next = 0; +} + +ZOOM_API(void) +ZOOM_options_set (ZOOM_options opt, const char *name, const char *value) +{ + ZOOM_options_setl (opt, name, value, value ? strlen(value): 0); +} + +ZOOM_API(const char *) +ZOOM_options_getl (ZOOM_options opt, const char *name, int *lenp) +{ + const char *v = 0; + if (!opt) + return 0; + if (opt->callback_func) + v = (*opt->callback_func)(opt->callback_handle, name); + if (!v) + { + struct ZOOM_options_entry *e; + for (e = opt->entries; e; e = e->next) + if (!strcmp(e->name, name)) + { + v = e->value; + *lenp = e->len; + break; + } + } + if (!v) + v = ZOOM_options_getl(opt->parent1, name, lenp); + if (!v) + v = ZOOM_options_getl(opt->parent2, name, lenp); + return v; +} + +ZOOM_API(const char *) +ZOOM_options_get (ZOOM_options opt, const char *name) +{ + int dummy; + return ZOOM_options_getl(opt, name, &dummy); +} + +ZOOM_API(int) +ZOOM_options_get_bool (ZOOM_options opt, const char *name, int defa) +{ + const char *v = ZOOM_options_get (opt, name); + + if (!v) + return defa; + if (!strcmp (v, "1") || !strcmp(v, "T")) + return 1; + return 0; +} + +ZOOM_API(int) +ZOOM_options_get_int (ZOOM_options opt, const char *name, int defa) +{ + const char *v = ZOOM_options_get (opt, name); + + if (!v || !*v) + return defa; + return atoi(v); +} + +ZOOM_API(void) +ZOOM_options_set_int(ZOOM_options opt, const char *name, int value) +{ + char s[40]; + + sprintf (s, "%d", value); + ZOOM_options_set (opt, name, s); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/src/zoom-p.h b/dependencies/yaz-2.1.28/src/zoom-p.h new file mode 100644 index 0000000..89fc4c1 --- /dev/null +++ b/dependencies/yaz-2.1.28/src/zoom-p.h @@ -0,0 +1,198 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: zoom-p.h,v 1.12 2006/08/08 20:58:52 adam Exp $ + */ +/** + * \file zoom-p.h + * \brief Internal header for ZOOM implementation + */ + +#include +#include +#include +#include +#include +typedef struct ZOOM_Event_p *ZOOM_Event; + +struct ZOOM_query_p { + Z_Query *z_query; + Z_SortKeySpecList *sort_spec; + int refcount; + ODR odr; + char *query_string; +}; + +typedef enum { + zoom_sru_error, + zoom_sru_soap, + zoom_sru_get, + zoom_sru_post, +} zoom_sru_mode; + + +typedef struct ZOOM_task_p *ZOOM_task; + +#define STATE_IDLE 0 +#define STATE_CONNECTING 1 +#define STATE_ESTABLISHED 2 + +#define ZOOM_SELECT_READ 1 +#define ZOOM_SELECT_WRITE 2 +#define ZOOM_SELECT_EXCEPT 4 + +struct ZOOM_connection_p { + enum oid_proto proto; + COMSTACK cs; + char *host_port; + char *path; + int error; + char *addinfo; + char *diagset; + int state; + int mask; + int reconnect_ok; + ODR odr_in; + ODR odr_out; + char *buf_in; + int len_in; + char *buf_out; + int len_out; + char *proxy; + char *charset; + char *lang; + char *cookie_out; + char *cookie_in; + char *client_IP; + int async; + int support_named_resultsets; + int last_event; + ZOOM_task tasks; + ZOOM_options options; + ZOOM_resultset resultsets; + ZOOM_Event m_queue_front; + ZOOM_Event m_queue_back; + zoom_sru_mode sru_mode; +}; + +struct ZOOM_options_entry { + char *name; + char *value; + int len; /* of `value', which may contain NULs */ + struct ZOOM_options_entry *next; +}; + +struct ZOOM_options_p { + int refcount; + void *callback_handle; + ZOOM_options_callback callback_func; + struct ZOOM_options_entry *entries; + ZOOM_options parent1; + ZOOM_options parent2; +}; + + +typedef struct ZOOM_record_cache_p *ZOOM_record_cache; + +#define RECORD_HASH_SIZE 131 + +struct ZOOM_resultset_p { + Z_SortKeySpecList *r_sort_spec; + ZOOM_query query; + int refcount; + int size; + int step; + int piggyback; + char *setname; + char *schema; + ODR odr; + ZOOM_record_cache record_hash[RECORD_HASH_SIZE]; + ZOOM_options options; + ZOOM_connection connection; + ZOOM_resultset next; +}; + +struct ZOOM_record_p { + ODR odr; + WRBUF wrbuf_marc; + WRBUF wrbuf_iconv; + WRBUF wrbuf_opac; + Z_NamePlusRecord *npr; +}; + +struct ZOOM_record_cache_p { + struct ZOOM_record_p rec; + char *elementSetName; + char *syntax; + char *schema; + int pos; + ZOOM_record_cache next; +}; + +struct ZOOM_scanset_p { + int refcount; + ODR odr; + ZOOM_options options; + ZOOM_connection connection; + Z_AttributesPlusTerm *termListAndStartPoint; + Z_AttributeSetId *attributeSet; + Z_ScanResponse *scan_response; +}; + +struct ZOOM_package_p { + int refcount; + ODR odr_out; + ZOOM_options options; + ZOOM_connection connection; + char *buf_out; + int len_out; +}; + +struct ZOOM_task_p { + int running; + int which; + union { +#define ZOOM_TASK_SEARCH 1 + struct { + int count; + int start; + ZOOM_resultset resultset; + } search; +#define ZOOM_TASK_RETRIEVE 2 + struct { + int start; + ZOOM_resultset resultset; + int count; + } retrieve; +#define ZOOM_TASK_CONNECT 3 +#define ZOOM_TASK_SCAN 4 + struct { + ZOOM_scanset scan; + } scan; +#define ZOOM_TASK_PACKAGE 5 + ZOOM_package package; +#define ZOOM_TASK_SORT 6 + struct { + ZOOM_resultset resultset; + ZOOM_query q; + } sort; + } u; + ZOOM_task next; +}; + +struct ZOOM_Event_p { + int kind; + ZOOM_Event next; + ZOOM_Event prev; +}; + +void ZOOM_options_addref (ZOOM_options opt); +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/Makefile.am b/dependencies/yaz-2.1.28/test/Makefile.am new file mode 100644 index 0000000..fd51a52 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/Makefile.am @@ -0,0 +1,64 @@ +## Copyright (C) 1994-2006, Index Data ApS +## All rights reserved. +## $Id: Makefile.am,v 1.26 2006/08/28 12:34:42 adam Exp $ + +check_PROGRAMS = tsticonv tstnmem tstmatchstr tstwrbuf tstodr tstccl tstlog \ + tstsoap1 tstsoap2 tstodrstack tstlogthread tstxmlquery tstpquery \ + nfatest1 nfaxmltest1 \ + tst_filepath tst_record_conv tst_retrieval tst_tpath +check_SCRIPTS = tstcql.sh tstmarciso.sh tstmarcxml.sh tstmarccol.sh + +TESTS = $(check_PROGRAMS) $(check_SCRIPTS) + +EXTRA_DIST = tstodr.asn tstodrcodec.c tstodrcodec.h cqlsample \ + cql2pqf-order.txt \ + $(check_SCRIPTS) \ + marc1.marc marc1.xml marc1.chr marc1.xml.marc \ + marc2.marc marc2.xml marc2.chr marc2.xml.marc \ + marc3.marc marc3.xml marc3.chr marc3.xml.marc \ + marc4.marc marc4.xml marc4.chr marc4.xml.marc \ + marc5.marc marc5.xml marc5.chr marc5.xml.marc \ + marc6.marc marc6.xml marc6.chr marc6.xml.marc \ + marc7.marc marc7.xml marc7.chr marc7.xml.marc \ + marccol1.u8.marc marccol1.u8.1.lst marccol1.u8.2.lst \ + tst_record_conv.xsl + +YAZCOMP = ../util/yaz-asncomp +YAZCOMPLINE = $(YAZCOMP) -d z.tcl -i yaz -I../include $(YCFLAGS) + +AM_CFLAGS=$(THREAD_CFLAGS) + +AM_CPPFLAGS=-I$(top_srcdir)/include $(XML2_CFLAGS) + +dist-hook: + mkdir -p $(distdir)/cql + cp $(srcdir)/cql/*.err $(distdir)/cql + cp $(srcdir)/cql/*.out $(distdir)/cql + +# Rule for generating codecs for our small ASN.1 spec +tstodrcodec.c tstodrcodec.h: tstodr.asn $(YAZCOMP) + cd $(srcdir); $(YAZCOMP) tstodr.asn + +LDADD = ../src/libyaz.la + +CONFIG_CLEAN_FILES=*.log + +tsticonv_SOURCES = tsticonv.c +tstnmem_SOURCES = tstnmem.c +tstmatchstr_SOURCES = tstmatchstr.c +tstwrbuf_SOURCES = tstwrbuf.c +tstodr_SOURCES = tstodrcodec.c tstodrcodec.h tstodr.c +tstodrstack_SOURCES = tstodrstack.c +tstccl_SOURCES = tstccl.c +tstlog_SOURCES = tstlog.c +tstsoap1_SOURCES = tstsoap1.c +tstsoap2_SOURCES = tstsoap2.c +tstlogthread_SOURCES = tstlogthread.c +tstxmlquery_SOURCES = tstxmlquery.c +tstpquery_SOURCES = tstpquery.c +nfatest1_SOURCES = nfatest1.c +nfaxmltest1_SOURCES = nfaxmltest1.c +tst_filepath_SOURCES = tst_filepath.c +tst_record_conv_SOURCES = tst_record_conv.c +tst_retrieval_SOURCES = tst_retrieval.c +tst_tpath_SOURCES = tst_tpath.c diff --git a/dependencies/yaz-2.1.28/test/Makefile.in b/dependencies/yaz-2.1.28/test/Makefile.in new file mode 100644 index 0000000..76ed4b8 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/Makefile.in @@ -0,0 +1,747 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +SOURCES = $(nfatest1_SOURCES) $(nfaxmltest1_SOURCES) $(tst_filepath_SOURCES) $(tst_record_conv_SOURCES) $(tst_retrieval_SOURCES) $(tst_tpath_SOURCES) $(tstccl_SOURCES) $(tsticonv_SOURCES) $(tstlog_SOURCES) $(tstlogthread_SOURCES) $(tstmatchstr_SOURCES) $(tstnmem_SOURCES) $(tstodr_SOURCES) $(tstodrstack_SOURCES) $(tstpquery_SOURCES) $(tstsoap1_SOURCES) $(tstsoap2_SOURCES) $(tstwrbuf_SOURCES) $(tstxmlquery_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +check_PROGRAMS = tsticonv$(EXEEXT) tstnmem$(EXEEXT) \ + tstmatchstr$(EXEEXT) tstwrbuf$(EXEEXT) tstodr$(EXEEXT) \ + tstccl$(EXEEXT) tstlog$(EXEEXT) tstsoap1$(EXEEXT) \ + tstsoap2$(EXEEXT) tstodrstack$(EXEEXT) tstlogthread$(EXEEXT) \ + tstxmlquery$(EXEEXT) tstpquery$(EXEEXT) nfatest1$(EXEEXT) \ + nfaxmltest1$(EXEEXT) tst_filepath$(EXEEXT) \ + tst_record_conv$(EXEEXT) tst_retrieval$(EXEEXT) \ + tst_tpath$(EXEEXT) +subdir = test +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +am_nfatest1_OBJECTS = nfatest1.$(OBJEXT) +nfatest1_OBJECTS = $(am_nfatest1_OBJECTS) +nfatest1_LDADD = $(LDADD) +nfatest1_DEPENDENCIES = ../src/libyaz.la +am_nfaxmltest1_OBJECTS = nfaxmltest1.$(OBJEXT) +nfaxmltest1_OBJECTS = $(am_nfaxmltest1_OBJECTS) +nfaxmltest1_LDADD = $(LDADD) +nfaxmltest1_DEPENDENCIES = ../src/libyaz.la +am_tst_filepath_OBJECTS = tst_filepath.$(OBJEXT) +tst_filepath_OBJECTS = $(am_tst_filepath_OBJECTS) +tst_filepath_LDADD = $(LDADD) +tst_filepath_DEPENDENCIES = ../src/libyaz.la +am_tst_record_conv_OBJECTS = tst_record_conv.$(OBJEXT) +tst_record_conv_OBJECTS = $(am_tst_record_conv_OBJECTS) +tst_record_conv_LDADD = $(LDADD) +tst_record_conv_DEPENDENCIES = ../src/libyaz.la +am_tst_retrieval_OBJECTS = tst_retrieval.$(OBJEXT) +tst_retrieval_OBJECTS = $(am_tst_retrieval_OBJECTS) +tst_retrieval_LDADD = $(LDADD) +tst_retrieval_DEPENDENCIES = ../src/libyaz.la +am_tst_tpath_OBJECTS = tst_tpath.$(OBJEXT) +tst_tpath_OBJECTS = $(am_tst_tpath_OBJECTS) +tst_tpath_LDADD = $(LDADD) +tst_tpath_DEPENDENCIES = ../src/libyaz.la +am_tstccl_OBJECTS = tstccl.$(OBJEXT) +tstccl_OBJECTS = $(am_tstccl_OBJECTS) +tstccl_LDADD = $(LDADD) +tstccl_DEPENDENCIES = ../src/libyaz.la +am_tsticonv_OBJECTS = tsticonv.$(OBJEXT) +tsticonv_OBJECTS = $(am_tsticonv_OBJECTS) +tsticonv_LDADD = $(LDADD) +tsticonv_DEPENDENCIES = ../src/libyaz.la +am_tstlog_OBJECTS = tstlog.$(OBJEXT) +tstlog_OBJECTS = $(am_tstlog_OBJECTS) +tstlog_LDADD = $(LDADD) +tstlog_DEPENDENCIES = ../src/libyaz.la +am_tstlogthread_OBJECTS = tstlogthread.$(OBJEXT) +tstlogthread_OBJECTS = $(am_tstlogthread_OBJECTS) +tstlogthread_LDADD = $(LDADD) +tstlogthread_DEPENDENCIES = ../src/libyaz.la +am_tstmatchstr_OBJECTS = tstmatchstr.$(OBJEXT) +tstmatchstr_OBJECTS = $(am_tstmatchstr_OBJECTS) +tstmatchstr_LDADD = $(LDADD) +tstmatchstr_DEPENDENCIES = ../src/libyaz.la +am_tstnmem_OBJECTS = tstnmem.$(OBJEXT) +tstnmem_OBJECTS = $(am_tstnmem_OBJECTS) +tstnmem_LDADD = $(LDADD) +tstnmem_DEPENDENCIES = ../src/libyaz.la +am_tstodr_OBJECTS = tstodrcodec.$(OBJEXT) tstodr.$(OBJEXT) +tstodr_OBJECTS = $(am_tstodr_OBJECTS) +tstodr_LDADD = $(LDADD) +tstodr_DEPENDENCIES = ../src/libyaz.la +am_tstodrstack_OBJECTS = tstodrstack.$(OBJEXT) +tstodrstack_OBJECTS = $(am_tstodrstack_OBJECTS) +tstodrstack_LDADD = $(LDADD) +tstodrstack_DEPENDENCIES = ../src/libyaz.la +am_tstpquery_OBJECTS = tstpquery.$(OBJEXT) +tstpquery_OBJECTS = $(am_tstpquery_OBJECTS) +tstpquery_LDADD = $(LDADD) +tstpquery_DEPENDENCIES = ../src/libyaz.la +am_tstsoap1_OBJECTS = tstsoap1.$(OBJEXT) +tstsoap1_OBJECTS = $(am_tstsoap1_OBJECTS) +tstsoap1_LDADD = $(LDADD) +tstsoap1_DEPENDENCIES = ../src/libyaz.la +am_tstsoap2_OBJECTS = tstsoap2.$(OBJEXT) +tstsoap2_OBJECTS = $(am_tstsoap2_OBJECTS) +tstsoap2_LDADD = $(LDADD) +tstsoap2_DEPENDENCIES = ../src/libyaz.la +am_tstwrbuf_OBJECTS = tstwrbuf.$(OBJEXT) +tstwrbuf_OBJECTS = $(am_tstwrbuf_OBJECTS) +tstwrbuf_LDADD = $(LDADD) +tstwrbuf_DEPENDENCIES = ../src/libyaz.la +am_tstxmlquery_OBJECTS = tstxmlquery.$(OBJEXT) +tstxmlquery_OBJECTS = $(am_tstxmlquery_OBJECTS) +tstxmlquery_LDADD = $(LDADD) +tstxmlquery_DEPENDENCIES = ../src/libyaz.la +DEFAULT_INCLUDES = -I. -I$(srcdir) +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/nfatest1.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/nfaxmltest1.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tst_filepath.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tst_record_conv.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tst_retrieval.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tst_tpath.Po ./$(DEPDIR)/tstccl.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tsticonv.Po ./$(DEPDIR)/tstlog.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstlogthread.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstmatchstr.Po ./$(DEPDIR)/tstnmem.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstodr.Po ./$(DEPDIR)/tstodrcodec.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstodrstack.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstpquery.Po ./$(DEPDIR)/tstsoap1.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstsoap2.Po ./$(DEPDIR)/tstwrbuf.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/tstxmlquery.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(nfatest1_SOURCES) $(nfaxmltest1_SOURCES) \ + $(tst_filepath_SOURCES) $(tst_record_conv_SOURCES) \ + $(tst_retrieval_SOURCES) $(tst_tpath_SOURCES) \ + $(tstccl_SOURCES) $(tsticonv_SOURCES) $(tstlog_SOURCES) \ + $(tstlogthread_SOURCES) $(tstmatchstr_SOURCES) \ + $(tstnmem_SOURCES) $(tstodr_SOURCES) $(tstodrstack_SOURCES) \ + $(tstpquery_SOURCES) $(tstsoap1_SOURCES) $(tstsoap2_SOURCES) \ + $(tstwrbuf_SOURCES) $(tstxmlquery_SOURCES) +DIST_SOURCES = $(nfatest1_SOURCES) $(nfaxmltest1_SOURCES) \ + $(tst_filepath_SOURCES) $(tst_record_conv_SOURCES) \ + $(tst_retrieval_SOURCES) $(tst_tpath_SOURCES) \ + $(tstccl_SOURCES) $(tsticonv_SOURCES) $(tstlog_SOURCES) \ + $(tstlogthread_SOURCES) $(tstmatchstr_SOURCES) \ + $(tstnmem_SOURCES) $(tstodr_SOURCES) $(tstodrstack_SOURCES) \ + $(tstpquery_SOURCES) $(tstsoap1_SOURCES) $(tstsoap2_SOURCES) \ + $(tstwrbuf_SOURCES) $(tstxmlquery_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +check_SCRIPTS = tstcql.sh tstmarciso.sh tstmarcxml.sh tstmarccol.sh +TESTS = $(check_PROGRAMS) $(check_SCRIPTS) +EXTRA_DIST = tstodr.asn tstodrcodec.c tstodrcodec.h cqlsample \ + cql2pqf-order.txt \ + $(check_SCRIPTS) \ + marc1.marc marc1.xml marc1.chr marc1.xml.marc \ + marc2.marc marc2.xml marc2.chr marc2.xml.marc \ + marc3.marc marc3.xml marc3.chr marc3.xml.marc \ + marc4.marc marc4.xml marc4.chr marc4.xml.marc \ + marc5.marc marc5.xml marc5.chr marc5.xml.marc \ + marc6.marc marc6.xml marc6.chr marc6.xml.marc \ + marc7.marc marc7.xml marc7.chr marc7.xml.marc \ + marccol1.u8.marc marccol1.u8.1.lst marccol1.u8.2.lst \ + tst_record_conv.xsl + +YAZCOMP = ../util/yaz-asncomp +YAZCOMPLINE = $(YAZCOMP) -d z.tcl -i yaz -I../include $(YCFLAGS) +AM_CFLAGS = $(THREAD_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir)/include $(XML2_CFLAGS) +LDADD = ../src/libyaz.la +CONFIG_CLEAN_FILES = *.log +tsticonv_SOURCES = tsticonv.c +tstnmem_SOURCES = tstnmem.c +tstmatchstr_SOURCES = tstmatchstr.c +tstwrbuf_SOURCES = tstwrbuf.c +tstodr_SOURCES = tstodrcodec.c tstodrcodec.h tstodr.c +tstodrstack_SOURCES = tstodrstack.c +tstccl_SOURCES = tstccl.c +tstlog_SOURCES = tstlog.c +tstsoap1_SOURCES = tstsoap1.c +tstsoap2_SOURCES = tstsoap2.c +tstlogthread_SOURCES = tstlogthread.c +tstxmlquery_SOURCES = tstxmlquery.c +tstpquery_SOURCES = tstpquery.c +nfatest1_SOURCES = nfatest1.c +nfaxmltest1_SOURCES = nfaxmltest1.c +tst_filepath_SOURCES = tst_filepath.c +tst_record_conv_SOURCES = tst_record_conv.c +tst_retrieval_SOURCES = tst_retrieval.c +tst_tpath_SOURCES = tst_tpath.c +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu test/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +nfatest1$(EXEEXT): $(nfatest1_OBJECTS) $(nfatest1_DEPENDENCIES) + @rm -f nfatest1$(EXEEXT) + $(LINK) $(nfatest1_LDFLAGS) $(nfatest1_OBJECTS) $(nfatest1_LDADD) $(LIBS) +nfaxmltest1$(EXEEXT): $(nfaxmltest1_OBJECTS) $(nfaxmltest1_DEPENDENCIES) + @rm -f nfaxmltest1$(EXEEXT) + $(LINK) $(nfaxmltest1_LDFLAGS) $(nfaxmltest1_OBJECTS) $(nfaxmltest1_LDADD) $(LIBS) +tst_filepath$(EXEEXT): $(tst_filepath_OBJECTS) $(tst_filepath_DEPENDENCIES) + @rm -f tst_filepath$(EXEEXT) + $(LINK) $(tst_filepath_LDFLAGS) $(tst_filepath_OBJECTS) $(tst_filepath_LDADD) $(LIBS) +tst_record_conv$(EXEEXT): $(tst_record_conv_OBJECTS) $(tst_record_conv_DEPENDENCIES) + @rm -f tst_record_conv$(EXEEXT) + $(LINK) $(tst_record_conv_LDFLAGS) $(tst_record_conv_OBJECTS) $(tst_record_conv_LDADD) $(LIBS) +tst_retrieval$(EXEEXT): $(tst_retrieval_OBJECTS) $(tst_retrieval_DEPENDENCIES) + @rm -f tst_retrieval$(EXEEXT) + $(LINK) $(tst_retrieval_LDFLAGS) $(tst_retrieval_OBJECTS) $(tst_retrieval_LDADD) $(LIBS) +tst_tpath$(EXEEXT): $(tst_tpath_OBJECTS) $(tst_tpath_DEPENDENCIES) + @rm -f tst_tpath$(EXEEXT) + $(LINK) $(tst_tpath_LDFLAGS) $(tst_tpath_OBJECTS) $(tst_tpath_LDADD) $(LIBS) +tstccl$(EXEEXT): $(tstccl_OBJECTS) $(tstccl_DEPENDENCIES) + @rm -f tstccl$(EXEEXT) + $(LINK) $(tstccl_LDFLAGS) $(tstccl_OBJECTS) $(tstccl_LDADD) $(LIBS) +tsticonv$(EXEEXT): $(tsticonv_OBJECTS) $(tsticonv_DEPENDENCIES) + @rm -f tsticonv$(EXEEXT) + $(LINK) $(tsticonv_LDFLAGS) $(tsticonv_OBJECTS) $(tsticonv_LDADD) $(LIBS) +tstlog$(EXEEXT): $(tstlog_OBJECTS) $(tstlog_DEPENDENCIES) + @rm -f tstlog$(EXEEXT) + $(LINK) $(tstlog_LDFLAGS) $(tstlog_OBJECTS) $(tstlog_LDADD) $(LIBS) +tstlogthread$(EXEEXT): $(tstlogthread_OBJECTS) $(tstlogthread_DEPENDENCIES) + @rm -f tstlogthread$(EXEEXT) + $(LINK) $(tstlogthread_LDFLAGS) $(tstlogthread_OBJECTS) $(tstlogthread_LDADD) $(LIBS) +tstmatchstr$(EXEEXT): $(tstmatchstr_OBJECTS) $(tstmatchstr_DEPENDENCIES) + @rm -f tstmatchstr$(EXEEXT) + $(LINK) $(tstmatchstr_LDFLAGS) $(tstmatchstr_OBJECTS) $(tstmatchstr_LDADD) $(LIBS) +tstnmem$(EXEEXT): $(tstnmem_OBJECTS) $(tstnmem_DEPENDENCIES) + @rm -f tstnmem$(EXEEXT) + $(LINK) $(tstnmem_LDFLAGS) $(tstnmem_OBJECTS) $(tstnmem_LDADD) $(LIBS) +tstodr$(EXEEXT): $(tstodr_OBJECTS) $(tstodr_DEPENDENCIES) + @rm -f tstodr$(EXEEXT) + $(LINK) $(tstodr_LDFLAGS) $(tstodr_OBJECTS) $(tstodr_LDADD) $(LIBS) +tstodrstack$(EXEEXT): $(tstodrstack_OBJECTS) $(tstodrstack_DEPENDENCIES) + @rm -f tstodrstack$(EXEEXT) + $(LINK) $(tstodrstack_LDFLAGS) $(tstodrstack_OBJECTS) $(tstodrstack_LDADD) $(LIBS) +tstpquery$(EXEEXT): $(tstpquery_OBJECTS) $(tstpquery_DEPENDENCIES) + @rm -f tstpquery$(EXEEXT) + $(LINK) $(tstpquery_LDFLAGS) $(tstpquery_OBJECTS) $(tstpquery_LDADD) $(LIBS) +tstsoap1$(EXEEXT): $(tstsoap1_OBJECTS) $(tstsoap1_DEPENDENCIES) + @rm -f tstsoap1$(EXEEXT) + $(LINK) $(tstsoap1_LDFLAGS) $(tstsoap1_OBJECTS) $(tstsoap1_LDADD) $(LIBS) +tstsoap2$(EXEEXT): $(tstsoap2_OBJECTS) $(tstsoap2_DEPENDENCIES) + @rm -f tstsoap2$(EXEEXT) + $(LINK) $(tstsoap2_LDFLAGS) $(tstsoap2_OBJECTS) $(tstsoap2_LDADD) $(LIBS) +tstwrbuf$(EXEEXT): $(tstwrbuf_OBJECTS) $(tstwrbuf_DEPENDENCIES) + @rm -f tstwrbuf$(EXEEXT) + $(LINK) $(tstwrbuf_LDFLAGS) $(tstwrbuf_OBJECTS) $(tstwrbuf_LDADD) $(LIBS) +tstxmlquery$(EXEEXT): $(tstxmlquery_OBJECTS) $(tstxmlquery_DEPENDENCIES) + @rm -f tstxmlquery$(EXEEXT) + $(LINK) $(tstxmlquery_LDFLAGS) $(tstxmlquery_OBJECTS) $(tstxmlquery_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfatest1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfaxmltest1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_filepath.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_record_conv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_retrieval.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_tpath.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstccl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tsticonv.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstlog.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstlogthread.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstmatchstr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstnmem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstodr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstodrcodec.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstodrstack.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstpquery.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstsoap1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstsoap2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstwrbuf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tstxmlquery.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list='$(TESTS)'; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am + + +dist-hook: + mkdir -p $(distdir)/cql + cp $(srcdir)/cql/*.err $(distdir)/cql + cp $(srcdir)/cql/*.out $(distdir)/cql + +# Rule for generating codecs for our small ASN.1 spec +tstodrcodec.c tstodrcodec.h: tstodr.asn $(YAZCOMP) + cd $(srcdir); $(YAZCOMP) tstodr.asn +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/test/cql/1.1.err b/dependencies/yaz-2.1.28/test/cql/1.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.1.out b/dependencies/yaz-2.1.28/test/cql/1.1.out new file mode 100644 index 0000000..04e6f3f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.1.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat + diff --git a/dependencies/yaz-2.1.28/test/cql/1.10.err b/dependencies/yaz-2.1.28/test/cql/1.10.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.10.out b/dependencies/yaz-2.1.28/test/cql/1.10.out new file mode 100644 index 0000000..a44a871 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.10.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + all + diff --git a/dependencies/yaz-2.1.28/test/cql/1.11.err b/dependencies/yaz-2.1.28/test/cql/1.11.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.11.out b/dependencies/yaz-2.1.28/test/cql/1.11.out new file mode 100644 index 0000000..6aa73cd --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.11.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + prox + diff --git a/dependencies/yaz-2.1.28/test/cql/1.2.err b/dependencies/yaz-2.1.28/test/cql/1.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.2.out b/dependencies/yaz-2.1.28/test/cql/1.2.out new file mode 100644 index 0000000..04e6f3f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.2.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat + diff --git a/dependencies/yaz-2.1.28/test/cql/1.3.err b/dependencies/yaz-2.1.28/test/cql/1.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.3.out b/dependencies/yaz-2.1.28/test/cql/1.3.out new file mode 100644 index 0000000..216c15c --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.3.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + comp.os.linux + diff --git a/dependencies/yaz-2.1.28/test/cql/1.4.err b/dependencies/yaz-2.1.28/test/cql/1.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.4.out b/dependencies/yaz-2.1.28/test/cql/1.4.out new file mode 100644 index 0000000..9b2ab93 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.4.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + ml:element + diff --git a/dependencies/yaz-2.1.28/test/cql/1.5.err b/dependencies/yaz-2.1.28/test/cql/1.5.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.5.out b/dependencies/yaz-2.1.28/test/cql/1.5.out new file mode 100644 index 0000000..4ce7bc2 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.5.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + <xml:element> + diff --git a/dependencies/yaz-2.1.28/test/cql/1.6.err b/dependencies/yaz-2.1.28/test/cql/1.6.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.6.out b/dependencies/yaz-2.1.28/test/cql/1.6.out new file mode 100644 index 0000000..d7786cb --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.6.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + = + diff --git a/dependencies/yaz-2.1.28/test/cql/1.7.err b/dependencies/yaz-2.1.28/test/cql/1.7.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.7.out b/dependencies/yaz-2.1.28/test/cql/1.7.out new file mode 100644 index 0000000..29742fc --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.7.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + prox/distance<3/unit=word + diff --git a/dependencies/yaz-2.1.28/test/cql/1.8.err b/dependencies/yaz-2.1.28/test/cql/1.8.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.8.out b/dependencies/yaz-2.1.28/test/cql/1.8.out new file mode 100644 index 0000000..04e6f3f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.8.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat + diff --git a/dependencies/yaz-2.1.28/test/cql/1.9.err b/dependencies/yaz-2.1.28/test/cql/1.9.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/1.9.out b/dependencies/yaz-2.1.28/test/cql/1.9.out new file mode 100644 index 0000000..b8cbb85 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/1.9.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + dog + diff --git a/dependencies/yaz-2.1.28/test/cql/10.1.err b/dependencies/yaz-2.1.28/test/cql/10.1.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.1.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.1.out b/dependencies/yaz-2.1.28/test/cql/10.1.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.10.err b/dependencies/yaz-2.1.28/test/cql/10.10.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.10.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.10.out b/dependencies/yaz-2.1.28/test/cql/10.10.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.2.err b/dependencies/yaz-2.1.28/test/cql/10.2.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.2.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.2.out b/dependencies/yaz-2.1.28/test/cql/10.2.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.3.err b/dependencies/yaz-2.1.28/test/cql/10.3.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.3.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.3.out b/dependencies/yaz-2.1.28/test/cql/10.3.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.4.err b/dependencies/yaz-2.1.28/test/cql/10.4.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.4.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.4.out b/dependencies/yaz-2.1.28/test/cql/10.4.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.5.err b/dependencies/yaz-2.1.28/test/cql/10.5.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.5.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.5.out b/dependencies/yaz-2.1.28/test/cql/10.5.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.6.err b/dependencies/yaz-2.1.28/test/cql/10.6.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.6.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.6.out b/dependencies/yaz-2.1.28/test/cql/10.6.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.7.err b/dependencies/yaz-2.1.28/test/cql/10.7.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.7.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.7.out b/dependencies/yaz-2.1.28/test/cql/10.7.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.8.err b/dependencies/yaz-2.1.28/test/cql/10.8.err new file mode 100644 index 0000000..f83d884 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.8.err @@ -0,0 +1 @@ +Syntax error diff --git a/dependencies/yaz-2.1.28/test/cql/10.8.out b/dependencies/yaz-2.1.28/test/cql/10.8.out new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.9.err b/dependencies/yaz-2.1.28/test/cql/10.9.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/10.9.out b/dependencies/yaz-2.1.28/test/cql/10.9.out new file mode 100644 index 0000000..e910b08 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/10.9.out @@ -0,0 +1,7 @@ + + title + + = + + illegal parentheses + diff --git a/dependencies/yaz-2.1.28/test/cql/2.1.err b/dependencies/yaz-2.1.28/test/cql/2.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.1.out b/dependencies/yaz-2.1.28/test/cql/2.1.out new file mode 100644 index 0000000..be3c9c1 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.1.out @@ -0,0 +1,7 @@ + + title + + = + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/2.10.err b/dependencies/yaz-2.1.28/test/cql/2.10.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.10.out b/dependencies/yaz-2.1.28/test/cql/2.10.out new file mode 100644 index 0000000..d7dfe7a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.10.out @@ -0,0 +1,7 @@ + + title + + any + + frog + diff --git a/dependencies/yaz-2.1.28/test/cql/2.11.err b/dependencies/yaz-2.1.28/test/cql/2.11.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.11.out b/dependencies/yaz-2.1.28/test/cql/2.11.out new file mode 100644 index 0000000..bc04886 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.11.out @@ -0,0 +1,13 @@ + + dc.title + + any + + + stem + = + + + + frog pond + diff --git a/dependencies/yaz-2.1.28/test/cql/2.12.err b/dependencies/yaz-2.1.28/test/cql/2.12.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.12.out b/dependencies/yaz-2.1.28/test/cql/2.12.out new file mode 100644 index 0000000..a648cc5 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.12.out @@ -0,0 +1,7 @@ + + dc.title + + scr + + fish frog chicken + diff --git a/dependencies/yaz-2.1.28/test/cql/2.13.err b/dependencies/yaz-2.1.28/test/cql/2.13.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.13.out b/dependencies/yaz-2.1.28/test/cql/2.13.out new file mode 100644 index 0000000..4e66231 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.13.out @@ -0,0 +1,14 @@ + + dc.title + + = + + + rel.algorithm + = + CORI + + + + squid + diff --git a/dependencies/yaz-2.1.28/test/cql/2.14.err b/dependencies/yaz-2.1.28/test/cql/2.14.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.14.out b/dependencies/yaz-2.1.28/test/cql/2.14.out new file mode 100644 index 0000000..e1e02a8 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.14.out @@ -0,0 +1,18 @@ + + creator + + any + + + b.bar + > + 1 + + + f.foo + = + + + + sanderson taylor + diff --git a/dependencies/yaz-2.1.28/test/cql/2.2.err b/dependencies/yaz-2.1.28/test/cql/2.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.2.out b/dependencies/yaz-2.1.28/test/cql/2.2.out new file mode 100644 index 0000000..2b78ddf --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.2.out @@ -0,0 +1,7 @@ + + title + + exact + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/2.3.err b/dependencies/yaz-2.1.28/test/cql/2.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.3.out b/dependencies/yaz-2.1.28/test/cql/2.3.out new file mode 100644 index 0000000..62521be --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.3.out @@ -0,0 +1,7 @@ + + title + + any + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/2.4.err b/dependencies/yaz-2.1.28/test/cql/2.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.4.out b/dependencies/yaz-2.1.28/test/cql/2.4.out new file mode 100644 index 0000000..646c973 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.4.out @@ -0,0 +1,7 @@ + + title + + all + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/2.5.err b/dependencies/yaz-2.1.28/test/cql/2.5.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.5.out b/dependencies/yaz-2.1.28/test/cql/2.5.out new file mode 100644 index 0000000..92411c4 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.5.out @@ -0,0 +1,7 @@ + + title + + > + + 9 + diff --git a/dependencies/yaz-2.1.28/test/cql/2.6.err b/dependencies/yaz-2.1.28/test/cql/2.6.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.6.out b/dependencies/yaz-2.1.28/test/cql/2.6.out new file mode 100644 index 0000000..6702471 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.6.out @@ -0,0 +1,7 @@ + + title + + >= + + 23 + diff --git a/dependencies/yaz-2.1.28/test/cql/2.7.err b/dependencies/yaz-2.1.28/test/cql/2.7.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.7.out b/dependencies/yaz-2.1.28/test/cql/2.7.out new file mode 100644 index 0000000..ba4ac78 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.7.out @@ -0,0 +1,7 @@ + + dc.title + + any + + fish chips + diff --git a/dependencies/yaz-2.1.28/test/cql/2.8.err b/dependencies/yaz-2.1.28/test/cql/2.8.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.8.out b/dependencies/yaz-2.1.28/test/cql/2.8.out new file mode 100644 index 0000000..3f45441 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.8.out @@ -0,0 +1,13 @@ + + dc.title + + any + + + stem + = + + + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/2.9.err b/dependencies/yaz-2.1.28/test/cql/2.9.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/2.9.out b/dependencies/yaz-2.1.28/test/cql/2.9.out new file mode 100644 index 0000000..1222fac --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/2.9.out @@ -0,0 +1,17 @@ + + dc.fish + + all + + + fuzzy + = + + + stem + = + + + + fish chips + diff --git a/dependencies/yaz-2.1.28/test/cql/3.1.err b/dependencies/yaz-2.1.28/test/cql/3.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.1.out b/dependencies/yaz-2.1.28/test/cql/3.1.out new file mode 100644 index 0000000..de0acae --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.1.out @@ -0,0 +1,23 @@ + + + or + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + dog + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.2.err b/dependencies/yaz-2.1.28/test/cql/3.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.2.out b/dependencies/yaz-2.1.28/test/cql/3.2.out new file mode 100644 index 0000000..f5dba0b --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.2.out @@ -0,0 +1,23 @@ + + + and + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + fish + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.3.err b/dependencies/yaz-2.1.28/test/cql/3.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.3.out b/dependencies/yaz-2.1.28/test/cql/3.3.out new file mode 100644 index 0000000..895ee06 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.3.out @@ -0,0 +1,23 @@ + + + not + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + frog + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.4.err b/dependencies/yaz-2.1.28/test/cql/3.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.4.out b/dependencies/yaz-2.1.28/test/cql/3.4.out new file mode 100644 index 0000000..895ee06 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.4.out @@ -0,0 +1,23 @@ + + + not + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + frog + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.5.err b/dependencies/yaz-2.1.28/test/cql/3.5.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.5.out b/dependencies/yaz-2.1.28/test/cql/3.5.out new file mode 100644 index 0000000..4627440 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.5.out @@ -0,0 +1,23 @@ + + + not + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + fish food + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.6.err b/dependencies/yaz-2.1.28/test/cql/3.6.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.6.out b/dependencies/yaz-2.1.28/test/cql/3.6.out new file mode 100644 index 0000000..049b9d8 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.6.out @@ -0,0 +1,23 @@ + + + and + + + + cql.serverChoice + + scr + + xml + + + + + cql.serverChoice + + scr + + prox/// + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.7.err b/dependencies/yaz-2.1.28/test/cql/3.7.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.7.out b/dependencies/yaz-2.1.28/test/cql/3.7.out new file mode 100644 index 0000000..0a62182 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.7.out @@ -0,0 +1,23 @@ + + + and + + + + cql.serverChoice + + scr + + fred + + + + + cql.serverChoice + + scr + + any + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.8.err b/dependencies/yaz-2.1.28/test/cql/3.8.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.8.out b/dependencies/yaz-2.1.28/test/cql/3.8.out new file mode 100644 index 0000000..d971224 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.8.out @@ -0,0 +1,23 @@ + + + or + + + + cql.serverChoice + + scr + + fred + + + + + cql.serverChoice + + scr + + all + + + diff --git a/dependencies/yaz-2.1.28/test/cql/3.9.err b/dependencies/yaz-2.1.28/test/cql/3.9.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/3.9.out b/dependencies/yaz-2.1.28/test/cql/3.9.out new file mode 100644 index 0000000..9b7f604 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/3.9.out @@ -0,0 +1,55 @@ + + + not + + + + + and + + + + + or + + + + cql.serverChoice + + scr + + a + + + + + cql.serverChoice + + scr + + b + + + + + + + cql.serverChoice + + scr + + c + + + + + + + cql.serverChoice + + scr + + d + + + diff --git a/dependencies/yaz-2.1.28/test/cql/4.1.err b/dependencies/yaz-2.1.28/test/cql/4.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/4.1.out b/dependencies/yaz-2.1.28/test/cql/4.1.out new file mode 100644 index 0000000..6565168 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/4.1.out @@ -0,0 +1,23 @@ + + + and + + + + bath.uniformTitle + + any + + fish + + + + + dc.title + + any + + cat dog + + + diff --git a/dependencies/yaz-2.1.28/test/cql/4.2.err b/dependencies/yaz-2.1.28/test/cql/4.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/4.2.out b/dependencies/yaz-2.1.28/test/cql/4.2.out new file mode 100644 index 0000000..9280263 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/4.2.out @@ -0,0 +1,29 @@ + + + or + + + + title + + any + + + stem + = + + + + fish dog + + + + + cql.serverChoice + + scr + + and + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.1.err b/dependencies/yaz-2.1.28/test/cql/5.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.1.out b/dependencies/yaz-2.1.28/test/cql/5.1.out new file mode 100644 index 0000000..b42c733 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.1.out @@ -0,0 +1,23 @@ + + + prox + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + hat + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.2.err b/dependencies/yaz-2.1.28/test/cql/5.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.2.out b/dependencies/yaz-2.1.28/test/cql/5.2.out new file mode 100644 index 0000000..1ad4e8a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.2.out @@ -0,0 +1,39 @@ + + + prox + + + ordered + = + + + unit + = + word + + + distance + = + 3 + + + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + hat + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.3.err b/dependencies/yaz-2.1.28/test/cql/5.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.3.out b/dependencies/yaz-2.1.28/test/cql/5.3.out new file mode 100644 index 0000000..7700548 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.3.out @@ -0,0 +1,30 @@ + + + prox + + + distance + < + 3 + + + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + hat + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.4.err b/dependencies/yaz-2.1.28/test/cql/5.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.4.out b/dependencies/yaz-2.1.28/test/cql/5.4.out new file mode 100644 index 0000000..5e93079 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.4.out @@ -0,0 +1,30 @@ + + + prox + + + unit + = + sentence + + + + + + cql.serverChoice + + scr + + fish food + + + + + cql.serverChoice + + scr + + and + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.5.err b/dependencies/yaz-2.1.28/test/cql/5.5.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.5.out b/dependencies/yaz-2.1.28/test/cql/5.5.out new file mode 100644 index 0000000..1d03784 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.5.out @@ -0,0 +1,30 @@ + + + prox + + + distance + <= + 5 + + + + + + title + + all + + chips frog + + + + + cql.serverChoice + + scr + + exact + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.6.err b/dependencies/yaz-2.1.28/test/cql/5.6.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.6.out b/dependencies/yaz-2.1.28/test/cql/5.6.out new file mode 100644 index 0000000..20a88e9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.6.out @@ -0,0 +1,35 @@ + + + prox + + + unit + = + element + + + distance + > + 5 + + + + + + dc.author + + exact + + jones + + + + + title + + >= + + smith + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.7.err b/dependencies/yaz-2.1.28/test/cql/5.7.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.7.out b/dependencies/yaz-2.1.28/test/cql/5.7.out new file mode 100644 index 0000000..5274289 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.7.out @@ -0,0 +1,29 @@ + + + and + + + rel.SumOfScores + = + + + + + + cql.serverChoice + + scr + + a + + + + + cql.serverChoice + + scr + + b + + + diff --git a/dependencies/yaz-2.1.28/test/cql/5.8.err b/dependencies/yaz-2.1.28/test/cql/5.8.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/5.8.out b/dependencies/yaz-2.1.28/test/cql/5.8.out new file mode 100644 index 0000000..8759654 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/5.8.out @@ -0,0 +1,30 @@ + + + and + + + rel.algorithm + = + CORI + + + + + + cql.serverChoice + + scr + + a + + + + + cql.serverChoice + + scr + + b + + + diff --git a/dependencies/yaz-2.1.28/test/cql/6.1.err b/dependencies/yaz-2.1.28/test/cql/6.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.1.out b/dependencies/yaz-2.1.28/test/cql/6.1.out new file mode 100644 index 0000000..6e59421 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.1.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat^ + diff --git a/dependencies/yaz-2.1.28/test/cql/6.2.err b/dependencies/yaz-2.1.28/test/cql/6.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.2.out b/dependencies/yaz-2.1.28/test/cql/6.2.out new file mode 100644 index 0000000..04e6f3f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.2.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat + diff --git a/dependencies/yaz-2.1.28/test/cql/6.3.err b/dependencies/yaz-2.1.28/test/cql/6.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.3.out b/dependencies/yaz-2.1.28/test/cql/6.3.out new file mode 100644 index 0000000..7411f1a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.3.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + ^cat says "fish" + diff --git a/dependencies/yaz-2.1.28/test/cql/6.4.err b/dependencies/yaz-2.1.28/test/cql/6.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.4.out b/dependencies/yaz-2.1.28/test/cql/6.4.out new file mode 100644 index 0000000..4c5cf95 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.4.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat*fish + diff --git a/dependencies/yaz-2.1.28/test/cql/6.5.err b/dependencies/yaz-2.1.28/test/cql/6.5.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.5.out b/dependencies/yaz-2.1.28/test/cql/6.5.out new file mode 100644 index 0000000..d82b932 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.5.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + cat?dog + diff --git a/dependencies/yaz-2.1.28/test/cql/6.6.err b/dependencies/yaz-2.1.28/test/cql/6.6.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/6.6.out b/dependencies/yaz-2.1.28/test/cql/6.6.out new file mode 100644 index 0000000..f9851fb --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/6.6.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + ^cat*fishdog"horse? + diff --git a/dependencies/yaz-2.1.28/test/cql/7.1.err b/dependencies/yaz-2.1.28/test/cql/7.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/7.1.out b/dependencies/yaz-2.1.28/test/cql/7.1.out new file mode 100644 index 0000000..e9baec9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/7.1.out @@ -0,0 +1,55 @@ + + + and + + + + + or + + + + + or + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + dog + + + + + + + cql.serverChoice + + scr + + horse + + + + + + + cql.serverChoice + + scr + + frog + + + diff --git a/dependencies/yaz-2.1.28/test/cql/7.2.err b/dependencies/yaz-2.1.28/test/cql/7.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/7.2.out b/dependencies/yaz-2.1.28/test/cql/7.2.out new file mode 100644 index 0000000..8df4539 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/7.2.out @@ -0,0 +1,55 @@ + + + or + + + + + and + + + + cql.serverChoice + + scr + + cat + + + + + cql.serverChoice + + scr + + dog + + + + + + + + and + + + + cql.serverChoice + + scr + + horse + + + + + cql.serverChoice + + scr + + frog + + + + + diff --git a/dependencies/yaz-2.1.28/test/cql/7.3.err b/dependencies/yaz-2.1.28/test/cql/7.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/7.3.out b/dependencies/yaz-2.1.28/test/cql/7.3.out new file mode 100644 index 0000000..3a057fd --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/7.3.out @@ -0,0 +1,55 @@ + + + and + + + + + and + + + + cql.serverChoice + + scr + + cat + + + + + + or + + + + cql.serverChoice + + scr + + horse + + + + + cql.serverChoice + + scr + + frog + + + + + + + + + cql.serverChoice + + scr + + chips + + + diff --git a/dependencies/yaz-2.1.28/test/cql/8.1.err b/dependencies/yaz-2.1.28/test/cql/8.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/8.1.out b/dependencies/yaz-2.1.28/test/cql/8.1.out new file mode 100644 index 0000000..40a273f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/8.1.out @@ -0,0 +1,7 @@ + + dc.title + + = + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/8.2.err b/dependencies/yaz-2.1.28/test/cql/8.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/8.2.out b/dependencies/yaz-2.1.28/test/cql/8.2.out new file mode 100644 index 0000000..b86dbf2 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/8.2.out @@ -0,0 +1,12 @@ + + + + info:srw/cql-context-set/1/dc-v1.1 + + + title + + = + + fish + diff --git a/dependencies/yaz-2.1.28/test/cql/8.3.err b/dependencies/yaz-2.1.28/test/cql/8.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/8.3.out b/dependencies/yaz-2.1.28/test/cql/8.3.out new file mode 100644 index 0000000..68b3a5b --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/8.3.out @@ -0,0 +1,33 @@ + + + and + + + + + + info:srw/cql-context-set/1/dc-v1.1 + + + title + + = + + fish + + + + + + + http://srw.cheshire3.org/contextSets/ccg/1.1/ + + + force + + = + + 3 + + + diff --git a/dependencies/yaz-2.1.28/test/cql/9.1.err b/dependencies/yaz-2.1.28/test/cql/9.1.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/9.1.out b/dependencies/yaz-2.1.28/test/cql/9.1.out new file mode 100644 index 0000000..eac3a28 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/9.1.out @@ -0,0 +1,55 @@ + + + prox + + + + + and + + + + + or + + + + cql.serverChoice + + scr + + any + + + + + cql.serverChoice + + scr + + all:stem + + + + + + + all + + exact + + any + + + + + + + prox + + = + + fuzzy + + + diff --git a/dependencies/yaz-2.1.28/test/cql/9.2.err b/dependencies/yaz-2.1.28/test/cql/9.2.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/9.2.out b/dependencies/yaz-2.1.28/test/cql/9.2.out new file mode 100644 index 0000000..eb0d4a9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/9.2.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + any + diff --git a/dependencies/yaz-2.1.28/test/cql/9.3.err b/dependencies/yaz-2.1.28/test/cql/9.3.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/9.3.out b/dependencies/yaz-2.1.28/test/cql/9.3.out new file mode 100644 index 0000000..ee798ea --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/9.3.out @@ -0,0 +1,7 @@ + + cql.serverChoice + + scr + + + diff --git a/dependencies/yaz-2.1.28/test/cql/9.4.err b/dependencies/yaz-2.1.28/test/cql/9.4.err new file mode 100644 index 0000000..e69de29 diff --git a/dependencies/yaz-2.1.28/test/cql/9.4.out b/dependencies/yaz-2.1.28/test/cql/9.4.out new file mode 100644 index 0000000..f8701ef --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql/9.4.out @@ -0,0 +1,12 @@ + + + + any + + + any + + > + + any + diff --git a/dependencies/yaz-2.1.28/test/cql2pqf-order.txt b/dependencies/yaz-2.1.28/test/cql2pqf-order.txt new file mode 100644 index 0000000..e28fea3 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cql2pqf-order.txt @@ -0,0 +1,28 @@ +# $Id: cql2pqf-order.txt,v 1.1 2006/07/05 14:45:57 adam Exp $ +# +# cql2pqf spec which tests evaluation order of rules +# Identifiers for prefixes used in this file. (index.*) +set.cql = info:srw/cql-context-set/1/cql-v1.1 +set.rec = info:srw/cql-context-set/2/rec-1.0 +set.dc = info:srw/cql-context-set/1/dc-v1.1 + +# default set (in query) +set = info:srw/cql-context-set/1/dc-v1.1 + +# The default access point and result-set references + +index.dc.title = 1=index + +relation.eq = 2=relation + +relationModifier.relevant = 3=modifier + +position.any = 4=position + + +structure.* = 5=structure + +truncation.none = 6=truncation + +always = 7=always + diff --git a/dependencies/yaz-2.1.28/test/cqlsample b/dependencies/yaz-2.1.28/test/cqlsample new file mode 100644 index 0000000..afda75a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/cqlsample @@ -0,0 +1,104 @@ +# $Id: cqlsample,v 1.2 2004/03/10 18:50:56 adam Exp $ +# CQL queries for testing. +# from http://www.loc.gov/z3950/agency/zing/cql/sample-queries.html +# Simple Term + +cat +"cat" +comp.os.linux +ml:element +"" +"=" +"prox/distance<3/unit=word" +("cat") +((dog)) +all +prox + +# Index Relation Term + +title = "fish" +title exact fish +title any fish +title all fish +title > 9 +title >= 23 +dc.title any "fish chips" +dc.title any/stem fish +dc.fish all/stem/fuzzy "fish chips" +(title any frog) +((dc.title any/stem "frog pond")) +dc.title scr "fish frog chicken" +dc.title =/rel.algorithm=CORI squid +creator any/f.foo/b.bar>1 "sanderson taylor" + +# Simple Boolean + +cat or dog +cat and fish +cat not frog +(cat not frog) +"cat" not "fish food" +xml and "prox///" +fred and any +((fred or all)) +a or b and c not d + +# Index Relation Term plus Boolean + +bath.uniformTitle any fish and dc.title any "cat dog" +(title any/stem "fish dog" or and) + +# Proximity and Boolean Modifiers + +cat prox hat +cat prox/distance=3/unit=word/ordered hat +cat prox/distance<3 hat +"fish food" prox/unit=sentence and +title all "chips frog" prox/distance<=5 exact +(dc.author exact "jones" prox/distance>5/unit=element title >= "smith") +a and/rel.SumOfScores b +a and/rel.algorithm=CORI b + +# Special Characters + +(cat^) +"cat" +"^cat says \"fish\"" +"cat*fish" +cat?dog +(("^cat*fishdog\"horse?")) + +# Nesting Parentheses + +(((cat or dog) or horse) and frog) +(cat and dog) or (horse and frog) +(cat and (horse or frog)) and chips + +# Prefix Maps + +> foo="info:srw/cql-context-set/1/dc-v1.1" dc.title="fish" +> "info:srw/cql-context-set/1/dc-v1.1" title="fish" +> foo="info:srw/cql-context-set/1/dc-v1.1" > ccg = "http://srw.cheshire3.org/contextSets/ccg/1.1/" foo.title="fish" and ccg.force=3 + +# Lame Searches + +any or all:stem and all exact any prox prox=fuzzy +(((((((((any))))))))) +"" +> any > any = exact any > any + +# Invalid searches [should error] + +< +=== +missingClause or +missingTerm any +() +(missingParen +missingParen any fish) +(emptyParens or ()) +title = ("illegal parentheses") +> illegal="urn:missingQuery" + + diff --git a/dependencies/yaz-2.1.28/test/marc1.chr b/dependencies/yaz-2.1.28/test/marc1.chr new file mode 100644 index 0000000..328c81e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc1.chr @@ -0,0 +1 @@ +iso-8859-1 diff --git a/dependencies/yaz-2.1.28/test/marc1.marc b/dependencies/yaz-2.1.28/test/marc1.marc new file mode 100644 index 0000000..5df484c --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc1.marc @@ -0,0 +1 @@ +00988nam0 32003011 45 001002800000004001000028008002800038009001100066021002700077032001500104100002100119245005400140250004100194260004000235300002700275504012300302512006000425520005000485652002400535652001600559666001600575666001900591666001500610666001800625666001900643666000900662666001500671000a9 181 423 4b710100fa000rnae000tmuua2002buslengv0000aagxx000a1-4000-4596-7d$14,00000&DBC2004390000aSlomanhLarry000aOn the road with Bob DylaneLarry "Ratso" Sloman000aRevised editionbThree Rivers Press000aNew YorkbThree Rivers Pressc2002000axv, 464 sider, tavler000aLarry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue"000aPå omslaget: With a new introduction by Kinky Friedman000aTidligere: 1. udgave. New York, Bantam, 19780000m99.4aDylanhBob000p78.9064v5000ffolkemusik000ffolkemusikere000frockmusik000frockmusikere000frockkoncerter000eUSA000i1970-1979 \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc1.xml b/dependencies/yaz-2.1.28/test/marc1.xml new file mode 100644 index 0000000..fe6b692 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc1.xml @@ -0,0 +1,93 @@ + + + 00988nam0a32003011 450 + + 9 181 423 4 + 710100 + a + + + n + e + + + m + u + 2002 + us + eng + 0 + + + a + xx + + + 1-4000-4596-7 + $14,00 + + + DBC200439 + + + + Sloman + Larry + + + On the road with Bob Dylan + Larry "Ratso" Sloman + + + Revised edition + Three Rivers Press + + + New York + Three Rivers Press + 2002 + + + xv, 464 sider, tavler + + + Larry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue" + + + PÃ¥ omslaget: With a new introduction by Kinky Friedman + + + Tidligere: 1. udgave. New York, Bantam, 1978 + + + + 99.4 + Dylan + Bob + + + 78.9064 + 5 + + + folkemusik + + + folkemusikere + + + rockmusik + + + rockmusikere + + + rockkoncerter + + + USA + + + 1970-1979 + + diff --git a/dependencies/yaz-2.1.28/test/marc1.xml.marc b/dependencies/yaz-2.1.28/test/marc1.xml.marc new file mode 100644 index 0000000..efc7bdf --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc1.xml.marc @@ -0,0 +1 @@ +00989nam0a32003011 450 001002800000004001000028008002800038009001100066021002700077032001500104100002100119245005400140250004100194260004000235300002700275504012300302512006100425520005000486652002400536652001600560666001600576666001900592666001500611666001800626666001900644666000900663666001500672000a9 181 423 4b710100fa000rnae000tmuua2002buslengv0000aagxx000a1-4000-4596-7d$14,00000&DBC2004390000aSlomanhLarry000aOn the road with Bob DylaneLarry "Ratso" Sloman000aRevised editionbThree Rivers Press000aNew YorkbThree Rivers Pressc2002000axv, 464 sider, tavler000aLarry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue"000aPÃ¥ omslaget: With a new introduction by Kinky Friedman000aTidligere: 1. udgave. New York, Bantam, 19780000m99.4aDylanhBob000p78.9064v5000ffolkemusik000ffolkemusikere000frockmusik000frockmusikere000frockkoncerter000eUSA000i1970-1979 \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc2.chr b/dependencies/yaz-2.1.28/test/marc2.chr new file mode 100644 index 0000000..328c81e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc2.chr @@ -0,0 +1 @@ +iso-8859-1 diff --git a/dependencies/yaz-2.1.28/test/marc2.marc b/dependencies/yaz-2.1.28/test/marc2.marc new file mode 100644 index 0000000..cfc7f72 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc2.marc @@ -0,0 +1 @@ +01116nam0 32002171 45 001002800000004001000028008002800038009001100066039000900077100001900086245005900105260003300164300001000197512007300207531001400280538001900294652001500313666004900328795050200377795001900879000a9 182 502 3b710100fa000rcae000tsufa1995bgblengv0000asgxc000abef000aMimmshGarnet000aCry babyaWarm and soulfuleGarnet Mimms ... [et al.]000aBury St. EdmundsbBGOc1995000n1 cd000aIndspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)000aIndhold:000fBGOgBGOCD268000m78.794v4000msoulmrhythm & bluesnvokalp1960-1969lUSA000å11aCry babyaNobody but youaUntil you were goneaAnytime you want meaSo closeaFor your precious loveaBaby don't you weepaA ¤quiet placeaCry to meaDon't change your heartaWanting youaThe ¤truth hurtsaI'll take good care of youaLooking for youaIt won't hurt (half as much)aIt was easier to hurt heraThinkin'aProve it to meaMore than a miracleaAs long as I have youaOne girlaThere goes my babyaIt's just a matter of timeaA ¤little bit of soapaLook awayaI'll make it up to you000å40y0a1 girl \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc2.xml b/dependencies/yaz-2.1.28/test/marc2.xml new file mode 100644 index 0000000..dd0bc13 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc2.xml @@ -0,0 +1,100 @@ + + + 01116nam0a32002171 450 + + 9 182 502 3 + 710100 + a + + + c + e + + + s + f + 1995 + gb + eng + 0 + + + s + xc + + + bef + + + Mimms + Garnet + + + Cry baby + Warm and soulful + Garnet Mimms ... [et al.] + + + Bury St. Edmunds + BGO + 1995 + + + 1 cd + + + Indspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful) + + + Indhold: + + + BGO + BGOCD268 + + + 78.794 + 4 + + + soul + rhythm & blues + vokal + 1960-1969 + USA + + + 11 + Cry baby + Nobody but you + Until you were gone + Anytime you want me + So close + For your precious love + Baby don't you weep + A ¤quiet place + Cry to me + Don't change your heart + Wanting you + The ¤truth hurts + I'll take good care of you + Looking for you + It won't hurt (half as much) + It was easier to hurt her + Thinkin' + Prove it to me + More than a miracle + As long as I have you + One girl + There goes my baby + It's just a matter of time + A ¤little bit of soap + Look away + I'll make it up to you + + + 40 + 0 + 1 girl + + diff --git a/dependencies/yaz-2.1.28/test/marc2.xml.marc b/dependencies/yaz-2.1.28/test/marc2.xml.marc new file mode 100644 index 0000000..106fce3 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc2.xml.marc @@ -0,0 +1 @@ +01121nam0a32002171 450 001002800000004001000028008002800038009001100066039000900077100001900086245005900105260003300164300001000197512007300207531001400280538001900294652001500313666004900328795050600377795002000883000a9 182 502 3b710100fa000rcae000tsufa1995bgblengv0000asgxc000abef000aMimmshGarnet000aCry babyaWarm and soulfuleGarnet Mimms ... [et al.]000aBury St. EdmundsbBGOc1995000n1 cd000aIndspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)000aIndhold:000fBGOgBGOCD268000m78.794v4000msoulmrhythm & bluesnvokalp1960-1969lUSA000Ã¥11aCry babyaNobody but youaUntil you were goneaAnytime you want meaSo closeaFor your precious loveaBaby don't you weepaA ¤quiet placeaCry to meaDon't change your heartaWanting youaThe ¤truth hurtsaI'll take good care of youaLooking for youaIt won't hurt (half as much)aIt was easier to hurt heraThinkin'aProve it to meaMore than a miracleaAs long as I have youaOne girlaThere goes my babyaIt's just a matter of timeaA ¤little bit of soapaLook awayaI'll make it up to you000Ã¥40y0a1 girl \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc3.chr b/dependencies/yaz-2.1.28/test/marc3.chr new file mode 100644 index 0000000..328c81e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc3.chr @@ -0,0 +1 @@ +iso-8859-1 diff --git a/dependencies/yaz-2.1.28/test/marc3.marc b/dependencies/yaz-2.1.28/test/marc3.marc new file mode 100644 index 0000000..2c40d62 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc3.marc @@ -0,0 +1 @@ +00914naa 2200337 45 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin Granlund, TomcKristian AugustsgatecPilestredet 19 aa 20 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc3.xml b/dependencies/yaz-2.1.28/test/marc3.xml new file mode 100644 index 0000000..baab879 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc3.xml @@ -0,0 +1,120 @@ + + + 00914naa a2200337 450 + + a00001508 + a + + + i + n + + + 1991 + xx + nor + a + 9 + + + a + xx + + + nor + + + eng + + + 06 + + + Byfornyelse ved Ibsen-Ringen + + + farvefoto + plan + snit + + + Byggekunst + 1991 + 1/2 + 41-45 + + + byfornyelse + + + sanering + + + Norge + + + Oslo + + + Telje Torp Aasen Arkitektkontor + Kristian Augustsgate 7B + + + Eng, Dagfin + + + anlund, Tom + Kristian Augustsgate + Pilestredet 19 + + + a + + + + + + ITM + ARK50 + 0000145 + 1991 + 1/2 + 41-45 + + + + + 20020111 + ARK01 + 2002 + + + + + 20020111 + ARK01 + 2116 + + + + + 20021002 + ARK01 + 1000 + + + ICLLOAD + 00 + 20021122 + ARK01 + 1948 + + + 20030618 + ARK01 + 1330 + + + a00001508 + + diff --git a/dependencies/yaz-2.1.28/test/marc3.xml.marc b/dependencies/yaz-2.1.28/test/marc3.xml.marc new file mode 100644 index 0000000..64f2cef --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc3.xml.marc @@ -0,0 +1 @@ +00914naa a2200337 450 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin ranlund, TomcKristian AugustsgatecPilestredet 19 aa 0 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc4.chr b/dependencies/yaz-2.1.28/test/marc4.chr new file mode 100644 index 0000000..328c81e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc4.chr @@ -0,0 +1 @@ +iso-8859-1 diff --git a/dependencies/yaz-2.1.28/test/marc4.marc b/dependencies/yaz-2.1.28/test/marc4.marc new file mode 100644 index 0000000..39d179c --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc4.marc @@ -0,0 +1 @@ +0091400914naa 2200337 45 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin Granlund, TomcKristian AugustsgatecPilestredet 19 aa 20 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 diff --git a/dependencies/yaz-2.1.28/test/marc4.xml b/dependencies/yaz-2.1.28/test/marc4.xml new file mode 100644 index 0000000..6587da9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc4.xml @@ -0,0 +1,9 @@ + + + + + + 009140091a22a 22003370 + + + diff --git a/dependencies/yaz-2.1.28/test/marc4.xml.marc b/dependencies/yaz-2.1.28/test/marc4.xml.marc new file mode 100644 index 0000000..9b3d907 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc4.xml.marc @@ -0,0 +1 @@ +000260091a2200025003370  \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc5.chr b/dependencies/yaz-2.1.28/test/marc5.chr new file mode 100644 index 0000000..a524421 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc5.chr @@ -0,0 +1 @@ +utf-8 diff --git a/dependencies/yaz-2.1.28/test/marc5.marc b/dependencies/yaz-2.1.28/test/marc5.marc new file mode 100644 index 0000000..f72deaa --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc5.marc @@ -0,0 +1 @@ +00492nam a22001455a 450000100100000000500170001000800410002710000520006824501040012025000140022426000230023830000160026165000510027765000180032800027748520051026111436.0050413s1894 gr 000 0 gre d1 aΜαρούδης, Κωνσταντίνος Ιω10aΕλληνικόν κρυπτογραφικόν λεξικόν /cΚωνστ. Ι. Μαρούδης. 2η εκδ. aΑθήνα,c1894. a248 σελ. 0aGreek language, ModernxDialectsvDictionaries 0aCryptography. \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc5.xml b/dependencies/yaz-2.1.28/test/marc5.xml new file mode 100644 index 0000000..54323ee --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc5.xml @@ -0,0 +1,31 @@ + + 00492nam a22001455a 4500 + 000277485 + 20051026111436.0 + 050413s1894 gr 000 0 gre d + + Μαρούδης, Κωνσταντίνος Ιω + + + Ελληνικόν κρυπτογραφικόν λεξικόν / + Κωνστ. Ι. Μαρούδης. + + + εκδ. + + + Αθήνα, + 1894. + + + 248 σελ. + + + Greek language, Modern + Dialects + Dictionaries + + + Cryptography. + + diff --git a/dependencies/yaz-2.1.28/test/marc5.xml.marc b/dependencies/yaz-2.1.28/test/marc5.xml.marc new file mode 100644 index 0000000..50102a7 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc5.xml.marc @@ -0,0 +1 @@ +00492nam a22001455a 450000100100000000500170001000800410002710000520006824501040012025000140022426000230023830000160026165000510027765000180032800027748520051026111436.0050413s1894 gr 000 0 gre d1 aΜαρούδης, Κωνσταντίνος Ιω10aΕλληνικόν κρυπτογραφικόν λεξικόν /cΚωνστ. Ι. Μαρούδης. η εκδ. aΑθήνα,c1894. a248 σελ. 0aGreek language, ModernxDialectsvDictionaries 0aCryptography. \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc6.chr b/dependencies/yaz-2.1.28/test/marc6.chr new file mode 100644 index 0000000..f51f8e4 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc6.chr @@ -0,0 +1 @@ +marc-8 diff --git a/dependencies/yaz-2.1.28/test/marc6.marc b/dependencies/yaz-2.1.28/test/marc6.marc new file mode 100644 index 0000000..c78fdce --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc6.marc @@ -0,0 +1 @@ +00366nam 22001698a 4500001001300000003000400013005001700017008004100034010001700179040001300075050001200088100001700100245003000117260001200147263000900159300001100168 11224466 DLC00000000000000.0910710c19910701nju 00010 eng  aDLCcDLC00a123-xyz10aJack Collins10aHow to program a computer1 aPenguin a8710 ap. cm. a 11224466  \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc6.xml b/dependencies/yaz-2.1.28/test/marc6.xml new file mode 100644 index 0000000..a78dca2 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc6.xml @@ -0,0 +1,32 @@ + + 00366nam a22001698a 4500 + 11224466 + DLC + 00000000000000.0 + 910710c19910701nju 00010 eng + + 11224466 + + + DLC + DLC + + + 123-xyz + + + Jack Collins + + + How to program a computer + + + Penguin + + + 8710 + + + p. cm. + + diff --git a/dependencies/yaz-2.1.28/test/marc6.xml.marc b/dependencies/yaz-2.1.28/test/marc6.xml.marc new file mode 100644 index 0000000..400a01a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc6.xml.marc @@ -0,0 +1 @@ +00366nam a22001698a 4500001001300000003000400013005001700017008004100034010001700075040001300092050001200105100001700117245003000134260001200164263000900176300001100185 11224466 DLC00000000000000.0910710c19910701nju 00010 eng  a 11224466  aDLCcDLC00a123-xyz10aJack Collins10aHow to program a computer1 aPenguin a8710 ap. cm. \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc7.chr b/dependencies/yaz-2.1.28/test/marc7.chr new file mode 100644 index 0000000..f51f8e4 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc7.chr @@ -0,0 +1 @@ +marc-8 diff --git a/dependencies/yaz-2.1.28/test/marc7.marc b/dependencies/yaz-2.1.28/test/marc7.marc new file mode 100644 index 0000000..42ecb4a --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc7.marc @@ -0,0 +1 @@ +03114cam 2200349 i 4500001001300000003000400013005001700017008004100034035001000075035001000085035001000095040001300105906004500118010001700163245005200180260002100232300002100253500004300274500016800317500019000485500015500675500018600830500019301016500023801209500022301447500020801670500016801878500020702046500020902253500016102462500014102623 77123332 DLC20051218154744.0981008b2001 ilu 000 0 eng  a57779 a90490 a93202 aDLCcDLC a0bundcorignewduencipf19gy-gencatlg a 77123332 00aVoyager Diacritic test -- New input 001 (SBIE). any :bny,c2001. a100 p. ;c12 cm. aNew copy imported from file (8/12/99). aVOYAGER COLUMN 0 (NEW): Degree sign (À); Phono Copyright mark (Â); Copyright mark (Ã); Sharp (Ä); Inverted Question mark (Å); Inverted Exclamation mark (Æ). aVOYAGER COLUMN 1: Script L (Á); Polish L (¡); Scandanavian O (¢); D with Crossbar (£); Icelandic Thorn (¤); AE Digraph (¥); OE Digraph (¦); Miagkii Znak (§); Dot at Midline (¨). aVOYAGER COLUMN 2: Musical Flat (©); Patent Mark (ª); Plus or Minus («); O Hook (¬); U Hook (­); Alif (®); alpha gas; Ayn (°); Polish l (±). aVOYAGER COLUMN 3: Scandanavian o (²); d with crossbar (³); Icelandic Thorn (´); ae Digraph (µ); oe Digraph (¶); Tverdii Znak (·); Turkish i (¸); British Pound (¹); eth (º). aVOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (¼); u Hook (½); Beta gbs; Gamma gcs; Superscript 0 (p0s); Superscript 1 (p1s); Superscript 2 (p2s); Superscript 3 (p3s). aVOYAGER COLUMN 5: Superscript 4 (p4s); Superscript 5 (p5s); Superscript 6 (p6s); Superscript 7 (p7s); Superscript 8 (p8s); Superscript 9 (p9s); Superscript + (p+s); Superscript - (p-s); Superscript ( (p(s). aVOYAGER COLUMN 6: Superscript ) (p)s); Subscript 0 (b0s); Subscript 1 (b1s); Subscript 2 (b2s); Subscript 3 (b3s); Subscript 4 (b4s); Subscript 5 (b5s); Subscript 6 (b6s); Subscript 7 (b7s). aVOYAGER COLUMN 7: Subscript 8 (b8s); Subscript 9 (b9s); Subscript + (b+s); Subscript - (b-s); Subscript ( (b(s); Subscript ) (b)s); Pseudo Question Mark (ào); Grave (áo); Acute (âo). aVOYAGER COLUMN 8: Circumflex (ão); Tilde (äo); Macron (åo); Breve (æo); Superior Dot (ço); Umlaut (èo); Hacek (éo); Circle Above (êo); Ligature left (ëo). aVOYAGER COLUMN 9: Ligature right (ìo) ; High Comma off center (ío); Double Acute (îo); Candrabindu (ïo); Cedilla (ðo); Right Hook (ño); Dot Below (òo); Double Dot Below (óo); Circle Below (ôo). aVOYAGER COLUMN 10: Double Underscore (õo); Underscore (öo); Left Hook (÷o); Right Cedilla (øo); Upadhmaniya (ùo); Double Tilde 1st half (úo); Double Tilde 2nd half (ûo) ; High Comma centered (þo). aVOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). aStandard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marc7.xml b/dependencies/yaz-2.1.28/test/marc7.xml new file mode 100644 index 0000000..bc6922d --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc7.xml @@ -0,0 +1,86 @@ + + 03114cam a2200349 i 4500 + 77123332 + DLC + 20051218154744.0 + 981008b2001 ilu 000 0 eng + + 57779 + + + 90490 + + + 93202 + + + DLC + DLC + + + 0 + und + orignew + u + ncip + 19 + y-gencatlg + + + 77123332 + + + Voyager Diacritic test -- New input 001 (SBIE). + + + ny : + ny, + 2001. + + + 100 p. ; + 12 cm. + + + New copy imported from file (8/12/99). + + + VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡). + + + VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·). + + + VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (Ê»); Polish l (ł). + + + VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð). + + + VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³). + + + VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽). + + + VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇). + + + VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó). + + + VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (oÍ¡). + + + VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥). + + + VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (oÍ ); Double Tilde 2nd half (o) ; High Comma centered (o̓). + + + VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). + + + Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? + + diff --git a/dependencies/yaz-2.1.28/test/marc7.xml.marc b/dependencies/yaz-2.1.28/test/marc7.xml.marc new file mode 100644 index 0000000..e6315df --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marc7.xml.marc @@ -0,0 +1 @@ +03109cam a2200349 i 4500001001300000003000400013005001700017008004100034035001000075035001000085035001000095040001300105906004500118010001700163245005200180260002100232300002100253500004300274500017600317500020000493500016100693500019500854500017801049500022001227500020501447500019901652500017701851500021402028500021502242500016102457500014102618 77123332 DLC20051218154744.0981008b2001 ilu 000 0 eng  a57779 a90490 a93202 aDLCcDLC a0bundcorignewduencipf19gy-gencatlg a 77123332 00aVoyager Diacritic test -- New input 001 (SBIE). any :bny,c2001. a100 p. ;c12 cm. aNew copy imported from file (8/12/99). aVOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡). aVOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·). aVOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (Ê»); Polish l (ł). aVOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð). aVOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³). aVOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽). aVOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇). aVOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó). aVOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (oÍ¡). aVOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥). aVOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (oÍ ); Double Tilde 2nd half (o) ; High Comma centered (o̓). aVOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). aStandard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/marccol1.u8.1.lst b/dependencies/yaz-2.1.28/test/marccol1.u8.1.lst new file mode 100644 index 0000000..d8fe3e2 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marccol1.u8.1.lst @@ -0,0 +1,458 @@ +01087cam a2200277 a 4500 +001 70813420 /AJ/r86 +003 DLC +005 19871006084439.0 +008 860826m19689999ja ab l00000 jpn +010 $a 70813420 /AJ/r86 +035 $a (CStRLIN)DCLP86-B14482 +040 $c NNC $d NNC $d DLC +043 $a a-ja--- +050 0 $a DS897.H325 $b H36 1968 +066 $c $1 +245 00 $6 880-01 $a Handa shishi. +260 0 $6 880-02 $a [Handa-shi] : $b Handa-shi, $c Shōwa 43-<59> [1968-<1984> +300 $a v. <1-5, 7-8> : $b ill. ; $c 22 cm. +500 $a Vol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf). +505 1 $a [1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen +651 0 $6 880-03 $a Handa-shi (Japan) +651 0 $6 880-04 $a Handa-shi (Japan) $x History $x Sources. +880 00 $6 245-01/$1 $a 半田 市誌. +880 0 $6 260-02/$1 $a [半田市] : $b 半田市, $c 昭和 43-<59> [1968-<1984> +880 4 $6 651-03/$1 $a 半田市 (Japan) +880 4 $6 651-04/$1 $a 半田市 (Japan) $x History $x Sources. +00847nam a2200229 a 4500 +001 75840215 /ACN/r86 +003 DLC +005 19870219000000.0 +008 860606m19009999ch 00001 chi +010 $a 75840215 /ACN/r86 +035 $a (CStRLIN)DCLP86-B9742 +050 0 $a PL3031.T32 $b L5 +066 $c $1 +245 00 $6 880-01 $a Li tsÊ»ung. +260 0 $6 880-02 $a [Kao-hsiung shih] : $b Wen hua yüan : $b Fa hsing so Sheng su chÊ»u pan she, $c +300 $a v. <4, pts 1-2; v. 5> in <3 > ; $c 22 cm. +500 $a Cover title. +650 0 $a Didactic fiction, Chinese $z Taiwan. +710 20 $6 880-03 $a Kao-hsiung shih wen hua yüan. +880 00 $6 245-01/$1 $a 歷叢. +880 0 $6 260-02/$1 $a [高雄市] : $b 文化院 : $b 發行所 聖書 出版社, $c <民國63-66 [1974-1977 > +880 20 $6 710-03/$1 $a 高雄市 文化院. +01020nam a2200277 a 4500 +001 84226659 /ACN +003 DLC +005 19870219000000.0 +008 860227s1983 cc ac b 00000dchi +010 $a 84226659 /ACN +035 $a (CStRLIN)DCLP86-B3400 +050 0 $a NX90 $b .I18 1983 +066 $c $1 +082 0 $a 174/.97 $2 19 +245 00 $6 880-01 $a I shu chia yü te yü. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a ChÊ»eng-tu : $b Ssu-chÊ»uan jen min chÊ»u pan she : $b Ssu-chÊ»uan sheng hsin hua shu tien fa hsing, $c 1983. +300 $a 2, 3, 4, 244 p. : $b ill., ports. ; $c 19 cm. +440 0 $6 880-04 $a Te yü tsÊ»ung shu +504 $a Bibliography: p. 239-240. +650 0 $a Artists $x Anecdotes, facetiae, satire, etc. +650 0 $a Ethics $x Anecdotes, facetiae, satire, etc. +880 00 $6 245-01/$1 $a 艺术家 与 德育. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a 成都 : $b 四川 人民 出版社 : $b 四川省 新华 书店 发行, $c 1983. +880 0 $6 440-04/$1 $a 德育 丛书 +01336cam a2200349 a 4500 +001 84231405 +003 DLC +005 20001214140017.0 +008 841203m19849999cc b 000 0 chi +010 $a 84231405 +020 $c RMBY0.38 (v. 1) +035 $a (CStRLIN)DCLP84-B5184 +040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC +043 $a a-cc--- +050 00 $a JQ1519.A5 $b C47529 1984 +066 $c $1 +082 00 $a 324.251/075 $2 19 +245 00 $6 880-01 $a Zheng dang xue xi cai liao / $c ben she bian. +250 $6 880-02 $a Di 1 ban. +260 $6 880-03 $a Shenyang : $b Liaoning ren min chu ban she : $b Liaoning sheng xin hua shu dian fa xing, $c 1984- +300 $a v. <1, 3-5, > ; $c 19 cm. +500 $a Colophon title also in pinyin: Zhengdang xuexi cailiao. +504 $a Includes bibliographical references. +610 20 $6 880-04 $a Zhongguo gong chan dang $x Party work. +710 2 $6 880-05 $a Liaoning ren min chu ban she. +740 0 $a Zhengdang xuexi cailiao. +880 00 $6 245-01/$1 $a 整党 学习 材料 / $c 本社 编. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 沈阳 : $b 辽宁 人氱 出版社 : $b 辽宁省 新华 书店 叱行, $c 1984- +880 24 $6 610-04/$1 $a 中国 共产党 $x Party work. +880 2 $6 710-05/$1 $a 辽宁 人氱 出版社. +987 $a PINYIN $b CStRLIN $c 20001212 $d c $e 1.0 +00916nam a2200241 a 4500 +001 85174785 /ACN +003 DLC +005 19870219000000.0 +008 860312s1983 cc a 00000 chi +010 $a 85174785 /ACN +035 $a (CStRLIN)DCLP86-B4377 +043 $a a-cc-hp +050 0 $a GR336.H67 $b H6 1983 +066 $c $1 +082 0 $a 398.2/32/5115 $2 19 +245 00 $6 880-01 $a Ho-pei min chien ku shih hsüan / $c [chÊ»a tÊ»u Chang Wen-hsüeh]. +250 $6 880-02 $a Hsin 1 pan. +260 0 $6 880-03 $a Shih-chia-chuang : $b Hua shan wen i chÊ»u pan she : $b Ho-pei sheng hsin hua shu tien fa hsing, $c 1983. +300 $a 2, 255 p. : $b ill. ; $c 19 cm. +650 0 $a Tales $z China $z Hopeh Province. +880 00 $6 245-01/$1 $a 河北 氱间 故事 选 / $c [插图 张 文学]. +880 $6 250-02/$1 $a 新1版. +880 0 $6 260-03/$1 $a 石家庄 : $b 花山 文艺 出版社 : $b 河北省 新華 書店 叱行, $c 1983. +01171nam a2200325 a 4500 +001 86116930 /ACN +003 DLC +005 19870219000000.0 +008 860430s1984 cc b 00010 chi +010 $a 86116930 /ACN +020 $c RMBY1.00 +035 $a (CStRLIN)DCLP86-B7190 +050 0 $a PN45 $b .C436 1984 +066 $c $1 +082 0 $a 809 $2 19 +100 10 $6 880-01 $a Chang, Hsin-chien. +245 10 $6 880-02 $a Wen hsüeh chi chÊ»u chih shih / $c Chang Hsin-chien. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Ho-fei shih : $b An-hui wen i chÊ»u pan she : $b An-hui sheng hsin hua shu tien fa hsing, $c 1984. +300 $a 196 p. ; $c 19 cm. +440 0 $6 880-05 $a ChÊ»ing nien wen hsüeh tsÊ»ung shu +500 $a Cover title also in pinyin: Wenxuejichuzhishi. +504 $a Includes bibliographies. +650 0 $a Literature. +740 01 $a Wenxuejichuzhishi. +880 10 $6 100-01/$1 $a 章 新建. +880 10 $6 245-02/$1 $a 文学 基础 知识 / $c 章 新建. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 合肥市 : $b 安徽 文艺 出版社 : $b 安徽省 新華 書店 发行, $c 1984. +880 0 $6 440-05/$1 $a 青年 文学 丛书 +01437nam a2200301 a 4500 +001 86117080 /ACN +003 DLC +005 19870219000000.0 +008 860502s1985 cc ab b 00000 chi +010 $a 86117080 /ACN +020 $c RMBY2.30 +035 $a (CStRLIN)DCLP86-B7475 +043 $a a-cc--- +050 0 $a QE537.2.C6 $b S5 1985 +066 $c $1 +082 0 $a 551.2/2/09514 $2 19 +245 00 $6 880-01 $a Shan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu : $b kung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien / $c Kuo chia ti chen chü Lan-chou ti chen yen chiu so. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a Hsi-an : $b Shan-hsi kÊ»o hsüeh chi shu chÊ»u pan she : $b Shan-hsi sheng hsin hua shu tien fa hsing, $c 1985. +300 $a 2, 170 p. : $b ill., maps ; $c 26 cm. +504 $a Bibliography: p. 170. +650 0 $a Earthquakes $z China, Northwest $x Chronology. +710 20 $6 880-04 $a Kuo chia ti chen chü Lan-chou ti chen yen chiu so. +740 01 $a Shan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu. +880 00 $6 245-01/$1 $a 陕甘宁青 四省(区) 强 地震 目录 : $b 公元[前] 1177年-公元 1982å¹´ / $c 国家 地震局 兰州 地震 研究所. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a 西安 : $b 陕西 秱学 技术 出版社 : $b 陕西省 新華 書店 叱行, $c 1985. +880 20 $6 710-04/$1 $a 国家 地震局 兰州 地震 研究所. +01289cam a2200337 a 4500 +001 86118651 /ACN/r88 +003 DLC +005 19880830123434.0 +008 860218s1985 ch d 00110 chi +010 $a 86118651 /ACN/r88 +020 $c NT$260.00 +035 $a (CStRLIN)DCLP86-B2669 +041 0 $a chieng +050 0 $a SD126 $b .C473 1985 +066 $c $1 +082 0 $a 634.9/03/21 $2 19 +100 10 $6 880-01 $a ChÊ»en, Ming-tsÊ»un. +245 10 $6 880-02 $a Sen lin hsüeh ming tzÊ»u tzÊ»u tien = $b English Chinese dictionary of forestry / $c ChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. +250 $6 880-03 $a ChÊ»u pan. +260 0 $6 880-04 $a TÊ»ai-pei shih : $b Ming shan chÊ»u pan she, $c min kuo 74 [1985] +300 $a 274 p. ; $c 20 cm. +500 $a Includes index. +650 0 $a Forests and forestry $x Dictionaries. +650 0 $a English language $x Dictionaries $x Chinese. +700 10 $6 880-05 $a Huang, Chin-hsien. +740 01 $a English Chinese dictionary of forestry. +880 10 $6 100-01/$1 $a 陳 銘東. +880 10 $6 245-02/$1 $a 森林學 名詞 辭典 = $b English Chinese dictionary of forestry / $c 陳 銘東, 黃 釱仙 合編. +880 $6 250-03/$1 $a 初版. +880 0 $6 260-04/$1 $a 台北市 : $b 名山 出版社, $c 氱國74 [1985] +880 10 $6 700-05/$1 $a 黃 釱仙. +00995nam a2200289 a 4500 +001 86118679 /ACN +003 DLC +005 19870219000000.0 +008 860218s1985 ch 00011 chi +010 $a 86118679 /ACN +035 $a (CStRLIN)DCLP86-B2674 +050 0 $a PL2865.H3 $b H84 1985 +066 $c $1 +082 0 $a 895.1/35 $2 19 +100 10 $6 880-01 $a Huang, Hai, $d 1943- +245 10 $6 880-02 $a Hsing hsing ti hsiang lien / $c Huang Hai chu. +250 $6 880-03 $a ChÊ»u pan. +260 0 $6 880-04 $a TÊ»ai-pei shih : $b Huang kuan chÊ»u pan she, $c min kuo 74 [1985] +300 $a 297 p. ; $c 19 cm. +440 0 $6 880-05 $a Huang kuan tsÊ»ung shu ; $v ti 1143 chung +500 $a Short stories. +650 0 $a Science fiction, Chinese. +880 10 $6 100-01/$1 $a 黃 海, $d 1943- +880 10 $6 245-02/$1 $a 星星 的 項練 / $c 黃 海 著. +880 $6 250-03/$1 $a 初版. +880 0 $6 260-04/$1 $a 台北市 : $b 皇冠 出版社, $c 民國74 [1985] +880 0 $6 440-05/$1 $a 皇冠 叢書 ; $v 第1143種 +01365cam a2200361 a 4500 +001 86119726 +003 DLC +005 20010412140706.0 +008 860403s1985 cc af b 00000 chi +010 $a 86119726 +020 $c RMBY3.90 +035 $a (CStRLIN)DCLP86-B5782 +040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC-R +043 $a a-cc--- +050 00 $a DS751 $b .C4945 1985 +066 $c $1 +082 00 $a 951/.024 $2 19 +245 00 $6 880-01 $a Jian ming Song shi / $c Zhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. +250 $6 880-02 $a Di 1 ban. +260 $6 880-03 $a Beijing : $b Ren min chu ban she : $b Xin hua shu dian fa xing, $c 1985. +300 $a 4, 5, 603 p., [12] p. of plates : $b ill. ; $c 21 cm. +500 $a Colophon title also in pinyin : Jianming Songshi. +504 $a Includes bibliographical references. +651 0 $a China $x History $y Song dynasty, 960-1279. +700 1 $6 880-04 $a Zhou, Baozhu. +700 1 $6 880-05 $a Chen, Zhen. +740 0 $a Jianming Songshi. +880 00 $6 245-01/$1 $a 簡明 宋 史 / $c 周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 北京 : $b 人民 出版社 : $b 新華 書店 发行, $c 1985. +880 1 $6 700-04/$1 $a 周 宝珠. +880 1 $6 700-05/$1 $a 陈 振. +987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 +01069nam a2200289 a 4500 +001 86122256 /ACN +003 DLC +005 19870219000000.0 +008 860303s1984 cc b 00010 chi +010 $a 86122256 /ACN +020 $c RMBY2.80 +035 $a (CStRLIN)DCLP86-B3622 +043 $a a-cc--- +050 0 $a PL2333 $b .L63 1984 +066 $c $1 +082 0 $a 895.1/15/09 $2 19 +100 10 $6 880-01 $a Lo, Han-chÊ»ao. +245 10 $6 880-02 $a Chung-kuo hsien tai shih ko lun / $c [Lo Han-chÊ»ao]. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a [Nan-ching shih] : $b Chiang-su jen min chÊ»u pan she : $b Chiang-su sheng hsin hua shu tien fa hsing, $c 1984. +300 $a 11, 411 p. ; $c 20 cm. +504 $a Includes bibliographical references. +650 0 $a Chinese poetry $y 20th century $x History and criticism. +880 10 $6 100-01/$1 $a 骆 寒超. +880 10 $6 245-02/$1 $a 中国 现代 诗歌 论 / $c [骆 寒超]. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a [南京市] : $b 江苏 人氱 出版社 : $b 江苏省 新華 書店 叱行, $c 1984. +01194nam a2200325 a 4500 +001 86124008 /ACN +003 DLC +005 19870219000000.0 +008 860417s1985 cc j 00010 chi +010 $a 86124008 /ACN +020 $c RMBY0.61 +035 $a (CStRLIN)DCLP86-B6501 +043 $a a-cc--- +050 0 $a DS731.U4 $b H75 1985 +066 $c $1 +082 0 $a 951/.6 $2 19 +100 10 $6 880-01 $a Hsin, She. +245 10 $6 880-02 $a Tsai Wei-wu-erh chih hsiang / $c Hsin She. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Wu-lu-mu-chÊ»i shih : $b Hsin-chiang jen min chÊ»u pan she : $b Hsin-chiang hsin hua shu tien fa hsing, $c 1985. +300 $a 2, 178 p. ; $c 19 cm. +440 0 $6 880-05 $a Tsu kuo ta chia tÊ»ing tsÊ»ung shu +650 0 $a Uigurs $x Juvenile literature. +650 0 $a Ethnology $z China $x Juvenile literatture. +651 0 $a China $x Ethnic relations $x Juvenile literature. +880 10 $6 100-01/$1 $a 辛 涉. +880 10 $6 245-02/$1 $a 在 维吾尔 之 乡 / $c 辛 涉. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 乌鲁木齐市 : $b 新疆 人民 出版社 : $b 新疆 新華 書店 发行, $c 1985. +880 0 $6 440-05/$1 $a 祖国 大家庭 丛书 +01192cam a2200313 a 4500 +001 86124229 +003 DLC +005 20001214140017.0 +008 860703s1985 cc 000 1 chi +010 $a 86124229 +020 $c RMBY1.05 +035 $a (CStRLIN)DCLP86-B11515 +040 $a DLC-R $c DLC-R $d CStRLIN $d DLC +050 00 $a PL2724.H37 $b H7 1985 +066 $c $1 +082 00 $a 895.1/34 $2 19 +100 1 $6 880-01 $a Shen, Qifeng, $d b. 1741. +245 10 $6 880-02 $a Xie duo / $c Shen Qifeng zhu ; Qiao Yuzhou jiao dian. +250 $6 880-03 $a Beijing di 1 ban. +260 $6 880-04 $a Beijing : $b Ren min wen xue chu ban she : $b Xin hua shu dian Beijing fa xing suo fa xing, $c 1985. +300 $a 7, 198 p. ; $c 19 cm. +440 0 $6 880-05 $a Zhongguo xiao shuo shi liao cong shu +500 $a Short stories. +880 1 $6 100-01/$1 $a 沈 起凤, $d b. 1741. +880 10 $6 245-02/$1 $a 谐铎 / $c 沈 起凤 著 ; 乔 雨舟 校点. +880 $6 250-03/$1 $a 北京 第1版. +880 $6 260-04/$1 $a 北京 : $b 人民 文学 出版社 : $b 新华 书店 北京 发行所 发行, $c 1985. +880 0 $6 440-05/$1 $a 中国 小说 史料 丛书 +987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 +01470cam a2200349 a 4500 +001 86124531 /ACN/r93 +003 DLC +005 19930723073715.0 +008 860319s1985 cc 00000 chi +010 $a 86124531 /ACN/r93 +020 $c RMBY1.80 +035 $a (CStRLIN)DCLP86-B4826 +043 $a a-cc--- +050 0 $a HX418.5 $b .C482 1985 +066 $c $1 +082 0 $a 322/.2/0951 $2 19 +245 00 $6 880-01 $a ChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai / $c Chung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. +250 $6 880-02 $a Ti 1 pan. +260 $6 880-03 $a Shang-hai : $b Shang-hai jen min chÊ»u pan she : $b Hsin hua shu tien Shang-hai fa hsing so fa hsing, $c 1985. +300 $a 8, 479 p. ; $c 19 cm. +500 $a Cover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. +650 0 $a Communism $z China. +650 0 $a Working class $z China. +651 0 $a China $x History $y 19th century. +651 0 $a China $x History $y 20th century. +651 0 $a China $x Description and travel. +710 20 $6 880-04 $a Chung kung Shang-hai shih wei. $b Hsüan chÊ»uan pu. +740 01 $a Qinggong zhengzhi lunxun jiaocai. +880 00 $6 245-01/$1 $a 青工 政治 轮训 教材 / $c 中共 上海 市委 宣传部 组织 编写. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 上海 : $b 上海 人氱 出版社 : $b 新華 書店 上海 叱行所 叱行, $c 1985. +880 20 $6 710-04/$1 $a 中共 上海 市委. $b 宣传部. +01072nam a2200301 a 4500 +001 86125160 /ACN +003 DLC +005 19870219000000.0 +008 860327s1985 cc cfh 00010 chi +010 $a 86125160 /ACN +020 $c RMBY1.05 +035 $a (CStRLIN)DCLP86-B5292 +050 0 $a PL2862.I276 $b W8 1985 +066 $c $1 +082 0 $a 895.1/15 $2 19 +100 10 $6 880-01 $a Hsiao, ChÊ»ing. +245 10 $6 880-02 $a Wu shu hua / $c Hsiao ChÊ»ing. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Pei-ching : $b Pei-ching shih yüeh wen i chÊ»u pan she : $b Hsin hua shu tien Pei-ching fa hsing so fa hsing, $c 1985. +300 $a 4, 3, 199 p., [2] p. of plates : $b facsim., port. ; $c 19 cm. +440 0 $6 880-05 $a Hung yeh shih tsÊ»ung +500 $a Poems. +740 01 $a 5 shu hua. +880 10 $6 100-01/$1 $a 晓 晴. +880 10 $6 245-02/$1 $a 五束 花/ $c 晓 晴. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 北京 : $b 北京 十月 文艺 出版社 : $b 新华 书店 北京 叱行所 叱行, $c 1985. +880 0 $6 440-05/$1 $a 红叶 诗丛 +01248nam a2200301 a 4500 +001 86125348 /ACN +003 DLC +005 19870219000000.0 +008 860304r19851917ch 00010 chi +010 $a 86125348 /ACN +035 $a (CStRLIN)DCLP86-B3824 +043 $a a-cc--- +050 0 $a DS754.18 $b .C446 1985 +066 $c $1 +082 0 $a 327.51 $2 19 +100 10 $6 880-01 $a Chuang, Ping-hai. +245 10 $6 880-02 $a Wai chiao ssu tÊ»ung lu / $c Chuang Ping-hai pien [tsuan]. +260 0 $6 880-03 $a [TÊ»ai-pei hsien Yung-ho shih] : $b Wen hai chÊ»u pan she, $c min kuo 74 [1985] +300 $a 2, 2, 2, 272 p. ; $c 22 cm. +490 1 $6 880-04 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ; $v 20 +500 $a Reprint. Originally published: 1917? +651 0 $a China $x Foreign relations $y 1644-1912. +830 0 $6 880-05 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ; $v 20. +880 10 $6 100-01/$1 $a 莊 病骸. +880 10 $6 245-02/$1 $a 外交 思痛 錄 / $c 莊 病骸 編[纂]. +880 0 $6 260-03/$1 $a [臺北縣 永和市] : $b 文海 出版社, $c 民國74 [1985] +880 1 $6 490-04/$1 $a 近代 中國 史料 叢刊 三編 : 第二輯 ; $v 20 +880 0 $6 830-05/$1 $a 近代 中國 史料 叢刊 三編 ; $v 20. +01116cam a2200325 a 4500 +001 86125443 +003 DLC +005 20020326070412.0 +008 860304s1985 ch a 00010 chi +010 $a 86125443 +020 $c $9.00 (U.S.) +035 $a (CStRLIN)DCLP86-B3795 +040 $a DLC-R $c DLC-R $d CStRLIN $d DLC-R +043 $a a-cc--- +050 00 $a B5231 $b .L59 1985 +066 $c $1 +082 00 $a 181/.11 $2 19 +100 1 $6 880-01 $a Liu, Shaoji. +245 10 $6 880-02 $a Zhongguo zhe xue xin lun = $b A new view of the Chinese philosophy / $c Liu Shaoji zhu. +250 $6 880-03 $a Chu ban. +260 $6 880-04 $a Taibei Shi : $b Shi jie shu ju, $c min guo 74 [1985] +300 $a 6, 12, 424 p. : $b ill. ; $c 27 cm. +546 $a In Chinese. +650 0 $a Philosophy, Chinese. +740 0 $a New view of the Chinese philosophy. +880 1 $6 100-01/$1 $a 劉 紹基. +880 10 $6 245-02/$1 $a 中國 哲學 新論 = $b A new view of the Chinese philosophy / $c 劉 紹基 豗. +880 $6 250-03/$1 $a 初版. +880 $6 260-04/$1 $a 台北市 : $b 世界 書局, $c 氱國74 [1985] +987 $a PINYIN $b DLC $c 20020326 $d c +01199nam a2200301 a 4500 +001 86154542 /ACN/r86 +003 DLC +005 19870219000000.0 +008 860528s1985 cc 00000 chi +010 $a 86154542 /ACN/r86 +020 $c RMBY3.60 (v. 1) +035 $a (CStRLIN)DCLP86-B9002 +043 $a a-cc--- +050 0 $a HB126.C4 $b C533 1985 +066 $c $1 +082 0 $a 330/.0951 $2 19 +245 00 $6 880-01 $a Chung-kuo ku tai ching chi chu shu hsüan tu / $c Yü Tsu-yao ... [et al.] pien chu. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a [ChÊ»ang-chÊ»un shih] : $b Chi-lin jen min chÊ»u pan she : $b Chi-lin sheng hsin hua shu tien fa hsing, $c 1985. +300 $a 2 v. ; $c 20 cm. +500 $a Colophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. +650 0 $a Economics $z China $x History. +700 10 $6 880-04 $a Yü, Tsu-yao. +740 01 $a Zhongguo gudai jingji zhushu xuandu. +880 00 $6 245-01/$1 $a 中國 古代 經濟 著述 選讀 / $c 虞 祖尧 ... [et al.] 编著. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a [长春市] : $b 吉林 人民 出版社 : $b 吉林省 新华 书店 发行, $c 1985. +880 10 $6 700-04/$1 $a 虞 祖尧. +00920nam a2200253 a 4500 +001 86159478 /AK +003 DLC +005 19870219000000.0 +008 860602s1984 ko 00010 kor +010 $a 86159478 /AK +020 $c W2800 +035 $a (CStRLIN)DCLP86-B9357 +040 $a CLASIA $c CLASIA $d DLC +050 0 $a AC148 $b .K589256 1985 +066 $c $1 +100 10 $6 880-01 $a Kim, Tong-gil, $d 1928- +245 10 $6 880-02 $a Tŭrŏra, ttaltŭl a : $b Kim Tong-gil taepÊ»yo esei. +260 0 $6 880-03 $a Sŏul : $b ChÊ»ŏngnyŏnsa, $c 1984 $g (1985 printing) +300 $a 271 p. ; $c 23 cm. +440 0 $6 880-04 $a Uri sidae ŭi taepÊ»yo sanmunsŏn ; $v 1 +880 10 $6 100-01/$1 $a 김 동길, $d 1928- +880 10 $6 245-02/$1 $a 들어라, 딸들 아 : $b 김 동길 대표 에세이. +880 0 $6 260-03/$1 $a 서울 : $b 청년사, $c 1984 $g (1985 printing) +880 0 $6 440-04/$1 $a 우리 시대 의 대표 산문선 ; $v 1 diff --git a/dependencies/yaz-2.1.28/test/marccol1.u8.2.lst b/dependencies/yaz-2.1.28/test/marccol1.u8.2.lst new file mode 100644 index 0000000..dc0398f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marccol1.u8.2.lst @@ -0,0 +1,458 @@ +01127cam a2200277 a 4500 +001 70813420 /AJ/r86 +003 DLC +005 19871006084439.0 +008 860826m19689999ja ab l00000 jpn +010 $a 70813420 /AJ/r86 +035 $a (CStRLIN)DCLP86-B14482 +040 $c NNC $d NNC $d DLC +043 $a a-ja--- +050 0 $a DS897.H325 $b H36 1968 +066 $c $1 +245 00 $6 880-01 $a Handa shishi. +260 0 $6 880-02 $a [Handa-shi] : $b Handa-shi, $c Shōwa 43-<59> [1968-<1984> +300 $a v. <1-5, 7-8> : $b ill. ; $c 22 cm. +500 $a Vol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf). +505 1 $a [1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen +651 0 $6 880-03 $a Handa-shi (Japan) +651 0 $6 880-04 $a Handa-shi (Japan) $x History $x Sources. +880 00 $6 245-01/$1 $a 半田 市誌. +880 0 $6 260-02/$1 $a [半田市] : $b 半田市, $c 昭和 43-<59> [1968-<1984> +880 4 $6 651-03/$1 $a 半田市 (Japan) +880 4 $6 651-04/$1 $a 半田市 (Japan) $x History $x Sources. +00885nam a2200229 a 4500 +001 75840215 /ACN/r86 +003 DLC +005 19870219000000.0 +008 860606m19009999ch 00001 chi +010 $a 75840215 /ACN/r86 +035 $a (CStRLIN)DCLP86-B9742 +050 0 $a PL3031.T32 $b L5 +066 $c $1 +245 00 $6 880-01 $a Li tsÊ»ung. +260 0 $6 880-02 $a [Kao-hsiung shih] : $b Wen hua yüan : $b Fa hsing so Sheng su chÊ»u pan she, $c +300 $a v. <4, pts 1-2; v. 5> in <3 > ; $c 22 cm. +500 $a Cover title. +650 0 $a Didactic fiction, Chinese $z Taiwan. +710 20 $6 880-03 $a Kao-hsiung shih wen hua yüan. +880 00 $6 245-01/$1 $a 歷叢. +880 0 $6 260-02/$1 $a [高雄市] : $b 文化院 : $b 發行所 聖書 出版社, $c <民國63-66 [1974-1977 > +880 20 $6 710-03/$1 $a 高雄市 文化院. +01054nam a2200277 a 4500 +001 84226659 /ACN +003 DLC +005 19870219000000.0 +008 860227s1983 cc ac b 00000dchi +010 $a 84226659 /ACN +035 $a (CStRLIN)DCLP86-B3400 +050 0 $a NX90 $b .I18 1983 +066 $c $1 +082 0 $a 174/.97 $2 19 +245 00 $6 880-01 $a I shu chia yü te yü. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a ChÊ»eng-tu : $b Ssu-chÊ»uan jen min chÊ»u pan she : $b Ssu-chÊ»uan sheng hsin hua shu tien fa hsing, $c 1983. +300 $a 2, 3, 4, 244 p. : $b ill., ports. ; $c 19 cm. +440 0 $6 880-04 $a Te yü tsÊ»ung shu +504 $a Bibliography: p. 239-240. +650 0 $a Artists $x Anecdotes, facetiae, satire, etc. +650 0 $a Ethics $x Anecdotes, facetiae, satire, etc. +880 00 $6 245-01/$1 $a 艺术家 与 德育. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a 成都 : $b 四川 人民 出版社 : $b 四川省 新华 书店 发行, $c 1983. +880 0 $6 440-04/$1 $a 德育 丛书 +01390cam a2200349 a 4500 +001 84231405 +003 DLC +005 20001214140017.0 +008 841203m19849999cc b 000 0 chi +010 $a 84231405 +020 $c RMBY0.38 (v. 1) +035 $a (CStRLIN)DCLP84-B5184 +040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC +043 $a a-cc--- +050 00 $a JQ1519.A5 $b C47529 1984 +066 $c $1 +082 00 $a 324.251/075 $2 19 +245 00 $6 880-01 $a Zheng dang xue xi cai liao / $c ben she bian. +250 $6 880-02 $a Di 1 ban. +260 $6 880-03 $a Shenyang : $b Liaoning ren min chu ban she : $b Liaoning sheng xin hua shu dian fa xing, $c 1984- +300 $a v. <1, 3-5, > ; $c 19 cm. +500 $a Colophon title also in pinyin: Zhengdang xuexi cailiao. +504 $a Includes bibliographical references. +610 20 $6 880-04 $a Zhongguo gong chan dang $x Party work. +710 2 $6 880-05 $a Liaoning ren min chu ban she. +740 0 $a Zhengdang xuexi cailiao. +880 00 $6 245-01/$1 $a 整党 学习 材料 / $c 本社 编. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 沈阳 : $b 辽宁 人氱 出版社 : $b 辽宁省 新华 书店 叱行, $c 1984- +880 24 $6 610-04/$1 $a 中国 共产党 $x Party work. +880 2 $6 710-05/$1 $a 辽宁 人氱 出版社. +987 $a PINYIN $b CStRLIN $c 20001212 $d c $e 1.0 +00953nam a2200241 a 4500 +001 85174785 /ACN +003 DLC +005 19870219000000.0 +008 860312s1983 cc a 00000 chi +010 $a 85174785 /ACN +035 $a (CStRLIN)DCLP86-B4377 +043 $a a-cc-hp +050 0 $a GR336.H67 $b H6 1983 +066 $c $1 +082 0 $a 398.2/32/5115 $2 19 +245 00 $6 880-01 $a Ho-pei min chien ku shih hsüan / $c [chÊ»a tÊ»u Chang Wen-hsüeh]. +250 $6 880-02 $a Hsin 1 pan. +260 0 $6 880-03 $a Shih-chia-chuang : $b Hua shan wen i chÊ»u pan she : $b Ho-pei sheng hsin hua shu tien fa hsing, $c 1983. +300 $a 2, 255 p. : $b ill. ; $c 19 cm. +650 0 $a Tales $z China $z Hopeh Province. +880 00 $6 245-01/$1 $a 河北 氱间 故事 选 / $c [插图 张 文学]. +880 $6 250-02/$1 $a 新1版. +880 0 $6 260-03/$1 $a 石家庄 : $b 花山 文艺 出版社 : $b 河北省 新華 書店 叱行, $c 1983. +01219nam a2200325 a 4500 +001 86116930 /ACN +003 DLC +005 19870219000000.0 +008 860430s1984 cc b 00010 chi +010 $a 86116930 /ACN +020 $c RMBY1.00 +035 $a (CStRLIN)DCLP86-B7190 +050 0 $a PN45 $b .C436 1984 +066 $c $1 +082 0 $a 809 $2 19 +100 10 $6 880-01 $a Chang, Hsin-chien. +245 10 $6 880-02 $a Wen hsüeh chi chÊ»u chih shih / $c Chang Hsin-chien. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Ho-fei shih : $b An-hui wen i chÊ»u pan she : $b An-hui sheng hsin hua shu tien fa hsing, $c 1984. +300 $a 196 p. ; $c 19 cm. +440 0 $6 880-05 $a ChÊ»ing nien wen hsüeh tsÊ»ung shu +500 $a Cover title also in pinyin: Wenxuejichuzhishi. +504 $a Includes bibliographies. +650 0 $a Literature. +740 01 $a Wenxuejichuzhishi. +880 10 $6 100-01/$1 $a 章 新建. +880 10 $6 245-02/$1 $a 文学 基础 知识 / $c 章 新建. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 合肥市 : $b 安徽 文艺 出版社 : $b 安徽省 新華 書店 发行, $c 1984. +880 0 $6 440-05/$1 $a 青年 文学 丛书 +01502nam a2200301 a 4500 +001 86117080 /ACN +003 DLC +005 19870219000000.0 +008 860502s1985 cc ab b 00000 chi +010 $a 86117080 /ACN +020 $c RMBY2.30 +035 $a (CStRLIN)DCLP86-B7475 +043 $a a-cc--- +050 0 $a QE537.2.C6 $b S5 1985 +066 $c $1 +082 0 $a 551.2/2/09514 $2 19 +245 00 $6 880-01 $a Shan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu : $b kung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien / $c Kuo chia ti chen chü Lan-chou ti chen yen chiu so. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a Hsi-an : $b Shan-hsi kÊ»o hsüeh chi shu chÊ»u pan she : $b Shan-hsi sheng hsin hua shu tien fa hsing, $c 1985. +300 $a 2, 170 p. : $b ill., maps ; $c 26 cm. +504 $a Bibliography: p. 170. +650 0 $a Earthquakes $z China, Northwest $x Chronology. +710 20 $6 880-04 $a Kuo chia ti chen chü Lan-chou ti chen yen chiu so. +740 01 $a Shan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu. +880 00 $6 245-01/$1 $a 陕甘宁青 四省(区) 强 地震 目录 : $b 公元[前] 1177年-公元 1982å¹´ / $c 国家 地震局 兰州 地震 研究所. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a 西安 : $b 陕西 学 技术 出版社 : $b 陕西省 新華 書店 叱行, $c 1985. +880 20 $6 710-04/$1 $a 国家 地震局 兰州 地震 研究所. +01333cam a2200337 a 4500 +001 86118651 /ACN/r88 +003 DLC +005 19880830123434.0 +008 860218s1985 ch d 00110 chi +010 $a 86118651 /ACN/r88 +020 $c NT$260.00 +035 $a (CStRLIN)DCLP86-B2669 +041 0 $a chieng +050 0 $a SD126 $b .C473 1985 +066 $c $1 +082 0 $a 634.9/03/21 $2 19 +100 10 $6 880-01 $a ChÊ»en, Ming-tsÊ»un. +245 10 $6 880-02 $a Sen lin hsüeh ming tzÊ»u tzÊ»u tien = $b English Chinese dictionary of forestry / $c ChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. +250 $6 880-03 $a ChÊ»u pan. +260 0 $6 880-04 $a TÊ»ai-pei shih : $b Ming shan chÊ»u pan she, $c min kuo 74 [1985] +300 $a 274 p. ; $c 20 cm. +500 $a Includes index. +650 0 $a Forests and forestry $x Dictionaries. +650 0 $a English language $x Dictionaries $x Chinese. +700 10 $6 880-05 $a Huang, Chin-hsien. +740 01 $a English Chinese dictionary of forestry. +880 10 $6 100-01/$1 $a 陳 銘東. +880 10 $6 245-02/$1 $a 森林學 名詞 辭典 = $b English Chinese dictionary of forestry / $c 陳 銘東, 黃 釱仙 合編. +880 $6 250-03/$1 $a 初版. +880 0 $6 260-04/$1 $a 台北市 : $b 名山 出版社, $c 氱國74 [1985] +880 10 $6 700-05/$1 $a 黃 釱仙. +01051nam a2200289 a 4500 +001 86118679 /ACN +003 DLC +005 19870219000000.0 +008 860218s1985 ch 00011 chi +010 $a 86118679 /ACN +035 $a (CStRLIN)DCLP86-B2674 +050 0 $a PL2865.H3 $b H84 1985 +066 $c $1 +082 0 $a 895.1/35 $2 19 +100 10 $6 880-01 $a Huang, Hai, $d 1943- +245 10 $6 880-02 $a Hsing hsing ti hsiang lien / $c Huang Hai chu. +250 $6 880-03 $a ChÊ»u pan. +260 0 $6 880-04 $a TÊ»ai-pei shih : $b Huang kuan chÊ»u pan she, $c min kuo 74 [1985] +300 $a 297 p. ; $c 19 cm. +440 0 $6 880-05 $a Huang kuan tsÊ»ung shu ; $v ti 1143 chung +500 $a Short stories. +650 0 $a Science fiction, Chinese. +880 10 $6 100-01/$1 $a 黃 海, $d 1943- +880 10 $6 245-02/$1 $a 星星 的 項練 / $c 黃 海 著. +880 $6 250-03/$1 $a 初版. +880 0 $6 260-04/$1 $a 台北市 : $b 皇冠 出版社, $c 民國74 [1985] +880 0 $6 440-05/$1 $a 皇冠 叢書 ; $v 第1143種 +01437cam a2200361 a 4500 +001 86119726 +003 DLC +005 20010412140706.0 +008 860403s1985 cc af b 00000 chi +010 $a 86119726 +020 $c RMBY3.90 +035 $a (CStRLIN)DCLP86-B5782 +040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC-R +043 $a a-cc--- +050 00 $a DS751 $b .C4945 1985 +066 $c $1 +082 00 $a 951/.024 $2 19 +245 00 $6 880-01 $a Jian ming Song shi / $c Zhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. +250 $6 880-02 $a Di 1 ban. +260 $6 880-03 $a Beijing : $b Ren min chu ban she : $b Xin hua shu dian fa xing, $c 1985. +300 $a 4, 5, 603 p., [12] p. of plates : $b ill. ; $c 21 cm. +500 $a Colophon title also in pinyin : Jianming Songshi. +504 $a Includes bibliographical references. +651 0 $a China $x History $y Song dynasty, 960-1279. +700 1 $6 880-04 $a Zhou, Baozhu. +700 1 $6 880-05 $a Chen, Zhen. +740 0 $a Jianming Songshi. +880 00 $6 245-01/$1 $a 簡明 宋 史 / $c 周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 北京 : $b 人民 出版社 : $b 新華 書店 发行, $c 1985. +880 1 $6 700-04/$1 $a 周 宝珠. +880 1 $6 700-05/$1 $a 陈 振. +987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 +01114nam a2200289 a 4500 +001 86122256 /ACN +003 DLC +005 19870219000000.0 +008 860303s1984 cc b 00010 chi +010 $a 86122256 /ACN +020 $c RMBY2.80 +035 $a (CStRLIN)DCLP86-B3622 +043 $a a-cc--- +050 0 $a PL2333 $b .L63 1984 +066 $c $1 +082 0 $a 895.1/15/09 $2 19 +100 10 $6 880-01 $a Lo, Han-chÊ»ao. +245 10 $6 880-02 $a Chung-kuo hsien tai shih ko lun / $c [Lo Han-chÊ»ao]. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a [Nan-ching shih] : $b Chiang-su jen min chÊ»u pan she : $b Chiang-su sheng hsin hua shu tien fa hsing, $c 1984. +300 $a 11, 411 p. ; $c 20 cm. +504 $a Includes bibliographical references. +650 0 $a Chinese poetry $y 20th century $x History and criticism. +880 10 $6 100-01/$1 $a 骆 寒超. +880 10 $6 245-02/$1 $a 中国 现代 诗歌 论 / $c [骆 寒超]. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a [南京市] : $b 江苏 人氱 出版社 : $b 江苏省 新華 書店 叱行, $c 1984. +01244nam a2200325 a 4500 +001 86124008 /ACN +003 DLC +005 19870219000000.0 +008 860417s1985 cc j 00010 chi +010 $a 86124008 /ACN +020 $c RMBY0.61 +035 $a (CStRLIN)DCLP86-B6501 +043 $a a-cc--- +050 0 $a DS731.U4 $b H75 1985 +066 $c $1 +082 0 $a 951/.6 $2 19 +100 10 $6 880-01 $a Hsin, She. +245 10 $6 880-02 $a Tsai Wei-wu-erh chih hsiang / $c Hsin She. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Wu-lu-mu-chÊ»i shih : $b Hsin-chiang jen min chÊ»u pan she : $b Hsin-chiang hsin hua shu tien fa hsing, $c 1985. +300 $a 2, 178 p. ; $c 19 cm. +440 0 $6 880-05 $a Tsu kuo ta chia tÊ»ing tsÊ»ung shu +650 0 $a Uigurs $x Juvenile literature. +650 0 $a Ethnology $z China $x Juvenile literatture. +651 0 $a China $x Ethnic relations $x Juvenile literature. +880 10 $6 100-01/$1 $a 辛 涉. +880 10 $6 245-02/$1 $a 在 维吾尔 之 乡 / $c 辛 涉. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 乌鲁木齐市 : $b 新疆 人民 出版社 : $b 新疆 新華 書店 发行, $c 1985. +880 0 $6 440-05/$1 $a 祖国 大家庭 丛书 +01252cam a2200313 a 4500 +001 86124229 +003 DLC +005 20001214140017.0 +008 860703s1985 cc 000 1 chi +010 $a 86124229 +020 $c RMBY1.05 +035 $a (CStRLIN)DCLP86-B11515 +040 $a DLC-R $c DLC-R $d CStRLIN $d DLC +050 00 $a PL2724.H37 $b H7 1985 +066 $c $1 +082 00 $a 895.1/34 $2 19 +100 1 $6 880-01 $a Shen, Qifeng, $d b. 1741. +245 10 $6 880-02 $a Xie duo / $c Shen Qifeng zhu ; Qiao Yuzhou jiao dian. +250 $6 880-03 $a Beijing di 1 ban. +260 $6 880-04 $a Beijing : $b Ren min wen xue chu ban she : $b Xin hua shu dian Beijing fa xing suo fa xing, $c 1985. +300 $a 7, 198 p. ; $c 19 cm. +440 0 $6 880-05 $a Zhongguo xiao shuo shi liao cong shu +500 $a Short stories. +880 1 $6 100-01/$1 $a 沈 起凤, $d b. 1741. +880 10 $6 245-02/$1 $a 谐铎 / $c 沈 起凤 著 ; 乔 雨舟 校点. +880 $6 250-03/$1 $a 北京 第1版. +880 $6 260-04/$1 $a 北京 : $b 人民 文学 出版社 : $b 新华 书店 北京 发行所 发行, $c 1985. +880 0 $6 440-05/$1 $a 中国 小说 史料 丛书 +987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 +01516cam a2200349 a 4500 +001 86124531 /ACN/r93 +003 DLC +005 19930723073715.0 +008 860319s1985 cc 00000 chi +010 $a 86124531 /ACN/r93 +020 $c RMBY1.80 +035 $a (CStRLIN)DCLP86-B4826 +043 $a a-cc--- +050 0 $a HX418.5 $b .C482 1985 +066 $c $1 +082 0 $a 322/.2/0951 $2 19 +245 00 $6 880-01 $a ChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai / $c Chung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. +250 $6 880-02 $a Ti 1 pan. +260 $6 880-03 $a Shang-hai : $b Shang-hai jen min chÊ»u pan she : $b Hsin hua shu tien Shang-hai fa hsing so fa hsing, $c 1985. +300 $a 8, 479 p. ; $c 19 cm. +500 $a Cover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. +650 0 $a Communism $z China. +650 0 $a Working class $z China. +651 0 $a China $x History $y 19th century. +651 0 $a China $x History $y 20th century. +651 0 $a China $x Description and travel. +710 20 $6 880-04 $a Chung kung Shang-hai shih wei. $b Hsüan chÊ»uan pu. +740 01 $a Qinggong zhengzhi lunxun jiaocai. +880 00 $6 245-01/$1 $a 青工 政治 轮训 教材 / $c 中共 上海 市委 宣传部 组织 编写. +880 $6 250-02/$1 $a 第1版. +880 $6 260-03/$1 $a 上海 : $b 上海 人氱 出版社 : $b 新華 書店 上海 叱行所 叱行, $c 1985. +880 20 $6 710-04/$1 $a 中共 上海 市委. $b 宣传部. +01121nam a2200301 a 4500 +001 86125160 /ACN +003 DLC +005 19870219000000.0 +008 860327s1985 cc cfh 00010 chi +010 $a 86125160 /ACN +020 $c RMBY1.05 +035 $a (CStRLIN)DCLP86-B5292 +050 0 $a PL2862.I276 $b W8 1985 +066 $c $1 +082 0 $a 895.1/15 $2 19 +100 10 $6 880-01 $a Hsiao, ChÊ»ing. +245 10 $6 880-02 $a Wu shu hua / $c Hsiao ChÊ»ing. +250 $6 880-03 $a Ti 1 pan. +260 0 $6 880-04 $a Pei-ching : $b Pei-ching shih yüeh wen i chÊ»u pan she : $b Hsin hua shu tien Pei-ching fa hsing so fa hsing, $c 1985. +300 $a 4, 3, 199 p., [2] p. of plates : $b facsim., port. ; $c 19 cm. +440 0 $6 880-05 $a Hung yeh shih tsÊ»ung +500 $a Poems. +740 01 $a 5 shu hua. +880 10 $6 100-01/$1 $a 晓 晴. +880 10 $6 245-02/$1 $a 五束 花/ $c 晓 晴. +880 $6 250-03/$1 $a 第1版. +880 0 $6 260-04/$1 $a 北京 : $b 北京 十月 文艺 出版社 : $b 新华 书店 北京 叱行所 叱行, $c 1985. +880 0 $6 440-05/$1 $a 红叶 诗丛 +01301nam a2200301 a 4500 +001 86125348 /ACN +003 DLC +005 19870219000000.0 +008 860304r19851917ch 00010 chi +010 $a 86125348 /ACN +035 $a (CStRLIN)DCLP86-B3824 +043 $a a-cc--- +050 0 $a DS754.18 $b .C446 1985 +066 $c $1 +082 0 $a 327.51 $2 19 +100 10 $6 880-01 $a Chuang, Ping-hai. +245 10 $6 880-02 $a Wai chiao ssu tÊ»ung lu / $c Chuang Ping-hai pien [tsuan]. +260 0 $6 880-03 $a [TÊ»ai-pei hsien Yung-ho shih] : $b Wen hai chÊ»u pan she, $c min kuo 74 [1985] +300 $a 2, 2, 2, 272 p. ; $c 22 cm. +490 1 $6 880-04 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ; $v 20 +500 $a Reprint. Originally published: 1917? +651 0 $a China $x Foreign relations $y 1644-1912. +830 0 $6 880-05 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ; $v 20. +880 10 $6 100-01/$1 $a 莊 病骸. +880 10 $6 245-02/$1 $a 外交 思痛 錄 / $c 莊 病骸 編[纂]. +880 0 $6 260-03/$1 $a [臺北縣 永和市] : $b 文海 出版社, $c 民國74 [1985] +880 1 $6 490-04/$1 $a 近代 中國 史料 叢刊 三編 : 第二輯 ; $v 20 +880 0 $6 830-05/$1 $a 近代 中國 史料 叢刊 三編 ; $v 20. +01158cam a2200325 a 4500 +001 86125443 +003 DLC +005 20020326070412.0 +008 860304s1985 ch a 00010 chi +010 $a 86125443 +020 $c $9.00 (U.S.) +035 $a (CStRLIN)DCLP86-B3795 +040 $a DLC-R $c DLC-R $d CStRLIN $d DLC-R +043 $a a-cc--- +050 00 $a B5231 $b .L59 1985 +066 $c $1 +082 00 $a 181/.11 $2 19 +100 1 $6 880-01 $a Liu, Shaoji. +245 10 $6 880-02 $a Zhongguo zhe xue xin lun = $b A new view of the Chinese philosophy / $c Liu Shaoji zhu. +250 $6 880-03 $a Chu ban. +260 $6 880-04 $a Taibei Shi : $b Shi jie shu ju, $c min guo 74 [1985] +300 $a 6, 12, 424 p. : $b ill. ; $c 27 cm. +546 $a In Chinese. +650 0 $a Philosophy, Chinese. +740 0 $a New view of the Chinese philosophy. +880 1 $6 100-01/$1 $a 劉 紹基. +880 10 $6 245-02/$1 $a 中國 哲學 新論 = $b A new view of the Chinese philosophy / $c 劉 紹基 豗. +880 $6 250-03/$1 $a 初版. +880 $6 260-04/$1 $a 台北市 : $b 世界 書局, $c 氱國74 [1985] +987 $a PINYIN $b DLC $c 20020326 $d c +01247nam a2200301 a 4500 +001 86154542 /ACN/r86 +003 DLC +005 19870219000000.0 +008 860528s1985 cc 00000 chi +010 $a 86154542 /ACN/r86 +020 $c RMBY3.60 (v. 1) +035 $a (CStRLIN)DCLP86-B9002 +043 $a a-cc--- +050 0 $a HB126.C4 $b C533 1985 +066 $c $1 +082 0 $a 330/.0951 $2 19 +245 00 $6 880-01 $a Chung-kuo ku tai ching chi chu shu hsüan tu / $c Yü Tsu-yao ... [et al.] pien chu. +250 $6 880-02 $a Ti 1 pan. +260 0 $6 880-03 $a [ChÊ»ang-chÊ»un shih] : $b Chi-lin jen min chÊ»u pan she : $b Chi-lin sheng hsin hua shu tien fa hsing, $c 1985. +300 $a 2 v. ; $c 20 cm. +500 $a Colophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. +650 0 $a Economics $z China $x History. +700 10 $6 880-04 $a Yü, Tsu-yao. +740 01 $a Zhongguo gudai jingji zhushu xuandu. +880 00 $6 245-01/$1 $a 中國 古代 經濟 著述 選讀 / $c 虞 祖尧 ... [et al.] 编著. +880 $6 250-02/$1 $a 第1版. +880 0 $6 260-03/$1 $a [长春市] : $b 吉林 人民 出版社 : $b 吉林省 新华 书店 发行, $c 1985. +880 10 $6 700-04/$1 $a 虞 祖尧. +00951nam a2200253 a 4500 +001 86159478 /AK +003 DLC +005 19870219000000.0 +008 860602s1984 ko 00010 kor +010 $a 86159478 /AK +020 $c W2800 +035 $a (CStRLIN)DCLP86-B9357 +040 $a CLASIA $c CLASIA $d DLC +050 0 $a AC148 $b .K589256 1985 +066 $c $1 +100 10 $6 880-01 $a Kim, Tong-gil, $d 1928- +245 10 $6 880-02 $a Tŭrŏra, ttaltŭl a : $b Kim Tong-gil taepÊ»yo esei. +260 0 $6 880-03 $a Sŏul : $b ChÊ»ŏngnyŏnsa, $c 1984 $g (1985 printing) +300 $a 271 p. ; $c 23 cm. +440 0 $6 880-04 $a Uri sidae ŭi taepÊ»yo sanmunsŏn ; $v 1 +880 10 $6 100-01/$1 $a 김 동길, $d 1928- +880 10 $6 245-02/$1 $a 들어라, 딸들 아 : $b 김 동길 대표 에세이. +880 0 $6 260-03/$1 $a 서울 : $b 청년사, $c 1984 $g (1985 printing) +880 0 $6 440-04/$1 $a 우리 시대 의 대표 산문선 ; $v 1 diff --git a/dependencies/yaz-2.1.28/test/marccol1.u8.marc b/dependencies/yaz-2.1.28/test/marccol1.u8.marc new file mode 100644 index 0000000..bfd3e2f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/marccol1.u8.marc @@ -0,0 +1 @@ +01087cam a2200277 a 4500001002000000003000400020005001700024008004100041010002400082035002700106040001800133043001200151050002500163066000700188245002600195260006800221300003600289500012800325505009200453651003000545651004900575880003000624880007000654880003300724880005200757 70813420 /AJ/r86DLC19871006084439.0860826m19689999ja ab l00000 jpn  a 70813420 /AJ/r86 a(CStRLIN)DCLP86-B14482 cNNCdNNCdDLC aa-ja---0 aDS897.H325bH36 1968 c$1006880-01aHanda shishi.0 6880-02a[Handa-shi] :bHanda-shi,cShōwa 43-<59> [1968-<1984> av. <1-5, 7-8> :bill. ;c22 cm. aVol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf).1 a[1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen 06880-03aHanda-shi (Japan) 06880-04aHanda-shi (Japan)xHistoryxSources.006245-01/$1a半田 市誌.0 6260-02/$1a[半田市] :b半田市,c昭和 43-<59> [1968-<1984> 46651-03/$1a半田市 (Japan) 46651-04/$1a半田市 (Japan)xHistoryxSources.00847nam a2200229 a 4500001002100000003000400021005001700025008004100042010002500083035002600108050001900134066000700153245002400160260012100184300004600305500001700351650003900368710004400407880002300451880010600474880003700580 75840215 /ACN/r86DLC19870219000000.0860606m19009999ch 00001 chi  a 75840215 /ACN/r86 a(CStRLIN)DCLP86-B97420 aPL3031.T32bL5 c$1006880-01aLi tsÊ»ung.0 6880-02a[Kao-hsiung shih] :bWen hua yüan :bFa hsing so Sheng su chÊ»u pan she,c av. <4, pts 1-2; v. 5> in <3 > ;c22 cm. aCover title. 0aDidactic fiction, ChinesezTaiwan.206880-03aKao-hsiung shih wen hua yüan.006245-01/$1a歷叢.0 6260-02/$1a[高雄市] :b文化院 :b發行所 聖書 出版社,c<民國63-66 [1974-1977 >206710-03/$1a高雄市 文化院.01020nam a2200277 a 4500001001700000003000400017005001700021008004100038010002100079035002600100050002000126066000700146082001600153245003700169250002200206260011600228300004600344440003200390504003000422650004700452650004600499880004100545880002400586880010100610880003100711 84226659 /ACNDLC19870219000000.0860227s1983 cc ac b 00000dchi  a 84226659 /ACN a(CStRLIN)DCLP86-B34000 aNX90b.I18 1983 c$10 a174/.97219006880-01aI shu chia yü te yü. 6880-02aTi 1 pan.0 6880-03aChÊ»eng-tu :bSsu-chÊ»uan jen min chÊ»u pan she :bSsu-chÊ»uan sheng hsin hua shu tien fa hsing,c1983. a2, 3, 4, 244 p. :bill., ports. ;c19 cm. 06880-04aTe yü tsÊ»ung shu aBibliography: p. 239-240. 0aArtistsxAnecdotes, facetiae, satire, etc. 0aEthicsxAnecdotes, facetiae, satire, etc.006245-01/$1a艺术家 与 德育. 6250-02/$1a第1版.0 6260-03/$1a成都 :b四川 人民 出版社 :b四川省 新华 书店 发行,c1983. 06440-04/$1a德育 丛书01336cam a2200349 a 4500001001300000003000400013005001700017008004100034010001700075020002000092035002600112040003800138043001200176050002700188066000700215082002000222245005600242250002200298260010400320300003000424500006000454504004100514610004900555710004200604740002900646880005700675880002400732880010100756880004700857880004400904987003800948 84231405 DLC20001214140017.0841203m19849999cc b 000 0 chi  a 84231405  cRMBY0.38 (v. 1) a(CStRLIN)DCLP84-B5184 aDLC-RcDLC-RdDLC-RdCStRLINdDLC aa-cc---00aJQ1519.A5bC47529 1984 c$100a324.251/075219006880-01aZheng dang xue xi cai liao /cben she bian. 6880-02aDi 1 ban. 6880-03aShenyang :bLiaoning ren min chu ban she :bLiaoning sheng xin hua shu dian fa xing,c1984- av. <1, 3-5, > ;c19 cm. aColophon title also in pinyin: Zhengdang xuexi cailiao. aIncludes bibliographical references.206880-04aZhongguo gong chan dangxParty work.2 6880-05aLiaoning ren min chu ban she.0 aZhengdang xuexi cailiao.006245-01/$1a整党 学习 材料 /c本社 编. 6250-02/$1a第1版. 6260-03/$1a沈阳 :b辽宁 人氱 出版社 :b辽宁省 新华 书店 叱行,c1984-246610-04/$1a中国 共产党xParty work.2 6710-05/$1a辽宁 人氱 出版社. aPINYINbCStRLINc20001212dce1.000916nam a2200241 a 4500001001700000003000400017005001700021008004100038010002100079035002600100043001200126050002300138066000700161082002200168245008000190250002400270260011200294300003200406650003400438880007400472880002400546880010400570 85174785 /ACNDLC19870219000000.0860312s1983 cc a 00000 chi  a 85174785 /ACN a(CStRLIN)DCLP86-B4377 aa-cc-hp0 aGR336.H67bH6 1983 c$10 a398.2/32/5115219006880-01aHo-pei min chien ku shih hsüan /c[chÊ»a tÊ»u Chang Wen-hsüeh]. 6880-02aHsin 1 pan.0 6880-03aShih-chia-chuang :bHua shan wen i chÊ»u pan she :bHo-pei sheng hsin hua shu tien fa hsing,c1983. a2, 255 p. :bill. ;c19 cm. 0aTaleszChinazHopeh Province.006245-01/$1a河北 氱间 故事 选 /c[插图 张 文学]. 6250-02/$1a新1版.0 6260-03/$1a石家庄 :b花山 文艺 出版社 :b河北省 新華 書店 叱行,c1983.01171nam a2200325 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113050002100139066000700160082001200167100003100179245006500210250002200275260010500297300002100402440004900423500005100472504002900523650001600552740002300568880002900591880005700620880002400677880010400701880004000805 86116930 /ACNDLC19870219000000.0860430s1984 cc b 00010 chi  a 86116930 /ACN cRMBY1.00 a(CStRLIN)DCLP86-B71900 aPN45b.C436 1984 c$10 a809219106880-01aChang, Hsin-chien.106880-02aWen hsüeh chi chÊ»u chih shih /cChang Hsin-chien. 6880-03aTi 1 pan.0 6880-04aHo-fei shih :bAn-hui wen i chÊ»u pan she :bAn-hui sheng hsin hua shu tien fa hsing,c1984. a196 p. ;c19 cm. 06880-05aChÊ»ing nien wen hsüeh tsÊ»ung shu aCover title also in pinyin: Wenxuejichuzhishi. aIncludes bibliographies. 0aLiterature.01aWenxuejichuzhishi.106100-01/$1a章 新建.106245-02/$1a文学 基础 知识 /c章 新建. 6250-03/$1a第1版.0 6260-04/$1a合肥市 :b安徽 文艺 出版社 :b安徽省 新華 書店 发行,c1984. 06440-05/$1a青年 文学 丛书01437nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002400151066000700175082002200182245019000204250002200394260011900416300003800535504002600573650004700599710006500646740006800711880015700779880002400936880011000960880006501070 86117080 /ACNDLC19870219000000.0860502s1985 cc ab b 00000 chi  a 86117080 /ACN cRMBY2.30 a(CStRLIN)DCLP86-B7475 aa-cc---0 aQE537.2.C6bS5 1985 c$10 a551.2/2/09514219006880-01aShan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu :bkung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien /cKuo chia ti chen chü Lan-chou ti chen yen chiu so. 6880-02aTi 1 pan.0 6880-03aHsi-an :bShan-hsi kÊ»o hsüeh chi shu chÊ»u pan she :bShan-hsi sheng hsin hua shu tien fa hsing,c1985. a2, 170 p. :bill., maps ;c26 cm. aBibliography: p. 170. 0aEarthquakeszChina, NorthwestxChronology.206880-04aKuo chia ti chen chü Lan-chou ti chen yen chiu so.01aShan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu.006245-01/$1a陕甘宁青 四省(区) 强 地震 目录 :b公元[前] 1177年-公元 1982å¹´ /c国家 地震局 兰州 地震 研究所. 6250-02/$1a第1版.0 6260-03/$1a西安 :b陕西 秱学 技术 出版社 :b陕西省 新華 書店 叱行,c1985.206710-04/$1a国家 地震局 兰州 地震 研究所.01289cam a2200337 a 4500001002100000003000400021005001700025008004100042010002500083020001400108035002600122041001100148050002200159066000700181082002000188100003300208245014100241250002300382260007400405300002100479500002000500650004000520650004500560700003100605740004400636880002900680880012500709880002300834880006500857880002900922 86118651 /ACN/r88DLC19880830123434.0860218s1985 ch d 00110 chi  a 86118651 /ACN/r88 cNT$260.00 a(CStRLIN)DCLP86-B26690 achieng0 aSD126b.C473 1985 c$10 a634.9/03/21219106880-01aChÊ»en, Ming-tsÊ»un.106880-02aSen lin hsüeh ming tzÊ»u tzÊ»u tien =bEnglish Chinese dictionary of forestry /cChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. 6880-03aChÊ»u pan.0 6880-04aTÊ»ai-pei shih :bMing shan chÊ»u pan she,cmin kuo 74 [1985] a274 p. ;c20 cm. aIncludes index. 0aForests and forestryxDictionaries. 0aEnglish languagexDictionariesxChinese.106880-05aHuang, Chin-hsien.01aEnglish Chinese dictionary of forestry.106100-01/$1a陳 銘東.106245-02/$1a森林學 名詞 辭典 =bEnglish Chinese dictionary of forestry /c陳 銘東, 黃 釱仙 合編. 6250-03/$1a初版.0 6260-04/$1a台北市 :b名山 出版社,c氱國74 [1985]106700-05/$1a黃 釱仙.00995nam a2200289 a 4500001001700000003000400017005001700021008004100038010002100079035002600100050002400126066000700150082001700157100003100174245005700205250002300262260007500285300002100360440005200381500001900433650003000452880003300482880005700515880002300572880006500595880004500660 86118679 /ACNDLC19870219000000.0860218s1985 ch 00011 chi  a 86118679 /ACN a(CStRLIN)DCLP86-B26740 aPL2865.H3bH84 1985 c$10 a895.1/35219106880-01aHuang, Hai,d1943-106880-02aHsing hsing ti hsiang lien /cHuang Hai chu. 6880-03aChÊ»u pan.0 6880-04aTÊ»ai-pei shih :bHuang kuan chÊ»u pan she,cmin kuo 74 [1985] a297 p. ;c19 cm. 06880-05aHuang kuan tsÊ»ung shu ;vti 1143 chung aShort stories. 0aScience fiction, Chinese.106100-01/$1a黃 海,d1943-106245-02/$1a星星 的 項練 /c黃 海 著. 6250-03/$1a初版.0 6260-04/$1a台北市 :b皇冠 出版社,c民國74 [1985] 06440-05/$1a皇冠 叢書 ;v第1143種01365cam a2200361 a 4500001001300000003000400013005001700017008004100034010001700075020001300092035002600105040004000131043001200171050002300183066000700206082001700213245010300230250002200333260007900355300005400434500005400488504004100542651004500583700002600628700002400654740002200678880010600700880002400806880008000830880002900910880002600939987003800965 86119726 DLC20010412140706.0860403s1985 cc af b 00000 chi  a 86119726  cRMBY3.90 a(CStRLIN)DCLP86-B5782 aDLC-RcDLC-RdDLC-RdCStRLINdDLC-R aa-cc---00aDS751b.C4945 1985 c$100a951/.024219006880-01aJian ming Song shi /cZhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. 6880-02aDi 1 ban. 6880-03aBeijing :bRen min chu ban she :bXin hua shu dian fa xing,c1985. a4, 5, 603 p., [12] p. of plates :bill. ;c21 cm. aColophon title also in pinyin : Jianming Songshi. aIncludes bibliographical references. 0aChinaxHistoryySong dynasty, 960-1279.1 6880-04aZhou, Baozhu.1 6880-05aChen, Zhen.0 aJianming Songshi.006245-01/$1a簡明 宋 史 /c周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. 6250-02/$1a第1版. 6260-03/$1a北京 :b人民 出版社 :b新華 書店 发行,c1985.1 6700-04/$1a周 宝珠.1 6700-05/$1a陈 振. aPINYINbCStRLINc20001214dce1.001069nam a2200289 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002200151066000700173082002000180100002800200245006400228250002200292260011800314300002500432504004100457650005700498880002900555880006500584880002400649880010600673 86122256 /ACNDLC19870219000000.0860303s1984 cc b 00010 chi  a 86122256 /ACN cRMBY2.80 a(CStRLIN)DCLP86-B3622 aa-cc---0 aPL2333b.L63 1984 c$10 a895.1/15/09219106880-01aLo, Han-chÊ»ao.106880-02aChung-kuo hsien tai shih ko lun /c[Lo Han-chÊ»ao]. 6880-03aTi 1 pan.0 6880-04a[Nan-ching shih] :bChiang-su jen min chÊ»u pan she :bChiang-su sheng hsin hua shu tien fa hsing,c1984. a11, 411 p. ;c20 cm. aIncludes bibliographical references. 0aChinese poetryy20th centuryxHistory and criticism.106100-01/$1a骆 寒超.106245-02/$1a中国 现代 诗歌 论 /c[骆 寒超]. 6250-03/$1a第1版.0 6260-04/$1a[南京市] :b江苏 人氱 出版社 :b江苏省 新華 書店 叱行,c1984.01194nam a2200325 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002300151066000700174082001500181100002300196245005300219250002200272260011900294300002400413440004700437650003300484650004400517651005000561880002600611880005700637880002400694880010700718880004300825 86124008 /ACNDLC19870219000000.0860417s1985 cc j 00010 chi  a 86124008 /ACN cRMBY0.61 a(CStRLIN)DCLP86-B6501 aa-cc---0 aDS731.U4bH75 1985 c$10 a951/.6219106880-01aHsin, She.106880-02aTsai Wei-wu-erh chih hsiang /cHsin She. 6880-03aTi 1 pan.0 6880-04aWu-lu-mu-chÊ»i shih :bHsin-chiang jen min chÊ»u pan she :bHsin-chiang hsin hua shu tien fa hsing,c1985. a2, 178 p. ;c19 cm. 06880-05aTsu kuo ta chia tÊ»ing tsÊ»ung shu 0aUigursxJuvenile literature. 0aEthnologyzChinaxJuvenile literatture. 0aChinaxEthnic relationsxJuvenile literature.106100-01/$1a辛 涉.106245-02/$1a在 维吾尔 之 乡 /c辛 涉. 6250-03/$1a第1版.0 6260-04/$1a乌鲁木齐市 :b新疆 人民 出版社 :b新疆 新華 書店 发行,c1985. 06440-05/$1a祖国 大家庭 丛书01192cam a2200313 a 4500001001300000003000400013005001700017008004100034010001700075020001300092035002700105040003100132050002400163066000700187082001700194100003600211245006400247250003000311260010700341300002400448440004900472500001900521880003900540880006900579880003300648880011000681880004900791987003800840 86124229 DLC20001214140017.0860703s1985 cc 000 1 chi  a 86124229  cRMBY1.05 a(CStRLIN)DCLP86-B11515 aDLC-RcDLC-RdCStRLINdDLC00aPL2724.H37bH7 1985 c$100a895.1/342191 6880-01aShen, Qifeng,db. 1741.106880-02aXie duo /cShen Qifeng zhu ; Qiao Yuzhou jiao dian. 6880-03aBeijing di 1 ban. 6880-04aBeijing :bRen min wen xue chu ban she :bXin hua shu dian Beijing fa xing suo fa xing,c1985. a7, 198 p. ;c19 cm. 06880-05aZhongguo xiao shuo shi liao cong shu aShort stories.1 6100-01/$1a沈 起凤,db. 1741.106245-02/$1a谐铎 /c沈 起凤 著 ; 乔 雨舟 校点. 6250-03/$1a北京 第1版. 6260-04/$1a北京 :b人民 文学 出版社 :b新华 书店 北京 发行所 发行,c1985. 06440-05/$1a中国 小说 史料 丛书 aPINYINbCStRLINc20001214dce1.001470cam a2200349 a 4500001002100000003000400021005001700025008004100042010002500083020001300108035002600121043001200147050002400159066000700183082002000190245013300210250002200343260011700365300002400482500006600506650002200572650002600594651003400620651003400654651003500688710006400723740003800787880010800825880002400933880011000957880005301067 86124531 /ACN/r93DLC19930723073715.0860319s1985 cc 00000 chi  a 86124531 /ACN/r93 cRMBY1.80 a(CStRLIN)DCLP86-B4826 aa-cc---0 aHX418.5b.C482 1985 c$10 a322/.2/0951219006880-01aChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai /cChung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. 6880-02aTi 1 pan. 6880-03aShang-hai :bShang-hai jen min chÊ»u pan she :bHsin hua shu tien Shang-hai fa hsing so fa hsing,c1985. a8, 479 p. ;c19 cm. aCover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. 0aCommunismzChina. 0aWorking classzChina. 0aChinaxHistoryy19th century. 0aChinaxHistoryy20th century. 0aChinaxDescription and travel.206880-04aChung kung Shang-hai shih wei.bHsüan chÊ»uan pu.01aQinggong zhengzhi lunxun jiaocai.006245-01/$1a青工 政治 轮训 教材 /c中共 上海 市委 宣传部 组织 编写. 6250-02/$1a第1版. 6260-03/$1a上海 :b上海 人氱 出版社 :b新華 書店 上海 叱行所 叱行,c1985.206710-04/$1a中共 上海 市委.b宣传部.01072nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113050002500139066000700164082001700171100002800188245004100216250002200257260012700279300006300406440003400469500001100503740001500514880002600529880004100555880002400596880011900620880003100739 86125160 /ACNDLC19870219000000.0860327s1985 cc cfh 00010 chi  a 86125160 /ACN cRMBY1.05 a(CStRLIN)DCLP86-B52920 aPL2862.I276bW8 1985 c$10 a895.1/15219106880-01aHsiao, ChÊ»ing.106880-02aWu shu hua /cHsiao ChÊ»ing. 6880-03aTi 1 pan.0 6880-04aPei-ching :bPei-ching shih yüeh wen i chÊ»u pan she :bHsin hua shu tien Pei-ching fa hsing so fa hsing,c1985. a4, 3, 199 p., [2] p. of plates :bfacsim., port. ;c19 cm. 06880-05aHung yeh shih tsÊ»ung aPoems.01a5 shu hua.106100-01/$1a晓 晴.106245-02/$1a五束 花/c晓 晴. 6250-03/$1a第1版.0 6260-04/$1a北京 :b北京 十月 文艺 出版社 :b新华 书店 北京 叱行所 叱行,c1985. 06440-05/$1a红叶 诗丛01248nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079035002600100043001200126050002500138066000700163082001500170100003000185245006900215260008800284300003000372490007900402500004100481651004100522830006900563880002900632880006500661880007900726880007600805880006500881 86125348 /ACNDLC19870219000000.0860304r19851917ch 00010 chi  a 86125348 /ACN a(CStRLIN)DCLP86-B3824 aa-cc---0 aDS754.18b.C446 1985 c$10 a327.51219106880-01aChuang, Ping-hai.106880-02aWai chiao ssu tÊ»ung lu /cChuang Ping-hai pien [tsuan].0 6880-03a[TÊ»ai-pei hsien Yung-ho shih] :bWen hai chÊ»u pan she,cmin kuo 74 [1985] a2, 2, 2, 272 p. ;c22 cm.1 6880-04aChin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ;v20 aReprint. Originally published: 1917? 0aChinaxForeign relationsy1644-1912. 06880-05aChin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ;v20.106100-01/$1a莊 病骸.106245-02/$1a外交 思痛 錄 /c莊 病骸 編[纂].0 6260-03/$1a[臺北縣 永和市] :b文海 出版社,c民國74 [1985]1 6490-04/$1a近代 中國 史料 叢刊 三編 : 第二輯 ;v20 06830-05/$1a近代 中國 史料 叢刊 三編 ;v20.01116cam a2200325 a 4500001001300000003000400013005001700017008004100034010001700075020001700092035002600109040003300135043001200168050002100180066000700201082001600208100002500224245009600249250002100345260006100366300003600427546001600463650002500479740004000504880002900544880010300573880002300676880006200699987002900761 86125443 DLC20020326070412.0860304s1985 ch a 00010 chi  a 86125443  c$9.00 (U.S.) a(CStRLIN)DCLP86-B3795 aDLC-RcDLC-RdCStRLINdDLC-R aa-cc---00aB5231b.L59 1985 c$100a181/.112191 6880-01aLiu, Shaoji.106880-02aZhongguo zhe xue xin lun =bA new view of the Chinese philosophy /cLiu Shaoji zhu. 6880-03aChu ban. 6880-04aTaibei Shi :bShi jie shu ju,cmin guo 74 [1985] a6, 12, 424 p. :bill. ;c27 cm. aIn Chinese. 0aPhilosophy, Chinese.0 aNew view of the Chinese philosophy.1 6100-01/$1a劉 紹基.106245-02/$1a中國 哲學 新論 =bA new view of the Chinese philosophy /c劉 紹基 豗. 6250-03/$1a初版. 6260-04/$1a台北市 :b世界 書局,c氱國74 [1985] aPINYINbDLCc20020326dc01199nam a2200301 a 4500001002100000003000400021005001700025008004100042010002500083020002000108035002600128043001200154050002400166066000700190082001800197245009700215250002200312260011900334300001900453500007200472650003100544700002700575740004100602880009500643880002400738880010600762880002900868 86154542 /ACN/r86DLC19870219000000.0860528s1985 cc 00000 chi  a 86154542 /ACN/r86 cRMBY3.60 (v. 1) a(CStRLIN)DCLP86-B9002 aa-cc---0 aHB126.C4bC533 1985 c$10 a330/.0951219006880-01aChung-kuo ku tai ching chi chu shu hsüan tu /cYü Tsu-yao ... [et al.] pien chu. 6880-02aTi 1 pan.0 6880-03a[ChÊ»ang-chÊ»un shih] :bChi-lin jen min chÊ»u pan she :bChi-lin sheng hsin hua shu tien fa hsing,c1985. a2 v. ;c20 cm. aColophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. 0aEconomicszChinaxHistory.106880-04aYü, Tsu-yao.01aZhongguo gudai jingji zhushu xuandu.006245-01/$1a中國 古代 經濟 著述 選讀 /c虞 祖尧 ... [et al.] 编著. 6250-02/$1a第1版.0 6260-03/$1a[长春市] :b吉林 人民 出版社 :b吉林省 新华 书店 发行,c1985.106700-04/$1a虞 祖尧.00920nam a2200253 a 4500001001600000003000400016005001700020008004100037010002000078020001000098035002600108040002400134050002500158066000700183100003400190245006700224260006400291300002100355440005300376880003600429880007900465880005900544880006300603 86159478 /AKDLC19870219000000.0860602s1984 ko 00010 kor  a 86159478 /AK cW2800 a(CStRLIN)DCLP86-B9357 aCLASIAcCLASIAdDLC0 aAC148b.K589256 1985 c$1106880-01aKim, Tong-gil,d1928-106880-02aTŭrŏra, ttaltŭl a :bKim Tong-gil taepÊ»yo esei.0 6880-03aSŏul :bChÊ»ŏngnyŏnsa,c1984g(1985 printing) a271 p. ;c23 cm. 06880-04aUri sidae ŭi taepÊ»yo sanmunsŏn ;v1106100-01/$1a김 동길,d1928-106245-02/$1a들어라, 딸들 아 :b김 동길 대표 에세이.0 6260-03/$1a서울 :b청년사,c1984g(1985 printing) 06440-04/$1a우리 시대 의 대표 산문선 ;v1 \ No newline at end of file diff --git a/dependencies/yaz-2.1.28/test/nfatest1.c b/dependencies/yaz-2.1.28/test/nfatest1.c new file mode 100644 index 0000000..e6bc584 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/nfatest1.c @@ -0,0 +1,440 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nfatest1.c,v 1.6 2006/05/10 13:58:47 heikki Exp $ + * + */ + + +#include +#include +#include +#include +#include + + +char *printfunc(void *result) { + static char buf[200]; + sprintf(buf, "\"%s\"", (char*) result); + return buf; +} + +char *printfunc2(void *result) { + static char buf[200]; + sprintf(buf,"(%p)", result); + return buf; +} + +void test_match(yaz_nfa *n, + yaz_nfa_char *buf, size_t buflen, + int expcode, char *expstr) { + yaz_nfa_char *c = buf; + yaz_nfa_char *cp1, *cp2; + void *resptr = 0; + int i, bi; + size_t buflen2 = buflen; + i = yaz_nfa_match(n,&c, &buflen2,&resptr); + if (yaz_test_get_verbosity()>3) + printf("\n'%s' returned %d. Moved c by %d, and resulted in '%s'\n", + expstr, i, (c-buf),(char*)resptr); + YAZ_CHECK_EQ(buflen-buflen2, c-buf); + YAZ_CHECK_EQ(i, expcode); + if (i==0) + YAZ_CHECK_EQ(strcmp(expstr,(char*)resptr), 0); + i = 0; + bi = 0; + while((bi!=2) && (yaz_test_get_verbosity()>3)){ + bi = yaz_nfa_get_backref(n, i,&cp1,&cp2); + if (bi==0 && ( cp1 || cp2 ) ) { + printf(" got backref %d of %d chars (%p to %p): '", + i, cp2-cp1+1, cp1, cp2); + while (cp2-cp1 >= 0 ) + printf("%c", *cp1++); + printf("'\n"); + } + i++; + } +} + +void construction_test() { + yaz_nfa* n= yaz_nfa_init(); + yaz_nfa_char *cp, *cp1, *cp2; + yaz_nfa_state *s, *s0, *s1, *s2, *s3, *s4, *s5; + int i; + yaz_nfa_char seq1[]={'p', 'r', 'e', 'f', 'i', 'x', 0}; + yaz_nfa_char seq2[]={'p', 'r', 'e', 'l', 'i', 'm', 0}; + yaz_nfa_char tst1[]={'c', 0}; + yaz_nfa_char tst2[]={'c', 'k', 0}; + yaz_nfa_char tst3[]={'c', 'x', 0}; + yaz_nfa_char tst4[]={'z', 'k', 0}; + yaz_nfa_char tst5[]={'y', 'k', 'l', 'k', 'k', 'l', 'k', 'd', 0}; + yaz_nfa_char tst6[]={'x', 'z', 'k', 'a', 'b', 0}; + void *p; + size_t sz; + + YAZ_CHECK(n); + + s = yaz_nfa_get_first(n); + YAZ_CHECK(!s); + + s0 = yaz_nfa_add_state(n); + + s = yaz_nfa_get_first(n); + YAZ_CHECK(s); + s = yaz_nfa_get_next(n, s); + YAZ_CHECK(!s); + + s1 = yaz_nfa_add_state(n); + i = yaz_nfa_set_result(n, s1, "first"); + YAZ_CHECK_EQ(i, 0); + + i = yaz_nfa_set_result(n, s1, "DUPLICATE"); + YAZ_CHECK_EQ(i, YAZ_NFA_ALREADY); + + p = yaz_nfa_get_result(n, s1); + YAZ_CHECK(p); + YAZ_CHECK( strcmp((char*)p, "first")==0 ); + + i = yaz_nfa_set_result(n, s1, 0); + YAZ_CHECK_EQ(i, 0); + p = yaz_nfa_get_result(n, s1); + YAZ_CHECK(!p); + i = yaz_nfa_set_result(n, s1, "first"); + YAZ_CHECK_EQ(i, 0); + + s2 = yaz_nfa_add_state(n); + s3 = yaz_nfa_add_state(n); + yaz_nfa_set_result(n, s3, "a-k, x-z"); + + s = yaz_nfa_get_first(n); + YAZ_CHECK(s); + s = yaz_nfa_get_next(n, s); + YAZ_CHECK(s); + + + yaz_nfa_add_transition(n, s0, s1, 'a', 'k'); + yaz_nfa_add_transition(n, s1, s1, 'k', 'k'); + yaz_nfa_add_transition(n, s0, s2, 'p', 'p'); + yaz_nfa_add_transition(n, s1, s3, 'x', 'z'); + + s = yaz_nfa_add_range(n, 0, 'k', 's' ); + yaz_nfa_set_result(n, s, "K-S"); + + s4 = yaz_nfa_add_range(n, s2, 'l', 'r' ); + s5 = yaz_nfa_add_range(n, s2, 'l', 'r' ); + YAZ_CHECK((s4==s5)); + s = yaz_nfa_add_range(n, 0, 'c', 'c' ); + + s = yaz_nfa_add_range(n, 0, 'z', 'z' ); + yaz_nfa_add_empty_transition(n, s, s); + yaz_nfa_set_result(n, s, "loop"); + + s = yaz_nfa_add_range(n, 0, 'y', 'y' ); + yaz_nfa_set_backref_point(n, s, 1, 1); + s1 = yaz_nfa_add_state(n); + yaz_nfa_add_empty_transition(n, s, s1); + s = s1; + yaz_nfa_add_transition(n, s, s, 'k', 'l'); + s = yaz_nfa_add_range(n, s, 'd', 'd' ); + yaz_nfa_set_result(n, s, "y k+ d"); + yaz_nfa_set_backref_point(n, s, 1, 0); + + s = yaz_nfa_add_sequence(n, 0, seq1,6 ); + yaz_nfa_set_result(n, s, "PREFIX"); + s = yaz_nfa_add_sequence(n, 0, seq2,6 ); + yaz_nfa_set_result(n, s, "PRELIM"); + + s = yaz_nfa_add_range(n, 0, 'x', 'x' ); + i=yaz_nfa_set_backref_point(n, s, 2, 0); + YAZ_CHECK_EQ(i,YAZ_NFA_NOSTART); + i=yaz_nfa_set_backref_point(n, s, 2, 1); + YAZ_CHECK_EQ(i,YAZ_NFA_SUCCESS); + i=yaz_nfa_set_backref_point(n, s, 2, 1); + YAZ_CHECK_EQ(i,YAZ_NFA_ALREADY); + s1 = yaz_nfa_add_sequence(n, s, tst4,2); + yaz_nfa_set_backref_point(n, s1, 2, 0); + yaz_nfa_set_result(n, s1, "xzk"); + + /* check return codes before doing any matches */ + i = yaz_nfa_get_backref(n, 0, &cp1, &cp2 ); + YAZ_CHECK_EQ(i, YAZ_NFA_NOMATCH); + i = yaz_nfa_get_backref(n, 3, &cp1, &cp2 ); + YAZ_CHECK_EQ(i, YAZ_NFA_NOSUCHBACKREF ); + i = yaz_nfa_get_backref(n, 1, &cp1, &cp2 ); + YAZ_CHECK_EQ(i, YAZ_NFA_NOMATCH ); + + + if (yaz_test_get_verbosity()>3) + yaz_nfa_dump(0, n, printfunc); + + test_match(n, seq2, 3, YAZ_NFA_OVERRUN, "K-S"); + test_match(n, seq2, 6, YAZ_NFA_SUCCESS, "PRELIM"); + test_match(n, tst1, 3, YAZ_NFA_SUCCESS, "first"); + test_match(n, tst2, 3, YAZ_NFA_SUCCESS, "first"); + test_match(n, tst3, 3, YAZ_NFA_SUCCESS, "a-k, x-z"); + test_match(n, tst4, 9, YAZ_NFA_LOOP, "loop"); + test_match(n, tst5, 9, YAZ_NFA_SUCCESS, "y k+ d"); + + cp = tst6; /* xzkab */ + sz = 8; + i = yaz_nfa_match(n, &cp, &sz, &p); + YAZ_CHECK_EQ(i, YAZ_NFA_SUCCESS); + i = yaz_nfa_get_backref(n, 2, &cp1, &cp2 ); + YAZ_CHECK_EQ(i, 0); + YAZ_CHECK_EQ(cp2-cp1+1,2); + YAZ_CHECK_EQ(*cp1, 'z' ); + YAZ_CHECK_EQ(*cp2, 'k' ); + if (yaz_test_get_verbosity()>3) + printf("backref from %p '%c' to %p '%c' is %d long. sz is now %d\n", + cp1, *cp1, cp2, *cp2, cp2-cp1+1, sz ); + + yaz_nfa_destroy(n); +} + +void converter_test() { + yaz_nfa* n= yaz_nfa_init(); + yaz_nfa_converter *c1, *c2, *c3; + yaz_nfa_char str1[]={'a','b','c'}; + yaz_nfa_char seq1[]={'A','B','C'}; + yaz_nfa_char seq2[]={'k','m','n','m','x','P','Q','X',0}; + yaz_nfa_char outbuf[1024]; + yaz_nfa_char *outp, *cp, *cp1, *cp2; + yaz_nfa_state *s, *s2; + void *vp; + int i; + size_t sz; + + c1=yaz_nfa_create_string_converter(n,str1,3); + + for(i=0;i<1024;i++) + outbuf[i]=10000+i; + outp=outbuf; + sz=1; + i=yaz_nfa_run_converters(n, c1, &outp, &sz); + YAZ_CHECK_EQ(i,4); /* overrun */ + YAZ_CHECK_EQ(outbuf[0],'a'); + YAZ_CHECK_EQ(outbuf[1],10000+1); + + for(i=0;i<1024;i++) + outbuf[i]=10000+i; + outp=outbuf; + sz=3; + i=yaz_nfa_run_converters(n, c1, &outp, &sz); + YAZ_CHECK_EQ(i,0); + YAZ_CHECK_EQ(outbuf[0],'a'); + YAZ_CHECK_EQ(outbuf[1],'b'); + YAZ_CHECK_EQ(outbuf[2],'c'); + YAZ_CHECK_EQ(outbuf[3],10000+3); + YAZ_CHECK_EQ(sz,0); + + c2=yaz_nfa_create_string_converter(n,str1,2); + yaz_nfa_append_converter(n,c1,c2); + + for(i=0;i<1024;i++) + outbuf[i]=10000+i; + outp=outbuf; + sz=10; + i=yaz_nfa_run_converters(n, c1, &outp, &sz); + YAZ_CHECK_EQ(i,0); + YAZ_CHECK_EQ(outbuf[0],'a'); + YAZ_CHECK_EQ(outbuf[1],'b'); + YAZ_CHECK_EQ(outbuf[2],'c'); + YAZ_CHECK_EQ(outbuf[3],'a'); + YAZ_CHECK_EQ(outbuf[4],'b'); + YAZ_CHECK_EQ(outbuf[5],10000+5); + YAZ_CHECK_EQ(sz,5); + + /* ABC -> abcab */ + (void) yaz_nfa_add_state(n);/* start state */ + s=yaz_nfa_add_state(n); + yaz_nfa_add_empty_transition(n,0,s); + yaz_nfa_set_backref_point(n,s,1,1); + s=yaz_nfa_add_sequence(n, s, seq1,3 ); + yaz_nfa_set_result(n,s,c1); + yaz_nfa_set_backref_point(n,s,1,0); + + /* ([k-o][m-n]*)x -> \1 */ + s=yaz_nfa_add_state(n); + yaz_nfa_add_empty_transition(n,0,s); + yaz_nfa_set_backref_point(n,s,2,1); + s2=yaz_nfa_add_state(n); + yaz_nfa_add_transition(n,s,s2,'k','o'); + yaz_nfa_add_transition(n,s2,s2,'m','n'); + s=yaz_nfa_add_state(n); + yaz_nfa_add_transition(n,s2,s,'x','x'); + yaz_nfa_set_backref_point(n,s,2,0); + + c1=yaz_nfa_create_backref_converter(n,2); + yaz_nfa_set_result(n,s,c1); + + if (yaz_test_get_verbosity()>3) + yaz_nfa_dump(0,n, printfunc2); + + cp=seq2; + sz=18; + i=yaz_nfa_match(n,&cp,&sz,&vp); + c2=vp; + YAZ_CHECK_EQ(i,YAZ_NFA_SUCCESS); + i=yaz_nfa_get_backref(n, 2, &cp1, &cp2 ); + if (yaz_test_get_verbosity()>3) + printf("backref from %p '%c' to %p '%c' is %d long. sz is now %d\n", + cp1, *cp1, cp2, *cp2, cp2-cp1+1, sz ); + YAZ_CHECK_EQ(i,0); + YAZ_CHECK_EQ((int)c1,(int)c2); /* got our pointer back from nfa */ + for(i=0;i<1024;i++) + outbuf[i]=10000+i; + outp=outbuf; + sz=11; + i=yaz_nfa_run_converters(n, c2, &outp, &sz); + YAZ_CHECK_EQ(i,0); + YAZ_CHECK_EQ(outbuf[0],'k'); + YAZ_CHECK_EQ(outbuf[1],'m'); + YAZ_CHECK_EQ(outbuf[2],'n'); + YAZ_CHECK_EQ(outbuf[3],'m'); + YAZ_CHECK_EQ(outbuf[4],'x'); + YAZ_CHECK_EQ(outbuf[5],10000+5); + YAZ_CHECK_EQ(sz,11-5); + + c3=yaz_nfa_create_range_converter(n,2, 'a', 'A' ); + for(i=0;i<1024;i++) + outbuf[i]=10000+i; + outp=outbuf; + sz=11; + i=yaz_nfa_run_converters(n, c3, &outp, &sz); + YAZ_CHECK_EQ(i,0); + YAZ_CHECK_EQ(outbuf[0],'K'); + YAZ_CHECK_EQ(outbuf[1],'M'); + YAZ_CHECK_EQ(outbuf[2],'N'); + YAZ_CHECK_EQ(outbuf[3],'M'); + YAZ_CHECK_EQ(outbuf[4],'X'); + YAZ_CHECK_EQ(outbuf[5],10000+5); + YAZ_CHECK_EQ(sz,11-5); + + yaz_nfa_destroy(n); +} + +yaz_nfa_char *makebuff(NMEM nmem, char *in) { + yaz_nfa_char *buff = nmem_malloc(nmem, strlen(in)*sizeof(yaz_nfa_char)); + yaz_nfa_char *op=buff; + while ( (*op++ = *in++) ) + ; + return buff; +} + +void dumpbuff(char *msg, yaz_nfa_char *start, yaz_nfa_char *end) { + if (yaz_test_get_verbosity()>3) { + printf("%s\"",msg); + while (start!=end) + printf("%c",*start++); + printf("\"\n"); + } +} + +void chkbuff( yaz_nfa_char *start, yaz_nfa_char *end, char *exp) { + char *orig_exp=exp; + while (start!=end) + if ( *start++ != *exp++ ) { + if (yaz_test_get_verbosity()>3) { + start--; + exp--; + printf ("chkbuff: unexpected conversion '%c' != '%c' \n" + "\"%s\"\n", *start, *exp, orig_exp ); + } + YAZ_CHECK(!"conversion differs! "); + return; + } + +} + +void high_level_test() { + NMEM nmem=nmem_create(); + yaz_nfa_char from1[] = {'f','o','o','b','a','r'}; + yaz_nfa_char to1[] = {'f','u','b','a','r'}; + yaz_nfa_char tospace[] = {' '}; + yaz_nfa_char todot[] = {'.'}; + char *fromtext = + "It was a Dark and Rainy Night, when alpha and beta " + "fixme - FIND better names ?? !! ## - " + "went out to fix the foobar " + "that was all foo."; + char *expected = + "IT WAS A DARK AND RAINY NIGHT. WHEN ALPHA AND b " + "to-be-fixed-later . FIND BETTER NAMES .. .. .. . " + "WENT OUT TO (fix) THE fubar " + "THAT WAS ALL FOO."; + yaz_nfa_char *from3 = makebuff(nmem,fromtext); + yaz_nfa_char *to3 = nmem_malloc(nmem, 1024*sizeof(yaz_nfa_char)); + yaz_nfa_char *fromp=from3; + yaz_nfa_char *top=to3; + size_t insize=strlen(fromtext); + size_t outsize=1024; + size_t prev_insize=0; + + yaz_nfa *n = yaz_nfa_init(); + int i; + i = yaz_nfa_add_string_rule(n, from1, 6, to1, 5); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_string_rule(n, from1, 6, to1, 5); + YAZ_CHECK_EQ(i,YAZ_NFA_ALREADY); + i = yaz_nfa_add_ascii_string_rule(n,"beta","b"); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_ascii_string_rule(n,"fixme","to-be-fixed-later"); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_ascii_string_rule(n,"fix","(fix)"); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_char_range_rule(n, 'a','z','A'); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_char_string_rule(n, 0,' ', tospace,1); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_char_string_rule(n, '!','/', todot,1); + YAZ_CHECK_EQ(i,0); + i = yaz_nfa_add_char_string_rule(n, ':','?', todot,1); + YAZ_CHECK_EQ(i,0); + if (yaz_test_get_verbosity()>3) + yaz_nfa_dump(0,n, printfunc2); + + YAZ_CHECK_EQ( *from3, 'I' ); /* just to be sure my copy func works */ + for (i=0;i<100;i++) + to3[i]=10000+i; + i=yaz_nfa_convert_slice(n, &fromp, &insize, &top, &outsize); + YAZ_CHECK_EQ(i,YAZ_NFA_SUCCESS); + YAZ_CHECK_EQ(*to3,'I'); + YAZ_CHECK_EQ(insize, strlen(fromtext)-1); + YAZ_CHECK_EQ(outsize, 1024-1); + + while ( (i==YAZ_NFA_SUCCESS) && (insize > 0) && (prev_insize!=insize) ) { + prev_insize=insize; /* detect dead loops if something goes wrong */ + i=yaz_nfa_convert_slice(n, &fromp, &insize, &top, &outsize); + } + YAZ_CHECK_EQ(i,YAZ_NFA_SUCCESS); + YAZ_CHECK_EQ(insize,0); + YAZ_CHECK(prev_insize != insize); /* the loop would have been endless */ + + dumpbuff("Original text: ",from3, fromp); + dumpbuff("Converted text: ",to3, top); + + chkbuff(to3, top, expected); + + yaz_nfa_destroy(n); + nmem_destroy(nmem); +} + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + nmem_init (); + construction_test(); + converter_test(); + high_level_test(); + nmem_exit (); + YAZ_CHECK_TERM; +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/test/nfaxmltest1.c b/dependencies/yaz-2.1.28/test/nfaxmltest1.c new file mode 100644 index 0000000..bcada34 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/nfaxmltest1.c @@ -0,0 +1,333 @@ +/* Copyright (C) 2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: nfaxmltest1.c,v 1.7 2006/07/14 13:06:38 heikki Exp $ + * + */ + + +#include +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include + + +/** \brief Test parsing of a minimal, valid xml string */ +void test1() { + char *xmlstr = " " + " " + " foo " + " bar " + "" + ""; + yaz_nfa *nfa = yaz_nfa_parse_xml_memory(xmlstr,"test1"); + YAZ_CHECK(nfa); + yaz_nfa_destroy(nfa); +} + + +/** \brief Test parsing of a minimal, invalid xml string */ +void test2() { + yaz_nfa *nfa; + char *xmlstr = " " + " " + " foo " + " bar " + ""; + /* missing "" */ + yaz_log(YLOG_LOG,"Parsing bad xml, expecting errors:"); + nfa = yaz_nfa_parse_xml_memory(xmlstr,"test2"); + YAZ_CHECK(!nfa); + nfa = yaz_nfa_parse_xml_memory(0,"test2-null"); + YAZ_CHECK(!nfa); +} + +/** \brief Test parsing a few minimal xml files */ +void test3() { + char *goodfilenames[] = { + "nfaxml-simple.xml", + "nfaxml-main.xml", /* x-includes nfaxml-include */ + 0}; + char *badfilenames[] = { + "nfaxml-missing.xml", /* file not there at all */ + "nfaxml-badinclude.xml", /* bad xinclude in it */ + 0}; + yaz_nfa *nfa; + char **f = goodfilenames; + do { + yaz_log(YLOG_LOG,"Parsing (good) xml file '%s'", *f); + nfa=yaz_nfa_parse_xml_file(*f); + YAZ_CHECK_TODO(nfa); /* fails on make distcheck, can't find the files*/ + } while (*++f); + + f = badfilenames; + do { + yaz_log(YLOG_LOG,"Parsing bad xml file '%s'. Expecting errors", *f); + nfa = yaz_nfa_parse_xml_file(*f); + YAZ_CHECK(!nfa); + } while (*++f); +} + +/** \brief Test parsing of a few minimal xml strings, with logical errors */ +void test4() { + yaz_nfa *nfa; + char *xmls[] = { + /*a*/" ", + /*b*/" ", + /*c*/" ", + /*d*/"" + "MissingTo" + "", + /*e*/"" + "DuplicateFrom" + "Another Fromstring" + "", + /*f*/"" + "MissingFrom" + "", + /*g*/"" + "DuplicateTo" + "AnotherTo" + "", + /*h*/"" + "GoodUTF:æøå" + "", + /*i*/"" + "BadUtf8:Ø" + "", + /*j*/"" + "" + "ConflictingRules" + "IdenticalStrings" + "" + "" + "ConflictingRules" + "IdenticalStrings" + "" + "", + /*k*/"", /* empty string! */ + /*l*/"" + "" + "A-Z" + "a-x" + "" + "", + 0 }; + char **xmlp=xmls; + char label[]= { 'a', 0 }; + while ( *xmlp ) { + yaz_log(YLOG_LOG,"test4-%s: Parsing bad xml, expecting errors:", + label); + nfa = yaz_nfa_parse_xml_memory(*xmlp,label); + YAZ_CHECK(!nfa); + xmlp++; + label[0]++; + } +} /* test4 */ + +static void test5() { + struct conv_test { + unsigned char *name; + int expresult; + unsigned char *xml; + unsigned char *from; + unsigned char *to; + }; + struct conv_test tests[]= { + { "test5-1", YAZ_NFA_SUCCESS, + "" + "" + "foo" + "bar" + "" + "", + "this is a foo test ofoofo fo foofoo fofoofooofoooo ", + "this is a bar test obarfo fo barbar fobarbarobaroo " + }, + { "test5-2", YAZ_NFA_SUCCESS, + "" + "" + "ooooo" + "five " + "" + "" + "oooo" + "four " + "" + "" + "ooo" + "three " + "" + "" + "oo" + "two " + "" + "", + "oo-oooo-", + "two -four -" + }, + { "test5-4", YAZ_NFA_SUCCESS, 0, /* same xml */ + "oo-oooo-ooooooo-", + "two -four -five two -" + }, + { "test5-3", YAZ_NFA_OVERRUN, 0, /* could match further oo's */ + "oo-oooo-ooooooo", + "two -four -five " + }, + { "test5-4 (lowercase)", YAZ_NFA_SUCCESS, + "" + "" + "A-Z" + "a-z" + "" + "", + "LowerCase TEST with A-Z and a-z", + "lowercase test with a-z and a-z" + }, + { "test5-5 (lowercase entities)", YAZ_NFA_SUCCESS, + "" + "" + "A-Z" + "a-z" + "" + "", + "LowerCase TEST with A-Z and a-z (and ) A; )", + "lowercase test with a-z and a-z (and ) a; )" + }, + { "test5-6 (danish lowercase)", YAZ_NFA_SUCCESS, + "" + "" + "A-Z" + "a-z" + "" + "" + "À-Ö" + "à-ö" + "" + "" + "Ø-ß" + "ø-ÿ" + "" + "" + "Å" + "å" + "" + "" + "Dänish" + "DÄNISH" + "" + "", + "LowerCase TEST with Dänish Å !? åæø ÅÆØ XYZ", + "lowercase test with DÄNISH å !? åæø åæø xyz" + }, + {0,0,0,0} + }; + char *xml=0; +#define MAXBUF 2048 + yaz_nfa *nfa; + yaz_nfa_char frombuf[MAXBUF]; + yaz_nfa_char tobuf[MAXBUF]; + unsigned char charbuf[MAXBUF]; + struct conv_test *thistest=tests; + unsigned char *cp; + yaz_nfa_char *ycp; + size_t incharsleft; + size_t outcharsleft; + size_t prev_incharsleft; + int rc; + yaz_nfa_char *fromp; + yaz_nfa_char *top; + while (thistest->name) { + yaz_log(YLOG_DEBUG,"Starting test %s",thistest->name); + if (thistest->xml) + xml=thistest->xml; + nfa = yaz_nfa_parse_xml_memory(xml, thistest->name); + YAZ_CHECK(nfa); + if (nfa) { + if ( yaz_test_get_verbosity() > 3) { + yaz_nfa_dump(0,nfa,yaz_nfa_dump_converter); + } + ycp=frombuf; + cp=thistest->from; + while ( (*ycp++ = *cp++) ) + ; /* strcpy, but expand to yaz_nfa_chars */ + incharsleft = strlen(thistest->from); + prev_incharsleft = 0; + outcharsleft = MAXBUF-1; + fromp = frombuf; + top = tobuf; + rc = YAZ_NFA_SUCCESS; + while ( (rc == YAZ_NFA_SUCCESS) && (incharsleft>0) && + (prev_incharsleft != incharsleft ) ) /* prevent loops */ + { + prev_incharsleft=incharsleft; + rc=yaz_nfa_convert_slice(nfa, &fromp, &incharsleft, + &top, &outcharsleft); + } + YAZ_CHECK_EQ(rc, thistest->expresult); + if ( (rc == thistest->expresult) && + (rc == YAZ_NFA_SUCCESS)) { + YAZ_CHECK_EQ(incharsleft, 0); + YAZ_CHECK( prev_incharsleft != incharsleft ); + } + ycp=tobuf; + cp=charbuf; + while (ycp != top ) + *cp++ = *ycp++; + *cp=0; + if ( yaz_test_get_verbosity() > 2) { + printf("%s from: '%s' \n",thistest->name, thistest->from); + printf("%s result: '%s' \n",thistest->name, charbuf); + printf("%s expect: '%s' \n",thistest->name, thistest->to); + } + YAZ_CHECK( 0==strcmp(thistest->to,charbuf) ); + yaz_nfa_destroy(nfa); + } + thistest++; + } + +} /* test5 */ + + +/* More things to test: + * + * - Empty strings in to/from + * - ranges, length mismatches, etc + */ + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + YAZ_CHECK_LOG(); + nmem_init (); + + test1(); + test2(); + test3(); + test4(); + test5(); + + nmem_exit (); + YAZ_CHECK_TERM; +} + +#else +int main(int argc, char **argv) { + YAZ_CHECK_INIT(argc, argv); + YAZ_CHECK_TERM; +} + +#endif + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/test/tst_filepath.c b/dependencies/yaz-2.1.28/test/tst_filepath.c new file mode 100644 index 0000000..5c65a0c --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tst_filepath.c @@ -0,0 +1,43 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tst_filepath.c,v 1.1 2006/04/26 09:40:43 adam Exp $ + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +void tst(void) +{ + char fullpath[1024]; + YAZ_CHECK(yaz_filepath_resolve("tst_filepath", ".", 0, fullpath)); + YAZ_CHECK(strcmp(fullpath, "./tst_filepath") == 0); + YAZ_CHECK(!yaz_filepath_resolve("tst_filepath1", ".", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("tst_filepath", "bogus", 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_filepath", "bogus:.", 0, fullpath)); +} + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst(); + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tst_record_conv.c b/dependencies/yaz-2.1.28/test/tst_record_conv.c new file mode 100644 index 0000000..4f9953f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tst_record_conv.c @@ -0,0 +1,346 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tst_record_conv.c,v 1.10 2006/08/01 09:28:04 adam Exp $ + * + */ +#include +#include +#include +#include +#include +#include + +#if HAVE_CONFIG_H +#include +#endif + +#if YAZ_HAVE_XML2 + +#include +#include + +yaz_record_conv_t conv_configure(const char *xmlstring, WRBUF w) +{ + xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring)); + if (!doc) + { + wrbuf_printf(w, "xmlParseMemory"); + return 0; + } + else + { + xmlNodePtr ptr = xmlDocGetRootElement(doc); + yaz_record_conv_t p = yaz_record_conv_create(); + + if (p) + { + const char *srcdir = getenv("srcdir"); + if (srcdir) + yaz_record_conv_set_path(p, srcdir); + } + if (!ptr) + { + wrbuf_printf(w, "xmlDocGetRootElement"); + yaz_record_conv_destroy(p); + p = 0; + } + else if (!p) + { + wrbuf_printf(w, "yaz_record_conv_create"); + } + else + { + int r = yaz_record_conv_configure(p, ptr); + + if (r) + { + wrbuf_puts(w, yaz_record_conv_get_error(p)); + yaz_record_conv_destroy(p); + p = 0; + } + } + xmlFreeDoc(doc); + return p; + } +} + +int conv_configure_test(const char *xmlstring, const char *expect_error, + yaz_record_conv_t *pt) +{ + WRBUF w = wrbuf_alloc(); + int ret; + + yaz_record_conv_t p = conv_configure(xmlstring, w); + + if (!p) + { + if (expect_error && !strcmp(wrbuf_buf(w), expect_error)) + ret = 1; + else + { + ret = 0; + printf("%.*s\n", wrbuf_len(w), wrbuf_buf(w)); + } + } + else + { + if (expect_error) + { + ret = 0; + yaz_record_conv_destroy(p); + } + else + { + ret = 1; + } + } + if (pt) + *pt = p; + else + yaz_record_conv_destroy(p); + + wrbuf_free(w, 1); + return ret; +} + +static void tst_configure() +{ + YAZ_CHECK(conv_configure_test("", "Missing 'convert' element", 0)); + YAZ_CHECK(conv_configure_test("", 0, 0)); + YAZ_CHECK(conv_configure_test("", + "Bad element 'bad'." + "Expected marc, xslt, ..", 0)); +#if YAZ_HAVE_XSLT + YAZ_CHECK(conv_configure_test("" + "" + "" + "", + "Attribute 'inputformat' required", 0)); + YAZ_CHECK(conv_configure_test("" + "" + "", + "Missing attribute 'stylesheet'", 0)); + YAZ_CHECK(conv_configure_test("" + "" + "" + "", + 0, 0)); +#else + YAZ_CHECK(conv_configure_test("" + "" + "", + "xslt unsupported." + " YAZ compiled without XSLT support", 0)); +#endif +} + +static int conv_convert_test(yaz_record_conv_t p, + const char *input_record, + const char *output_expect_record) +{ + int ret = 0; + if (!p) + { + YAZ_CHECK(ret); + } + else + { + WRBUF output_record = wrbuf_alloc(); + int r = yaz_record_conv_record(p, input_record, strlen(input_record), + output_record); + if (r) + { + if (output_expect_record) + { + printf("yaz_record_conv error=%s\n", + yaz_record_conv_get_error(p)); + ret = 0; + } + else + ret = 1; + } + else + { + if (!output_expect_record) + { + ret = 0; + } + else if (strlen(output_expect_record) != wrbuf_len(output_record)) + { + int expect_len = strlen(output_expect_record); + ret = 0; + printf("output_record expect-len=%d got-len=%d\n", expect_len, + wrbuf_len(output_record)); + printf("got-output_record = %.*s\n", + wrbuf_len(output_record), wrbuf_buf(output_record)); + printf("output_expect_record = %s\n", + output_expect_record); + } + else if (memcmp(output_expect_record, wrbuf_buf(output_record), + strlen(output_expect_record))) + { + ret = 0; + printf("got-output_record = %.*s\n", + wrbuf_len(output_record), wrbuf_buf(output_record)); + printf("output_expect_record = %s\n", + output_expect_record); + } + else + { + ret = 1; + } + } + wrbuf_free(output_record, 1); + } + return ret; +} + +static void tst_convert1() +{ + yaz_record_conv_t p = 0; + const char *marcxml_rec = + "\n" + " 00080nam a22000498a 4500\n" + " 11224466 \n" + " \n" + " 11224466 \n" + " \n" + "\n"; + const char *iso2709_rec = + "\x30\x30\x30\x38\x30\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x37\x30\x30\x30\x31\x33" + "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" + "\x1F\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x1D"; + + YAZ_CHECK(conv_configure_test("" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec)); + yaz_record_conv_destroy(p); + + YAZ_CHECK(conv_configure_test("" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, iso2709_rec, marcxml_rec)); + yaz_record_conv_destroy(p); + + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec)); + yaz_record_conv_destroy(p); + + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec)); + yaz_record_conv_destroy(p); +} + +static void tst_convert2() +{ + yaz_record_conv_t p = 0; + const char *marcxml_rec = + "\n" + " 00080nam a22000498a 4500\n" + " 11224466 \n" + " \n" + " københavn\n" + " \n" + "\n"; + const char *iso2709_rec = + "\x30\x30\x30\x37\x37\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x34\x30\x30\x30\x31\x33" + "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" + "\x1F\x61\x6b\xb2\x62\x65\x6e\x68\x61\x76\x6e\x1E\x1D"; + + YAZ_CHECK(conv_configure_test("" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec)); + yaz_record_conv_destroy(p); +} + +#endif + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + libxml2_error_to_yazlog(0 /* disable log */, 0); +#if YAZ_HAVE_XML2 + tst_configure(); +#endif +#if YAZ_HAVE_XSLT + tst_convert1(); + tst_convert2(); +#endif + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tst_record_conv.xsl b/dependencies/yaz-2.1.28/test/tst_record_conv.xsl new file mode 100644 index 0000000..21d6d6b --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tst_record_conv.xsl @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/dependencies/yaz-2.1.28/test/tst_retrieval.c b/dependencies/yaz-2.1.28/test/tst_retrieval.c new file mode 100644 index 0000000..f82a7d0 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tst_retrieval.c @@ -0,0 +1,249 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tst_retrieval.c,v 1.6 2006/07/06 10:17:55 adam Exp $ + * + */ +#include +#include +#include +#include +#include +#include + +#if HAVE_CONFIG_H +#include +#endif + +#if YAZ_HAVE_XSLT + +#include +#include + +yaz_retrieval_t conv_configure(const char *xmlstring, WRBUF w) +{ + xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring)); + if (!doc) + { + wrbuf_printf(w, "xmlParseMemory"); + return 0; + } + else + { + xmlNodePtr ptr = xmlDocGetRootElement(doc); + yaz_retrieval_t p = yaz_retrieval_create(); + + if (p) + { + const char *srcdir = getenv("srcdir"); + if (srcdir) + yaz_retrieval_set_path(p, srcdir); + } + if (!ptr) + { + wrbuf_printf(w, "xmlDocGetRootElement"); + yaz_retrieval_destroy(p); + p = 0; + } + else if (!p) + { + wrbuf_printf(w, "yaz_retrieval_create"); + } + else + { + int r = yaz_retrieval_configure(p, ptr); + + if (r) + { + wrbuf_puts(w, yaz_retrieval_get_error(p)); + yaz_retrieval_destroy(p); + p = 0; + } + } + xmlFreeDoc(doc); + return p; + } +} + +int conv_configure_test(const char *xmlstring, const char *expect_error, + yaz_retrieval_t *pt) +{ + WRBUF w = wrbuf_alloc(); + int ret; + + yaz_retrieval_t p = conv_configure(xmlstring, w); + + if (!p) + { + if (expect_error && !strcmp(wrbuf_buf(w), expect_error)) + ret = 1; + else + { + ret = 0; + printf("%.*s\n", wrbuf_len(w), wrbuf_buf(w)); + } + } + else + { + if (expect_error) + { + ret = 0; + yaz_retrieval_destroy(p); + } + else + { + if (pt) + *pt = p; + else + yaz_retrieval_destroy(p); + ret = 1; + } + } + wrbuf_free(w, 1); + return ret; +} + +static void tst_configure() +{ + YAZ_CHECK(conv_configure_test("", + "Missing 'retrievalinfo' element", 0)); + + YAZ_CHECK(conv_configure_test("", 0, 0)); + + YAZ_CHECK(conv_configure_test("", + "Bad element 'bad'." + " Expected 'retrieval'", 0)); + + YAZ_CHECK(conv_configure_test("" + "", + "Missing 'syntax' attribute", 0)); + + YAZ_CHECK(conv_configure_test("" + "\n" + " " + "" + "" + "" + "" + "" + "", + 0, 0)); + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "", + 0, 0)); + + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "", + 0, 0)); + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "", + 0, 0)); + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "", + "Bad attribute 'backendschema'." + " Use 'backendname' instead", + 0)); + + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "", + "Bad syntax 'unknown_synt'", 0)); + + YAZ_CHECK(conv_configure_test("" + "" + "" + "" + "", + "Bad backendsyntax 'unknown_synt'", 0)); + +} + +#endif + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + + libxml2_error_to_yazlog(0 /* disable it */, ""); + +#if YAZ_HAVE_XSLT + tst_configure(); +#endif + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tst_tpath.c b/dependencies/yaz-2.1.28/test/tst_tpath.c new file mode 100644 index 0000000..c133a4f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tst_tpath.c @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2005-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tst_tpath.c,v 1.1 2006/06/08 10:26:10 adam Exp $ + * + */ +#include +#include +#include +#include + +#if HAVE_CONFIG_H +#include +#endif + + +static void tst_tpath(void) +{ + char fullpath[1024]; + + YAZ_CHECK(!yaz_filepath_resolve("etc", 0, 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("etc", "", 0, fullpath)); /* bug #606 */ + YAZ_CHECK(!yaz_filepath_resolve("etc", ".", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("does_not_exist", "", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("does_not_exist", ".", 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_tpath", 0, 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_tpath", "", 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_tpath", ".", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir", 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_tpath", "unknown_dir:.", 0, fullpath)); + YAZ_CHECK(yaz_filepath_resolve("tst_tpath", "unknown_dir:", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir:c:", 0, fullpath)); + YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir:c:\\other", 0, fullpath)); +} + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst_tpath(); + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstccl.c b/dependencies/yaz-2.1.28/test/tstccl.c new file mode 100644 index 0000000..4cff93b --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstccl.c @@ -0,0 +1,184 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstccl.c,v 1.11 2006/07/31 11:42:32 adam Exp $ + */ + +/* CCL test */ + +#include +#include +#include + + +static int tst_ccl_query(CCL_bibset bibset, + const char *query, + const char *result) +{ + CCL_parser parser = ccl_parser_create(); + int ret = 0; + + if (parser && bibset) + { + struct ccl_token *token_list; + struct ccl_rpn_node *rpn; + + parser->bibset = bibset; + + token_list = ccl_parser_tokenize(parser, query); + rpn = ccl_parser_find(parser, token_list); + ccl_token_del(token_list); + if (rpn) + { + /* parse ok. check that result is there and match */ + WRBUF wrbuf = wrbuf_alloc(); + ccl_pquery(wrbuf, rpn); + + /* check expect a result and that it matches */ + if (result && !strcmp(wrbuf_buf(wrbuf), result)) + ret = 1; + else + ret = 0; + ccl_rpn_delete(rpn); + wrbuf_free(wrbuf, 1); + } + else + { + if (result) + ret = 0; + else + ret = 1; + } + } + ccl_parser_destroy (parser); + return ret; +} + +void tst1(int pass) +{ + CCL_bibset bibset = ccl_qual_mk(); + char tstline[128]; + + YAZ_CHECK(bibset); + if (!bibset) + return; + + switch(pass) + { + case 0: + ccl_qual_fitem(bibset, "u=4 s=pw t=l,r", "ti"); + ccl_qual_fitem(bibset, "1=1016 s=al,pw", "term"); + ccl_qual_fitem(bibset, "1=/my/title", "dc.title"); + ccl_qual_fitem(bibset, "r=r", "date"); + ccl_qual_fitem(bibset, "r=o", "x"); + break; + case 1: + strcpy(tstline, "ti u=4 s=pw t=l,r"); + ccl_qual_line(bibset, tstline); + + strcpy(tstline, "term 1=1016 s=al,pw # default term"); + ccl_qual_line(bibset, tstline); + + strcpy(tstline, "dc.title 1=/my/title"); + ccl_qual_line(bibset, tstline); + + strcpy(tstline, "date r=r # ordered relation"); + ccl_qual_line(bibset, tstline); + + strcpy(tstline, "x r=o # ordered relation"); + ccl_qual_line(bibset, tstline); + break; + case 2: + ccl_qual_buf(bibset, "ti u=4 s=pw t=l,r\n" + "term 1=1016 s=al,pw\r\n" + "\n" + "dc.title 1=/my/title\n" + "date r=r\n" + "x r=o\n" + ); + break; + default: + YAZ_CHECK(0); + return; + } + + YAZ_CHECK(tst_ccl_query(bibset, "x1", "@attr 4=2 @attr 1=1016 x1 ")); + YAZ_CHECK(tst_ccl_query(bibset, "(((((x1)))))", "@attr 4=2 @attr 1=1016 x1 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x1 and x2", + "@and " + "@attr 4=2 @attr 1=1016 x1 " + "@attr 4=2 @attr 1=1016 x2 ")); + YAZ_CHECK(tst_ccl_query(bibset, "ti=x3", "@attr 4=2 @attr 1=4 x3 ")); + YAZ_CHECK(tst_ccl_query(bibset, "dc.title=x4", "@attr 1=/my/title x4 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x1 and", 0)); + YAZ_CHECK(tst_ccl_query(bibset, "tix=x5", 0)); + + YAZ_CHECK(tst_ccl_query(bibset, "a%b", + "@prox 0 1 0 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + YAZ_CHECK(tst_ccl_query(bibset, "a%1b", + "@prox 0 1 0 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + + YAZ_CHECK(tst_ccl_query(bibset, "a%2b", + "@prox 0 2 0 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + + YAZ_CHECK(tst_ccl_query(bibset, "a%19b", + "@prox 0 19 0 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + + YAZ_CHECK(tst_ccl_query(bibset, "spid%æserne", + "@prox 0 1 0 2 k 2 " + "@attr 4=2 @attr 1=1016 spid " + "@attr 4=2 @attr 1=1016 æserne ")); + + YAZ_CHECK(tst_ccl_query(bibset, "a!b", + "@prox 0 1 1 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + YAZ_CHECK(tst_ccl_query(bibset, "a!2b", + "@prox 0 2 1 2 k 2 " + "@attr 4=2 @attr 1=1016 a " + "@attr 4=2 @attr 1=1016 b ")); + + YAZ_CHECK(tst_ccl_query(bibset, "date=1980", "@attr 2=3 1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=234-1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=234- 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=234 -1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=234 - 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=-1980", "@attr 2=2 1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "date=- 1980", "@attr 2=2 1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x=-1980", "@attr 2=3 -1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x=- 1980", "@attr 2=2 1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x= -1980", "@attr 2=3 -1980 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x=234-1990", "@attr 2=3 234-1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "x=234 - 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); + YAZ_CHECK(tst_ccl_query(bibset, "ti=a,b", "@attr 4=1 @attr 1=4 a,b ")); + YAZ_CHECK(tst_ccl_query(bibset, "ti=a, b", "@attr 4=1 @attr 1=4 a,\\ b ")); + YAZ_CHECK(tst_ccl_query(bibset, "ti=a-b", "@attr 4=2 @attr 1=4 a-b ")); + YAZ_CHECK(tst_ccl_query(bibset, "ti=a - b", "@attr 4=1 @attr 1=4 a\\ -\\ b ")); + ccl_qual_rm(&bibset); +} + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst1(0); + tst1(1); + tst1(2); + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstcql.sh b/dependencies/yaz-2.1.28/test/tstcql.sh new file mode 100755 index 0000000..7064343 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstcql.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# $Id: tstcql.sh,v 1.4 2004/11/16 22:44:31 adam Exp $ +srcdir=${srcdir:-.} +oIFS="$IFS" +IFS=' +' +secno=0 +testno=0 +comment=0 +ecode=0 +test -f ${srcdir}/cqlsample || exit 1 +test -d cql || mkdir cql +for f in `cat ${srcdir}/cqlsample`; do + if echo $f | grep '^#' >/dev/null; then + comment=1 + else + if test "$comment" = "1"; then + secno=`expr $secno + 1` + testno=0 + fi + comment=0 + testno=`expr $testno + 1` + OUT1=${srcdir}/cql/$secno.$testno.out + ERR1=${srcdir}/cql/$secno.$testno.err + OUT2=cql/$secno.$testno.out.tmp + ERR2=cql/$secno.$testno.err.tmp + DIFF=cql/$secno.$testno.diff + ../util/cql2xcql "$f" >$OUT2 2>$ERR2 + if test -f $OUT1 -a -f $ERR1; then + if diff $OUT1 $OUT2 >$DIFF; then + rm $DIFF + rm $OUT2 + else + echo "diff out $secno $testno $f" + cat $DIFF + ecode=1 + fi + if diff $ERR1 $ERR2 >$DIFF; then + rm $DIFF + rm $ERR2 + else + echo "diff err $secno $testno $f" + cat $DIFF + ecode=1 + fi + else + echo "making test $secno $testno $f" + mv $OUT2 $OUT1 + mv $ERR2 $ERR1 + ecode=1 + fi + fi +done +IFS="$oIFS" +exit $ecode diff --git a/dependencies/yaz-2.1.28/test/tsticonv.c b/dependencies/yaz-2.1.28/test/tsticonv.c new file mode 100644 index 0000000..98831b8 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tsticonv.c @@ -0,0 +1,557 @@ +/* + * Copyright (C) 1995-2006, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tsticonv.c,v 1.22 2006/08/30 20:14:56 adam Exp $ + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +static int compare_buffers(char *msg, int no, + int expect_len, const char *expect_buf, + int got_len, const char *got_buf) +{ + if (expect_len == got_len + && !memcmp(expect_buf, got_buf, expect_len)) + return 1; + + if (0) /* use 1 see how the buffers differ (for debug purposes) */ + { + int i; + printf("tsticonv test=%s i=%d failed\n", msg, no); + printf("off got exp\n"); + for (i = 0; i 0 ? in_len : strlen(in_buf); + char outbuf0[64]; + char *outbuf = outbuf0; + + while (inbytesleft) + { + size_t outbytesleft = outbuf0 + sizeof(outbuf0) - outbuf; + if (outbytesleft > 12) + outbytesleft = 12; + r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + if (r == (size_t) (-1)) + { + int e = yaz_iconv_error(cd); + if (e != YAZ_ICONV_E2BIG) + return 0; + } + else + break; + } + return compare_buffers("tsticonv 22", 0, + expect_len, expect_buf, + outbuf - outbuf0, outbuf0); +} + +static int tst_convert(yaz_iconv_t cd, const char *buf, const char *cmpbuf) +{ + int ret = 0; + WRBUF b = wrbuf_alloc(); + char outbuf[12]; + size_t inbytesleft = strlen(buf); + const char *inp = buf; + while (inbytesleft) + { + size_t outbytesleft = sizeof(outbuf); + char *outp = outbuf; + size_t r = yaz_iconv(cd, (char**) &inp, &inbytesleft, + &outp, &outbytesleft); + if (r == (size_t) (-1)) + { + int e = yaz_iconv_error(cd); + if (e != YAZ_ICONV_E2BIG) + break; + } + wrbuf_write(b, outbuf, outp - outbuf); + } + if (wrbuf_len(b) == strlen(cmpbuf) + && !memcmp(cmpbuf, wrbuf_buf(b), wrbuf_len(b))) + ret = 1; + else + yaz_log(YLOG_LOG, "GOT (%.*s)", wrbuf_len(b), wrbuf_buf(b)); + wrbuf_free(b, 1); + return ret; +} + + +/* some test strings in ISO-8859-1 format */ +static const char *iso_8859_1_a[] = { + "ax" , + "\xd8", + "eneb\346r", + "\xe5" "\xd8", + "\xe5" "\xd8" "b", + "\xe5" "\xe5", + 0 }; + +static void tst_marc8_to_ucs4b() +{ + yaz_iconv_t cd = yaz_iconv_open("UCS4", "MARC8"); + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\033$1" "\x21\x2B\x3B" /* FF1F */ "\033(B" "o", + 8, + "\x00\x00\xFF\x1F" "\x00\x00\x00o")); + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\033$1" "\x6F\x77\x29" /* AE0E */ + "\x6F\x52\x7C" /* c0F4 */ "\033(B", + 8, + "\x00\x00\xAE\x0E" "\x00\x00\xC0\xF4")); + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\033$1" + "\x21\x50\x6E" /* UCS 7CFB */ + "\x21\x51\x31" /* UCS 7D71 */ + "\x21\x3A\x67" /* UCS 5B89 */ + "\x21\x33\x22" /* UCS 5168 */ + "\x21\x33\x53" /* UCS 5206 */ + "\x21\x44\x2B" /* UCS 6790 */ + "\033(B", + 24, + "\x00\x00\x7C\xFB" + "\x00\x00\x7D\x71" + "\x00\x00\x5B\x89" + "\x00\x00\x51\x68" + "\x00\x00\x52\x06" + "\x00\x00\x67\x90")); + + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\xB0\xB2", /* AYN and oSLASH */ + 8, + "\x00\x00\x02\xBB" "\x00\x00\x00\xF8")); + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\xF6\x61", /* a underscore */ + 8, + "\x00\x00\x00\x61" "\x00\x00\x03\x32")); + + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\x61\xC2", /* a, phonorecord mark */ + 8, + "\x00\x00\x00\x61" "\x00\x00\x21\x17")); + + /* bug #258 */ + YAZ_CHECK(tst_convert_l( + cd, + 0, + "el" "\xe8" "am\xe8" "an", /* elaman where a is a" */ + 32, + "\x00\x00\x00" "e" + "\x00\x00\x00" "l" + "\x00\x00\x00" "a" + "\x00\x00\x03\x08" + "\x00\x00\x00" "m" + "\x00\x00\x00" "a" + "\x00\x00\x03\x08" + "\x00\x00\x00" "n")); + /* bug #260 */ + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\xe5\xe8\x41", + 12, + "\x00\x00\x00\x41" "\x00\x00\x03\x04" "\x00\x00\x03\x08")); + /* bug #416 */ + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\xEB\x74\xEC\x73", + 12, + "\x00\x00\x00\x74" "\x00\x00\x03\x61" "\x00\x00\x00\x73")); + /* bug #416 */ + YAZ_CHECK(tst_convert_l( + cd, + 0, + "\xFA\x74\xFB\x73", + 12, + "\x00\x00\x00\x74" "\x00\x00\x03\x60" "\x00\x00\x00\x73")); + + yaz_iconv_close(cd); +} + +static void tst_ucs4b_to_utf8() +{ + yaz_iconv_t cd = yaz_iconv_open("UTF8", "UCS4"); + YAZ_CHECK(cd); + if (!cd) + return; + YAZ_CHECK(tst_convert_l( + cd, + 8, + "\x00\x00\xFF\x1F\x00\x00\x00o", + 4, + "\xEF\xBC\x9F\x6F")); + + YAZ_CHECK(tst_convert_l( + cd, + 8, + "\x00\x00\xAE\x0E\x00\x00\xC0\xF4", + 6, + "\xEA\xB8\x8E\xEC\x83\xB4")); + yaz_iconv_close(cd); +} + +static void dconvert(int mandatory, const char *tmpcode) +{ + int i; + int ret; + yaz_iconv_t cd; + for (i = 0; iso_8859_1_a[i]; i++) + { + size_t r; + char *inbuf = (char*) iso_8859_1_a[i]; + size_t inbytesleft = strlen(inbuf); + char outbuf0[24]; + char outbuf1[10]; + char *outbuf = outbuf0; + size_t outbytesleft = sizeof(outbuf0); + + cd = yaz_iconv_open(tmpcode, "ISO-8859-1"); + YAZ_CHECK(cd || !mandatory); + if (!cd) + return; + r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + YAZ_CHECK(r != (size_t) (-1)); + yaz_iconv_close(cd); + if (r == (size_t) (-1)) + return; + + cd = yaz_iconv_open("ISO-8859-1", tmpcode); + YAZ_CHECK(cd || !mandatory); + if (!cd) + return; + inbuf = outbuf0; + inbytesleft = sizeof(outbuf0) - outbytesleft; + + outbuf = outbuf1; + outbytesleft = sizeof(outbuf1); + r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + YAZ_CHECK(r != (size_t) (-1)); + if (r != (size_t)(-1)) + { + ret = compare_buffers("dconvert", i, + strlen(iso_8859_1_a[i]), iso_8859_1_a[i], + sizeof(outbuf1) - outbytesleft, outbuf1); + YAZ_CHECK(ret); + } + yaz_iconv_close(cd); + } +} + +int utf8_check(unsigned c) +{ + if (sizeof(c) >= 4) + { + size_t r; + char src[4]; + char dst[4]; + char utf8buf[6]; + char *inbuf = src; + size_t inbytesleft = 4; + char *outbuf = utf8buf; + size_t outbytesleft = sizeof(utf8buf); + int i; + yaz_iconv_t cd = yaz_iconv_open("UTF-8", "UCS4LE"); + if (!cd) + return 0; + for (i = 0; i<4; i++) + src[i] = c >> (i*8); + + r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + yaz_iconv_close(cd); + + if (r == (size_t)(-1)) + return 0; + + cd = yaz_iconv_open("UCS4LE", "UTF-8"); + if (!cd) + return 0; + inbytesleft = sizeof(utf8buf) - outbytesleft; + inbuf = utf8buf; + + outbuf = dst; + outbytesleft = 4; + + r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + if (r == (size_t)(-1)) + return 0; + + yaz_iconv_close(cd); + + if (memcmp(src, dst, 4)) + return 0; + } + return 1; +} + +static void tst_marc8_to_utf8() +{ + yaz_iconv_t cd = yaz_iconv_open("UTF-8", "MARC8"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "Cours de math", + "Cours de math")); + /* COMBINING ACUTE ACCENT */ + YAZ_CHECK(tst_convert(cd, "Cours de mathâe", + "Cours de mathe\xcc\x81")); + yaz_iconv_close(cd); +} + +static void tst_marc8s_to_utf8() +{ + yaz_iconv_t cd = yaz_iconv_open("UTF-8", "MARC8s"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "Cours de math", + "Cours de math")); + /* E9: LATIN SMALL LETTER E WITH ACUTE */ + YAZ_CHECK(tst_convert(cd, "Cours de mathâe", + "Cours de math\xc3\xa9")); + + yaz_iconv_close(cd); +} + + +static void tst_marc8_to_latin1() +{ + yaz_iconv_t cd = yaz_iconv_open("ISO-8859-1", "MARC8"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "ax", "ax")); + + /* latin capital letter o with stroke */ + YAZ_CHECK(tst_convert(cd, "\xa2", "\xd8")); + + /* with latin small letter ae */ + YAZ_CHECK(tst_convert(cd, "eneb\xb5r", "eneb\346r")); + + YAZ_CHECK(tst_convert(cd, "\xea" "a\xa2", "\xe5" "\xd8")); + + YAZ_CHECK(tst_convert(cd, "\xea" "a\xa2" "b", "\xe5" "\xd8" "b")); + + YAZ_CHECK(tst_convert(cd, "\xea" "a" "\xea" "a", "\xe5" "\xe5")); + + YAZ_CHECK(tst_convert(cd, "Cours de math", + "Cours de math")); + YAZ_CHECK(tst_convert(cd, "Cours de mathâe", + "Cours de mathé")); + YAZ_CHECK(tst_convert(cd, "12345678âe", + "12345678é")); + YAZ_CHECK(tst_convert(cd, "123456789âe", + "123456789é")); + YAZ_CHECK(tst_convert(cd, "1234567890âe", + "1234567890é")); + YAZ_CHECK(tst_convert(cd, "12345678901âe", + "12345678901é")); + YAZ_CHECK(tst_convert(cd, "Cours de mathâem", + "Cours de mathém")); + YAZ_CHECK(tst_convert(cd, "Cours de mathâematiques", + "Cours de mathématiques")); + + yaz_iconv_close(cd); +} + +static void tst_utf8_to_marc8() +{ + yaz_iconv_t cd = yaz_iconv_open("MARC8", "UTF-8"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); + + /** Pure ASCII. 11 characters (sizeof(outbuf)-1) */ + YAZ_CHECK(tst_convert(cd, "Cours de mat", "Cours de mat")); + + /** Pure ASCII. 12 characters (sizeof(outbuf)) */ + YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math")); + + /** Pure ASCII. 13 characters (sizeof(outbuf)) */ + YAZ_CHECK(tst_convert(cd, "Cours de math.", "Cours de math.")); + + /** UPPERCASE SCANDINAVIAN O */ + YAZ_CHECK(tst_convert(cd, "S\xc3\x98", "S\xa2")); + + /** ARING */ + YAZ_CHECK(tst_convert(cd, "A" "\xCC\x8A", "\xEA" "A")); + + /** A MACRON + UMLAUT, DIAERESIS */ + YAZ_CHECK(tst_convert(cd, "A" "\xCC\x84" "\xCC\x88", + "\xE5\xE8\x41")); + + /* Ligature spanning two characters */ + YAZ_CHECK(tst_convert(cd, + "\x74" "\xCD\xA1" "\x73", /* UTF-8 */ + "\xEB\x74\xEC\x73")); /* MARC-8 */ + + /* Double title spanning two characters */ + YAZ_CHECK(tst_convert(cd, + "\x74" "\xCD\xA0" "\x73", /* UTF-8 */ + "\xFA\x74\xFB\x73")); /* MARC-8 */ + + /** Ideographic question mark (Unicode FF1F) */ + YAZ_CHECK(tst_convert(cd, + "\xEF\xBC\x9F" "o", /* UTF-8 */ + "\033$1" "\x21\x2B\x3B" "\033(B" "o" )); + + + /** Superscript 0 . bug #642 */ + YAZ_CHECK(tst_convert(cd, + "(\xe2\x81\xb0)", /* UTF-8 */ + "(\033p0\x1bs)")); + + + yaz_iconv_close(cd); +} + + +static void tst_latin1_to_marc8() +{ + yaz_iconv_t cd = yaz_iconv_open("MARC8", "ISO-8859-1"); + + YAZ_CHECK(cd); + if (!cd) + return; + + YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); + + /** Pure ASCII. 11 characters (sizeof(outbuf)-1) */ + YAZ_CHECK(tst_convert(cd, "Cours de mat", "Cours de mat")); + + /** Pure ASCII. 12 characters (sizeof(outbuf)) */ + YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math")); + + /** Pure ASCII. 13 characters (sizeof(outbuf)) */ + YAZ_CHECK(tst_convert(cd, "Cours de math.", "Cours de math.")); + + /** D8: UPPERCASE SCANDINAVIAN O */ + YAZ_CHECK(tst_convert(cd, "S\xd8", "S\xa2")); + + /** E9: LATIN SMALL LETTER E WITH ACUTE */ + YAZ_CHECK(tst_convert(cd, "Cours de math\xe9", "Cours de mathâe")); + YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math" + )); + YAZ_CHECK(tst_convert(cd, "Cours de mathé", "Cours de mathâe" )); + YAZ_CHECK(tst_convert(cd, "12345678é","12345678âe")); + YAZ_CHECK(tst_convert(cd, "123456789é", "123456789âe")); + YAZ_CHECK(tst_convert(cd, "1234567890é","1234567890âe")); + YAZ_CHECK(tst_convert(cd, "12345678901é", "12345678901âe")); + YAZ_CHECK(tst_convert(cd, "Cours de mathém", "Cours de mathâem")); + YAZ_CHECK(tst_convert(cd, "Cours de mathématiques", + "Cours de mathâematiques")); + yaz_iconv_close(cd); +} + +static void tst_utf8_codes() +{ + YAZ_CHECK(utf8_check(3)); + YAZ_CHECK(utf8_check(127)); + YAZ_CHECK(utf8_check(128)); + YAZ_CHECK(utf8_check(255)); + YAZ_CHECK(utf8_check(256)); + YAZ_CHECK(utf8_check(900)); + YAZ_CHECK(utf8_check(1000)); + YAZ_CHECK(utf8_check(10000)); + YAZ_CHECK(utf8_check(100000)); + YAZ_CHECK(utf8_check(1000000)); + YAZ_CHECK(utf8_check(10000000)); + YAZ_CHECK(utf8_check(100000000)); +} + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + + tst_utf8_codes(); + + tst_marc8_to_utf8(); + + tst_marc8s_to_utf8(); + + tst_marc8_to_latin1(); + + tst_utf8_to_marc8(); + + tst_latin1_to_marc8(); + + tst_marc8_to_ucs4b(); + tst_ucs4b_to_utf8(); + + dconvert(1, "UTF-8"); + dconvert(1, "ISO-8859-1"); + dconvert(1, "UCS4"); + dconvert(1, "UCS4LE"); + dconvert(0, "CP865"); + + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/test/tstlog.c b/dependencies/yaz-2.1.28/test/tstlog.c new file mode 100644 index 0000000..4f3047e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstlog.c @@ -0,0 +1,88 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstlog.c,v 1.10 2006/03/21 12:54:02 adam Exp $ + * + */ +#include +#include +#include +#include +#include +#if HAVE_UNISTD_H +#include +#endif + +void hook_func(int level, const char *msg, void *vp) +{ + fprintf(stderr, "[HOOK level=%d msg=%s]\n", level, msg); +} + +int main(int argc, char **argv) +{ + char *arg; + int i, ret; + int level = YLOG_LOG; + int number = 1; + unsigned int wait_between_log = 0; + + while ((ret = options("f:v:l:m:n:s:w:Hh", argv, argc, &arg)) != -2) + { + switch (ret) + { + case 's': + yaz_log_init_max_size(atoi(arg)); + break; + case 'f': + yaz_log_time_format(arg); + break; + case 'v': + yaz_log_init_level(yaz_log_mask_str(arg)); + break; + case 'l': + if (!strcmp(arg, "@")) + yaz_log_init_file(0); + else + yaz_log_init_file(arg); + break; + case 'n': + number = atoi(arg); + break; + case 'm': + level = yaz_log_module_level(arg); + break; + case 'w': + wait_between_log = atoi(arg); + break; + case 'H': + yaz_log_set_handler(hook_func, 0); + break; + case 0: + for (i = 0; i +#endif + +#include +#include +#include +#include + +#if YAZ_POSIX_THREADS +#include + + +static void *t_loop2(void *vp) +{ + int i, sz = 10; + + for (i = 0; i$NEW + if test $? != "0"; then + echo "$f: yaz-marcdump returned error" + ecode=1 + break + elif test -f $OLD; then + if diff $OLD $NEW >$DIFF; then + rm $DIFF + rm $NEW + else + echo "$f: $NEW and $OLD differ" + ecode=1 + fi + else + echo "$f: Making test result $OLD for the first time" + mv $NEW $OLD + fi + + filem=`echo $fb | sed 's/u8/m8/'`.marc + ../util/yaz-marcdump -I -f utf8 -t marc8 $f >$filem + + DIFF=${fb}.2.lst.diff + NEW=${fb}.2.lst.new + OLD=${srcdir}/${fb}.2.lst + ../util/yaz-marcdump -f marc8 -t utf-8 $filem >$NEW + if test $? != "0"; then + echo "$f: yaz-marcdump returned error" + ecode=1 + break + elif test -f $OLD; then + if diff $OLD $NEW >$DIFF; then + rm $DIFF + rm $NEW + rm $filem + else + echo "$f: $NEW and $OLD differ" + ecode=1 + fi + else + echo "$f: Making test result $OLD for the first time" + mv $NEW $OLD + rm $filem + fi +done +exit $ecode + +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: diff --git a/dependencies/yaz-2.1.28/test/tstmarciso.sh b/dependencies/yaz-2.1.28/test/tstmarciso.sh new file mode 100755 index 0000000..19c0e1c --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstmarciso.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# $Id: tstmarciso.sh,v 1.3 2006/08/28 12:34:42 adam Exp $ +# Tests reading of ISO2709 and checks that we get identical MARCXML +# +# Reads marc?.marc files , Generates marc?.xml files +srcdir=${srcdir:-.} +ecode=0 +for f in ${srcdir}/marc?.marc; do + fb=`basename ${f} .marc` + CHR=${srcdir}/${fb}.chr + NEW=${fb}.new.xml + OLD=${srcdir}/${fb}.xml + DIFF=`basename ${f}`.diff + ../util/yaz-marcdump -f `cat $CHR` -t utf-8 -X $f > $NEW + if test $? != "0"; then + echo "$f: yaz-marcdump returned error" + ecode=1 + elif test -f $OLD; then + if diff $OLD $NEW >$DIFF; then + rm $DIFF + rm $NEW + else + echo "$f: $NEW and $OLD differ" + ecode=1 + fi + else + echo "$f: Making test result $OLD for the first time" + if test -x /usr/bin/xmllint; then + if xmllint --noout $NEW >out 2>stderr; then + echo "$f: $NEW is well-formed" + mv $NEW $OLD + else + echo "$f: $NEW not well-formed" + ecode=1 + fi + else + echo "xmllint not found. install libxml2-utils" + ecode=1 + fi + fi +done +exit $ecode + +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: diff --git a/dependencies/yaz-2.1.28/test/tstmarcxml.sh b/dependencies/yaz-2.1.28/test/tstmarcxml.sh new file mode 100755 index 0000000..36509a9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstmarcxml.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# $Id: tstmarcxml.sh,v 1.3 2006/08/28 12:34:42 adam Exp $ +# Tests reading of MARCXML and checks that we get identical ISO2709 output. +# +# Reads marc?.xml files , Generates marc?.xml.marc files +srcdir=${srcdir:-.} +ecode=0 +# Skip this test if Libxml2 support is not enabled +../util/yaz-marcdump -x >/dev/null 2>&1 +if test $? = "3"; then + exit 0 +fi +for f in ${srcdir}/marc?.xml; do + NEW=`basename ${f}`.new.marc + OLD=${f}.marc + DIFF=`basename ${f}`.diff + ../util/yaz-marcdump -f utf-8 -t utf-8 -x -I $f > $NEW + if test $? != "0"; then + echo "Failed decode of $f" + ecode=1 + elif test -f $OLD; then + if diff $OLD $NEW >$DIFF; then + rm $DIFF + rm $NEW + else + echo "$f: $NEW and $OLD Differ" + ecode=1 + fi + else + echo "$f: Making test result $OLD for the first time" + mv $NEW $OLD + fi +done +exit $ecode + +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: diff --git a/dependencies/yaz-2.1.28/test/tstmatchstr.c b/dependencies/yaz-2.1.28/test/tstmatchstr.c new file mode 100644 index 0000000..0519425 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstmatchstr.c @@ -0,0 +1,44 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstmatchstr.c,v 1.5 2006/01/29 21:59:13 adam Exp $ + */ + +#include +#include + +#include +#include + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + + YAZ_CHECK(yaz_matchstr("x", "x") == 0); + YAZ_CHECK(yaz_matchstr("x", "X") == 0); + YAZ_CHECK(yaz_matchstr("a", "b") > 0); + YAZ_CHECK(yaz_matchstr("b", "a") > 0); + YAZ_CHECK(yaz_matchstr("aa","a") > 0); + YAZ_CHECK(yaz_matchstr("a-", "a") > 0); + YAZ_CHECK(yaz_matchstr("A-b", "ab") == 0); + YAZ_CHECK(yaz_matchstr("A--b", "ab") > 0); + YAZ_CHECK(yaz_matchstr("A--b", "a-b") > 0); + YAZ_CHECK(yaz_matchstr("A--b", "a--b") == 0); + YAZ_CHECK(yaz_matchstr("a123", "a?") == 0); + YAZ_CHECK(yaz_matchstr("a123", "a1.3") == 0); + YAZ_CHECK(yaz_matchstr("a123", "..?") == 0); + YAZ_CHECK(yaz_matchstr("a123", "a1.") > 0); + YAZ_CHECK(yaz_matchstr("a123", "a...") == 0); + + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstnmem.c b/dependencies/yaz-2.1.28/test/tstnmem.c new file mode 100644 index 0000000..b235ed3 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstnmem.c @@ -0,0 +1,66 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstnmem.c,v 1.6 2006/01/29 21:59:13 adam Exp $ + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +void tst(void) +{ + NMEM n; + int j; + char *cp; + + nmem_init(); + n = nmem_create(); + YAZ_CHECK(n); + + for (j = 1; j<500; j++) + { + cp = nmem_malloc(n, j); + YAZ_CHECK(cp); + if (sizeof(long) >= j) + *(long*) cp = 123L; +#if HAVE_LONG_LONG + if (sizeof(long long) >= j) + *(long long*) cp = 123L; +#endif + if (sizeof(double) >= j) + *(double*) cp = 12.2; + } + + for (j = 2000; j<20000; j+= 2000) + { + cp = nmem_malloc(n, j); + YAZ_CHECK(cp); + } + nmem_destroy(n); + nmem_exit(); +} + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst(); + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstodr.asn b/dependencies/yaz-2.1.28/test/tstodr.asn new file mode 100644 index 0000000..7ccfc63 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstodr.asn @@ -0,0 +1,17 @@ +-- Small ASN.1 spec for tstodr test +-- $Id: tstodr.asn,v 1.2 2005/05/26 21:47:16 adam Exp $ +tstodrcodec +{tstodrcodec} DEFINITIONS ::= +BEGIN +MySequence ::= SEQUENCE { + first [1] IMPLICIT INTEGER, + second [2] IMPLICIT OCTET STRING, + third [3] IMPLICIT BOOLEAN, + fourth [4] IMPLICIT NULL, + fifth [5] IMPLICIT INTEGER { + enum1(0), + enum2(1) + }, + myoid [6] IMPLICIT OBJECT IDENTIFIER +} +END diff --git a/dependencies/yaz-2.1.28/test/tstodr.c b/dependencies/yaz-2.1.28/test/tstodr.c new file mode 100644 index 0000000..4cfb84e --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstodr.c @@ -0,0 +1,157 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstodr.c,v 1.8 2006/01/29 21:59:13 adam Exp $ + * + */ +#include +#include +#include +#include +#include "tstodrcodec.h" + +#include + +#define MYOID "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19" + +void tst_MySequence1(ODR encode, ODR decode) +{ + int ret; + char *ber_buf; + int ber_len; + Yc_MySequence *s = odr_malloc(encode, sizeof(*s)); + Yc_MySequence *t; + + YAZ_CHECK(s); + s->first = odr_intdup(encode, 12345); + s->second = odr_malloc(encode, sizeof(*s->second)); + s->second->buf = (unsigned char *) "hello"; + s->second->len = 5; + s->second->size = 0; + s->third = odr_intdup(encode, 1); + s->fourth = odr_nullval(); + s->fifth = odr_intdup(encode, YC_MySequence_enum1); + + s->myoid = odr_getoidbystr(decode, MYOID); + + ret = yc_MySequence(encode, &s, 0, 0); + YAZ_CHECK(ret); + if (!ret) + return; + + ber_buf = odr_getbuf(encode, &ber_len, 0); + + odr_setbuf(decode, ber_buf, ber_len, 0); + + ret = yc_MySequence(decode, &t, 0, 0); + YAZ_CHECK(ret); + if (!ret) + return; + + YAZ_CHECK(t); + + YAZ_CHECK(t->first && *t->first == 12345); + + YAZ_CHECK(t->second && t->second->buf && t->second->len == 5); + + YAZ_CHECK(t->second && t->second->buf && t->second->len == 5 && + memcmp(t->second->buf, "hello", t->second->len) == 0); + + YAZ_CHECK(t->third && *t->third == 1); + + YAZ_CHECK(t->fourth); + + YAZ_CHECK(t->fifth && *t->fifth == YC_MySequence_enum1); + + YAZ_CHECK(t->myoid); + if (t->myoid) + { + int *myoid = odr_getoidbystr(decode, MYOID); + + YAZ_CHECK(oid_oidcmp(myoid, t->myoid) == 0); + } +} + +void tst_MySequence2(ODR encode, ODR decode) +{ + int ret; + Yc_MySequence *s = odr_malloc(encode, sizeof(*s)); + + YAZ_CHECK(s); + s->first = 0; /* deliberately miss this .. */ + s->second = odr_malloc(encode, sizeof(*s->second)); + s->second->buf = (unsigned char *) "hello"; + s->second->len = 5; + s->second->size = 0; + s->third = odr_intdup(encode, 1); + s->fourth = odr_nullval(); + s->fifth = odr_intdup(encode, YC_MySequence_enum1); + s->myoid = odr_getoidbystr(encode, MYOID); + + ret = yc_MySequence(encode, &s, 0, 0); /* should fail */ + YAZ_CHECK(!ret); + + YAZ_CHECK(odr_geterror(encode) == OREQUIRED); + + YAZ_CHECK(strcmp(odr_getelement(encode), "first") == 0); + odr_reset(encode); + + YAZ_CHECK(odr_geterror(encode) == ONONE); + + YAZ_CHECK(strcmp(odr_getelement(encode), "") == 0); +} + +void tst_MySequence3(ODR encode, ODR decode) +{ + char buf[40]; + int i; + Yc_MySequence *t; + + srand(123); + for (i = 0; i<1000; i++) + { + int j; + for (j = 0; j + +int yc_MySequence (ODR o, Yc_MySequence **p, int opt, const char *name) +{ + if (!odr_sequence_begin (o, p, sizeof(**p), name)) + return odr_missing(o, opt, name) && odr_ok (o); + return + odr_implicit_tag (o, odr_integer, + &(*p)->first, ODR_CONTEXT, 1, 0, "first") && + odr_implicit_tag (o, odr_octetstring, + &(*p)->second, ODR_CONTEXT, 2, 0, "second") && + odr_implicit_tag (o, odr_bool, + &(*p)->third, ODR_CONTEXT, 3, 0, "third") && + odr_implicit_tag (o, odr_null, + &(*p)->fourth, ODR_CONTEXT, 4, 0, "fourth") && + odr_implicit_tag (o, odr_integer, + &(*p)->fifth, ODR_CONTEXT, 5, 0, "fifth") && + odr_implicit_tag (o, odr_oid, + &(*p)->myoid, ODR_CONTEXT, 6, 0, "myoid") && + odr_sequence_end (o); +} diff --git a/dependencies/yaz-2.1.28/test/tstodrcodec.h b/dependencies/yaz-2.1.28/test/tstodrcodec.h new file mode 100644 index 0000000..1ad8a71 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstodrcodec.h @@ -0,0 +1,37 @@ +/** \file tstodrcodec.h + \brief ASN.1 Module tstodrcodec + + Generated automatically by YAZ ASN.1 Compiler 0.4 +*/ + +#ifndef tstodrcodec_H +#define tstodrcodec_H + +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Yc_MySequence Yc_MySequence; +YAZ_EXPORT int yc_MySequence (ODR o, Yc_MySequence **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Yc_MySequence { + int *first; + Odr_oct *second; + bool_t *third; + Odr_null *fourth; +#define YC_MySequence_enum1 0 +#define YC_MySequence_enum2 1 + int *fifth; + Odr_oid *myoid; +}; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/dependencies/yaz-2.1.28/test/tstodrstack.c b/dependencies/yaz-2.1.28/test/tstodrstack.c new file mode 100644 index 0000000..9735de9 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstodrstack.c @@ -0,0 +1,77 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstodrstack.c,v 1.4 2006/01/29 21:59:13 adam Exp $ + * + */ +#include +#include +#include +#include + +/** \brief build a 100 level query */ +void test1() +{ + ODR odr = odr_createmem(ODR_ENCODE); + YAZ_PQF_Parser parser = yaz_pqf_create(); + Z_RPNQuery *rpn_query; + char qstr[10000]; + int i; + int ret; + + YAZ_CHECK(odr); + YAZ_CHECK(parser); + + *qstr = '\0'; + for (i = 0; i<100; i++) + strcat(qstr, "@and 1 "); + strcat(qstr, "1"); + + rpn_query = yaz_pqf_parse (parser, odr, qstr); + YAZ_CHECK(rpn_query); + + ret = z_RPNQuery(odr, &rpn_query, 0, 0); + YAZ_CHECK(ret); + + yaz_pqf_destroy(parser); + odr_destroy(odr); +} + +/** \brief build a circular referenced query */ +void test2() +{ + ODR odr = odr_createmem(ODR_ENCODE); + YAZ_PQF_Parser parser = yaz_pqf_create(); + Z_RPNQuery *rpn_query; + int ret; + + YAZ_CHECK(odr); + + rpn_query = yaz_pqf_parse (parser, odr, "@and @and a b c"); + YAZ_CHECK(rpn_query); + + /* make the circular reference */ + rpn_query->RPNStructure->u.complex->s1 = rpn_query->RPNStructure; + + ret = z_RPNQuery(odr, &rpn_query, 0, 0); /* should fail */ + YAZ_CHECK(!ret); + + yaz_pqf_destroy(parser); + odr_destroy(odr); +} + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + test1(); + test2(); + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ diff --git a/dependencies/yaz-2.1.28/test/tstpquery.c b/dependencies/yaz-2.1.28/test/tstpquery.c new file mode 100644 index 0000000..569781f --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstpquery.c @@ -0,0 +1,86 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstpquery.c,v 1.2 2006/04/01 11:47:41 adam Exp $ + */ + +#include +#include + +#include +#include +#include +#include + +int expect_pqf(const char *pqf, const char *expect_pqf, int expect_error) +{ + YAZ_PQF_Parser parser = yaz_pqf_create(); + int res = 0; + ODR odr = odr_createmem(ODR_ENCODE); + Z_RPNQuery *rpn; + + if (!parser) + return 0; + + if (!odr) + return 0; + + rpn = yaz_pqf_parse(parser, odr, pqf); + + if (!rpn) + { + const char *msg; + size_t offset; + int got_error = yaz_pqf_error (parser, &msg, &offset); + + if (expect_error == got_error) + res = 1; + } + else if (expect_error == YAZ_PQF_ERROR_NONE) + { + WRBUF wrbuf = wrbuf_alloc(); + + if (wrbuf) + { + yaz_rpnquery_to_wrbuf(wrbuf, rpn); + + if (!strcmp(wrbuf_buf(wrbuf), expect_pqf)) + res = 1; + wrbuf_free(wrbuf, 1); + } + } + yaz_pqf_destroy(parser); + odr_destroy(odr); + return res; +} + +static void tst() +{ + YAZ_CHECK(expect_pqf("a", "@attrset Bib-1 a", YAZ_PQF_ERROR_NONE)); + YAZ_CHECK(expect_pqf("@attr 1=4 a", "@attrset Bib-1 @attr 1=4 a", YAZ_PQF_ERROR_NONE)); + YAZ_CHECK(expect_pqf("a b", "", YAZ_PQF_ERROR_EXTRA)); + YAZ_CHECK(expect_pqf("@and a", "", YAZ_PQF_ERROR_MISSING)); + YAZ_CHECK(expect_pqf("@attr p=q a", "", YAZ_PQF_ERROR_BAD_INTEGER)); + YAZ_CHECK(expect_pqf("@prox 0 0 0 0 k 0 a b", + "@attrset Bib-1 @prox 0 0 0 0 k 0 a b", + YAZ_PQF_ERROR_NONE)); + YAZ_CHECK(expect_pqf("@prox 0 0 0 0 3 0 a b", "", + YAZ_PQF_ERROR_PROXIMITY)); +} + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst(); + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstsoap1.c b/dependencies/yaz-2.1.28/test/tstsoap1.c new file mode 100644 index 0000000..c5dd9aa --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstsoap1.c @@ -0,0 +1,63 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstsoap1.c,v 1.7 2006/07/06 10:17:55 adam Exp $ + */ + +#include +#if YAZ_HAVE_XML2 +#include +#endif +#include + +void tst() +{ +#if YAZ_HAVE_XML2 + xmlChar *buf_out; + int len_out; + xmlDocPtr doc; + xmlNodePtr top; +#if 0 + const char *val = "jordbær"; /* makes xmlDocDumpMemory hang .. */ +#else + const char *val = "jordbaer"; /* OK */ +#endif + doc = xmlNewDoc(BAD_CAST "1.0"); + YAZ_CHECK(doc); + + top = xmlNewNode(0, BAD_CAST "top"); + YAZ_CHECK(top); + + xmlNewTextChild(top, 0, BAD_CAST "sub", BAD_CAST val); + xmlDocSetRootElement(doc, top); + + xmlDocDumpMemory(doc, &buf_out, &len_out); +#if 0 + printf("%*s", len_out, buf_out); +#endif + + +/* YAZ_HAVE_XML2 */ +#endif +} + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); +#if YAZ_HAVE_XML2 + LIBXML_TEST_VERSION; +#endif + tst(); + YAZ_CHECK_TERM; +} + + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstsoap2.c b/dependencies/yaz-2.1.28/test/tstsoap2.c new file mode 100644 index 0000000..7de7324 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstsoap2.c @@ -0,0 +1,68 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstsoap2.c,v 1.5 2006/07/06 10:17:55 adam Exp $ + */ + +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include + +static void tst_srw(void) +{ + const char *charset = 0; + char *content_buf = 0; + int content_len; + int ret; + ODR o = odr_createmem(ODR_ENCODE); + Z_SOAP_Handler h[2] = { + {"http://www.loc.gov/zing/srw/", 0, (Z_SOAP_fun) yaz_srw_codec}, + {0, 0, 0} + }; + Z_SRW_PDU *sr = yaz_srw_get(o, Z_SRW_searchRetrieve_request); + Z_SOAP *p = odr_malloc(o, sizeof(*p)); + + YAZ_CHECK(o); + YAZ_CHECK(sr); + YAZ_CHECK(p); +#if 0 + sr->u.request->query.cql = "jordbær"; +#else + sr->u.request->query.cql = "jordbaer"; +#endif + + p->which = Z_SOAP_generic; + p->u.generic = odr_malloc(o, sizeof(*p->u.generic)); + p->u.generic->no = 0; + p->u.generic->ns = 0; + p->u.generic->p = sr; + p->ns = "http://schemas.xmlsoap.org/soap/envelope/"; + + ret = z_soap_codec_enc(o, &p, &content_buf, &content_len, h, charset); + odr_destroy(o); + YAZ_CHECK(ret == 0); /* codec failed ? */ +} +#endif + +int main(int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); +#if YAZ_HAVE_XML2 + LIBXML_TEST_VERSION; + tst_srw(); +#endif + YAZ_CHECK_TERM; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/test/tstwrbuf.c b/dependencies/yaz-2.1.28/test/tstwrbuf.c new file mode 100644 index 0000000..49f8d25 --- /dev/null +++ b/dependencies/yaz-2.1.28/test/tstwrbuf.c @@ -0,0 +1,70 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: tstwrbuf.c,v 1.5 2006/01/29 21:59:13 adam Exp $ + */ + +#include +#include + +#include +#include + +static void tstwrbuf(void) +{ + int step; + WRBUF wr = wrbuf_alloc(); + + YAZ_CHECK(wr); + + wrbuf_free(wr, 1); + + wr = wrbuf_alloc(); + + YAZ_CHECK(wr); + + for (step = 1; step < 65; step++) + { + int i, j, k; + int len; + char buf[64]; + char *cp; + for (j = 1; j +#include + +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#include +#endif + +enum pqf2xml_status { + PQF_FAILED, + QUERY2XML_FAILED, + XML_NO_MATCH, + XML_MATCH, + XML_NO_ERROR +}; + +enum pqf2xml_status pqf2xml_text(const char *pqf, const char *expect_xml, + const char *expect_pqf) +{ + YAZ_PQF_Parser parser = yaz_pqf_create(); + ODR odr = odr_createmem(ODR_ENCODE); + Z_RPNQuery *rpn; + enum pqf2xml_status status = XML_NO_ERROR; + + YAZ_CHECK(parser); + + YAZ_CHECK(odr); + + rpn = yaz_pqf_parse(parser, odr, pqf); + + yaz_pqf_destroy(parser); + + if (!rpn) + status = PQF_FAILED; + else + { +#if YAZ_HAVE_XML2 + xmlDocPtr doc = 0; + + yaz_rpnquery2xml(rpn, &doc); + + if (!doc) + status = QUERY2XML_FAILED; + else + { + char *buf_out; + int len_out; + + xmlDocDumpMemory(doc, (xmlChar **) &buf_out, &len_out); + + if (len_out == strlen(expect_xml) + && memcmp(buf_out, expect_xml, len_out) == 0) + { + Z_Query *query2 = 0; + int error_code = 0; + const char *addinfo = 0; + const xmlNode *root_element = xmlDocGetRootElement(doc); + ODR odr2 = odr_createmem(ODR_ENCODE); + + yaz_xml2query(root_element, &query2, odr2, + &error_code, &addinfo); + if (error_code || !query2) + status = XML_NO_MATCH; + else + { + WRBUF w = wrbuf_alloc(); + yaz_query_to_wrbuf(w, query2); + if (!expect_pqf || strcmp(expect_pqf, wrbuf_buf(w)) == 0) + status = XML_MATCH; + else + { + status = XML_NO_MATCH; + printf("Result: %s\n", wrbuf_buf(w)); + } + wrbuf_free(w, 1); + } + odr_destroy(odr2); + } + else + { + printf("%.*s\n", len_out, buf_out); + status = XML_NO_MATCH; + } + xmlFreeDoc(doc); + } +#else + status = QUERY2XML_FAILED; +#endif + } + odr_destroy(odr); + return status; +} + +static void tst() +{ + YAZ_CHECK_EQ(pqf2xml_text("@attr 1=4 bad query", "", 0), PQF_FAILED); +#if YAZ_HAVE_XML2 + YAZ_CHECK_EQ(pqf2xml_text( + "@attr 1=4 computer", + "\n" + "" + "" + "computer" + "\n", + "RPN @attrset Bib-1 @attr 1=4 computer" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@attr 2=1 @attr 1=title computer", + "\n" + "" + "" + "" + "computer" + "\n", + "RPN @attrset Bib-1 @attr \"1=title\" @attr 2=1 computer" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@attr 2=1 @attr exp1 1=1 computer", + "\n" + "" + "" + "" + "computer" + "\n", + "RPN @attrset Bib-1 @attr Exp-1 1=1 @attr 2=1 computer" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@and a b", + "\n" + "" + "" + "a" + "b" + "\n", + "RPN @attrset Bib-1 @and a b" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@or @and a b c", + "\n" + "" + "" + "" + "a" + "b" + "c" + "\n", + "RPN @attrset Bib-1 @or @and a b c" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@set abe", + "\n" + "" + "abe\n", + "RPN @attrset Bib-1 @set abe" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + /* exclusion, distance, ordered, relationtype, + knownunit, proxunit */ + "@prox 0 3 1 2 k 2 a b", + "\n" + "" + "" + "a" + "b" + "\n", + "RPN @attrset Bib-1 @prox 0 3 1 2 k 2 a b" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@term numeric 32", + "\n" + "" + "" + "32" + "\n", + "RPN @attrset Bib-1 @term numeric 32" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@term string computer", + "\n" + "" + "" + "computer" + "\n", + "RPN @attrset Bib-1 @term string computer" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@term null void", + "\n" + "" + "" + "" + "\n", + "RPN @attrset Bib-1 @term null x" + ), XML_MATCH); + + YAZ_CHECK_EQ(pqf2xml_text( + "@attrset gils @attr 4=2 x", + "\n" + "" + "" + "" + "x" + "\n", + "RPN @attrset GILS @attr 4=2 x" + ), XML_MATCH); +#endif +} + +int main (int argc, char **argv) +{ + YAZ_CHECK_INIT(argc, argv); + tst(); + YAZ_CHECK_TERM; +} + +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/util/Makefile.am b/dependencies/yaz-2.1.28/util/Makefile.am new file mode 100644 index 0000000..77f72b6 --- /dev/null +++ b/dependencies/yaz-2.1.28/util/Makefile.am @@ -0,0 +1,40 @@ +## Copyright (C) 1994-2006, Index Data +## All rights reserved. +## $Id: Makefile.am,v 1.29 2006/02/23 10:40:59 adam Exp $ + +bin_SCRIPTS = yaz-asncomp yaz-config + +EXTRA_DIST = yaz-asncomp + +DISTCLEANFILES = yaz-config + +AM_CPPFLAGS=-I$(top_srcdir)/include $(XML2_CFLAGS) + +bin_PROGRAMS = yaz-marcdump yaz-iconv +noinst_PROGRAMS = cclsh cql2pqf cql2xcql srwtst yaz-benchmark yaz-xmlquery + +# MARC dumper utility +yaz_marcdump_SOURCES = marcdump.c +yaz_marcdump_LDADD = ../src/libyaz.la + +# YAZ Iconv utility +yaz_iconv_SOURCES = yaziconv.c +yaz_iconv_LDADD = ../src/libyaz.la + +srwtst_SOURCES=srwtst.c +srwtst_LDADD = ../src/libyaz.la + +cclsh_SOURCES=cclsh.c +cclsh_LDADD = ../src/libyaz.la $(READLINE_LIBS) + +cql2pqf_SOURCES = cql2pqf.c +cql2pqf_LDADD = ../src/libyaz.la + +cql2xcql_SOURCES = cql2xcql.c +cql2xcql_LDADD = ../src/libyaz.la + +yaz_benchmark_SOURCES = benchmark.c +yaz_benchmark_LDADD = ../src/libyaz.la + +yaz_xmlquery_SOURCES = yaz-xmlquery.c +yaz_xmlquery_LDADD = ../src/libyaz.la diff --git a/dependencies/yaz-2.1.28/util/Makefile.in b/dependencies/yaz-2.1.28/util/Makefile.in new file mode 100644 index 0000000..e7bbb9a --- /dev/null +++ b/dependencies/yaz-2.1.28/util/Makefile.in @@ -0,0 +1,587 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +SOURCES = $(cclsh_SOURCES) $(cql2pqf_SOURCES) $(cql2xcql_SOURCES) $(srwtst_SOURCES) $(yaz_benchmark_SOURCES) $(yaz_iconv_SOURCES) $(yaz_marcdump_SOURCES) $(yaz_xmlquery_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +bin_PROGRAMS = yaz-marcdump$(EXEEXT) yaz-iconv$(EXEEXT) +noinst_PROGRAMS = cclsh$(EXEEXT) cql2pqf$(EXEEXT) cql2xcql$(EXEEXT) \ + srwtst$(EXEEXT) yaz-benchmark$(EXEEXT) yaz-xmlquery$(EXEEXT) +subdir = util +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_cclsh_OBJECTS = cclsh.$(OBJEXT) +cclsh_OBJECTS = $(am_cclsh_OBJECTS) +am__DEPENDENCIES_1 = +cclsh_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_cql2pqf_OBJECTS = cql2pqf.$(OBJEXT) +cql2pqf_OBJECTS = $(am_cql2pqf_OBJECTS) +cql2pqf_DEPENDENCIES = ../src/libyaz.la +am_cql2xcql_OBJECTS = cql2xcql.$(OBJEXT) +cql2xcql_OBJECTS = $(am_cql2xcql_OBJECTS) +cql2xcql_DEPENDENCIES = ../src/libyaz.la +am_srwtst_OBJECTS = srwtst.$(OBJEXT) +srwtst_OBJECTS = $(am_srwtst_OBJECTS) +srwtst_DEPENDENCIES = ../src/libyaz.la +am_yaz_benchmark_OBJECTS = benchmark.$(OBJEXT) +yaz_benchmark_OBJECTS = $(am_yaz_benchmark_OBJECTS) +yaz_benchmark_DEPENDENCIES = ../src/libyaz.la +am_yaz_iconv_OBJECTS = yaziconv.$(OBJEXT) +yaz_iconv_OBJECTS = $(am_yaz_iconv_OBJECTS) +yaz_iconv_DEPENDENCIES = ../src/libyaz.la +am_yaz_marcdump_OBJECTS = marcdump.$(OBJEXT) +yaz_marcdump_OBJECTS = $(am_yaz_marcdump_OBJECTS) +yaz_marcdump_DEPENDENCIES = ../src/libyaz.la +am_yaz_xmlquery_OBJECTS = yaz-xmlquery.$(OBJEXT) +yaz_xmlquery_OBJECTS = $(am_yaz_xmlquery_OBJECTS) +yaz_xmlquery_DEPENDENCIES = ../src/libyaz.la +binSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(bin_SCRIPTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/benchmark.Po ./$(DEPDIR)/cclsh.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/cql2pqf.Po ./$(DEPDIR)/cql2xcql.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/marcdump.Po ./$(DEPDIR)/srwtst.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/yaz-xmlquery.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/yaziconv.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(cclsh_SOURCES) $(cql2pqf_SOURCES) $(cql2xcql_SOURCES) \ + $(srwtst_SOURCES) $(yaz_benchmark_SOURCES) \ + $(yaz_iconv_SOURCES) $(yaz_marcdump_SOURCES) \ + $(yaz_xmlquery_SOURCES) +DIST_SOURCES = $(cclsh_SOURCES) $(cql2pqf_SOURCES) $(cql2xcql_SOURCES) \ + $(srwtst_SOURCES) $(yaz_benchmark_SOURCES) \ + $(yaz_iconv_SOURCES) $(yaz_marcdump_SOURCES) \ + $(yaz_xmlquery_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +bin_SCRIPTS = yaz-asncomp yaz-config +EXTRA_DIST = yaz-asncomp +DISTCLEANFILES = yaz-config +AM_CPPFLAGS = -I$(top_srcdir)/include $(XML2_CFLAGS) + +# MARC dumper utility +yaz_marcdump_SOURCES = marcdump.c +yaz_marcdump_LDADD = ../src/libyaz.la + +# YAZ Iconv utility +yaz_iconv_SOURCES = yaziconv.c +yaz_iconv_LDADD = ../src/libyaz.la +srwtst_SOURCES = srwtst.c +srwtst_LDADD = ../src/libyaz.la +cclsh_SOURCES = cclsh.c +cclsh_LDADD = ../src/libyaz.la $(READLINE_LIBS) +cql2pqf_SOURCES = cql2pqf.c +cql2pqf_LDADD = ../src/libyaz.la +cql2xcql_SOURCES = cql2xcql.c +cql2xcql_LDADD = ../src/libyaz.la +yaz_benchmark_SOURCES = benchmark.c +yaz_benchmark_LDADD = ../src/libyaz.la +yaz_xmlquery_SOURCES = yaz-xmlquery.c +yaz_xmlquery_LDADD = ../src/libyaz.la +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu util/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +cclsh$(EXEEXT): $(cclsh_OBJECTS) $(cclsh_DEPENDENCIES) + @rm -f cclsh$(EXEEXT) + $(LINK) $(cclsh_LDFLAGS) $(cclsh_OBJECTS) $(cclsh_LDADD) $(LIBS) +cql2pqf$(EXEEXT): $(cql2pqf_OBJECTS) $(cql2pqf_DEPENDENCIES) + @rm -f cql2pqf$(EXEEXT) + $(LINK) $(cql2pqf_LDFLAGS) $(cql2pqf_OBJECTS) $(cql2pqf_LDADD) $(LIBS) +cql2xcql$(EXEEXT): $(cql2xcql_OBJECTS) $(cql2xcql_DEPENDENCIES) + @rm -f cql2xcql$(EXEEXT) + $(LINK) $(cql2xcql_LDFLAGS) $(cql2xcql_OBJECTS) $(cql2xcql_LDADD) $(LIBS) +srwtst$(EXEEXT): $(srwtst_OBJECTS) $(srwtst_DEPENDENCIES) + @rm -f srwtst$(EXEEXT) + $(LINK) $(srwtst_LDFLAGS) $(srwtst_OBJECTS) $(srwtst_LDADD) $(LIBS) +yaz-benchmark$(EXEEXT): $(yaz_benchmark_OBJECTS) $(yaz_benchmark_DEPENDENCIES) + @rm -f yaz-benchmark$(EXEEXT) + $(LINK) $(yaz_benchmark_LDFLAGS) $(yaz_benchmark_OBJECTS) $(yaz_benchmark_LDADD) $(LIBS) +yaz-iconv$(EXEEXT): $(yaz_iconv_OBJECTS) $(yaz_iconv_DEPENDENCIES) + @rm -f yaz-iconv$(EXEEXT) + $(LINK) $(yaz_iconv_LDFLAGS) $(yaz_iconv_OBJECTS) $(yaz_iconv_LDADD) $(LIBS) +yaz-marcdump$(EXEEXT): $(yaz_marcdump_OBJECTS) $(yaz_marcdump_DEPENDENCIES) + @rm -f yaz-marcdump$(EXEEXT) + $(LINK) $(yaz_marcdump_LDFLAGS) $(yaz_marcdump_OBJECTS) $(yaz_marcdump_LDADD) $(LIBS) +yaz-xmlquery$(EXEEXT): $(yaz_xmlquery_OBJECTS) $(yaz_xmlquery_DEPENDENCIES) + @rm -f yaz-xmlquery$(EXEEXT) + $(LINK) $(yaz_xmlquery_LDFLAGS) $(yaz_xmlquery_OBJECTS) $(yaz_xmlquery_LDADD) $(LIBS) +install-binSCRIPTS: $(bin_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ + else :; fi; \ + done + +uninstall-binSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(bin_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchmark.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cclsh.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cql2pqf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cql2xcql.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marcdump.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srwtst.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yaz-xmlquery.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yaziconv.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) $(SCRIPTS) +installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: install-binPROGRAMS install-binSCRIPTS + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ + uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool clean-noinstPROGRAMS ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-binSCRIPTS install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/util/benchmark.c b/dependencies/yaz-2.1.28/util/benchmark.c new file mode 100644 index 0000000..e3a4f03 --- /dev/null +++ b/dependencies/yaz-2.1.28/util/benchmark.c @@ -0,0 +1,146 @@ +/* $Id: benchmark.c,v 1.9 2005/10/22 13:13:56 adam Exp $ + * Copyright (C) 1995-2005, Index Data ApS + * + * This file is part of the YAZ toolkit. + * + * See the file LICENSE. + * + * This is an elementary benchmarker for server performance. It works + * by repeatedly connecting to, seaching in and retrieving from the + * specified server, and keeps statistics about the minimum, maximum + * and average times for each operation. + */ + +#include +#include +#include +#include +#include + +#include + + +struct boptions { + int nconnect; /* number of connections to make */ + int nsearch; /* number of searches on each connection */ + int npresent; /* number of presents for each search */ + int full; /* 1 = fetch full records, 0 = brief */ + int delay; /* number of ms to delay between ops */ + int random; /* if true, delay is random 0-specified */ + int verbosity; /* 0 = quiet, higher => more verbose */ +} boptions = { + 3, + 3, + 3, + 0, + 1000, + 1, + 0, +}; + + +static int test(char *host, int port); +static void db_printf(int level, char *fmt, ...); +static void usage(const char *prog); + +int main(int argc, char **argv) +{ + char *host = 0; + int port = 0; + int c; + int i; + int ok; + int nok = 0; + char *arg; + + while ((c = options("c:s:p:fbd:rv:", argv, argc, &arg)) != -2) { + switch (c) { + case 0: + if (!host) + host = arg; + else if (!port) + port = atoi(arg); + else + usage(*argv); + break; + case 'c': boptions.nconnect = atoi(arg); break; + case 's': boptions.nsearch = atoi(arg); break; + case 'p': boptions.npresent = atoi(arg); break; + case 'f': boptions.full = 1; break; + case 'b': boptions.full = 0; break; + case 'd': boptions.delay = atoi(arg); break; + case 'r': boptions.random = 1; break; + case 'v': boptions.verbosity = atoi(arg); break; + default: usage(*argv); + } + } + + if (!host || !port) + usage(*argv); + + for (i = 0; i < boptions.nconnect; i++) { + db_printf(2, "iteration %d of %d", i+1, boptions.nconnect); + ok = test(host, port); + if (ok) nok++; + } + + db_printf(1, "passed %d of %d tests", nok, boptions.nconnect); + if (nok < boptions.nconnect) + printf("Failed %d of %d tests\n", + boptions.nconnect-nok, boptions.nconnect); + + return 0; +} + +static void usage(const char *prog) +{ + fprintf(stderr, "Usage: %s [options] \n" +" -c Make connection to the server [default: 3]\n" +" -s Perform searches on each connection [3]\n" +" -p Make present requests after each search [3]\n" +" -f Fetch full records [default: brief]\n" +" -b Fetch brief records\n" +" -d Delay ms after each operation\n" +" -r Delays are random between 0 and the specified number of ms\n" +" -v Set verbosity level to [0, silent on success]\n" + , prog); + exit(1); +} + +static int test(char *host, int port) +{ + ZOOM_connection conn; + int error; + const char *errmsg, *addinfo; + + conn = ZOOM_connection_new(host, port); + if ((error = ZOOM_connection_error(conn, &errmsg, &addinfo))) { + fprintf(stderr, "ZOOM error: %s (%d): %s\n", errmsg, error, addinfo); + return 0; + } + + ZOOM_connection_destroy(conn); + return 1; +} + +static void db_printf(int level, char *fmt, ...) +{ + va_list ap; + + if (level > boptions.verbosity) + return; + + fprintf(stderr, "DEBUG(%d): ", level); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + fputc('\n', stderr); + va_end(ap); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/util/cclsh.c b/dependencies/yaz-2.1.28/util/cclsh.c new file mode 100644 index 0000000..0a5d41a --- /dev/null +++ b/dependencies/yaz-2.1.28/util/cclsh.c @@ -0,0 +1,236 @@ +/* + * Copyright (c) 1995, the EUROPAGATE consortium (see below). + * + * The EUROPAGATE consortium members are: + * + * University College Dublin + * Danmarks Teknologiske Videnscenter + * An Chomhairle Leabharlanna + * Consejo Superior de Investigaciones Cientificas + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation, in whole or in part, for any purpose, is hereby granted, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The names of EUROPAGATE or the project partners may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * 3. Users of this software (implementors and gateway operators) agree to + * inform the EUROPAGATE consortium of their use of the software. This + * information will be used to evaluate the EUROPAGATE project and the + * software, and to plan further developments. The consortium may use + * the information in later publications. + * + * 4. Users of this software agree to make their best efforts, when + * documenting their use of the software, to acknowledge the EUROPAGATE + * consortium, and the role played by the software in their work. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE + * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF + * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA + * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND + * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE + * USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ +/* CCL shell. + * Europagate 1995 + * + * $Id: cclsh.c,v 1.2 2005/06/25 15:46:07 adam Exp $ + * + * Old Europagate Log: + * + * Revision 1.11 1995/05/16 09:39:27 adam + * LICENSE. + * + * Revision 1.10 1995/05/11 14:03:57 adam + * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. + * New variable ccl_case_sensitive, which controls whether reserved + * words and field names are case sensitive or not. + * + * Revision 1.9 1995/02/23 08:32:00 adam + * Changed header. + * + * Revision 1.7 1995/02/15 17:42:16 adam + * Minor changes of the api of this module. FILE* argument added + * to ccl_pr_tree. + * + * Revision 1.6 1995/02/14 19:55:13 adam + * Header files ccl.h/cclp.h are gone! They have been merged an + * moved to ../include/ccl.h. + * Node kind(s) in ccl_rpn_node have changed names. + * + * Revision 1.5 1995/02/14 16:20:57 adam + * Qualifiers are read from a file now. + * + * Revision 1.4 1995/02/14 14:12:42 adam + * Ranges for ordered qualfiers implemented (e.g. pd=1980-1990). + * + * Revision 1.3 1995/02/14 10:25:57 adam + * The constructions 'qualifier rel term ...' implemented. + * + * Revision 1.2 1995/02/13 15:15:07 adam + * Added handling of qualifiers. Not finished yet. + * + * Revision 1.1 1995/02/13 12:35:21 adam + * First version of CCL. Qualifiers aren't handled yet. + */ + +#include +#include + +#include + + +#if HAVE_READLINE_READLINE_H +#include +#endif +#if HAVE_READLINE_HISTORY_H +#include +#endif + + +static int debug = 0; +static char *prog; + +void usage(const char *prog) +{ + fprintf (stderr, "%s: [-d] [-b configfile]\n", prog); + exit (1); +} + +int main (int argc, char **argv) +{ + CCL_bibset bibset; + FILE *bib_inf; + char *bib_fname; + + prog = *argv; + bibset = ccl_qual_mk (); + while (--argc > 0) + { + if (**++argv == '-') + { + switch (argv[0][1]) + { + case 'd': + debug = 1; + break; + case 'b': + if (argv[0][2]) + bib_fname = argv[0]+2; + else if (argc > 0) + { + --argc; + bib_fname = *++argv; + } + else + { + fprintf (stderr, "%s: missing bib filename\n", prog); + exit (1); + } + bib_inf = fopen (bib_fname, "r"); + if (!bib_inf) + { + fprintf (stderr, "%s: cannot open %s\n", prog, + bib_fname); + exit (1); + } + ccl_qual_file (bibset, bib_inf); + fclose (bib_inf); + break; + default: + usage(prog); + } + } + else + { + fprintf (stderr, "%s: no filenames, please\n", prog); + exit (1); + } + } + while (1) + { + char buf[1000]; + int i, error, pos; + struct ccl_rpn_node *rpn; + +#if HAVE_READLINE_READLINE_H + char* line_in; + line_in=readline("CCLSH>"); + if (!line_in) + break; +#if HAVE_READLINE_HISTORY_H + if (*line_in) + add_history(line_in); +#endif + if (strlen(line_in) > 999) { + fprintf(stderr,"Input line to long\n"); + break; + } + strcpy(buf,line_in); + free (line_in); +#else + printf ("CCLSH>"); fflush (stdout); + if (!fgets (buf, 999, stdin)) + break; +#endif + + for (i = 0; i<1; i++) + { + CCL_parser cclp = ccl_parser_create (); + struct ccl_token *list; + + cclp->bibset = bibset; + + list = ccl_parser_tokenize (cclp, buf); + rpn = ccl_parser_find (cclp, list); + + error = cclp->error_code; + if (error) + pos = cclp->error_pos - buf; + + if (error) + { + printf ("%*s^ - ", 6+pos, " "); + printf ("%s\n", ccl_err_msg (error)); + } + else + { + if (rpn && i == 0) + { + ccl_pr_tree (rpn, stdout); + printf ("\n"); + } + } + if (debug) + { + struct ccl_token *lp; + for (lp = list; lp; lp = lp->next) + printf ("%d %.*s\n", lp->kind, (int) (lp->len), lp->name); + } + ccl_token_del (list); + ccl_parser_destroy (cclp); + if (rpn) + ccl_rpn_delete(rpn); + } + } + printf ("\n"); + return 0; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/util/cql2pqf.c b/dependencies/yaz-2.1.28/util/cql2pqf.c new file mode 100644 index 0000000..df86a2a --- /dev/null +++ b/dependencies/yaz-2.1.28/util/cql2pqf.c @@ -0,0 +1,99 @@ +/* $Id: cql2pqf.c,v 1.7 2005/06/25 15:46:07 adam Exp $ + Copyright (C) 1995-2005, Index Data ApS + Index Data Aps + +This file is part of the YAZ toolkit. + +See the file LICENSE. +*/ + +#include +#include + +#include +#include + +static void usage() +{ + fprintf (stderr, "usage\n cql2pqf [-n ] []\n"); + exit (1); +} + +int main(int argc, char **argv) +{ + cql_transform_t ct; + int r = 0; + int i, iterations = 1; + CQL_parser cp = cql_parser_create(); + char *query = 0; + char *fname = 0; + + int ret; + char *arg; + + while ((ret = options("n:", argv, argc, &arg)) != -2) + { + switch (ret) + { + case 0: + if (!fname) + fname = arg; + else + query = arg; + break; + case 'n': + iterations = atoi(arg); + break; + default: + usage(); + } + } + if (!fname) + usage(); + ct = cql_transform_open_fname(fname); + if (!ct) + { + fprintf (stderr, "failed to read properties %s\n", fname); + exit (1); + } + + if (query) + { + for (i = 0; i +#include + +#include +#include + +int main(int argc, char **argv) +{ + CQL_parser cp; + int r = 0; + const char *fname = 0; + int iterations = 1; + int ret; + char *arg; + + while ((ret = options("n:", argv, argc, &arg)) != -2) + { + switch (ret) + { + case 0: + fname = arg; + break; + case 'n': + iterations = atoi(arg); + break; + } + } + + cp = cql_parser_create(); + if (fname) + { + int i; + for (i = 0; i +#endif + +#if YAZ_HAVE_XML2 +#include +#include + +#include +#include + +#endif + +#include +#include +#include +#include +#include + +#if HAVE_LOCALE_H +#include +#endif +#if HAVE_LANGINFO_H +#include +#endif + +#include +#include +#include +#include + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif +#ifndef SEEK_END +#define SEEK_END 2 +#endif + + +static char *prog; + +static void usage(const char *prog) +{ + fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] [-x] [-X] [-e] " + "[-I] [-l pos=value] [-v] [-s splitfname] file...\n", + prog); +} + +#if YAZ_HAVE_XML2 +static void marcdump_read_xml(yaz_marc_t mt, const char *fname) +{ + xmlNodePtr ptr; + xmlDocPtr doc = xmlParseFile(fname); + if (!doc) + return; + + ptr = xmlDocGetRootElement(doc); + if (ptr) + { + int r; + WRBUF wrbuf = wrbuf_alloc(); + r = yaz_marc_read_xml(mt, ptr); + if (r) + fprintf(stderr, "yaz_marc_read_xml failed\n"); + + yaz_marc_write_mode(mt, wrbuf); + + fputs(wrbuf_buf(wrbuf), stdout); + + wrbuf_free(wrbuf, 1); + } + xmlFreeDoc(doc); +} +#endif + +static void dump(const char *fname, const char *from, const char *to, + int read_xml, int xml, + int print_offset, const char *split_fname, int verbose, + FILE *cfile, const char *leader_spec) +{ + yaz_marc_t mt = yaz_marc_create(); + yaz_iconv_t cd = 0; + + if (yaz_marc_leader_spec(mt, leader_spec)) + { + fprintf(stderr, "bad leader spec: %s\n", leader_spec); + yaz_marc_destroy(mt); + exit(2); + } + if (from && to) + { + cd = yaz_iconv_open(to, from); + if (!cd) + { + fprintf(stderr, "conversion from %s to %s " + "unsupported\n", from, to); + yaz_marc_destroy(mt); + exit(2); + } + yaz_marc_iconv(mt, cd); + } + yaz_marc_xml(mt, xml); + yaz_marc_debug(mt, verbose); + + if (read_xml) + { +#if YAZ_HAVE_XML2 + marcdump_read_xml(mt, fname); +#else + return; +#endif + } + else + { + FILE *inf = fopen(fname, "rb"); + int count = 0; + int num = 1; + if (!inf) + { + fprintf (stderr, "%s: cannot open %s:%s\n", + prog, fname, strerror (errno)); + exit(1); + } + if (cfile) + fprintf (cfile, "char *marc_records[] = {\n"); + if (1) + { + int marc_no = 0; + for(;; marc_no++) + { + size_t len; + char *result = 0; + size_t rlen; + size_t r; + char buf[100001]; + + r = fread (buf, 1, 5, inf); + if (r < 5) + { + if (r && print_offset && verbose) + printf ("\n", + (long) r); + break; + } + while (*buf < '0' || *buf > '9') + { + int i; + long off = ftell(inf) - 5; + if (verbose || print_offset) + printf("\n", + *buf & 0xff, *buf & 0xff, + off, off); + for (i = 0; i<4; i++) + buf[i] = buf[i+1]; + r = fread(buf+4, 1, 1, inf); + if (r < 1) + break; + } + if (r < 1) + { + if (verbose || print_offset) + printf ("\n"); + break; + } + if (print_offset) + { + long off = ftell(inf) - 5; + printf ("\n", + num, off, off); + } + len = atoi_n(buf, 5); + if (len < 25 || len > 100000) + { + long off = ftell(inf) - 5; + printf("Bad Length %d read at offset %ld (%lx)\n", + len, (long) off, (long) off); + break; + } + rlen = len - 5; + r = fread (buf + 5, 1, rlen, inf); + if (r < rlen) + break; + if (split_fname) + { + char fname[256]; + FILE *sf; + sprintf(fname, "%.200s%07d", split_fname, marc_no); + sf = fopen(fname, "wb"); + if (!sf) + { + fprintf(stderr, "Could not open %s\n", fname); + split_fname = 0; + } + else + { + if (fwrite(buf, 1, len, sf) != len) + { + fprintf(stderr, "Could write content to %s\n", + fname); + split_fname = 0; + } + fclose(sf); + } + } + { + int rlentmp = (int) rlen; + r = yaz_marc_decode_buf(mt, buf, -1, &result, &rlentmp); + rlen = (size_t) rlentmp; + } + if (r > 0 && result) + { + fwrite (result, rlen, 1, stdout); + } + if (r > 0 && cfile) + { + char *p = buf; + size_t i; + if (count) + fprintf (cfile, ","); + fprintf (cfile, "\n"); + for (i = 0; i < r; i++) + { + if ((i & 15) == 0) + fprintf (cfile, " \""); + fprintf (cfile, "\\x%02X", p[i] & 255); + + if (i < r - 1 && (i & 15) == 15) + fprintf (cfile, "\"\n"); + + } + fprintf (cfile, "\"\n"); + } + num++; + if (verbose) + printf("\n"); + } + count++; + } + if (cfile) + fprintf (cfile, "};\n"); + fclose(inf); + } + if (cd) + yaz_iconv_close(cd); + yaz_marc_destroy(mt); +} + +int main (int argc, char **argv) +{ + int r; + int print_offset = 0; + char *arg; + int verbose = 0; + int no = 0; + int xml = 0; + FILE *cfile = 0; + char *from = 0, *to = 0; + int read_xml = 0; + const char *split_fname = 0; + const char *leader_spec = 0; + +#if HAVE_LOCALE_H + setlocale(LC_CTYPE, ""); +#endif +#if HAVE_LANGINFO_H +#ifdef CODESET + to = nl_langinfo(CODESET); +#endif +#endif + + prog = *argv; + while ((r = options("pvc:xOeXIf:t:s:l:", argv, argc, &arg)) != -2) + { + no++; + switch (r) + { + case 'l': + leader_spec = arg; + break; + case 'f': + from = arg; + break; + case 't': + to = arg; + break; + case 'c': + if (cfile) + fclose (cfile); + cfile = fopen(arg, "w"); + break; + case 'x': +#if YAZ_HAVE_XML2 + read_xml = 1; +#else + fprintf(stderr, "%s: -x not supported." + " YAZ not compiled with Libxml2 support\n", prog); + exit(3); +#endif + break; + case 'O': + fprintf(stderr, "%s: OAI MARC no longer supported." + " Use MARCXML instead.\n", prog); + exit(1); + break; + case 'e': + xml = YAZ_MARC_XCHANGE; + break; + case 'X': + xml = YAZ_MARC_MARCXML; + break; + case 'I': + xml = YAZ_MARC_ISO2709; + break; + case 'p': + print_offset = 1; + break; + case 's': + split_fname = arg; + break; + case 0: + dump(arg, from, to, read_xml, xml, + print_offset, split_fname, verbose, cfile, leader_spec); + break; + case 'v': + verbose++; + break; + default: + usage(prog); + exit (1); + } + } + if (cfile) + fclose (cfile); + if (!no) + { + usage(prog); + exit (1); + } + exit (0); +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/util/srwtst.c b/dependencies/yaz-2.1.28/util/srwtst.c new file mode 100644 index 0000000..6104814 --- /dev/null +++ b/dependencies/yaz-2.1.28/util/srwtst.c @@ -0,0 +1,116 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: srwtst.c,v 1.5 2006/07/06 10:17:55 adam Exp $ + */ + +#include +#include + +#if YAZ_HAVE_XML2 +Z_SOAP_Handler h[2] = { + {"http://www.loc.gov/zing/srw/v1.0/", 0, (Z_SOAP_fun) yaz_srw_codec}, + {0, 0, 0} +}; + +int main(int argc, char **argv) +{ + char buf[163840]; + char *content_buf = buf; + int content_len; + int ret; + size_t no; + Z_SOAP *soap_package = 0; + ODR decode, encode; + int debug = 0; + + nmem_init(); + if (argc == 2 && !strcmp(argv[1], "debug")) + debug = 1; + no = fread(buf, 1, sizeof(buf), stdin); + if (no < 1 || no == sizeof(buf)) + { + fprintf(stderr, "Bad file or too big\n"); + exit (1); + } + decode = odr_createmem(ODR_DECODE); + encode = odr_createmem(ODR_ENCODE); + content_len = no; + ret = z_soap_codec(decode, &soap_package, + &content_buf, &content_len, h); + if (!soap_package) + { + fprintf(stderr, "Decoding seriously failed\n"); + exit(1); + } + if (debug) + { + fprintf(stderr, "got NS = %s\n", soap_package->ns); + if (soap_package->which == Z_SOAP_generic && + soap_package->u.generic->no == 0) + { + Z_SRW_PDU *sr = soap_package->u.generic->p; + if (sr->which == Z_SRW_searchRetrieve_request) + { + Z_SRW_searchRetrieveRequest *req = sr->u.request; + switch(req->query_type) + { + case Z_SRW_query_type_cql: + fprintf(stderr, "CQL: %s\n", req->query.cql); + break; + case Z_SRW_query_type_xcql: + fprintf(stderr, "XCQL\n"); + break; + case Z_SRW_query_type_pqf: + fprintf(stderr, "PQF: %s\n", req->query.pqf); + break; + } + } + else if (sr->which == Z_SRW_searchRetrieve_response) + { + Z_SRW_searchRetrieveResponse *res = sr->u.response; + if (res->records && res->num_records) + { + int i; + for (i = 0; inum_records; i++) + { + fprintf (stderr, "%d\n", i); + if (res->records[i].recordData_buf) + fwrite(res->records[i].recordData_buf, 1, + res->records[i].recordData_len, stderr); + } + } + } + + } + } + ret = z_soap_codec(encode, &soap_package, + &content_buf, &content_len, h); + if (content_buf && content_len) + fwrite (content_buf, content_len, 1, stdout); + else + { + fprintf(stderr, "No output!\n"); + exit(1); + } + odr_destroy(decode); + odr_destroy(encode); + nmem_exit(); + exit(0); +} +#else +int main(int argc, char **argv) +{ + fprintf(stderr, "SOAP disabled\n"); + exit(1); +} +#endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/dependencies/yaz-2.1.28/util/yaz-asncomp b/dependencies/yaz-2.1.28/util/yaz-asncomp new file mode 100755 index 0000000..bedf67e --- /dev/null +++ b/dependencies/yaz-2.1.28/util/yaz-asncomp @@ -0,0 +1,1407 @@ +#!/bin/sh +# the next line restarts using tclsh \ +if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi +# +# yaz-comp: ASN.1 Compiler for YAZ +# (c) Index Data 1996-2004 +# See the file LICENSE for details. +# +# $Id: yaz-asncomp,v 1.7 2006/05/22 19:08:38 adam Exp $ +# + +set yc_version 0.4 + +# Syntax for the ASN.1 supported: +# file -> file module +# | module +# module -> name skip DEFINITIONS ::= mbody END +# mbody -> EXPORTS { nlist } +# | IMPORTS { imlist } +# | name ::= tmt +# | skip +# tmt -> tag mod type +# type -> SEQUENCE { sqlist } +# | SEQUENCE OF type +# | CHOICE { chlist } +# | basic enlist +# +# basic -> INTEGER +# | BOOLEAN +# | OCTET STRING +# | BIT STRING +# | EXTERNAL +# | name +# sqlist -> sqlist , name tmt opt +# | name tmt opt +# chlist -> chlist , name tmt +# | name tmt +# enlist -> enlist , name (n) +# | name (n) +# imlist -> nlist FROM name +# imlist nlist FROM name +# nlist -> name +# | nlist , name +# mod -> IMPLICIT | EXPLICIT | e +# tag -> [tagtype n] | [n] | e +# opt -> OPTIONAL | e +# +# name identifier/token +# e epsilon/empty +# skip one token skipped +# n number +# tagtype APPLICATION, CONTEXT, etc. + +# lex: moves input file pointer and returns type of token. +# The globals $type and $val are set. $val holds name if token +# is normal identifier name. +# sets global var type to one of: +# {} eof-of-file +# \{ left curly brace +# \} right curly brace +# , comma +# ; semicolon +# ( (n) +# [ [n] +# : ::= +# n other token n +proc lex {} { + global inf val type + while {![string length $inf(str)]} { + incr inf(lineno) + set inf(cnt) [gets $inf(inf) inf(str)] + if {$inf(cnt) < 0} { + set type {} + return {} + } + lappend inf(asn,$inf(asndef)) $inf(str) + set l [string first -- $inf(str)] + if {$l >= 0} { + incr l -1 + set inf(str) [string range $inf(str) 0 $l] + } + set inf(str) [string trim $inf(str)] + } + set s [string index $inf(str) 0] + set type $s + set val {} + switch -- $s { + \{ { } + \} { } + , { } + ; { } + \( { } + \) { } + \[ { regexp {^\[[ ]*(.+)[ ]*\]} $inf(str) s val } + : { regexp {^::=} $inf(str) s } + default { + regexp "^\[^,\t :\{\}();\]+" $inf(str) s + set type n + set val $s + } + } + set off [string length $s] + set inf(str) [string trim [string range $inf(str) $off end]] + return $type +} + +# lex-expect: move pointer and expect token $t +proc lex-expect {t} { + global type val + lex + if {[string compare $t $type]} { + asnError "Got $type '$val', expected $t" + } +} + +# lex-name-move: see if token is $name; moves pointer and returns +# 1 if it is; returns 0 otherwise. +proc lex-name-move {name} { + global type val + if {![string compare $type n] && ![string compare $val $name]} { + lex + return 1 + } + return 0 +} + +# asnError: Report error and die +proc asnError {msg} { + global inf + + puts "Error in line $inf(lineno) in module $inf(module)" + puts " $msg" + error + exit 1 +} + +# asnWarning: Report warning and return +proc asnWarning {msg} { + global inf + + puts "Warning in line $inf(lineno) in module $inf(module)" + puts " $msg" +} + +# asnEnum: parses enumerated list - { name1 (n), name2 (n), ... } +# Uses $name as prefix. If there really is a list, $lx holds the C +# preprocessor definitions on return; otherwise lx isn't set. +proc asnEnum {name lx} { + global type val inf + + if {[string compare $type \{]} return + upvar $lx l + while {1} { + set pq [asnName $name] + set id [lindex $pq 0] + set id ${name}_$id + lex-expect n + lappend l "#define $inf(dprefix)$id $val" + lex-expect ")" + lex + if {[string compare $type ,]} break + } + if {[string compare $type \}]} { + asnError "Missing \} in enum list got $type '$val'" + } + lex +} + +# asnMod: parses tag and modifier. +# $xtag and $ximplicit holds tag and implicit-indication on return. +# $xtag is empty if no tag was specified. $ximplicit is 1 on implicit +# tagging; 0 otherwise. +proc asnMod {xtag ximplicit xtagtype} { + global type val inf + + upvar $xtag tag + upvar $ximplicit implicit + upvar $xtagtype tagtype + + set tag {} + set tagtype {} + if {![string compare $type \[]} { + if {[regexp {^([a-zA-Z]+)[ ]+([0-9]+)$} $val x tagtype tag]} { + set tagtype ODR_$tagtype + } elseif {[regexp {^([0-9]+)$} $val x tag]} { + set tagtype ODR_CONTEXT + } else { + asnError "bad tag specification: $val" + } + lex + } + set implicit $inf(implicit-tags) + if {![string compare $type n]} { + if {![string compare $val EXPLICIT]} { + lex + set implicit 0 + } elseif {![string compare $val IMPLICIT]} { + lex + set implicit 1 + } + } +} + +# asnName: moves pointer and expects name. Returns C-validated name. +proc asnName {name} { + global val inf + lex-expect n + if {[info exists inf(membermap,$inf(module),$name,$val)]} { + set nval $inf(membermap,$inf(module),$name,$val) + if {$inf(verbose)} { + puts " mapping member $name,$val to $nval" + } + if {![string match {[A-Z]*} $val]} { + lex + } + } else { + set nval $val + if {![string match {[A-Z]*} $val]} { + lex + } + } + return [join [split $nval -] _] +} + +# asnOptional: parses optional modifier. Returns 1 if OPTIONAL was +# specified; 0 otherwise. +proc asnOptional {} { + global type val + if {[lex-name-move OPTIONAL]} { + return 1 + } elseif {[lex-name-move DEFAULT]} { + lex + return 0 + } + return 0 +} + +# asnSizeConstraint: parses the optional SizeConstraint. +# Currently not used for anything. +proc asnSizeConstraint {} { + global type val + if {[lex-name-move SIZE]} { + asnSubtypeSpec + } +} + +# asnSubtypeSpec: parses the SubtypeSpec ... +# Currently not used for anything. We now it's balanced however, i.e. +# (... ( ... ) .. ) +proc asnSubtypeSpec {} { + global type val + + if {[string compare $type "("]} { + return + } + lex + set level 1 + while {$level > 0} { + if {![string compare $type "("]} { + incr level + } elseif {![string compare $type ")"]} { + incr level -1 + } + lex + } +} + +# asnType: parses ASN.1 type. +# On entry $name should hold the name we are currently defining. +# Returns type indicator: +# SequenceOf SEQUENCE OF +# Sequence SEQUENCE +# SetOf SET OF +# Set SET +# Choice CHOICE +# Simple Basic types. +# In this casecalling procedure's $tname variable is a list holding: +# {C-Function C-Type} if the type is IMPORTed or ODR defined. +# or +# {C-Function C-Type 1} if the type should be defined in this module +proc asnType {name} { + global type val inf + upvar tname tname + + set tname {} + if {[string compare $type n]} { + asnError "Expects type specifier, but got $type" + } + set v $val + lex + switch -- $v { + SEQUENCE { + asnSizeConstraint + if {[lex-name-move OF]} { + asnSubtypeSpec + return SequenceOf + } else { + asnSubtypeSpec + return Sequence + } + } + SET { + asnSizeConstraint + if {[lex-name-move OF]} { + asnSubtypeSpec + return SetOf + } else { + asnSubtypeSpec + return Set + } + } + CHOICE { + asnSubtypeSpec + return Choice + } + } + if {[string length [info commands asnBasic$v]]} { + set tname [asnBasic$v] + } else { + if {[info exists inf(map,$inf(module),$v)]} { + set v $inf(map,$inf(module),$v) + } + if {[info exists inf(imports,$v)]} { + set tname $inf(imports,$v) + } else { + set w [join [split $v -] _] + set tname [list $inf(fprefix)$w $inf(vprefix)$w 1] + } + } + if {[lex-name-move DEFINED]} { + if {[lex-name-move BY]} { + lex + } + } + asnSubtypeSpec + return Simple +} + +proc mapName {name} { + global inf + if {[info exists inf(map,$inf(module),$name)]} { + set name $inf(map,$inf(module),$name) + if {$inf(verbose)} { + puts -nonewline " $name ($inf(lineno))" + puts " mapping to $name" + } + } else { + if {$inf(verbose)} { + puts " $name ($inf(lineno))" + } + } + return $name +} + +# asnDef: parses type definition (top-level) and generates C code +# On entry $name holds the type we are defining. +proc asnDef {name} { + global inf file + + set name [mapName $name] + if {[info exist inf(defined,$inf(fprefix)$name)]} { + incr inf(definedl,$name) + if {$inf(verbose) > 1} { + puts "set map($inf(module),$name) $name$inf(definedl,$name)" + } + } else { + set inf(definedl,$name) 0 + } + set mname [join [split $name -] _] + asnMod tag implicit tagtype + set t [asnType $mname] + asnSub $mname $t $tname $tag $implicit $tagtype +} + + +# asnSub: parses type and generates C-code +# On entry, +# $name holds the type we are defining. +# $t is the type returned by the asnType procedure. +# $tname is the $tname set by the asnType procedure. +# $tag is the tag as returned by asnMod +# $implicit is the implicit indicator as returned by asnMod +proc asnSub {name t tname tag implicit tagtype} { + global file inf + + set ignore 0 + set defname defined,$inf(fprefix)$name + if {[info exist inf($defname)]} { + asnWarning "$name already defined in line $inf($defname)" + set ignore 1 + } + set inf($defname) $inf(lineno) + switch -- $t { + Sequence { set l [asnSequence $name $tag $implicit $tagtype] } + SequenceOf { set l [asnOf $name $tag $implicit $tagtype 0] } + SetOf { set l [asnOf $name $tag $implicit $tagtype 1] } + Choice { set l [asnChoice $name $tag $implicit $tagtype] } + Simple { set l [asnSimple $name $tname $tag $implicit $tagtype] } + default { asnError "switch asnType case not handled" } + } + if {$ignore} return + + puts $file(outc) {} + puts $file(outc) "int $inf(fprefix)$name (ODR o, $inf(vprefix)$name **p, int opt, const char *name)" + puts $file(outc) \{ + puts $file(outc) [lindex $l 0] + puts $file(outc) \} + set ok 1 + set fdef "$inf(cprefix)int $inf(fprefix)$name (ODR o, $inf(vprefix)$name **p, int opt, const char *name);" + switch -- $t { + Simple { + set decl "typedef [lindex $l 1] $inf(vprefix)$name;" + if {![string compare [lindex $tname 2] 1]} { + if {![info exist inf(defined,[lindex $tname 0])]} { + set ok 0 + } + } + set inf(var,$inf(nodef)) [join [lindex $l 2] \n] + incr inf(nodef) + } + default { + set decl "typedef struct $inf(vprefix)$name $inf(vprefix)$name;" + set inf(var,$inf(nodef)) "[lindex $l 1];" + incr inf(nodef) + } + } + if {$ok} { + puts $file(outh) {} + puts $file(outh) $decl + puts $file(outh) $fdef + asnForwardTypes $name + } else { + lappend inf(forward,code,[lindex $tname 0]) {} $decl $fdef + lappend inf(forward,ref,[lindex $tname 0]) $name + } +} + +proc asnForwardTypes {name} { + global inf file + + if {![info exists inf(forward,code,$inf(fprefix)$name)]} { + return 0 + } + foreach r $inf(forward,code,$inf(fprefix)$name) { + puts $file(outh) $r + } + unset inf(forward,code,$inf(fprefix)$name) + + while {[info exists inf(forward,ref,$inf(fprefix)$name)]} { + set n $inf(forward,ref,$inf(fprefix)$name) + set m [lrange $n 1 end] + if {[llength $m]} { + set inf(forward,ref,$inf(fprefix)$name) $m + } else { + unset inf(forward,ref,$inf(fprefix)$name) + } + asnForwardTypes [lindex $n 0] + } +} + +# asnSimple: parses simple type definition and generates C code +# On entry, +# $name is the name we are defining +# $tname is the tname as returned by asnType +# $tag is the tag as returned by asnMod +# $implicit is the implicit indicator as returned by asnMod +# Returns, +# {c-code, h-code} +# Note: Doesn't take care of enum lists yet. +proc asnSimple {name tname tag implicit tagtype} { + global inf + + set j "[lindex $tname 1] " + + if {[info exists inf(unionmap,$inf(module),$name)]} { + set uName $inf(unionmap,$inf(module),$name) + } else { + set uName $name + } + + asnEnum $uName jj + if {![string length $tag]} { + set l "\treturn [lindex $tname 0] (o, p, opt, name);" + } elseif {$implicit} { + set l \ + "\treturn odr_implicit_tag (o, [lindex $tname 0], p, $tagtype, $tag, opt, name);" + } else { + set l \ + "\treturn odr_explicit_tag (o, [lindex $tname 0], p, $tagtype, $tag, opt, name);" \ + } + if {[info exists jj]} { + return [list $l $j $jj] + } else { + return [list $l $j] + } +} + +# asnSequence: parses "SEQUENCE { s-list }" and generates C code. +# On entry, +# $name is the type we are defining +# $tag tag +# $implicit +# Returns, +# {c-code, h-code} +proc asnSequence {name tag implicit tagtype} { + global val type inf + + lappend j "struct $inf(vprefix)$name \{" + set level 0 + set nchoice 0 + if {![string length $tag]} { + lappend l "\tif (!odr_sequence_begin (o, p, sizeof(**p), name))" + lappend l "\t\treturn odr_missing(o, opt, name) && odr_ok (o);" + } elseif {$implicit} { + lappend l "\tif (!odr_implicit_settag (o, $tagtype, $tag) ||" + lappend l "\t\t!odr_sequence_begin (o, p, sizeof(**p), name))" + lappend l "\t\treturn odr_missing(o, opt, name);" + } else { + lappend l "\tif (!odr_constructed_begin (o, p, $tagtype, $tag, name))" + lappend l "\t\treturn odr_missing(o, opt, name);" + lappend l "\tif (o->direction == ODR_DECODE)" + lappend l "\t\t*p = ($inf(vprefix)$name *) odr_malloc (o, sizeof(**p));" + + lappend l "\tif (!odr_sequence_begin (o, p, sizeof(**p), 0))" + lappend l "\t\{" + lappend l "\t\tif(o->direction == ODR_DECODE)" + lappend l "\t\t\t*p = 0;" + lappend l "\t\treturn 0;" + lappend l "\t\}" + } + lappend l "\treturn" + while {1} { + set p [lindex [asnName $name] 0] + asnMod ltag limplicit ltagtype + set t [asnType $p] + + set uName { } + if {[info exists inf(unionmap,$inf(module),$name,$p)]} { + set uName $inf(unionmap,$inf(module),$name,$p) + } + + if {![string compare $t Simple]} { + if {[string compare $uName { }]} { + set enumName $uName + } else { + set enumName $name + } + asnEnum $enumName j + set opt [asnOptional] + if {![string length $ltag]} { + lappend l "\t\t[lindex $tname 0](o, &(*p)->$p, $opt, \"$p\") &&" + } elseif {$limplicit} { + lappend l "\t\todr_implicit_tag (o, [lindex $tname 0]," + lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" + } else { + lappend l "\t\todr_explicit_tag (o, [lindex $tname 0]," + lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" + } + set dec "\t[lindex $tname 1] *$p;" + } elseif {![string compare $t SequenceOf] && [string length $uName] &&\ + (![string length $ltag] || $limplicit)} { + set u [asnType $p] + + if {[llength $uName] < 2} { + set uName [list num_$p $p] + } + if {[string length $ltag]} { + if {!$limplicit} { + asnError explicittag + } + lappend l "\t\todr_implicit_settag (o, $ltagtype, $ltag) &&" + } + switch -- $u { + Simple { + asnEnum $name j + set tmpa "odr_sequence_of(o, (Odr_fun) [lindex $tname 0], &(*p)->$p," + set tmpb "&(*p)->[lindex $uName 0], \"$p\")" + lappend j "\tint [lindex $uName 0];" + set dec "\t[lindex $tname 1] **[lindex $uName 1];" + } + default { + set subName [mapName ${name}_$level] + asnSub $subName $u {} {} 0 {} + + set tmpa "odr_sequence_of(o, (Odr_fun) $inf(fprefix)$subName, &(*p)->$p," + set tmpb "&(*p)->[lindex $uName 0], \"$p\")" + lappend j "\tint [lindex $uName 0];" + set dec "\t$inf(vprefix)$subName **[lindex $uName 1];" + incr level + } + } + set opt [asnOptional] + if {$opt} { + lappend l "\t\t($tmpa" + lappend l "\t\t $tmpb || odr_ok(o)) &&" + } else { + lappend l "\t\t$tmpa" + lappend l "\t\t $tmpb &&" + } + } elseif {!$nchoice && ![string compare $t Choice] && \ + [string length $uName]} { + if {[llength $uName] < 3} { + set uName [list which u $name] + incr nchoice + } + lappend j "\tint [lindex $uName 0];" + lappend j "\tunion \{" + lappend v "\tstatic Odr_arm arm\[\] = \{" + asnArm $name [lindex $uName 2] v j + lappend v "\t\};" + set dec "\t\} [lindex $uName 1];" + set opt [asnOptional] + set oa {} + set ob {} + if {[string length $ltag]} { + if {$limplicit} { + lappend l "\t\todr_implicit_settag (o, $ltagtype, $ltag) &&" + if {$opt} { + asnWarning "optional handling missing in CHOICE in SEQUENCE" + asnWarning " set unionmap($inf(module),$name,$p) to {}" + } + } else { + if {$opt} { + set la "((" + } else { + set la "" + } + lappend l "\t\t${la}odr_constructed_begin (o, &(*p)->[lindex $uName 1], $ltagtype, $ltag, \"$p\") &&" + } + } else { + if {$opt} { + set oa "(" + set ob " || odr_ok(o))" + } + } + lappend l "\t\t${oa}odr_choice (o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], 0)${ob} &&" + if {[string length $ltag]} { + if {!$limplicit} { + if {$opt} { + set lb ") || odr_ok(o))" + } else { + set lb "" + } + lappend l "\t\todr_constructed_end (o)${lb} &&" + } + } + } else { + set subName [mapName ${name}_$level] + asnSub $subName $t {} {} 0 {} + set opt [asnOptional] + if {![string length $ltag]} { + lappend l "\t\t$inf(fprefix)${subName} (o, &(*p)->$p, $opt, \"$p\") &&" + } elseif {$limplicit} { + lappend l "\t\todr_implicit_tag (o, $inf(fprefix)${subName}," + lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" + } else { + lappend l "\t\todr_explicit_tag (o, $inf(fprefix)${subName}," + lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" + } + set dec "\t$inf(vprefix)${subName} *$p;" + incr level + } + if {$opt} { + lappend j "$dec /* OPT */" + } else { + lappend j $dec + } + if {[string compare $type ,]} break + } + lappend j "\}" + if {[string length $tag] && !$implicit} { + lappend l "\t\todr_sequence_end (o) &&" + lappend l "\t\todr_constructed_end (o);" + } else { + lappend l "\t\todr_sequence_end (o);" + } + if {[string compare $type \}]} { + asnError "Missing \} got $type '$val'" + } + lex + if {[info exists v]} { + set l [concat $v $l] + } + return [list [join $l \n] [join $j \n]] +} + +# asnOf: parses "SEQUENCE/SET OF type" and generates C code. +# On entry, +# $name is the type we are defining +# $tag tag +# $implicit +# Returns, +# {c-code, h-code} +proc asnOf {name tag implicit tagtype isset} { + global inf + + if {$isset} { + set func odr_set_of + } else { + set func odr_sequence_of + } + + if {[info exists inf(unionmap,$inf(module),$name)]} { + set numName $inf(unionmap,$inf(module),$name) + } else { + set numName {num elements} + } + + lappend j "struct $inf(vprefix)$name \{" + lappend j "\tint [lindex $numName 0];" + + lappend l "\tif (!odr_initmember (o, p, sizeof(**p)))" + lappend l "\t\treturn odr_missing(o, opt, name);" + if {[string length $tag]} { + if {$implicit} { + lappend l "\todr_implicit_settag (o, $tagtype, $tag);" + } else { + asnWarning "Constructed SEQUENCE/SET OF not handled" + } + } + set t [asnType $name] + switch -- $t { + Simple { + asnEnum $name j + lappend l "\tif ($func (o, (Odr_fun) [lindex $tname 0], &(*p)->[lindex $numName 1]," + lappend l "\t\t&(*p)->[lindex $numName 0], name))" + lappend j "\t[lindex $tname 1] **[lindex $numName 1];" + } + default { + set subName [mapName ${name}_s] + lappend l "\tif ($func (o, (Odr_fun) $inf(fprefix)$subName, &(*p)->[lindex $numName 1]," + lappend l "\t\t&(*p)->[lindex $numName 0], name))" + lappend j "\t$inf(vprefix)$subName **[lindex $numName 1];" + asnSub $subName $t {} {} 0 {} + } + } + lappend j "\}" + lappend l "\t\treturn 1;" + lappend l "\tif(o->direction == ODR_DECODE)" + lappend l "\t\t*p = 0;" + lappend l "\treturn odr_missing(o, opt, name);" + return [list [join $l \n] [join $j \n]] +} + +# asnArm: parses c-list in choice +proc asnArm {name defname lx jx} { + global type val inf + + upvar $lx l + upvar $jx j + while {1} { + set pq [asnName $name] + set p [lindex $pq 0] + set q [lindex $pq 1] + if {![string length $q]} { + set q $p + set p ${defname}_$p + } + asnMod ltag limplicit ltagtype + set t [asnType $q] + + lappend enums "$inf(dprefix)$p" + if {![string compare $t Simple]} { + asnEnum $name j + if {![string length $ltag]} { + lappend l "\t\t\{-1, -1, -1, $inf(dprefix)$p," + lappend l "\t\t (Odr_fun) [lindex $tname 0], \"$q\"\}," + } elseif {$limplicit} { + lappend l "\t\t\{ODR_IMPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," + lappend l "\t\t(Odr_fun) [lindex $tname 0], \"$q\"\}," + } else { + lappend l "\t\t\{ODR_EXPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," + lappend l "\t\t(Odr_fun) [lindex $tname 0], \"$q\"\}," + } + lappend j "\t\t[lindex $tname 1] *$q;" + } else { + set subName [mapName ${name}_$q] + if {![string compare $inf(dprefix)${name}_$q \ + $inf(vprefix)$subName]} { + set po [string toupper [string index $q 0]][string \ + range $q 1 end] + set subName [mapName ${name}${po}] + } + asnSub $subName $t $tname {} 0 {} + if {![string length $ltag]} { + lappend l "\t\t\{-1, -1, -1, $inf(dprefix)$p," + lappend l "\t\t (Odr_fun) $inf(fprefix)$subName, \"$q\"\}," + } elseif {$limplicit} { + lappend l "\t\t\{ODR_IMPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," + lappend l "\t\t(Odr_fun) $inf(fprefix)$subName, \"$q\"\}," + } else { + lappend l "\t\t\{ODR_EXPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," + lappend l "\t\t(Odr_fun) $inf(fprefix)$subName, \"$q\"\}," + } + lappend j "\t\t$inf(vprefix)$subName *$q;" + } + if {[string compare $type ,]} break + } + if {[string compare $type \}]} { + asnError "Missing \} got $type '$val'" + } + lex + set level 1 + foreach e $enums { + lappend j "#define $e $level" + incr level + } + lappend l "\t\t\{-1, -1, -1, -1, (Odr_fun) 0, 0\}" +} + +# asnChoice: parses "CHOICE {c-list}" and generates C code. +# On entry, +# $name is the type we are defining +# $tag tag +# $implicit +# Returns, +# {c-code, h-code} +proc asnChoice {name tag implicit tagtype} { + global type val inf + + if {[info exists inf(unionmap,$inf(module),$name)]} { + set uName $inf(unionmap,$inf(module),$name) + } else { + set uName [list which u $name] + } + + lappend j "struct $inf(vprefix)$name \{" + lappend j "\tint [lindex $uName 0];" + lappend j "\tunion \{" + lappend l "\tstatic Odr_arm arm\[\] = \{" + asnArm $name [lindex $uName 2] l j + lappend j "\t\} [lindex $uName 1];" + lappend j "\}" + lappend l "\t\};" + if {![string length $tag]} { + lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" + lappend l "\t\treturn odr_missing(o, opt, name);" + lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name))" + } elseif {$implicit} { + lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" + lappend l "\t\treturn odr_missing(o, opt, name);" + lappend l "\todr_implicit_settag(o, $tagtype, $tag);" + lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name))" + } else { + lappend l "\tif (!odr_constructed_begin(o, p, $tagtype, $tag, 0))" + lappend l "\t\treturn odr_missing(o, opt, name);" + lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" + lappend l "\t\treturn odr_missing(o, opt, name);" + lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name) &&" + lappend l "\t\todr_constructed_end(o))" + } + lappend l "\t\treturn 1;" + + lappend l "\tif(o->direction == ODR_DECODE)" + lappend l "\t\t*p = 0;" + + lappend l "\treturn odr_missing(o, opt, name);" + return [list [join $l \n] [join $j \n]] +} + +# asnImports: parses i-list in "IMPORTS {i-list}" +# On return inf(import,..)-array is updated. +# inf(import,"module") is a list of {C-handler, C-type} elements. +# The {C-handler, C-type} is compatible with the $tname as is used by the +# asnType procedure to solve external references. +proc asnImports {} { + global type val inf file + + while {1} { + if {[string compare $type n]} { + asnError "Missing name in IMPORTS list" + } + lappend nam $val + lex + if {![string compare $type n] && ![string compare $val FROM]} { + lex + + if {[info exists inf(filename,$val)]} { + set fname $inf(filename,$val) + } else { + set fname $val + } + puts $file(outh) "\#include <$inf(h-dir)${fname}.h>" + + if {[info exists inf(prefix,$val)]} { + set prefix $inf(prefix,$val) + } else { + set prefix $inf(prefix) + } + foreach n $nam { + if {[info exists inf(map,$val,$n)]} { + set v $inf(map,$val,$n) + } else { + set v $n + } + set w [join [split $v -] _] + set inf(imports,$n) [list [lindex $prefix 0]$w \ + [lindex $prefix 1]$w] + } + unset nam + lex + if {[string compare $type n]} break + } elseif {![string compare $type ,]} { + lex + } else break + } + if {[string compare $type \;]} { + asnError "Missing ; after IMPORTS list - got $type '$val'" + } + lex +} + +# asnExports: parses e-list in "EXPORTS {e-list}" +# This function does nothing with elements in the list. +proc asnExports {} { + global type val inf + + while {1} { + if {[string compare $type n]} { + asnError "Missing name in EXPORTS list" + } + set inf(exports,$val) 1 + lex + if {[string compare $type ,]} break + lex + } + if {[string compare $type \;]} { + asnError "Missing ; after EXPORTS list - got $type ($val)" + } + lex +} + +# asnModuleBody: parses a module specification and generates C code. +# Exports lists, imports lists, and type definitions are handled; +# other things are silently ignored. +proc asnModuleBody {} { + global type val file inf + + if {[info exists inf(prefix,$inf(module))]} { + set prefix $inf(prefix,$inf(module)) + } else { + set prefix $inf(prefix) + } + set inf(fprefix) [lindex $prefix 0] + set inf(vprefix) [lindex $prefix 1] + set inf(dprefix) [lindex $prefix 2] + if {[llength $prefix] > 3} { + set inf(cprefix) [lindex $prefix 3] + } else { + set inf(cprefix) {YAZ_EXPORT } + } + + if {$inf(verbose)} { + puts "Module $inf(module), $inf(lineno)" + } + + set defblock 0 + if {[info exists inf(init,$inf(module),c)]} { + puts $file(outc) $inf(init,$inf(module),c) + } + if {[info exists inf(init,$inf(module),h)]} { + puts $file(outh) "\#ifdef __cplusplus" + puts $file(outh) "extern \"C\" \{" + puts $file(outh) "\#endif" + set defblock 1 + puts $file(outh) $inf(init,$inf(module),h) + } + if {[info exists inf(init,$inf(module),p)]} { + puts $file(outp) $inf(init,$inf(module),p) + } + + while {[string length $type]} { + if {[string compare $type n]} { + lex + continue + } + if {![string compare $val END]} { + break + } elseif {![string compare $val EXPORTS]} { + lex + asnExports + } elseif {![string compare $val IMPORTS]} { + if {$defblock} { + puts $file(outh) "\#ifdef __cplusplus" + puts $file(outh) "\}" + puts $file(outh) "\#endif" + set defblock 0 + } + lex + asnImports + } else { + if {!$defblock} { + puts $file(outh) "\#ifdef __cplusplus" + puts $file(outh) "extern \"C\" \{" + puts $file(outh) "\#endif" + set defblock 1 + } + set inf(asndef) $inf(nodef) + set oval $val + lex + if {![string compare $type :]} { + lex + asnDef $oval + set inf(asndef) 0 + } elseif {![string compare $type n]} { + lex + if {[string length $type]} { + lex + } + } + } + } + if {$defblock} { + puts $file(outh) "\#ifdef __cplusplus" + puts $file(outh) "\}" + puts $file(outh) "\#endif" + set defblock 0 + } + foreach x [array names inf imports,*] { + unset inf($x) + } +} + +# asnTagDefault: parses TagDefault section +proc asnTagDefault {} { + global type val inf file + + set inf(implicit-tags) 0 + while {[string length $type]} { + if {[lex-name-move EXPLICIT]} { + lex + set inf(implicit-tags) 0 + } elseif {[lex-name-move IMPLICIT]} { + lex + set inf(implicit-tags) 1 + } else { + break + } + } +} + +# asnModules: parses a collection of module specifications. +# Depending on the module pattern, $inf(moduleP), a module is either +# skipped or processed. +proc asnModules {} { + global type val inf file yc_version + + set inf(nodef) 0 + set inf(asndef) 0 + lex + while {![string compare $type n]} { + set inf(module) $val + if {[info exists inf(moduleP)] && ![string match $inf(moduleP) $val]} { + if {$inf(verbose)} { + puts "Skipping $id" + } + while {![lex-name-move END]} { + lex + } + } else { + set inf(nodef) 1 + set inf(asndef) 1 + + while {![lex-name-move DEFINITIONS]} { + lex + if {![string length $type]} return + } + if {[info exists inf(filename,$inf(module))]} { + set fname $inf(filename,$inf(module)) + } else { + set fname $inf(module) + } + set ppname [join [split $fname -] _] + + if {![info exists inf(c-file)]} { + set inf(c-file) ${fname}.c + } + set file(outc) [open $inf(c-file) w] + + if {![info exists inf(h-file)]} { + set inf(h-file) ${fname}.h + } + set file(outh) [open $inf(h-path)/$inf(h-dir)$inf(h-file) w] + + if {0} { + if {![info exists inf(p-file)]} { + set inf(p-file) ${fname}-p.h + } + set file(outp) [open $inf(h-path)/$inf(h-dir)$inf(p-file) w] + } + + set greeting {Generated automatically by YAZ ASN.1 Compiler} + + puts $file(outc) "/** \\file $inf(c-file)" + puts $file(outc) " \\brief ASN.1 Module $inf(module)" + puts $file(outc) "" + puts $file(outc) " ${greeting} ${yc_version}" + puts $file(outc) "*/" + puts $file(outc) {} + + puts $file(outh) "/** \\file $inf(h-file)" + puts $file(outh) " \\brief ASN.1 Module $inf(module)" + puts $file(outh) "" + puts $file(outh) " ${greeting} ${yc_version}" + puts $file(outh) "*/" + puts $file(outh) {} + + if {[info exists file(outp)]} { + puts $file(outp) "/** \\file $inf(p-file)" + puts $file(outp) " \\brief ASN.1 Module $inf(module)" + puts $file(outp) "" + puts $file(outp) " ${greeting} ${yc_version}" + puts $file(outp) "*/" + puts $file(outp) {} + } + + if {[info exists inf(p-file)]} { + puts $file(outc) "\#include <$inf(h-dir)$inf(p-file)>" + } else { + puts $file(outc) "\#include <$inf(h-dir)$inf(h-file)>" + } + puts $file(outh) "\#ifndef ${ppname}_H" + puts $file(outh) "\#define ${ppname}_H" + puts $file(outh) {} + puts $file(outh) "\#include " + + if {[info exists file(outp)]} { + puts $file(outp) "\#ifndef ${ppname}_P_H" + puts $file(outp) "\#define ${ppname}_P_H" + puts $file(outp) {} + puts $file(outp) "\#include <$inf(h-dir)$inf(h-file)>" + + } + + asnTagDefault + if {[string compare $type :]} { + asnError "::= expected got $type '$val'" + } + lex + if {![lex-name-move BEGIN]} { + asnError "BEGIN expected" + } + asnModuleBody + lex + + if {[info exists file(outp)]} { + set f $file(outp) + } else { + set f $file(outh) + } + puts $f "\#ifdef __cplusplus" + puts $f "extern \"C\" \{" + puts $f "\#endif" + for {set i 1} {$i < $inf(nodef)} {incr i} { + puts $f $inf(var,$i) + if {[info exists inf(asn,$i)]} { + if {0} { + puts $f "/*" + foreach comment $inf(asn,$i) { + puts $f $comment + } + puts $f " */" + } + unset inf(asn,$i) + } + unset inf(var,$i) + puts $f {} + } + puts $f "\#ifdef __cplusplus" + puts $f "\}" + puts $f "\#endif" + + if {[info exists inf(body,$inf(module),h)]} { + puts $file(outh) $inf(body,$inf(module),h) + } + if {[info exists inf(body,$inf(module),c)]} { + puts $file(outc) $inf(body,$inf(module),c) + } + if {[info exists inf(body,$inf(module),p)]} { + if {[info exists file(outp)]} { + puts $file(outp) $inf(body,$inf(module),p) + } + } + puts $file(outh) "\#endif" + if {[info exists file(outp)]} { + puts $file(outp) "\#endif" + } + foreach f [array names file] { + close $file($f) + } + unset inf(c-file) + unset inf(h-file) + catch {unset inf(p-file)} + } + } +} + +# asnFile: parses an ASN.1 specification file as specified in $inf(iname). +proc asnFile {} { + global inf file + + if {$inf(verbose) > 1} { + puts "Reading ASN.1 file $inf(iname)" + } + set inf(str) {} + set inf(lineno) 0 + set inf(inf) [open $inf(iname) r] + + asnModules + +} + +# The following procedures are invoked by the asnType function. +# Each procedure takes the form: asnBasic and they must return +# two elements: the C function handler and the C type. +# On entry upvar $name is the type we are defining and global, $inf(module), is +# the current module name. + +proc asnBasicEXTERNAL {} { + return {odr_external {Odr_external}} +} + +proc asnBasicINTEGER {} { + return {odr_integer {int}} +} + +proc asnBasicENUMERATED {} { + return {odr_enum {int}} +} + +proc asnBasicNULL {} { + return {odr_null {Odr_null}} +} + +proc asnBasicBOOLEAN {} { + return {odr_bool {bool_t}} +} + +proc asnBasicOCTET {} { + global type val + lex-name-move STRING + return {odr_octetstring {Odr_oct}} +} + +proc asnBasicBIT {} { + global type val + lex-name-move STRING + return {odr_bitstring {Odr_bitmask}} +} + +proc asnBasicOBJECT {} { + global type val + lex-name-move IDENTIFIER + return {odr_oid {Odr_oid}} +} + +proc asnBasicGeneralString {} { + return {odr_generalstring char} +} + +proc asnBasicVisibleString {} { + return {odr_visiblestring char} +} + +proc asnBasicGeneralizedTime {} { + return {odr_generalizedtime char} +} + +proc asnBasicANY {} { + upvar name name + global inf + return [list $inf(fprefix)ANY_$name void] +} + +# userDef: reads user definitions file $name +proc userDef {name} { + global inf + + if {$inf(verbose) > 1} { + puts "Reading definitions file $name" + } + source $name + + if {[info exists default-prefix]} { + set inf(prefix) ${default-prefix} + } + if {[info exists h-path]} { + set inf(h-path) ${h-path} + } + foreach m [array names prefix] { + set inf(prefix,$m) $prefix($m) + } + foreach m [array names body] { + set inf(body,$m) $body($m) + } + foreach m [array names init] { + set inf(init,$m) $init($m) + } + foreach m [array names filename] { + set inf(filename,$m) $filename($m) + } + foreach m [array names map] { + set inf(map,$m) $map($m) + } + foreach m [array names membermap] { + set inf(membermap,$m) $membermap($m) + } + foreach m [array names unionmap] { + set inf(unionmap,$m) $unionmap($m) + } +} + +set inf(verbose) 0 +set inf(prefix) {yc_ Yc_ YC_} +set inf(h-path) . +set inf(h-dir) "" + +# Parse command line +set l [llength $argv] +set i 0 +while {$i < $l} { + set arg [lindex $argv $i] + switch -glob -- $arg { + -v { + incr inf(verbose) + } + -c { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(c-file) $p + } + -I* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(h-path) $p + } + -i* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(h-dir) [string trim $p \\/]/ + } + -h* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(h-file) $p + } + -p* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(p-file) $p + } + -d* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + userDef $p + } + -m* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + set inf(moduleP) $p + } + -x* { + set p [string range $arg 2 end] + if {![string length $p]} { + set p [lindex $argv [incr i]] + } + if {[llength $p] == 1} { + set inf(prefix) [list [string tolower $p] \ + [string toupper $p] [string toupper $p]] + } elseif {[llength $p] == 3} { + set inf(prefix) $p + } else { + puts [llength $p] + exit 1 + } + } + default { + set inf(iname) $arg + } + } + incr i +} + +if {![info exists inf(iname)]} { + puts "YAZ ASN.1 Compiler ${yc_version}" + puts "Usage:" + puts -nonewline ${argv0} + puts { [-v] [-c cfile] [-h hfile] [-p hfile] [-d dfile] [-I iout]} + puts { [-i idir] [-m module] file} + exit 1 +} + +asnFile diff --git a/dependencies/yaz-2.1.28/util/yaz-xmlquery.c b/dependencies/yaz-2.1.28/util/yaz-xmlquery.c new file mode 100644 index 0000000..cc3f253 --- /dev/null +++ b/dependencies/yaz-2.1.28/util/yaz-xmlquery.c @@ -0,0 +1,198 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: yaz-xmlquery.c,v 1.3 2006/07/06 10:17:55 adam Exp $ + */ + +#include +#include + +#include +#include +#include +#include +#include + +#if YAZ_HAVE_XML2 +#include +#endif + +static char *prog = "yaz-xmlquery"; + +#if YAZ_HAVE_XML2 +void pqftoxmlquery(const char *pqf) +{ + YAZ_PQF_Parser parser = yaz_pqf_create(); + ODR odr = odr_createmem(ODR_ENCODE); + Z_RPNQuery *rpn; + + if (!parser) + { + fprintf(stderr, "%s: cannot create parser\n", prog); + exit(1); + } + + if (!odr) + { + fprintf(stderr, "%s: cannot create parser\n", prog); + exit(1); + } + + rpn = yaz_pqf_parse(parser, odr, pqf); + + yaz_pqf_destroy(parser); + + if (!rpn) + { + fprintf(stderr, "%s: pqf parse error for query %s\n", prog, pqf); + exit(2); + } + else + { + xmlDocPtr doc = 0; + + yaz_rpnquery2xml(rpn, &doc); + + if (!doc) + { + fprintf(stderr, "%s: yaz_rpnquery2xml failed for query %s\n", + prog, pqf); + exit(3); + } + else + { + char *buf_out = 0; + int len_out = 0; + + xmlDocDumpMemory(doc, (xmlChar **) &buf_out, &len_out); + + if (!len_out || !buf_out) + { + fprintf(stderr, "%s: xmlDocDumpMemory failed for query %s\n", + prog, pqf); + exit(4); + } + else + fwrite(buf_out, len_out, 1, stdout); + xmlFreeDoc(doc); + } + } + odr_destroy(odr); +} + + +void xmlquerytopqf(const char *xmlstr) +{ + xmlDocPtr doc; + + doc = xmlParseMemory(xmlstr, strlen(xmlstr)); + if (!doc) + { + fprintf(stderr, "%s: xml parse error for XML:\n%s\n", prog, xmlstr); + exit(1); + } + else + { + int error_code = 0; + const char *addinfo = 0; + Z_Query *query = 0; + ODR odr = odr_createmem(ODR_ENCODE); + + const xmlNode *root_element = xmlDocGetRootElement(doc); + yaz_xml2query(root_element, &query, odr, &error_code, &addinfo); + if (error_code) + { + fprintf(stderr, "%s: yaz_xml2query failed code=%d addinfo=%s\n", + prog, error_code, addinfo); + exit(1); + } + else if (!query) + { + fprintf(stderr, "%s: yaz_xml2query no query result\n", + prog); + exit(1); + } + else + { + WRBUF w = wrbuf_alloc(); + yaz_query_to_wrbuf(w, query); + printf("%s\n", wrbuf_buf(w)); + wrbuf_free(w, 1); + } + odr_destroy(odr); + xmlFreeDoc(doc); + } +} + +void xmlfiletopqf(const char *xmlfile) +{ + long sz; + char *xmlstr; + FILE *f = fopen(xmlfile, "rb"); + if (!f) + { + fprintf(stderr, "%s: cannot open %s\n", prog, xmlfile); + exit(1); + } + fseek(f, 0, SEEK_END); + sz = ftell(f); + if (sz <= 0 || sz >= 1<<18) + { + fprintf(stderr, "%s: bad size for file %s\n", prog, xmlfile); + exit(1); + } + rewind(f); + xmlstr = xmalloc(sz+1); + xmlstr[sz] = '\0'; + fread(xmlstr, sz, 1, f); + fclose(f); + + xmlquerytopqf(xmlstr); + xfree(xmlstr); +} +#endif + +void usage() +{ + fprintf(stderr, "%s [-p pqf] [-x xmlfile]\n", prog); + fprintf(stderr, " -p pqf reads pqf. write xml to stdout\n"); + fprintf(stderr, " -x xmlfile reads XML from file. write pqf to stdout\n"); + exit(1); +} + +int main (int argc, char **argv) +{ +#if YAZ_HAVE_XML2 + char *arg; + int r; + int active = 0; + + while ((r = options("-p:x:", argv, argc, &arg)) != -2) + { + switch(r) + { + case 'p': + pqftoxmlquery(arg); + active = 1; + break; + case 'x': + xmlfiletopqf(arg); + active = 1; + break; + case 0: + break; + } + } + if (!active) + { + fprintf(stderr, "%s: nothing to do\n", prog); + usage(); + } +#else + fprintf(stderr, "%s: XML support not enabled.\n", prog); + exit(1); +#endif + return 0; +} + diff --git a/dependencies/yaz-2.1.28/util/yaziconv.c b/dependencies/yaz-2.1.28/util/yaziconv.c new file mode 100644 index 0000000..3deada1 --- /dev/null +++ b/dependencies/yaz-2.1.28/util/yaziconv.c @@ -0,0 +1,190 @@ +/* + * Copyright (C) 1995-2005, Index Data ApS + * See the file LICENSE for details. + * + * $Id: yaziconv.c,v 1.5 2006/04/21 10:28:07 adam Exp $ + */ + +#if HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include + +#define CHUNK_IN 64 +#define CHUNK_OUT 64 + +void convert (FILE *inf, yaz_iconv_t cd, int verbose) +{ + char inbuf0[CHUNK_IN], *inbuf = inbuf0; + char outbuf0[CHUNK_OUT], *outbuf = outbuf0; + size_t inbytesleft = CHUNK_IN; + size_t outbytesleft = CHUNK_OUT; + int mustread = 1; + + while (1) + { + size_t r; + if (mustread) + { + r = fread (inbuf, 1, inbytesleft, inf); + if (inbytesleft != r) + { + if (ferror(inf)) + { + fprintf (stderr, "yaziconv: error reading file\n"); + exit (6); + } + if (r == 0) + { + if (outbuf != outbuf0) + fwrite (outbuf0, 1, outbuf - outbuf0, stdout); + break; + } + inbytesleft = r; + } + } + if (verbose > 1) + { + fprintf (stderr, "yaz_iconv: inbytesleft=%ld outbytesleft=%ld\n", + (long) inbytesleft, (long) outbytesleft); + + } + r = yaz_iconv (cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + if (r == (size_t)(-1)) + { + int e = yaz_iconv_error(cd); + if (e == YAZ_ICONV_EILSEQ) + { + fprintf (stderr, "invalid sequence\n"); + return ; + } + else if (e == YAZ_ICONV_EINVAL) /* incomplete input */ + { + size_t i; + for (i = 0; iCD \YAZ\WIN + >NMAKE + +Make sure that the environment variables PATH, LIB and INCLUDE are +set properly. They *should* be set by the Visual C++ installation. +Programs cl.exe, link.exe and others must be found in the PATH. The +standard includes files, standard libraries must be found in INCLUDE +and LIB respectively. + +The following components are build by the nmake process: + +yaz.dll - This DLL is made of the source in all sub directories except + for 'client' and 'ztest'. To export public functions + the header files contain the modifier YAZ_EXPORT which is + defined in yconfig.h. The value of this modifier, + __declspec(dllexport), is probably specific to Visual C++. + +yaz-client.exe - A Z39.50 client console application. It is linked with + the import library yaz.lib. This application searches for yaz.dll + during runtime. + +yaz-ztest.exe - The Z39.50 test server as a console application. It is + linked with the import library yaz.lib. When running yaz-ztest + make sure it is able to find the record test files dummy-records, + dummy-grs, and dummy-words in the current directory. + + As an option ztest may be installed as an NT service + (not Windows 95). Use 'ztest -install ' to install + it and 'ztest -remove ' to remove it again. Example: + + yaz-ztest -install -l ztest.out tcp:@:210 + + which specifies a log file to be written. The server listens + on port 210. + +After successful compilation all executables and DLL's are located +in sub YAZ\BIN. Libraries are located in YAZ\LIB. diff --git a/dependencies/yaz-2.1.28/yaz-config.in b/dependencies/yaz-2.1.28/yaz-config.in new file mode 100644 index 0000000..0c8a2ff --- /dev/null +++ b/dependencies/yaz-2.1.28/yaz-config.in @@ -0,0 +1,124 @@ +#!/bin/sh +# $Id: yaz-config.in,v 1.25 2006/07/06 10:17:51 adam Exp $ +yazprefix=@prefix@ +yaz_echo_cflags=no +yaz_echo_libs=no +yaz_echo_help=no +yaz_echo_source=yes +yaz_echo_lalibs=no +yaz_echo_comp=no +yaz_src_root=@YAZ_SRC_ROOT@ +yaz_build_root=@YAZ_BUILD_ROOT@ + +yazextralibs="@LIBS@" +YAZVERSION=@VERSION@ + +usage() +{ + cat <&2 +fi +if test "$yaz_echo_cflags" = "yes"; then + echo $YAZINC +fi +if test "$yaz_echo_libs" = "yes"; then + echo $YAZLIB +fi +if test "$yaz_echo_lalibs" = "yes"; then + echo $YAZLALIB +fi +if test "$yaz_echo_comp" = "yes"; then + echo $YAZCOMP +fi +# Local Variables: +# mode:shell-script +# sh-indentation: 2 +# sh-basic-offset: 4 +# End: diff --git a/dependencies/yaz-2.1.28/yaz.spec b/dependencies/yaz-2.1.28/yaz.spec new file mode 100644 index 0000000..b1cae70 --- /dev/null +++ b/dependencies/yaz-2.1.28/yaz.spec @@ -0,0 +1,83 @@ +Summary: Z39.50 Programs +Name: yaz +Version: 2.1.28 +Release: 1 +Requires: libxslt openssl readline libyaz = %{version} +License: YAZ License +Group: Other +Vendor: Index Data ApS +Source: yaz-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root +BuildRequires: libxml2-devel libxslt-devel tcp_wrappers openssl-devel readline-devel +Packager: Adam Dickmeiss +URL: http://www.indexdata.dk/yaz/ + +%description +This package contains both a test-server and clients (normal & ssl) +for the ANSI/NISO Z39.50 protocol for Information Retrieval. + +%package -n lib%{name} +Summary: Z39.50 Library +Group: Libraries +Requires: libxslt openssl + +%description -n lib%{name} +YAZ is a library for the ANSI/NISO Z39.50 protocol for Information +Retrieval. + +%package -n lib%{name}-devel +Summary: Z39.50 Library - development package +Group: Development/Libraries +Requires: libyaz = %{version} libxml2-devel libxslt-devel + +%description -n lib%{name}-devel +Development libraries and includes for the libyaz package. + +%prep +%setup + +%build + +CFLAGS="$RPM_OPT_FLAGS" \ + ./configure --prefix=/usr --enable-shared --enable-tcpd --with-xslt --with-openssl +make CFLAGS="$RPM_OPT_FLAGS" + +%install +rm -fr ${RPM_BUILD_ROOT} +make prefix=${RPM_BUILD_ROOT}/usr mandir=${RPM_BUILD_ROOT}/usr/share/man install + +%clean +rm -fr ${RPM_BUILD_ROOT} + +%files +%defattr(-,root,root) +%doc README LICENSE NEWS TODO +/usr/bin/yaz-client +/usr/bin/yaz-ztest +/usr/bin/zoomsh* +/usr/bin/yaz-marcdump +/usr/bin/yaz-iconv +/usr/share/man/man1/yaz-client.* +/usr/share/man/man8/yaz-ztest.* +/usr/share/man/man1/zoomsh.* +/usr/share/man/man1/yaz-marcdump.* +/usr/share/man/man1/yaz-iconv.* +/usr/share/man/man7/yaz-log.* + +%files -n lib%{name} +/usr/lib/*.so.* + +%files -n lib%{name}-devel +/usr/bin/yaz-config +/usr/bin/yaz-asncomp +/usr/include/yaz +/usr/lib/*.so +/usr/lib/*.a +/usr/lib/*.la +/usr/share/aclocal/yaz.m4 +/usr/share/man/man1/yaz-asncomp.* +/usr/share/man/man7/yaz.* +/usr/share/man/man8/yaz-config.* +/usr/share/doc/yaz +/usr/share/yaz + diff --git a/dependencies/yaz-2.1.28/yaz.spec.in b/dependencies/yaz-2.1.28/yaz.spec.in new file mode 100644 index 0000000..c99ccd7 --- /dev/null +++ b/dependencies/yaz-2.1.28/yaz.spec.in @@ -0,0 +1,83 @@ +Summary: Z39.50 Programs +Name: yaz +Version: @VERSION@ +Release: 1 +Requires: libxslt openssl readline libyaz = %{version} +License: YAZ License +Group: Other +Vendor: Index Data ApS +Source: yaz-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-root +BuildRequires: libxml2-devel libxslt-devel tcp_wrappers openssl-devel readline-devel +Packager: Adam Dickmeiss +URL: http://www.indexdata.dk/yaz/ + +%description +This package contains both a test-server and clients (normal & ssl) +for the ANSI/NISO Z39.50 protocol for Information Retrieval. + +%package -n lib%{name} +Summary: Z39.50 Library +Group: Libraries +Requires: libxslt openssl + +%description -n lib%{name} +YAZ is a library for the ANSI/NISO Z39.50 protocol for Information +Retrieval. + +%package -n lib%{name}-devel +Summary: Z39.50 Library - development package +Group: Development/Libraries +Requires: libyaz = %{version} libxml2-devel libxslt-devel + +%description -n lib%{name}-devel +Development libraries and includes for the libyaz package. + +%prep +%setup + +%build + +CFLAGS="$RPM_OPT_FLAGS" \ + ./configure --prefix=/usr --enable-shared --enable-tcpd --with-xslt --with-openssl +make CFLAGS="$RPM_OPT_FLAGS" + +%install +rm -fr ${RPM_BUILD_ROOT} +make prefix=${RPM_BUILD_ROOT}/usr mandir=${RPM_BUILD_ROOT}/usr/share/man install + +%clean +rm -fr ${RPM_BUILD_ROOT} + +%files +%defattr(-,root,root) +%doc README LICENSE NEWS TODO +/usr/bin/yaz-client +/usr/bin/yaz-ztest +/usr/bin/zoomsh* +/usr/bin/yaz-marcdump +/usr/bin/yaz-iconv +/usr/share/man/man1/yaz-client.* +/usr/share/man/man8/yaz-ztest.* +/usr/share/man/man1/zoomsh.* +/usr/share/man/man1/yaz-marcdump.* +/usr/share/man/man1/yaz-iconv.* +/usr/share/man/man7/yaz-log.* + +%files -n lib%{name} +/usr/lib/*.so.* + +%files -n lib%{name}-devel +/usr/bin/yaz-config +/usr/bin/yaz-asncomp +/usr/include/yaz +/usr/lib/*.so +/usr/lib/*.a +/usr/lib/*.la +/usr/share/aclocal/yaz.m4 +/usr/share/man/man1/yaz-asncomp.* +/usr/share/man/man7/yaz.* +/usr/share/man/man8/yaz-config.* +/usr/share/doc/yaz +/usr/share/yaz + diff --git a/dependencies/yaz-2.1.28/zoom/Makefile.am b/dependencies/yaz-2.1.28/zoom/Makefile.am new file mode 100644 index 0000000..ce0cab7 --- /dev/null +++ b/dependencies/yaz-2.1.28/zoom/Makefile.am @@ -0,0 +1,24 @@ +## $Id: Makefile.am,v 1.20 2006/08/11 12:57:31 adam Exp $ +## Copyright (C) 2001, Index Data + +AM_CPPFLAGS = -I$(top_srcdir)/include $(XML2_CFLAGS) + +bin_PROGRAMS = zoomsh +noinst_PROGRAMS = zoomtst1 zoomtst2 zoomtst3 zoomtst4 zoomtst5 zoomtst6 zoomtst7 zoomtst8 zoomtst9 zoomtst10 zoom-benchmark + +LDADD = ../src/libyaz.la $(READLINE_LIBS) + +zoomtst1_SOURCES = zoomtst1.c +zoomtst2_SOURCES = zoomtst2.c +zoomtst3_SOURCES = zoomtst3.c +zoomtst4_SOURCES = zoomtst4.c +zoomtst5_SOURCES = zoomtst5.c +zoomtst6_SOURCES = zoomtst6.c +zoomtst7_SOURCES = zoomtst7.c +zoomtst8_SOURCES = zoomtst8.c +zoomtst9_SOURCES = zoomtst9.c +zoomtst10_SOURCES = zoomtst10.c +zoomsh_SOURCES = zoomsh.c +zoom_benchmark_SOURCES = zoom-benchmark.c + + diff --git a/dependencies/yaz-2.1.28/zoom/Makefile.in b/dependencies/yaz-2.1.28/zoom/Makefile.in new file mode 100644 index 0000000..0020ea8 --- /dev/null +++ b/dependencies/yaz-2.1.28/zoom/Makefile.in @@ -0,0 +1,599 @@ +# Makefile.in generated by automake 1.8.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +SOURCES = $(zoom_benchmark_SOURCES) $(zoomsh_SOURCES) $(zoomtst1_SOURCES) $(zoomtst10_SOURCES) $(zoomtst2_SOURCES) $(zoomtst3_SOURCES) $(zoomtst4_SOURCES) $(zoomtst5_SOURCES) $(zoomtst6_SOURCES) $(zoomtst7_SOURCES) $(zoomtst8_SOURCES) $(zoomtst9_SOURCES) + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +bin_PROGRAMS = zoomsh$(EXEEXT) +noinst_PROGRAMS = zoomtst1$(EXEEXT) zoomtst2$(EXEEXT) \ + zoomtst3$(EXEEXT) zoomtst4$(EXEEXT) zoomtst5$(EXEEXT) \ + zoomtst6$(EXEEXT) zoomtst7$(EXEEXT) zoomtst8$(EXEEXT) \ + zoomtst9$(EXEEXT) zoomtst10$(EXEEXT) zoom-benchmark$(EXEEXT) +subdir = zoom +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/yaz.m4 \ + $(top_srcdir)/m4/yaz_libxml2.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(mkdir_p) +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_zoom_benchmark_OBJECTS = zoom-benchmark.$(OBJEXT) +zoom_benchmark_OBJECTS = $(am_zoom_benchmark_OBJECTS) +zoom_benchmark_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +zoom_benchmark_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomsh_OBJECTS = zoomsh.$(OBJEXT) +zoomsh_OBJECTS = $(am_zoomsh_OBJECTS) +zoomsh_LDADD = $(LDADD) +zoomsh_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst1_OBJECTS = zoomtst1.$(OBJEXT) +zoomtst1_OBJECTS = $(am_zoomtst1_OBJECTS) +zoomtst1_LDADD = $(LDADD) +zoomtst1_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst10_OBJECTS = zoomtst10.$(OBJEXT) +zoomtst10_OBJECTS = $(am_zoomtst10_OBJECTS) +zoomtst10_LDADD = $(LDADD) +zoomtst10_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst2_OBJECTS = zoomtst2.$(OBJEXT) +zoomtst2_OBJECTS = $(am_zoomtst2_OBJECTS) +zoomtst2_LDADD = $(LDADD) +zoomtst2_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst3_OBJECTS = zoomtst3.$(OBJEXT) +zoomtst3_OBJECTS = $(am_zoomtst3_OBJECTS) +zoomtst3_LDADD = $(LDADD) +zoomtst3_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst4_OBJECTS = zoomtst4.$(OBJEXT) +zoomtst4_OBJECTS = $(am_zoomtst4_OBJECTS) +zoomtst4_LDADD = $(LDADD) +zoomtst4_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst5_OBJECTS = zoomtst5.$(OBJEXT) +zoomtst5_OBJECTS = $(am_zoomtst5_OBJECTS) +zoomtst5_LDADD = $(LDADD) +zoomtst5_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst6_OBJECTS = zoomtst6.$(OBJEXT) +zoomtst6_OBJECTS = $(am_zoomtst6_OBJECTS) +zoomtst6_LDADD = $(LDADD) +zoomtst6_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst7_OBJECTS = zoomtst7.$(OBJEXT) +zoomtst7_OBJECTS = $(am_zoomtst7_OBJECTS) +zoomtst7_LDADD = $(LDADD) +zoomtst7_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst8_OBJECTS = zoomtst8.$(OBJEXT) +zoomtst8_OBJECTS = $(am_zoomtst8_OBJECTS) +zoomtst8_LDADD = $(LDADD) +zoomtst8_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +am_zoomtst9_OBJECTS = zoomtst9.$(OBJEXT) +zoomtst9_OBJECTS = $(am_zoomtst9_OBJECTS) +zoomtst9_LDADD = $(LDADD) +zoomtst9_DEPENDENCIES = ../src/libyaz.la $(am__DEPENDENCIES_1) +DEFAULT_INCLUDES = -I. -I$(srcdir) +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/zoom-benchmark.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomsh.Po ./$(DEPDIR)/zoomtst1.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomtst10.Po ./$(DEPDIR)/zoomtst2.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomtst3.Po ./$(DEPDIR)/zoomtst4.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomtst5.Po ./$(DEPDIR)/zoomtst6.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomtst7.Po ./$(DEPDIR)/zoomtst8.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/zoomtst9.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(zoom_benchmark_SOURCES) $(zoomsh_SOURCES) \ + $(zoomtst1_SOURCES) $(zoomtst10_SOURCES) $(zoomtst2_SOURCES) \ + $(zoomtst3_SOURCES) $(zoomtst4_SOURCES) $(zoomtst5_SOURCES) \ + $(zoomtst6_SOURCES) $(zoomtst7_SOURCES) $(zoomtst8_SOURCES) \ + $(zoomtst9_SOURCES) +DIST_SOURCES = $(zoom_benchmark_SOURCES) $(zoomsh_SOURCES) \ + $(zoomtst1_SOURCES) $(zoomtst10_SOURCES) $(zoomtst2_SOURCES) \ + $(zoomtst3_SOURCES) $(zoomtst4_SOURCES) $(zoomtst5_SOURCES) \ + $(zoomtst6_SOURCES) $(zoomtst7_SOURCES) $(zoomtst8_SOURCES) \ + $(zoomtst9_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSSSL_DIR = @DSSSL_DIR@ +DTD_DIR = @DTD_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GREP = @GREP@ +HTML_COMPILE = @HTML_COMPILE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPTH = @LIBPTH@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAN_COMPILE = @MAN_COMPILE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +READLINE_LIBS = @READLINE_LIBS@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SSL_CFLAGS = @SSL_CFLAGS@ +STRIP = @STRIP@ +TCLSH = @TCLSH@ +THREAD_CFLAGS = @THREAD_CFLAGS@ +TKL_COMPILE = @TKL_COMPILE@ +VERSION = @VERSION@ +XML2_CFLAGS = @XML2_CFLAGS@ +XSLTPROC_COMPILE = @XSLTPROC_COMPILE@ +XSL_DIR = @XSL_DIR@ +YACC = @YACC@ +YAZ_BUILD_ROOT = @YAZ_BUILD_ROOT@ +YAZ_CONFIG_CFLAGS = @YAZ_CONFIG_CFLAGS@ +YAZ_CONF_CFLAGS = @YAZ_CONF_CFLAGS@ +YAZ_SRC_ROOT = @YAZ_SRC_ROOT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgconfigpath = @pkgconfigpath@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +AM_CPPFLAGS = -I$(top_srcdir)/include $(XML2_CFLAGS) +LDADD = ../src/libyaz.la $(READLINE_LIBS) +zoomtst1_SOURCES = zoomtst1.c +zoomtst2_SOURCES = zoomtst2.c +zoomtst3_SOURCES = zoomtst3.c +zoomtst4_SOURCES = zoomtst4.c +zoomtst5_SOURCES = zoomtst5.c +zoomtst6_SOURCES = zoomtst6.c +zoomtst7_SOURCES = zoomtst7.c +zoomtst8_SOURCES = zoomtst8.c +zoomtst9_SOURCES = zoomtst9.c +zoomtst10_SOURCES = zoomtst10.c +zoomsh_SOURCES = zoomsh.c +zoom_benchmark_SOURCES = zoom-benchmark.c +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu zoom/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu zoom/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +zoom-benchmark$(EXEEXT): $(zoom_benchmark_OBJECTS) $(zoom_benchmark_DEPENDENCIES) + @rm -f zoom-benchmark$(EXEEXT) + $(LINK) $(zoom_benchmark_LDFLAGS) $(zoom_benchmark_OBJECTS) $(zoom_benchmark_LDADD) $(LIBS) +zoomsh$(EXEEXT): $(zoomsh_OBJECTS) $(zoomsh_DEPENDENCIES) + @rm -f zoomsh$(EXEEXT) + $(LINK) $(zoomsh_LDFLAGS) $(zoomsh_OBJECTS) $(zoomsh_LDADD) $(LIBS) +zoomtst1$(EXEEXT): $(zoomtst1_OBJECTS) $(zoomtst1_DEPENDENCIES) + @rm -f zoomtst1$(EXEEXT) + $(LINK) $(zoomtst1_LDFLAGS) $(zoomtst1_OBJECTS) $(zoomtst1_LDADD) $(LIBS) +zoomtst10$(EXEEXT): $(zoomtst10_OBJECTS) $(zoomtst10_DEPENDENCIES) + @rm -f zoomtst10$(EXEEXT) + $(LINK) $(zoomtst10_LDFLAGS) $(zoomtst10_OBJECTS) $(zoomtst10_LDADD) $(LIBS) +zoomtst2$(EXEEXT): $(zoomtst2_OBJECTS) $(zoomtst2_DEPENDENCIES) + @rm -f zoomtst2$(EXEEXT) + $(LINK) $(zoomtst2_LDFLAGS) $(zoomtst2_OBJECTS) $(zoomtst2_LDADD) $(LIBS) +zoomtst3$(EXEEXT): $(zoomtst3_OBJECTS) $(zoomtst3_DEPENDENCIES) + @rm -f zoomtst3$(EXEEXT) + $(LINK) $(zoomtst3_LDFLAGS) $(zoomtst3_OBJECTS) $(zoomtst3_LDADD) $(LIBS) +zoomtst4$(EXEEXT): $(zoomtst4_OBJECTS) $(zoomtst4_DEPENDENCIES) + @rm -f zoomtst4$(EXEEXT) + $(LINK) $(zoomtst4_LDFLAGS) $(zoomtst4_OBJECTS) $(zoomtst4_LDADD) $(LIBS) +zoomtst5$(EXEEXT): $(zoomtst5_OBJECTS) $(zoomtst5_DEPENDENCIES) + @rm -f zoomtst5$(EXEEXT) + $(LINK) $(zoomtst5_LDFLAGS) $(zoomtst5_OBJECTS) $(zoomtst5_LDADD) $(LIBS) +zoomtst6$(EXEEXT): $(zoomtst6_OBJECTS) $(zoomtst6_DEPENDENCIES) + @rm -f zoomtst6$(EXEEXT) + $(LINK) $(zoomtst6_LDFLAGS) $(zoomtst6_OBJECTS) $(zoomtst6_LDADD) $(LIBS) +zoomtst7$(EXEEXT): $(zoomtst7_OBJECTS) $(zoomtst7_DEPENDENCIES) + @rm -f zoomtst7$(EXEEXT) + $(LINK) $(zoomtst7_LDFLAGS) $(zoomtst7_OBJECTS) $(zoomtst7_LDADD) $(LIBS) +zoomtst8$(EXEEXT): $(zoomtst8_OBJECTS) $(zoomtst8_DEPENDENCIES) + @rm -f zoomtst8$(EXEEXT) + $(LINK) $(zoomtst8_LDFLAGS) $(zoomtst8_OBJECTS) $(zoomtst8_LDADD) $(LIBS) +zoomtst9$(EXEEXT): $(zoomtst9_OBJECTS) $(zoomtst9_DEPENDENCIES) + @rm -f zoomtst9$(EXEEXT) + $(LINK) $(zoomtst9_LDFLAGS) $(zoomtst9_OBJECTS) $(zoomtst9_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoom-benchmark.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomsh.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst10.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst3.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst4.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst5.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst6.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst7.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst8.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zoomtst9.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: install-binPROGRAMS + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool clean-noinstPROGRAMS ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/dependencies/yaz-2.1.28/zoom/zoom-benchmark.c b/dependencies/yaz-2.1.28/zoom/zoom-benchmark.c new file mode 100644 index 0000000..a4b1d84 --- /dev/null +++ b/dependencies/yaz-2.1.28/zoom/zoom-benchmark.c @@ -0,0 +1,425 @@ +/* + * $Id: zoom-benchmark.c,v 1.13 2005/10/22 13:28:03 adam Exp $ + * + * Asynchronous multi-target client doing search and piggyback retrieval + */ + +#include +#include +#include +#include +#include + +#include +#include +#include + + +/* naming events */ +static char* zoom_events[10]; + +/* re-sorting event numbers to progress numbers */ +static int zoom_progress[10]; + +/* commando line parameters */ +static struct parameters_t { + char host[1024]; + char query[1024]; + int progress[4096]; + int concurrent; + int repeat; + int timeout; + char proxy[1024]; + int piggypack; + int gnuplot; +} parameters; + +struct event_line_t +{ + int connection; + long time_sec; + long time_usec; + int progress; + int event; + char zoom_event[128]; + int error; + char errmsg[128]; +}; + + +void print_event_line(struct event_line_t *pel) +{ + printf ("%d\t%ld.%06ld\t%d\t%d\t%s\t%d\t%s\n", + pel->connection, pel->time_sec, pel->time_usec, + pel->progress, + pel->event, pel->zoom_event, + pel->error, pel->errmsg); +} + +void update_events(int *elc, struct event_line_t *els, + int repeat, + int conn, + long sec, + long usec, + int prog, + int event, + const char * eventmsg, + int error, + const char * errmsg){ + + int ielc = repeat*parameters.concurrent + conn; + int iels = repeat*parameters.concurrent*10 + conn*10 + elc[ielc]; + + els[iels].connection = conn; + els[iels].time_sec = sec; + els[iels].time_usec = usec; + els[iels].progress = prog; + els[iels].event = event; + strcpy(els[iels].zoom_event, eventmsg); + els[iels].error = error; + strcpy(els[iels].errmsg, errmsg); + /* print_event_line(&els[iels]); */ + elc[ielc] += 1; +} + +void print_events(int *elc, struct event_line_t *els, + int connections){ + int i; + int j; + int k; + int ielc; + int iels; + + for (k=0; k < parameters.repeat; k++){ + for (i=0; i < connections; i++){ + ielc = k * parameters.concurrent + i; + for (j=0; j < elc[ielc]; j++){ + iels = k * parameters.concurrent * 10 + i * 10 + j; + print_event_line(&els[iels]); + } + printf("\n"); + } + printf("\n"); + } +} + + + +void init_statics() +{ + int i; + char nullstring[1] = ""; + + /* naming events */ + zoom_events[ZOOM_EVENT_NONE] = "ZOOM_EVENT_NONE"; + zoom_events[ZOOM_EVENT_CONNECT] = "ZOOM_EVENT_CONNECT"; + zoom_events[ZOOM_EVENT_SEND_DATA] = "ZOOM_EVENT_SEND_DATA"; + zoom_events[ZOOM_EVENT_RECV_DATA] = "ZOOM_EVENT_RECV_DATA"; + zoom_events[ZOOM_EVENT_TIMEOUT] = "ZOOM_EVENT_TIMEOUT"; + zoom_events[ZOOM_EVENT_UNKNOWN] = "ZOOM_EVENT_UNKNOWN"; + zoom_events[ZOOM_EVENT_SEND_APDU] = "ZOOM_EVENT_SEND_APDU"; + zoom_events[ZOOM_EVENT_RECV_APDU] = "ZOOM_EVENT_RECV_APDU"; + zoom_events[ZOOM_EVENT_RECV_RECORD] = "ZOOM_EVENT_RECV_RECORD"; + zoom_events[ZOOM_EVENT_RECV_SEARCH] = "ZOOM_EVENT_RECV_SEARCH"; + + /* re-sorting event numbers to progress numbers */ + zoom_progress[ZOOM_EVENT_NONE] = 0; + zoom_progress[ZOOM_EVENT_CONNECT] = 1; + zoom_progress[ZOOM_EVENT_SEND_DATA] = 3; + zoom_progress[ZOOM_EVENT_RECV_DATA] = 4; + zoom_progress[ZOOM_EVENT_TIMEOUT] = 8; + zoom_progress[ZOOM_EVENT_UNKNOWN] = 9; + zoom_progress[ZOOM_EVENT_SEND_APDU] = 2; + zoom_progress[ZOOM_EVENT_RECV_APDU] = 5; + zoom_progress[ZOOM_EVENT_RECV_RECORD] = 7; + zoom_progress[ZOOM_EVENT_RECV_SEARCH] = 6; + + /* parameters */ + parameters.concurrent = 1; + parameters.timeout = 0; + parameters.repeat = 1; + strcpy(parameters.proxy, nullstring); + parameters.gnuplot = 0; + parameters.piggypack = 0; + + /* progress initializing */ + for (i = 0; i < 4096; i++){ + parameters.progress[i] = 0; + } + +} + +struct time_type +{ + struct timeval now; + struct timeval then; + long sec; + long usec; +}; + +void time_init(struct time_type *ptime) +{ + gettimeofday(&(ptime->now), 0); + gettimeofday(&(ptime->then), 0); + ptime->sec = 0; + ptime->usec = 0; +} + +void time_stamp(struct time_type *ptime) +{ + gettimeofday(&(ptime->now), 0); + ptime->sec = ptime->now.tv_sec - ptime->then.tv_sec; + ptime->usec = ptime->now.tv_usec - ptime->then.tv_usec; + if (ptime->usec < 0){ + ptime->sec--; + ptime->usec += 1000000; + } +} + +long time_sec(struct time_type *ptime) +{ + return ptime->sec; +} + +long time_usec(struct time_type *ptime) +{ + return ptime->usec; +} + +void print_option_error() +{ + fprintf(stderr, "zoom-benchmark: Call error\n"); + fprintf(stderr, "zoom-benchmark -h host:port -q pqf-query " + "[-c no_concurrent (max 4096)] " + "[-n no_repeat] " + "[-b (piggypack)] " + "[-g (gnuplot outfile)] " + "[-p proxy] \n"); + /* "[-t timeout] \n"); */ + exit(1); +} + + +void read_params(int argc, char **argv, struct parameters_t *p_parameters){ + char *arg; + int ret; + while ((ret = options("h:q:c:t:p:bgn:", argv, argc, &arg)) != -2) + { + switch (ret) + { + case 'h': + strcpy(p_parameters->host, arg); + break; + case 'q': + strcpy(p_parameters->query, arg); + break; + case 'p': + strcpy(p_parameters->proxy, arg); + break; + case 'c': + p_parameters->concurrent = atoi(arg); + break; +#if 0 + case 't': + p_parameters->timeout = atoi(arg); + break; +#endif + case 'b': + p_parameters->piggypack = 1; + break; + case 'g': + p_parameters->gnuplot = 1; + break; + case 'n': + p_parameters->repeat = atoi(arg); + break; + case 0: + print_option_error(); + break; + default: + print_option_error(); + } + } + + if(0){ + printf("zoom-benchmark\n"); + printf(" host: %s \n", p_parameters->host); + printf(" query: %s \n", p_parameters->query); + printf(" concurrent: %d \n", p_parameters->concurrent); + printf(" repeat: %d \n", p_parameters->repeat); +#if 0 + printf(" timeout: %d \n", p_parameters->timeout); +#endif + printf(" proxy: %s \n", p_parameters->proxy); + printf(" piggypack: %d \n\n", p_parameters->piggypack); + printf(" gnuplot: %d \n\n", p_parameters->gnuplot); + } + + if (! strlen(p_parameters->host)) + print_option_error(); + if (! strlen(p_parameters->query)) + print_option_error(); + if (! (p_parameters->concurrent > 0)) + print_option_error(); + if (! (p_parameters->repeat > 0)) + print_option_error(); + if (! (p_parameters->timeout >= 0)) + print_option_error(); + if (! ( p_parameters->concurrent <= 4096)) + print_option_error(); +} + +void print_table_header() +{ + if (parameters.gnuplot) + printf("#"); + printf ("target\tsecond.usec\tprogress\tevent\teventname\t"); + printf("error\terrorname\n"); +} + + +int main(int argc, char **argv) +{ + struct time_type time; + ZOOM_connection *z; + ZOOM_resultset *r; + int *elc; + struct event_line_t *els; + ZOOM_options o; + int i; + int k; + + init_statics(); + + read_params(argc, argv, ¶meters); + + z = xmalloc(sizeof(*z) * parameters.concurrent); + r = xmalloc(sizeof(*r) * parameters.concurrent); + elc = xmalloc(sizeof(*elc) * parameters.concurrent * parameters.repeat); + els = xmalloc(sizeof(*els) + * parameters.concurrent * parameters.repeat * 10); + o = ZOOM_options_create(); + + /* async mode */ + ZOOM_options_set (o, "async", "1"); + + /* get first record of result set (using piggypack) */ + if (parameters.piggypack) + ZOOM_options_set (o, "count", "1"); + + /* set proxy */ + if (strlen(parameters.proxy)) + ZOOM_options_set (o, "proxy", parameters.proxy); + + + /* preferred record syntax */ + if (0){ + ZOOM_options_set (o, "preferredRecordSyntax", "usmarc"); + ZOOM_options_set (o, "elementSetName", "F"); + } + + time_init(&time); + /* repeat loop */ + for (k = 0; k < parameters.repeat; k++){ + + /* progress zeroing */ + for (i = 0; i < 4096; i++){ + parameters.progress[i] = k * 5 -1; + } + + /* connect to all concurrent connections*/ + for ( i = 0; i < parameters.concurrent; i++){ + /* set event count to zero */ + elc[k * parameters.concurrent + i] = 0; + + /* create connection - pass options (they are the same for all) */ + z[i] = ZOOM_connection_create(o); + + /* connect and init */ + ZOOM_connection_connect(z[i], parameters.host, 0); + } + /* search all */ + for (i = 0; i < parameters.concurrent; i++) + r[i] = ZOOM_connection_search_pqf (z[i], parameters.query); + + /* network I/O. pass number of connections and array of connections */ + while ((i = ZOOM_event (parameters.concurrent, z))){ + int event = ZOOM_connection_last_event(z[i-1]); + const char *errmsg; + const char *addinfo; + int error = 0; + int progress = zoom_progress[event]; + + if (event == ZOOM_EVENT_SEND_DATA || event == ZOOM_EVENT_RECV_DATA) + continue; + + time_stamp(&time); + + /* updating events and event list */ + error = ZOOM_connection_error(z[i-1] , &errmsg, &addinfo); + if (error) + parameters.progress[i] = -progress; + else + parameters.progress[i] += 1; + + update_events(elc, els, + k, i-1, + time_sec(&time), time_usec(&time), + parameters.progress[i], + event, zoom_events[event], + error, errmsg); + } + + /* destroy connections */ + for (i = 0; i +#include +#include +#include + +#include + +#if HAVE_READLINE_READLINE_H +#include +#endif +#if HAVE_READLINE_HISTORY_H +#include +#endif + +#include + +#include +#include +#include +#include + +#define MAX_CON 100 + +static int next_token (const char **cpp, const char **t_start) +{ + int len = 0; + const char *cp = *cpp; + while (*cp == ' ') + cp++; + if (*cp == '"') + { + cp++; + *t_start = cp; + while (*cp && *cp != '"') + { + cp++; + len++; + } + if (*cp) + cp++; + } + else + { + *t_start = cp; + while (*cp && *cp != ' ' && *cp != '\r' && *cp != '\n') + { + cp++; + len++; + } + if (len == 0) + len = -1; + } + *cpp = cp; + return len; /* return -1 if no token was read .. */ +} + +static int next_token_copy (const char **cpp, char *buf_out, int buf_max) +{ + const char *start; + int len = next_token (cpp, &start); + if (len < 0) + { + *buf_out = 0; + return len; + } + if (len >= buf_max) + len = buf_max-1; + memcpy (buf_out, start, len); + buf_out[len] = '\0'; + return len; +} + +static int is_command (const char *cmd_str, const char *this_str, int this_len) +{ + int cmd_len = strlen(cmd_str); + if (cmd_len != this_len) + return 0; + if (memcmp (cmd_str, this_str, cmd_len)) + return 0; + return 1; +} + +static void cmd_set (ZOOM_connection *c, ZOOM_resultset *r, + ZOOM_options options, + const char **args) +{ + char key[40], val[80]; + + if (next_token_copy (args, key, sizeof(key)) < 0) + { + printf ("missing argument for set\n"); + return ; + } + if (next_token_copy (args, val, sizeof(val)) < 0) + ZOOM_options_set(options, key, 0); + else + ZOOM_options_set(options, key, val); +} + +static void cmd_get (ZOOM_connection *c, ZOOM_resultset *r, + ZOOM_options options, + const char **args) +{ + char key[40]; + if (next_token_copy (args, key, sizeof(key)) < 0) + { + printf ("missing argument for get\n"); + } + else + { + const char *val = ZOOM_options_get(options, key); + printf ("%s = %s\n", key, val ? val : ""); + } +} + +static void cmd_rget(ZOOM_connection *c, ZOOM_resultset *r, + ZOOM_options options, + const char **args) +{ + char key[40]; + if (next_token_copy (args, key, sizeof(key)) < 0) + { + printf ("missing argument for get\n"); + } + else + { + int i; + for (i = 0; i"); + } + } +} + +static void cmd_close (ZOOM_connection *c, ZOOM_resultset *r, + ZOOM_options options, + const char **args) +{ + char host[60]; + int i; + next_token_copy (args, host, sizeof(host)); + for (i = 0; i= 0) + ZOOM_options_set (options, "start", start_str); + + if (next_token_copy (args, count_str, sizeof(count_str)) >= 0) + ZOOM_options_set (options, "count", count_str); + + for (i = 0; i\n"); + printf ("search \n"); + printf ("show [ []\n"); + printf ("scan \n"); + printf ("quit\n"); + printf ("close \n"); + printf ("ext \n"); + printf ("set